/ Operációkutatás. gyakorlat Lineáris Programozási feladatok megoldása szimplex módszerrel Pécsi Tudományegyetem PTI
/. Legyen adott az alábbi LP-feladat: x + 4x + x 9 x + x x + x + x 6 x, x, x x + x + 5x = z max A feladat kanonikus alakjának alábbi lehetséges megoldásai közül válasszuk ki a bázismegoldásokat. x = [,,,,, ] x = [,,,,, ] x = [,,, 9,, 6] x 4 = [,,,,, ] x 5 = [,, 6,,, ]
/. Legyen adott az alábbi LP-feladat: x + 4x + x 9 x + x x + x + x 6 x, x, x x + x + 5x = z max A feladat kanonikus alakjának alábbi lehetséges megoldásai közül válasszuk ki a bázismegoldásokat. x = [,,,,, ] x = [,,,,, ] x = [,,, 9,, 6] x 4 = [,,,,, ] x 5 = [,, 6,,, ] x biztosan nem bázismegoldás, hiszen -nál több nem-nulla koordinátát tartalmaz.
/. Legyen adott az alábbi LP-feladat: x + 4x + x 9 x + x x + x + x 6 x, x, x x + x + 5x = z max A feladat kanonikus alakjának alábbi lehetséges megoldásai közül válasszuk ki a bázismegoldásokat. x = [,,,,, ] x = [,,,,, ] x = [,,, 9,, 6] x 4 = [,,,,, ] x 5 = [,, 6,,, ] Az x -hez tartozó bázis B = 4 lenne, de a mátrix szinguláris.
/. Legyen adott az alábbi LP-feladat: x + 4x + x 9 x + x x + x + x 6 x, x, x x + x + 5x = z max A feladat kanonikus alakjának alábbi lehetséges megoldásai közül válasszuk ki a bázismegoldásokat. x = [,,,,, ] x = [,,,,, ] x = [,,, 9,, 6] x 4 = [,,,,, ] x 5 = [,, 6,,, ] Az x -hez tartozó bázis B =. Így bázismegoldásról van szó, de biztosan nem maximális célfüggvényértékkel (z = ).
/. Legyen adott az alábbi LP-feladat: x + 4x + x 9 x + x x + x + x 6 x, x, x x + x + 5x = z max A feladat kanonikus alakjának alábbi lehetséges megoldásai közül válasszuk ki a bázismegoldásokat. x = [,,,,, ] x = [,,,,, ] x = [,,, 9,, 6] x 4 = [,,,,, ] x 5 = [,, 6,,, ] Az x 5 -hez tartozó bázis B 5 =. Bázismegoldásról van szó.
/. Legyen adott az alábbi LP-feladat: x + 4x + x 9 x + x x + x + x 6 x, x, x x + x + 5x = z max A feladat kanonikus alakjának alábbi lehetséges megoldásai közül válasszuk ki a bázismegoldásokat. x = [,,,,, ] x = [,,,,, ] x = [,,, 9,, 6] x 4 = [,,,,, ] x 5 = [,, 6,,, ] Az x 4 -hez tartozó bázisok B 4, = 4 B 4, = B 4, = B 4,4 =. B 4, mátrix szinguláris.
Normál feladatok megoldása szimplex módszerrel /
/ Normál feladatok megoldása szimplex módszerrel Definíció. Egy LP-feladatot normál feladatnak nevezünk, ha feltételrendszere csak relációkat tartalmaz a változók csak nemnegatív értékeket vehetnek fel a célfüggvény maximumát keressük. a feltételek jobboldalán csak nemnegatív konstansok lehetnek.
Műveletek a szimplex-táblában 4/
4/ Műveletek a szimplex-táblában A pivot elem helyére a reciprokát írjuk A pivot elem sorában minden elemet elosztunk a pivotelemmel A pivot elem oszlopában minden elemet elosztunk a pivotelemmel és vesszük az ellentetjét A többi elemet úgy számoljuk, mint a báziscserénél
Pivot elem választása 5/
5/ Pivot elem választása Olyan oszlopban választjuk a pivot elemet ahol a célsor eleme negatív Pozitív számot választunk pivot elemnek A kiválasztott oszlop pozitív elemeivel osszuk el az utolsó oszlop megfelelő elemeit és azt a számot választjuk pivot elemnek, amelyre ez a hányados a legkisebb (szűk keresztmetszet szabály)
5/ Pivot elem választása Olyan oszlopban választjuk a pivot elemet ahol a célsor eleme negatív Pozitív számot választunk pivot elemnek A kiválasztott oszlop pozitív elemeivel osszuk el az utolsó oszlop megfelelő elemeit és azt a számot választjuk pivot elemnek, amelyre ez a hányados a legkisebb (szűk keresztmetszet szabály) A negatív célelemű oszlopok közül az alábbiak alapján választhatunk: A legnagyobb abszolútértékű negatív célelem oszlopából választunk Minden negatív célelemű oszlopban határozzuk meg a pivot elemet és számítsuk ki a célfüggvény növekedését. Válasszuk azt az oszlopot, amelynél a növekedés a legnagyobb Könnyebb számolás érdekében olyan oszlopot választunk, ahol pivot elem -nek adódik. Könnyebb számolás érdekében olyan oszlopot választunk, ahol pivot elem sorában vagy oszlopában -t, vagy -kat találunk.
Az algoritmus végetér 6/
6/ Az algoritmus végetér ha a célfüggvény sorában nincs negatív elem, ekkor az optimális megoldás és a hozzátartozó célfüggvényérték a táblából kiolvasható ha a negatív célelemek oszlopaiban nincs pozitív elem, ilyenkor a célfüggvény a lehetséges megoldások halmazán tetszőlegesen nagy értéket felvehet Bizonyos esetekben végtelen ciklusra vezet az algoritmus. Az ilyen esetek akkor léphetnek fel, ha a pivot elem sorában az utolsó oszlopban áll. (Ilyen esetekben a célfüggvény érték nem növekszik.) Az általunk használtaknál lényegesen bonyolultabb pivotelem-választási szabályokkal a végtelen ciklus elkerülhető.
7/ Példák.a) Oldjuk meg a Horgász-problémát szimplex algoritmussal! x + x + x 4 x + + x 5 x + x + 4x 7 x, x, x x + x + 4x = z max Az induló szimplex-tábla: x x x z 4 u 4 u 5 u 4 7 A szimplex táblából kiolvasható bázismegoldás: [x, u] = [,,, 4, 5, 7], a célfüggvény értéke z =. A táblához tatozó bázis a B =.
7/ Példák.a) Oldjuk meg a Horgász-problémát szimplex algoritmussal! x + x + x 4 x + + x 5 x + x + 4x 7 x, x, x x + x + 4x = z max Az induló szimplex-tábla: x x x z 4 u 4 u 5 u 4 7 A szimplex táblából kiolvasható bázismegoldás: [x, u] = [,,, 4, 5, 7], a célfüggvény értéke z =. A táblához tatozó bázis a B =.
7/ Példák.a) Oldjuk meg a Horgász-problémát szimplex algoritmussal! x + x + x 4 x + + x 5 x + x + 4x 7 x, x, x x + x + 4x = z max Az induló szimplex-tábla: x x x z 4 u 4 u 5 u 4 7 A szimplex táblából kiolvasható bázismegoldás: [x, u] = [,,, 4, 5, 7], a célfüggvény értéke z =. A táblához tatozó bázis a B =.
8/ Elemi bázistranszformációval új bázisra térünk át. Ehhez a pivot elemet a legkisebb negatív célelem oszlopából (. oszlop) választjuk. Az oszlopot a szűk keresztmetszet elve alapján a. sor helyére visszük a bázisba: x x x z 4 u 4 u 5 u 4 7
8/ Elemi bázistranszformációval új bázisra térünk át. Ehhez a pivot elemet a legkisebb negatív célelem oszlopából (. oszlop) választjuk. Az oszlopot a szűk keresztmetszet elve alapján a. sor helyére visszük a bázisba: x x x z 4 u 4 u 5 u 4 7
8/ Elemi bázistranszformációval új bázisra térünk át. Ehhez a pivot elemet a legkisebb negatív célelem oszlopából (. oszlop) választjuk. Az oszlopot a szűk keresztmetszet elve alapján a. sor helyére visszük a bázisba: x x x x x u z 4 z 4 u 4 u u 5 x u 4 7 u 4 A szimplex táblából kiolvasható bázismegoldás: [x, u] = [,, 5,,, ], a célfüggvény értéke z =. A táblához tatozó bázis a B = 4. 5
8/ Elemi bázistranszformációval új bázisra térünk át. Ehhez a pivot elemet a legkisebb negatív célelem oszlopából (. oszlop) választjuk. Az oszlopot a szűk keresztmetszet elve alapján a. sor helyére visszük a bázisba: x x x x x u z 4 z 4 u 4 u u 5 x u 4 7 u 4 A szimplex táblából kiolvasható bázismegoldás: [x, u] = [,, 5,,, ], a célfüggvény értéke z =. A táblához tatozó bázis a B = 4. 5
8/ A bejelölt elemet választjuk pivotelemnek, így a. oszlop kerül a. bázisvektor helyére: x x u z 4 u x u 4 5
8/ A bejelölt elemet választjuk pivotelemnek, így a. oszlop kerül a. bázisvektor helyére: x x u x u u z 4 z u u 6 5 5 x x u 4 x 6 A szimplex táblából kiolvasható bázismegoldás: [x, u] = [, 6, 5,,, ], a célfüggvény értéke z =. A táblához tatozó bázis a B =. 4
8/ A bejelölt elemet választjuk pivotelemnek, így a. oszlop kerül a. bázisvektor helyére: x x u x u u z 4 z u u 6 5 5 x x u 4 x 6 A szimplex táblából kiolvasható bázismegoldás: [x, u] = [, 6, 5,,, ], a célfüggvény értéke z =. A táblához tatozó bázis a B =. 4
8/ A megjelölt elemet választva pivotelemnek, az. oszlopot visszük a bázisba, a. sor helyére: x u u z u x x 6 5 6
8/ A megjelölt elemet választva pivotelemnek, az. oszlopot visszük a bázisba, a. sor helyére: x u u x u u z u x x 6 5 6 z 9 u x x 5 A szimplex táblából kiolvasható bázismegoldás: [x, u] = [ 5,,,,, ], a célfüggvény értéke z = 9. A táblához tatozó bázis a B =.
8/ A megjelölt elemet választva pivotelemnek, az. oszlopot visszük a bázisba, a. sor helyére: x u u x u u z u x x 6 5 6 z 9 u x x 5 A szimplex táblából kiolvasható bázismegoldás: [x, u] = [ 5,,,,, ], a célfüggvény értéke z = 9. A táblához tatozó bázis a B =.
8/ A megjelölt elemet választva pivotelemnek, az. oszlopot visszük a bázisba, a. sor helyére: x u u x u u z u x x 6 5 6 z 9 u x x 5 A szimplex táblából kiolvasható bázismegoldás: [x, u] = [ 5,,,,, ], a célfüggvény értéke z = 9. A táblához tatozó bázis a B = Mivel a célsorban nincs negatív elem, az algoritmus véget ért. A kapott megoldás optimális..
9/.b) Oldjuk meg a következő LP-feladatot szimplex algoritmussal! x x x x 6 x x x, x x + x = z max
9/.b) Oldjuk meg a következő LP-feladatot szimplex algoritmussal! x x z u u 6 u x x x x 6 x x x, x x + x = z max
9/.b) Oldjuk meg a következő LP-feladatot szimplex algoritmussal! x x z u u 6 u x x x x 6 x x x, x x + x = z max
9/.b) Oldjuk meg a következő LP-feladatot szimplex algoritmussal! x x x x 6 x x x, x x + x = z max x x z u u 6 u u x z x u 5 u 9
9/.b) Oldjuk meg a következő LP-feladatot szimplex algoritmussal! x x z u u 6 x x x x 6 x x x, x x + x = z max u x z x u 5 u u A második táblában a negatív célelem alatt nincs pozitív szám, ezért a célfüggvény tetszőlegesen nagy értékeket felvehet a lehetséges megoldások halmazán. 9
9/.b) Oldjuk meg a következő LP-feladatot szimplex algoritmussal! x x z u u 6 x x x x 6 x x x, x x + x = z max u x z x u 5 u u A második táblában a negatív célelem alatt nincs pozitív szám, ezért a célfüggvény tetszőlegesen nagy értékeket felvehet a lehetséges megoldások halmazán. Írjuk fel a kapott táblához tartozó egyenletrendszert: 9
/ u x + z = u x + x = u 5 x + u = 9 u x + u = Az egyes egyenletekből a bázisváltozókat kifejezve: z = u + x x = u + x u = 9 + u + 5 x u = + u + x Az u =, x = d > értékekkel az x = + d, u = 9 + 5 d, u = + d lehetséges megoldást kapjuk, amely mellett a célfüggvény értéke z = + d lesz, amely d esetén minden határon túl nő.
/ u x + z = u x + x = u 5 x + u = 9 u x + u = Az egyes egyenletekből a bázisváltozókat kifejezve: z = u + x x = u + x u = 9 + u + 5 x u = + u + x Az u =, x = d > értékekkel az x = + d, u = 9 + 5 d, u = + d lehetséges megoldást kapjuk, amely mellett a célfüggvény értéke z = + d lesz, amely d esetén minden határon túl nő.
/ u x + z = u x + x = u 5 x + u = 9 u x + u = Az egyes egyenletekből a bázisváltozókat kifejezve: z = u + x x = u + x u = 9 + u + 5 x u = + u + x Az u =, x = d > értékekkel az x = + d, u = 9 + 5 d, u = + d lehetséges megoldást kapjuk, amely mellett a célfüggvény értéke z = + d lesz, amely d esetén minden határon túl nő.
/ u x + z = u x + x = u 5 x + u = 9 u x + u = Az egyes egyenletekből a bázisváltozókat kifejezve: z = u + x x = u + x u = 9 + u + 5 x u = + u + x Az u =, x = d > értékekkel az x = + d, u = 9 + 5 d, u = + d lehetséges megoldást kapjuk, amely mellett a célfüggvény értéke z = + d lesz, amely d esetén minden határon túl nő.
/ Feladatok. Oldjuk meg a következő LP-feladatot szimplex algoritmussal! x + x + x + x 5 x + x + x 4 + x 5 8 x + x + x 4 5 x, x, x, x 4, x 5 x + x + x + x 4 + x 5 = z max Megoldás: x = (,,,, 5), u = (,, ) z =
/ Feladatok. Oldjuk meg a következő LP-feladatot szimplex algoritmussal! Megoldás: x = ( 6 7, 75 7 x 5x 7x + 8x 56 5x + x x, x x + 5x = z max 859 ), u = (777 7,, ) z = 7
/ Feladatok. Oldjuk meg a következő LP-feladatot szimplex algoritmussal! x + x x x x 8 x + x + x 6 x, x, x 6x + 7x + x = z max Megoldás: x = (9,, ), u = (,, ) z =
/ Feladatok 4. Oldjuk meg a következő LP-feladatot szimplex algoritmussal! x x + x 8 x + x x 4 x + x x + x 4 x, x, x, x 4, x 5 6x + x + 5x + 7x 4 = z max Megoldás: x = (,, 8, 8), u = (,, ) z = 66
/ Felhasznált Irodalom [.] Bajalinov Erik - Imreh Balázs: Operációkutatás, Polygon 5. [.] Imreh Balázs: Bevezetés az operációkutatásba, Phare 999. [.] Temesi József - Varró Zoltán: Operációkutatás, Aula 7.