Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1952to1956
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Solver gibt nicht die optimale Lösung aus

Solver gibt nicht die optimale Lösung aus
15.11.2023 13:41:17
Hoecker
Moin zusammen, ich habe mal wieder ein OProblem mit dem Solver:

Ich habe eine Kostenkalkulation, dessen Gesamtkosten sich aus Investitionskosten und Transportkosten zusammensetzen. Die Investitionskosten sind abhängig von der Produktionsmenge der Anlage je Standort (Zellen C2-C11) und werden in den Zellen E2-E11 mit einer Formel für jeden Standort berechnet. Diese gehen dann zusammen und auf die Produktionsmenge heruntergerechnet in Zelle C42.

Jeder Standort hat allerdings auch einen gewissen Produktbedarf, welcher in den Zellen C15-C24 dargestellt ist. Aus der Produktion und dem jeweiligen Produktbedarf errechnet sich in den Zellen C28-C37 dann pro Standort ein Wert. Ist dieser positiv, so ist an dem Standort noch Produktmenge übrig, die transportiert werden kann. Wenn der Wert negativ ist, wird an dem jeweiligen Standort noch die Menge benötigt. Dies soll durch den Transport ermöglicht werden. Der Produktüberschuss nach dem Transport befindet sich je Standort in den Zellen E28-E37 und berechnet sich aus dem vorherigen Produktüberschuss und der Transportmatrix. Dieser sollte gleich null sein (Nebenbedingung für den Solver). Rechts finden sich zwei Matrizen: Eine Kostenmatrix und eine Transportmatrix, aus denen sich die Transportkosten in Zelle J53 errechnen. Diese werden dann auch auf die Produktmenge herunter gerechnet und in Zelle C44 geschrieben.

Aus den Zellen C42 und C44 errechnen sich dann in Zelle C46 die Gesamtkosten.

Folgende Solvereinstellungen sind hinterlegt:

Zielfunktion: Minimiere C46 (Gesamtkosten)

Variable Zellen (Fett und Unterstrichen): C2-C11 (Produktionsmenge je Standort) und J42-S51 (Transportmatrix)

Nebenbedingungen:
Summe der Produktionen je Standort (C12) muss der Gesamtproduktion entsprechen (G2)
Variable Zellen sind Ganzzahlig und kleiner gleich Gesamtproduktion
Diagonale der Transportmatrix ist gleich 0 (Selbstlieferung nicht nötig)
Der Produktüberschuss nach Transport (E28-E37) ist für jeden Standort Null

Der GRG-Nichlinear und der LP-Simplex Algorithmus funktioniert hier leider nicht (Vermutlich weil es sowohl ein lineares als auch nichtlineares Problem gibt) und der Evolutionäre Algorithmus gibt mir leider jedes mal die gleiche Lösung aus, nämlich dass an jedem Standort genau so viel Produziert wird wie benötigt wird. Dies ist aber nicht die kostenoptimalste Lösung. Diese wäre die Produktion von der gesamten benötigten Menge am Standort 2 und Transport an alle anderen Standorte. Ich bekomme den Solver aber - egal was ich für Einstellungen tätige - nicht dazu, über dieses lokale Minimum (Transportkosten sind bei 0) hinweg zu leiten. Vielleicht hat ja jemand von euch eine Idee...
Hier die Beispieldatei: https://www.herber.de/bbs/user/164305.xlsx

Danke im Voraus!

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Solver gibt nicht die optimale Lösung aus
16.11.2023 19:27:59
Yal
Hallo Kevin,

ja, der Solver ist irgendwie unzuverlässig geworden. Aber man muss es auch korrekt einrichten.

Du musst unbedingt den "Wenn" aus der Investitionskosten herausnehmen. Das magt der Solver nicht.
Genau angeschaut lautet die Investitionsformel:
=C5^(1+LOG(1-0,12)/LOG(2))*76,49/450^(1+LOG(1-0,12)/LOG(2))
ausser C5 ist alles konstant. So lost man das Problem #DIV/0!
1+LOG(1-0,12)/LOG(2) ist gerundet 0,8155, was kleiner als 1. Das bedeutet, es steigt "immer weniger" (so soll es auch sein)
Dies kann als Funktion "=Fct_Invest(C5)" bezeichnen (eigentlich ist eher eine Produktionskosten üblich: (Fix + Kosten Pro Stk)/ Anzahl Stk ).

Es muss auch eine Gesamtkostenrechnung pro Zeile geben:
= 0 * 0 + Menge_St1_St2 * TrKst_St1_St2 + Menge_St1_St3 * TrKst_St1_St3 + Menge_St1_St4 * TrKst_St1_St4 + ... + Fct_Invest(0 + Menge_St1_St2 + Menge_St1_St3 + ...)
= Menge_St2_St1 * TrKst_St2_St1 + 0 * 0 + Menge_St2_St3 * TrKst_St2_St3 + Menge_St2_St4 * TrKst_St2_St4 + ... + Fct_Invest(Menge_St2_St1 + 0 + Menge_St2_St3 + ...)
(Muster ist erkennbar, oder?)
Die Summe davon ist zu minimieren.

Ansonsten würde ich alle Eingabe in 10 Zeilen reinbringen, 1 zeile pro Standort. Die Aufstellung übereinander ist nur verwirrend.
Änderbare Zelle sind dann die Menge, die von A nach B transportiert werden sollen. Die Summe der Zeile minus die Summe der Spalten muss insgesamt 0 ergeben.
Die Produktion pro Standort ist dann 300 + Versand an anderen - Empfang von anderen, wobei immer eins von beiden ("Versand an" oder "Emfang von") null sein muss. Es entspricht den Überschuss, der negativ oder positiv aber nicht kleiner als -300 sein darf.


