Ganzzahlprogrammierung
Ein Ganzzahlprogrammierung Problem ist a Mathematische Optimierung oder Durchführbarkeit Programm, in dem einige oder alle Variablen beschränkt sind Ganzzahlen. In vielen Einstellungen bezieht sich der Begriff auf ganze Zahl Lineares Programmieren (ILP), in dem die objektive Funktion und die Einschränkungen (außer den Ganzzahlbeschränkungen) sind linear.
Ganzzahlprogrammierung ist NP-Complete. Insbesondere der Sonderfall einer 0-1 Ganzzahl linearen Programmierung, in der Unbekannte binär sind und nur die Einschränkungen erfüllen, ist einer davon von Karps 21 NP-Complete-Probleme.
Wenn einige Entscheidungsvariablen nicht diskret sind, wird das Problem als a bezeichnet Mixed-Isolier-Programmierung Problem.[1]
Kanonische und Standardform für ILPs
In ganzzahliger linearer Programmierung, kanonische Form unterscheidet sich von Standardform. Ein ganzzahliges lineares Programm in kanonischer Form wird so ausgedrückt (beachten Sie, dass es das ist Vektor, der entschieden werden soll):[2]
und ein ILP in Standardform wird ausgedrückt als
wo sind Vektoren und ist eine Matrix, in der alle Einträge Ganzzahlen sind. Wie bei linearen Programmen kann ILPs nicht in Standardform sein konvertiert in Standardform Durch die Beseitigung von Ungleichheiten und Einführung von Slack -Variablen () und Ersetzen von Variablen, die nicht mit der Differenz von zwei signalbeschränkten Variablen einbeschränkt sind
Beispiel

