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

EGÉSZÉRTÉKŰ PROGRAMOZÁS

Hasonló előadás


Az előadások a következő témára: "EGÉSZÉRTÉKŰ PROGRAMOZÁS"— Előadás másolata:

1 EGÉSZÉRTÉKŰ PROGRAMOZÁS
Modellezés A szétválasztás és korlátozás módszere Varró Zoltán

2 Modellezés A változók (vagy egy részük) csak nemnegatív egész értékeket vehetnek fel. A bináris változók lehetséges értékei 0 vagy 1. Az LP modell optimális megoldását kerekítve gyakran nem lehetséges megoldást kapunk, a kapott lehetséges megoldás nem optimális. Varró Zoltán

3 Fix költségek modellezése
Ha xi > 0, akkor si fix költség lép fel. Feltételek: xi  Miyi yi = 0 vagy 1 ahol Mi az xi változó egy felső korlátja. Célfüggvény: max z = c1x cnxn – siyi min z = c1x cnxn + siyi Varró Zoltán

4 Telepítési probléma Szállítási feladat: min z = c11x11 + c12x cmnxmn x x1n ≤ s1 x xm1 ≥ d xm xmn ≤ sm x1n xmn ≥ dn xij ≥ 0 (i = 1, , m; j = 1, , n). Varró Zoltán

5 Telepítési probléma min z = c11x11 + c12x cmnxmn + + f1y fmym x x1n ≤ s1y1 x xm1 ≥ d xm xmn ≤ sm ym x1n xmn ≥ dn xij ≥ 0 (i = 1, , m; j = 1, , n). yi = 0 vagy 1 (i = 1, , m). Ha xij > 0, akkor yi = 1. Varró Zoltán

6 „Vagy - vagy” feltétel Két feltétel közül legalább egyik teljesüljön:
a1x  b1 a2x  b2 Feltételek: a1x  b1 + My a2x  b2 + M(1 − y) ahol M az a1x és a2x függvények közös felső korlátja. Varró Zoltán

7 „Vagy - vagy” feltétel Vagy x = 0 vagy x  d teljesüljön. Feltételek:
x  My x  dy x  0, y = 0 vagy 1 ahol M az x egy felső korlátja. Varró Zoltán

8 „Ha – akkor” feltétel Ha a1x > b1, akkor a2x  b2 teljesüljön.
A feltételrendszer: a1x  b1 + My a2x  b2 − M(1 − y), ahol M az a1x és a2x függvények közös felső korlátja és y = 0 vagy 1. Varró Zoltán

9 „Ha – akkor” feltétel Ha xi > 0, akkor xj  d teljesüljön.
A feltételrendszer: xi  M y xj  d − M(1 − y) xi, xj  0, y = 0 vagy 1 ahol M  d az xi egy felső korlátja. Varró Zoltán

10 EP feladatok megoldása
Egy EP feladat LP lazítását úgy kapjuk, hogy nem követelünk meg egészértékűséget a változóktól. Ha az LP lazítás optimális megoldása egész, akkor megkaptuk az egészértékű feladat optimális megoldását. Varró Zoltán

11 EP feladatok megoldása
Az LP lazítás optimális célfüggvényértéke legalább olyan jó, mint az EP feladaté. Ha az LP lazításnak nincs megengedett megoldása, akkor az EP-nek sincs. Lehetséges, hogy az EP megoldás-halmaza üres, az LP lazításé viszont nem korlátos. Varró Zoltán

12 EP feladatok megoldása
A célfüggvény nem korlátos x2 10x1 – 10x2 ≥ 3 5x1 – 5x2 ≤ 4 max z = x1 + x2 x1 Varró Zoltán

13 Az SZK módszer A szétválasztás arra utal, hogy az EP feladatot részfeladatokra bontjuk. A részfeladatok célfüggvénye azonos az EP feladatéval, lehetséges megoldásainak halmaza részhalmaza az EP feladaténak. Varró Zoltán

