Gewichte Addieren

Gast #5145036
Lesenswert?

Hallo zusammen und guten Morgen.
Ich habe 1500 verschiedene Tüten von ~500g bis 1000g Es sollen immer 15 
Tüten in ein Paket und alle Pakete sollen möglichst gleich schwer 
werden.

Ich habe alle Gewichte in eine Exel Tabelle gehackt und durch 100 
geteilt. somit weiß ich jetzt das jedes Paket 10230g wiegen sollte.

Aber jetzt komme ich nicht mehr so recht weiter. Ich könnte jetzt die 
Gewichte aus der Liste suchen welche zusammen am besten das Ergebnis 
darstellen aber ich denke da gibt es Formeln oder Möglichkeiten die das 
viel besser können?

Könnt ihr mir da mal verraten wie sich so etwas nennt oder wonach ich 
suchen muss?
Gast #5145040
Lesenswert?

Das ist das sogenannte Rucksack-Problem. Dieses ist nur mit gigantischem 
Rechenaufwand zu lösen (Exponentielle Laufzeit, also bei dir N^1500 - 
die Sonne explodiert vorher). Da es bei dir vermutlich nicht auf das 
Gramm ankommt, kannst du ja mal nach approximativen Lösungen des 
Rucksack-Problems suchen.
Gast #5145042
Lesenswert?

Wenn immer 15 Tüten in ein Paket sollen, ist das wegen der hohen Zahl 
der Kombinationen rechenintensiv. Erster Ansatz wäre eine Bildung von 
32-er-Gruppen und Suche innerhalb dieser Auswahl.
Wie schaut die statistische Verteilung der Gewichte aus?
Wie genau soll es sein?
Nenne die ersten beiden Ziffern Deiner PLZ.
Gast #5145048
Lesenswert?

1. Auf die 1500 Tüten zufällig zugreifen und diese zu 100 Paketen je 15 
zusammenstellen.

Wie gut ist das Ergebnis?

2. Tüten die zu schwer bzw. zu leicht sind untereinander ausgleichen.

Wie gut ist das Ergebnis?

Lässt sich das Ergebnis durch Wiederholung von 2. verbessern?
Gast #5145087
Lesenswert?

> Sind in den Tüten Mikrocontroller drin

Ich vermute mal, daß er diese Aufgabe durch einen Algorithmus auf einem 
Mikrocontroller lösen soll. Typsich Schule.

Im echten Leben würde man das wohl kaum so realisieren. Da würde in 
PC/Server vorgeben, was die Maschine wo hin stecken soll. Der µC in der 
Maschine würde nur die Kommandos ausführen.
Gast #5145099
Lesenswert?

Stefan U. schrieb:
> Ich vermute mal, daß er diese Aufgabe durch einen Algorithmus auf einem
> Mikrocontroller lösen soll. Typsich Schule.
Klar, weil der Informatik-Lehrer keine Ahnung von Komplexität hat und 
die Schüler NP-vollständige Probleme lösen lässt.

Stefan U. schrieb:
> Da würde in
> PC/Server vorgeben, was die Maschine wo hin stecken soll. Der µC in der
> Maschine würde nur die Kommandos ausführen.
Empfangen die Mikrocontroller in der Motorsteuerung deines Autos ihre 
Befehle auch von einem Server oder rechnen die doch selber?
#5145271
Lesenswert?

Hi

Dr. Sommer schrieb:
> Empfangen die Mikrocontroller in der Motorsteuerung deines Autos ihre
> Befehle auch von einem Server oder rechnen die doch selber?

Ja

Bei Oder-Fragen immer so eine Sache :)

Zum Problem:
Früher hatte ich Mal für ein Modelleisenbahnplanprogramm (hehe, was ein 
Wort) eine Routine geschrieben, Die aus allen vorhandenen 
Gleislängen(Winkeln, Radien, ... hier die Einzelgewichte) mir die besten 
Kombinationen zur gesuchten Länge (ect.) zusammen rechnete, wobei hier 
dann noch danach unterschieden wurde, mit wie viel 'Spiel' ich bei 
welchem Preisunterschied leben könnte.
Unterm Strich habe ich 'nur' das möglichst längste Gleis 'eingepackt', 
solange Das halt geht.
Am Schluß bleibt eine Differenz (+/-) zum Soll.

