Effizientes Pakete packen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

AMY

Betreff: Effizientes Pakete packen

BeitragDi, Mai 14, 2019 4:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich brauch mal ein paar Denkanstöße. Es geht darum ein Paket am effizientesten zu packen. Das Problem dabei sind sicher die vielen Möglichkeiten die man hat.
Grundlage:
- es gibt 8 verschiedene Verpackungen in die gepackt werden kann
- Es gibt mehr als 10 paketgrössen die gepackt werden müssen (diese Liste sollte erweiterbar sein)
- Jedes Paket kann natürlich in 6 verschiedenen richtungslagen gepackt werden (Also die Pakete dürfen gedreht werden)
- Optional würde ich auch gerne das Gewicht Mit einbeziehen. Da ein maximal Gewicht pro gesamt verpackung nicht überschritten werden darf.

Ich hoffe ihr könnt mir ein wenig Licht im dunkel geben ^^
Projekte: www.amyscbi.de
I never comment my sourcecode. What's HARD to write must be HARD to read!

SpionAtom

BeitragDi, Mai 14, 2019 9:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Klingt erstmal grundlegend nach einem Kombinatorikproblem.

Sicher kann man Vorüberlegungen anstellen.
- Passt das Gesamtvolumen der Pakete überhaupt in die Verpackung?
- Passen die Pakete von ihren Abmessungen in die Verpackung?
- Sollen gleiche Dinge bevorzugt zusammenverpackt werden?
- Muss irgendwas oben liegen?

Hast du noch mehr Infos zu deinem Problem?
Was ist die Eingabe? Einfach eine Liste von Paketen mit Größenangaben und Gewichten?

Und was soll rauskommen? Eine möglichst kleine umschließende Verpackung von den 8? Genug Platz für Luftpolster?

Faul und dumm wie ich bin, würde ich es am Ende einfach bruteforcen.... Rolling Eyes Laughing


Edit: Wir hatten mal einen Wettbewerb, bei dem es darum ging Grafiken möglichst platzsparend in einem Bild anzuordnen, ist zwar nur 2D, aber vielleicht gibt das noch Ideen.
https://www.blitzforum.de/foru...hp?t=39385

Dropbox Downloadlink
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080
  • Zuletzt bearbeitet von SpionAtom am Do, Mai 16, 2019 13:22, insgesamt einmal bearbeitet

AMY

BeitragDi, Mai 14, 2019 14:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Das sind schonmal gute Überlegungen die ich noch gar nicht bedacht habe. Mit den Vorbereitungen ist auch ne gute Idee.
Mit der Idee das was oben liegen muss klingt auch gut würde ich aber vielleicht sogar noch ausweiten mit einer sagen wir mal Festigkeit weiss nicht wie ich es sonst beschreiben soll.


Es kommen immer Paletten mit Paketen an. Diese müssen verpackt werden. Auf jedem Paket ist ein Code, dieser kann gescannt werden. Mit diesem kann man Grösse und Gewicht ermitteln also dies ist im System hinterlegt.
Dies zu bruteforcen war auch meine Idee. Die Geschwindigkeit spielt dabei auch keine starke Rolle solange es keine 10min braucht ^^.
Genau am Ende sollte die kleinstmögliche Verpackung gefunden werden.
Wie würdest du die Listen intern abspeichern? Am besten mit Types oder geht auch dim? Bin bei types noch immer nicht so bewandert hab mich aber zumindest schon mal damit auseinander gesetzt. Eine Hilfestellung dazu wäre dann ganz gut. Müssten es nicht dann zwei types sein?

Edit 15:12
Hab dein Edit zu spät gesehen. Erst als meine Antwort fertig war. Hab mir mal den BCC angesehen. Leider ist nur noch der Beitrag von Xeres anschaubar. Dieser ist in blitzmax geschrieben und da ich Grad unterwegs bin nicht vernünftig lesbar. Ich guck mir den heute Abend nochmal am Rechner an. Mal seh'n ob ich bmax Code verstehe, da ich sonst nur mit blitzplus und blitz3d unterwegs bin. Ich hab auf dem ergebnisbild sogar schon nen Fehler gefunden Wink
Projekte: www.amyscbi.de
I never comment my sourcecode. What's HARD to write must be HARD to read!

SpionAtom

Betreff: Raster

