Jackery IFA Fireplace

Lastverteilung auf mehrere Lieferanten

<Cyclonit>

Ensign
Registriert
Mai 2011
Beiträge
137
Hi,

ich arbeite derzeitig an einer Vielzahl an Programmen, die, sobald sie fertig sind, eine Art Fabrik simulieren können sollen. Diese besagte Fabrik besteht aus zahlreichen Modulen, welche Gegenstände produzieren, weiterverarbeiten oder einfach nur lagern. Mein Problem liegt darin, dass ich erreichen möchte, dass solche Module, die diverse Ressourcen zu einem Endprodukt verarbeiten stets die schnellste Kombination aus Quellen für ihre Ressourcen benutzen. Hier ein kleines Beispiel:

"Veredelung" möchte ein Schiff herstellen und benötigt dafür 100 Einheiten Holz.
Also fragt Veredelung bei allen ihm bekannten Quellen für Holz an, wie viel und wie schnell diese liefern können.

Farm 1 antwortet: 100 Einheiten, 1 Einheit pro Sekunde
Farm 2 antwortet: 30 Einheiten, 2 Einheiten pro Sekunde
Lager antwortet: 100 Einheiten, 5 Einheiten pro Sekunde

Wie kann ich die optimale Kombination an Bestellungen herausfinden? Wie kann ich herausfinden, wie ich die benötigte Gesamtmenge am besten auf die einzelnen Lieferanten verteilen und schnellst möglich den bestellten Tisch herstellen kann?

Cyclonit

PS: Verzeiht bitte das schlechte Beispiel, aber ich denke es ist klar, was mein Problem ist ^^'
 
das erinnert mich an die zwölfte klasse mathe und die erste oder zweite ableitung :mussweg:
 
Hallo,

meine antwort dazu: Mathe.
Funktionen, Minimal~/Maximalwertbestimmung, usw. sollte Analysis sein.

---------

Falls Du das ganze nicht errechnen willst, könnte man es primitiver angehen und es "Ausprobieren".

z.B.
- jeder konsument hat für jede Produktion einen virtuellen Wahrenkorb vorab
- in diesem Wahrenkorb wird in den kleinsten, von den Zulieferern gegebnen, Zeitintervallen die maximal verfügbare Wahre gelegt (in deinem Beispiel 1sek Tick)
- Lieferantenliste und Menge merken (virtuelle Bestellungen)
- dann schauen ob die benötigte Rohstoffmenge erreicht ist
-> wenn ja: Bestellung anhand der 'virtuell Bestellungen' real umsetzen (Überschüsse anpassen)
-> wenn nein: neuer Tick des Intervalls = ein zweitesmal in den aktuellen Zeitraum verfügbare Menge bestellen und wieder Menge prüfen.

Nicht toll, aufwendig und naja, könnte aber funktionieren.
(So schlecht wie manche Simulationsspiele mit Wirtschaftssystem laufen habe ich da auch mal den Eindruck dass es auf ähnlichen Weg realisiert wurde ^^)

gl
EoB
 
Zuletzt bearbeitet:
erstmal müssen alle faktoren auf den tisch:

lieferzeiten von der farm/lager bis zur fabrik?
lieferkosten dafür?
wieviele teillieferungen maximal?
etc.

dann eine funktion generieren, die entweder die zeit in abhängigkeit der verschiedenen lieferanten berechnet und/oder die kosten berechnet. wenn die anzahl der variablen dann überschaubar ist, kann man die gleichung analytisch lösen, ansonsten numerisch approximieren, was den zweck auch erfüllen sollte.

erstmal muss aber klar sein, was das optimum ist: schnellstmöglich oder am günstigsten oder eine kompromiss beider
 
Also so lange es nur wenige Auswahlmöglichkeiten gibt, würde ich das ganze kombinatorisch lösen:

Spiele alle möglichkeiten in einer Schleife durch und berechne über eine Zielfunktion Funktion, jeweils, wie gut das deiner Anforderung entspricht. Anders macht man das in der Praxis auch nicht (Operations Research), der Rest ist Optimierung, damit die Berechnung nicht nen Monat lange dauert.
Die Intelligenz steckt da drin, was denn nun überhaupt optimal ist
 
Im Beispiel kannst du insgesamt maximal 8 Einheiten pro Sekunde bekommen. Wenn du 100 Einheiten brauchst, würde es ja rein theoretisch 12,5 Sekunden dauern, bis du alles hast.
Bei Farm 1 wären das dann 12,5 Einheiten, bei Farm 2 wären das 25 Einheiten und vom Lager nochmal 62,5 Einheiten.
Halbe Einheiten sind aber bestimmt unpraktisch und ich weiss ja nicht, ob da noch die von "ragna" Faktoren mit einfliessen sollen. ;)
 
Zurück
Oben