14 Az SZK módszer A korlátozás azt jelenti, a részfeladatok optimális célfüggvényértékére az LP lazítás megoldásával korlátot határozunk meg. A korlát alapján döntjük el, hogy érdemes-e egy részfeladatot felbontani. Varró Zoltán

15 Az SZK módszer Ha az LP lazítás optimális megoldásában az xj változó optimális értéke xj , akkor két részfeladatot képezünk az alábbi feltételek csatolásával: 1. részfeladat: xj  xj 2. részfeladat: xj  xj + 1. Célszerű azt a tört értékű változót választani, amelynek törtrésze a legnagyobb. Varró Zoltán

16 Az SZK módszer A legjobb korlát stratégiával azt a rész-feladatot bontjuk fel, amelynek korlátja a legjobb megoldást ígéri. A kapott részfeladatok LP lazítását azonnal megoldjuk, azaz két ágat képezünk. Varró Zoltán

17 Az SZK módszer A LIFO (last in first out) stratégiával a legutolsó két részfeladat egyikét bontjuk fel. A kapott részfeladatok egyikének LP lazítását oldjuk meg azonnal, azaz csak egy ágat képezünk. A másikat később vizsgáljuk. Varró Zoltán

18 Az SZK módszer Egy részfeladatot lezárunk, ha az LP lazítás:
lehetséges megoldásainak halmaza üres. optimális megoldása egészértékű. optimális célfüggvényértékének egészrésze nem jobb az addig talált legjobb egészértékű megoldás célfüggvényértékénél. Varró Zoltán

19 Az SZK módszer EP feladat: max z = 2x1 + 3x2 − 2x1 + 5x2  10 4x1 + 3x2  24 x1, x2  0, egész LP lazítása: max z = 2x1 + 3x2 x1, x2  0 Varró Zoltán

20 Legjobb korlát stratégia
Az LP lazítás optimális megoldása: x1 = 3,46 x2 = 3,38 −2x1 + 5x2 ≤ 10 4x1 + 3x2 ≤ 24 Az EP megoldásai. max z = 2x1 + 3x2 Varró Zoltán

21 Legjobb korlát stratégia
x1 ≥ 4 x1 ≤ 3 Varró Zoltán

22 Legjobb korlát stratégia
z = 15,6 z = 16 > 15,6 Ezt a részfeladatot bontjuk fel. Varró Zoltán

23 Legjobb korlát stratégia
x1 ≥ 4 x2 ≥ 3 L =  z = 15,6 x1 ≥ 4 x2 ≤ 2 z = 15 Varró Zoltán

24 Legjobb korlát stratégia
x1 ≤ 3 x2 ≥ 4 L =  x1 ≤ 3 x2 ≤ 3 Varró Zoltán

25 Legjobb korlát stratégia
Az EP optimális megoldása: x1 = 3, x2 = 3 és z = 15 z = 15 Nem érdemes felbontani. Varró Zoltán

26 Legjobb korlát stratégia
3,46 ; 3,38 z = 17,06 x1 ≤ 3 x1 ≥ 4 3 ; 3,2 z = 15,6 4 ; 2,67 z = 16 max z = 2x1 + 3x2 − 2x1 + 5x2 ≤ 10 4x1 + 3x2 ≤ 24 x1 ≤ x1, x2 ≥ 0 max z = 2x1 + 3x2 − 2x1 + 5x2 ≤ 10 4x1 + 3x2 ≤ 24 x1 ≥ x1, x2 ≥ 0 Varró Zoltán

27 Legjobb korlát stratégia
3,46 ; 3,38 z = 17,06 x1 ≤ 3 x1 ≥ 4 3 ; 3,2 z = 15,6 4 ; 2,67 z = 16 Az LP lazítás optimális megoldásában az a változó, amelyre korlátot szabtunk, a korlát értékét veszi fel. Varró Zoltán

