Ich benutze Open Solver, um ein Optimierungsproblem zu lösen. Das Problem ist wie folgt:Einstellung des optimalen Wertes für den angegebenen Wert
Angenommen, ich optimiere Eingabe mit gegebenen Gesamtkostenbeschränkung und Eingabeverfügbarkeit. Wir haben Inputkosten und möchten die Kosten minimieren. Die andere Einschränkung ist, dass der optimierte Eingang in irgendeinen der eingestellten Werte fällt, zB input11, input12, input13 und input14. Dieser diskrete Eingangsbereich variiert zwischen den Eingängen.
So haben wir drei Einschränkungen:
- Budget,
- Eingangskapazität für jeden Ein- und
- Eingänge sollten innerhalb einer der fallenden vier Optionen fallen.
Der Teil des Codes I erstellt:
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
Kann mir jemand bitte helfen, das Problem zu lösen?
Vielen Dank!
Keine Zeit eine Antwort zu schreiben, aber ich denke, [diese Antwort] (https://stackoverflow.com/questions/41653105/excel-solver-finding-a-target-sum-from-subset-of-number-set/41658675 # 41658675) liegt sehr nahe bei dem, was Sie erreichen möchten, obwohl es keinen opensolver verwendet. – OldUgly
@OldUgly: Danke für Ihren Vorschlag. Ich habe eine Antwort auf Ihren Vorschlag gefunden. Brauche aber noch mehr Tests. Außerdem funktioniert es nicht in Open Solver. Ich muss es auf Open Solver ausführen, da das Optimierungsproblem groß ist und Excel Solver es nicht lösen kann. Aber nochmals vielen Dank, um mir den Weg zu zeigen! – Beta
Nun klingt das vielleicht nach einem schnellen Hack, aber da Sie den Solver von VBA aus ausführen, können Sie ihn für die vier verschiedenen Gleichheitsbedingungen in einer for-Schleife separat ausführen und die beste Antwort aus den vier auswählen. – RIBH