Behälterproblem
Das Behälterproblem oder auch bin packing problem ist ein kombinatorisches Optimierungsproblem, das auf folgender Fragestellung basiert:
Das Behälterproblem oder auch bin packing problem ist ein kombinatorisches Optimierungsproblem, das auf folgender Fragestellung basiert:
- Gegeben: Eine Anzahl von „Behältern“ (englisch bin) der Größe und eine Anzahl „Objekte“ mit den Größen .
- Frage: Können die „Objekte“ so auf die „Behälter“ verteilt (packing) werden, dass keiner der „Behälter“ überläuft? Formal:
Das oben beschriebene Entscheidungsproblem ist NP-vollständig; das zugehörige Optimierungsproblem – das Finden einer Zuordnung, bei der die Anzahl an Behältern minimiert wird – ist NP-schwer.
Die hier gegebene Formulierung des Bin-Packing-Problems ist nur die Motivation beziehungsweise Basis für eine Vielzahl weiterer Packing-Problems, die unter anderem in der Verpackungsindustrie eine große Rolle spielen.
Eine etwas allgemeiner formale Definition beschreibt das Bin-Packing-Problem als die Bestimmung einer Partition und Zuordnung einer Menge von Objekten, so dass eine bestimmte Bedingung erfüllt bzw. eine Zielfunktion minimiert oder maximiert wird.
Man unterscheidet zwischen Offline- und Online-Varianten, wobei offline bedeutet, dass im Voraus alle Objekte bekannt sind. Bei Online-Verfahren muss sofort entschieden werden, in welchen Behälter das Objekt gepackt wird, ohne die folgenden Objekte zu kennen.
Algorithmen
Da Bin-Packing ein NP-schweres Problem ist, ist es vermutlich unmöglich, es in polynomialer Laufzeit zu lösen. Johnsons Approximationsalgorithmus First Fit Decreasing löst das Problem in polynomieller Zeit mit einer asymptotischen Gütegarantie von .
- Sortiere die Objekte nach absteigender Größe
- Füge die Objekte der Reihe nach ein, sodass jedes in den ersten Behälter gegeben wird, in dem noch genug Platz ist.
- Falls in keinem der bereits geöffneten Behälter genügend Platz ist, öffne einen neuen.
Die Laufzeit beträgt (sowohl für das Sortieren, als auch für das Einfügen). Dieselben Resultate gelten auch für Best Fit Decreasing. Dabei wird ein Objekt nicht in den ersten Behälter eingefügt, in den es passt, sondern in den Behälter, in den es gerade noch passt (die Restkapazität wird also minimiert).
Bei der Online-Variante ist es nicht möglich, die Objekte im Voraus nach Größe zu sortieren. Die Algorithmen First Fit und Best Fit arbeiten analog zu den oben genannten, jedoch ohne vorheriges Sortieren. Beide Algorithmen haben eine scharfe asymptotische Gütegarantie von 1,7 und eine Laufzeit von . Best Fit sucht in allen bisher vorhandenen Behältern nach dem kleinsten noch passenden freien Platz.
Der naive Algorithmus Next Fit packt die Objekte der Reihe nach in den letzten geöffneten Behälter, falls sie hineinpassen. Ansonsten wird der Behälter geschlossen, ein neuer geöffnet und das aktuelle Objekt in den leeren Behälter gegeben. Die asymptotische Gütegarantie beträgt 2, die Laufzeit . Der Vorteil dieses naiven Algorithmus ist, dass immer nur ein Behälter gleichzeitig geöffnet ist (was in der praktischen Anwendung eine Bedingung sein kann).
Literatur
- Bernhard Korte, Jens Vygen: Kombinatorische Optimierung. Springer, Berlin Heidelberg 2008, ISBN 978-3-540-76918-7, S. 485ff
Weblinks
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.