BeitragDo, Mai 16, 2019 10:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Man kann sich das Problem etwas vereinfachen, indem man alle Boxen an ein Raster anpasst, und nur diese Rasterkoordinaten verwendet. Also Ganze Zahlen wenn man so will, und keine Kommazahlen.

Dann gibt es vielleicht eine nicht ganz getreue Abbildung der Realität (Aus Box mit den Ausmaßen 3.7 x 4.8 x 5.6 wird dann Box 4 x 5 x 6, und aus Position (1.2 | 2.8 | 3.9) wird dann Position (2 | 3 | 4)), aber durch den Abstraktionsgrad gewinnt man eine Vereinfachung des Algorithmus und auch eine Zeitersparnis beim errechnen.

(Vielleicht versuche ich mich mal an einem 2D Beispiel)
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080

AMY

BeitragDo, Mai 16, 2019 10:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Leider hab ich es noch nicht geschafft mir das BCC Packprogramm auf dem Rechner anzusehen. Einfach zu wenig Zeit ^^. Mach ich aber noch die Tage.
Ich würde es schon lieber genauer haben. Die Zeit Spielt wie ich schon schrieb nicht die Rolle dabei.
Projekte: www.amyscbi.de
I never comment my sourcecode. What's HARD to write must be HARD to read!

DAK

BeitragDo, Mai 16, 2019 13:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Im Endeffekt ist das eine Variante vom Rucksackproblem. Das Problem fällt unter die Kategorie NP-Vollständig. Das heißt, für eine perfekte Lösung musst du jede mögliche Kombination durchprobieren, was recht rasch recht unmöglich wird. Bruteforcen allein wird dabei (je nach Anzahl der Pakete) recht schnell unbrauchbar.

Um sowas zu lösen brauchst du ein gewisses Vorwissen in der Algorithmik und Blitz ist dafür nicht unbedingt die sinnvollste Sprache, da es dir noch nicht mal sinnvolle Datenstrukturen liefert und schon gar nicht irgendwelche hilfreichen Bibliotheken existieren.

Wahrscheinlich fährst du besser wenn du dir zumindest mal Python anschaust...
Gewinner der 6. und der 68. BlitzCodeCompo

SpionAtom

Betreff: Container Loading Problem

BeitragDo, Mai 16, 2019 14:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, richtige Informatiker dürfen sich gerne damit herumschlagen.

Bekannt ist das ganze unter der Bezeichnung "Container Loading Problem".

https://www.fernuni-hagen.de/w.../db426.pdf
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080

AMY

BeitragDo, Mai 16, 2019 14:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja auch wenn Blitz nicht die geeignetste Sprache ist versuche ich es mal damit wenn ich Zeit habe. Der Aufwand sollte sich auch nicht so gross werden das zumeist die Pakete so groß sind das maximal 40stk auf eine Palette passen. Aber ich danke euch dennoch für die nützlichen Tipps, Ich guck mir das mal alles in Ruhe an. Wenn ich Zeit habe nehme ich mich mal dem Problem an und melde mich bei Bedarf oder Fertigstellung hier wieder.
Projekte: www.amyscbi.de
I never comment my sourcecode. What's HARD to write must be HARD to read!
 

sinjin

