Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Operációkutatás I. 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,

Hasonló előadás


Az előadások a következő témára: "Operációkutatás I. 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,"— Előadás másolata:

1 Operációkutatás I. 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. (2008.márc.04-i állapot)

2 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ó 1. Áttekintés

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 ( nem, azzártsága miatt) 4. Egyszerű példák LP feladatokra x 1 és x 4 tetsz. előjelű!!

4 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. 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 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

5 Választható ételekenergia tar- talom (kcal) fehérje tartalom (g) kalcium tartalom (mg) ár (centben) Zabkása (1adag 28g) Csirke (1 adag 100 g) Tojás (1 adag 2 db) Tej (1 adag 237cm 3 ) Pite (1 adag 170g) Bab hússal (1 adag 260g) 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: x 1 : napi zabkása adagszám x 2 : -||- csirke -||- x 3 : -||- tojás -||- x 4 : -||- tej -||- x 5 : -||- pite -||- x 6 : -||- sólet -||-

7 energia alsó korlát: 110x x x x x x 6 ≥ 2000 fehérje alsó korlát: 4x 1 +32x 2 +13x 3 +8x 4 +4x 5 +14x 6 ≥ 55 kalcium alsó korlát: 2x 1 +12x 2 +54x x 4 +22x 5 +80x 6 ≥ 800 zabkása felső korlát: x 1 ≤ 4 csirke felső korlát: x 2 ≤ 3 tojás felső korlát: x 3 ≤ 2 tej felső korlát: x 4 ≤ 8 pite felső korlát: x 5 ≤ 2 sólet felső korlát: x 6 ≤ 2 az adagszámok nem-negatívak: x 1 ≥ 0, x 2 ≥ 0, x 3 ≥ 0, x 4 ≥ 0, x 5 ≥ 0, x 6 ≥ 0 Napi költsége (célja): 3x 1 +24x 2 +13x 3 +9x 4 +20x 5 +19x 6 → min Megj.: x 1,x 2,…,x 6 az egyes tevékenységek (az evések) mértékének vagy intenzitásának is tekinthető. Ekkor [x 1,x 2,…,x 6 ] ε L egy lehetséges cselekvési terv, azaz program ( innen(?) származik a lineáris programozás elnevezés)

8 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 krakkolt sima izopentán 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ámnyomásár($/barrel) A típusmin. 100max. 76,45 B típusmin. 91max. 65,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 normális(?) eset ellentmondó feltételek (infizibilis eset) nemkorlátos eset de a célfv. alulról/felülről nemkorlátos L-en (megoldását ld. alább) Pl.: Pl. lehetséges mo-ai:

10 11. A lineáris programozási feladat megoldhatóságának jelentősége a) A meglevő feltételek között lehet a hatékonyságot javítani b) 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 2. megjegyzés: ámde kihagytuk a feltételek kezelését… (Látjuk, hogy a dolog megy, de azért ennek később még alaposan utána nézünk)

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 0,,,,,     xxxxxx xxxx xxxx xxxx (*)(*) 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 0,,,,,     xxxxxx xxxx xxxx xxxx eredeti változók lazasági változók 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 1.A 3 feltétel jobboldalai mind nemnegatívak maradjanak 2.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 bázis- változók (aktuális) bázismo. a rajta felvett célfv. érték Zsákutca, mert van negatív eleme Ez jó, ezt folytatom

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 Grafikus megoldás: y=4 x=6 (0,0) (2,4) (4,3) (6,1) (0,4) (6,0) x+2y=10 2x+2y=14 -3x-4y=-8 -3x-4y=-24 -3x-4y=0 L opt. mo.

20 Lehetséges kanonikus alakúvá alakítás 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. 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.

21 D. Megoldás szimplex algoritmussal Még van negatív együttható folyt. köv. Bázismegoldás = könnyen leolvas- ható megoldás

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) ! (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: változók az (aktuális) bázisváltozók ahol ésvá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 aholaz i-edik felt. régi, ésaz új alakját, 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) és

27

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 -ben értékei 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. „degenerált” iterációs lépés köv. 2 (bázismo. és célfv.érték nem változik)

31 degenerált bázismo. „degenerált” iterációs lépés köv. (bázismo. és célfv.érték nem változik) 1 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.: a.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. (nem biztos, hogy mindegyikhez tartozik a feladatnak l.k.a.-ja) lehet. 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 azdö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ékeiismereté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óseseté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árdb. 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álasztottedik oszlopban azonegyütthatók közül választok véletlenszerűen, melyekre teljesül. Pl.: véletlenszerűen választunk közülük egy oszlopot, legyen ez pl. A kiválasztott oszlopban gen. elemként szóba jöhet: az 1., a 2. és a 4.: melyek közül véletlenszerűen választunk egyet 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. mindenoszlopban 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, 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 ( j.

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ázataktuális bázismo. és célfv. érték szimplex táblázat

44 Magyarázat: (tfh.a generálóelem) eddigi bázisvált. új együtthatói a többi döntési vál- tozó új együtthatói a jobboldalak ú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) opt.mo.

