Kors-kors-algoritm
I matematisk optimering är kors och tvärs-algoritmen vilken som helst av en familj av algoritmer för linjär programmering . Varianter av kors-kors-algoritmen löser också mer allmänna problem med linjära olikhetsbegränsningar och icke-linjära objektiva funktioner ; det finns kors och tvärs algoritmer för linjär-fraktionella programmeringsproblem , kvadratiska programmeringsproblem och linjära komplementaritetsproblem .
Liksom simplexalgoritmen av George B. Dantzig , är kors-korsalgoritmen inte en polynom-tidsalgoritm för linjär programmering. Båda algoritmerna besöker alla 2 D- hörnen av en (störd) kub i dimension D , Klee –Minty-kuben (efter Victor Klee och George J. Minty ), i värsta fall . Men när den startas i ett slumpmässigt hörn besöker kors-kors-algoritmen i genomsnitt endast D ytterligare hörn. Således, för den tredimensionella kuben, besöker algoritmen alla 8 hörn i värsta fall och exakt 3 ytterligare hörn i genomsnitt.
Historia
Kors-kors-algoritmen publicerades oberoende av Tamas Terlaky och av Zhe-Min Wang; relaterade algoritmer förekom i opublicerade rapporter från andra författare.
Jämförelse med simplexalgoritmen för linjär optimering
I linjär programmering svänger kors och tvärs algoritmen mellan en sekvens av baser men skiljer sig från simplexalgoritmen . Simplexalgoritmen hittar först en (primal-) genomförbar bas genom att lösa ett " fas-ett- problem"; i "fas två" svänger simplexalgoritmen mellan en sekvens av grundläggande genomförbara lösningar så att den objektiva funktionen inte minskar med varje pivot, och avslutas med en optimal lösning (även att hitta en "dubbel genomförbar" lösning).
Kors-algoritmen är enklare än simplex-algoritmen, eftersom kors-kors-algoritmen bara har en fas. Dess pivoteringsregler liknar den minsta index pivoteringsregeln för Bland . Blands regel använder endast tecken på koefficienter snarare än deras ordning (reella tal) när de bestämmer valbara pivoter. Blands regel väljer en ingående variabel genom att jämföra värden för reducerade kostnader, med hjälp av den verkliga ordningen för de kvalificerade pivoterna. Till skillnad från Blands regel är kors och tvärs-algoritmen "rent kombinatorisk", och väljer en ingående variabel och en utgående variabel genom att endast beakta tecknen på koefficienter snarare än deras ordning på reella tal. Kors och tvärs-algoritmen har använts för att tillhandahålla konstruktiva bevis på grundläggande resultat i linjär algebra , såsom Lemma av Farkas .
Medan de flesta simplexvarianter är monotona i objektivet (enbart i det icke-degenererade fallet), saknar de flesta varianter av kors och tvärs-algoritmen en monoton meritfunktion, vilket kan vara en nackdel i praktiken.
Beskrivning
Kors och tvärs-algoritmen fungerar på en vanlig pivottabell (eller on-the-fly beräknade delar av en tablå, om den implementeras som den reviderade simplexmetoden). I ett allmänt steg, om tablån är primal eller dubbel omöjlig, väljer den en av de omöjliga raderna/kolumnerna som pivotraden/kolumnen med hjälp av en indexvalsregel. En viktig egenskap är att valet görs på union av de omöjliga indexen och standardversionen av algoritmen särskiljer inte kolumn- och radindex (det vill säga kolumnindexen grundläggande i raderna). Om en rad väljs så använder algoritmen indexvalsregeln för att identifiera en position till en pivot av dubbel typ, medan om en kolumn väljs så använder den indexvalsregeln för att hitta en radposition och utför en pivot av primärtyp.
Beräkningskomplexitet: Värsta och genomsnittliga fall
Tidskomplexiteten för en algoritm räknar antalet aritmetiska operationer som är tillräckligt för att algoritmen ska lösa problemet. Till exempel Gaussisk eliminering i storleksordningen D 3 operationer , och så sägs den ha polynomisk tidskomplexitet, eftersom dess komplexitet begränsas av ett kubiskt polynom . Det finns exempel på algoritmer som inte har polynom-tidskomplexitet. Till exempel har en generalisering av Gauss eliminering som kallas Buchbergers algoritm för sin komplexitet en exponentiell funktion av problemdata ( graden av polynomen och antalet variabler för de multivariata polynomen ). Eftersom exponentialfunktioner så småningom växer mycket snabbare än polynomfunktioner, innebär en exponentiell komplexitet att en algoritm har långsam prestanda på stora problem.
Flera algoritmer för linjär programmering - Khachiyans ellipsoidala algoritm , Karmarkars projektiva algoritm och central-path-algoritmer - har polynomisk tidskomplexitet (i värsta fall och därmed i genomsnitt ). De ellipsoidala och projektiva algoritmerna publicerades före kors-kors-algoritmen.
Men liksom simplexalgoritmen i Dantzig är kors-korsalgoritmen inte en polynom-tidsalgoritm för linjär programmering. Terlakys kors och tvärs-algoritm besöker alla 2 D- hörnen i en (störd) kub i dimension D , enligt en tidning från Roos; Roos papper modifierar Klee -Minty-konstruktionen av en kub där simplexalgoritmen tar 2D- steg . Precis som simplexalgoritmen besöker kors och tvärs algoritmen alla 8 hörn av den tredimensionella kuben i värsta fall.
När den initieras i ett slumpmässigt hörn av kuben besöker kors och tvärs-algoritmen endast D ytterligare hörn, dock enligt en artikel från 1994 av Fukuda och Namiki. Trivialt tar simplexalgoritmen i genomsnitt D- steg för en kub. Liksom simplexalgoritmen besöker kors-korsalgoritmen exakt 3 ytterligare hörn av den tredimensionella kuben i genomsnitt.
Varianter
Kryss-algoritmen har utökats för att lösa mer allmänna problem än linjära programmeringsproblem.
Andra optimeringsproblem med linjära begränsningar
Det finns varianter av kors-kors-algoritmen för linjär programmering, för kvadratisk programmering och för linjär-komplementaritetsproblemet med "tillräckliga matriser"; omvänt, för linjära komplementaritetsproblem, avslutas kors-kors-algoritmen ändligt endast om matrisen är en tillräcklig matris. En tillräcklig matris är en generalisering av både en positiv-definitiv matris och av en P-matris , vars huvudsakliga minderåriga är positiva. Kryss-algoritmen har också anpassats för linjär-fraktionell programmering .
Vertex uppräkning
Kors-kors-algoritmen användes i en algoritm för att räkna upp alla hörn i en polytop, som publicerades av David Avis och Komei Fukuda 1992. Avis och Fukuda presenterade en algoritm som hittar v -hörnen för en polyeder definierad av ett icke degenererat system av n linjära olikheter i D -dimensioner (eller, dubbelt, de v -fasetter av det konvexa skrovet av n punkter i D -dimensioner, där varje fasett innehåller exakt D givna punkter) i tiden O ( nDv ) och O( nD ) rymden .
Orienterade matroider
Kors-kors-algoritmen studeras ofta med hjälp av teorin om orienterade matroider (OMs), som är en kombinatorisk abstraktion av linjär-optimeringsteori. Faktum är att Blands svängningsregel baserades på hans tidigare artiklar om orienterad matroideori. Blands regel uppvisar dock att cykla på vissa linjärprogrammeringsproblem med orienterad matroid. Den första rent kombinatoriska algoritmen för linjär programmering utarbetades av Michael J. Todd. Todds algoritm utvecklades inte bara för linjär programmering i inställningen av orienterade matroider, utan också för kvadratiska programmeringsproblem och linjär-komplementaritetsproblem . Todds algoritm är komplicerad till och med att ange, tyvärr, och dess ändliga konvergensbevis är något komplicerade.
Den kors och tvärs-algoritmen och dess bevis på ändlig avslutning kan enkelt anges och utökar lätt inställningen för orienterade matroider. Algoritmen kan ytterligare förenklas för linjära genomförbarhetsproblem , det vill säga för linjära system med icke-negativa variabler ; dessa problem kan formuleras för orienterade matroider. Kors och tvärs-algoritmen har anpassats för problem som är mer komplicerade än linjär programmering: Det finns varianter av orienterade matroider även för kvadratisk programmeringsproblem och för linjär-komplementaritetsproblemet.
Sammanfattning
Kors och tvärs-algoritmen är en enkelt angiven algoritm för linjär programmering. Det var den andra helt kombinatoriska algoritmen för linjär programmering. Den delvis kombinatoriska simplexalgoritmen för Bland cykler på vissa (icke realiserbara) orienterade matroider. Den första helt kombinatoriska algoritmen publicerades av Todd, och den är också som simplexalgoritmen genom att den bevarar genomförbarheten efter att den första genomförbara basen har genererats; dock är Todds regel komplicerad. Kors-kors-algoritmen är inte en simplexliknande algoritm, eftersom den inte behöver upprätthålla genomförbarheten. Kors-kors-algoritmen har dock inte polynomisk tidskomplexitet.
Forskare har utökat kors och tvärs-algoritmen för många optimeringsproblem, inklusive linjär-fraktionell programmering. Algoritmen på kors och tvärs kan lösa kvadratiska programmeringsproblem och linjära komplementaritetsproblem, även i inställningen av orienterade matroider. Även när den är generaliserad förblir kors och tvärs-algoritmen enkelt uttryckt.
Se även
- Jack Edmonds (pionjär inom kombinatorisk optimering och orienterad matroideoretiker; doktorandrådgivare för Komei Fukuda)
Anteckningar
- ^ a b Illés, Szirmai & Terlaky (1999)
- ^ a b Stancu-Minasian, I. M. (augusti 2006). "En sjätte bibliografi över fraktionerad programmering". Optimering . 55 (4): 405–428. doi : 10.1080/02331930600819613 . MR 2258634 . S2CID 62199788 .
- ^ a b c d e f g Fukuda & Terlaky (1997)
- ^ a b Roos (1990)
- ^ a b Klee, Victor ; Minty, George J. (1972). "Hur bra är simplexalgoritmen?". I Shisha, Oved (red.). Inequalities III (Proceedings of the Third Symposium on Inequalities som hölls vid University of California, Los Angeles, Kalifornien, 1–9 september 1969, tillägnad minnet av Theodore S. Motzkin) . New York-London: Academic Press. s. 159–175. MR 0332165 .
- ^ a b c Fukuda & Terlaky (1997 , s. 385)
- ^ a b Fukuda & Namiki (1994 , s. 367)
- ^ a b Simplexalgoritmen tar i genomsnitt D- steg för en kub. Borgwardt (1987) : Borgwardt, Karl-Heinz (1987). Simplexmetoden: En probabilistisk analys . Algoritmer och kombinatorik (Studie- och forskningstexter). Vol. 1. Berlin: Springer-Verlag. s. xii+268. ISBN 978-3-540-17096-9 . MR 0868467 .
- ^ Terlaky (1985) och Terlaky (1987)
- ^ Wang (1987)
- ^ a b Terlaky & Zhang (1993)
- ^ a b Bland, Robert G. (maj 1977). "Nya finita pivoteringsregler för simplexmetoden". Operationsforskningens matematik . 2 (2): 103–107. doi : 10.1287/moor.2.2.103 . JSTOR 3689647 . MR 0459599 .
- ^ Blands regel är också relaterad till en tidigare minsta index-regel, som föreslogs av Katta G. Murty för det linjära komplementaritetsproblemet, enligt Fukuda & Namiki (1994) .
- ^ a b Klafszky & Terlaky (1991)
- ^ Mer allmänt, för simplexalgoritmen, är det förväntade antalet steg proportionellt mot D för linjärprogrammeringsproblem som dras slumpmässigt från den euklidiska enhetssfären , vilket bevisats av Borgwardt och av Smale .
- ^ a b Fukuda & Namiki (1994)
- ^ a b c d e f g Björner, Anders; Las Vergnas, Michel ; Sturmfels, Bernd ; White, Neil; Ziegler, Günter (1999). "10 Linjär programmering". Oriented Matroids . Cambridge University Press. s. 417–479. doi : 10.1017/CBO9780511586507 . ISBN 978-0-521-77750-6 . MR 1744046 .
- ^ a b c den Hertog, D.; Roos, C.; Terlaky, T. (1 juli 1993). "Det linjära komplementaritetsproblemet, tillräckliga matriser och kors och tvärs-metoden" ( PDF) . Linjär algebra och dess tillämpningar . 187 : 1–14. doi : 10.1016/0024-3795(93)90124-7 .
- ^ a b c Csizmadia, Zsolt; Illés, Tibor (2006). "Nya algoritmer av kors och tvärs för linjära komplementaritetsproblem med tillräckliga matriser" ( pdf) . Optimeringsmetoder och programvara . 21 (2): 247–266. doi : 10.1080/10556780500095009 . MR 2195759 . S2CID 24418835 .
- ^ Cottle, RW ; Pang, J.-S.; Venkateswaran, V. (mars–april 1989). "Tillräckliga matriser och det linjära komplementaritetsproblemet" . Linjär algebra och dess tillämpningar . 114–115: 231–249. doi : 10.1016/0024-3795(89)90463-1 . MR 0986877 .
- ^ Avis & Fukuda (1992 , s. 297)
- ^ V - punkten i ett enkelt arrangemang av n hyperplan i D- dimensioner kan hittas i O( n 2 Dv ) tid och O( nD ) rymdkomplexitet .
-
^ Teorin om orienterade matroider initierades av R. Tyrrell Rockafellar . ( Rockafellar 1969 ):
Rockafellar, RT (1969). "De elementära vektorerna för ett delrum av (1967)" (PDF) . I RC Bose och TA Dowling (red.). Kombinatorisk matematik och dess tillämpningar . University of North Carolina Monograph Series in Probability and Statistics. Chapel Hill, North Carolina: University of North Carolina Press. s. 104–127. MR 0278972 . PDF omtryck .
Rockafellar var influerad av de tidigare studierna av Albert W. Tucker och George J. Minty . Tucker och Minty hade studerat teckenmönster för matriserna som uppstår genom svängningsoperationerna i Dantzigs simplexalgoritm.
- ^ a b Todd, Michael J. (1985). "Linjär och kvadratisk programmering i orienterade matroider" . Journal of Combinatorial Theory . Serie B. 39 (2): 105–133. doi : 10.1016/0095-8956(85)90042-5 . MR 0811116 .
- Avis, David ; Fukuda, Komei (december 1992). "En vridningsalgoritm för konvexa skrov och vertexuppräkning av arrangemang och polyedrar" . Diskret och beräkningsgeometri . 8 (ACM Symposium on Computational Geometry (North Conway, NH, 1991) nummer 1): 295–313. doi : 10.1007/BF02293050 . MR 1174359 .
- Csizmadia, Zsolt; Illés, Tibor (2006). "Nya algoritmer av kors och tvärs för linjära komplementaritetsproblem med tillräckliga matriser" ( pdf) . Optimeringsmetoder och programvara . 21 (2): 247–266. doi : 10.1080/10556780500095009 . MR 2195759 . S2CID 24418835 .
- Fukuda, Komei ; Namiki, Makoto (mars 1994). "Om extrema beteenden av Murtys minsta index-metod". Matematisk programmering . 64 (1): 365–370. doi : 10.1007/BF01582581 . MR 1286455 . S2CID 21476636 .
- Fukuda, Komei ; Terlaky, Tamás (1997). Liebling, Thomas M.; de Werra, Dominique (red.). "Cross-cross-metoder: En ny syn på pivotalgoritmer". Matematisk programmering, serie B . 79 (Papper från det 16:e internationella symposiet om matematisk programmering som hölls i Lausanne, 1997, nummer 1–3): 369–395. CiteSeerX 10.1.1.36.9373 . doi : 10.1007/BF02614325 . MR 1464775 . S2CID 2794181 . Postscript förtryck .
- den Hertog, D.; Roos, C.; Terlaky, T. (1 juli 1993). "Det linjära komplementaritetsproblemet, tillräckliga matriser och kors och tvärs-metoden" ( PDF) . Linjär algebra och dess tillämpningar . 187 : 1–14. doi : 10.1016/0024-3795(93)90124-7 . MR 1221693 .
- Illés, Tibor; Szirmai, Ákos; Terlaky, Tamás (1999). "Den ändliga kors och tvärs-metoden för hyperbolisk programmering" . European Journal of Operational Research . 114 (1): 198–214. doi : 10.1016/S0377-2217(98)00049-6 . Zbl 0953.90055 . Postscript förtryck .
- Klafszky, Emil; Terlaky, Tamás (juni 1991). "Rollen av att svänga för att bevisa några grundläggande teorem av linjär algebra" . Linjär algebra och dess tillämpningar . 151 : 97–118. doi : 10.1016/0024-3795(91)90356-2 . MR 1102142 .
- Roos, C. (1990). "Ett exponentiellt exempel på Terlakys svängningsregel för den kors och tvärs simplexmetoden". Matematisk programmering . Serie A. 46 (1): 79–84. doi : 10.1007/BF01585729 . MR 1045573 . S2CID 33463483 .
- Terlaky, T. (1985). "En konvergent kors och tvärs metod". Optimering: A Journal of Mathematical Programming and Operations Research . 16 (5): 683–690. doi : 10.1080/02331938508843067 . ISSN 0233-1934 . MR 0798939 .
- Terlaky, Tamás (1987). "En finit kors och tvärs metod för orienterade matroider" . Journal of Combinatorial Theory . Serie B. 42 (3): 319–327. doi : 10.1016/0095-8956(87)90049-9 . ISSN 0095-8956 . MR 0888684 .
- Terlaky, Tamás ; Zhang, Shu Zhong (1993) [1991]. "Pivotregler för linjär programmering: En undersökning om den senaste teoretiska utvecklingen". Annals of Operations Research . 46–47 (Degeneration i optimeringsproblem, nummer 1): 203–233. CiteSeerX 10.1.1.36.7658 . doi : 10.1007/BF02096264 . ISSN 0254-5330 . MR 1260019 . S2CID 6058077 .
- Wang, Zhe Min (1987). "En finit konform-elimineringsfri algoritm över orienterad matroidprogrammering". Kinesiska annaler av matematik (Shuxue Niankan B Ji) . Serie B. 8 (1): 120–125. ISSN 0252-9599 . MR 0886756 .