28 Legjobb korlát stratégia
3,46 ; 3,38 z = 17,06 x1 ≤ 3 x1 ≥ 4 3 ; 3,2 z = 15,6 4 ; 2,67 z = 16 x2 ≤ 2 x2 ≥ 3 4,5 ; 2 z = 15 L =  Varró Zoltán

29 Legjobb korlát stratégia
3,46 ; 3,38 z = 17,06 x1 ≤ 3 x1 ≥ 4 3 ; 3,2 z = 15,6 4 ; 2,67 z = 16 x2 ≤ 3 x2 ≥ 4 x2 ≤ 2 x2 ≥ 3 3 ; 3 z = 15 L =  4,5 ; 2 z = 15 L =  Varró Zoltán

30 Legjobb korlát stratégia
3.46 ; 3.38 z = 17.06 1 2 3 ; 3.2 z = 15.6 4 ; 2.67 z = 16 5 6 3 4 3 ; 3 z = 15 L =  4.5 ; 2 z = 15 L =  Varró Zoltán

31 LIFO stratégia 3,46 ; 3,38 z = 17,06 x1  3 3 ; 3,2 z = 15,6
Varró Zoltán

32 LIFO stratégia max z = 2x1 + 3x2 − 2x1 + 5x2 ≤ 10 4x1 + 3x2 ≤ 24
3 ; 3,2 z = 15,6 x2  3 3 ; 3 z = 15 Varró Zoltán

33 LIFO stratégia max z = 2x1 + 3x2 − 2x1 + 5x2 ≤ 10 4x1 + 3x2 ≤ 24
3 ; 3,2 z = 15,6 x1  3 x2  4 3 ; 3 z = 15 L =  Varró Zoltán

34 LIFO stratégia 3,46 ; 3,38 z = 17,06 x1  3 x1  4 3 ; 3,2
4 ; 2,67 z = 16 x2  4 L =  Varró Zoltán

35 LIFO stratégia 3,46 ; 3,38 z = 17,06 x1  4 4 ; 2,67 z = 16 x2  2
4,5 ; 2 z = 15 L =  Varró Zoltán

36 LIFO stratégia 3.46 ; 3.38 z = 17.06 1 4 3 ; 3.2 z = 15,6
4 ; 2.67 z = 16 2 3 5 6 3 ; 3 z = 15 L =  4.5 ; 2 z = 15 L =  Varró Zoltán

37 Bináris hátizsák feladat
max z = c1x1 + c2x cnxn (cj > 0) a1x1 + a2x anxn  b (aj > 0) x1, x2, , xn = 0 vagy 1 Varró Zoltán

38 Az LP lazítás megoldása
max z = c1x1 + c2x cnxn (cj > 0) a1x1 + a2x anxn  b (aj > 0) x1, x2, , xn = 0 vagy 1 Rendezzük a tárgyakat csökkenő ci /ai hányadosok szerint. A fenti sorrendben tegyük a tárgyakat a hátizsákba. Ha egy tárgy nem fér bele, akkor vegyük akkora tört részét, hogy a hátizsák pontosan tele legyen. Varró Zoltán

39 Az LP lazítás megoldása
Rendezzük a változókat: Keressük meg azt az indexet, amelyre , de Az optimális megoldás: Varró Zoltán

40 A hátizsák feladat megoldása
Az LP lazítás optimális megoldásában csak egy változó értéke tört. A tört értékű változó 0 és 1 értékű rögzítésével két részfeladatot képezünk. Mind a legjobb korlát, mind a LIFO stratégia alkalmazható. Varró Zoltán

41 Legjobb korlát stratégia
max 60x1 + 60x2 + 40x3 + 10x4 + 20x5 + 10x6 + 3x7 30x1 + 50x2 + 40x3 + 10x4 + 40x5 + 30x6 + 10x7  100 xi = 0 vagy 1 (i = 1, 2, , 7) A változók már csökkenő ci /ai szerint rendezettek. Az LP lazítás optimális megoldása: x = 1, 1, ½, 0, 0, 0, 0 Varró Zoltán