45 Az új szimplex táblázat kitöltési szabályai tehát az alábbiak: 1.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.f-on a fenti ekvivalens átalakításokat, a feladat új lehetséges kanonikus alakja leírható az alábbi módon: Biz.: a. éppen a felt. rsz. új alakja lesz b. { ez a k. felt. -szerese, c. melyet a célfv-ből kivonva: d. majd átrendezve: adódik. k. ( ( ( 1. m. 1 db. iterációs lépés gen. elemmel

51 É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: k-adik oszlop 3. Mivel nemszinguláris (azaz az előbbi inverz jelölés jogos) (szorozzuk őket össze – Hf.) (azaz jogos a korábbi inverz jelölés)

52 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 kiindulási és a db iterációs 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: 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: Ha bevezetjük a Ezek éppen a bázis- változók eredeti e.h.-i

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 letet a célfv. eredeti egyenleletéből, a célfv. új Kivonva ezt az egyen- 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 kezdeti bázis- változók n db oszlopa n db eleme b. A v-edik lépés utáni l.k.a. aktuális bázis- változók

58 Hogy ez milyen sok helyen szerepel… és ez NEKÜNK MILYEN JÓ!!! 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: -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! a kiindulási célfv. e.h.-kból készül a v-edik l.k.a-ból készül

59 Eggyel korábbi d. Példa („klasszikus” gen. elem kiválasztási stratégiával) 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 ): „az éppen aktuális” bázisváltozók Eredeti célfv. e.h-ók (-1) - szeresei l.k.a. e.h-ói Hogy ilyen esetben az invertálás milyen könnyű…

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 aelemű részhalmazának van legkisebb eleme (arendezé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:, melyeklexikografikus 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 avektorok páronként különböznek ( ha a-ik feltétel bázisváltozója,akkoregyütthatója ebben a felt-ben 1, az összes többiben meg 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 esetén nyilvánvaló esetén szintén, hiszen a k. sor a lex. min. hozzáadva

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 feladatnaklehetséges kanonikus alakja keletkezik, melyek között biztosan van két olyan ben ugyanazok a bázisváltozók és ugyanabban a sorrendben fordulnak elő melyek- 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. 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- 2, A lépésszám alig függ n-től (az ismeretlenek számától ) 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.

67 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.: 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 ! ilyen)

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 opt. mo., melyen felvett célfv. érték 0 A megoldandó szabályos feladatban: „alsegéd-l.k.a.f.”

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ó vmelyik felt-ben döntési változó 5. 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) A megmaradt felt-ekben már nem szerepel 5. 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. 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. 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épzettmátrix nemszinguláris,, továbbá, akkor a feladat lehetséges kanonikus alakú és ekvivalens astandard 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 kapottfeladat 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: elnevezések: természetes változó elsődleges célfv. mesterséges változó másodlagos célfv. Vonjuk ki összes feltételét a célfv-ből l.k.a.f-ot kapunk É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 ) célfv-e folyt. w felveszi szélső értékét -on biz. később 2. Tfh. optimuma 0ha 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 1. -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.) 2. Ha a bázisváltozók mind természetes változók, akkor 3. ( 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, 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. a,+b,+c,: 3. köv 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: az 1. fázis során ezt kaptuk alakú. a, (***) jelenlegi alakjából elhagyva a mesterséges változókat, éppen felt. rsz-ét kapjuk a 6. Tétel szerint (*) ekvivalens a l.k.a.f-tal 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: c, é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. 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 (de az ilyenekben már csak mester- séges változók lehetnek – különben a csere folytatódna) 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) 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) törölve őket továbbra is a (*) felt. rsz-ével ekvivalens felt. rsz-t kapunk: ezért hagyhatók el a mesterséges bázisváltozójú felt-ek (*) után 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. 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 ajelö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) a, a zártság igazolása: Legyen L-beli pontok tetsz. konvergens sorozata, melynek határértékét jelölje ! n-elemű vektorok 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) 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 ) b, Cronecker-Capelli tétel:

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: merőlegességnél -nak legyen negatív eleme negatív! é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) a kitüntetett mo-k száma legfeljebb n elemű halmaz összes 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 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 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 primál feladata duálisa mindkettő opt. mo 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. induló primál feladat végső alak Majdnem l.k.a.f., de a célfv. max-át ke- ressük Megj.:

113 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.

114

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, van opt. mo-a infizibilis nemkor- látos primál feladat van opt. mo-a mindig igaz lehe- tetlen lehe- tetlen duális feladat infizibilis lehe- tetlen lehet igaz nemkor- látos lehe- tetlen igaz lehe- tetlen erős duali- tási tétel Példa primál duálisa

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! vagy kivonásával feltételeinket egyenletekké alakítjuk: illetve 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 majd

117 0 (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 (i. sor) ( j. oszlop) Primál max kg Ft (j. sor) ( i. oszlop) Duál min Ft

124 célfv. mértékegysége i-edik felső korlát mértékegysége az i-edik erőforrás egységára ? szorozva a mennyiséggel: Ft lesz Árnyékár ? egységnyi j-edik termék igénye az i-edik erőforrásból a haszon az egységnyi j-edik terméken 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) Lássunk mindezekre egy egyszerű példát! (köv. oldalon) Mit tehetünk? Perturbálni (változtatgatni) kell a jobboldalakat és újra meg újra megoldani az így kapott LP feladatokat…

126 primál feladat min. feladat a duális opt. mo-a 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 befektetés bevétel haszon 2.módszer 10$ 50$ 120$ 40$70$ hektáronként Összes forgótőkénk: 4000$ a, Hány hektárt ültessünk be újra? (és hányat ne?) megoldjuk

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) Példa: a korábban már megoldott szabályos feladat most felesleges 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: A legelő mérete és ezért az onnan legelhető fűmennyiség korlátos okt-márc: nincs legeltetés „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: és persze változóink mind nemnegatívak… 12 havi időkorlát legeltetési korlátok szénaigény

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 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.: D: hogy az egyenlőtlenség iránya ne forduljon É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álDuál

142 Példa.: Táblázatos formában (csak memorizálásra!): max min

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 Ebből azonnal köv. a komplementaritási tétel ált. alakja: és 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)


Letölteni ppt "Operációkutatás I. 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,"

Hasonló előadás


Google Hirdetések