Die Handlung rechts zeigt das folgende Problem.
Die praktikablen Ganzzahlpunkte sind rot dargestellt, und die roten gestrichelten Linien zeigen ihren konvexen Rumpf an, das das kleinste konvexe Polyeder, das alle diese Punkte enthält. Die blauen Linien zusammen mit den Koordinatenachsen definieren das Polyeder der LP -Relaxation, die durch die Ungleichheiten ohne Integralitätsbeschränkung angegeben ist. Das Ziel der Optimierung ist es, die schwarz gestrichelte Linie so weit nach oben zu bewegen und gleichzeitig das Polyeder zu berühren. Die optimalen Lösungen des Ganzzahlproblems sind die Punkte und die beide einen objektiven Wert von 2. Das einzigartige Optimum der Entspannung haben mit objektivem Wert von 2,8. Wenn die Lösung der Entspannung auf die nächsten Ganzzahlen gerundet ist, ist sie für das ILP nicht möglich.
Beweis der NP-Härte
Das Folgende ist eine Reduzierung von Minimum Scheitelpunktabdeckung zur Ganzzahl-Programmierung, die als Beweis für die NP-Härte dienen wird.
Lassen eine ungerichtete Grafik sein. Definieren Sie ein lineares Programm wie folgt:
Da die Einschränkungen begrenzt sind Zu 0 oder 1 ist jede realisierbare Lösung für das Ganzzahlprogramm eine Teilmenge von Scheitelpunkten. Die erste Einschränkung impliziert, dass mindestens ein Endpunkt jeder Kante in dieser Untergruppe enthalten ist. Daher beschreibt die Lösung eine Scheitelpunktabdeckung. Zusätzlich ein paar Scheitelpunkte Cover c, kann für jeden auf 1 gesetzt werden und zu 0 für jeden So geben Sie uns eine praktikable Lösung für das Ganzzahlprogramm. Daher können wir zu dem Schluss kommen, wenn wir die Summe von minimieren Wir haben auch die minimale Scheitelpunktabdeckung gefunden.[3]
Varianten
Lineare Programmierung mit gemischtem Intenz (Milp) beinhaltet Probleme, bei denen nur einige der Variablen, , werden als Ganzzahlen eingeschränkt, während andere Variablen Nicht-Ingern sein dürfen.
Null-ein-lineare Programmierung (oder Binär -Ganzzahl -Programmierung) beinhaltet Probleme, bei denen die Variablen entweder 0 oder 1 beschränkt sind. Jede begrenzte Ganzzahlvariable kann als Kombination von binären Variablen ausgedrückt werden.[4] Zum Beispiel bei einer Ganzzahlvariablen, Die Variable kann mit Verwendung ausgedrückt werden Binäre Variablen:
Anwendungen
Es gibt zwei Hauptgründe für die Verwendung von Ganzzahlvariablen bei der Modellierung von Problemen als lineares Programm:
- Die Ganzzahlvariablen repräsentieren Größen, die nur ganzzahlig sein können. Zum Beispiel ist es nicht möglich, 3.7 Autos zu bauen.
- Die Ganzzahlvariablen stellen Entscheidungen dar (z. B. ob eine Kante in a einbezogen werden soll Graph) und sollte also nur den Wert 0 oder 1 annehmen.
Diese Überlegungen treten häufig in der Praxis auf und so können in vielen Anwendungsbereichen eine ganzzahlige lineare Programmierung verwendet werden, von denen einige kurz nachstehend beschrieben werden.
Produktionsplanung
Die Mischtätigkeitsprogrammierung enthält viele Anwendungen in Industrieproduktionen, einschließlich der Modellierung von Job-Shop-Modellen. Ein wichtiges Beispiel tritt in landwirtschaftlichen Produktionsplanung beinhaltet die Bestimmung der Produktionsrendite für mehrere Pflanzen, die Ressourcen teilen können (z. B. Land, Arbeit, Kapital, Saatgut, Dünger usw.). Ein mögliches Ziel ist es, die Gesamtproduktion zu maximieren, ohne die verfügbaren Ressourcen zu überschreiten. In einigen Fällen kann dies in Bezug auf ein lineares Programm ausgedrückt werden, aber die Variablen müssen als Ganzzahl beschränkt werden.
Planung
Diese Probleme umfassen Service- und Fahrzeugplanung in Transportnetzwerken. Beispielsweise kann ein Problem dazu beitragen, dass Sie einzelne Routen Busse oder U -Bahnen zuweisen, damit ein Zeitplan erfüllt werden kann, und um sie auch mit Fahrern auszurüsten. Hier sind binäre Entscheidungsvariablen an, ob ein Bus oder eine U -Bahn einer Route zugeordnet ist und ob ein Fahrer einem bestimmten Zug oder einer bestimmten U -Bahn zugeordnet ist. Die Null-One-Programmierungstechnik wurde erfolgreich angewendet, um ein Projektauswahlproblem zu lösen, bei dem sich Projekte gegenseitig ausschließen und/oder technologisch voneinander abhängig sind. Es wird in einem Sonderfall einer Ganzzahl -Programmierung verwendet, bei der alle Entscheidungsvariablen Ganzzahlen sind. Es kann die Werte entweder als Null oder eins annehmen.
Territoriale Aufteilung
Territorialer Aufteilung oder Distriktproblem besteht darin, eine geografische Region in Distrikte zu teilen, um einige Operationen zu planen und gleichzeitig unterschiedliche Kriterien oder Einschränkungen zu berücksichtigen. Einige Anforderungen für dieses Problem sind: Kontiguität, Kompaktheit, Gleichgewicht oder Gerechtigkeit, Respekt der natürlichen Grenzen und sozioökonomische Homogenität. Einige Bewerbungen für diese Art von Problem umfassen: politische Distriktion, Distriktieren des Gesundheitswesens, Distriktieren von Abfallmanagement.
Telekommunikationsnetzwerke
Das Ziel dieser Probleme ist es, ein zu installierendes Netzwerk zu entwerfen, damit ein vordefinierter Satz von Kommunikationsanforderungen erfüllt und die Gesamtkosten des Netzwerks minimal sind.[5] Dies erfordert sowohl die Topologie des Netzwerks als auch die Einstellung der Kapazitäten der verschiedenen Linien. In vielen Fällen werden die Kapazitäten als ganzzahlige Größen eingeschränkt. In der Regel gibt es je nach verwendeten Technologie zusätzliche Einschränkungen, die als lineare Ungleichungen mit Ganzzahl- oder Binärvariablen modelliert werden können.
Zelluläre Netzwerke
Die Aufgabe der Frequenzplanung in GSM Mobile Networks umfasst die Verteilung verfügbarer Frequenzen über die Antennen, damit Benutzer bedient werden können und zwischen den Antennen eine Störung minimiert wird.[6] Dieses Problem kann als ganzzahliger lineares Programm formuliert werden, in dem binäre Variablen angeben, ob einer Antenne eine Frequenz zugeordnet ist.
Andere Anwendungen
Algorithmen
Die naive Art, einen ILP zu lösen, besteht darin, einfach die Einschränkung zu entfernen, die x ist ganzzahlig, die entsprechende LP (genannt die genannt LP -Entspannung des ILP) und dann die Einträge der Lösung für die LP -Relaxation. Aber diese Lösung darf jedoch nicht nur optimal sein, sie ist möglicherweise nicht einmal machbar. Das heißt, es kann gegen eine Einschränkung verstoßen.
Verwenden der gesamten Unimodularität
Im Allgemeinen wird die Lösung für die LP -Relaxation nicht garantiert als integraler, wenn das ILP die Form hat so dass wo und alle Ganzzahleinträge haben und ist Völlig unimodulardann ist jede grundlegende realisierbare Lösung integral. Folglich die von der zurückgegebene Lösung Simplex -Algorithmus ist garantiert integral. Um zu zeigen, dass jede grundlegende realisierbare Lösung integral ist, lassen Sie es eine willkürliche grundlegende realisierbare Lösung sein. Seit ist machbar, wir wissen das . Lassen Seien Sie die Elemente, die den Basisspalten für die Grundlösung entsprechen . Per Definition einer Basis gibt es einige quadratische Submatrix von mit linear unabhängigen Spalten so, dass .
Da die Spalten von sind linear unabhängig und ist quadratisch, ist nicht singulär und daher durch Annahme, ist unimodular und so . Auch seit ist nichtsingulär, es ist invertierbar und daher . Per Definition, . Hier bezeichnet die Adjugate von und ist integral weil ist integral. Deswegen,
Wenn also die Matrix eines ILP ist völlig unimodular, anstatt einen ILP -Algorithmus zu verwenden, die Simplex -Methode kann verwendet werden, um die LP -Relaxation zu lösen, und die Lösung ist ganzzahlig.
Exakte Algorithmen
Wenn die Matrix ist nicht völlig unimodular, es gibt eine Vielzahl von Algorithmen, mit denen genaue lineare Programme genau gelöst werden können. Eine Klasse von Algorithmen ist Schneidebene Methoden Welche Lösung der LP -Relaxation und Anschließung linearer Einschränkungen, die die Lösung dazu bringen, ganzzahlig zu sein, ohne ganzzahlige machbare Punkte auszuschließen.
Eine andere Klasse von Algorithmen sind Varianten der Zweig und gebunden Methode. Zum Beispiel die Zweig und Schnitt Methode, die sowohl Zweig- als auch gebundene und Schnittebene -Methoden kombiniert. Zweig- und gebundene Algorithmen haben eine Reihe von Vorteilen gegenüber Algorithmen, die nur Schneidebenen verwenden. Ein Vorteil ist, dass die Algorithmen frühzeitig beendet werden können und solange mindestens eine integrale Lösung gefunden wurde, kann eine machbare, wenn auch nicht unbedingt optimale Lösung zurückgegeben werden. Darüber hinaus können die Lösungen der LP-Relaxationen verwendet werden, um eine Schätzung der Worst-Case zu liefern, wie weit die zurückgegebene Lösung von der Optimalität entfernt ist. Schließlich können Zweig- und gebundene Methoden verwendet werden, um mehrere optimale Lösungen zurückzugeben.
Exakte Algorithmen für eine kleine Anzahl von Variablen
Vermuten ist ein m-durch-n Ganzzahlmatrix und ist ein m-By-1 Ganzzahlvektor. Wir konzentrieren uns auf das Machbarkeitsproblem, das darin besteht, zu entscheiden, ob es eine gibt n-By-1-Vektor befriedigend .
Lassen V der maximale Absolutwert der Koeffizienten in sein und . Wenn n (Die Anzahl der Variablen) ist eine feste Konstante, dann kann das Machbarkeitsproblem in der Zeitpolynom in gelöst werden m und Protokoll V. Dies ist trivial für den Fall n= 1. Der Fall n= 2 wurde 1981 von gelöst von Herbert Schal.[11] Der allgemeine Fall wurde 1983 von gelöst von Hendrik LenstraIdeen kombinieren von Laszlo Lovasz und Peter van Emde Boas.[12]
Im Sonderfall von 0-1 ILP entspricht der Lenstra-Algorithmus der vollständigen Aufzählung: Die Anzahl aller möglichen Lösungen ist festgelegt (2n) und die Überprüfung der Machbarkeit jeder Lösung kann rechtzeitig poly durchgeführt werden (m, Protokoll V). Im allgemeinen Fall, in dem jede Variable eine willkürliche Ganzzahl sein kann, ist eine vollständige Aufzählung unmöglich. Hier verwendet der Algorithmus von Lenstra Ideen von Geometrie der Zahlen. Es verwandelt das ursprüngliche Problem in eine äquivalente mit der folgenden Eigenschaft: entweder die Existenz einer Lösung ist offensichtlich oder der Wert von (das n-D -Variable) gehört zu einem Intervall, dessen Länge durch eine Funktion von begrenzt ist n. Im letzteren Fall wird das Problem auf eine begrenzte Anzahl von niedrigerdimensionalen Problemen reduziert. Die Laufzeitkomplexität des Algorithmus wurde in mehreren Schritten verbessert:
- Der ursprüngliche Algorithmus von Lensstra[12] hatte Laufzeit .
- Kannan[13] präsentierte einen verbesserten Algorithmus mit der Laufzeit .[14]
- Frank und Tardos[15] präsentierte einen anderen verbesserten Algorithmus. Die verbesserte Laufzeit ist , wo ist die Anzahl der Eingangsbits,[16] welches ist in .[17]: Prop.8
Der Algorithmus von Lenstra impliziert, dass ILP auch im Dual-Fall polynomiale Zeit lösbar ist, in dem n variiert aber m (Die Anzahl der Einschränkungen) ist konstant.
Heuristische Methoden
Da die ganzzahlige lineare Programmierung ist Np-harte, viele Probleminstanzen sind unlösbar und daher müssen stattdessen heuristische Methoden angewendet werden. Zum Beispiel, Tabu -Suche Kann verwendet werden, um nach Lösungen für ILPs zu suchen.[18] Um die Tabu-Suche zur Lösung von ILPs zu verwenden, können Bewegungen als Inkrementierung oder Dekrementierung einer ganzzahligen, eingeschränkten Variablen einer praktikablen Lösung definiert werden, während alle anderen ganzzahligen Variablen konstant bleiben. Die uneingeschränkten Variablen werden dann für gelöst. Das Kurzzeitgedächtnis kann aus zuvor ausprobierten Lösungen bestehen, während mittelfristiger Gedächtnis aus Werten für die ganzzahligen beschränkten Variablen bestehen kann, die zu hohen objektiven Werten geführt haben (unter der Annahme, dass das ILP ein Maximierungsproblem ist). Schließlich kann der Langzeitgedächtnis die Suche nach ganzzahligen Werten führen, die zuvor noch nicht ausprobiert wurden.
Andere heuristische Methoden, die auf ILPs angewendet werden können
- Berg steigen
- Simuliertes Glühen
- Reaktive Suchoptimierung
- Ameisenkolonieoptimierung
- Hopfield Neural Networks
Es gibt auch eine Vielzahl anderer problemspezifischer Heuristiken wie die k-opt heuristisch Für das Problem des reisenden Verkäufers. Ein Nachteil heuristischer Methoden ist, dass es nicht festgelegt werden kann, ob es keine realisierbare Lösung gibt oder ob der Algorithmus einfach keine finden konnte, wenn sie keine Lösung finden, nicht festgelegt werden kann. Darüber hinaus ist es normalerweise unmöglich zu quantifizieren, wie nahe eine nach diesen Methoden zurückgegebene Lösung an optimaler Weise ist.
Spärliche Ganzzahl -Programmierung
Es ist oft der Fall, dass die Matrix das definiert das Ganzzahlprogramm ist spärlich. Dies tritt insbesondere auf, wenn die Matrix eine Blockstruktur aufweist, die in vielen Anwendungen der Fall ist. Die Sparsität der Matrix kann wie folgt gemessen werden. Das Graph von hat Scheitelpunkte, die Spalten von entsprechen und zwei Spalten bilden eine Kante, wenn hat eine Zeile, in der beide Spalten ungleich Null Einträge haben. Äquivalent entsprechen die Eckpunkte Variablen, und zwei Variablen bilden eine Kante, wenn sie eine Ungleichheit teilen. Das Sparsity -Maß von ist das Minimum zwischen dem Baumtiefe der Grafik von und die Baumtiefe der Grafik der Transponierung von . Lassen sei der Numerische Maßnahme von definiert als maximaler Absolutwert eines Eintrags von . Lassen Seien Sie die Anzahl der Variablen des Ganzzahlprogramms. Dann wurde es 2018 gezeigt[19] Diese Ganzzahl -Programmierung kann in gelöst werden stark polynomisch und Fix-Parameter-Traktable Zeit parametrisiert durch und . Das heißt, für eine rechenbare Funktion und einige konstant Die Ganzzahlprogrammierung kann rechtzeitig gelöst werden . Insbesondere ist die Zeit unabhängig von der rechten Seite und objektive Funktion . Darüber hinaus im Gegensatz zu dem klassischen Ergebnis von Lenstra, wo die Zahl Variablen ist ein Parameter, hier die Zahl Variablen ist ein variabler Teil der Eingabe.
Siehe auch
Verweise
- ^ "Lineare Programmierung mit gemischtem Integer (MILP): Modellformulierung" (PDF). Abgerufen 16. April 2018.
- ^ Papadimitriou, C. H.; Steiglitz, K. (1998). Kombinatorische Optimierung: Algorithmen und Komplexität. Mineola, NY: Dover. ISBN 0486402584.
- ^ Erickson, J. (2015). "Integer -Programmierreduzierung" (PDF). Archiviert von das Original (PDF) am 18. Mai 2015.
- ^ Williams, H.P. (2009). Logik- und Ganzzahlprogrammierung. Internationale Serie in Operations Research & Management Science. Vol. 130. ISBN 978-0-387-92280-5.
- ^ Borndörfer, R.; Grötschel, M. (2012). "Gestaltung von Telekommunikationsnetzwerken durch Ganzzahlprogrammierung" (PDF).
- ^ Sharma, Deepak (2010). "Frequenzplanung".
- ^ Morais, Hugo; Kádár, Péter; Faria, Pedro; Vale, Zita A.; Khodr, H. M. (2010-01-01). "Optimale Planung eines erneuerbaren Mikronetzes in einem isolierten Lastbereich unter Verwendung einer linearen Programmierung mit gemischtem Integer". Erneuerbare Energie. 35 (1): 151–156. doi:10.1016/j.renene.2009.02.031. HDL:10400.22/1585. ISSN 0960-1481.
- ^ Omu, Akomeno; Choudhary, Ruchi; Boies, Adam (2013-10-01). "Optimierung des verteilten Energy Resource Systems mit gemischter ganzzahliger linearer Programmierung". Energiepolitik. 61: 249–266. doi:10.1016/j.enpol.2013.05.009. ISSN 0301-4215.
- ^ Schouwenaars, T.; Valenti, M.; Feron, E.; Wie, J. (2005). "Implementierung und Flugtestergebnisse der MILP-basierten UAV-Anleitung". 2005 IEEE Aerospace Conference: 1–13. doi:10.1109/aero.2005.1559600. ISBN 0-7803-8870-4. S2CID 13447718.
- ^ Radmanesh, Mohammadreza; Kumar, Manish (2016-03-01). "Flugbildung von UAVs in Gegenwart von sich bewegenden Hindernissen unter Verwendung eines schnell dynamischen gemischten Ganzzahl linearen Programmieren". Luft- und Raumfahrtwissenschaft und Technologie. 50: 149–160. doi:10.1016/j.ast.2015.12.021. ISSN 1270-9638.
- ^ Scarf, Herbert E. (1981). "Produktionssätze mit Univisität, Teil I: Allgemeinheiten". Econometrica. 49 (1): 1–32. doi:10.2307/1911124. ISSN 0012-9682. JStor 1911124.
- ^ a b Lenstra, H. W. (1983-11-01). "Ganzzahlprogrammierung mit einer festen Anzahl von Variablen". Mathematics of Operations Research. 8 (4): 538–548. Citeseerx 10.1.1.431.5444. doi:10.1287/moor.8.4.538. ISSN 0364-765X.
- ^ Kannan, Ravi (1987-08-01). "Minkowskis konvexer Körpersatz und Ganzzahlprogrammierung". Mathematics of Operations Research. 12 (3): 415–440. doi:10.1287/moor.12.3.415. ISSN 0364-765X.
- ^ Goemans, Michel X.; Rothvoss, Thomas (2020-11-07). "Polynomie für die Behälterpackung mit einer konstanten Anzahl von Artikeltypen". Journal of the ACM. 67 (6): 38: 1–38: 21. doi:10.1145/3421750. HDL:1721.1/92865. ISSN 0004-5411. S2CID 227154747.
- ^ Frank, András; TARDOS, ÉVA (1987-03-01). "Eine Anwendung der gleichzeitigen diophantinischen Näherung bei der kombinatorischen Optimierung". Combinatorica. 7 (1): 49–65. doi:10.1007/bf02579200. ISSN 1439-6912. S2CID 45585308.
- ^ Bliem, Bernhard; Bredereck, Robert; Niedermeier, Rolf (2016-07-09). "Komplexität der effizienten und beneidungsfreien Ressourcenzuweisung: wenige Agenten, Ressourcen oder Nutzenebenen". Verfahren der fünfundzwanzigsten gemeinsamen gemeinsamen Konferenz über künstliche Intelligenz. Ijcai'16. New York, New York, USA: AAAI Press: 102–108. ISBN 978-1-57735-770-4.
- ^ Bredereck, Robert; Kaczmarczyk, Andrzej; Knop, Dušan; Niedermeier, Rolf (2019-06-17). "High-Multiplicity Fair Allocation: Lenstra befähigt durch n-fach Integer-Programmierung". Verfahren der ACM -Konferenz 2019 über Wirtschaft und Berechnung. EC '19. Phoenix, AZ, USA: Assoziation für Computermaschinen: 505–523. doi:10.1145/3328526.3329649. ISBN 978-1-4503-6792-9. S2CID 195298520.
- ^ Glover, F. (1989). "Tabu Suchpartei II". Orsa Journal über Computing. 1 (3): 4–32. doi:10.1287/ijoc.2.1.4. S2CID 207225435.
- ^ Koutecký, Martin; Levin, Asaf; Onn, Shmuel (2018). "Ein parametrisierter stark polynomialer Algorithmus für blockstrukturierte Ganzzahlprogramme". Michael Wagner: 14 Seiten. Arxiv:1802.05859. doi:10.4230/lipics.icalp.2018.85. S2CID 3336201.
{{}}
: Journal zitieren erfordert|journal=
(Hilfe)
Weitere Lektüre
- George L. Nemhauser; Laurence A. Wolsey (1988). Ganzzahl und kombinatorische Optimierung. Wiley. ISBN 978-0-471-82819-8.
- Alexander Schrijver (1998). Theorie der linearen und ganzzahligen Programmierung. John Wiley und Söhne. ISBN 978-0-471-98232-6.
- Laurence A. Wolsey (1998). Ganzzahlprogrammierung. Wiley. ISBN 978-0-471-28366-9.
- Dimitris Bertsimas; Robert Weismantel (2005). Optimierung über Ganzzahlen. Dynamische Ideen. ISBN 978-0-9759146-2-5.
- John K. Karlof (2006). Ganzzahlprogrammierung: Theorie und Praxis. CRC Press. ISBN 978-0-8493-1914-3.
- H. Paul Williams (2009). Logik- und Ganzzahlprogrammierung. Springer. ISBN 978-0-387-92279-9.
- Michael Jünger; Thomas M. liegend; Denis Naddef; George Nemhauser; William R. Pulleyblank; Gerhard Reinelt; Giovanni Rinaldi; Laurence A. Wolsey, Hrsg. (2009). 50 Jahre ganzzahlige Programmierung 1958-2008: Von den ersten Jahren bis zur hochmodernen Art. Springer. ISBN 978-3-540-68274-5.
- Der-san Chen; Robert G. Batson; Yu Dang (2010). Angewandte Ganzzahlprogrammierung: Modellierung und Lösung. John Wiley und Söhne. ISBN 978-0-470-37306-4.
- Gerard Sierksma; Yori Zwols (2015). Lineare und ganzzahlige Optimierung: Theorie und Praxis. CRC Press. ISBN 978-1-498-71016-9.