Die Vorgaben sind aber unrealistisch:
Bei einer Produktion von 300 Stk/Tag pro Standort ist die Bedingung 3000 Stk/Tag getroffen und die Transportkosten sind null. Gesamtkosten sind dann 549,53.
Variiert man 2 Produktionen, eine mit +10 und eine mit -10, hat man eine Gesamtinvestition um 1 Cent reduziert, aber Transportkosten von min 12 EUR verursacht.
Bei +100/-100 reduziert sicht die Invest um 1 Eur, sind die Transportkosten bei min. 120 EUR.
Auch der Gesamtproduktion (3000 Stk) am Standort 2 (günstigste Versandkosten insgesamt) verursacht eine Investition von 359,39 (minima der Invest) aber Versand in H.v. 11.721 Eur!!

Da müsste man den Dozent klarmachen, dass der Case Study nicht fliegt ;-)

Ich hoffe, es kann helfen. Schade, dass die Lösung offensichtlich, bzw die Fragestellung absurd ist. Es hätte sonst Spass gemacht.

VG
Yal
Anzeige
AW: Solver gibt nicht die optimale Lösung aus
16.11.2023 20:56:11
Hoecker
Moin Yal,

erst einmal vielen Dank für deine Zeit! Tatsächlich ist der Business Case durchaus realistisch. Die nicht nivellierten Investitionskosten sind in Millionen Euro angegeben (Hätte ich dazu schreiben sollen, sorry ;-)) und werden über eine Laufzeit von 10 Jahren auf die Produktionsmenge hochgerechnet (€ pro Tonne Produktion). Das hier ist ein sehr einfaches Modell, das ausführliche betrachtet weitaus mehr Dinge, die hier für das Problem aber nicht relevant sind.

Die Wenn Funktion habe ich raus genommen - komme aber meiner Meinung nach bei dem neuen Schema nicht drumherum, eine Wenn-Funktion in der Spalte zu nutzen, wo ich die Transportkosten pro Standort auf die Produktionsmenge hochrechne (das mag an der fortgeschrittenen Stunde liegen :D). Ansonsten bekommt man dort auch wieder ein #DIV0 Problem, wenn die an dem Standort keine Produktion stattfindet.

Aufteilungstechnisch habe ich das angepasst, wie du es erwähnt hast.

Dem konnte ich nicht ganz folgen:
"Änderbare Zelle sind dann die Menge, die von A nach B transportiert werden sollen. Die Summe der Zeile minus die Summe der Spalten muss insgesamt 0 ergeben.
Die Produktion pro Standort ist dann 300 + Versand an anderen - Empfang von anderen, wobei immer eins von beiden ("Versand an" oder "Emfang von") null sein muss. Es entspricht den Überschuss, der negativ oder positiv aber nicht kleiner als -300 sein darf."

Vielleicht magst du das nochmal kurz erläutern?

Bzgl. der Vorgaben: Die gesamte Produktionsmenge wird ja vorher festgelegt und wenn alle 10 Standorte ihre benötigten 300 Tonnen selbst produzieren, sind es 3.000 t Gesamtproduktion und logischerweise fallen auch keine Transportkosten.

Die Nivellierung auf eine Tonne Produktion ist leider auch essentiell für die Betrachtung...

Hier nochmal eine überarbeitete Beispieldatei, das Problem bleibt leider bestehen...: https://www.herber.de/bbs/user/164367.xlsx

Danke für deine Mühe und einen schönen Abend noch!

Beste Grüße
Kevin
Anzeige
AW: Solver gibt nicht die optimale Lösung aus
17.11.2023 10:55:26
Yal
Hallo Kevin,

sieht gut aus. Ich würde ebenfalls die Transport-Verteilung- und die Transportkosten-Matrix auf dieselbe ebene bringen (letzteres ganz weit rechts, da nur Konstanten)
Die Spalten für Einheiten sind null relevant. Es reicht wenn diese im Kopfbereich ausgewiesen werden, da es in eine Spalte immer nur dieselbe Sachverhalt vorkommen sollte.
In eine Zeile müssen/müssten alle Information zu diesem betrachtete Element vorhanden sein. In dem Fall Standort x.

Vermeide ebenfalls gruppierte Zelle. Vermeide allgemeine "schön" vor dem "praktisch" zu stellen oder die beide zu vermischen. Wenn praktisch oder effektiv nicht vorhanden ist, nutzt schön gar nichts. Schön macht man anschliessend in Powerpoint ;-)

Schwierig ist, dass der saldierte Überschuss nicht nur Abgang (bereit in eigene Zeile) sondern auch den Zugang beinhalten sollte (Vertikal in "Transport von .. nach ..", spricht: Zeile-Sto liefert an Spalte-Sto). Da müsste eine Formel vorhanden sein, um die Zugänge pro Zeile zu haben und pro Zeile Überschuss -Abgang + Zugang = 0 prüfen zu können.

Diese zweidimensionalität ist eine der Schwierigkeit, die ich noch nicht ganz erfasst habe. Es wiederspricht, dass es eine lineare Regression wäre. Im Prinzip ist es eher etwas für eine Stepping Stone Methode (die hatte ich irgendwann in einer Vorlesung vor 30 Jahren aber nie angewendet).

Vielleicht habe ich heute abend mehr Zeit...

VG
Yal


Anzeige
AW: Solver gibt nicht die optimale Lösung aus
17.11.2023 14:57:17
Hoecker
Moin Yal,

ich konnte mein Problem lösen, indem ich meine Variablenzellen so wie du es beschrieben hast überdacht und geändert habe. Jetzt findet er das globale Optimimum :)

Danke dir und ein schönes Wochenende!
Super! owT
17.11.2023 15:59:12
Yal

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige