Diszkrét, egészértékű és 0/1 LP feladatok In English Integer Programming - IP Zero/One (boolean) programming 2007.03.12 Dr. Bajalinov Erik, NyF MII 1
Diszkrét és egészértékű változókat tartalmazó feladatok Egymásba való átalakítás Naiv megoldás LINGO eszközök 0/1 és egészértékű változók kezeléséhez Módszerek 1. Branch & Bound (Korlátozás és szétválasztás) 2. Gomory módszer (eng. Cutting plane hu. Metsző sík módszer) 3. Branch & Cut (1.+2. keveréke) 2007.03.12 Dr. Bajalinov Erik, NyF MII 2
Szótár Diszkrét programozási feladatok Discrete programming problems Egészértékű feladatok Integer programming problems 0/1-értékű változók zero/one variables, boolean or logical variables Módszerek Korlátozás és szétválasztás Branch and Bound Gomory módszer vagy metszősík módszer Gomory method or cutting plane method Az első kettőnek keveréke (HU -?) Branch and Cut method 2007.03.12 Dr. Bajalinov Erik, NyF MII 3
Diszkrét programozási feladat Ebbe a feladatkörbe olyan matematikai programozási feladatok tartoznak, amelyeknél a változók egy része csak véges sok, vagy megszámlálhatóan végtelen sok értéket vehet fel. Pl.: Stocko Kft. három befektetési (értékpapír) lehetőséget vizsgál: az 1. fajta ÉP hozama 2%, a 2.-nak 3%, és a 3.-nak 2,3%. Az 1. befektetési lehetőség igényel 1,2 mft-t, vagy 2,8 mft-t a 2. - igényel 1,4 mft-t, vagy 3,8 mft-t a 3.- igényel 2,5 mft-t, vagy 3,8 mft-t vagy 4,2 mft-t, vagy 5,8 mft-t A cég jelenleg nem több, mint 15,3 mft-t tud befektetni. Mennyit mibe kell befektetni ahhoz, hogy várható hozam legyen maximális? 2007.03.12 Dr. Bajalinov Erik, NyF MII 4
Stocko Kft. befektetési modell 2007.03.12 Dr. Bajalinov Erik, NyF MII 5
Általános diszkrét programozási feladat Ha n 1 =n - tiszta (pure) diszkrét programozási feladat, egyébként vegyes (mixed) diszkrét programozási feladat 2007.03.12 Dr. Bajalinov Erik, NyF MII 6
Egészértékű programozási feladat Egy egészértékű programozási feladat (Integer Programming - IP) egy olyan LP feladat, amelyben néhány, vagy összes változó csak egész értéket vehet fel. Példa Stocko Kft. három befektetési (értékpapír alapú) lehetőséget vizsgál: az 1. fajta ÉP hozama 2mFt per 1 értékpapír, a 2.-nak 2.3mFt per 1 egység, és a 3.-nak 1,8mFt per 1 egység. Az 1. fajta értékpapírból max. 3 db. vásárolható, az ára 2.5 mft/1 a 2. fajta értékpapírból max. 4 db. vásárolható, az ára 3.5 mft/1 a 3. fajta értékpapírból max. 3 db. vásárolható, az ára 2.1 mft/1 A cég jelenleg nem több, mint 16 mft-t tud befektetni. Milyen fajta értékpapírból hány darabot kell venni ahhoz, hogy várható hozam legyen maximális? 2007.03.12 Dr. Bajalinov Erik, NyF MII 7
Stocko Kft. Befektetési modell 2007.03.12 Dr. Bajalinov Erik, NyF MII 8
Ali Baba feladat Egy feltétel Minden változó egészértékű 2007.03.12 Dr. Bajalinov Erik, NyF MII 9
Hátizsák feladat Knapsack problem Egy feltétel Minden változó 0/1 értékű 2007.03.12 Dr. Bajalinov Erik, NyF MII 10
Általános egészértékű programozási feladat m feltétel Legalább egy változó egészértékű Ha n 1 =n - tiszta (pure) egészértékű programozási feladat, egyébként vegyes (mixed) egészértékű programozási feladat 2007.03.12 Dr. Bajalinov Erik, NyF MII 11
0/1 értékű változók Pl.:Stocko Kft. négy befektetési lehetőséget vizsgál: Az 1. befektetés igényel 5 mft-t, hozam 16 mft a 2. befektetés igényel 7 mft-t, hozam 22 mft a 3. befektetés igényel 4 mft-t, hozam 12 mft a 4. befektetés igényel 3 mft-t, hozam 8 mft A cég jelenleg nem több, mint 14 mft-t tud befektetni. Mibe kell befektetni pénzt ahhoz, hogy összes várható hozam legyen maximális? 2007.03.12 Dr. Bajalinov Erik, NyF MII 12
Átalakítás: Diszkrét Egészértékű 2007.03.12 Dr. Bajalinov Erik, NyF MII 13
Példa : Minden segédváltozó 0/1 értékű 2007.03.12 Dr. Bajalinov Erik, NyF MII 14
Naiv megoldás 2007.03.12 Dr. Bajalinov Erik, NyF MII 15
Fajlagos hozam 2007.03.12 Dr. Bajalinov Erik, NyF MII 16
Fajlagos mutató szerinti legjobb befektetési lehetőségre NINCSEN szükség! 2007.03.12 Dr. Bajalinov Erik, NyF MII 17
LINGO eszközök @Gin(<variable>) - General Integer @Bin(<variable>) - BINary 2007.03.12 Dr. Bajalinov Erik, NyF MII 18
Módszerek Definíció LP - lazítás vagy relaxáció Az egészértékű programozási feladatból kapott olyan feladat, amelyben nem veszünk figyelembe az egészértékűségi feltételeket Példa : Egészértékűségi feltétel van Itt pedig nincsen 2007.03.12 Dr. Bajalinov Erik, NyF MII 19
2007.03.12 Dr. Bajalinov Erik, NyF MII 20
2007.03.12 Dr. Bajalinov Erik, NyF MII 21
Korlátozás és szétválasztás Branch and Bound Adott a következő tiszta egészértékű LP feladat (pure integer LP problem) (IP) 2007.03.12 Dr. Bajalinov Erik, NyF MII 22
Az (IP) feladat relaxációja (P 0 ) 2007.03.12 Dr. Bajalinov Erik, NyF MII 23
1. lépés: index k := 0, alsó korlát N := - Oldjuk meg az (IP) egészértékű programozási feladat (P 0 ) relaxációját. Ha (R)-nek nincs megoldása, akkor (IP)-nek sincs. Egyébként: x* jelölje az (R) feladat optimális megoldását. Ha x* vektor minden eleme egészértékű, akkor x* vektor optimális megoldása (IP) feladatnak. Vége. Egyébként: 2. lépés 2. lépés: Válasszuk ki az x* vektor egy nem egészértékű elemét, mondjuk x j *-t. Vezessünk be a következő két részfeladatot (ágaztatás - branching): Majd folytassuk a 3. lépésnél. 2007.03.12 Dr. Bajalinov Erik, NyF MII 24
3. lépés: Válasszunk (P L ), vagy (P R ) feladatot és oldjuk meg. Majd 3.a.lépés 3.a. lépés Ha feladat nem megoldható (lehetséges halmaz üres), akkor feladatot nevezzük felderített feladatnak és folytassuk 4. lépésnél Ha kapott x* megoldás egészértékű, akkor 3.b. lépés Ha kapott x* megoldás nem egészértékű, akkor 3.c. lépés 3.b. lépés Ha P(x*)>N, akkor N:=P(x*) és 3.lépésben megoldott feladatot nevezzük megoldás-jelöltnek (korlátozás - bounding):. Egyébként 3.lépésben megoldott feladatot nevezzük felderített feladatnak. Majd folytassuk 4. lépésnél. 3.c. lépés Ha P(x*)>N, akkor k:=k+1 (ha 3.-P L ) vagy k:=k+2 (ha 3.-P R ) és a 3.lépésben megoldott feladattal folytassuk 2. lépésnél Egyébként 3.lépésben megoldott feladatot nevezzük felderített feladatnak, majd folytassuk 4. lépésnél 2007.03.12 Dr. Bajalinov Erik, NyF MII 25
4. lépés: Ha van meg nem oldott részfeladat, akkor oldjuk meg ezt a feladatot és folytassunk 3.a.lépésnél. Egyébként: Ha N = -, akkor eredeti (IP) feladat nem megoldható. Egyébként, az utolsó megoldás-jelölt feladat optimális megoldása az eredeti (IP) feladat optimális megoldása. Vége. A módszer kezelési struktúrája - Bináris fa 2007.03.12 Dr. Bajalinov Erik, NyF MII 26
Numerikus példa Stocko Kft. (IP) Relaxáció (R) 2007.03.12 Dr. Bajalinov Erik, NyF MII 27
Bound=- Megoldás Bound=38 Bound=42 2007.03.12 Dr. Bajalinov Erik, NyF MII 28
Stocko Kft. Lingo modell 2007.03.12 Dr. Bajalinov Erik, NyF MII 29
Stocko Kft. Lingo report 2007.03.12 Dr. Bajalinov Erik, NyF MII 30
Még egy numerikus példa (IP) Relaxáció (R) 2007.03.12 Dr. Bajalinov Erik, NyF MII 31
Relaxációs feladat lehetséges halmaza Csomópontok IP feladat lehetséges megoldásai Relaxációs feladat optimális megoldása 2007.03.12 Dr. Bajalinov Erik, NyF MII 32
Bound=- Bound=39 Bound=40 2007.03.12 Dr. Bajalinov Erik, NyF MII 33
X 1 =3 X 1 =4 1.Részfeladat lehetséges halmaza 2.Részfeladat lehetséges halmaza 2007.03.12 Dr. Bajalinov Erik, NyF MII 34
2007.03.12 Dr. Bajalinov Erik, NyF MII 35
Érzékenységvizsgálat NEM működik! Duális változó NEM értelmezhető! 2007.03.12 Dr. Bajalinov Erik, NyF MII 36