2009-07-23 5 views
16

Ich habe also die Aufgabe, ein Versandmodul für ein Webshop-System zu erstellen. Es mag ein bisschen übertrieben sein, aber ich würde gerne einen erstellen, der herausfinden kann, wie man Pakete optimal verpackt. Ich habe Programmierung gelernt, indem ich es einfach gemacht habe. Dies ist ein Bereich, in dem ich noch kein Wissen habe. Wie auch immer, ich kann nur eine kurze Beschreibung des Problems geben.Wie erstellt man eine optimierte Verpackungsfunktion in Python?

Also wenn Benutzer von Sachen bei Webshops werden sie x Produkte in ihrem Warenkorb mit möglicherweise unterschiedlichen Größen und Gewicht haben. Also möchte ich diese Liste von Produkten der Funktion geben und herausfinden, wie diese Produkte in Parzellen verpackt werden sollen.

  • maximale Länge des Pakets: 100
  • max Breite des Pakets: 50
  • max Höhe des Pakets: 50
  • max Gewicht des Pakets: 20

hat jedes Produkt ein Gewicht , Länge, Breite und Höhe.

Da Pakete und Produkte im Grunde Boxen sind, ich denke, das wäre ziemlich komplex, da es verschiedene Möglichkeiten gibt, die Produkte in das Paket zu setzen. Mein Ziel ist nicht, die perfekte Verpackungsfunktion zu erfüllen, aber ich möchte etwas Besseres tun, als nur Produkte in das Paket zu stecken, bis ein Limit erreicht ist.

Nun, ich erwarte nicht, dass ihr das für mich macht, aber ich möchte drei Dinge fragen.

  1. Wo finde ich gute Online-Ressourcen, die mir die Grundlagen vermitteln?
  2. Gibt es einige native Python-Tools, die gut zu verwenden sind?
  3. Einige Hinweise, was ich bewusst sein müssen, Fallen etc.

Wie ich schon sagte, ich habe nicht für diese perfekte und 100% optimiert werden, aber ich würde mit etwas enden mag das wird nahe kommen. Ich würde es hassen, wenn Nutzer fühlen, dass die Sendegebühr viel höher sein wird, als sie tatsächlich ist.

+0

Wow - für Sie zu lösen haben ein Knapsackproblems Ihre Tagesarbeit? Ich beneide dich :-) –

Antwort

5

Die Tatsache, dass Sie Höhe, Länge und Breite haben, macht es schwieriger als ein einfaches Rucksackproblem. Hier ist eine interessante Diskussion über eine 3D knapsack problem.

Hier ist ein paper on the topic von den gleichen Jungs.

6

Das ist Ihre typische knapsack problem. Viele Lösungen für verschiedene Sprachen finden Sie unter Rosetta Code.

+0

Es ist nicht wahr? Das Knapsack-Problem gibt an, dass Sie einen Container der Größe x haben, und Sie müssen Elemente anpassen, um die Summe der Elementeigenschaft y zu maximieren. Was Googletorp will, ist, wie man es am effektivsten verpackt, einschließlich der Artikelplatzierung. – Yacoby

+0

Es war eine interessante Lektüre, aber es wird nicht genau das lösen, was ich suche, da es nur auf die Lautstärke schaut. Bei 7 Produkten, die 51x26x26 sind, würde ich nur einen von denen in einem Paket passen, aber mit der Volumenberechnung würden alle 7 in ein Paket passen. – googletorp

+1

Okay, das "typische" Rucksackproblem hat nur eine Dimension (Volumen). Das hier dargestellte Problem hätte vier Dimensionen, drei für den Raum und einen für das Gewicht. Das ist immer noch das Rucksackproblem, nur ein bisschen komplizierter. – Bombe

2

Dies scheint ein gutes Problem zu sein, um the simplex algorithm oder eine Art genetic algorithm gelten. Wenn Sie noch nie von Letzterem gehört haben, empfehle ich Ihnen dringend, über sie zu lesen. Wie ich an deiner Frage erkenne, machst du diese Verbesserung, weil du es magst, die Dinge optimal funktionieren zu lassen, und nicht, weil du dazu aufgefordert wurdest. Stellen Sie sich vor, wenn Sie ihnen sagen, dass Sie eine Künstliche-Intelligenz-Technik angewendet haben, um ihr Problem zu lösen!

Es gibt viele einfache Algorithmen, die Ihr Problem lösen, aber dies kann eine großartige Gelegenheit sein, evolutionäre Berechnungen zu lernen. Einige interessante Links über genetische Algorithmen [jeder, fühlen Sie sich frei zu bearbeiten und hinzufügen]:

  1. These pages introduce some fundamentals of genetic algorithms.
  2. Genetic Algorithms in Plain English

Glück mit dem!
Manuel

+0

Ich bin nicht sicher, warum er überhaupt einen genetischen Algorithmus verwenden würde, da bessere Algorithmen existieren, die besser zu seiner speziellen Situation passen. – pg1989

Verwandte Themen