Solve-Rechnung optimieren
#1
Hallo,

folgendes Setup: Ich habe "n" Menge an positiven Zahlen. Ziel ist es eine bestimmte Summe "S" mit mit genau "10" Zahlen von n zu bilden - beziehungsweise der Summe S so nah wie möglich zu kommen.

Ich habe nun eine excel Tabelle erstellt (nach diesem Vorbild: https://www.youtube.com/watch?v=Oxt9V_qDiIA) - ich habe lediglich eine Nebenbedingung hinzugefügt, welche checkt dass auch wirklich genau 10 Zahlen verwendet werden.

Das Problem ist nur dass excel trotzdem alle möglichen Kombinationen zusammenrechnet und dann erst checkt ob nur 10 Zahlen verwendet worden sind - wodurch der Ausrechnungsprozess extrem verlängert wird. Kann man Excel irgendwie gleich sagen dass nur 10 Zahlen verwendet werden sollen?

Außerdem habe ich noch eine Frage: Wenn mein gewünschter Wert nicht erreicht wird kommt eine Meldung dass der Solve fehlgeschlagen ist. Kann man irgendwie einstellen dass mir stattdessen der Wert angezeigt wird, der der Summe S am nähesten kommt?

Vielen Dank im Voraus!
Antworten Top
#2
Hallo L...,

A) Solver
1. Nebenbedingungen">=0" und "<=1"
Diese Nebenbedingungen sind nicht notwendig, da binäre Variablen nur 0 oder 1 sein können.
2. Methode
Da die Variablen binär (= nicht-kontinuierlich) sind würde ich die Methode EA nutzen.
3. nächster Wert
Quadriere in einer Zelle die Differenz zum Zielwert und suche mit der Optimierung das Minimum für diese Zelle.

B) Makro
Der Solver ermittelt nur eine optimale Lösung. Mit dem Makro in der Anlage werden mehrere Kombinationen ausgewiesen, wenn sie den Bedingungen entsprechen.


Angehängte Dateien
.xlsm   KombinationssummeMk.xlsm (Größe: 34,74 KB / Downloads: 6)
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.





Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste