Wie mithilfe von ganzzahliger linearer Optimierungsprobleme

October 14

Wie mithilfe von ganzzahliger linearer Optimierungsprobleme

Ganzzahlige lineare Programmierung ist die Wissenschaft der Modellierung ein Problem, das entweder minimiert oder eine Zielfunktion, unter einer Reihe von Einschränkungen maximiert, ausgedrückt als lineare Ungleichungen. Wenn vollständig gelöst, garantiert die Lösung für die ganzzahliges lineares Programm die optimale Lösung für das Problem. Die Komplexität des Problems skaliert jedoch exponentiell mit der Problemgröße. Daher kann es dauern, eine lange Zeit, die endgültige Lösung herbeizuführen. Alternativ kann das Problem teilweise gelöst und verschiedene Heuristiken erkundet werden, um eine suboptimale Lösung in einer kürzeren Zeit zu erhalten.

Anweisungen

Formulieren und lösen linearer Programme

1 Entscheiden Sie, ob das Problem ein "Maximierung" oder eine "Reduzierung" Problem ist. Eine Maximierung Problem versucht eine Lösung zu finden solche wo die Zielfunktion maximiert ist. Ein Problem der Minimierung versucht, eine Lösung zu finden, in denen die Zielfunktion minimiert ist. Das Problem den kürzesten Weg zwischen zwei Punkten zu finden ist beispielsweise eine Minimierung-Problem. Auf der anderen Seite ist das Problem, die maximale Anzahl unterschiedlich große Steine in einer Flasche packen eine Maximierung-Problem.

2 Entscheiden Sie die Variablen für die Formulierung erforderliche. Wählen die richtige Menge von Variablen ist notwendig zur Minimierung der Komplexität des Problems und entsprechend die Lösung schneller erreichen. Jede Entität, deren Wert wirkt sich auf die endgültige Lösung, ist in der Regel eine Variable.

3 Modell der Zielfunktion. Die Zielfunktion wird als Summe der Produkte der Variablen und deren Auswirkungen auf die endgültige Lösung modelliert. Beispielsweise wenn das Problem ist den Abstand zwischen zwei Knoten in einem Graphen zu minimieren, jede Verbindung zwischen zwei Knoten wird eine Variable, die einen Wert von 0 oder 1 annehmen und seinen Beitrag zu der Zielfunktion wird der Abstand zwischen den Knoten sein. In diesem Fall kann die Variable aufgerufen werden "X(i,j)," wo "Ich" und "j" zwei beliebigen Knoten im Graphen sind, und der Abstand zwischen den beiden Knoten kann "V(i,j)." X(i,j) wird 1 sein, wenn die Verbindung der endgültige Pfad zwischen zwei Knoten gehört. Daher werden die Zielfunktion, die Summe der V(i,j) zu minimieren * X(i,j), wo die Summe über alle Verbindungen ist.

4 Richten Sie die Einschränkungen. Die Einschränkungen sollten die Beschränkungen des Problems erfassen. Der kürzeste Pfad beispielsweise gibt es die folgenden Einschränkungen:

X(i,j) kann entweder 0 oder 1 sein. Daher sollte X(i,j) sein, größer als oder gleich 0 und X(i,j) sollte kleiner oder gleich 1 sein.

Wenn Verbindung X(i,j) ist entschieden, genau eine Verbindung von Knoten "j" zu einem anderen Knoten außer "Ich" gewählt werden sollte. Also X(i,j) sollte größer oder gleich der Summe aller Variablen des Typs X (j, k), wo "k" ist nicht gleich "ich."

Eine Verbindung vom Startknoten sollte ausgewählt werden. Daher sollte die Summe der X(n,k) 1, sein, die "n" wird der Startknoten. Ebenso die Summe von X (k, m) sollte 1, wo "m" die End-Knoten ist.

5 Modellieren Sie das Problem in der Mathematical Programming System (MPS) Format oder die lineare Programmierung (LP)-Format.

6 Kaufen Sie einen kommerziellen Solver wie FICO oder CLPEX oder laden Sie eine kostenlose Solver wie GLPK. Beachten Sie, das kostenlose Löser sind viel langsamer als die kommerziellen Löser und möglicherweise nicht geeignet für große Probleme zu lösen.

7 Wenn Solver nicht um die endgültige Lösung in angemessener Zeit konvergiert, versuchen Sie Heuristik. Eine heuristische könnte die Ganzzahl-Einschränkungen für die Variablen entfernen und Angleichung der Variablen auf die nächste Ganzzahl um eine suboptimale Lösung zu erhalten.

Tipps & Warnungen

  • Wenn Ihr Problem groß ist, stellen Sie sicher, dass Ihr Computer viel Rechenleistung und viel Speicher verfügt. Lineare Programmierung Löser verbrauchen viel Speicher und Verarbeitungsressourcen.