Also ist 0 erlaubt, 1 ist nicht erlaubt, 499 ist nicht erlaubt und 501 ist erlaubt. Sieht aus wie ein nicht zusammenhängender Bereich. Es handelt sich also nicht um ein reines Optimierungsproblem, sondern um eine Art kombinatorisches Problem. Ich fürchte, Solver kann damit nicht fertig werden.
Sie sollten zwei Anwendungsfälle getrennt analysieren:
- Der Betrag ist Null (fester Wert, einfache Berechnung);
- Der Betrag ist 500 oder mehr (in Solver unter Verwendung von Einschränkungen> = 500 optimieren);
Vergleichen Sie dann diese beiden Fälle mithilfe einer IF-Formel.
BEARBEITEN:
Ich habe versucht, "binäre" und "ganzzahlige" Beschränkungen zu verwenden, wie Karl vorschlug, aber sie funktionierten nicht.
- Erstellen Sie eine binäre Variable 0-1 und eine kontinuierliche Variable> = 500, und verwenden Sie dann IF, um entweder die kontinuierliche Variable zu kopieren oder 0 in den Einkaufswert zu schreiben
- Erstellen Sie eine binäre Variable 0-1 und eine kontinuierliche Variable> = 500, und berechnen Sie dann Einkäufe als ihr Produkt
- Erstellen Sie eine Integer-Variable> = 499, und verwenden Sie dann IF, um 499 durch 0 für den Einkaufswert zu ersetzen
In allen Fällen war das Ergebnis oft falsch und abhängig von den Ausgangsbedingungen. Anscheinend mag Solver solche Dinge nicht.
Dann dachte ich darüber nach, meinen obigen Vorschlag auf alle sechs Einkaufswerte anzuwenden und diese unabhängig voneinander zu optimieren, beispielsweise durch Optimierung der Kostensumme für alle Monate. Es stellt sich jedoch heraus, dass sie nicht unabhängig sind: Das Eröffnungsinventar hängt vom Vormonat ab und der optimale Kauf für einen Monat hängt davon ab, ob im Vormonat ein Kauf getätigt wurde. Es ist daher nicht möglich, jedem Monat eine einfache IF hinzuzufügen.
Das Beste, was ich tun kann, ist folgendes.
Ich habe eine binäre Variable 0-1 und eine kontinuierliche Variable> = 500 hinzugefügt und die Einkäufe jedes Monats mit IF berechnet. Ich habe aber nur die stetigen Variablen mit Solver optimiert. Die binären Variablen sind ein Parameter. Das heißt, wir wählen die Monate aus, in denen ein Kauf getätigt wird, berechnen dann den Wert dieser Einkäufe mit dem Solver und notieren die resultierenden Gesamtkosten.
Dies sollte für alle Kombinationen von Käufen und Nichtkäufen wiederholt werden. Die Anzahl dieser Kombinationen beträgt 2 6 = 64. Wenn Sie jedoch im Januar nichts kaufen, erhalten Sie ein negatives Schlussinventar, das nicht zulässig ist. Es gibt also nur 32 gültige Kombinationen. Ich habe Formeln hinzugefügt, um die binären Werte aus dem Kombinationsindex zu berechnen, den Index 32-mal durchlaufen, den Solver jedes Mal manuell gestartet und die Ergebnisse für jede Kombination "nur als Werte" kopiert.
Das Ergebnis ist, dass die Mindestkosten 4 625,00 € betragen und es zwei Kombinationen gibt, um diesen Wert zu erreichen.
Hier ist die in Google Docs hochgeladene Datei mit einem Solver-Screenshot.
Solver mehrmals von Hand zu starten, ist langwierig, ich glaube, er kann mit Makros automatisiert werden.