OPERÁCIÓKUTATÁS TÖBBCÉLÚ PROGRAMOZÁS
Operáció kutatás Több célú programozás A * x b C T * x = max, ahol x 0. Alap összefüggés: C T 1 * x = max C T 2 * x = max C T k * x = max …. A feltételi egyenlőség együttható x változók vektora b kapacitás vektor C T i célfüggvény együtthatók
Operáció kutatás Több célú programozás Módszerek: 1.Szekvenciális optimalizálás 2.Súlyozás módszere: g(x) = t 1 ·C 1 ·x + t 2 ·C 2 ·x +…..+ t k ·C k ·x g(x) - Eredő célfüggvény t i - súlyok
Operáció kutatás Több célú programozás x 1 + x 2 + x 4 100 x 2 + x 3 80 x 1 + x 2 + x 3 50 z 1 = 2x 1 + 3x 2 + 2x 3 + 2x 4 = max z 2 = 4x 1 + 6x 2 + 5x 3 + 4x 4 = max z 3 = x 1 - 5x 2 - x 3 + 3x 4 = min Kapacitás Példafeladat megoldása szekvenciális optimalizálási módszerrel: Termék f=[2, 3, 2, 2] fedezeti összeg vektor á = [4, 6, 5, 4] árbevétel vektor s = [1, 5, 1, 3] költségek vektora Mivel ez minimum, ezért be kell szorozni –1-gyel, hogy maximumot kapjunk, így írhatjuk az induló táblába: -z 3 = -x 1 - 5x 2 - x 3 - 3x 4 = max.
Több célú programozás Szekvenciális optimalizálás A feladat induló táblája: x1x1 x2x2 x3x3 x4x4 I u1u1 u3u3 u2u2 b -z 2 -z 1 z3z Generáló elem választás: -z 1 sor legnagyobb eleme fölött (3-as) -Legszűkebb keresztmetszet (100:1=100;80:1=80;50:1=50) - generáló elem: u3 sorában álló 1-es - báziscsere: x 2 és u 3 x 1 + x 2 + x 4 100 x 2 + x 3 80 x 1 + x 2 + x 3 50 z 1 = 2x 1 + 3x 2 + 2x 3 + 2x 4 = max z 2 = 4x 1 + 6x 2 + 5x 3 + 4x 4 = max z 3 = x 1 + 5x 2 + x 3 + 3x 4 = min
A feladat 2. táblája: x1x1 u3 u3 x3x3 x4x4 I I. u1u1 x2x2 u2u2 b -z 2 -z 1 z3z Generáló elem választás: -z 1 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. Több célú programozás Szekvenciális optimalizálás x 1 x 2 x 3 x 4 I. u1u1 u3u3 u2u2 b -z 2 -z 1 z3z
A feladat 3. táblája: x1x1 u3 u3 x3x3 u1u1 I I I. x4x4 x2x2 u2u2 b -z 2 -z 1 z3z Generáló elem választás: - z 1 sor legnagyobb pozitív eleme fölött (ez most az 1-es) - Csak az egyetlen pozitív számot az 1-est választhatjuk x 1 u 3 x 3 x 4 I I. u1u1 x2x2 u2u2 b -z 2 -z 1 z3z Több célú programozás Szekvenciális optimalizálás
A feladat 4. táblája: x1x1 u3 u3 x2x2 u1u1 IV x4x4 x3x3 u2u2 b -K 2 -K 1 K3K Nem lehet tovább generálni, mert a z 1 függvényt nem ronthatom és minden értéke negatív lett. Ha lenne közte 0 és a z 2 - ben pozitív, akkor folytatni lehetne, mert akkor a z 1 -et még nem rontjuk. A z 1 a z 2 függvény egyszerre veszi fel az optimumát, a z 3 nem, mert azt még lehetne javítani, de ha ez szerint generálunk, akkor a z 1 a z 2 függvény romlik. Megoldás: x =[0, 0, 50, 100] Több célú programozás Szekvenciális optimalizálás
-x 1 + x 2 3 x 1 + x 2 8 x 1 6 x 2 4 Több célú programozás Súlyozás módszere Példafeladat: f 1 (x) = 5x 1 - 2x 2 =max f 2 (x) = -x 1 + 4x 2 =max g(x) = 1. f 1 (x) + 1. f 2 (x) = 4x 1 + 2x 2 = max A feladat grafikusan: Azonos súllyal szerepel mindkét célfüggvény
A feladat induló táblája: x1x1 x2 x2 v5v5 v6v6 I u1u1 u3u3 u2u2 b u5u5 u4u4 u6u z 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. 5x 1 - 2x 2 7 / -1 -5x 1 + 2x 2 7 -x 1 + 4x 2 13 / -1 x 1 - 4x 2 13 z = 4x 1 + 2x 2 =max Ezáltal bevezetünk u 5, u 6, v 5, v 6 változókat. Generáló elem: 4-es fölött választjuk az 5-öst. Több célú programozás Súlyozás módszere
A feladat 2. táblája: u5 u5 x2 x2 v5v5 v6v6 I u1u1 u3u3 u2u2 b x1x1 u4u4 u6u6 1/5 -2/5 -1/5 0 7/5 1/5 0 -1/5 2/5 1/ /5 18/5 -1/5 1/51/5 3/5 -1/5 0 22/5 33/5 23/5 72/5 7/5 4 -z-4 /5 18/5 4/ /5 Generáló elem: 18/5 -ös fölött választjuk az 18/5 -öt. Több célú programozás Súlyozás módszere
A feladat 3. táblája: u5 u5 u6 u6 v5v5 v6v6 I I I u1u1 u3u3 u2u2 b x1x1 u4u4 x2x2 2/9 1/9 -2/9 -1/9 -5/18 -7/18 5/18 -7/18 -2/9 -1/9 2/9 1/91/9 1/18 -5/18 1/18 5/18 1/18 5/18 -1/18 - 5/18 1/61/6 -1/6 1/61/ K x 1 = [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 x 2 = [4,4], akkor K 2 =24. Több célú programozás Súlyozás módszere