42 Legjobb korlát stratégia
140 x3 = 1 x3 = 0 135 136 1 2 1, 1, 0, 1, 1/4, 0, 0 1, 3/5, 1, 0, 0, 0, 0 Varró Zoltán

43 Legjobb korlát stratégia
140 x3 = 1 x3 = 0 135 136 1 2 1, 1, 0, 1, 1/4, 0, 0 x2 = 0 x2 = 1 120 120 3 4 1, 0, 1, 1, 1/2, 0, 0 1/3, 1, 1, 0, 0, 0, 0 Varró Zoltán

44 Legjobb korlát stratégia
140 x3 = 1 x3 = 0 135 136 1 2 x5 = 1 x5 = 0 x2 = 0 x2 = 1 120 116 133,33 120 5 6 3 4 1, 1, 0, 1, 0, 1/3, 0 1, 3/5, 0, 0, 1, 0, 0 Varró Zoltán

45 Legjobb korlát stratégia
140 x3 = 1 x3 = 0 135 136 1 2 x5 = 1 x5 = 0 x2 = 0 x2 = 1 120 116 133,33 120 5 6 3 4 x6 = 0 x6 = 1 1, 1, 0, 1, 0, 0, 1 Ez az első egészértékű megoldás. Az ágat lezárjuk. 133 7 8 Varró Zoltán

46 Legjobb korlát stratégia
140 x3 = 1 x3 = 0 135 136 1 2 x5 = 1 x5 = 0 x2 = 0 x2 = 1 120 116 133,33 120 5 6 3 4 x6 = 0 x6 = 1 1, 1, 0, 1, 0, 0, 1 Ez az első egészértékű megoldás. 133 118 7 8 1, 4/5, 0, 0, 1, 0, 0 Varró Zoltán

47 Legjobb korlát stratégia
140 x3 = 1 x3 = 0 135 136 1 2 x5 = 1 x5 = 0 x2 = 0 x2 = 1 120 116 133,33 120 5 6 3 4 x6 = 0 x6 = 1 1, 1, 0, 1, 0, 0, 1 Egyik ágon sem kaphatunk jobb megoldást, ezért mind lezárható. 133 118 7 8 Varró Zoltán

48 LIFO stratégia 140 Először mindig a bal oldali ágat vizsgáljuk. x3 = 0 135 1 1, 1, 0, 1, 1/4, 0, 0 x5 = 0 133,33 2 1, 1, 0, 1, 0, 1/3, 0 x6 = 0 Egészértékű megoldást kaptunk, ezért lezárjuk az ágat és ágat cserélünk. 133 3 1, 1, 0, 1, 0, 0, 1 Varró Zoltán

49 LIFO stratégia 1 2 3 4 1, 4/5, 0, 0, 1, 0, 0 140 x3 = 0 135 x5 = 0
x3 = 0 135 1 x5 = 0 133,33 2 x6 = 0 x6 = 1 Nem ígér jobb megoldást, ezért ágat cserélünk. 133 118 3 4 1, 4/5, 0, 0, 1, 0, 0 Varró Zoltán

50 LIFO stratégia 1 2 5 1, 3/5, 0, 0, 1, 0, 0 3 4 140 x3 = 0 135 x5 = 1
x3 = 0 135 1 x5 = 1 x5 = 0 116 133,33 2 5 1, 3/5, 0, 0, 1, 0, 0 x6 = 0 x6 = 1 Nem kaphatunk jobb megoldást, ezért az ágat lezárjuk. 133 118 3 4 Varró Zoltán

51 LIFO stratégia 1 6 1, 3/5, 1, 0, 0, 0, 0 2 5 3 4 140 x3 = 1 x3 = 0
x3 = 1 x3 = 0 135 136 1 6 x5 = 1 1, 3/5, 1, 0, 0, 0, 0 x5 = 0 116 133,33 Esélyünk van jobb megoldásra, ezért ágaztatunk. 2 5 x6 = 0 x6 = 1 133 118 3 4 Varró Zoltán

