Algorithmus in Python, brauche Hilfe :/?
Ich habe eine Liste mit autos, welche 3 verschiedene größen haben. Diese werden auf verschiedenen Transportmitteln transportiert mit verschiedenen Kapazitäten. Jetzt möchte ich einen Code in Python schreiben, welcher die Kapazität so effektiv wie möglich ausnutzt. Ich habe leider noch keine Erfahrungen im programmieren, weswegen ich hier nicht weiter komme, brauche die Rechnungen aber für ein mathe-problem. Die Daten sind bereits importiert, ich brauche nur eine Vorlage für den Code
3 Antworten
Das ist nicht mal eben gemacht.
Dafür gibt es einige sehr teure Kommerzielle Programme. Die sind nicht deswegen teuer weil Jemand das mal in 5 Minuten zusammengetippselt hat sondern weil da viele Jahre an Entwicklung drin stecken und tausende Mannstunden.
Man muss das maximale Volumen der Fahrzeuge und deren maximale Zuladung beachten. Und dann kann man nicht alles perfekt stapeln, da bleibt immer Luft drin.
Dazu kommt dann noch die Gewichtsverteilung auf der Ladefläche.
Und oben drauf kann man nicht jede Ware auf jede andere Ware drauf stellen ohne was kaputt zu machen.
Und wenn es um Gefahrgut geht, dann darf man bestimmte Kategorien nicht mit anderen zusammen ins selbe Fahrzeug laden. Außerdem muss man dann gucken dass man möglichst wenige geschulte und lizenzierte Fahrer und geeignete Fahrzeuge braucht.
Das ist nicht wie beim geld abzählen im Kassenautomaten wo mit der größten Geldeinheit (Schein / Münze) angefangen wird und gezählt wird wie oft das in den Wechselbetrag rein passt, dann abziehen und mit der nächstkleineren Einheit wiederholen.
Wenn Du das so machst (Gewicht oder Volumen), wirst Du dann oft noch nicht mal ein Drittel der ausgerechneten Ladung in das Fahrzeug bekommen.
Wirklich effizient lässt sich dieses Problem (noch) nicht lösen, da es sich hier um eine Abwandlung vom Bin Packing Problem handelt. Was eben NP-vollständig ist. Wenn du einen möglichst guten Algorithmus haben willst kann ich dir empfehlen ChatGPT zu fragen, da das sonst hier zu großen Ausmaße nimmt.
Soll die Lösung je Transportmittel möglichst gut sein, oder über alle Transportmittel?
Du könntest Di in jedem Fall mal das 'knapsack problem' (Rucksackproblem) anschauen.
P.S.: Es gibt weitere artverwandte Probleme, das Gebiet, das Dich hier interessiert ist die lineare Programmierung/Optimierung, sofern ich die Problembeschreibung korrekt verstanden habe.