将最佳值设置为任何给定的指定值

我正在使用开放求解器来解决优化问题。 问题如下:

假设我正在优化与给定的总成本约束和input可用性的input。 我们有投入成本,想要最小化成本。 另一个约束是优化input落在任何设定值中,比如input11,input12,input13和input14。 这个离散input范围因input而异。

所以我们有3个约束:

  1. 预算,
  2. 每个input的input容量和
  3. 投入应落入四个选项中的任何一个。

我创build的代码部分:

Sub TestOpensolver() Dim TestSheet As Worksheet Set TestSheet = Worksheets("Optimized_Results") OpenSolver.ResetModel Sheet:=TestSheet 'Objective Definition OpenSolver.SetObjectiveFunctionCell TestSheet.Range("AC3"), Sheet:=TestSheet OpenSolver.SetObjectiveSense MinimiseObjective, Sheet:=TestSheet 'Variables Definition OpenSolver.SetDecisionVariables TestSheet.Range("AK3:AK8"), Sheet:=TestSheet OpenSolver.SetDecisionVariables TestSheet.Range("AQ3:AR8"), Sheet:=TestSheet ' Constraints OpenSolver.AddConstraint TestSheet.Range("AK3:AK8"), RelationLE, TestSheet.Range("W3:W8"), Sheet:=TestSheet OpenSolver.AddConstraint TestSheet.Range("AK3:AK8"), RelationGE, TestSheet.Range("X3:X8"), Sheet:=TestSheet OpenSolver.AddConstraint TestSheet.Range("AS3:AS8"), RelationLE, TestSheet.Range("AT3:AT8"), Sheet:=TestSheet OpenSolver.RunOpenSolver , False End Sub 

任何人都可以请帮我解决这个问题?

谢谢!

'或'条件通常意味着我们需要使用二进制variables,例如:

 input1 = input11*y11 + input12*y12 + input13*y13 + input14*y14 y11+y12+y13+y14 <= 1 y11,y12,y13,y14 binary variables