04.03.2024, 09:52 (Dieser Beitrag wurde zuletzt bearbeitet: 08.03.2024, 18:49 von Glausius.)
Hallo,
ich habe ein Problem:
im Labor wiege ich einzelne Tiegel und einzelne Deckel aus, jeweils n Stück. Die Kombination aus einem Tiegel und einem Deckel ergibt das Gesamtgewicht.
Ich möchte nun 5 möglichst gleich schwere Kombinationen aus einem Tiegel und einem Deckel erstellen. Dabei kann ich natürlich jeden Tiegel und jeden Deckel nur einmal nutzen.
Hat jemand 'ne Idee, wie ich das in Excel lösen kann?
04.03.2024, 10:31 (Dieser Beitrag wurde zuletzt bearbeitet: 08.03.2024, 18:51 von Glausius.)
Hallo B...,
in Excel löst man diese Aufgabenstellungen mit dem Solver. Da das Problem nicht kontinuierlich ist muss man den Algorithmus "EA" wählen.
Bemerkung: Zur Datengrösse
Beim Solver mit dem Algorithmus EA ist nicht immer gewährleistet, dass das beste Ergebnis ausgewiesen wird, aber bei kleinen Datenbeständen wie in deinem Beispiel erwarte ich es. Wenn du auch bei weit mehr Tiegel und Deckel das bestmögliche Ergebnis haben möchtest, könnte man ein Programm schreiben, dass geschickt alle Kombinationen testet. Ich denke, dass man in Excel Makros beste Ergebnisse auch für eine Auswahl aus 100 Tiegel und Deckel in vertretbarer Zeit ermitteln kann.
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität. Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen." Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
04.03.2024, 11:01 (Dieser Beitrag wurde zuletzt bearbeitet: 08.03.2024, 18:52 von Glausius.)
Hallo Helmut,
erstmal danke für den Tipp. Da ich vom Solver erstmal so überhaupt keine Ahnung habe, muß ich mich da mal mit beschäftigen. Hoffentlich komme ich da weiter. Ich bin leider nur ganz rudimentärer Excel-Nutzer und komme ich normalen Leben kaum über die Verknüpfung von Zellen mit Grundrechenarten raus.
Kann also sein, daß ich nochmal um Hilfe rufen muß...
04.03.2024, 11:57 (Dieser Beitrag wurde zuletzt bearbeitet: 08.03.2024, 18:54 von Glausius.)
Hallo Bembelsche,
in der Anlage eine Dateii, in der ich deine Fragestellung als Solverproblem aufbereitet habe.
Ich bin nicht mehr der Meinung, dass der Solver hiermit in diesem kleinen System immer die optimale Lösung findet, aber eine sehr gute Lösung findet er immer.
ps Ich habe die nächsten Tage keinen Zugriff auf einen Rechner. Wenn noch Fragen sind, kann das ja eventuell ein anderer Teilnehmer beantworten oder ich melde mich am Freitag wieder.
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität. Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen." Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
1. Solver Wie schon geschrieben glaube ich nicht mehr, dass eine Solverlösung auch für dein kleines Beispiel immer die beste Lösung findet. Manchmal verfängt sich der Algorithmus in einem lokalen Minimum. Daher habe ich in der Anlage deine Fragestellung noch einmal mit mit zwei Makros gelöst.
2. "Tuwatt" In diesem Arbeitsblatt kann man über den Button das Makro aufrufen, dass alle Kombinationen durchspielt. Es dauert für dein Beispiel auf meinem Rechner ca 5 Sekunden. Aber schon bei 12 Tiegel und 12 Deckel benötigt das Makro ca eine Minute. Da ich in der Schnelle keine Idee habe wie ich einige Kombinations-Zweige vorzeitig abbrechen kann, habe ich ein zweites Makro unter "Tusanders"geschrieben, dass aber nicht mehr die Quadratsumme der Abweichungen zum Mittelwert minimiert, sondern nur noch die Differenz des schwertsen und leichtesten Paares.
3. "Tusanders" In diesem Programm können viele Zweige vorzeitig abgebrochen werden, so dass die Ausführzeit wesentlich kürzer ist.
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität. Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen." Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.