Készítette: Horváth Viktória OPERÁCIÓKUTATÁS TÖBBCÉLÚ PROGRAMOZÁS Készítette: Horváth Viktória GM. III./ 2. csoport
Operáció kutatás Több célú programozás Alap összefüggés: A feltételi egyenlőség együttható x változók vektora b kapacitás vektor CT célfüggvény A * x b , ahol x 0 . CT * x = max CT 1 * x = max CT 2 * x = max CT k * x = max ….
Operáció kutatás Több célú programozás 2 típusa van: Van preferencia: sorrend van a függvények között Nincs preferencia: minden célfüggvény egyformán fontos. -Összes célfüggvényből csinálunk még egyet, és ezt szeretnénk maximalizálni, g(x) = t 1·CT1·x + t 2·CT2·x …..+ t k·CTk·x -Ezt csak akkor lehet alkalmazni, ha vannak súlyok.
Operáció kutatás Több célú programozás Az alapfeladat, ha van sorrend: Termék Felhasználás fö =[2, 3, 2, 2] fedezeti összeg vektor á = [4, 6, 5, 4] árbevétel vektor s = [1, 5, 1, 3] súlyvektor x1 + x2 + x4 100 x2 + x3 80 x1 + x2 + x3 50 K1 = 2x1 + 3x2 + 2x3 + 2x4 = max K2 = 4x1 + 6x2 + 5x3 + 4x4 = max K3 = x1 + 5x2 + x3 + 3x4 = min Mivel ez minimum, ezért be kell szorozni –1-gyel, hogy maximumot kapjunk, és majd ezt írjuk be az induló táblába, azaz -K3 = -x1 - 5x2 - x3 - 3x4 = max lesz.
A feladat induló táblája: Operáció kutatás Több célú programozás A feladat induló táblája: I x1 x2 x3 x4 b Generáló elemet választunk: K1 sor legnagyobb eleme fölött (ez most a 3) Megnézzük hol a legkisebb a szűkkeresztmetszet (100:1=100;80:1=80;50:1=50), x2 és u3 találkozásánál lévő 1-est választjuk. u1 1 1 0 1 100 u2 0 1 1 0 80 u3 1 1 1 0 50 -K1 2 3 2 2 -K2 4 6 5 4 K3 -1 -5 -1 -3
Operáció kutatás Több célú programozás A feladat 2. táblája: I I x1 u3 x3 x4 b Generáló elemet választunk: K1 sor legnagyobb pozitív eleme fölött (ez most a 2) Csak az 1-est választhatjuk, mert a generáló elem nem lehet 0. u1 0 -1 -1 1 50 u2 -1 -1 0 0 30 x2 1 1 1 0 50 -K1 -1 -3 -1 2 -150 -K2 -2 -6 -1 4 -300 K3 4 5 4 -3 250
Operáció kutatás Több célú programozás A feladat 3. táblája: I I I x1 u3 x3 u1 b Generáló elemet választunk: K1 sor legnagyobb pozitív eleme fölött (ez most a 1) Csak az 1-est választhatjuk, mert a generáló elem nem lehet 0 vagy mínusz szám. x4 0 -1 -1 1 50 u2 -1 -1 0 0 30 x2 1 1 1 0 50 -K1 -1 -1 1 -2 -250 -K2 -2 -2 3 -4 -500 K3 4 2 1 3 400
Operáció kutatás Több célú programozás A feladat 4. táblája: IV Nem lehet tovább generálni, mert a K1 függvényt nem ronthatom és minden értéke negatív lett. Ha lenne közte 0 és a K2-ben pozitív, akkor folytatni lehetne, mert akkor a K1-et még nem rontjuk. A K1 a K2 függvény egyszerre veszi fel az optimumát, a K3 nem, mert azt még lehetne javítani, de ha ez szerint generálunk, akkor a K1 a K2 függvény romlik. Megoldás: x =[0, 0, 50, 100] A feladat 4. táblája: IV x1 u3 x2 u1 b x4 1 0 1 1 100 u2 -1 -1 0 0 30 x3 1 1 1 0 50 -K1 -2 -2 -1 -2 -300 -K2 -5 -5 -3 -4 -650 K3 3 1 -1 3 350
Az alapfeladat, ha nincsen sorrend: Operáció kutatás Több célú programozás Az alapfeladat, ha nincsen sorrend: A feladat grafikusan: -x1 + x2 3 x1 + x2 8 x1 6 x2 4 8 4 3 f1(x) = 5x1 - 2x2 =max f2(x) = -x1 + 4x2 =max -3 6 8 g(x) = 4x1 + 2x2 =max
A feladat induló táblája: Operáció kutatás Több célú programozás Rajz kijelölt területe alapján kiválasztunk egy pontot, legyen ez a (3,4) , ha azt mondom hogy ez megoldás, akkor ezeknél feltételként tudom alkalmazni. [5,-2] [3,4]T=7 és [-1,4] [3,4]T=13, ezeket tekintjük alsó korlátnak. 5x1 - 2x2 7 / -1 -5x1 + 2x2 7 -x1 + 4x2 13 / -1 x1 - 4x2 13 K = 4x1 + 2x2 =max Ezáltal bevezetünk u5 , u6, v5,v6 változókat. Generáló elem: 4-es fölött választjuk az 5-öst. A feladat induló táblája: I x1 x2 v5 v6 b u1 -1 1 0 0 3 u2 1 1 0 0 8 u3 1 0 0 0 6 u4 0 1 0 0 4 u5 5 -2 -1 0 7 u6 -1 4 0 -1 13 -K 4 2 0 0
Operáció kutatás Több célú programozás A feladat 2. táblája: I I Generáló elem: 18/5 -ös fölött választjuk az 18/5 -öt. I I u5 x2 v5 v6 b u1 1/5 3/5 -1/5 0 22/5 u2 -1/5 7/5 1/5 0 33/5 u3 -1/5 2/5 1/5 0 23/5 u4 0 1 0 0 4 x1 1/5 -2/5 -1/5 0 7/5 u6 1/5 18/5 -1/5 -1 72/5 -K -4 /5 18/5 4/5 0 -28/5
Operáció kutatás Több célú programozás A feladat 3. táblája: I I I x1= [3,4] K=20 Mindazon pontok, amik beleesnek ebbe a tartományba, megoldásai ennek a függvénynek, de van 1 olyan pont ami a legjobb megoldást adja. Ezt efficiens pontnak nevezzük, azaz eleme a tartománynak (feltételrendszernek megfelel), de visszahelyettesítve a függvénybe, minden másnál legalább 1 esetben nagyobb.Pl: ha x2= [4,4], akkor K2=24. A feladat 3. táblája: I I I u5 u6 v5 v6 b u1 1/6 -1/6 -1/6 1/6 2 u2 -5/18 -7/18 5/18 -7/18 1 u3 -2/9 -1/9 2/9 1/9 3 u4 1/18 -5/18 1/18 5/18 x1 2/9 1/9 -2/9 -1/9 3 x2 1/18 5/18 -1/18 - 5/18 4 -K -1 -1 1 1 -20