Empfehlung der binpacking Bibliothek von Python

Was ist das Binpacking-Problem?

Lass es uns erklären! Das Problem beim Verpacken von Behältern besteht darin, dass versucht wird, die Anzahl der Behälter eines Artikels mit zufälliger Größe und mehrere Behälter derselben Größe zu minimieren, um sie zu verpacken.

Englisches Wiki

1D Binpacking Problem

Es gibt oneDpack. mit anaconda prompt

pip install oneDpack

Wie benutzt man Geben Sie die Größe des Behälters als Kappe und die Größe der Elemente ein, die Sie einfügen möchten. Wenn die Kappe groß ist, ist sie sehr langsam.

from oneDpack import*

cap=60
items=[2,4,5,2,7,4,7,3,7,3,7,43,8,2,4,13,6,4,3,2,4,7,9,10,40,23]
for i in packing(cap,items):
    print(i)
    print(sum(i))

Ausgabe

[4, 13, 43]
60
[2, 3, 4, 4, 7, 40]
60
[2, 2, 3, 3, 4, 7, 7, 7, 7, 8, 10]
60
[2, 4, 5, 6, 9, 23]
49

2D Binpacking Problem

Es gibt ein Repackpack. mit anaconda prompt

pip install reckpack

Wie benutzt man Geben Sie die Größe der Behälter sowie die vertikale und horizontale Größe der Ladung ein.

import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle
from collections import*
from rectpack import newPacker
from pandas import*
from numpy import*

bins = [(50,50)]
cargo = [(15,20),(30,20),(15,20),(10,20),(20,14),(15,20),(11,20),(30,10)]

packer = newPacker()

#Stellen Sie den Container ein.
for i, b in enumerate(bins):
    packer.add_bin(*b, bid=i)

#Stellen Sie die Box ein.
for i, r in enumerate(cargo):
    packer.add_rect(*r, rid=i)

#Massenfüllung durchführen.
packer.pack()


for i, abin in enumerate(packer,1):
    for r in abin:
        print(r.x,r.y,r.width, r.height)

Ausgabe

Gibt die x-Koordinate von links unten, die y-Koordinate von links unten, die Länge von links nach rechts und die Länge von unten nach oben aus.

0 0 30 20
30 0 20 15
30 15 20 15
0 30 15 20
0 20 30 10
15 30 14 20
29 30 11 20
40 30 10 20

In der Visualisierung sieht es so aus.

%matplotlib inline

def draw_result(packer):
    #Bildschirmgröße
    fig = plt.figure(figsize=(20,10))
    for i, abin in enumerate(packer,1):
        ax = fig.add_subplot(i, len(packer), 1, aspect="equal")
        
        #Zeichne den Behälter.
        ax.add_patch(Rectangle((0,0), abin.width, abin.height, fc="none", ec="g", lw=2, zorder=10))
        for r in abin:
            #Zeichne eine Kiste.
            ax.add_patch(Rectangle((r.x, r.y), r.width, r.height, fc="lightblue", ec="k"))
            cx, cy = r.x + r.width / 2, r.y + r.height / 2
            ax.text(cx, cy, r.rid, ha ="center",va="center", color="k", fontsize=14)
        
        ax.relim()
        ax.autoscale_view()

draw_result(packer)

ダウンロード.png

3D Binpacking Problem

Wir suchen gerade. Bitte teilen Sie uns in den Kommentaren mit, ob Sie Empfehlungen haben.

Recommended Posts

Empfehlung der binpacking Bibliothek von Python
Python 3.6 E-Mail-Bibliothek
Python ast Bibliothek
Empfehlung der Poesie
Python-Grundlagen ①
Grundlagen von Python ①
Kopie von Python
Python Library Hinweis
Empfehlung von Altair! Datenvisualisierung mit Python
Einführung von Python
Akkorderkennung mit Chromagramm der Python Library Librosa
Python & Machine Learning Study Memo Introduction: Einführung in die Bibliothek
Einführung der Python Imaging Library (PIL) mit HomeBrew
[Hikari-Python] Kapitel 08-04 Modul (Installation einer externen Bibliothek)
[Python] Operation der Aufzählung
Liste der Python-Module
Vereinheitlichung der Python-Umgebung
Python-Algorithmus Handelsbibliothek
Kopie der Python-Einstellungen
Grundlagen der Python-Scraping-Grundlagen
[Python] Verhalten von Argmax
Verwendung von Python-Einheimischen ()
der Zen von Python
Installieren von Python 3.3 rc1
Installieren einer externen Bibliothek für Python
Python-Optimierungsbibliothek Pulp
# 4 [Python] Grundlagen der Funktionen
Grundkenntnisse in Python
Nüchterne Trivia von Python3
Zusammenfassung der Python-Argumente
Grundlagen von Python: Ausgabe
Installation von matplotlib (Python 3.3.2)
Anwendung von Python 3 vars
Verschiedene Verarbeitung von Python
Empfehlung zum Erstellen einer tragbaren Python-Umgebung mit conda
[Python] Ruft die Liste der ExifTags-Namen der Pillow-Bibliothek ab
[Einführung in Python] Grundlegende Verwendung der Bibliothek matplotlib
Ziel Python Library Master (48) Autopep8
Ziel Python Library Master (36) json2html
Ziel Python-Master (49) psidialogs
Ziel Python Library Master (26) easyxml
[Python] Richtige Verwendung der Karte
Ziel Python Library Master (29) table_printer
Python-Evolutionsberechnungsbibliothek Deap
Zielen Sie auf die Namespaces des Python Library Master (55)
Ziel Python Library Master (46) Browserplus
Python-Evolutionsberechnungsbibliothek Deap (3)
Auf dem Weg zum Ruhestand von Python2
Zusammenfassung der Python-Dateivorgänge
Zusammenfassung der Python3-Listenoperationen
Python - Schneller Start der Protokollierung
Ziel Python Library Master (3) Arbeitskalender
Ziel Python Speed Master (42) Speedrecorder
Ziel Python Library Master (44) Pynetviz
Ziel Python Library Master (8) Rolex
Ziel Python Library Master (52) Marktime
Ziel Python Library Master (7) Numparser
Ziel Python Library Master (21) hy
Tensorflows praktische Bibliothek TF-Slim