2016-06-09 3 views
0

Ich löse ein Optimierungsproblem. Das Problem hat binäre Einschränkungen. Solver ist (während der Iteration) diese binären Constraints auf Dezimalstellen zwischen 0 und 1 zu setzen (Annäherung an eine entspannte Gradientensuche). Ich möchte dem Löser anzeigen, dass er nur die diskontinuierlichen Werte für 0..1 durchsuchen soll.Excel-Löser (Simplex LP) binäre Einschränkungen

Gibt es eine Möglichkeit, dies zu tun?

Gibt es alternativ dazu einen Algorithmus in OpenSolver, der Simplex-lp imitiert und ein globales Optimum bietet?

Der günstige Weg, um es zu tun, ist eine For-Schleife, und iterieren über die Werte. Ich habe mich gefragt, ob es einen Weg gibt, es so zu formulieren, dass ein nichtlineares Problem zu einem linearen Problem wird.

Danke.

+0

Solver (zB Was ist Ihre Gleichung Wie haben Sie Ihre Solver Problem einrichten usw.?) erlaubt 'bin' Einschränkungen. Achten Sie darauf, 'Simplex LP' Solver zu wählen, wenn Ihr Modell linear ist. Obwohl es Simplex LP heißt, löst es tatsächlich MIP (Mixed Integer Programming) Probleme. –

+0

Wenn es fehlschlägt, ist es oft mit partiellen Werten, die die binäre Einschränkung angeben, eine Beschränkung, die NACH dem Gradientenabfall angewendet wird (Werte> 0 und <1). Ich frage, gibt es einen linearen (MILP) Löser, der echte boolesche Werte, d. H. Solche, die diskontinuierlich 0 oder 1 sind, erlaubt. – paulgrant999

+0

Gradientenabstieg? Das macht keinen Sinn für mich. Stellen Sie sicher, dass Sie Simplex LP und nicht GRG Nichtlinear auswählen. Überprüfen Sie auch den Antwortbericht sorgfältig. –

Antwort

0

Die GRG Nonlinear und Simplex LP-Methoden verwenden beide die Branch & Bound-Methode, wenn sie mit ganzzahligen Integritätsbedingungen konfrontiert sind. Diese Methode "lockert" zuerst die Integer-Anforderung, findet eine Lösung, behebt dann eine der Integritätsbedingungen und findet eine neue Lösung. See the Solver on-line documentation.

Es ist eine Brute-Force-Suchmethode und kann eine beträchtliche Zeit dauern.

Die Evolutionary-Methode verwendet einen eigenen Algorithmus für den Umgang mit Integer-Constraints und ist in der Regel viel schneller als die beiden anderen Methoden.

Sie fragen nach einem nichtlinearen Problem Linearisieren - Sie müssen mehr spezifische Informationen bereitzustellen, um das zu beantworten

+0

"Diese Methode" entspannt "die Integer-Anforderung zuerst, findet eine Lösung" .... Ja, das weiß ich. Ich frage, ob es eine Engine zur Lösung von MIP/Simplex-Problemen mit echten binären Randbedingungen gibt, d. H. Felder, die nur den Wert 0 oder 1 annehmen können und während der iterativen Lösung NICHT entspannt sind. – paulgrant999

+0

Von [hier] (http://www.solver.com/mixed-integer-constraint-technology) heißt es, für evolutionäre Methode: "... ganzzahlige Variablen und Permutationen werden direkt dargestellt, und Kandidatenlösungen werden immer erzeugt erfüllen ganzzahlige und allfällige Nebenbedingungen. " – OldUgly