Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Operációkutatás I. (2008.márc.04-i állapot) Bajalinov Erik és Imreh Balázs Operációkutatás c. jegyzete alapján készítette: Bartalos István A tantárgy lehetséges kódjai: IB203, I203 Megjegyzések: 1. Csak a lineáris programozással foglalkozunk – ez spec. esete az opkut-nak 2. A fenti jegyzeten kívül számos olyan jó jegyzet/könyv létezik, amely eredményesen használható. 3. A kurzuson csak az elhangzott anyagot kérjük számon.
2
1. Áttekintés 1. Az operációkutatás tárgya: feltételes szélsőérték feladatok megoldása 2. Feltételes szélsőérték feladat: Adott lehetséges megoldások halmaza(zárt) f értelmezési tartománya (f legalább folytonos L-en) Keresünk olyan , melyen Optimális megoldás f folyt. a zárt L-en inf helyett min írható
3
3. Lineáris programozási (röviden LP) feladat: olyan feltételes szélsőérték feladat, melyben adott lineáris függvény (a célfüggvény) minimumát (vagy maximumát) keressük értelmezési tartományának ismert lineáris korlátokkal megadott részében (azaz L-ben) Megjegyzés: Lineáris korlátjainkban csak a relációk állhatnak (< és > nem, az zártsága miatt) 4. Egyszerű példák LP feladatokra x1 és x4 tetsz. előjelű!!
4
5. Adott LP feladat lehetséges(fizibilis) megoldásán olyan valós szám n-est értünk,amely kielégíti a feladat feltételrendszerét. 5. 6. Adott LP feladat optimális megoldásának olyan lehet- séges megoldását nevezzük, ahol a feladat célfv-ének értéke minimális(maximális) 7. A nevezetes diéta probléma (egyszerűsített változat): Polly szeretné étkezési költségeit csökkenteni úgy, hogy szervezete a naponta szükséges energiát(2000 kcal),fehérjét(55g) és kalciumot(800mg) mégis megkapja 7
5
energia tar-talom (kcal)
Választható ételek energia tar-talom (kcal) fehérje tartalom (g) kalcium tartalom (mg) ár (centben) Zabkása (1adag 28g) 110 4 2 3 Csirke (1 adag 100 g) 205 32 12 24 Tojás (1 adag 2 db) 160 13 54 Tej (1 adag 237cm3) 8 285 9 Pite (1 adag 170g) 420 22 20 Bab hússal (1 adag 260g) 260 14 80 19 1 adagra vonatkozó
6
Hogy étkezése ne legyen egyhangú, az egyes ételekből fogyaszt-
ható adagok számát korlátozza: zabkása adagszáma ≤ 4 csirke ″ ≤ 3 tojás ″ ≤ 2 tej ″ ≤ 8 pite ″ ≤ 3 sólet ″ ≤ 2 Hogyan tud a legolcsóbban étkezni? A feladat LP modellje: Változók: x1: napi zabkása adagszám x2: -||- csirke ||- x3: -||- tojás ||- x4: -|| tej ||- x5: -||- pite ||- x6: -||- sólet ||-
7
energia alsó korlát: 110x1+205x2+160x3+160x4+420x5+260x6 ≥ 2000
fehérje alsó korlát: 4x1+32x2+13x3+8x4+4x5+14x6 ≥ 55 kalcium alsó korlát: 2x1+12x2+54x3+285x4+22x5+80x6 ≥ 800 zabkása felső korlát: x1 ≤ 4 csirke felső korlát: x2 ≤ 3 tojás felső korlát: x3 ≤ 2 tej felső korlát: x4 ≤ 8 pite felső korlát: x5 ≤ 2 sólet felső korlát: x6 ≤ 2 az adagszámok nem-negatívak: x1≥ 0, x2≥ 0, x3≥ 0, x4≥ 0, x5≥ 0, x6≥ 0 Napi költsége (célja): 3x1+24x2+13x3+9x4+20x5+19x6 → min Megj.: x1,x2,…,x az egyes tevékenységek (az evések) mértékének vagy intenzitásának is tekinthető. Ekkor [x1,x2,…,x6] ε L egy lehetséges cselekvési terv, azaz program ( innen(?) származik a lineáris programozás elnevezés)
8
napi termelés (barrel)
8. Másik példa: egy keverési feladat: egy olajfinomítóban négyféle anyagot desztillálnak, amit az alábbi táblázat ír le: oktánszám párolgási nyomás napi termelés (barrel) alkilát 107 5 3814 krakkolt 93 8 2666 sima 87 4 4016 izopentán 108 21 1300 A termékek mindegyike értékesíthető 4,83 $/barrel egységáron, vagy összekeverhető kétfajta repülőbenzinné, melyek paraméterei és árai: oktánszám nyomás ár($/barrel) A típus min. 100 max. 7 6,45 B típus min. 91 max. 6 5,91 Milyen keverési program esetén éri el a finomító a max. bevételt? Írjuk fel a feladat LP modelljét!
9
9. LP feladatok osztályozása megoldhatóságuk alapján
Van optimális megoldása Nincs optimális megoldása Pl.: de a célfv. alulról/felülről nemkorlátos L-en normális(?) eset Pl.: (megoldását ld. alább) Pl.: ellentmondó feltételek Pl. lehetséges mo-ai: (infizibilis eset) nemkorlátos eset
10
11. A lineáris programozási feladat megoldhatóságának jelentősége
A meglevő feltételek között lehet a hatékonyságot javítani Széleskörű alkalmazhatóság 12. Néhány nagy név a lineáris programozás történetéből Fourier(1826): az első, aki lineáris egyenlőtlenség rendszereket old meg Kantorovich(1939): a gyártásütemezésre adott LP modellt és megoldási módszert Dantzig(1947): az általános LP feladat első megoldója Koopmans(1947): gazdasági folyamatok modellezése Khachyan(1979): az első, elméleti szempontból kielégítő (polinomiális) alg. Karmarkar(1983): a gyakorlatban is versenyképes polinomiális algoritmus 13. Magyarok Egerváry Jenő Prékopa András Lovász László és még sokan mások…
11
14. Szabályos alakú feladat
lineáris korlátok (minden feltétel ≤ ) minden változó nemnegatív 1.megjegyzés: könnyen látható, hogy minden LP feladat ilyen alakúra hozható: Az egyenlőtlenségek iránya megfordítható (szorzás -1-gyel) Az egyenletek két egyenlőtlenséggel pótolhatók Az előjelkötetlen változó két új nemnegatív változó különbségeként írható fel (Látjuk, hogy a dolog megy, de azért ennek később még alaposan utána nézünk) 2. megjegyzés: ámde kihagytuk a < és a > feltételek kezelését…
12
15. Hogyan működik a szimplex algoritmus?
(azaz vándorlás a feladat ekvivalens alakjai között) a megoldandó nemnegatív jobboldalú szabályos feladat helyett az alábbi társított lehetséges kanonikus alakú feladatot oldjuk meg , 8 2 4 3 11 5 6 1 = + x (*) Társítjuk (*)-hoz egy könnyen leolvasható megoldását, melyet a továbbiakban a feladat (*) alakjához társított bázismegoldásnak nevezünk.
13
A konstans átkerült a jobb oldalra
eredeti változók lazasági változók , 8 2 4 3 11 5 6 1 = + x aktuális döntési változók aktuális bázis változók új nevük A konstans átkerült a jobb oldalra Vegyük észre, hogy a célfüggvény egyenletében csak döntési változók vannak és ezek értéke a bázismegoldásban 0. (nagyon fontos!) a célfüggvény baloldalának értéke az (aktuális) bázismegoldáson 0!
14
Ötlet: próbáljunk a 3 db feltételből és a célfüggvényből álló lineáris egyenletrendszeren olyan ekvivalens átalakításokat végezni, hogy A 3 feltétel jobboldalai mind nemnegatívak maradjanak Minden feltételben legyen (továbbra is) olyan változó, melynek együtthatója ebben a feltételben 1, az összes többi feltételben és a célfüggvényben 0 ! (ezek lesznek az új bázisváltozók) Azt szeretnénk, hogy a célfüggvény értéke az új bázismegoldáson csökkenjen (de legalábbis ne nőjön)
15
16. Vándorlás a feladat különféle alakjai között
(aktuális) bázismo. bázis- változók a rajta felvett célfv. érték Ez jó, ezt folytatom Zsákutca, mert van negatív eleme
16
Zsákutca, mert romlott a célfv. értéke
A célfüggvény értéke tovább nem csökkenthető, mert
17
bármely esetén miatt a célfüggvény értéke: ,viszont ,azaz -nél nem lehet jobb megoldást találni optimális megoldás!
18
17. A szimplex algoritmus működésének grafikus szemléltetése
Példa: A célfüggvény egyenlete: A feladat: mindaddig csökkenteni c értékét, amíg a célfüggvény egyenletének van közös pontja L-lel.
19
L opt. mo. (0,0) 2x+2y=14 x+2y=10 Grafikus megoldás: x=6 -3x-4y=-24
(2,4) (4,3) (0,4) y=4 -3x-4y=-8 L -3x-4y=0 (6,1) (0,0) (6,0)
20
Lehetséges kanonikus alakúvá alakítás
Minden feltétel baloldalához hozzáadunk egy-egy nemnegatív változót és ezáltal egyenlőtlenségeinket egyenletekké egészítjük ki. Nyilvánvaló, hogy ezáltal csak a feladat alakja változik, maga a feladat nem. Sőt további információkat nyerhetünk az egyes feltételek „feszességéről”, arról, hogy az egyes lehetséges megoldások mennyire „merítik ki” valamelyik feltételt.
21
D. Megoldás szimplex algoritmussal
Bázismegoldás = könnyen leolvas- ható megoldás Még van negatív együttható folyt. köv.
22
Mivel a célfüggvényben nincs több negatív együttható, ezért az utoljára kapott
bázismegoldás egyben optimális megoldás is, melyen felvett célfüggvényérték -24. (ez az optimum). Figyeljük meg és szedjük sorba az egymás után keletkező bázismegoldásokban az aláhúzott elemeket (kételemű vektorokat) ! 1. 2. 3. (0,0) (0,4) (2,4) (4,3) Ha visszatekintünk a grafikus megoldásra, azonnal látjuk, hogy példánkban a szimplex algoritmus végrehajtása során kapott bázismegoldások egyben az L csúcspontjai (Később ezt az általános esetben is belátjuk)
23
2. A lehetséges kanonikus feladat (rövidítve: l.k.a.f.)
Def.: egy LP feladat lehetséges kanonikus alakú, ha sor- és oszlopcserékkel vala- mint a változók átjelölésével az alábbi formában írható fel: ahol változók az (aktuális) bázisváltozók és változók az (aktuális) döntési változók Def.: a fenti lehetséges kanonikus alakú feladat (l.k.a.f.) bázismegoldásának az megoldását nevezzük.
24
Köv.: 1. Bmely l.k.a.f. összes lehetséges megoldásainak halmaza nemüres 2. Az aktuális bázismegoldáson felvett célfüggvényérték mindig 1.Tétel (optimumkritérium) Ha vmely. l.k.a.f. célfüggvényében nincs negatív együttható, akkor a feladat aktuális bázismegoldása egyben optimális megoldása is. Biz: Bmely esetén Megj: a feltétel csak elegendő, mert pl. feladatnál ,az aktuális bázismo. optimális és az optimum kritérium mégsem teljesül.
25
2. Tétel (a bázisváltoztatás tétele)
Ha vmely. l.k.a.f. célfüggvényében a együttható negatív és létezik a mennyiség, akkor megadható a feladatnak olyan másik lehetséges kanonikus alak- ja,melyhez tartozó bázismegoldáson felvett célfüggvényérték: Biz.: Tfh. a generálóelem (azaz ) Ekkor a végrehajtandó átalakítások:
26
ahol az i-edik felt. régi, és az új alakját, és a célfv.régi és az új alakját jelöli A kapott feladat a: ekvivalens az előzővel, hiszen belőle (ami egy m+1 db egyenletből álló lineáris egyenletrendszer) ekvivalens átalakításokkal nyertük b: lehetséges kanonikus alakú,hiszen mivel a k. felt. min. hányadosú ( és )
28
3. Tétel (nemkorlátos eset)
Ha vmely l.k.a.f-ban vmely és az együtthatók egyike sem pozitív, akkor a feladat célfv-e alulról nemkorlátos L-en. Biz.: Megadjuk a feladat lehetséges mo-ainak egy olyan sorozatát, melyen Legyen a döntési változók értékei -ben Ekkor a bázisváltozók értékei: Tehát
29
Megj.: az 1.,2. és 3. tételek sokféle generálóelem kiválasztási stratégiát tesznek
lehetővé, ui.: a. bármelyik negatív célfv. együttható oszlopát választhatjuk b. melyben bmely minimális nemnegatív hányadosú sor választható Talán a legkorábbi a klasszikus szimplex algoritmus: 1. Ha a tekintett l.k.a.f. célfv-ében nincs negatív együttható, akkor vége az alg-nak: az aktuális bázismegoldás optimális megoldás is egyben. (különben a 2. lépés köv.) 2. Vegyük a célfv. legnegatívabb együtthatói közül a legkisebb indexűt (a bal szél- sőt), jelölje ezt Ha a j-edik oszlopban nincs pozitív együttható, akkor vége az alg-nak: a célfv. alulról nemkorlátos L-en (különben a 3. lépés köv.) 3. A kiválasztott j-edik oszlopban felülről lefelé keressük meg az első olyan pozitív együtthatót, melyre a minimalitási feltétel teljesül: (ahol ) Ez lesz a generálóelem! Hajtsuk végre az generáló elemmel a 2. Tételben megadott azonos átalakítá- sokat, majd a feladat így kapott új lehetséges kanonikus alakjával folytassuk az algoritmust az 1. lépéssel!
30
Megj.: a. a fenti alg. Dantzigtól származik(1951)
b. Ha mást nem mondunk, akkor mindig így választunk generáló elemet ebben a jegyzetben c. Sokáig azt hitték, hogy a fenti alg. mindig véget ér véges számú iterációs lépésben, de ez nem így van. Problémák az alg. végrehajtása során (degeneráció és ciklizálás) Példa: 2 „normális” iterációs lépés köv. degenerált bázismo. 2 „degenerált” iterációs lépés köv. (bázismo. és célfv.érték nem változik)
31
degenerált bázismo. 1 „degenerált” iterációs lépés köv. (bázismo. és célfv.érték nem változik) degenerált bázismo. „normális” iterációs lépés köv. (célfv.érték csökken és a bázismo. is változik) És a most kapott bázismegoldás optimális! (mivel nincs több negatív együttható a célfv-ben)
32
Észrevétel: a célfv. értéke nem minden iterációs lépésben csökkent.
Oka: 0 jobboldalú feltételből választottunk gen. elemet Ilyenkor a bázismo. nem változik (,de a feladat alakja igen), mert a. A jobboldalak nem változnak (mert 0 jobboldalú felt. alkalmas számszorosait adjuk a többi felt-hez és a célfv-hez) b. A gen. elemet tartalmazó felt. eddigi bázisváltozója a jelenlegi bázismo-ban 0 értékkel bír, ezután pedig döntési változó lesz (és ezért lesz az új bázis- mo-ban az értéke 0) c. A gen. elemet tartalmazó felt. új bázisváltozója az új bázismo-ban 0 értékű lesz (eddig döntési változó volt és emiatt volt 0 a bázismo-ban). d. Az összes többi felt. bázisváltozója és jobboldala sem változik. Def.: Degenerált iterációs lépés az, melynek során a bázismo. nem változik (mert 0 jobboldalú felt-ből választottunk gen. elemet) Def.: Degenerált bázismegoldás pedig az, melyben legalább egy bázisváltozó értéke 0 (azaz van 0 jobboldalú feltétel a l.k.a.f.-ban)
33
Megj.: Degenerált bázismo. megjelenése nem mindig eredményez degenerált iterációs lépést! b. A gyakorlatban sokszor ütközünk degenerált bázismo-okba, melyek előbb-utóbb degenerált iterációs lépéseket eredményeznek. A szimp- lex algoritmusok azonban rendszerint (néhány iterációs lépés után) túljutnak ezeken a nehézségeken. (Ellen)példa arra, amikor a szimplex alg. „klasszikus” változata sosem ér véget: A 6. iterációs lépés után a feladatnak ugyanehhez a lehetséges kanonikus alak- jához jutunk (ld. Jegyzet), azaz az alg. ciklizál ( = sosem ér véget) Igaz ez megfordítva is:
34
Tétel: Ha vmely szimplex alg. sosem ér véget, akkor ciklizál.
Biz.: a. m db felt-ből álló m+n ismeretlenes l.k.a.f. bázisváltozóinak halmaza -féle lehet a bázisváltozók rendezett sorozatainak száma max. lehet. (nem biztos, hogy mindegyikhez tartozik a feladatnak l.k.a.-ja) db iterációs lépés végrehajtása során keletkező ( db l.k.a. között biztosan van két olyan, melyek bázisváltozói ugyanazok, ugyanabban a sorrendben (a skatulyaelv miatt). b. Jelölje e két l.k.a. (közös) bázisváltozó sorozatát és fejezzük ki őket rendre az felt-ből és -t a célfv-ből:
35
(az egyik) (a másik) c. Mivel e két lin.e.rsz. ekvivalens, ezért ugyanazon szám -esek elégítik ki őket. z d. Legyen az döntési változó értéke tetsz. valós szám, a többi döntési változóé nulla. Ekkor a fenti két lin.e.rsz.:
36
( értékei ismeretében egyértelműen meghatározottak és a két lin.e.rsz. ekvivalens ) ugyanazon értékhez mindkét lin. e.rsz-ben ugyanaz az mo. tartozik, amiből bmely valós esetén Először -t véve: ,majd esetén: adódik, azaz a két l.k.alak ugyanaz.
37
Megj.: a. a ciklizáció már
db. iterációs lépés után bekövetkezik. (ha a feltételek sorrendjétől eltekintünk) b. Ez a szám azonban mégis nagy lehet: pl. persze ez a legrosszabb eset c. Tehát a bázisváltozók egyértelműen kijelölik a feladat egy lehetséges kanonikus alakját !!!!!! d. Változók adott m elemű halmazához tehát legfeljebb egy lehetséges kanonikus alak tartozhat (lehet, hogy egy se)
38
3. A szimplex algoritmus néhány további változata
A 2. Tétel (a bázisváltoztatás tétele) szerint a generáló elem sokféle képpen választható ugyanennyi féle szimplex típusú algoritmus létezhet. Ezek közül néhány (a megállási feltételek nélkül): 1. A generáló elem véletlenszerű kiválasztása a. a negatív célfv. együtthatók közül véletlenszerűen választok egyet b. A kiválasztott edik oszlopban azon együtthatók közül választok véletlenszerűen, melyekre teljesül. A kiválasztott oszlopban gen. elemként szóba jöhet: az 1., a 2. és a 4.: Pl.: melyek közül véletlenszerűen választunk egyet véletlenszerűen választunk közülük egy oszlopot, legyen ez pl. Megj.: Biz-ható, hogy ez az alg. 1 valószínűséggel véges számú lépésben véget ér.
39
2. A legnagyobb csökkentés módszere
a. minden oszlopban kiszámítjuk -t, majd a minimális értékű oszlopok közül a legkisebb indexűt választom (a bal szélsőt) b. A kiválasztott dik oszlopban fentről kezdve az első olyan együtthatót választom, melyre teljesül Pl.: itt a legnagyobb a csökkenés Megj.: ez az alg. ciklizálhat.
40
3. A legmeredekebb csökkenés módszere
Olyan döntési változót választunk, amely értékének növelésével ( 0-ról! ) a célfv. értéke a legmeredekebben csökken. Tfh. bázisváltozóink rendre Ekkor az aktuális bázismo.: ,ahol Ha -ból a j-edik döntési változó irányában 1-et elmozdulunk, miközben a többi döntési változó 0 marad, akkor az pontba jutunk, ( j. ahol Tehát a j-edik változóbeli egységnyi elmozdulásra eső célfüggvényérték- csökkenés ( meredekség ): Ennek alapján
41
a gen. elem kiválasztási stratégiája:
a. a minimális értékű oszlopok közül a legkisebb indexűt választjuk b. A kiválasztott j-edik oszlopban fentről kezdve az első olyan együtt- hatót választom, melyre teljesül Pl.: ez a legkisebb Megj.: ez az alg. is ciklizálhat, de a tapasztalatok szerint ez a leggyorsabb
42
4. A Bland-féle algoritmus (másik neve: legkisebb index szabály)
a. A legkisebb indexű negatív célfv. együttható oszlopát választjuk b. A kiválasztott j-edik oszlopban tekintem azon együtthatókat, melyekre teljesül. Ezek közül az lesz a gen. elem, amelyik sorá- ban a bázisváltozó a legkisebb indexű. Pl.: Megj.: 1. Ez az alg. véges számú lépésben mindig véget ér (nem bizonyítjuk) 2. A gyak-ban ez nagyon lassúnak bizonyult, ezért célszerű csak olyankor bevetnünk, amikor arra gyanakszunk, hogy az általunk használt szimplex alg. ciklizál.
43
4. Számolás szimplex táblázattal
Ötlet: 1. felesleges a bázisváltozók oszlopvektorait tárolni (úgyis ismerjük őket) 2. A bázisváltozóvá váló döntési változó helyére az új döntési változó oszlop- vektora kerülhet. Példa: teljes táblázat aktuális bázismo. és célfv. érték szimplex táblázat
44
opt.mo. Magyarázat: (tfh. a generálóelem) eddigi bázisvált. a többi döntési vál- a jobboldalak új együtthatói tozó új együtthatói új együtthatói Figyelem: a generáló elem kiválasztási szabályait a teljes táblázatos változatra adtuk meg!!! (amikor a változók helye végig ugyanaz marad)
45
Az új szimplex táblázat kitöltési szabályai tehát az alábbiak:
A gen. elem sorában és oszlopában levő változók az új táblázatban helyet cserélnek (az összes többi változó a helyén marad) 2. A gen. elem helyére az új táblázatban a reciproka kerül 3. A gen. elem oszlopában levő összes többi elem helyére az új táblázatban ezek -szerese kerül 4. A gen. elem sorában levő összes többi elem helyére az új táblázatban ezek -szerese kerül 5. Az új táblázat összes többi elemét a „téglalapszabály” adja:
46
A „téglalapszabály” elnevezés szemléletes magyarázata:
47
5. A szimplex típusú algoritmusok egységes leírása a
mátrixalgebra segítségével (angol neve: modified/revised simplex algorithm) Előnyei: a. minden szimplex típusú alg. leírható ilyen módon b. csak azokat az elemeket számítjuk ki, amelyek feltétlenül szükségesek c. leírható vele a feladat kiindulási lehetséges kanonikus alakja és a db. iterációs lépés után keletkező lehetséges kanonikus alakja közti kapcsolat A megoldandó l.k.a.f.: ahol
48
Ne felejtsük el, hogy minden feltételben van olyan változó, melynek együtthatója
ebben a felt-ben 1, az összes többi felt-ben és a célfv-ben 0! Ha a gen. elem, akkor az elvégzendő (ekvivalens) átalakítások: egyenletek A továbbiakban mátrix-műveletekkel is le fogjuk írni a szimplex algoritmust, ami később nagy segítségünkre lesz. Ennek előkészítéséhez az alábbi jelölésekre és segédtételre lesz szükségünk:
49
Jelölések: k-adik sor k-adik oszlop
50
Segédtétel: Végrehajtva a l. k. a
Segédtétel: Végrehajtva a l.k.a.f-on a fenti ekvivalens átalakításokat, a feladat új lehetséges kanonikus alakja leírható az alábbi módon: 1 db. iterációs lépés gen. elemmel Biz.: a. éppen a felt. rsz. új alakja lesz b. ( ( 1. m. ( { k. ez a k. felt. -szerese, c. melyet a célfv-ből kivonva: d. majd átrendezve: adódik.
51
(azaz az előbbi inverz jelölés jogos)
Észrevételek: 1. Az új alakban a k – adik felt. kivételével ( ahol a bázisváltozó lett), az összes többi felt. bázisváltozója a korábbi maradt. 2. k-adik oszlopa helyére az A j-edik oszlopát írva definiáljuk B-t: (azaz az előbbi inverz jelölés jogos) k-adik oszlop 3. Mivel nemszinguláris (azaz jogos a korábbi inverz jelölés) (szorozzuk őket össze – Hf.)
52
4. A segédtétel bmely l. k. a. f-ra alk-ható bmely gen
4. A segédtétel bmely l.k.a.f-ra alk-ható bmely gen. elem választási stratégia esetén lehetőséget nyújt a feladat db iterációs és a kiindulási lépés után kapott lehetséges kanonikus alakjai közötti kapcsolat leírására mátrix műveletek segítségével Ezt mondja ki a köv. tétel:
53
4.Tétel: Ha db iterációs/szimplex lépés után kapott l.k.a.f. bázisváltozói rendre: Ha bevezetjük a Ezek éppen a bázis- változók eredeti e.h.-i jelöléseket,akkor a feladat v-edik iterációs lépés után kapott lehetséges kanonikus alakja leírható az alábbi módon:
54
Biz.: 1. Segédtételünk v-szeri alk-val nyerjük, hogy v db iterációs lépés után a felt. rsz.
alakú és a kapott együtthatómátrix Kiemelve ezen oszlopokat az Ez pedig: Azaz éppen -gyel szoroztuk meg a felt. rsz-t balról a szimplex alg. végrehajtása során 2. Mivel csak szimplex lépéseket hajtottunk végre, ezért 3. Balról szorozva feltételrsz-ét (azaz az 1. feltételt összeadjuk), a kapott
55
Kivonva ezt az egyen- letet a célfv. eredeti egyenleletéből, a célfv. új az eredetivel ekvivalens olyan l.k.a.f-ot kapunk, melynek célfv-e is a kívánt alakú. 4. Mivel a bázisváltozók sorozata a feladat l.k. alakját egyértelműen meghatározza, ezért alakja csak a tétel szerinti lehet. Eml.: a. b. Ezen közös L bmely
56
c. Változók vmely m elemű halmaza csak akkor lehet bázisváltozók halmaza, ha az
oszlopvektoraik lin. függetlenek és a belőlük képzett (ez tetsz. LP feladatra is igaz – ld. 6.Tétel) d. A 4. Tétel nem függ a generálóelem kiválasztás módjától Bmely szimplex alg. leírására használható !!!! Észrevételek: a v-edik iterációs lépés után kapott Ezek kihasználásával a számítások mennyisége lényegesen csökkenthető:
57
Az algoritmus táblázatos elrendezése
a. Az induló feladat n db oszlopa kezdeti bázis- változók n db eleme b. A v-edik lépés utáni l.k.a. aktuális bázis- változók
58
c. Áttérés a v -edikről a v+1 -edik l.k.a.-ra
a kiindulási célfv. e.h.-kból készül c. Áttérés a v -edikről a v+1 -edik l.k.a.-ra Kiválasztom az új generáló elemet, melynek alapján meghatározom majd rendre kiszámolom és a köv. táblázatba írom az alábbiakat: Hogy ez milyen sok helyen szerepel… és ez NEKÜNK MILYEN JÓ!!! a v-edik l.k.a-ból készül -nak csak azt a részét kell kiszámítani, amelyik a köv. gen. elem kiválasztásához feltétlenül szükséges!
59
d. Példa („klasszikus” gen. elem kiválasztási stratégiával)
„az éppen aktuális” bázisváltozók Eredeti célfv. e.h-ók (-1) - Eggyel korábbi Hogy ilyen esetben az invertálás milyen könnyű… szeresei l.k.a. e.h-ói Nincs több negatív célfv. együttható az utoljára kapott l.k.a. bázismo-a optimális Tehát egy opt. mo.: , melyen felvett célfv. érték ( az optimum ):
60
6. A lexikografikus szimplex algoritmus
Def.: lexikografikusan nagyobb vagy egyenlő, mint ,ha az első eltérő Pl.: 1. dichotom: bmely két n-elemű vektor összehasonlítható vele és az összehasonlításnak 2. reflexív: 3. tranzitív: 4. antiszimmetrikus: Mivel a elemű részhalmazának van legkisebb eleme (a rendezés szerint), mely vektort a halmaz lexikografikus minimumának nevezzük. Jelölése: lexmin
61
Def.: a relációhoz tartozó szigorú rendezés: Def.: (azaz első nemnulla eleme pozitív és van ilyen) Def.: P mátrix lexikografikusan pozitív, ha minden sorvektora lexikografikusan pozitív. A lexikografikus szimplex alg. egy iterációs lépése ( megállási felt-ek nélkül) 1. Vegyük a legnegatívabb célfv. együtthatójú változók közül a legkisebb indexűt (a bal szélsőt), jelölje ezt 2. Ha itt a gen. elemként szóbajövő elemek: ,akkor képezzük az alábbi vektorokat: , melyek lexikografikus minimuma jelöli ki az generáló elemet. 3. A kiválasztott gen. elemmel végrehajtjuk a 2. Tétel szerinti átalakításokat
62
Megj.:a gen. elem kiválasztási szabálya egyértelmű, mivel a
vektorok páronként különböznek ( ha a -ik feltétel bázisváltozója ,akkor együtthatója ebben a felt-ben 1, az összes többiben meg 0. 5. Tétel: A lexikografikus szimplex alg. véges számú lépésben mindig véget ér Biz.: Jelölje a megoldandó l.k.a.f. db iterációs lépés utáni alakját Legyen Igazolása v szerinti ind-val:
63
hozzáadva esetén nyilvánvaló esetén szintén, hiszen a k. sor a lex. min.
64
3. Ha az alg. véges számú iterációs lépésben nem érne véget, akkor
iterációs lépés végrehajtása során a feladatnak lehetséges kanonikus alakja keletkezik, melyek között biztosan van két olyan melyek- ben ugyanazok a bázisváltozók és ugyanabban a sorrendben fordulnak elő a 4. Tétel jelöléseivel A 4. Tétel szerint: Tehát a lexikografikus szimplex alg-nak véges számú lépésben mindig véget kell érnie!
65
Megj.: a, ennél a biz-nál is kihasználtuk, hogy minden feladatnak csak véges sok lehet-
séges kanonikus alakja lehet lépés után biztosan van két olyan l.k.a., melyekben ugyanazok a bázisváltozók (sorrendtől eltekintve). c, a fenti biz. szerint bmely együtthatójú oszlopból választhatok gen. elemet, csak a hányadosú sorok közül kell a lexikografikusan legkisebbet választani.
66
Eml. : a, P permutációs mátrix = I oszlopai/sorai tetsz
Eml.: a, P permutációs mátrix = I oszlopai/sorai tetsz. módon összekeverve b, szorzás vmely permutációs mátrixszal(példa): szorzás jobbról = oszlopcserék szorzás balról = sorcserék Gyakorlati tapasztalatok (ezeket ide írom, mert itt van egy kis üres hely) 1, A szimplex típusú alg-ok a gyak-ban rendszerint 3m lépés alatt véget érnek, de mind- egyikhez találtak már olyan feladatot, melynek megoldása exponenciális lépésszámot igényel. Az egyik leglassabbnak a lexikografikus bizonyult, ezért azután csak akkor „vetik be”, ha a használt alg. egy helyben toporog, amiből ciklizálásra gyanakszanak. 2, A lépésszám alig függ n-től (az ismeretlenek számától )
67
Az alábbi feladaton (Beale példája) a „klasszikus szimplex alg
Az alábbi feladaton (Beale példája) a „klasszikus szimplex alg. ciklizál, de a lexikografikus nem
68
7.Szabályos feladatok megoldása általános esetben
Def.: szabályos feladat: Kérdés: Kielégíthető-e a feltételrendszer és ha igen, akkor hogyan lehet a feladat vmely lehetséges kanonikus alakját megadni? (amit azután már meg tudunk oldani) Válasz: Társítsuk az alábbi segédfeladatot: Észrevételek: 1. a segédfeladatnak van megoldása (pl.: ilyen) 2. A szabályos alakú feladatnak pontosan akkor van lehetséges megoldása, ha a társított segédfeladat optimuma 0. Oldjuk meg hát először a segédfeladatot !
69
Példa: Új nemnegatív változók hozzávételével a felt-eket egyenletekké alakítjuk Ez még nem l.k.a.f., de ha a leg- negatívabb jobboldalú feltételt kivonom az összes többiből, majd hozzáadom a célfv-hez, és végül saját magát a (-1)-szeresével helyettesítem, akkor már l.k.a.f.-hoz jutok. (Mindezek a feltételi e.rsz-en és a célfv. egyenletén végzett azonos átalakítások!)
70
1. A társított segédfeladattal ekvivalens l.k.a.f. megoldása
„alsegéd-l.k.a.f.” opt. mo., melyen felvett célfv. érték 0 A megoldandó szabályos feladatban:
71
2. Ezután mindig L-ben maradunk b, az eredeti célfv. szerint optimalizálunk tovább w-t elhagyjuk és z szerint minimalizálunk tovább ( van már induló bázismo. is ) Ehhez z-t a feladat utoljára kapott alakjához igazítjuk ( a feltételek alkalmas számszorosainak hozzáadásával, hogy l.k.a.f. alakú legyen ): hozzáadom a célfv-hez a 2. felt. 1-szeresét hozzáadom a célfv-hez a 3. felt. (-1) -szeresét Most már „passzol” a célfv. (a bázisváltozók nem fordulnak elő benne)
72
3. Csak meg kell oldani opt. mo. optimum Probléma: végrehajtható-e mindig ez az algoritmus? Ehhez azt kell elérnünk, hogy a társított „alsegéd-feladat” utolsó lehetséges kanonikus alakjában ne legyen bázisváltozó (ha mégis az maradt volna, akkor hogyan lehet tőle „megszabadulni” ), mert különben elhagyásakor valamelyik feltétel bázisváltozó nélkül maradna. Megj.: ettől eltekintve a a fenti alg. helyessége nyilvánvaló.
73
Az alg. kiegészítése és helyességének igazolása
1. A társított segéd feladat mindig megoldható, ui. mindig elkészíthető a társított „alsegéd-feladat”, amely l.k.a.f. (és ezért mindig megoldható). Az általunk hozzávett változók nem befolyásolják sem az eredeti feladat L-jét sem célfv-ét 2. Oldjuk meg hát ezt az „alsegéd” l.k.a.f-ot! Jelölje a kapott opt. mo-t! A társított segédfeladatnak (és így az eredeti szabályos feladatnak) nincs lehetséges meg- oldása (ez az ág kész) van lehetséges megoldás bázisváltozó döntési változó 5. vmelyik felt-ben Ezen feltétel jobboldala 0 Az bázisváltozójú feltétel jobboldala csak 0 lehet!
74
4. kiküszöbölése a bázisváltozók közül
Van-e az bázisváltozójú felt-ben másik változónak nemnulla együtthatója? van nincs Törlöm ezt a feltételt, mert alakú, (azaz az összes többi változó bmely értéke esetén teljesül) Ezen nemnulla együtthatók közül vmelyiket (lehet negatív is) gen. Elemnek tekintve végrehajtom a 2.Tétel átalakításait. A megmaradt felt-ekben már nem szerepel Ennek során: a, a jobboldalak nem változnak ( 0 jobboldalú felt. számszorosait vonjuk ki belőlük ) b, ismét l.k.a.f.-ot kapunk c, döntési változó lesz d, a bázismo. nem vált. (degenerált iterációs lépést végeztünk) 5. Törlöm a feladatból az változót ( ezután L-ben maradunk ) 6. Az eredeti célfv. szerint haladok tovább: a. elhagyom a segéd-célfv-t
75
b. Csatolom a eredeti célfv-t
c, a célfv-ből eliminálom a bázisváltozókat: az bázisváltozójú feltétel sze- resét kivonom a célfv-ből 7. Az eredeti szabályos feladattal ekvivalens l.k.a.f-et kaptam, amelyet megoldok.
76
8. Standard alakú feladat
Def.: Megj.: ez általánosabb, mint a l.k.a.f.: LP feladat ált. alakja: pl.: Áll.: Tetsz. LP feladat standardizálható az alábbi lépésekben: 1. Maximumfeladat esetén célfv-e (-1)szeresének minimumát keressük pl.:
77
2. Alsókorlátos változóinkat 0 alsó korlátos változókkal helyettesítjük
átrendezve 3. Negatív jobboldalú feltételeinket a (-1)-szeresükkel helyettesítjük
78
4. Új nemnegatív változók hozzáadásával ill
4. Új nemnegatív változók hozzáadásával ill. kivonásával feltételeinket egyenletekké alakítjuk (kivéve az egyes változók nemnegativitását előírókat) 5. Minden alsó korlát nélküli változót két nemnegatív változó különbségeként írunk fel: Esetünkben legyen: Ez már standard alakú feladat LP feladat opt. mo-a lesz (ennél jobb ui. nem lehet)
79
Köv.: elegendő a standard alakú feladatok megoldásával foglalkozni
Megj.: tetsz. LP feladat a fentihez hasonló módon szabályos alakúra is hozható. (Hf.) 6. Tétel: ha a standard alakú feladatban az változókhoz tartozó A-beli oszlopvektorokból képzett mátrix nemszinguláris, , továbbá , akkor a feladat lehetséges kanonikus alakú és ekvivalens a standard alakú feladattal! Megj.: a 6. tétel nagyon hasonlít a 4. Tételre, csak az vmely LP feladat lehetséges kanonikus alakjai közötti kapcsolatot írja le. Biz.: 1, a kapott feladat lehetséges kanonikus alakú:
80
2, A kapott l.k.a.f. ekvivalens a standard alakú feladattal:
és persze mindkét esetben Megj.: Ha találunk ilyen B-t, akkor jöhet a szimplex alg. Keressünk hát! (ld. alább)
81
mikor nemüres? Társítsuk hoz az alábbi LP feladatot: Vonjuk ki összes feltételét a célfv-ből elnevezések: természetes változó l.k.a.f-ot kapunk elsődleges célfv. mesterséges változó másodlagos célfv. Észrevétel: és feladatok ekvivalensek ( ui.: a felt. rsz-ből és a célfv-ből álló lin.e.rsz-en azonos átalakításokat végeztünk ) Segédtétel: Biz.: az előbbi észrevétel miatt elegendő csak azi igazolni, hogy optimuma 0
82
1. -nak mindig van opt. mo-a (és persze optimuma mindig )
w felveszi szélső értékét on célfv-e folyt. biz. később 2. Tfh optimuma 0 ha megoldjuk a vele ekvivalens l.k.a.f-ot, akkor a kapott opt. mo-ban kell legyen. Ekkor: 3. Tfh. a opt. mo-a a opt. mo-a ( w értéke itt 0, ennél jobb meg nem lehet)
83
A (kétfázisú) szimplex módszer (tetsz.) st.a.f. megoldására
hoz társítjuk a l.k.a.f-ot, melyet megoldunk a szimplex alg. vmely változatával. Ha az optimum pozitív, akkor és VÉGE ( különben ) 2. Ha a bázisváltozók mind természetes változók, akkor ( különben i,) i, a mesterséges bázisváltozók közül vegyük a legkisebb indexű olyat, melynek feltételé- ben van nemnulla együtthatójú természetes változó. Ha ilyen nincs, akkor ii, Különben vegyük a kiválasztott felt-ben a nemnulla együtthatójú természetes változók közül a legkisebb indexűt és ennek együtthatóját generáló elemnek tekintve hajtsuk végre a 2. Tétel átalakításait, majd i, ii, töröljük a (maradék) mesterséges bázisváltozójú feltételeket és , 3. a, töröljük a feladatból a (maradék) mesterséges változókat (együtthatóikkal együtt) b, töröljük az eddigi (másodlagos) célfv-t c, a (megmaradt) feltételrsz-hez csatoljuk az elődleges célfv-t Tfh. a (megmaradt) bázisváltozók sorozata: d, vonjuk ki a célfv-ből az 1. felt szeresét, a 2. felt szörösét,…, az s. felt szeresét (összesen s db. feltételünk maradt) e, a kapott l.k.a.f-ot oldjuk meg a szimplex alg. vmely változatával
84
Példa: (*) 1. társított LP feladat: (**) melyet l.k.a.f-tá alakítunk: (***)
85
és megoldjuk a szimplex algoritmussal:
86
2. nincs mesterséges változó a bázisváltozók között
3. köv 3. a,+b,+c,: d, l.k.a.f-tá alakítás: az 1. felt. 2-szeresét kivonom a célfv-ből: a 2. felt.-t 1-szeresét kinonom a célfv-ből: a 3. felt. 1-szeresét hozzáadom a célfv-hez: e, a kapott l.k.a.f-ot megoldom: opt. mo. optimum
87
A szimplex módszer helyességének igazolása
1. A segédtétel éppen az 1. fázis helyességét igazolja. 2. Tfh. Az 1. fázis végén kapott (l.k.a.) feladat bázisváltozói mind természetes változók: ( mindjárt a 3. fázis köv.) Jelölje őket rendre ,és képezzük (*) együtthatóiból a -et és a -et A 4. Tétel szerint ezzel a bázisváltozó sorozattal (***) feltétel rsz-e: a 6. Tétel szerint (*) ekvivalens a az 1. fázis során ezt kaptuk alakú. l.k.a.f-tal a, (***) jelenlegi alakjából elhagyva a mesterséges változókat, éppen felt. rsz-ét kapjuk Belátjuk, hogy a 3. fázis során éppen ezt kapjuk (amit majd megoldunk)
88
b, elhagyva a másodlagos célfv-t is és csatolva az eredetit:
éppen 1. feltétele -szeresének 2. feltétele -szörösének m. feltétele -szeresének összege d, ezt kivonva a jelenlegi célfv-ből valóban hoz jutunk (amely ekvivalens (*)-gal és megoldható a szimplex alg-sal) 3. A 2. fázis helyességének igazolása (amikor van mesterséges bázisváltozójú feltétel) a, (i) helyessége a mesterséges bázisváltozójú feltételek jobboldala 0! a társított (***) l.k.a.f. optimuma 0 - a kapott bázismo. optimális az s. felt. bázisváltozója a bázismo-ban = s. felt. jobboldala = 0
89
, ha a mesterséges bázisváltozójú (és ezért 0 jobboldalú) s
, ha a mesterséges bázisváltozójú (és ezért 0 jobboldalú) s. feltételből választott nemnulla együtthatóval, mint generáló elemmel hajtom végre a 2. Tétel átalakításait, akkor degenerált iterációs lépést végzek ( a jobboldalak nem változnak, a bázismo. sem változik és ismét a (***)-gal ekvivalens l.k.a.f-ot kapunk, és a mesterséges bázisváltozójú felt-ek jobboldala továbbra is 0) , ha a gen. elem az természetes változó együtthatója, akkor az s. felt-ben lesz az új bázisváltozó a mesterséges bázisváltozók száma eggyel csökken b, (i) ismételgetésével előbb-utóbb elfogynak a természetes változóra cserélhető mes- terséges bázisváltozók maradt még mesterséges bázisválto- zójú feltétel csak természetes bázisváltozójú felt-ek ma- radtak (és a kapott l.k.a.f. ekvivalens az 1. fázis végén kapottal) (de az ilyenekben már csak mester- séges változók lehetnek – különben a csere folytatódna) A 2. alatti biz. itt is jó (és kész)
90
c, (ii) helyessége 4. Tétel (***) felt.rsz-e (i) után: (*) felt. rsz-e ekvivalens a felt. rsz-rel a mesterséges bázisváltozójú felt-ekben (most már) nincs termé- szetes változó ezekből itt 0=0 alakú feltételek lesznek (amelyek mindig teljesülnek) ezért hagyhatók el a mesterséges bázisváltozójú felt-ek (*) után törölve őket továbbra is a (*) felt. rsz-ével ekvivalens felt. rsz-t kapunk: elhagyva a mesterséges változókat oszlopaikkal együtt tényleg ezt kapjuk csatolva ehhez az eredeti célfv-t: a (*)-gal ekvivalens LP feladathoz jutunk (melyet a szimplex módszer algoritmusával kaptunk).
91
(. ) megmaradt bázisváltozói mind természetes változók
(***) megmaradt bázisváltozói mind természetes változók. Ezek itt is azok lesznek, ha feltételeink alkalmas számszorosait (a szokásos módon) kivonjuk a célfv-ből. Így a (*)-gal ekvivalens l.k.a.f-ot kaptunk (amit már csak meg kell oldani)! Megj.: 1, a szimplex módszer véges számú (iterációs) lépésben véget ér, ha a felhasznált szimplex alg. véges. 2, az elsődleges célfv-t is „magunkkal cipelhetjük”: ilyenkor a 3. fázisban haszná- landó alakja „magától kialakul” (az elsődleges célfv-ben is „ki kell nullázni” az új bázisváltozó együtthatóját – ugyanúgy, mint a többi felt-ben, és természetesen nem választható belőle gen. elem) ld. gyak. 3, bmely szabályos feladathoz megadható vele ekvivalens standard feladat: a. A negatív jobboldalú felt-eket a (-1) –szeresükkel helyettesítve és a felt-eket alkalmasan felcserélve: b. nemnegatív változók hozzáadásával/kivonásával a felt-eket egyenletekké alakítom:
92
4. bmely standard feladathoz megadható vele ekvivalens szabályos feladat:
használom: Köv.: a szabályos feladatok megoldására szolgáló alg. és a standard feladatok megoldá- sára szolgáló alg. „egyforma erős” (helyettesíthetik egymást)
93
9. A konvex poliéderek és a lineáris programozás kapcsolata
: n-dimenziós lineáris tér a valós számtest felett (elemei a vektorok/pontok) ( azonosítható az n-elemű valós vektorok lin. terével) : n-dimenziós euklideszi a tér, ha ben a belső szorzat és a távolság a szokásos módon van értelmezve: és Def.: a és pontokat összekötő szakasz: Def.: az pont a és a pontokat összekötő szakasz felezőpontja Def.: H konvex (ponthalmaz), ha H bmely két pontjával együtt az őket összekötő szakasz minden pontját tartalmazza Def.: H zárt (ponthalmaz), ha bmely H-beli konvergens pontsorozattal együtt annak határértékét is tartalmazza
94
Megj.: koordinátánkénti konvergenciát jelent, azaz Def.: H korlátos (ponthalmaz), ha van olyan M>0 valós szám, hogy Def.: H konvex halmaz h eleme a H csúcspontja, ha h nem lehet H-beli valódi szakasz belső pontja Megj.: a, valódi szakasz végpontjai különbözőek b, ha H nem konvex, akkor pl. csúcspont ez, vagy sem?
95
Def.: h előállítható a pontok konvex lineáris kombinációjaként, ha meg-
adhatók olyan nemnegatív valós számok, melyek összege 1, és Def.: az pontok által generált K konvex kúp az összes, nemnegatív súlyokkal vett lineáris kombinációinak halmaza: Megj.: bevezetve az és a jelöléseket, velük K az alábbi módon is írható: Def.: H konvex poliéder, ha: a, zárt b, korlátos c, konvex d, véges sok csúcspontja van Megj.: a zárt körlemez nem konvex poliéder ( def-ónk szerint végtelen sok csúcspontja van ) 7. Tétel (a konvex poliéderek főtétele) Konvex poliéder összes pontjainak halmaza Csúcspontjai összes konvex lineáris kombinációinak halmaza (biz. nélkül)
96
Segédtétel: A standard alakú feladat összes lehetséges megoldásainak halmaza
zárt és konvex. Biz.: Jelölje L az st.a.f. összes lehetséges mo-ainak halmazát! Tfh. L nemüres ( esetén az állítás igaz) n-elemű vektorok a, a zártság igazolása: Legyen L-beli pontok tetsz. konvergens sorozata, melynek határértékét jelölje ! a számsorozatok kon- konvergencia tételeinek felhasználásával
97
b, a konvexség igazolása
mind nemnegatívak
98
Igazak a grafikus megoldásnál tett megfigyeléseink általában is
(csúcspontok és bázismo-ok kapcsolata, optimum van csúcspontban is) Eml.: a, rang(A) = A sorvektorrendszerének rangja (ez a def) = A oszlopvektorrendszerének rangja (ez tétel volt) = A-beli max. nagyságú nemszinguláris részmátrix mérete(ez is tétel) b, Cronecker-Capelli tétel: Def.: sor-reguláris, ha rang(A) (nyilván ) Def.: kitüntetett megoldás, ha oszlopai lineárisan függetlenek. (ahol az nemnulla elemeihez tartozó A-beli oszlopvektorok részmátrixa) Tétel: L csúcsainak halmaza (C) = L kitüntetett megoldásainak halmaza (KMO) Biz.: a, esetén igaz (nincs se csúcspont, se kitüntetett mo.) b, esetén (ekkor: ! ) Feltehetjük, hogy A sor-reguláris! (ha nem így volna, azaz lenne, akkor tartsunk meg az feltételei közül r db lin. függetlent és hagyjuk el a többit az eredetivel ekvivalens lin. e. rsz-t kapunk )
99
a, oszlopai lin. függőek oszlopai is lin. függőek b, lin. függőek 2, Bővítsük ki -ot 0-kal -ná úgy, hogy A-nak az -ben nem szereplő osz- lopaihoz 0-t, az beliekhez pedig hozzájuk tartozó elemeit rendeljük. Köv.: 3,
100
4, esetén ,azaz vmely L-beli szakasz belső pontja Tétel.: Ha a st.a.f. célfv-e alulról korlátos L-en, akkor bmely hez van olyan csúcspontja L-nek, ahol ( azaz, ha minden mo-hoz van legalább olyan jó csúcsponti mo., van a csúcspontok között is optimális) Biz.: 1, ha csúcspontja L-nek, akkor nyilvánvaló 2, nem csúcspont
101
Definiáljuk -t az alábbi módon:
negatív! merőlegességnél -nak legyen negatív eleme és tekintsük az félegyenest! (induljunk el -ből az irányában) i, -nak nincs negatív eleme mivel ,de a célfv. alulról korlátos L-en ez az ág nem lehetséges! ii, -nak van negatív eleme = 0 esetén nemnegativitása elveszne
102
Tfh olyan, melyre Legyen Ekkor: továbbá:
103
olyan másik L-beli ponthoz jutunk, amiben mégtöbb nulla van és a célfüggvény értéke
is csak csökkenhet. ha az eljárás tovább nem folytatható (azaz nincs olyan valódi szakasz, melynek az utol- jára nyert pont felezőpontja lenne), akkor nyilván csúcsponthoz értünk. (különben folytathatnánk egészen a 0 -ig, az pedig biztosan csúcspont) Köv.: Ha a standard alakú feladat célfüggvénye alulról korlátos L-en, akkor mindig van az L csúcspontjai között is optimális megoldás
104
Észrevétel: ha két kitüntetett megoldás nemnulla elemei ugyanazon pozíciókon vannak,
akkor a két kitüntetett megoldás ugyanaz Ui.: ha u és v két olyan kitüntetett mo. lenne, melyek nemnulla elemei ugyanazon lin. független halmaza tartozna u-hoz és v-hez is, azaz lenne: lin. függetlenek Köv.: 1, az változók minden részhalmazához legfeljebb egy kitüntetett mo. tartozik (lehet, hogy egy se) n elemű halmaz összes a kitüntetett mo-k száma legfeljebb részhalmazainak száma C=KMO miatt az összes lehetséges mo-ok halmazának véges sok csúcspontja van 2, ha L korlátos, akkor L konvex poliéder
105
További észrevételek a lehetséges kanonikus alakú feladat esetén
1, a l.k.a.f. (aktuális) bázismo-a kitüntetett mo. 2, a szimplex alg. egymással ekvivalens l.k.a.f-okon keresztül halad 4. Tétel az (aktuális) bázismo. pozitív elemeihez tartozó A-beli oszlopvektorok lin. függetlenek bázismo kitüntetett mo az L csúcspontja Geometriai interpretáció 1, a szimplex algoritmus L egy csúcspontjából indulva minden nemdegenerált iterációs lépés után L másik csúcspontjára lép (degenerált iterációs lépésnél „helyben marad”) 2, a szimplex módszer csak az 1. fázis végén talál rá L egy csúcspontjára ( ha ) ,addig csak a társított l.k.a.f. csúcspontjain lépeget mesterséges változók hozzávételével kapott „bővebb” feladat Megj.: a jegyzet a l.k.a.f. kitüntetett megoldásait kiterjesztett értelemben vett bázismegol- dásoknak nevezi.
106
10. Dualitás I 10.1 Probléma: Hogyan lehetne a szabályos maximumfeladatok optimumára felső korlátot adni? Eml.: szabályos feladaton eddig minimumfeladatot értettük, de így sokkal könnyebb lesz megérteni Példa: primál feladat 10.2 Ötlet: tekintsük a felt-ek vmely nemnegatív súlyokkal vett lin. kombinációját: Ennek baloldala biztosan majorálja a célfv-t, ha az felt-ek teljesülnek. Ekkor „még inkább” teljesül!!!!
107
Ha minimalizálni szeretnénk felső korlátját, akkor az alábbi LP feladathoz jutunk:
ez a duális feladat 10.3 A primál-duál feladatpár (spec. eset) primál feladat
108
a legkisebb felső korlátot szeretnénk
A primál célfv-t biztosan majoráljuk, ha teljesülnek: a primál feladat duálisa a legkisebb felső korlátot szeretnénk 10.4 Mátrixos alakjaik primál duál Fontos: b és c tetszőlegesek (nincs kikötve a nemnegativitásuk), továbbá a duális feladat duálisa = primál feladat
109
10.5 A gyenge dualitási tétel:
Biz.: szám szám innen indulok szám Köv.: 1, Ha felülről nemkorlátos n, akkor ellenőrzésre használható Pl.: optimális megoldása-e az és az az alábbi primál feladatnak és a duálisának?
110
10.6 Oldjuk meg a primál feladatot! „lazasági” változók
a duálisa mindkettő opt. mo. 10.6 Oldjuk meg a primál feladatot! „lazasági” változók A célfv. maximuma helyett a (-1)-szeresének minimu- mát keressük A gen. elemet mindig 1-nek választom, hogy ne kelljen törtekkel bajlódni! Folyt a köv. lapon
111
MEGLEPETÉS: ( azaz a duális opt. mo-a )
Megj.: ezen gondolatmenetet követve bebiz-ható az erős dualitási tétel (a fenti spec. esetben – amikor minden változó nemnegatív és minden feltétel egyenlőtlenség):
112
10.7 Az erős dualitási tétel: Ha a primál-duál feladatpár egyikének van opt. mo-a, akkor a
másiknak is van és a két optimum (értéke) megegyezik. Biz.: csak az egyik irányban (a másik irányban hasonló) Észrevétel: Ha a primál feladat egy opt. mo-a, akkor elég megadni a duálisának egy olyan lehetséges mo-át megadni, hogy teljesüljön. Ezt fogjuk tenni! Tfh. a primál feladatnak van opt. mo-a. Ez mindig megkapható a (tetsz. jobboldalú) szabá- lyos feladatok megoldására szolgáló alg-sal. Majdnem l.k.a.f., de induló primál feladat a célfv. max-át ke- ressük végső alak Megj.:
113
Végső soron a célfv-hez az eredeti feltételek számszorosait adtuk:
Ha ezen végső alak bázisváltozói rendre akkor az optimális Az induló primál feladat és a kapott végső alakja ekvivalensek, hiszen az alg. végrehajtása során először a feltételi egyenlőtlenségeket rendre az változók hoz- záadásával egyenletekké alakítottuk, majd ezen az (m+1) db !!! egyenletből álló egyen- let rsz-en végeztünk azonos átalakításokat Végső soron a célfv-hez az eredeti feltételek számszorosait adtuk: def. Ez lesz a duális opt. mo-a folyt. köv.
115
10.8 Három megjegyzés a primál feladat és a duálisa kapcsolatáról…
a, a duális feladat duálisa a primál feladat primál feladat a duálisa a duális duálisa b, erős duali- tási tétel duális feladat Példa van opt. infizibilis nemkor- mo-a látos primál duálisa van opt. mindig lehe- lehe- mo-a igaz tetlen tetlen primál feladat infizibilis lehe- lehet igaz tetlen nemkor- lehe- lehe- igaz látos tetlen tetlen
116
c, gyakorlati tapasztalat: a szimplex módszer által elvégzendő iterációs lépések száma
a megoldandó feladat feltételeinek számával egyenesen arányos, ismeretleneinek szá- mától pedig majdnem teljesen független. A primál feladat és a duálisa közül azt célszerű megoldani, amelyikben kevesebb a feltétel (persze egyúttal a másikat is megoldottam…) 10.9 Mekkora a „gap” ? Megj.: magyarul a „gap” hézagot, rést, távolságot, stb. jelent. Azért használom mégis ezt a kif.-t, mert a magyarok is mindig ezt használják, és aki nem tudja mi az, arra csak legyintenek, hogy már megint egy „zödfülű” és tovább iszogatják a sörüket. Feladat: ismert és esetén hat. meg a értékét! Megj.: ezt könnyebb lenne egyszerűen kiszámolni (és ezt is teszik), de egy kicsit tovább- gondolva egy szép tételhez juthatunk, ha először nemnegatív változók hozzáadásával vagy kivonásával feltételeinket egyenletekké alakítjuk: illetve majd
117
és (mert számok és ) „megszabadulva” -tól és -től
(mert számok és ) „megszabadulva” -tól és -től Köv.: ezen m+n db nemnegatív szám mindegyike 0. Tétel: az egyidejű optimalitás eldöntésére (complementary slackness) és Megj.: Ezen m+n db felt-nek egyszerre kell teljesülnie! Tételeink felhasználhatóak az optimalitás eldöntésére (ld. a köv. példákat)
118
{ { 1. példa: optimális megoldása-e az a a *-gal
jelzett oszlopvektorokból származó duális feltételek egyenletek { a *-gal jelzett primál feltételek helyen < -bel teljesülnek és kell legyen LP feladatnak? a, b, keresünk olyan vektort, amely kielégíti a fentiekből a duális változókra nyert alábbi lin. e. rsz.-t: melyet megoldunk pl. a Gauss-eliminációval
119
visszafelé helyettesítéssel egyetlen
mo.-t kapunk: + c, teljesül opt. mo.
120
2. példa: Optimális megoldása-e az a
primál feladatnak? * a, b, Találnunk kell olyan t, amely kielégíti a lin. e. rsz-t Megoldva Gauss-eliminációval: Tehát az egyetlen mo.
121
c, ,mert megsérti a duális feltételt
* nem opt. mo. Megj.: „Kell egy tipp…” A megmaradó lin. e. rsz-nek több mo-a is lehet, vagy egy sem.
122
11. A duális változók gazdasági értelmezése
11.1 Feladat: termelés max. nyereséggel korlátozott erőforrások esetén ez éppen a primál feladat ahol: m: az erőforrások (a korlátozó felt-ek) száma n: a termékek/tevékenységek száma (= az ismeretlenek száma) : a j-edik termék/tevékenység mennyisége/intenzitása : az i-edik erőforrás felső korlátja : a j-edik termék/tevékenység 1 egységén keletlező haszon (egységnyi haszon) : az i-edik erőforrásból a j-edik termék/tevékenység 1 egységének előállításához felhasznált mennyiség (egységnyi erőforrásigény)
123
11.2 A duális változók jelentése (Tipp a dimenzióanalízissel)
Tfh. a j. terméket kg-ban, a korlátot ben, a célfv. értékét Ft-ban mérjük Primál ( j. oszlop) kg Duál ( i. oszlop) (i. sor) (j. sor) max min Ft Ft
124
egységnyi j-edik termék igénye az i-edik erőforrásból
célfv. mértékegysége i-edik felső korlát mértékegysége egységnyi j-edik termék igénye az i-edik erőforrásból az i-edik erőforrás egységára ? Árnyékár ? a haszon az egységnyi j-edik terméken szorozva a mennyiséggel: Ft lesz 11.3 Tétel (a duális változók egységár-szerű viselkedésének alátámasztására) Ha a primál feladatnak van nemdegenerált optimális megoldása, akkor ,hogy (perturbált) primál feladatnak van opt. mo-a és az optimumának értéke: ,ahol az eredeti primál feladat optimuma és az eredeti feladat duálisának opt. mo-a. ( biz. nélkül)
125
Megj.: 1, tényleg az i-edik forrás egységnyi növelésével/csökkenésével együttjáró
primál optimum növekedését/csökkenését mutatja Köv.: ha az i-edik forrás piaci egységára -nál nagyobb, akkor nem érdemes vásárolni belőle, mert a haszon csak gal nő. Ilyenkor eladni kell az i-edik forrásból, mert a haszon csak -gal csökken, mi meg ennél drágábban tudunk eladni. (azaz így járunk jobban ) 2, a „határhaszon-elmélet” LP modelljéhez jutottunk (alatta venni, felette eladni) 3, más szokásos elnevezései: „marginális ár”, „árnyék-ár” 4, ez a növekedés/csökkenés persze csak egy határig igaz (amit jó lenne ismerni, de csak egy egzisztencia tételünk van, az is csak nemdegenerált opt. mo. esetén igaz) Mit tehetünk? Perturbálni (változtatgatni) kell a jobboldalakat és újra meg újra megoldani az így kapott LP feladatokat… Lássunk mindezekre egy egyszerű példát! (köv. oldalon)
126
11.4 Példa: Van 100 hektár erdőnk, melyet művelni szeretnénk
1. módszer: kivágjuk az összes fát és kész (A természet majd regenerálja önmagát?) 2. módszer: kivágás után a területet újra betelepítjük 1. módszer 2.módszer befektetés 10$ 50$ hektáronként bevétel 50$ 120$ Összes forgótőkénk: 4000$ haszon 40$ 70$ a, Hány hektárt ültessünk be újra? (és hányat ne?) primál feladat megoldjuk min. feladat a duális opt. mo-a
127
b, mennyivel nő a profit, ha a forgótőkénket 1$-ral megemeljük?
Mivel a primál feladatnak van nemdegenerált opt.mo-a a Tétel alk-ható (bár értékét nem ismerjük…) ,ezért 1$ tőke pótlólagos befektetése Tehát akkor érdemes kölcsönt felvenni, ha … De legfeljebb 25 hektárnál térhetünk át a 2. módszerre legfeljebb 25(50-10)= 1000$ kölcsönt érdemes erre a célra fölvenni! c, Mekkora kár éri a tulajdonost, ha leég 1 hektár erdő? ( Vajon miért nem 40$ a veszteség? Nincs itt vmi hiba a „kréta körül”? NINCS!!! )
128
Ellenőrzés: Magyarázat: azért csökken csak 32,5$-ral (és nem 40-nel), mert a tőke felszabaduló része a nagyobb hasznot hozó 2. módszerre fordítható (amint az példánkban is látható, azonnal megnövekszik az opt. mo-ban ne- gyed hektárral a drágább, de nagyobb hasznot hozó 2. módszerrel művelendő terület) Kellemes (?) meglepetés: a pusztulással feleslegessé váló tőke máshol jobban hasznosulhat!
129
d, vajon meddig lehet a jobboldalakat (egyenként) változtatni, hogy és még
bázisváltozó maradjon? Ha és a végső l.k.a. bázisváltozói ( ban a célfv. eredeti e.h-ói állnak – előjelhelyesen) Addig lehet a jobboldalakat változtatni, amíg marad. Pl.: Megj.: az ilyenfajta vizsgálatokat szokás „érzékenység” vizsgálatnak nevezni.
130
12. Érzékenységvizsgálat
Kérdés: Milyen határok között változhatnak az adott LP feladat paraméterei(konstansai), hogy hatásuk a feladat megoldhatóságára, optimális megoldására és optimumára még „követhető” legyen? Válasz: Tfh. a vizsgálandó LP feladat: A sor-reguláris b tetsz. A „szokásos” érzékenységvizsgálat az alábbi: 1, Megoldjuk a kitűzött LP feladatot: tfh. van opt. mo-a. Legyen az utoljára kapott l.k.a.-ja (amelyhez tartozó bázismo. egyben opt. mo. is) bázisváltozóinak sorozata: ! 2, Azt vizsgáljuk, hogy milyen határok között változtathatók az eredeti LP feladat jobboldalai és célfüggvényének együtthatói úgy, hogy a megváltoztatott LP feladat ugyanezen bázisváltozó sorozatához tartozó (*) perturbáltja (módosítottja)
131
Megj.: a, e, egyszerre csak egy paramétert szokás változtatni, mert különben a változásokat nehéz követni (vagy vmelyik -t, vagy vmelyik -t) most felesleges Példa: a korábban már megoldott szabályos feladat A sor- reguláris Az opt. mo-hoz tartozó bázisváltozóinak soro- zata: (tudjuk, mert már megoldottuk)
132
most itt van a és itt a a, Milyen határok között változhat pl. a 2. feltétel jobboldala? alsó korlát nincs !!!
133
b, Milyen határok között változhat ?
c, Milyen határok között változhat ? bázisváltozó a feladat utolsó l.k.a.-jában az összes célfv. együttható változhat ! ,amiből:
134
13. Esettanulmány a mezőgazdaságból
Feladat: 130 hektár földhöz 2 fő munkaerő áll rendelkezésre (egész éven át). A fő tevé- kenység a növénytermesztés, melynek folyamata adott (így nem foglalkozunk vele). A fennmaradó időt állattenyésztésre fordítják. Ennek hasznát maximalizáljuk. (ill. az érzékenységvizsgálat seg-vel megkeressük azt a szűk erőforrást/erőforrásokat, mely- nek bővítésével a haszon jelentősen megnövelhető) Feltételek: a, ismert az állattenyésztésre fordítható idő havi bontásban (óra) b, a használt állattenyésztési módok (intenzitásaik az ismeretlenek)
135
c, havi munkaigényük(óra) állatonként (statisztikai adat)
d, A hízlaláshoz az eddigieken felül legeltetésre is szükség van. A legelendő fűmeny- nyiség állatonként (kéthavi bontásban) „legelési napokban” mérve: okt-márc: nincs legeltetés A legelő mérete és ezért az onnan legelhető fűmennyiség korlátos „legelési napok” max. száma
136
e, Az állatok ezen felül szénát is kapnak. Az összes szénaigény
állatonként rendre: - ; 0,1t ; 0,9t ; 0,8t ; 2,3t f, A szénát össze is kell gyűjteni. Ez 5,5 munkaórát jelent tonnánként g, 1t széna = 50 „legelési nap” (a fűkorlát miatt kell) h, A haszon rendre 139$ ; 88$ ; 133$ ; 137$ ; 165$ állatonként Cél: maximális hasznú tenyésztési terv készítése További változók: az ápr-ban begyűjtendő összes széna a máj-ban begyűjtendő … a jún-ban begyűjtendő … a júl-ban begyűjtendő … az aug-ban … a szept-ben … Modellünk korlátjai: 1, nem terjed ki a növénytermesztésre 2, túl „statikus”
137
LP modell: 12 havi időkorlát legeltetési korlátok szénaigény és persze változóink mind nemnegatívak…
138
Optimális megoldás: Tehát 55 disznót kell hízlalni ősszel, 21 marhát legeltetéssel és 38 marhát vegyes etetéssel. Ekkor a haszon kb $. (és leolvashatók a begyűjtendő széna- mennyiségek is) A duális feladat optimális megoldása: 1, észrevétel: kiugróan magas a júniusi időkorlát feltétel „árnyékára”. Tételünk nem alkalmazható, mivel a primál LP feladat opt. mo-a degenerált, de ha alkalmazható lenne, akkor is nehéz az max. értékét meghatározni/megbecsülni és így a júniusi időkorlát bővítésének határát megadni. Kaptunk viszont egy jó tippet: ha pl. 50 órányi időre felvennénk jún-ban egy kisegítő munkaerőt (azaz a júniusi időkorlát 145 óra lenne) és a megváltoztatott LP feladatot újból megoldjuk, akkor kiderül, hogy a profit így 17000$ lenne (több, mint 20 %-os növekedés) Persze most az opt. mo. is teljesen más: 43 disznót kell ősszel hízlalni, 12 mar- hát szénával, 81-et legeltetéssel és 4-et vegyes módon kell etetni. 2, észrevétel: a széna „árnyékára” is magas: 25$/tonna Köv.: venni kell, ha 25$-nál lényegesen olcsóbban lehet és el kell adni, ha …..
139
14. Dualitás általános esetben
Primál feladat: P: Megj.: Ha a és az feltételek vegyesen fordulnának elő, cseréljük fel őket! Ha a nemnegatív és az előjelkötetlen változók vegyesen fordulnának elő, cseréljük fel a sorrendjüket! (és persze nevezzük át a változóinkat a fen- tiek szerint – ha ennek szükségét érezzük) Cél: Szeretném a célfv. értékét a felt-ek alkalmas lin. kombinációjával felülről a lehető leg- nagyobb mértékben korlátozni:
140
D: biztosan fennáll, ha teljesülnek
A felső korlát leszorítása az alábbi LP feladathoz vezet, amit a fenti primál feladat duális feladatának nev.: hogy az egyenlőtlenség iránya ne forduljon D: Észrevétel: a duális feladat duálisa a primál feladat, ha ui. most a duális felt-ek alkalmas lin. kombinációjával szeretném a duális célfv. értékét alulról korlátozni, akkor biztosan fennáll, ha
141
feltételrendszere ( is fennáll ), amely mellett szeretnénk -t
maximalizálni: ,ami éppen a primál feladat. Párhuzam: Primál Duál
142
Példa.: Táblázatos formában (csak memorizálásra!): min max
143
Duális képzése spec. esetekben
a, ez a korábbi spec. eset b, Lineáris egyenlet/egyenlőtlenség rsz-nek is képezhető a duálisa ( minel tekinthető olyan LP feladatnak, melynek célfv-e tetsz.) Pl :
144
Megj.: becslés egyúttal a gyenge dualitási tétel bizonyítása is:
Tétel: Ha Köv.: 1, Ha felülről nemkorlátos n, akkor 2, Ha alulról nemkorlátos n, akkor 3, Ha Akkor egyaránt opt. mo.! (ellenőrzésre használható) Mekkora a „gap”(=hézag) ? Azaz ismert esetén mekkora a távolság? ekkor:
145
és Ebből azonnal köv. a komplementaritási tétel ált. alakja:
Fennáll az erős dualitási tétel a primál-duál feladatpár eme általános alakjában is: Ha vmely LP feladatnak van opt. mo-a, akkor a duálisának is van és a két optimum egyenlő. (nem bizonyítjuk) Az erős dualitási tétel seg-vel könnyen biz-ható a Farkas lemma: Biz.: tekintsük az alábbi primál feladatot és képezzük a duálisát!
146
P: ismerős a, ebből b,
147
Megj.: 1. a Farkas-lemma önállóan is bizonyítható (az erős dualitási tétel nélkül) és
2. a Farkas-lemmából is következik az erős dualitási tétel (a Bajalinov-Imreh jegy- zetben ez szerepel)
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.