Recommandation de la bibliothèque binpacking de python

Quel est le problème du binpacking?

Expliquons! Le problème du binpacking est le problème d'essayer de minimiser le nombre de bacs d'un certain article de taille aléatoire et de plusieurs bacs de même taille pour les emballer.

Wiki anglais

Problème de binpacking 1D

Il y a oneDpack. avec invite anaconda

pip install oneDpack

Comment utiliser Entrez la taille du bac comme plafond et la taille de ce que vous voulez mettre dans les articles. Si le plafond est grand, ce sera très lent.

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))

production

[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

Problème de binpacking 2D

Il y a un reckpack. avec invite anaconda

pip install reckpack

Comment utiliser Entrez la taille des bacs et les dimensions verticales et horizontales de la cargaison.

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()

#Réglez le conteneur.
for i, b in enumerate(bins):
    packer.add_bin(*b, bid=i)

#Réglez la boîte.
for i, r in enumerate(cargo):
    packer.add_rect(*r, rid=i)

#Effectuer un remplissage en masse.
packer.pack()


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

production

Renvoie la coordonnée x en bas à gauche, la coordonnée y en bas à gauche, la longueur de gauche à droite et la longueur de bas en haut.

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

Il ressemble à ceci lorsqu'il est visualisé.

%matplotlib inline

def draw_result(packer):
    #Taille de l'écran
    fig = plt.figure(figsize=(20,10))
    for i, abin in enumerate(packer,1):
        ax = fig.add_subplot(i, len(packer), 1, aspect="equal")
        
        #Dessinez le contenant.
        ax.add_patch(Rectangle((0,0), abin.width, abin.height, fc="none", ec="g", lw=2, zorder=10))
        for r in abin:
            #Dessinez une boîte.
            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

Problème de binpacking 3D

Nous recherchons actuellement, veuillez nous le faire savoir dans les commentaires si vous avez des recommandations.

Recommended Posts

Recommandation de la bibliothèque binpacking de python
Bibliothèque de messagerie Python 3.6
Bibliothèque Python AST
Recommandation de poésie
Les bases de Python ①
Bases de python ①
Copie de python
Note sur la bibliothèque Python
Recommandation d'Altair! Visualisation des données avec Python
Introduction de Python
Reconnaissance d'accords à l'aide du chromagramme de la bibliothèque de python librosa
Mémo d'étude Python & Machine Learning ②: Introduction de la bibliothèque
Introduction de la bibliothèque d'imagerie Python (PIL) à l'aide de HomeBrew
[Hikari-Python] Module Chapitre 08-04 (Installation d'une bibliothèque externe)
[Python] Opération d'énumération
Liste des modules python
Unification de l'environnement Python
bibliothèque de commerce d'algorithmes python
Copie des préférences python
Principes de base du grattage Python
[python] comportement d'argmax
Utilisation des locaux Python ()
le zen de Python
Installation de Python 3.3 rc1
Installer une bibliothèque externe pour python
Bibliothèque d'optimisation Python Pulp
# 4 [python] Bases des fonctions
Connaissance de base de Python
Anecdotes sobres de python3
Résumé des arguments Python
Bases de python: sortie
Installation de matplotlib (Python 3.3.2)
Application de Python 3 vars
Divers traitements de Python
Recommandation de construction d'un environnement Python portable avec conda
[Python] Obtenir la liste des noms ExifTags de la bibliothèque Pillow
[Introduction à Python] Utilisation basique de la bibliothèque matplotlib
Aim Python Library Master (48) Autopep8
Aim Python Library Master (36) json2html
Aim Python Library Master (49) psidialogs
Aim Python Library Master (26) easyxml
[Python] Utilisation correcte de la carte
Aim python library master (29) table_printer
Bibliothèque de calcul d'évolution Python Deap
Espaces de noms Aim Python Library Master (55)
AIM Python Library Master (46) BrowserPlus
Bibliothèque de calcul d'évolution Python Deap (3)
Vers la retraite de Python2
résumé lié à l'opération de fichier python
Résumé des opérations de liste Python3
Python - Démarrage rapide de la journalisation
AIM Python Library Master (3) Workalendar
Aim Python Library Master (42) Speedrecorder
Aim Python Library Master (44) pynetviz
Aim Python Library Master (8) Rolex
Aim Python Library Master (52) Marktime
Aim Python Library Master (7) Numparser
Aim Python Library Master (21) hy
Bibliothèque pratique TF-Slim de Tensorflow