52 LIFO stratégia 1 6 2 5 7 1, 0, 1, 1, 1/2, 0, 0 3 4 140 x3 = 1 x3 = 0
x3 = 1 x3 = 0 135 136 1 6 x5 = 1 x5 = 0 x2 = 0 116 133,33 120 2 5 7 x6 = 0 x6 = 1 1, 0, 1, 1, 1/2, 0, 0 Nem kaphatunk jobb megoldást, ezért ágat cserélünk. 133 118 3 4 Varró Zoltán

53 LIFO stratégia 140 x3 = 1 x3 = 0 135 136 1 6 x5 = 1 x5 = 0 x2 = 0 x2 = 1 120 116 133,33 120 2 5 7 8 x6 = 0 x6 = 1 1/3, 1, 1, 0, 0, 0, 0 133 118 Ezt az ágat is lezárhatjuk. 3 4 Varró Zoltán

54 LIFO stratégia 1 6 2 5 7 8 Az optimális megoldás:
140 x3 = 1 x3 = 0 135 136 1 6 x5 = 1 x5 = 0 x2 = 0 x2 = 1 120 116 133,33 120 2 5 7 8 x6 = 0 x6 = 1 Az optimális megoldás: 1, 1, 0, 1, 0, 0, 1 133 118 3 4 Varró Zoltán

55 Munkák ütemezése Munka Megmunkálás Határidő időtartama A 6 8 B 4 C 5
12 D 16 Milyen sorrend esetén lesz a késések összege minimális? Varró Zoltán

56 Munkák ütemezése A feladatot 4 részfeladatra bontjuk.
i-edik részfeladat: Mennyi a késések összegének minimuma, ha az i-edik munkát végezzük el negyediknek? Minden részfeladatban alsó korlátot határozunk meg a késések összegére. Azt a részfeladatot bontjuk fel, amelyiknek legkisebb a korlátja. Varró Zoltán

57 Munkák ütemezése 15 19 11 7 A megmunkálási idők összege 23.
A késések összege legalább 15 ha az A munka a 4. 19 ha a B munka a 4. 11 ha a C munka a 4. 7 ha a D munka a 4. Varró Zoltán

58 Munkák ütemezése 15 19 11 7 A 4. részfeladatot bontjuk fel: a D munka a 4. Legalább mekkora lesz a késés, ha a D munka a 4. és A a 3. munka? B a 3. munka? C a 3. munka? Varró Zoltán

59 Munkák ütemezése 15 19 11 7 A késések összege legalább
14 ha az A munka a 3. 18 ha a B munka a 3. 10 ha a C munka a 3. 14 18 10 Varró Zoltán

60 Munkák ütemezése Hat részfeladat alsó korlátja közül választjuk a legkisebbet. 15 19 11 7 Az alsó korlát akkor a legkisebb, ha C a 3. munka, és D a 4. munka. 14 18 10 Varró Zoltán

61 Munkák ütemezése 15 19 11 7 14 18 10 A késések összege
12 a B – A – C – D sorrendnél 16 az A – B – C – D sorrendnél. 12 16 Varró Zoltán

62 Munkák ütemezése 15 19 11 7 Meg kell vizsgálni azt a részfeladatot, ahol C a 4. munka, mert az alsó korlát csak 11. 14 18 10 12 16 Varró Zoltán

63 Munkák ütemezése 15 19 11 7 21 25 13 14 18 10 Minden korlát nagyobb 12-nél, ezért a keresést lezárhatjuk. Optimális sorrend: B – A – C – D 12 16 Varró Zoltán


Letölteni ppt "EGÉSZÉRTÉKŰ PROGRAMOZÁS"

Hasonló előadás


Google Hirdetések