Bei Dir ist ja die Anzahl der Einzelgewichte begrenzt, musst also drauf 
achten, daß Du nicht 'unendlich viele leichte Tüten' in einen Karton 
rein sortierst.

Wie ich nach der 1.ten Lösung weiter gegangen bin - kA - hab damals aber 
auch den einen oder anderen Tag darin versenkt - das Programm kam dann 
auf Datasette, könnte also schon was her sein :)

MfG
(Firma: RUB) #5145289
Lesenswert?

Kuddel schrieb:
> 1. Auf die 1500 Tüten zufällig zugreifen und diese zu 100 Paketen je 15
> zusammenstellen.
>
> Wie gut ist das Ergebnis?
>
> 2. Tüten die zu schwer bzw. zu leicht sind untereinander ausgleichen.
>
> Wie gut ist das Ergebnis?
>
> Lässt sich das Ergebnis durch Wiederholung von 2. verbessern?
Klingt nach einem guten Einsatzzweck fuer einen genetischen Algorithmus 
:)
https://de.wikiversity.org/wiki/Kurs:Genetische_Algorithmen

Geneva Optimierungsumgebung
https://de.wikipedia.org/wiki/Geneva_Optimierungsumgebung
1
Geneva [...] ist eine [...] Programmbibliothek, die miteinander kombinierbare Algorithmen zur näherungsweisen, Computer-gestützten Lösung von Optimierungsproblemen bereitstellt.
Gast #5145609
Lesenswert?

Es ergibt dann also 100 (!) Pakete a 15 Tüten.

Was kommt denn heraus, wenn man es so macht:

1)    In Paket 1 die leichteste und schwerste Tüte.
2)    In Paket 2 die leichteste (verbliebene) und
      schwerste (verbliebene) Tüte.

      usw.       usw.

100)  In Paket 100 die leichteste und schwerste ..., wie vor.
101)  In Paket 100 die leichteste und schwerste ..., wie vor.

      usw.       usw.

200)  In Paket 1 die leichteste und schwerste ...
201)  In Paket 1 die leichteste und schwerste ...
202)  In Paket 2 die leichteste und schwerste ...

      usw.       usw.

1401) In das leichteste von den 100 Paketen die schwerste
      von den verbliebenen Tüten, dieses Paket ist fertig.
1402) In das leichteste von den jetzt 99 Paketen die schwerste
      von den verbliebenen Tüten, dieses Paket ist fertig.

      usw.      usw.

1500) Die letzte Tüte ins letzte Paket, fertig.
#5146874
Lesenswert?

Zuerst mal ist die Optimierungsfunktion nicht bekannt. Was soll "alle 
Pakete ... möglichst gleich schwer" denn genau bedeuten und was soll das 
Optimum sein, wenn es keine Lösung mit 100 genau gleich schweren Paketen 
gibt?

Da es andererseits keine vom Gewicht unabhängige Nutzenfunktion gibt, 
ist das auch nicht das Rucksackproblem. WIMRE ist dieses vereinfachte 
Problem mit einem Greedy-Algorithmus zu lösen.

Man würde sich einfach ein Minimal- und ein Maximalgewicht vorgeben und 
dann beginnend mit dem schwersten Päckchen seine Tüte packen. Immer wenn 
man das Maximum überschreitet, tut man das Päckchen zurück und versucht 
das nächstleichtere. Naja. Ein Greedy-Algorithmus halt.
Gast #5146986
Lesenswert?

> Was soll "alle Pakete ... möglichst gleich schwer" denn genau bedeuten

Ich schätze, der Lehrer möchte sehen, wie lange es dauert, bis der erste 
Schüler genau diese Frage stellt. Oder er will sehen, ob alle Schüler 
übers Wochenende darauf gekommen sind, danach zu fragen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren