1 / 18

Dvoufázová simplexová metoda

Dvoufázová simplexová metoda. RNDr. Jiří Dvořák, CSc. dvorak @uai.fme.vutbr.cz. Dvě fáze simplexové metody. I. Nalezení výchozího přípustného bázického řešení. Jestliže úloha nemá žádné přípustné řešení, pak konec. V opačném případě přechod na druhou fázi.

janet
Download Presentation

Dvoufázová simplexová metoda

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Dvoufázová simplexová metoda RNDr. Jiří Dvořák, CSc. dvorak@uai.fme.vutbr.cz Teorie systémů a operační analýza

  2. Dvě fáze simplexové metody • I. Nalezení výchozího přípustného bázického řešení. Jestliže úloha nemá žádné přípustné řešení, pak konec. V opačném případě přechod na druhou fázi. • II. Postupné zlepšování bázického řešení. Tato fáze končí nalezením optimálního bázického řešení nebo zjištěním, že optimální řešení neexistuje. • V obou fázích se využívá simplexový algoritmus. TSOA: Dvoufázová simplexová metoda

  3. Nalezení výchozího přípustného bázického řešení • a) Úloha LP je v kanonickém tvaru a b  0: • Volíme B = E. Pak xN = 0 a xB = b. • b) Úloha LP není v kanonickém tvaru: • Vytvoříme pomocnou úlohu následujícím způsobem. Do původní úlohy zavedeme nezáporné pomocné (umělé) proměnné tak, abychom získali kanonický tvar, a původní účelovou funkci nahradíme pomocnou účelovou funkcí, která je součtem pomocných proměnných. Simplexovým algoritmem pak hledáme řešení, které minimalizuje pomocnou účelovou funkci. TSOA: Dvoufázová simplexová metoda

  4. Pomocná úloha • Minimalizovat • g(xP) = eTxP • za podmínek • A x + EP xP = b • x  0, xP 0 • kde • EP je matice typu (m, k) tvořená chybějícími jednotkovými sloupci, • e = (1, 1, … , 1)T je vektor dimenze k , • xP = (xn+1,xn+2, … , xn+k )T je vektor pomocných proměnných. TSOA: Dvoufázová simplexová metoda

  5. Důsledky řešení pomocné úlohy • Nechť vektor je bázické optimální řešení • pomocné úlohy. • a) Je-li g(xPo) = 0 (tj. jestliže jsou všechny pomocné proměnné rovny nule), pak vektor xo je výchozí přípustné bázické řešení původní úlohy. • b) Je-li g(xPo)  0, pak původní úloha nemá žádné přípustné řešení. TSOA: Dvoufázová simplexová metoda

  6. Redukce počtu pomocných proměnných • Pokud soustava rovnic Ax = b není v kanonickém tvaru, převedeme ji do tohoto tvaru Gauss-Jordanovou eliminační metodou (přitom je vhodné současně upravovat rovnici • z – cTx = 0). Nechť A´x = b´ je takto získaná soustava. Jestliže • b´ 0, můžeme pokračovat 2. fází simplexové metody. • V opačném případě určíme rovnici splňující podmínku • Tuto rovnici vynásobíme (–1) a pak ji přičteme ke všem rovnicím, které mají zápornou pravou stranu. Tím obdržíme soustavu rovnic s nezápornou pravou stranou, přičemž v matici soustavy chybí jeden jednotkový sloupec. Ten získáme zavedením pomocné proměnné do r-té rovnice a můžeme zahájit 1. fázi simplexové metody. TSOA: Dvoufázová simplexová metoda

  7. Úprava soustavy nerovnic typu  • Mějme soustavu nerovnic Axb, kde b  0. Soustavu převedeme na rovnicový tvar odečtením nezáporných doplňkových proměnných: • Ax–Exd = b • Určíme rovnici s největší pravou stranou. Nechť je to rovnice r-tá. Ostatní rovnice vynásobíme (–1) a přičteme k nim r-tou rovnici. Do r-té rovnice pak zavedeme pomocnou proměnnou. Tím získáme soustavu v kanonickém tvaru s nezápornou pravou stranou a můžeme zahájit 1. fázi simplexové metody. TSOA: Dvoufázová simplexová metoda

  8. Možná zakončení simplexové metody • 1) Úloha má jediné optimální řešení: • Je splněno kritérium optimality a pro všechny nebázické proměnné je j  0. • 2) Úloha má nekonečně mnoho optimálních řešení: • Je splněno kritérium optimality a alespoň pro jednu nebázickou proměnnou je j = 0. • 3) Úloha nemá konečné optimální řešení: • Není splněno kritérium optimality a není možno určit klíčový řádek. • 4) Úloha nemá žádné přípustné řešení: • Optimální hodnota pomocné účelové funkce není nulová. TSOA: Dvoufázová simplexová metoda

  9. Získání dalších optimálních řešení • Zvolíme za klíčový ten nebázický sloupec, kde j = 0. Jestliže se podaří určit klíčový řádek, pak provedením simplexové transformace získáme další optimální bázické řešení. • Když se nepodaří určit klíčový řádek, pak to znamená, že množina optimálních řešení není ohraničená. Klíčový sloupec potom určuje jeden z krajních směrů této množiny. • Tímto způsobem můžeme získat všechna další optimální bázická řešení a případně také všechny krajní směry množiny optimálních řešení. • Každá konvexní kombinace bázických optimálních řešení je rovněž optimálním řešením. V případě, že množina optimálních řešení není ohraničená, se další optimální řešení mohou získat sečtením konvexní kombinace bázických optimálních řešení a nezáporné lineární kombinace krajních směrů této množiny. TSOA: Dvoufázová simplexová metoda

  10. Krajní směr množiny optimálních řešení • Nechť B je optimální báze, xo je odpovídající optimální bázické řešení, pro nebázickou proměnnou xs je s = 0 a nechť nelze určit klíčový řádek. Pak další optimální řešení leží na polopřímce x* = xo + ty, kde t 0 a y je krajní směr množiny optimálních řešení. • Nechť JB označuje množinu indexů bázických proměnných, JN množinu indexů nebázických proměnných, i(j) index řádku, ve kterém se nachází bázická proměnná xj , a ij prvky matice B–1A. Pak vektor y je určen takto: TSOA: Dvoufázová simplexová metoda

  11. Případy, že úloha LP nemá řešení. • Jestliže simplexová metoda skončí s tím, že úloha LP nemá optimální nebo přípustné řešení, musíme prověřit, zda je v pořádku výchozí matematický model. Například neexistence konečného optimálního řešení může být způsobena tím, že jsme při tvorbě modelu zapomněli na nějaké podstatné omezení. • V případě, že model je v pořádku a úloha nemá žádné přípustné řešení, je možno zvažovat, zda lze některá omezení zmírnit. Pro určení toho, jaké nejmenší změny pravých stran jsou zapotřebí (resp. jaké změny jsou nejvýhodnější), je možno formulovat a řešit jinou úlohu LP. TSOA: Dvoufázová simplexová metoda

  12. Degenerovaná úloha LP • Předchozí možnosti zakončení simplexové metody se vztahují k případu, kdy úloha nenídegenerovaná. • Degenerovaná je taková úloha, která má alespoň jedno degenerované bázické řešení. • U degenerované úlohy mohou nastat tyto situace: • může dojít k zacyklení (toto nebezpečí se dá odstranit úpravou simplexového algoritmu), • výskyt j = 0 u nebázické proměnné nemusí být příznakem existence nekonečně mnoha optimálních řešení. TSOA: Dvoufázová simplexová metoda

  13. Zacyklení a možnosti jeho prevence • Zacyklení znamená, že po několika simplexových transformacích se dostaneme k tabulce, z níž byly tyto transformace zahájeny. Bylo dokázáno, že nejmenší počet takových transformací je 6. • V praxi se zacyklení vyskytuje velmi zřídka. Lze to vysvětlit tím, že při řešení úlohy na počítači zaokrouhlovací chyby způsobí změnu problému a tím také únik z cyklu. • Proti zacyklení je možné se zabezpečit pomocí anticyklických metod. Nejjednodušší z nich je metoda nejmenších indexů, při níž se pravidla pro určení klíčového prvku modifikují takto: • Za klíčový sloupec se volí ten sloupec, který má nejmenší index ze všech sloupců, kde není splněno kritérium optimality. • Pokud existuje více řádků, které splňují pravidlo pro výběr klíčového řádku, zvolí se za klíčový ten s nejmenším indexem. TSOA: Dvoufázová simplexová metoda

  14. Odstranění lineárně závislých rovnic • Zatím jsme předpokládali, že ve standardním tvaru úlohy jsou všechny rovnice lineárně nezávislé, tj. h(A) = m. Tento předpoklad se v praxi předem neprověřuje. • Lineárně závislé rovnice lze odstranit po 1. fázi simplexové metody následujícím způsobem: • Předp., že h(A) = k < m, a že úloha má přípustné řešení. Pak po skončení 1. fáze zůstane v bázi m – k pomocných proměnných s nulovou hodnotou. Tyto proměnné a rovnice, které je obsahují, můžeme z tabulky vypustit. TSOA: Dvoufázová simplexová metoda

  15. Maticové vyjádření simplexové tabulky • B je báze a cB je vektor cenových koeficientů bázických proměnných. • Uvedenou matici dostaneme vynásobením matic • Prvá z těchto matic se nazývá maticí simplexové transformace. TSOA: Dvoufázová simplexová metoda

  16. Maticový zápis tabulky pro úlohu s nerovnicemi typu  • Mějme úlohu . • Standardní tvar: • kde xD je vektor doplňkových proměnných. • Matice úlohy: • Vynásobíme-li tuto matici zleva maticí simplexové transformace, dostaneme TSOA: Dvoufázová simplexová metoda

  17. Další verze simplexové metody • Revidovaná simplexová metoda (vychází z maticového vyjádření simplexového algoritmu) • Metoda pro řešení úloh s explicitními mezemi proměnných (aj xj bj) • Duálně simplexová metoda • Primárně duální metoda • Metody pro řešení rozsáhlých úloh • Metody pro řešení speciálních úloh (dopravní úloha, distribuční úloha, úloha o maximálním toku… ) • Lit.: Plesník, J., Dupačová, J., Vlach, M.: Lineárne • programovanie. Bratislava, Alfa 1990. TSOA: Dvoufázová simplexová metoda

  18. Složitost simplexové metody • Dlouholeté výpočetní zkušenosti ukazují, že simplexová metoda je velmi rychlá. Z výpočetních experimentů plyne, že na úlohu LP s m omezujícími podmínkami stačí v průměru m iterací. • Existují však případy, kdy počet iterací může být velmi vysoký a může v závislosti na rozsahu úlohy růst exponencielně (takové algoritmy se označují jako nepolynomiální). • Polynomiální metody pro řešení úloh LP (zatím nevhodné pro praktické použití): • metoda elipsoidů (Chačijan) • Karmarkarova metoda TSOA: Dvoufázová simplexová metoda

More Related