BeitragMi, März 11, 2020 1:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Gute Frage, ich wollte mal ein Programm schreiben was mir meine externe Festplatte so voll wie möglich macht...aber guter graphischer Ansatz SpionAtom, allerdings "glaube" ich, es ist kein TOTALER Ansatz, dennoch "glaube" ich halt es ist anders zu lösen als nen Brute Force. Allerdings...ich habe es aufgegeben mich damit rum zuschlagen, seitdem es grössere Festplatten gibt. Ich bin auch nen Typ der denkt: wenn es 2D geht, gibt es vielleicht auch nen 3D Ansatz...der es evtl besser löst in 3D....soweit ich weiß kann der Mensch nur 2 Dimensional denken....und der 3D Ansatz...der ist echt schwer......danke für die erinnerung....bin gut in Wurzel ziehen. allerdings hab ich noch nichts besseres gefunden ausser alle ungeaden Zahlen zusammenziehen....ist auch schwer...aber 1+3+5+7+9+11+13...es ist IMMER ne Wurzel Zahl! Je mehr Zeit vergeht, desto langsamer werde ich da was neues zu finden...ABER es ist nicht umöglich! So denke ich. Und alle die denken...WIE SOLL DAS DENN GEHEN...mit allen ungeraden Zahlen geht es ja auch....hätte auch niemand gedacht....der normal denkt Very Happy Höre auf "normal" zu denken...dann findet man auch was. Halt die Mathematik die dir jmd beigebracht hat...vergiss das ALLES!!!!!! Dann denke für dich alleine Very Happy Es ist wirklich so!!!!!!! Wenn du ne Lösung hast, dann hast du was gefunden was keiner bisher hat! was, oder ob es jmd versteht...das ist echt egal!!!! es funktioniert oder nicht! Denke bitte weiter nach...evtl kommst du auf ne Lösung...die zwar keiner vertehen mag aber es funktioniert! Und darum geht es! Denke mal so: villeicht brauchst nur nen Teil Brute Force, wenn du es runter rechnest...so ist auch meine Idee, dann braucht man nicht immer die Force lol Man teilt es auf in Teilbereiche! Und es ist kein einfaches Interpolieren.....ich spreche von etwas wovon ich ausgehe....aber niemand hat es je gebracht...Etwas ttoal logoisches...aber bisher kann ich es nicht reproduzieren......Zeit......und niemand kapiert es....ich bin mir zu 99% sicher! halt..niemand hat sowas gefunden, und das zu erklären wäre super schwer....wenn, dann werden es leute verstehen doe sonst nichts verstehen...Zeit und Raum sind nicht mit einer Formel erklärt! Das dauert. Egal der Wissensstand..wenn man die "gefundnen" Gesetze nicht aushebeln darf...dann ist ja klar, dann bin ich illegal hahaha so einfach ist das!
Ich bin mir geradezu SICHER....wenn es 2 Dimensionale Möglichlkeiten gibt...warum dann keine 3D Möglichkeiten die bisher noch keiner begriffen hat?
Die Natur kann es...aber es hat noch kein Mensch BEGRIFFEN! Die Natgur würde den restlichen Raum füllen Very Happy Warum und wieso weiß "noch" niemand! Dazu noch...die Natur kann es..ohne nachzudenken...die tut es einfach! Das ist Teil unseres Universums....es ist total schwer, auf der anderen Seite total einfach...warum sollte es mathematisch nicht einfach sein?
Auch echt egal was das Forum sagt...ich finde es seltsam das einige Leute die derzeitige Mathematik sowas von unterstützen....das ist echt totaler Quatsch! Ich hoffe du denkst weiter....und findest was! Ich jab nur 1+3+5---also JEDE ungearde Zahl addiert in der Reihe..ist IMMER eine Wirzel-Zahl! Ich habe es ja auch versucht, die Festplatte so zu füllen das die voll wird...aber, da fehlt einfach was in der Mathematik, die noch keiner hat! Ich rede auch von ETWAS...wenn du es schaffst im Computer dann ist es, egal wie, ja auch iwie logisch!
Das ist WIRKLICH was, was die Mathematik "noch" nicht begriffen hat Very Happy
Mache sofort ein Patent wenn es das noch nicht gibt....anosnten klauen es dir die Leute wie verrückt. Leider geht es nicht ums Wissen sondern ums Geld....Traurig
 

sinjin

BeitragMi, März 11, 2020 2:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Nochmal kurz zur Realität...deshalb kann man aussuchen bei .RAR ein Solides-Archive nimmt halt ALLE Daten als Input ohne einen neuen Pack-Stream/String anzufangen. Deshalb packt "Solid-Archive" etwas besser Very Happy Aber die paar Bytes...ffft Very Happy
Ich finde auch gut das Russen..ja RAR ist russisch, so gut dabei sind !
Das "solide" Archive, nimmt ausschlisslich alle Dateien die mit der selben -Endung enden halt zusammen, weil das logisch ist Very Happy

Xeres

Moderator

BeitragDo, März 12, 2020 0:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Bitte vermeide mehrfach Posts. Auch wenn hier wenig los ist, müssen die Bleiwüsten nicht künstlich vergrößert werden. Danke.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

SpionAtom

Betreff: Ungerade Zahlen addieren

BeitragFr, März 13, 2020 11:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Nur kurz zu den ungeraden Zahlen addieren, das kann man sich schön visualisieren.
Wenn man aufeinanderfolgende ungerade Zahlen als L-Formen zusammenlegt, kommt immer ein Quadrat heraus.

user posted image
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group