Dr.Bajalinov Erik Debreceni Egyetem Informatikai Kara
[email protected]
Hiperbolikus programoz´ as – Elm´ elet, m´ odszerek, alkalmaz´ asok, szoftver
´ k¨ mobiDIAK onyvt´ ar
Tartalomjegyz´ ek I. Bevezet´ es a hiperbolikus programoz´ asba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1. Hiperbolikus programoz´asi feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2. Grafikus m´odszer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3. Charnes–Cooper-transzform´aci´o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4. Dinkelbach-algoritmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 II. Szimplex m´ odszer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. F˝o defin´ıci´ok ´es t´etelek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. Optimalit´asi krit´erium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. A szimplex m´odszer ´altal´anos s´em´aja . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. Szimplex t´abla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5. Az iter´aci´ok k¨oz¨otti kapcsolat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6. A szimplex m´odszer ind´ıt´asa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7. A szimplex t´abla kompakt form´aja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8. Be- ´es kivezetend˝o v´altoz´o kiv´alaszt´asa . . . . . . . . . . . . . . . . . . . . . . . . . 9. Degener´aci´o ´es cikliz´al´as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31 32 35 39 42 43 44 52 55 58
III. Dualit´ as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. A dualit´as r¨ovid ´attekint´ese . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. F˝o t´etelek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. Du´alis v´altoz´ok ´es stabilit´asi anal´ızis . . . . . . . . . . . . . . . . . . . . . . . . . . .
61 61 64 68
´ ekenys´ IV. Erz´ eg vizsg´ alata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. Grafikus bevezet´es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. V´altoz´as a jobb oldali korl´atvektorban . . . . . . . . . . . . . . . . . . . . . . . . . . 3. V´altoz´as a p sz´aml´al´o vektorban . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. V´altoz´as a p0 sz´aml´al´o egy¨ utthat´oban . . . . . . . . . . . . . . . . . . . . . . . . . . 5. V´altoz´as a d nevez˝o vektorban . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6. V´altoz´as a d0 nevez˝o egy¨ utthat´oban . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71 72 74 78 80 82 85
V. Sz´ all´ıt´ asi Feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 1. A feladat megfogalmaz´asa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 2. Hurokszerkeszt´eses Szimplex M´odszer . . . . . . . . . . . . . . . . . . . . . . . . . . 92 3. Az Indul´o Lehets´eges B´azismogold´as El˝o´all´ıt´asa . . . . . . . . . . . . . . . . 99 4. Numerikus p´elda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 iii
iv
´ TARTALOMJEGYZEK
VI. A WinGULF programcsomag . . . . . . . . . . . . . . . . . . . . . . . . . . 117 1. A Programcsomag r¨ovid ´attekint´ese . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 2. Szerkeszt˝o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 3. Folytonos feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 4. Eg´esz´ert´ek˝ u feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Irodalomjegyz´ ek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
I. Fejezet
Bevezet´ es a hiperbolikus programoz´ asba A hiperbolikus programoz´ asi (HP) feladat alatt olyan optimumsz´am´ıt´asi feladatot ´ert¨ unk, amelyben a felt´etelek line´aris egyenl˝os´eg ´es egyenl˝otlens´eg form´ajaban adottak, ´es ezen felt´etelek mellett keress¨ uk k´et line´aris f¨ uggv´eny h´anyados´anak a maximum´at vagy minimum´at. A gyakorlatban a hiperbolikus programoz´asi feladatok akkor vet˝odnek fel, amikor valami v´egrehajtand´o tudatos tev´ekenys´eg t¨obb m´odon is megval´os´ıthat´o, ´es ezek m´odok (elj´ar´asok) k¨oz¨ ul ki kell v´alasztanunk egy olyat, amely mellett a sz´oban forg´o tev´ekenys´egnek a fajlagos gazdas´agi mutat´oja a legmagasabb. Ezekb˝ol a fajlagos gazdas´agi mutat´okb´ol ebben a k¨onyvben leggyakrabban a k¨ovetkez˝oket haszn´aljuk : hat´ekonys´ag mint eredm´eny per kiad´as (pl. profit per ¨osszes k¨olts´eg vagy ¨osszes el˝o´all´ıtott term´ek ´ara per felhaszn´alt munkaid˝o), fajlagos ¨onk¨olts´eg mint ¨osszes k¨olts´eg per a term´ek egy egys´ege (pl. ¨osszes sz´all´ıt´asi k¨olts´eg per a sz´all´ıtand´o term´ek mennyis´ege) stb. Manaps´ag a term´eszetes anyagok ´es er˝oforr´asok korl´atozotts´aga ´es dr´agas´aga miatt az ilyen fajta fajlagos mutat´ok haszn´alata a gazdas´agi ´eletben m´ar elker¨ ulhetetlen.
1. Hiperbolikus programoz´ asi feladat A hiperbolikus programoz´asi feladatot Martos B´ela vezette be az 1960-as ´evekben a [133], [134] cikkeiben, ahol megfogalmazta ezt a feladatot, megvizsg´alta a feladat tulajdons´agait ´es kidolgozott egy szimplex m´odszer alap´ u algoritmust a feladat megold´as´ara. A hiperbolikus kifejez´es az´ert kapott helyet a feladat elnevez´es´eben, mert egyv´altoz´os esetben k´et line´aris f¨ uggv´eny h´anyados´anak grafikusan megfelel egy hiperbola. Am´ ugy a feladatnak ez a ”grafikus” alap´ u elnevez´ese csak a magyar nyelv˝ u szakirodalomban szok´asos, az angol vagy orosz nyelv˝ u szakirodalomban a feladatot ”line´aris-t¨ort programoz´asi” feladatnak szok´as 1
2
´ A HIPERBOLIKUS PROGRAMOZASBA ´ I. BEVEZETES
nevezni, azaz ”Linear-Fractional Programming” vagy ”Drobno-Line½noe Programmirovanie”.
1.1. A feladat megfogalmaz´asa Tipikus esetben a ´ltal´ anos hiperbolikus programoz´asi feladat alatt a k¨ovetkez˝o feladatot ´ert¨ unk: Adott n X
P (x) j=1 Q(x) = = n X D(x)
(1)
pj x j + p 0
dj xj + d 0
j=1
c´el-f¨ uggv´eny, amelyet kell maximaliz´alni vagy minimaliz´alni a k¨ovetkez˝o felt´etelek mellett n X aij xj ≤ bi , i = 1, 2, . . . , m1 , j=1 n X aij xj ≥ bi , i = m1 + 1, m1 + 2, . . . , m2 , (2) j=1 n X aij xj = bi , i = m2 + 1, m2 + 2, . . . , m, j=1
(3)
xj ≥ 0, j = 1, 2, . . . , n1 ,
ahol m1 ≤ m2 ≤ m, n1 ≤ n. Itt ´es tov´abbiakban felt´etelz¨ unk, hogy D(x) 6= 0, ∀x = (x1 , x2 , . . . , xn ) ∈ S, ahol S jel¨oli a(z) (2)-(3) felt´etelek ´altal meghat´arozott lehets´eges megold´ asok halmaz´ at vagy a lehets´eges halmazt (agolul – ”feasible set”, oroszul – ”dopustimoe mno¼estvo” ). Mivel D(x) 6= 0 ∀x ∈ S, az ´altal´anoss´ag megszor´ıt´asa n´elk¨ ul felt´etelezhetj¨ uk, hogy (4)
D(x) > 0, ∀x ∈ S.
Abban az esetben, ha D(x) < 0, ∀x ∈ S, egyszer˝ uen megszorozzuk a P (x) ´es D(x) f¨ uggv´enyeket (−1)-gyel. Itt ´es minden¨ utt a tov´abbiakban csak olyan hiperbolikus programoz´asi feladatokkal foglalkozunk amelyek kiel´eg´ıtik a(z) (4) felt´etelt.
´ 1. HIPERBOLIKUS PROGRAMOZASI FELADAT
3
Tov´abb´a felt´etelezz¨ uk, hogy a(z) (2) felt´etelrendszer minden felt´etele line´arisan f¨ uggetlen, u ´gyhogy az A = ||aij ||m×n m´atrix rangja pontosan m, azaz rank(A) = m. Teh´at a hiperbolikus programoz´asi feladat eset´en c´elunk az, hogy kell keresn¨ unk olyan x vektort (vagy olyan xj , j = 1, 2, . . . , n, v´altoz´okat), amely (1) maxim´aliz´alja (vagy minim´aliz´alja) a Q(x) c´el-f¨ uggv´enyt (az angol nyelv˝ u szakirodalomban – ”objective function”, oroszul pedig ”celeva funkci”), ´ es (2) kiel´eg´ıti a(z) (2) f˝ o felt´eteleket (”main constraints”, ”glavnye uslovi”) ´ es a(z) (3) nem-negat´ıvit´ asi felt´eteleket (”sign restrictions”, ”uslovi neotricatel~nosti”).
1.2. F˝o defin´ıci´ok Most vezess¨ uk be a sz¨ uks´eges fogalmakat, defin´ıci´okat. I.1. Defin´ıci´ o. Ha egy adott x = (x1 , x2 , . . . , xn ) vektor kiel´eg´ıti a(z) (2) ´es (3) felt´eteleket, azt fogjuk mondani, hogy az x vektor a(z) (1)-(3) hiperbolikus programoz´asi feladatnak lehets´ eges (vagy megengedett) megold´ asa (angolul – ”feasible solution”, oroszul – ”dopustimoe rexenie”). I.2. Defin´ıci´ o. Ha egy adott x = (x1 , x2 , . . . , xn ) vektor lehets´eges megold´asa a(z) (1)-(3) maximaliz´al´asi (minimaliz´al´asi) hiperbolikus programoz´asi feladatnak, ´es az adott x pontban Q(x) c´el-f¨ uggv´eny felveszi az S f¨ol¨ott a maxim´alis (minim´alis) ´ert´ek´et, akkor az x vektort optim´ alis megold´ asnak nevezz¨ uk (angolul – ”optimal solution”, oroszul – ”optimal~noe rexenie”). I.3. Defin´ıci´ o. Azt mondjuk, hogy a(z) (1)-(3) maximaliz´al´asi (minimaliz´al´asi) hiperbolikus programoz´asi feladat megoldhat´ o (angolul – ”solvable”, oroszul – ”zadaqa razrexima”), ha (1) az S lehets´eges halmaz nem u ¨res, azaz S 6= ∅, (2) az S lehets´eges halmaz f¨ol¨ott a Q(x) c´el-f¨ uggv´eny rendelkezik v´eges fels˝o (als´o) korl´attal. I.4. Defin´ıci´ o. Ha az S lehets´eges halmaz u ¨res, azaz S = ∅, , akkor a feladatot (f˝oleg az angol nyelv˝ u szakirodalomban) lehetetlennek nevezik (”infeasible”). I.5. Defin´ıci´ o. Ha a maximaliz´al´asi (minimaliz´al´asi) hiperbolikus programoz´asi feladatban c´el-f¨ uggv´eny fel¨ ulr˝ol (alulr´ol) nem korl´atos, akkor a feladatot (f˝oleg az angol nyelv˝ u szakirodalomban) nem korl´ atlannak (”unbounded”) nevezik.
´ A HIPERBOLIKUS PROGRAMOZASBA ´ I. BEVEZETES
4
I.6. Defin´ıci´ o. Ha a hiperbolikus programoz´asi feladat lehetetlen vagy korl´atlan, akkor a feladatot megoldhatatlannak fogjuk nevezni (angolul – ”unsolvable”, oroszul – ”nerazrexima zadaqa”).
1.3. Kapcsolat a line´aris program´oz´asi feladattal K¨onnyen ´eszre lehet venni, hogy abban az esetben, amikor (5)
dj = 0, j = 1, 2, . . . n,
´es
d0 = 1,
akkor a(z) (1)-(3) hiperbolikus programoz´asi feladat line´aris programoz´asi feladatt´a v´alik. Ez az oka ´es magyar´azata annak, hogy a(z) (1)-(3) hiperbolikus programoz´asi feladatot gyakran a line´aris programoz´asi feladat ´altal´anos´ıt´as´anak tekintik. Val´oban, ha teljes¨ ulnek a(z) (5) felt´etelek, akkor az eredeti (1)-(3) hiperbolikus programoz´asi feladatb´ol a k¨ovetkez˝ot kapjuk: (6)
P (x) =
n X
pj xj + p0 → max( vagy min)
j=1
a k¨ovetkez˝o felt´etelek mellett n X aij xj ≤ bi , j=1 n X aij xj ≥ bi , (7) j=1 n X aij xj = bi ,
i = 1, 2, . . . , m1 , i = m1 + 1, m1 + 2, . . . , m2 , i = m2 + 1, m2 + 2, . . . , m,
j=1
(8)
xj ≥ 0, j = 1, 2, . . . , n1 ,
Ezen k´ıv¨ ul van n´eh´any speci´alis eset, amikor az eredeti hiperbolikus programoz´asi feladat reduk´al´odik (mondhatjuk u ´gy is, hogy ”helyettes´ıthet˝o”) a hozz´aill˝o line´aris programoz´asi feladatt´a: (1) Ha dj = 0, j = 1, 2, . . . n, ´es d0 6= 0, akkor Q(x) c´el-f¨ uggv´eny line´ariss´a v´alik: n X pj p0 P (x) Q(x) = xj + = . d0 d0 d0 j=1
Ebben az esteben az eredeti c´el-f¨ uggv´eny maximaliz´al´asa (minimaliz´al´asa) helyettes´ıthet˝o a P (x)/d0 line´aris f¨ uggv´eny maximaliz´al´as´aval (minimaliz´al´as´aval) az eredeti S lehets´eges halmazon.
´ 1. HIPERBOLIKUS PROGRAMOZASI FELADAT
5
(2) Ha pj = 0, j = 1, 2, . . . n, ´es p0 6= 0 , akkor Q(x) =
P (x) p0 = n X D(x) dj xj + d 0 j=1
c´el-f¨ uggv´eny helyettes´ıthet˝o a D(x) f¨ ugggv´ennyel. Ebben az esetben az eredeti c´el-f¨ uggv´eny maximaliz´al´asa (minimaliz´al´asa) helyettes´ıthet˝o a D(x) f¨ uggv´eny maximaliz´al´as´aval vagy minimaliz´al´as´aval (a p0 el˝ojel´et˝ol f¨ ugg˝oen) az eredeti S lehets´eges halmazon. Vil´agos, hogy ha p0 = 0 , akkor az eg´esz feladat ´ertelmetlenn´e v´alik, mivel ilyenkor a Q(x) f¨ uggv´eny a nulla ´ert´ek˝ u konstanss´a v´alik. (3) Ha p = (p1 , p2 , . . . , pn ) ´es d = (d1 , d2 , . . . , dn ) olyanok, hogy l´etezik olyan µ 6= 0, hogy p = µd , akkor a
(9)
n X
µdj xj + p0 P (x) p0 − µd0 j=1 = n Q(x) = = ... = µ + n X X D(x) dj xj + d 0 dj xj + d 0 j=1
j=1
c´el-f¨ uggv´enyt lehet helyettes´ıteni a D(x) f¨ uggv´ennyel. M´egpedig u ´gy, hogy az eredeti Q(x) c´el-f¨ uggv´eny maximaliz´al´asa (minimaliz´al´asa) vezet a – D(x) f¨ uggv´eny minimaliz´al´as´ahoz (maximaliz´al´as´ahoz) ha p0 − µd0 > 0, – D(x) f¨ uggv´eny maximaliz´al´as´ahoz (minimaliz´al´as´ahoz) ha p0 − µd0 < 0. Itt meg kell jegyezn¨ unk, hogy abban az esetben, ha p0 − µd0 = 0, a(z) (9) k´epletnek megfelel˝oen Q(x) = µ, ∀x ∈ S, ´es az eg´esz feladat ´ertelmetlenn´e v´alik. A tov´abbiakban kiz´arjuk a vizsg´alatb´ol a k¨ovetkez˝o eseteket: (1) P (x) = const, ∀x ∈ S; (2) D(x) = const, ∀x ∈ S; (3) Q(x) = const, ∀x ∈ S,; mivel ezekben az esetekben az eredeti hiperbolikus programoz´asi feladat vagy helyettes´ıthet˝o megfelel˝o line´aris programoz´asi feladattal (az els˝o k´et eset), vagy teljesen elvesz´ıti az ´ertelm´et. (3. eset).
6
´ A HIPERBOLIKUS PROGRAMOZASBA ´ I. BEVEZETES
1.4. A Hiperbolikus programoz´asi feladat f˝o alakjai A el˝oz˝o r´eszben l´attuk, hogy a hiperbolikus programoz´asi feladathoz tartoz´o felt´etelrendszer tartalmaz(hat) line´aris egyenl˝os´egeket ´es egyenl˝otlens´egeket. Ezenk´ıv¨ ul l´attuk azt is, hogy a nem-negativit´asi felt´etelek nem mindig az ¨osszes ismeretlen v´altoz´ora vonatkoznak. Teh´at, a hiperbolikus programoz´asi feladat tartalmazhat az alulr´ol korl´atlan v´altoz´okat is, azaz olyan v´altoz´okat, amelyek felvehetnek negat´ıv ´ert´eket is (angolul – ”unrestricted in sign variable” vagy ”urs variable”, oroszul – ”peremenna neograniqenna snizu”). Miel˝ott tov´abbmegy¨ unk, tekints¨ unk meg n´eh´any speci´alis alak´ u hpi feladatot, ´es tanuljuk meg, hogyan lehet ezeket a k¨ ul¨onb¨oz˝o alak´ u hiperbolikus programoz´asi feladatokat egym´asba ´atalak´ıtani. Erre az´ert van sz¨ uks´eg, mert leggyakrabban a hpi feladat megold´as´ara alkalmazhat´o m´odszerek speci´alis alak´ u feladatot ig´enyelnek. I.7. Defin´ıci´ o. A hiperbolikus programoz´asi feladat kanonikus alak´ u (angoul – ”canonical form”, oroszul pedig – ”kanoniqeska zadaqa”), ha a f˝o felt´etelrendszere csak egyenl˝os´egekb˝ol ´all, ´es minden ismertelen v´altoz´o nemnegat´ıv ´ert´ek˝ u:
(10)
n X
P (x) j=1 Q(x) = = n X D(x)
pj x j + p 0 −→ max(min),
dj xj + d 0
j=1
a k¨ovetkez˝o felt´etelek mellett n X (11) aij xj = bi , i = 1, 2, . . . , m, j=1
(12)
xj ≥ 0, j = 1, 2, . . . , n,
ahol D(x) > 0, ∀x ∈ S. I.8. Defin´ıci´ o. Az adott hiperbolikus programoz´asi feladat szabv´ anyos vagy standard alak´ u (angolul – ”standard form”, oroszul – ”standartna zadaqa”), ha a f˝ o felt´etelrendszer´eben csak ’≤’ (’kisebb vagy egyenl˝o’) rel´aci´oj´ u egyenl˝otlens´egek vannak, ´es minden ismertelen v´altoz´o nem-negat´ıv ´ert´ek˝ u: n X pj x j + p 0 P (x) j=1 Q(x) = → max(min), = n X D(x) dj xj + d 0 j=1
´ 1. HIPERBOLIKUS PROGRAMOZASI FELADAT
7
a k¨ovetkez˝o felt´etelek mellett n X aij xj ≤ bi , i = 1, 2, . . . , m, j=1
xj ≥ 0, j = 1, 2, . . . , n, ahol D(x) > 0, ∀x ∈ S. Nyilv´anval´o, hogy a standard ´es a kanonikus HP feladat az ´altal´anos (1)(3) feladatnak speci´alis esetei. Val´oban, ha az ´altal´anos (1)-(3) feladatban m1 = m2 = 0 ´es n1 = n, akkor kapjuk a kanonikus feladatot. Abban az esetben, ha m1 = m and n1 = n, az ´altal´anos feladat standard feladatt´a v´alik. Ezeket a k¨ ul¨onb¨oz˝o alak´ u feladatokat a megfelel˝o elj´ar´asok felhaszn´al´as´aval k¨onnyen ´at lehet alak´ıtani egym´asba. Tekints¨ uk ezeket az elj´ar´asokat: (1) ’≥’ (’nagyobb mint’) → ’≤’ (’kisebb mint’). A ’≥’ rel´aci´oj´ u felt´etel mindk´et oldal´at meg kell szoroznunk (−1)gyel. (2) ’≤’ (’kisebb mint’) → ’=’ (’egyenl˝o’). Be kell vezetni nem-negat´ıv ´ert´ek˝ u ”mesters´eges” (angolul – ”slack variable, sz´oszerint ”holtj´ at´ek v´ altoz´ o ”, oroszul – ”isskustvenna peremenna”) v´ altoz´ot a ’≤’ rel´aci´oj´ u felt´etel bal oldal´an u ´gy, hogy a mesters´eges v´altoz´o fogja j´atszani a bal ´es jobb oldal k¨oz¨otti k¨ ul¨onbs´eg szerep´et: n X n X aij xj + si = bi , aij xj ≤ bi → j=1 j=1 si ≥ 0.
(3) Az alulr´ol korl´atlan xj v´altoz´o → nem-negat´ıv xj v´altoz´o (xj ≥ 0). Az xj v´altoz´o helyett be kell vezetni k´et darab nem-negat´ıv x0j ´es utt, ahol el˝ofordul az xj v´altoz´o, azt x00j v´altoz´ot, majd minden¨ helyettes´ıten¨ unk kell az (x0j − x00j ) kifejez´essel, azaz: xj = x0j − x00j . Majd a nem-negativ´ıt´asi felt´etelekhez hozz´a kell adnunk a k¨ovetkez˝o u ´j felt´eteleket: x0j ≥ 0
´es
x00j ≥ 0 .
Mivel a HP feladat mindh´arom alakja (´altal´anos, standard ´es kanonikus) k¨onnyen ´atalak´ıthat´o egym´asba, ez´ert az egyszer˝ us´eg kedv´e´ert n´eha az ´altal´anos feladat helyett a vele ekvivalens standard vagy kanonikus alak´ u feladatot fogjuk tanulm´anyozni.
´ A HIPERBOLIKUS PROGRAMOZASBA ´ I. BEVEZETES
8
Vezess¨ uk be a k¨ovetkez˝o jel¨ol´eseket: Aj = (a1j , a2j , . . . , amj )T ,
j = 1, 2, . . . , n,
b = (b1 , b2 , . . . , bm )T A = (A1 , A2 , . . . , An ) = ||aij ||m×n x = (x1 , x2 , . . . , xn )T p = (p1 , p2 , . . . , pn ) d = (d1 , d2 , . . . , dn ) A jel¨ol´esek felhaszn´al´as´aval a HP feladatot megfogalmazhatjuk m´atrixos form´aban: Kanonikus feladat: Q(x) =
px + p0 → max, dx + d0
a k¨ovetkez˝o felt´etelek mellett n X Aj xj = b ( vagy Ax = b ) j=1
x ≥ 0, ahol D(x) = dx + d0 > 0, ∀x ∈ S. Standard feladat: Q(x) =
px + p0 → max, dx + d0
a k¨ovetkez˝o felt´etelek mellett n X Aj xj ≤ b ( vagy Ax ≤ b ) j=1
x ≥ 0, ahol D(x) = dx + d0 > 0, ∀x ∈ S. Meg kell jegyezn¨ unk, hogy a matematikai programoz´as elm´elet´enek megfelel˝oen (13)
min F (x) ≡ max(−F (x)). x∈S
x∈S
Ez azt jelenti, hogy a minimaliz´al´asi hiperbolikus programoz´asi feladatot helyettes´ıthetj¨ uk maximaliz´al´asi feladattal, csak ehhez az eredeti c´el-f¨ uggv´enyt meg kell szoroznunk (−1)-gyel. Ez´ert a tov´abbiakban csak maximaliz´al´asi feladattal foglalkozunk.
´ 2. GRAFIKUS MODSZER
9
2. Grafikus m´ odszer A k¨ovetkez˝okben a k´etv´altoz´os hiperbolikus programoz´asi feladatok megold´as´ahoz alkalmazhat´o grafikus m´odszert ismertetj¨ uk. A m´odszer azon alapul, hogy az egyenl˝otlens´eg t´ıpus´ u felt´etelek f´els´ıkokat hat´aroznak meg a k´etdimenzi´os t´erben, ´es ezen f´els´ıkok metszetek´ent el˝o´all´ıthat´o a lehets´eges halmaz, melynek ismeret´eben meghat´arozhat´o a feladat optim´alis megold´asa vagy megmutathat´o, hogy a feladat nem megoldhat´o.
2.1. Elm´elet Tekints¨ uk a k¨ovetkez˝o k´etv´altoz´os hiperbolikus programoz´asi feladatot:
Q(x) =
p1 x 1 + p 2 x 2 + p 0 P (x) = −→ max D(x) d1 x1 + d 2 x2 + d 0
a k¨ovetkez˝o felt´etelek mellett
ai1 x1 + ai2 x2 ≤ bi , i = 1, . . . , m, x1 ≥ 0, x2 ≥ 0 . M´ar tudjuk, hogy a lehets´eges megold´asok S halmaza egy konvex soksz¨og vagy egy olyan konvex (korl´atos vagy korl´atlan) halmaz, amelynek v´eges sok cs´ ucspontja van. Ha S = ∅, akkor a definici´o szerint a feladat nem megoldhat´o, azaz a feladatnak nem l´etezik optim´alis megold´asa. ´Igy tegy¨ uk fel, hogy S 6= ∅. Egy tov´abbi fontos kik¨ot´es annak felt´etelez´ese, hogy a D(x) = d1 x1 + d2 x2 + d0 f¨ uggv´eny az S lehets´eges halmazon nem veszi fel a 0 ´ert´eket, ezt a tov´abbiakban felt´etelezz¨ uk. Tov´abb´a, mivel D(x) 6= 0, ∀x ∈ S, ez´ert az ´altal´anoss´ag megszor´ıt´asa n´elk¨ ul felt´etelezhetj¨ uk, hogy a lehetes´eges megold´asok halmaz´an a D(x) nevez˝o szigor´ uan pozit´ıv, azaz D(x) > 0, ∀x ∈ S (ellenkez˝o esetben szorozzuk meg a P (x) ´es D(x) f¨ uggv´enyeket (−1)-gyel. 2.1.1. Speci´ alis esetek. Ebben a szekci´oban soroljuk fel azokat a speci´alis esteket, amikor az eredeti megoldand´o hiperbolikus programoz´asi feladat ”degener´alt”, ´es nem ig´enyli a hiperbolikus programoz´asi matematikai appar´atus alkalmaz´as´at. A tov´abbikban ilyen feladatokkal nem foglalkozunk.
10
´ A HIPERBOLIKUS PROGRAMOZASBA ´ I. BEVEZETES
Mindenekel˝ott vegy¨ uk ´eszre, hogy amennyiben a µ ¶ p1 p2 d1 d2
m´atrix determin´ansa egyenl˝o 0-val, akkor a feladatnak trivi´alis megold´asa van, vagy a feladat visszavezethet˝o egy alkalmas line´aris programoz´asi feladat megold´as´ara. A tekintett determin´ans ´ert´eke akkor ´es csak akkor 0, ha legal´abb az egyik sorvektor a 0 vektor, vagy a k´et sorvektor egym´as 0-t´ol k¨ ul¨onb¨oz˝o konstansszorosa. Vizsg´aljuk meg most ezeket az eseteket. (1) Tegy¨ uk fel, hogy (p1 , p2 ) = 0. Ekkor p0 Q(x) = . d1 x1 + d 2 x2 + d 0 Ha p0 = 0, akkor Q(x) = 0, minden x ∈ S-re, ´es ´ıgy a feladatnak nincsen ´ertelme. Ha p0 > 0, akkor a Q(x) c´elf¨ uggv´eny maximuma az S lehets´eges halmazon megegyezik a D(x) = (d1 x1 +d2 x2 +d0 ) line´aris f¨ uggv´eny S-en felvett minimum´aval. Ha p0 < 0, akkor a Q(x) c´elf¨ uggv´eny maximuma az S lehets´eges halmazon megegyezik a D(x) = (d1 x1 +d2 x2 +d0 ) line´aris f¨ uggv´eny S-en felvett maximum´aval. Vegy¨ uk ´eszre, hogy az utols´o k´et esetben line´aris programoz´asi feladattal van dolgunk. (2) Legyen (d1 , d2 ) = 0. Ilyenkor, mivel S 6= ∅ ´es az S lehets´eges halmazon D(x) = d1 x1 + d2 x2 + d0 > 0, ez´ert d0 > 0. ´Igy, p1 p2 p0 p1 x 1 + p 2 x 2 + p 0 = x1 + x2 + , Q(x) = d0 d0 d0 d0 azaz ebben az esetben Q(x) c´elf¨ uggv´eny line´aris, ´es ez´ert a feladat megold´as´ahoz line´aris programoz´asi m´odszerekre van sz¨ uks´eg¨ unk. (3) Tekints¨ unk az utols´o esetet: (p1 , p2 ) = λ (d1 , d2 ). Ekkor b´armely x ∈ S-re p1 x 1 + p 2 x 2 + p 0 (λ d1 ) x1 + (λ d2 ) x2 + p0 Q(x) = = = d1 x1 + d 2 x2 + d 0 d1 x1 + d 2 x2 + d 0 =
(λ d1 )x1 + (λ d2 )x2 + p0 + λd0 − λd0 = d1 x1 + d 2 x2 + d 0
λD(x) + p0 − λd0 p0 − λd0 = λ+ . d1 x1 + d 2 x2 + d 0 d1 x1 + d 2 x2 + d 0 M´asr´eszt a kapott c´elf¨ uggv´eny form´aja azt mutatja, hogy ebben az esetben az eredeti maximaliz´al´asi hiperbolikus programoz´asi feladat helyett a D(x) line´aris f¨ uggv´eny minimum´at (ha p0 − λd0 > 0) =
´ 2. GRAFIKUS MODSZER
11
vagy maximum´at (ha p0 − λd0 < 0) kell keresn¨ unk az S halamzon. Nyilv´anval´o, ha p0 − λd0 = 0, akkor a feladatnak nincs ´ertelme, mivel Q(x) = λ , ∀x ∈ S. µ
¶ p1 p2 K¨ovetkez´esk´eppen ha a m´atrix determin´ansa 0, akkor a felad1 d2 dat megoldhat´o egy alkalmas line´aris programoz´asi feladat grafikus megod´as´aval. Ezek ut´an tegy¨ uk fel, hogy a k´erd´eses m´atrix determin´ansa 0-t´ol k¨ ul¨onb¨oz˝o. ´ anos eset - n´ıv´ 2.1.2. Altal´ ovonalak ´es f´ okuszpont. Vegy¨ unk egy tetsz˝oleges K konstanst. Azon x-ek halmaz´at, amely pontokban Q(x) = K teljes¨ ul, a K konstanshoz tartoz´o n´ıv´ ovonalnak nevezz¨ uk. Szeml´eletesen ez a fel¨ ulet azonos magass´ag´ u pontjait ´ırja le. T´erk´ep´eszetben a k¨ ul¨onb¨oz˝o ´ert´ek˝ u n´ıv´ovonalak megad´as´aval jelen´ıtik meg a domborzati viszonyokat. Most megmutatjuk, hogy eset¨ unkben a n´ıv´ovonalak egyenesek lesznek. Val´oban, ha Q(x) = K , akkor Q(x) =
p1 x 1 + p 2 x 2 + p 0 =K, d1 x1 + d 2 x2 + d 0
azaz p1 x1 + p2 x2 + p0 = K(d1 x1 + d2 x2 + d0 ) ´es x kiel´eg´ıti a (p1 − Kd1 )x1 + (p2 − Kd2 )x2 = Kd0 − p0 egyenletet. Mivel a kapott egyenlet line´aris, ez´ert azok az x pontok, ame´ lyek kiel´eg´ıtik az adott line´aris egyenletet, egy egyenest alkotnak. Altal´ anos esetben minden k¨ ul¨on K ´ert´ekhez m´as-m´as egyenes n´ıv´ovonal tartozik. Egy m´asik fontos ´eszrev´etel, hogy a n´ıv´ovonalakb´ol ´all´o egyenessereg egyenesei egy k¨oz¨os pontban, az u ´gynevezett f´ okuszpontban metszik egym´ast, ami az ( ( P (x) = 0 p1 x 1 + p 2 x 2 + p 0 = 0 azaz D(x) = 0 d1 x1 + d 2 x2 + d 0 = 0 egyenletrendszer ´altal meghat´arozott egyenesek F =µ(x1 , x2 )¶metsz´espontja. p1 p2 Ez a metsz´espont l´etezik, mivel feltett¨ uk, hogy a m´atrix deterd1 d2 min´ansa 0-t´ol k¨ ul¨onb¨oz˝o. Tov´abb´a a d1 x1 + d2 x2 + d0 6= 0, ∀x ∈ S felt´etel miatt F 6∈ S. Ahhoz, hogy a n´ıv´ovonalak egy pontban metssz´ek egym´ast, elegend˝o megmutatni, hogy minden n´ıv´ovonal ´atmegy az F ponton. Ez viszont trivi´alis, mivel tetsz˝oleges K-ra az F pont kiel´eg´ıti az p1 x1 + p2 x2 + p0 = K(d1 x1 + d2 x2 + d0 )
´ A HIPERBOLIKUS PROGRAMOZASBA ´ I. BEVEZETES
12
egyenletet, hiszen az egyenletben szerepl˝o line´aris kifejez´es mindk´et oldalon 0 ´ert´eket vesz fel az F pontban. K¨ovetkez´esk´eppen a n´ıv´ovonalak egy pontban, a f´okuszpontban metszik egym´ast. Ezek ut´an vizsg´aljuk meg, hogy mik´ent v´altozik a n´ıv´ovonalakat meghat´aroz´o K ´ert´ek az x1 v´altoz´o f¨ uggv´eny´eben. V´alasszunk tetsz˝oleges K ´ert´eket, ´abrazoljuk a megfelel˝o Q(x) = K ´ most ´ırjuk ´at a Q(x) = K egyenletet a egyenest (l´asd 1. ´abr´at). Es k¨ovetkez˝o form´aba: p1 − Kd1 p0 − Kd0 x2 = − x1 − . p2 − Kd2 p2 − Kd2 L´athat´o, hogy a Q(x) = K egyenlet˝ u n´ıv´ovonal α ir´anysz¨og´enek k=−
p1 − Kd1 p2 − Kd2
tangense f¨ ugg a K ´ert´ekt˝ol, ´es monoton, mert (14)
dk d 1 p2 − d 2 p1 = . dK (p2 − Kd2 )2
dk ´ert´ek el˝ojele nem f¨ ugg a K ´ert´ekt˝ol, sz´oval dK dk sign { } = sign {d1 p2 − d2 p1 } = const. dK Ez pedig azt jelenti, hogy ha a n´ıv´ovonalat elforgatjuk az F f´okuszpont k¨or¨ ul pozit´ıv ir´anyba, akkor a Q(x) ´ert´eke n¨ovekszik vagy cs¨okken, att´ol f¨ ugg˝oen, hogy milyen el˝ojel˝ u a (d1 p2 − d2 p1 ) kifejez´es. A n´ıv´ovonalat addig kell forgatnunk, am´ıg m´eg lesz k¨oz¨os pontja a lehets´eges megold´asok halmaz´aval. Vil´agos, hogy, 1.´abra jelk´epezi azt az esetet, amikor a n´ıv´ovonal pozit´ıv ir´anyban t¨ort´en˝o elforgat´asa n¨oveli a c´elf¨ uggv´eny ´ert´ek´et. Tov´abb´a a
Vegy¨ uk ´eszre, hogy az F f´okuszpont k¨or¨ ul t¨ort´en˝o n´ıv´ovonal-forgat´as sor´an az adott esetben kapjuk a k´et sz´els˝o pontot – az egyik x∗ , itt a c´el-f¨ uggv´eny a ∗∗ maximalis ´ert´eket veszi fel, a m´asik pedig x , amelyben a Q(x) a minim´alis ´ert´eket feszi fel. Most pedig soroljuk fel azokat a lehets´eges eseteket, amelyek el˝ofordulhatnak a grafikus m´odszer alkalmaz´asa sor´an: 1. L´etezik egyetlen egy olyan x∗ ∈ S pont (a lehets´eges halmaz cs´ ucs∗ pontja), hogy az x ponthoz tartoz´o n´ıv´ovonal egyetlen egy pontban metszi a lehets´eges megold´asok halmaz´at, ´es ez a pont ´eppen x∗ . Ekkor ez a pont a feladat egyetlen optim´alis megold´asa (1.´abra). x∗
2. L´etezik olyan x∗ ∈ S pont (a lehets´eges halmaz cs´ ucspontja), hogy az ponthoz tartoz´o n´ıv´ovonal egy szakaszt metsz ki a lehets´eges megold´asok
´ 2. GRAFIKUS MODSZER
13
1. a ´bra. K´etv´altoz´os HP feladat – Egyetlen optim´alis megold´as.
halmaz´ab´ol. Ekkor a metszet minden pontja optim´alis megold´asa a feladatnak, ´es csak ezek az optim´alis megold´asok (2. ´abra). Ebben az esetben a
2. a ´bra. K´etv´altoz´os HP feladat – V´egtelen sok v´eges optim´alis megold´as.
feladat v´egtelen sok optim´alis megold´assal rendelkezik (minden x pontja az e ´elnek). Ilyenkor az ¨osszes optim´alis megold´as el˝o´all´ıthat´o a k´et cs´ ucspont line´aris kombin´aci´ojak´ent: x = λx∗ + (1 − λ)x∗∗∗ , 0 ≤ λ ≤ 1.
14
´ A HIPERBOLIKUS PROGRAMOZASBA ´ I. BEVEZETES
3. L´etezik olyan x∗ ∈ S pont (a lehets´eges halmaz cs´ ucspontja), hogy az ponthoz tartoz´o n´ıv´ovonal egy f´elegyenest metsz ki a lehets´eges megold´asok halmaz´ab´ol. Ekkor a metszet minden pontja optim´alis megold´asa a feladatnak, ´es csak ezek az optim´alis megold´asok (3. ´abra). Ebben az esetx∗
3. a ´bra. K´etv´altoz´os HP feladat – V´eges ´es v´egtelen optim´alis megold´asok.
ben feladat v´egtelen sok optim´alis megold´assal rendelkezik, ´es a megold´asok k¨oz¨ott vannak v´eges pontok ´es vannak v´egtelen pontok (az ¨osszes x pontja a v´egtelen ´elnek). 4. A n´ıv´ovonal forgat´asakor mindig lesz a megfelel˝o n´ıv´ovonalnak metszete a lehets´eges megold´asok halmaz´aval. Ekkor az x1 ´es x2 v´altoz´ok b´armilyen nagy ´ert´eket vehetnek fel. Ez azt eredm´enyezi, hogy a Q(x) c´elf¨ uggv´enynek lehet v´eges vagy v´egtelen limesze az S halmazon (4. ´abra).
A tov´abbiakban a lehets´eges n´egy esetet ´es az elj´ar´as alkalmaz´as´at a k¨ovetkez˝o n´eh´any numerikus p´eld´akon mutatjuk be.
2.2. Numerikus p´eld´ak Az 1. eset illusztr´al´as´ara tekints¨ uk az al´abbi hiperbolikus programoz´asi feladatot: 2x1 + x2 − 5 Q(x) = −→ max −2x1 + x2 + 7
´ 2. GRAFIKUS MODSZER
15
4. a ´bra. K´etv´altoz´os HP feladat – Aszimpt´otikus eset.
x1
≤4
−x1 + x2 ≤ 4 x1 + x 2 ≤ 8 x1 − x 2 ≤ 2 x1 ≥ 0, x2 ≥ 0. Meghat´arozva a lehets´eges megold´asok halmaz´at, azt kapjuk, hogy S egy olyan hatsz¨og, amelynek cs´ ucspontjai a (0, 0), (2, 0), (4, 2), (4, 4), (2, 6) ´es (0, 4) pontok. Felv´eve a −2x1 + x2 + 7 = 0 egyenlet ´altal meghat´arozott egyenest, ez az egyenes nem metszi a lehets´eges megold´asok halmaz´at, azaz a c´el-f¨ uggv´eny nevez˝oje az S halmazon nem veszi fel a 0 ´ert´eket. V´eve ennek az egyenesnek a metszet´et a 2x1 + x2 − 5 = 0 egyenlet ´altal meghat´arozott egyenessel, megkapjuk az F = (3, −1) f´okuszpontot. Ezek ut´an a(z) (14) k´epletnek megfelel˝oen sz´am´oljuk ki a (d1 p2 − d2 p1 ) kifejez´es ´ert´ek´et: d1 p2 − d2 p1 = −2 × 1 − 1 × 2 = −2 − 2 = −4 < 0 . dk < 0 ´es k¨ovetkez´esk´eppen a Q(x) c´el-f¨ uggAz ut´obbi azt jelenti, hogy dK v´eny ´ert´ek´enek n¨ovel´es´ehez a ny´ıv´ovonalat az ´oramutat´o j´ar´asa ir´any´aban kell forgatnunk. ´Igy ny´ılv´anval´ov´a v´alik, hogy a feladat optimlais megold´asa a (4, 2) pontban van, u ´gy hogy Q(x) c´el-f¨ uggv´eny optim´alis (azaz maxim´alis) ´ert´eke 2×4+2−5 5 Q(4, 2) = = = 5. −2 × 4 + 2 + 7 1
16
´ A HIPERBOLIKUS PROGRAMOZASBA ´ I. BEVEZETES
A 2. eset bemutat´as´ara vizsg´aljuk a k¨ovetkez˝o hiperbolikus programoz´asi feladatot: x1 + 2x2 − 2 −→ max 2x1 + 2x2 − 2 −2x1 + 3x2 ≤ 3
Q(x) =
3x1 +
x2 ≥ 12
2x1 − 5x2 ≤ x1 +
8
x2 ≤ 11
x1 ≥ 0, x2 ≥ 0 Meghat´arozva az S lehets´eges halmazt, azt kapjuk, hogy S a (4, 0), (9, 2), (6, 5) ´es (3, 3) pontok ´altal meghat´arozott n´egysz¨og, tov´abb´a F = (0, 1). Felv´eve a 2x1 + 2x2 − 2 = 0 egyenlet˝ u egyenest, ez nem metszi a lehets´eges megold´asok halmaz´at, ´ıgy a c´el-f¨ uggv´eny nevez˝oje 0-t´ol k¨ ul¨onb¨oz˝o az S halmazon. Most sz´am´oljuk ki a (d1 p2 − d2 p1 ) kifejez´es ´ert´ek´et: d 1 p2 − d 2 p1 = 2 × 2 − 2 × 1 = 4 − 2 = 2 > 0 . Ebb´ol k¨ovetkezik, hogy Q(x) a k lejt˝osz¨ognek egy monoton n¨ovekv˝o f¨ ugg´ v´enye. Igy addig kell forgatnunk a ny´ıv´ovonalat az ´oramutat´o j´ar´as´aval ellenkez˝o ir´anyban, amig ny´ıv´ovonalnak van m´eg metszete az S halmazzal. Nyilv´anval´o, hogy a keresett ny´ıv´ovonal az lesz, amelyik az F ´es a (3, 3) pontokat k¨oti ¨ossze. Ebben az esetben a tekintett n´ıv´ovonal ´es S metszete a (3, 3) ´es (6, 5) pontokat ¨osszek¨ot˝o szakasz. Ennek a szakasznak minden pontja optim´alis megold´as, ´es az optimum ´ert´eke pedig 3+2×3−2 7 Q(3, 3) = = 2×3+2×3−2 10 ´es 6+2×5−2 14 7 Q(6, 5) = = = . 2×6+2×5−2 20 10
A 3. eset szeml´eltet´es´ere tekints¨ uk az al´abbi hiperbolikus programoz´asi feladatot: −x1 − x2 − 2 Q(x) = −→ max 2x1 + 3x2 + 3 a k¨ovetkez˝o felt´etelek mellett −x1 + x2 ≤ 4 x1 ≥ 0, x2 ≥ 0 Most a lehets´eges megold´asok halmaza az a nemnegat´ıv pontokat tartalmaz´o korl´atlan konvex halmaz, amelyet az x1 = 0, x2 = 4 + x1 egyenletek ´altal meghat´arozott egyenesek ´es a (0, 0) ´es (0, 4) pontokat ¨osszek¨ot˝o szakasz hat´arolnak. Ha ´abr´azoljuk a 2x1 + 3x2 + 3 = 0 egyenlet˝ u egyenest,
´ 2. GRAFIKUS MODSZER
17
kider¨ ul hogy az nem metszi a lehets´eges megold´asok halmaz´at, ´ıgy a Q(x) f¨ uggv´eny nevez˝oje 0-t´ol k¨ ul¨onb¨ozik az S halamzon. Metszve ezt az egyenest a −x1 − x2 − 2 = 0 egyenlet˝ u egyenessel, megkapjuk az F = (−3, 1) f´okuszpontot. Mivel d1 p2 − d2 p1 = 2 × −1 − 3 × −1 = −2 + 3 = 1 > 0 , ebb˝ol ad´odik, hogy Q(x) c´el-f¨ uggv´eny az α lejt˝osz¨ognek egy monoton n¨ovekv˝o f¨ uggv´enye ´es addig kell forgatnunk a ny´ıv´ovonalat az ´oramutat´o j´ar´as´aval ellenkez˝o ir´anyban, amig ny´ıv´ovonalnak van m´eg metszete az S halmazzal. Teh´at keresni kell azt a legnagyobb lejt˝osz¨oget, amelynek a megfelel˝o ny´ıv´ovonalnak a metszete az S halmazzal nem u ¨res. Vegy¨ uk ´eszre, hogy ilyen legnagyobb sz¨og az lesz, amelyn´el a ny´ıv´ov´onal teljesen egybesik a −x1 + x2 = 4 egyenlet˝ u egyenessel. Teh´at a feladatnak v´egtelen sok optim´alis megold´asa van – ezek k¨oz¨ ul az egyik a (0, 4) cs´ ucspontban tal´alhat´o: −6 2 Q(0, 4) = −0 − 4 − 22 × 0 + 3 × 4 + 3 = = − . 15 5 A −x1 + x2 = 4 egyenlet˝ u egyenesen l´ev˝o v´egtelen t´avoli x pontban az optim´alis ´ert´eke a Q(x) f¨ uggv´ennyek ugyanaz. Val´oban, fejezz¨ unk ki az x2 v´altoz´ot a −x1 + x2 = 4 egyenletb˝ol: x2 = x 1 + 4 ´es ezt behelyettes´ıtve a c´el-f¨ uggv´enybe, a k¨ovetkez˝ot kapjuk: Q(x1 ) =
−x1 − (x1 + 4) − 2 −x1 − x1 − 4 − 2 −2x1 − 6 = = . 2x1 + 3(x1 + 4) + 3 2x1 + 3x1 + 12 + 3 5x1 + 15
Ebb˝ol ad´odik, hogy lim Q(x1 ) =
x1 →∞
2 −2x1 − 6 = − . x1 →∞ 5x1 + 15 5 lim
Az al´abbi hiperbolikus programoz´asi feladattal demonstr´aljuk a (4) esetet, amikoris az x1 ´es x2 v´altoz´ok b´armilyen nagy ´erteket felvehetnek a lehets´eges megold´asok S halmaz´an.
Q(x) =
−x1 − x2 − 2 −→ max 2x1 + 3x2 + 3
a k¨ovetkez˝o felt´etelek mellett −x1 + x2 ≤ 3 x1 ≥ 0, x2 ≥ 0
´ A HIPERBOLIKUS PROGRAMOZASBA ´ I. BEVEZETES
18
Vegy¨ uk ´eszre, hogy az adott feladatban c´el-f¨ uggv´eny ugyanaz, mint az el˝oz˝o p´eld´aban. Ami az S lehets´eges halmazt illeti, egyetlen egy valtoz´as t¨ort´ent meg az el˝oz˝o p´eld´aval szemben – a felt´etel jobb oldal´an 4 helyett 3 szerepel. Mivel c´el-f¨ uggv´eny nem v´altozott, nyilv´anval´o hogy F f´okusz pont ugyanaz, azaz F = (−3, 1). Ez´ert a ny´ıv´ovonalt addig kell forgatni (az ´oramutat´o j´ar´as´aval ellenkez˝o ir´anyban) amig az nem lesz p´arhuzamos a −x1 + x2 = 3 egyenlet˝ u egyenessel. Vegy¨ uk ´eszre, hogy ekkor a ny´ıv´ovonal metszi az S halmazt olyan x = (∞, ∞) pontban, amely a −x1 + x2 = 3 egyenlet˝ u egyenesen fekszik. Mas szavakkal, ebben az x = (∞, ∞) pontban teljes¨ ul −x1 + x2 = 3 egyenlet. Ez´ert, x2 = 3 + x 1 ´es Q(x1 ) =
−x1 − (x1 + 3) − 2 −x1 − x1 − 3 − 2 −2x1 − 5 = = . 2x1 + 3(x1 + 3) + 3 2x1 + 3x1 + 9 + 3 5x1 + 12
Ebb˝ol k¨ovetkezik, hogy lim Q(x1 ) =
x1 →∞
2 −2x1 − 5 = − . x1 →∞ 5x1 + 12 5 lim
Teh´at az optimum ´ert´eke −2/5, ´es az optim´alis megold´as az −x1 + x2 = 3 egyenlet˝ u egyenes v´egtelen t´avoli pontja.
A fejezet befejez´esek´ent megeml´ıtj¨ uk, hogy az itt t´argyalt grafikus technika minden olyan feladatra alkalmazhat´o, amelyek fel´ırhat´ok k´et f¨ uggetlen v´altoz´ora vonatkoz´o egyenl˝otlens´egekkel. (P´eld´aul egy h´arom v´altoz´ot, egy egyenletet ´es egyenl˝otlens´egeket tartalmaz´o feladat ´at´ırhat´o ilyen feladatt´a. Az egyenletb˝ol ki kell fejezni egy v´altoz´ot, majd ezzel a kifejez´essel kell helyettes´ıteni a v´altoz´o minden el˝ofordul´as´at. Ilyen ´at´ır´askor u ¨gyelni kell arra, hogy a kifejezett v´altoz´o nemnegat´ıv, ´ıgy u ´j felt´etelk´ent fel kell venni a v´altoz´o kifejez´es´enek a nemnegativit´as´at.) Megeml´ıtj¨ uk m´eg, hogy magasabb dimenzi´ok eset´eben is lehet adni grafikus interpret´aci´ot. ´Igy az ndimenzi´os feladatn´al a Q(x) f¨ uggv´eny sz´aml´al´oja ´es nevez˝oje ´altal meghat´arozott hipers´ıkok metszete lesz az n − 2-dimenzi´os ”f´okusztengely”, ´es ezen tengely k¨or¨ ul ”forognak” a Q(x) f¨ uggv´eny n´ıv´os´ıkjai.
2.3. Gyakorlatok Oldjuk meg grafikus m´odszerrel az al´abbi hiperbolikus programoz´asi feladatokat.
´ 2. GRAFIKUS MODSZER
1.: P (x) 10x1 + 5x2 + 2 = −→ max D(x) 1x1 + 4x2 − 4 a k¨ovetkez˝o felt´etelek mellett Q(x) =
x1 − 3x2 ≥ −30 x1 + 2x2 ≥ 2x1 −
x2 ≤
20 10
x1 ≥ 0, x2 ≥ 0 . 2.: 2x1 + 3x2 + 3 P (x) = −→ max D(x) 3x1 + 5x2 + 6 a k¨ovetkez˝o felt´etelek mellett Q(x) =
8x1 + 5x2 ≤ 40 4x1 + 9x2 ≤ 36 x1 + 6x2 ≥ 12 10x1 +
x2 ≥ 10
x1 ≥ 0, x2 ≥ 0 . 3.: P (x) 3x1 − x2 − 3 = −→ max D(x) x1 + x 2 − 1 a k¨ovetkez˝o felt´etelek mellett Q(x) =
x1 −
x2 ≥
1
x1 + 2x2 ≤ 14 x1 − 2x2 ≤
2
x1 ≥ 0, x2 ≥ 0 4.: x1 + x 2 + 1 P (x) = −→ max D(x) 2x1 + 3x2 + 8 a k¨ovetkez˝o felt´etelek mellett Q(x) =
−4x1 +
x2 ≤
1
−x1 − 4x2 ≤ −4 4x1 −
x2 ≤
16
x1 ≥ 0, x2 ≥ 0 . 5.: Q(x) =
P (x) 2x1 + x2 − x3 + 2 = −→ max D(x) x1 + x2 + 3x3 + 1
19
´ A HIPERBOLIKUS PROGRAMOZASBA ´ I. BEVEZETES
20
a k¨ovetkez˝o felt´etelek mellett x1 + 2x2 −
x3 =
4
+ 2x3 ≤ 22
x1 + x1 +
x2 − 2x3 ≤
0
x1 +
x2
≥
4
x1 ≥ 0, x2 ≥ 0 . 6.: Q(x) =
P (x) x1 + x 2 + 1 = −→ max D(x) 2x1 + 3x2 + 8
a k¨ovetkez˝o felt´etelek mellett x1 +
x2 ≤
2
−3x1 − 2x2 ≤ −12 3x1 + 8x2 ≥
24
x1 ≥ 0, x2 ≥ 0 . 7.: Q(x) =
P (x) 2x1 − 2x2 = −→ max D(x) 5x1 + 3x2 − 16
a k¨ovetkez˝o felt´etelek mellett x1 +
x2 ≤
8
−4x1 + 6x2 ≤ 24 x1 ≥ 0, x2 ≥ 0 .
3. Charnes–Cooper-transzform´ aci´ o A jelen alfejezetben egy olyan megold´asi elj´ar´assal fogunk megismerkedni, amely seg´ıts´eg´evel tetsz˝oleges hiperbolikus programoz´asi feladathoz hozz´a lehet rendelni egy neki megfelel˝o line´aris programoz´asi feladatot ´es ez´altal a megoldand´o hiperbolikus programoz´as feladat megold´as´at vissza lehet vezeteni a hozz´arendelt line´aris programoz´asi feladat megold´as´ahoz. Ezt az elj´ar´ast A.Charnes ´es W.W.Cooper [40] publik´alta 1962-ben.
´ O ´ 3. CHARNES–COOPER-TRANSZFORMACI
21
3.1. Elm´elet Ebb˝ol a c´elb´ol tekints¨ uk az al´abbi ´altal´anos hiperbolikus programoz´asi feladatot: n X pj x j + p 0 P (x) j=1 = n (15) Q(x) = −→ max( or min) X D(x) dj xj + d 0 j=1
a k¨ovetkez˝o felt´etelek mellett n X aij xj ≤ bi , j=1 n X aij xj ≥ bi , (16) j=1 n X aij xj = bi ,
i = 1, 2, . . . , m1 , i = m1 + 1, m1 + 2, . . . , m2 , i = m2 + 1, m2 + 2, . . . , m,
j=1
(17)
xj ≥ 0, j = 1, 2, . . . , n1 , n1 ≤ n,
amelyr˝ol a tov´abbiakban hivatkoz´as n´elk¨ ul mindig felt´etelezz¨ uk a k¨ovetkez˝oket: (1) a feladat S lehets´eges halmaza korl´atos ´es nem-¨ ures, azaz S 6= ∅; (2) D(x) > 0, ∀x ∈ S. Vegy¨ uk ´eszre, hogy a felsorolt felt´etelek biztos´ıtj´ak, hogy a(z) (15)-(17) feladat megoldhat´o, ´es az optim´alis megold´asa v´eges cs´ ucspontban van. Val´oban, mivel az S lehets´eges halmaz korl´atos ´es z´art, ez´ert az x 1 ´es x2 v´altoz´ok csak korl´atos ´ert´ekeket vehetnek fel. M´asr´eszt a P (x) ´es D(x) f¨ uggv´enyek line´arisak (azaz folytonosak), m´egpedig D(x) > 0, ∀x ∈ S. Ebb˝ol k¨ovetkezik, hogy nem u ¨res, z´art, korl´atos S halmazon a Q(x) f¨ uggv´eny felveszi v´eges ´ert´ek˝ u maximum´at, illetve minimum´at. A Charnes–Cooper-transzform´aci´o menet´et k¨ovetve vezess¨ uk be a k¨ovetkez˝o u ´j v´altoz´okat: xj 1 tj = , j = 1, 2, . . . , n, t0 = , D(x) D(x) ahol (18)
D(x) =
n X j=1
dj xj + d 0 .
´ A HIPERBOLIKUS PROGRAMOZASBA ´ I. BEVEZETES
22
´Irjuk ´at az eredeti Q(x) c´el-f¨ uggv´enyt a k¨ovetkez˝o form´aba: n n X X pj x j + p 0 pj x j + p 0 n X xj 1 j=1 j=1 pj = + p0 . = Q(x) = n X D(x) D(x) D(x) j=1 dj xj + d 0 j=1
Az u ´j tj , j = 0, 1, . . . , n, v´altoz´ok haszn´alat´aval kapjuk az u ´j c´el-f¨ uggv´enyt:
(19)
L(t) =
n X
pj tj −→ max( or min) .
j=0
Tov´abb´a, mivel D(x) > 0, ∀x ∈ S, a(z) (16) ´es (17) felt´etelek mindk´et oldal´at oszthatjuk D(x) -szel, ´es ezzel kaphatjuk az al´abbi felt´eteleket: n X aij tj ≤ 0, i = 1, 2, . . . , m1 , −bi t0 + j=1 n X a t ≥ 0, i = m + 1, m + 2, . . . , m , −b t + (20) ij j 1 1 2 i 0 j=1 n X −bi t0 + aij tj = 0, i = m2 + 1, m2 + 2, . . . , m, j=1
(21)
tj ≥ 0, j = 0, 1, 2, . . . , n1 , n1 ≤ n,
Az u ´j ´es az eredeti v´altoz´ok k¨oz¨otti kapcsolat csak akkor lesz teljes ´es hi´anytalan, ha a(z) (18) kifejez´est osztjuk D(x) -szel, ´es az ilyen m´odon kapott n X (22) d j tj = 1 j=0
u ´j felt´etelt hozz´acsatoljuk az u ´j feladat felt´etelrendszer´ehez.
Az ilyen m´odon kapott (19)-(22) feladatot a tov´abbiakban a hiperbolikus programoz´asi feladat line´ aris anal´ ogj´ anak fogjuk nevezni. Vegy¨ unk ´eszre, hogy a(z) (19)-(22) feladatban szerepl˝o L(t) c´el-f¨ uggv´eny line´aris, a feladat ¨osszes felt´etele szint´en line´aris. Teh´at, maga a(z) (19)-(22) feladat is line´aris. Ezenk´ıv¨ ul az eredeti HP feladatban van n v´altoz´o ´es m felt´etel, a line´aris anal´ogban pedig szerepel (n + 1) v´altoz´o ´es (m + 1) felt´etel. Joggal vet˝odik fel a k´erd´es, hogy az eredeti HP feladat ´es a line´aris anal´ogja k¨oz¨ott mennyire szoros a kapcsolat, illetve mennyivel visz k¨ozelebb benn¨ unket a line´aris anal´og az eredeti HP feladat megold´as´ahoz. Ezekre a k´erd´esekre a k¨ovetkez˝o ´all´ıt´asok adnak v´alaszt.
´ O ´ 3. CHARNES–COOPER-TRANSZFORMACI
23
I.1. Lemma. Ha t = (t0 , t1 , . . . , tn ) vektor a(z) (19)-(22) linea´aris anal´og lehets´eges megold´asa, akkor t0 > 0. I.1. T´ etel. Ha t∗ = (t∗0 , t∗1 , . . . , t∗n ) vektor a(z) (19)-(22) line´aris anal´og optim´alis megold´asa, akkor az x∗ = (x∗1 , x∗2 , . . . , x∗n ) vektor az eredeti (15)(17) HP feladat optim´alis megold´asa, megpedig (23)
x∗j =
t∗j , j = 1, 2, . . . , n. t∗0
A k¨ovetkez˝okben egy numerikus p´elda megold´as´aval mutatjuk be a Charnes– Cooper-transzform´aci´o gyakorlati v´egrehajt´as´at.
3.2. Numerikus p´elda Legyen a k¨ovetkez˝o HP feladat: 8 x1 + 9 x 2 + 4 x 3 + 4 −→ max Q(x) = 2 x1 + 3 x 2 + 2 x 3 + 7 a k¨ovetkez˝o felt´etelek mellett 1 x1 + 1 x 2 + 2 x 3 ≤ 3 , 2 x1 + 1 x 2 + 4 x 3 ≤ 4 , 5 x1 + 3 x2 + 1 x3 ≤ 15 , xj ≥ 0, j = 1, 2, 3. A feladat optim´alis megold´asa: x∗ = (1, 2, 0)T , P (x∗ ) = 30, D(x∗ ) = 15, Q(x∗ ) = 2 . A(z) (19)-(22) k´epleteknek megfelel˝oen a a k¨ovetkez˝o line´aris anal´og megfelel az eredit HP feladatnak: L(t) = 4 t0 + 8 t1 + 9 t2 + 4 t3 −→ max a k¨ovetkez˝o felt´etelek mellett 7 t0 + 2 t 1 + 3 t 2 + 2 t 3 = 1 , −3 t0 + 1 t1 + 1 t2 + 2 t3 ≤ 0 , −4 t0 + 2 t1 + 1 t2 + 4 t3 ≤ 0 , −15 t0 + 5 t1 + 3 t2 + 1 t3 ≤ 0 , tj ≥ 0, j = 0, 1, 2, 3. Ennek a line´aris programoz´asi feladatnak az optim´alis megold´asa: 1 1 2 t∗ = ( , , , 0)T , L(t∗ ) = 2 . 15 15 15 vagy 1 2 0 1 , t∗ = , t∗ = , t∗ = . t∗0 = 15 1 15 2 15 3 15
´ A HIPERBOLIKUS PROGRAMOZASBA ´ I. BEVEZETES
24
´ Ugy, hogy a(z) (23) k´epleteknek megfelel˝oen x∗1 =
t∗1 = t∗0
1 15 1 15
= 1,
x∗2 =
t∗2 = t∗0
2 15 1 15
= 2,
x∗3 =
t∗3 = t∗0
0 15 1 15
= 0,
Meg kell jegyezn¨ unk, hogy korl´atlan S lehets´eges halmaz eset´en el˝ofordulhat, hogy a megoldand´o HP feladat line´aris anal´ogj´anak optim´alis megold´as´aban t∗0 = 0. Ilyenkor az eredeti HP feladat optim´alis megoldasa aszimptotikus, azaz x∗ optim´alis megold´as tartalmaz v´egtelen ´ert´ek˝ u elemeket. Az aszimptotikus eset r´eszletes le´ır´as´at Gavurin, M.K. [70] cikk´eben tal´alhatjuk. Az alfejezet befejez´ese el˝ott m´eg egy fontos megjegyz´est kell tenn¨ unk. A(z) I.1 t´etelben megfogalmazott, az eredeti HP feladat ´es a hozz´a tartoz´o line´aris anal´og k¨oz¨otti kapcsolat els˝o n´ezetre rendk´ıv¨ ulien hasznosnak ´es fontosnak l´atszik legal´abbis az´ert, mert lehet˝ov´e teszi az eredeti megoldand´o HP feladatot helyettes´ıteni speci´alis LP feladattal, ´es ez´altal ny´ılik lehet˝os´eg alkalmazni a j´ol ismert line´aris programoz´asi matematikai appar´atust. A gyakorlatban azonban az adott megk¨ozel´ıt´es nem mindig hasznos ´es haszn´alhat´o. Neh´ezs´egek akkor mer¨ ulnek fel, amikor egy speci´alis strukt´ ur´aj´ u HP feladatr´ol van sz´o. P´eld´aul ha egy sz´all´ıt´asi (l´asd. V. fejezet) vagy hozz´arendel´esi feladatot kell Charnes–Cooper-transzform´aci´o haszn´alat´aval ´atalak´ıtani line´aris alakba, akkor figyelembe kell venn¨ unk, hogy az eredeti n ismeretlen v´altoz´o helyett a line´aris anal´ogban (n + 1) v´altoz´ot kell kezeln¨ unk, m´eg az eredeti m felt´etel helyett (m + 1) -t fogunk kapni. Mindez annyira megv´altoztatja a feladat eredeti strukt´ ur´aj´at, hogy a feladatnak megfelel˝o speci´alis m´odszerek alkalmaz´asa lehetlenn´e v´alik. Ezenk´ıv¨ ul a(z) (20) felt´etel-rendszer jobb oldal´an nincsen (szok´asos ´ertelemben) jobb oldali b = (b1 , b2 , . . . , bm ) vektor. E helyett szerepel m elemes 0 = (0, 0, . . . , 0) nulla-vektor. Az ut´obbi azt jelenti, hogy a line´aris programoz´asi dualit´as elm´elete ebben az esetben nem haszn´alhat´o. Sz´oval speci´alis HP feladatok eset´en a Charnes–Cooper-transzform´aci´o nem k¨onny´ıti a feladat megold´as´at, s˝ot n´eha megnehez´ıti azt. Mindez sz¨ uks´egess´e teszi a HP feladat k¨ozvetlen tanulmanyoz´as´at az LP feladatra t¨ort´en˝o visszavezet´ese n´elk¨ ul.
3.3. Gyakorlatok Tov´abbi gyakorl´ashoz ¨on´all´oan konstru´aljunk line´aris anal´ogokat az al´abbi HP feladatok sz´am´ara:
4. DINKELBACH-ALGORITMUS
25
3.3.1.: Q(x) =
2 x1 + x2 − 2 −→ max x1 + x 2 + 1
a k¨ovetkez˝o felt´etelek mellett x1 + x 2 ≤ 3 , x1 − x 2 ≤ 2 , xj ≥ 0, j = 1, 2. 3.3.2.: Q(x) =
2 x1 + 6 x 2 + 2 x 3 − 3 −→ max 5 x1 + 1 x 2 + 4 x 3 + 1
a k¨ovetkez˝o felt´etelek mellett 3 x1 − 2 x2 + 1 x3 ≤ 135 , 1 x1 + 3 x2 + 3 x3 ≥ 45 , 8 x1 − 5 x2 + 1 x3 = 150 , xj ≥ 0, j = 1, 2, 3. 3.3.3.: Q(x) =
5x1 − 3x2 + 2 −→ max 4x1 + 1x2 − 2
a k¨ovetkez˝o felt´etelek mellett x1 + 2x2 ≥ 4 , x1 + 3x2 ≤ 6 , x1 ≥ 0, x2 ≥ 0
4. Dinkelbach-algoritmus Az egyik leg´altal´anosabb ´es leggyakrabban haszn´alt strat´egia a t¨ort alak´ u c´elf¨ uggv´enyes optimaliz´al´asi feladatok megold´asakor (nem csak linearis P (x) ´es D(x) eset´en) a W.Dinkelbach [56] ´altal bevezetett parametrikus m´odszer. A hiperbolikus programoz´asi feladat eset´en a m´odszer l´enyege abban ´all, hogy az eredeti megoldand´o HP feladat megold´as´at visszavezetj¨ uk a line´aris programoz´asi feladatok sorozat´anak megold´as´ahoz.
´ A HIPERBOLIKUS PROGRAMOZASBA ´ I. BEVEZETES
26
4.1. Elm´elet Tekints¨ uk a k¨ovetkez˝o hiperbolikus programoz´asi feladatot: n X pj x j + p 0 P (x) j=1 (24) Q(x) = = n , −→ max( or min) X D(x) dj xj + d 0 j=1
a k¨ovetkez˝o felt´etelek mellett n X aij xj ≤ bi , j=1 n X aij xj ≥ bi , (25) j=1 n X aij xj = bi ,
i = 1, 2, . . . , m1 , i = m1 + 1, m1 + 2, . . . , m2 , i = m2 + 1, m2 + 2, . . . , m,
j=1
(26)
xj ≥ 0, j = 1, 2, . . . , n1 ,
´es vezess¨ uk be a k¨ovetkez˝o f¨ uggv´enyt: F (λ) = max{P (x) − λD(x)}, λ ∈ R, x∈S
ahol S a szok´asos m´odon jel¨oli a(z) (25)-(26) felt´etelek ´altal meghat´arozott lehets´eges halmazt, ´es λ egy param´eter. A Dinkelbach-m´odszer alap¨otlet´enek elm´eleti h´atterek´ent a k¨ovetkez˝o ´all´ıt´as szolg´al: I.2. T´ etel. Egy x∗ vektor a(z) (24)-(26) HP feladat optim´alis megold´asa akkor ´es csak akkor, ha teljes¨ ul az (27)
F (λ∗ ) = max{P (x) − λ∗ D(x)} = 0 x∈S
egyenl˝os´eg, ahol (28)
λ∗ =
P (x∗ ) . D(x∗ )
A fenti t´etel nemcsak v´alaszt ad arra a k´ed´esre, hogy egy lehets´eges x vektor vajon optim´alis-e, hanem alapj´aul szolg´al az optim´alis megold´ashoz vezet˝o algoritmusnak is. Val´oban, mivel D(x) > 0, ∀x ∈ S , ez´ert ∂F (λ) = −D(x) < 0. ∂λ
4. DINKELBACH-ALGORITMUS
27
Az ut´obbi azt jelenti, hogy az F (λ)-ra adott (27) kifejez´es szigor´ uan cs¨okken˝o λ-t´ol f¨ ugg˝o f¨ uggv´eny. Ez´ert a Dinkelbach-m´odszer megval´os´ıthat´o a k¨ovetkez˝o l´ep´esekben: 0.L´ ep´ es: : Hat´arozzunk meg egy x(0) tetsz˝oleges indul´o lehets´eges megold´ast, azaz x(0) ∈ S. Legyen k := 1 ´es λ(1) = P (x(0) )/D(x(0) ). 1.L´ ep´ es: : Oldjuk meg a k¨ovetkez˝o line´aris programoz´asi feladatot: max{P (x) − λ(k) D(x)} x∈S
Jel¨olj¨ uk x(k) -val a kapott megold´ast, azaz x(k) := arg max{P (x) − λ(k) D(x)}. x∈S
2.L´ ep´ es: : Ha F (λ(k) ) = P (x(k) ) − λ(k) D(x(k) ) = 0, akkor az x∗ = (k) x vektor a keresett optim´alis megold´as. Stop. K¨ ul¨onben 3.L´ ep´ es: : Legyen λ(k+1) := P (x(k) )/D(x(k) ). Legyen k := k + 1 . Vissza az 1.L´ep´eshez.
4.2. Numerikus p´elda Az al´abbi numerikus p´elda illusztr´alja a m´odszer m˝ uk¨od´es´et. Tekints¨ uk a k¨ovetkez˝o hiperbolikus programoz´asi feladatot: Q(x) =
P (x) x1 + x 2 + 5 = −→ max D(x) 3x1 + 2x2 + 15
a k¨ovetkez˝o felt´etelek mellett (29)
3x1 + x2 ≤ 6 , 3x1 + 4x2 ≤ 12 , x1 ≥ 0, x2 ≥ 0
0. L´ ep´ es: Mivel x = (0, 0) vektor kiel´eg´ıti minden felt´etel´et a megoldand´o feladatnak, ez´ert v´alaszthatjuk ezt a vektort az indul´o pontnak. Sz´oval, legyen x(0) = (0, 0). Teh´at a kiv´alasztott x(0) = (0, 0) pont eset´en λ(1) :=
5 1 P (x(0) ) = = , (0) 15 3 D(x )
1. L´ ep´ es: Most a k¨ovetkez˝o line´aris programoz´asi feladatot kell megoldanunk 1 1 P (x) − λ(1) D(x) = P (x) − D(x) = x2 −→ max 3 3
´ A HIPERBOLIKUS PROGRAMOZASBA ´ I. BEVEZETES
28
a(z) (29) felt´etelek mellett. Ennek a feladatnak optim´alis megold´asa x(1) = (0, 3), u ´gyhogy F (λ(1) ) = 1 . 2. L´ ep´ es: Mivel F (λ(1) ) 6= 0, v´egre kell hajtanunk a k¨ovetkez˝o l´ep´est: 3. L´ ep´ es: Most ki kell sz´amolnunk az u ´j λ(2) -t: λ(2) :=
8 1×3+5 P (x(1) ) = , = 2 × 3 + 15 21 D(x(1) )
´es n¨oveln¨ unk kell a k ´ert´ek´et, azaz k := k + 1 = 2. Vissza az 1. L´ ep´ eshez. 1. L´ ep´ es: Oldjuk meg a k¨ovetkez˝o line´aris programoz´asi feladatot: P (x) − λ(2) D(x) = 8 8 8 = (1 − × 3)x1 + (1 − × 2)x2 + (5 − × 15) = 21 21 21 1 5 5 = − x1 + x2 − −→ max 7 21 7 a(z) (29) felt´etelek mellett. Megoldva ezt a feladatot a k¨ovetkez˝oket kapjuk: x(2) = (0, 3)
´es
F (λ(2) ) = 0 .
2. L´ ep´ es: Mivel F (λ(2) ) = 0, ez´ert az x∗ = x(2) vektor a keresett optim´alis megold´asa a megoldand´o hiperbolikus programoz´asi feladatnak; Stop; Sz´oval a fenti hiperbolikus programoz´asi feladat optim´alis megold´asa x∗ = (0, 3), Q(x∗ ) = 8/21.
4.3. Gyakorlatok Oldjuk meg Dinkelbach-m´odszerrel az al´abbi hiprbolikus programoz´asi feladatokat. A Dinkelbach-algoritmus v´egrehajt´asa sor´an keletkez˝o line´aris programoz´asi programoz´asi feladatokat oldjuk meg alkalmas szoftver eszk¨oz¨okkel, pl.: LinDo, LinGo, Excel/Solver vagy WinGULF. 4.3.1.:
2x1 + x2 + 15 −→ max 3x1 + x2 + 25 a k¨ovetkez˝o felt´etelek mellett 1x1 + x2 ≤ 15 , 3x1 + 4x2 ≤ 65 , Q(x) =
x1 ≥ 0, x2 ≥ 0
4. DINKELBACH-ALGORITMUS
4.3.2.:
3x1 + x2 − 5 −→ max 7x1 + 2x2 + 15 a k¨ovetkez˝o felt´etelek mellett −3x1 + x2 ≥ 6 , 3x1 + 5x2 ≤ 15 , Q(x) =
x1 ≥ 0, x2 ≥ 0 4.3.3.:
5x1 − 3x2 + 2 −→ min 4x1 + 1x2 + 5 a k¨ovetkez˝o felt´etelek mellett x1 + 2x2 ≤ 4 , x1 + 3x2 ≥ 6 , Q(x) =
x1 ≥ 0, x2 ≥ 0 4.3.4.:
5x1 − 3x2 + 2 −→ max 4x1 + 1x2 − 2 a k¨ovetkez˝o felt´etelek mellett x1 + 2x2 ≥ 4 , x1 + 3x2 ≤ 6 , Q(x) =
x1 ≥ 0, x2 ≥ 0 4.3.5.:
x1 + 3x2 + 2 −→ max x1 + 2x2 + 5 a k¨ovetkez˝o felt´etelek mellett 3x1 + x2 ≥ 14 , x1 + 3x2 ≤ 26 , Q(x) =
x1 ≥ 0, x2 ≥ 0
29
II. Fejezet
Szimplex m´ odszer Az 1940-es ´evekben George Dantzig amerikai matematikus ´altal kifejlesztett, eredetileg line´aris programoz´asi feladat megold´as´ara szolg´al´o szimplex m´ odszert k´es˝obb, 1960.-ban Martos B´ela magyar matematikus adapt´alta a hiperbolikus programoz´asi feladatra. Ebben a fejezetben a szimplex m´odszer hiperbolikus programoz´asi v´altozat´aval fogunk foglalkozni. A fejezet a k¨ovetkez˝ok´eppen ´ep¨ ul fel. Els˝ok´ent a m´odszer elm´eleti h´atter´evel foglalkozunk, majd ´att´er¨ unk az algoritmus v´egrehajt´asi k´erd´eseire. Ezt k¨ovet˝oen n´eh´any numerikus p´elda alapj´an bemutatjuk a m´odszer m˝ uk¨od´es´et. Legyen a k¨ovetkez˝o kanonikus alak´ u hiperbolikus programoz´asi feladat:
(30)
n X
P (x) j=1 Q(x) = = n X D(x)
pj x j + p 0 → max,
dj xj + d 0
j=1
a k¨ovetkez˝o felt´etelek mellett (31)
n X
aij xj = bi , i = 1, 2, . . . , m,
j=1
(32)
xj ≥ 0, j = 1, 2, . . . , n .
Itt ´es minden¨ utt a tov´abbiakban ebben a fejezetben felt´etelezz¨ uk, hogy (1) az S lehets´eges halmaz nem u ¨res ´es korl´atos , (2) (33)
D(x) > 0 ∀x ∈ S 31
´ II. SZIMPLEX MODSZER
32
1. F˝ o defin´ıci´ ok ´ es t´ etelek II.1. Defin´ıci´ o. A(z) (30)-(32) maximaliz´al´asi hiperbolikus programoz´asi feladatot megoldhat´ onak fogjuk nevezni, ha – a(z) (31)-(32) felt´etelek ´altal meghat´arozott S lehets´eges halmaz nem u ¨res, azaz l´etezik legal´abb egy olyan x = (x1 , x1 , . . . , xn ) vektor, amely kiel´eg´ıti a feladat (31)-(32) felt´eteleit, ´es – a Q(x) c´el-f¨ uggv´eny az S lehets´eges halmazon fel¨ ulr˝ol korl´atos. Egy´ebk´ent a(z) (30)-(32) feladatot megoldhatatlannak fogjuk nevezni. Tekints¨ uk a k¨ovetkez˝o line´aris egyenletrendszert: n X
Aj xj = b,
j=1
ahol
Aj =
a1j a2j .. . amj
, j = 1, 2, . . . , n, b =
b1 b2 .. . bm
,
´es m ≤ n.
II.2. Defin´ıci´ o. Azt fogjuk mondani, hogy az Aj vektorokb´ol ´all´o B = {As1 , As2 , . . . , Asm } vektorrendszer egy b´ azist alkot, ha As1 , As2 , . . . , Asm vektorok line´arisan f¨ uggetlenek, azaz a B vektorrendszer line´arisan f¨ uggetlen. Tegy¨ uk fel, hogy az adott B = {As1 , As2 , . . . , Asm } vektorrendszer b´azis. Jel¨olje JB a B b´azishoz tartoz´o Aj vektorok index´enek halmaz´at, azaz JB = {s1 , s2 , . . . , sm }. Ha J = {1, 2, . . . , n}, akkor a JN = J\JB indexhalmaz jel¨oli azon Aj vektorok index´enek halmaz´at, amelyek nem szerepelnek az adott B b´azisban. II.3. Defin´ıci´ o. Az adott x = (x1 , x2 , . . . , xn )T vektort b´ azismegold´ asnak (vagy b´ azisvektornak) fogjuk nevezni, ha az x vektor kiel´eg´ıti a X Aj xj = b j∈JB
rendszert, ´es xj = 0, ∀j ∈ JN .
˝ DEFIN´ICIOK ´ ES ´ TETELEK ´ 1. FO
33
Azokat az xj v´altoz´okat, amelyek indexe a JB indexhalmazban vannak b´ azisv´ altoz´ oknak szok´as nevezni. Ha egy xj v´altoz´o nem szerepel a b´azisban, akkor azt nem-b´ azisv´ altoz´ onak fogjuk nevezni, azaz ha xj nem-b´azisv´altoz´o, akkor j ∈ JN . Exterm´ alis pont (cs´ ucspont) fogalma: II.4. Defin´ıci´ o. Az S konvex halmaz x pontj´at extrem´ alis pontnak (vagy cs´ ucspontnak) nevezz¨ uk, ha az S halmazban nem l´eteznek olyan x0 ´es x00 pontok, amelyeknek az x pont line´aris kombon´aci´oja, azaz x = λx0 + (1 − λ)x00 , ahol 0 < λ < 1, Szomsz´ ed (szomsz´ edos pont) fogalma: II.5. Defin´ıci´ o. Ha adott egy Ax = b line´aris egyenletrendszer n v´altoz´oval ´es m felt´etellel, akkor ennek az egyenletrendszernek k´et tetsz˝oleges b´azismegold´as´at szomsz´ edos pontoknak nevezz¨ uk, ha ezeknek a b´azismegold´asoknak megfelel˝o b´azisok egym´ast´ol egyetlen egy vektorban k¨ ul¨onb¨oznek, azaz (m − 1) vektor ugyanaz. Az extrem´alis pontok vagy cs´ ucspontok nagyon fontos szerepet j´atszanak a szimplex m´odszerben. A cs´ ucspontok ´es b´azismegold´asok k¨oz¨otti kapcsolatot a k¨ovetkez˝o t´etel hat´arozza meg: II.1. T´ etel. Az Ax = b line´aris egyenletrendszer ´altal meghat´arozott konvex halmaz egy x pontja akkor ´es csak akkor cs´ ucspont, ha x vektor ennek a rendszernek b´azismegold´asa. M´as szavakkal minden cs´ ucspontnak megfelel legal´abb egy b´azismegold´as (´es ezek szerint legal´abb egy b´azis). II.6. Defin´ıci´ o. Azt mondjuk, hogy az x b´azismegold´as degener´ alt, ha a b´azisv´altoz´ok k¨oz¨ott legal´abb egy v´altoz´o nulla ´ert´ek˝ u, azaz ∃j : j ∈ J B , ´es xj = 0. Abban az esetben, ha xj 6= 0, ∀j ∈ JB , akkor az x b´azismegold´ast nem-degener´ altnak nevezz¨ uk. A nem-degener´alt b´azismegold´as fogalma nagyon fontos szerepet j´atszik a szimplex m´odszerben, mert a degener´alt cs´ ucspontnak ´altal´anos esetben t¨obb b´azis ´es ez´ert t¨obb b´azismegold´as felel meg. II.7. Defin´ıci´ o. A(z) (31) rendszer x = (x1 , x2 , . . . , xn )T b´azismegold´as´at a(z) (30)-(32) feladat lehets´ eges b´ azismegold´ as´ anak nevezz¨ uk, ha minden xj eleme nem-negat´ıv, azaz xj ≥ 0 j = 1, 2, . . . , n, . II.8. Defin´ıci´ o. A(z) (30)-(32) kanonikus hiperbolikus programoz´asi feladatot norm´ alisnak vagy normaliz´ altnak fogjuk nevezni, ha a(z) (31)
´ II. SZIMPLEX MODSZER
34
egyenletrendszer jobb oldali b = (b1 , b2 , . . . , bm )T vektor´anak ¨osszes bi eleme nem-negat´ıv, azaz bi ≥ 0, i = 1, 2, , , . . . , m. A szimplex m´odszernek a hiperbolikus programoz´asi feladat megold´as´ara val´o alkalmazhat´os´aga a k¨ovetk¨ez˝o t´etelen alapszik: II.2. T´ etel. (Monotonit´ as) Az S lehets´eges halmazhoz tartoz´o tetsz˝oleges egyenes szakaszon a Q(x) c´el-f¨ uggv´eny monoton. Bizony´ıt´ as. Azzal kezdj¨ uk bizony´ıt´ast, hogy v´alasszuk az S lehets´eges 0 halmazon k´et tetsz˝oleges x ´es x00 pontot, azaz x0 ∈ S ´es x00 ∈ S. Tekints¨ uk a Q(x) c´el-f¨ uggv´eny viselked´es´et az x0 x00 szakaszon. V´alassszuk ezen a szakaszon egy tetsz˝oleges x pontot, azaz x = λx0 + (1 − λ)x00 , ahol 0 ≤ λ ≤ 1. Nyilv´anval´o, hogy Q(λ) =
P (λx0 + (1 − λ)x00 ) λP (x0 ) + (1 − λ)P (x00 ) = . . . = D(λx0 + (1 − λ)x00 ) λD(x0 ) + (1 − λ)D(x00 )
´es ennek megfelel˝oen (34)
P (x0 )D(x00 ) − P (x00 )D(x0 ) dQ(λ) = . dλ (λD(x0 ) + (1 − λ)D(x00 ))2
Mivel (λD(x0 ) + (1 − λ)D(x00 ))2 > 0 a(z) (34) azt jelenti, hogy x0 x00 szakaszon Q(x) c´el-f¨ uggv´eny – n¨ovekszik, ha P (x0 )D(x00 ) − P (x00 )D(x0 ) > 0, – cs¨okken, ha P (x0 )D(x00 ) − P (x00 )D(x0 ) < 0, – nem v´altozik, ha P (x0 )D(x00 ) − P (x00 )D(x0 ) = 0. Igy a t´etel bizony´ıtva van. ♦ Mivel S lehets´eges halmaz konvex, ez´ert a(z) II.2. t´etelb˝ol k¨ovetkezik, hogy II.3. T´ etel. Ha (30)-(32) hiperbolikus programoz´as feladat S lehets´eges halmaza korl´atos, akkor Q(x) c´el-f¨ uggv´eny a maxim´alis ´ert´ek´et az S halmazon az S halmaz cs´ ucspontj´aban veszi fel. II.1. Megjegyz´ es. A(z) II.3. t´etel csak abban az esetben ´erv´enyes, ha az S lehets´eges halmaz korl´atos. Korl´atlan S halmazban el˝ofordulhat az u ´gynevezett aszimptotikus eset (l´asd I. fejezet 2. alfejezet)
´ ´ 2. OPTIMALITASI KRITERIUM
35
2. Optimalit´ asi krit´ erium Tegy¨ uk fel, hogy a(z) (30)-(32) hiperbolikus programoz´asi feladat norm´alis, azaz bi ≥ 0, i = 1, 2, . . . , m. Tov´abb´a felt´etelezz¨ uk, hogy az x = (x1 , x2 , . . . , xn )T vektor a(z) (30)-(32) feladat nem-degener´alt lehets´eges b´azismegold´asa, ´es ennek a b´azismegold´asnak megfelel a B = (As1 , As2 , . . . , Asm ) b´azis. Ez azt jelenti, hogy ½ > 0, j ∈ JB = {s1 , s2 , . . . , sm }, xj = 0, j ∈ JN = J \ JB ,
ahol J = {1, 2, , . . . , n}. Ezeknek a felt´etelez´eseknek megfelel˝oen n X j=1
Aj xj =
X
Aj xj +
j∈JB
X
Aj xj =
j∈JN
X
Aj xj + 0 =
j∈JB
Mivel az x vektor b´azismegold´as, ez´ert m X Asi xsi = b. (35)
m X
A si x si .
i=1
i=1
A szimplex m´odszer elj´ar´as´anak megfelel˝oen v´alasszunk egy Aj nem-b´azis vektort (azaz j ∈ JN ), ´es vezess¨ uk be ezt a vektort a b´azisba. Mivel ilyenkor a b´azis v´altozik, ez´ert v´altoznak a benne lev˝o b´azisv´altoz´ok, ´es az xj u ´j ´ b´azisv´altoz´o u ´j ´ert´ek´et kap (eredetileg nulla volt). Eppen ezek miatt a b´azisban t¨ort´en˝o v´altoz´asok miatt a k¨ovetkez˝o u ´j jel¨ol´esekre van sz¨ uks´eg¨ unk: – θ jel¨olje az xj u ´j b´azisv´altoz´o ´ert´ek´et, ´es – xj (θ) jel¨olje a b´azisban m´ar megl´ev˝o r´egi b´azisv´altoz´ok u ´j ´ert´ek´et. Az u ´j jel¨ol´esek haszn´alat´aval a(z) (35) k´eplet ´at´ırhat´o a k¨ovetkez˝o form´aba: m X
(36)
Asi xsi (θ) + Aj θ = b.
i=1
uggetlen Tov´abb´a, mivel az As1 , As2 , . . . , Asm b´azisvektorok line´arisan f¨ vektorrendszert alkotnak, ez´ert az Aj vektor ebben a rendszerben el˝o´all´ıthat´o line´aris kombin´aci´ok´ent: m X Asi xij . (37) Aj = i=1
Helyettes´ıts¨ uk a(z) (36) k´epletben az Aj vektort a(z) (37) egyenlet jobb oldal´aban szerepl˝o kifejez´essel: m m X X Asi xij = b. Asi xsi (θ) + θ (38) i=1
i=1
´ II. SZIMPLEX MODSZER
36
Vegy¨ uk figyelembe, hogy a(z) (35) ´es (38) egyenletek jobb oldal´an szerepl˝o kifejez´esek egyform´ak, ez´ert m X
Asi xsi (θ) + θ
Asi xij =
i=1
i=1
vagy m´ask´eppen
m X
m X
Asi xsi (θ) =
i=1
m X
m X
A si x si
i=1
Asi (xsi − θxij ) .
i=1
Mivel az As1 , As2 , . . . , Asm vektorok line´arisan f¨ uggetlenek, ez´ert xsi (θ) = xsi − θxij , i = 1, 2, . . . , m.
(39)
A(z) (39) k´eplet haszn´alata az x(θ) u ´j b´azismegold´as el˝o´all´ıt´as´ahoz biztos´ıtja a(z) (31) felt´etelrendszer kiel´eg´ıt´es´et. Azonban a(z) (39) k´eplet haszn´alata nem biztos´ıtja az x(θ) vektor elemeinek nem-negativit´as´at (32). Teh´at ´ nem biztos, hogy x(θ) lehets´eges b´azismegold´asa lesz a feladatnak. Eppen ez´ert olyan θ-ra van sz¨ uks´eg¨ unk, amely melett teljes¨ ulnek az xsi (θ) ≥ 0, i = 1, 2, . . . , m, vagy a(z) (39) k´eplet haszn´alat´aval xsi − θxij ≥ 0, i = 1, 2, . . . , m. nem-negat´ıvit´asi felt´etelek. Nyilv´anval´o, az ut´obbit ´at lehet ´ırni a k¨ovetkez˝o form´aban: xs θ ≤ i , olyan i index eset´en, hogy xij > 0, xij θ≥
x si , olyan i index eset´en, hogy xij < 0, xij
vagy ugyanaz, csak kompaktabb form´aban: xs xs (40) max i ≤ θ ≤ min i xij <0 xij xij >0 xij Mivel θ-val jel¨olt¨ uk az xj u ´j b´azisv´altoz´o u ´j ´ert´ek´et, ez´ert csak nemnegat´ıv θ-t v´alaszthatunk, m´as szavakkal a(z) (40) felt´etel helyett a xs (41) 0 ≤ θ ≤ min i . xij >0 xij felt´etelt kell haszn´alnunk a θ ´ert´ek kiv´alaszt´as´ahoz. Tov´abb´a θ ´ert´eke nem lehet nulla az´ert, mert ilyenkor az u ´j b´azisban csak (m − 1) vektor marad, ´es a(z) II.2. definici´o szerint ez m´ar nem lesz b´azis. Nek¨ unk pedig u ´j b´azisra lenne sz¨ uks´eg¨ unk.
´ ´ 2. OPTIMALITASI KRITERIUM
37
Ugyanilyen ok miatt nem v´alaszthatjuk θ ´ert´ek´eu ¨l a(z) (41) tartom´any bels˝o pontj´at, mert ebben az esetben az u ´j vektorrendszerben (m + 1) darab Aj lenne. Ez´ert marad a k¨ovetkez˝o egyetlen egy elfogadhat´o θ ´ert´ek:
(42)
x si . xij >0 xij
θ = min
A(z) (42) k´epletet minim´ alis fajlagos vizsg´ alatnak (az angol nyelv˝ u szakirodalomban minimum ratio test) szokt´ak nevezni. II.2. Megjegyz´ es. El˝ofordulhat, hogy a kiv´alasztott Aj vektor sz´am´ara nincsen egyetlen egy olyan i index, amely melett xij > 0, ´es ennek k¨ovetkezt´eben a(z) (40) tartom´anyban v´eges fels˝o korl´at nem l´etezik. Ilyenkor θ ´ert´eke nem v´eges. R´eszletesebben ezt a esetet a 3. alfejezetben fogjuk elemezni. Egy m´asik ”rossz” eset fordulhat el˝o, ha a(z) (42) vizsg´alat eredm´eny´eu ¨l t¨obb ilyen i indexet kapunk (lasd. 8.2. alfejeztet).
Mivel m´ar tudjuk, hogyan kell kiv´alasztani a θ ´ert´eket, tegy¨ uk fel hogy xr x si = . xij >0 xij xrj min
Az ut´obbi azt jelenti, hogy az u ´j b´azisban
xr (θ) = 0, xj = θ ´es az Aj vektor az u ´j b´azisban az Ar vektor hely´ebe ker¨ ul. Teh´at az eredeti B = {As1 , As2 , . . . , Ar , . . . , Asm } b´azis helyett az u ´j B 0 = {As1 , As2 , . . . , Aj , . . . , Asm } b´azist kapjuk.
´ II. SZIMPLEX MODSZER
38
Most pedig ki kell sz´amolnunk a Q(x) c´el-f¨ uggv´eny u ´j ´ert´ek´et (azaz az x(θ) pontban):
Q(x(θ)) =
n X
P (x(θ)) j=1 = n X D(x(θ))
pj xj (θ) + p0 =
dj xj (θ) + d0
j=1
=
m X
i=1
m X
=
dsi xsi (θ) + dj θ + d0
i=1
psi (xsi − θxij ) + pj θ + p0
i=1
m X
m X psi xsi (θ) + pj θ + p0
=
dsi (xsi − θxij ) + dj θ + d0
i=1
=
m X
i=1 m X
psi xsi + p0 − θ(
dsi xsi + d0 − θ(
i=1
ahol
∆0j
=
m X
i=1 m X
psi xij − pj ) = dsi xij − dj )
P (x) − θ∆0j , D(x) − θ∆00j
i=1
m X
psi xij − pj ,
∆00j
i=1
=
m X
dsi xij − dj .
i=1
Amennyiben m´ar kider´ıtett¨ uk c´el-f¨ uggv´eny u ´j ´ert´ek´et, k´epesek vagyunk megbecs¨ ulni a Q(x(θ)) ´es Q(x) k¨oz¨otti k¨ ul¨onbs´eget: (43)
P (x) − θ∆0j −θ∆j (x) P (x) − = ... = , Q(x(θ)) − Q(x) = 00 D(x) − θ∆j D(x) D(x(θ))
ahol ∆j (x) =
∆0j
−
Q(x)∆00j
¯ ¯ 0 ¯ ∆ Q(x) ¯ ¯ ¯ j = ¯ 00 ¯. ¯ ∆j 1 ¯
A(z) (43) k´eplet lehet˝ov´e teszi v´alaszt adni arra a k´erd´esre, hogy vajon ´erdemes volt-e bevezetni a b´azisba az Aj vektort. T´enyleg, mivel θ > 0 (kor´abban a(z) 35. oldalon felt´etelezt¨ uk, hogy az x lehets´eges b´azismegold´as nem-degener´alt, azaz minden b´aziseleme nem-nulla ´ert´ek˝ u) ´es D(x(θ)) > 0 (D(x) > 0, ∀x ∈ S), ez´ert az Aj vektor a b´azisba val´o bevezet´ese (´es ez´altal az x lehets´eges cs´ ucspontb´ol az x(θ) cs´ ucspontba val´o ´atmenet) miatt a Q(x) c´el-f¨ uggv´eny ´ert´eke cs¨okken vagy n¨ovekszik att´ol f¨ ugg˝oen, hogy milyen el˝ojel˝ u a ∆j (x) determin´ans. Ha ∆j (x) < 0, akkor a Q(x) c´el-f¨ uggv´eny ´ert´eke n¨ovekszik, ha ∆j (x) > 0, akkor Q(x) cs¨okken. Nyilv´anval´o, hogy ha ∆j (x) = 0, a Q(x) c´el-f¨ uggv´eny ´ert´eke v´altozatlan marad. Eredm´enyeinket a k¨ovetkez˝o, az ”Optimalit´ asi krit´ erium”nak nevezett t´etelk´ent ¨osszegezhetj¨ uk
´ ´ ´ ´ AJA ´ 3. A SZIMPLEX MODSZER ALTAL ANOS SEM
39
II.4. T´ etel (Optimalit´ asi krit´ erium). Egy adott x lehets´eges b´azismegold´as akkor ´es csak akkor optim´alis, ha ∆j (x) ≥ 0, j = 1, 2, . . . , n. Nyilv´anval´o, ha dj = 0, j = 1, 2, . . . , n ´es d0 = 1, akkor ∆j (x) = ∆0j , j = 1, 2, . . . , n ´es a(z) II.4. T´etelb˝ol kapjuk a line´aris programoz´asi szimplex m´odszer optimalit´asi krit´erium´at.
3. A szimplex m´ odszer ´ altal´ anos s´ em´ aja Ebben az alfejezetben azt mutatjuk meg, hogyan kell haszn´alni a szimplex m´odszert a hiperbolikus programoz´asi feladat megold´as´ara. Itt ´es minden¨ utt a tov´abbiakban csak maximaliz´al´asi hiperbolikus programoz´asi feladattal foglalkozunk, mert a minimaliz´al´asi feladat megold´asa megfelel˝o maximaliz´al´asi feladatb˝ol kaphat´o (lasd. (13)). A szimplex m´odszer menete a k¨ovetkez˝o (1) Ha a megoldand´o hiperbolikus programoz´asi feladat nem kanonikus ´es nem normaliz´alt alak´ u, akkor a feladatot ´at kell alak´ıtani (l´asd. 1.4. fejezet) u ´gy, hogy kanonikus ´es norm´al alak´ u legyen. (2) Ha van lehet˝os´eg, keress¨ unk egy indul´o lehets´eges b´azismegold´ast. Ez lehet nagyon egyszer˝ u, ha eredetileg a feladatban csak ”≤” rel´aci´oj´ u felt´etelek szerepelnek, ´es a jobb oldali b vektorban minden elem nem-negat´ıv. Ilyenkor az ´atalak´ıt´askor bevezetett az u ´n. mesters´eges (lasd. 7. oldal) si v´altoz´okat haszn´alhatjuk b´azisv´altoz´okk´ent. Ha az indul´o lehets´eges b´azismegold´as ”manu´alis” el˝o´all´ıt´asa nem k¨onny˝ u feladat, akkor megfelel˝o m´odszert kell haszn´alnunk (l´asd. 6.1. ´es 6.2. alfejezeteket). (3) Ha az ¨osszes nem-b´azis xj , ∀j ∈ JN , v´altoz´okhoz tartoz´o ∆j (x) determin´ansok nem-negat´ıv ´ert´ek˝ uek, azaz ha
∆j (x) ≥ 0, ∀j ∈ JN ,
akkor az aktu´alis lehets´eges b´azismegold´as optim´alis. Ha van legal´abb egy negat´ıv ´ert´ek˝ u determin´ans ∆j (x), azaz ∃j : ∆j (x) < 0, j ∈ JN , akkor a negat´ıv ∆j (x) determin´anssal rendelkez˝o nem-b´azis v´altoz´okb´ol ki kell v´alasztani egyet (a megfelel˝o szab´alyokat k´es˝obb fogjuk t´argyalni, l´asd 8.1. alfejezet). A kiv´alsztott nem-b´azis v´altoz´ot bevezetend˝ o v´ altoz´ onak szokt´ak nevezni, ´es a hozz´a tartoz´o Aj vektort bevezetend˝ o vektornak nevezik (angolul - ”entering variable” ´es ”entering column-vector ”).
´ II. SZIMPLEX MODSZER
40
(4) A kiv´alsztott v´altoz´ot ´es a megfelel˝o Aj vektort be kell vezetni a b´azisba, ´es az u ´j b´azisban ki kell sz´amolni az u ´j ∆j (x) determin´ansokat. Majd vissza a 3. l´ep´eshez. Most pedig vizsg´aljuk meg r´eszletesseben a 3. l´ep´est. A kor´abban megtett felt´etelez´es¨ unk szerint x nem-degener´alt lehets´eges b´azismegold´as, amelynek megfelel a B = (As1 , As2 , . . . , Asm ) b´azis. Az el˝oz˝o alfejezetnek megfelel˝oen jel¨olje JB azon Aj vektorok j index´enek a halmaz´at, amelyek a b´azisban vannak, azaz JB = {s1 , s2 , . . . , sm } Ha J = {1, 2, . . . , n}, akkor JN = J \ JB jel¨oli a nem-b´azis vektorok indexhalmaz´at. Az x lehets´eges b´azismegold´as az optimalit´asra val´o vizsg´alata azzal kezd˝odik, hogy ki kell sz´amolnunk a k¨ovetkez˝o ´ert´ekeket (az adott sorrendben): (1) ∆0j , ∆00j , j = 1, 2, . . . , n, (2) Q(x) c´el-f¨ uggv´eny ´ert´ek´et az u ´j x pontban, majd (3) ∆j (x) determin´ansokat: ¯ ¯ 0 ¯ ∆j Q(x) ¯ ¯ , j = 1, 2, . . . , n. ∆j (x) = ¯¯ 00 ∆j 1 ¯
A kisz´amolt ∆j (x) determin´ansok elemz´ese sor´an a k¨ovetkez˝o esetek fordulhatnak el˝o: (1) Minden nem-b´azis index˝ u ∆j (x) determin´ans nem-negat´ıv, azaz ∆j (x) ≥ 0, ∀j ∈ JN ; (2) L´etezik legal´abb egy olyan nem-b´azis j0 index, hogy ∆j0 (x) negat´ıv, ´es az ¨osszes m darab xij0 , i = 1, 2, . . . , m; egy¨ utthat´o nem-pozit´ıv, azaz J0 = {j : j ∈ JN ; ∆j (x) < 0} 6= ∅; ´es J0− = {j : j ∈ J0 ; xij ≤ 0, ∀i = 1, 2, . . . , m} 6= ∅; (3) L´etezik legal´abb egy olyan nem-b´azis j0 index, hogy ∆j0 (x) utthat´o negat´ıv, ´es minden ilyen j0 sz´am´ara legal´abb egy xij0 egy¨ pozit´ıv ´ert´ek˝ u, azaz J0 = {j : j ∈ JN ; ∆j (x) < 0} 6= ∅; ´es J0− = {j : j ∈ J0 ; xij ≤ 0, ∀i = 1, 2, . . . , m} = ∅;
´ ´ ´ ´ AJA ´ 3. A SZIMPLEX MODSZER ALTAL ANOS SEM
41
Az 1. esetben az optim´alit´asi krit´eriumnak megfelel˝oen (l´asd. II.4. T´etel), x vektor optim´alis megold´asa a(z) (30)-(33) hiperbolikus programoz´asi feladatnak. Befejezt¨ uk, a feladat meg van oldva. II.3. Megjegyz´ es. Ha ∆j (x) determin´ansok k¨oz¨ott van legal´abb egy nulla ´ert´ek˝ u, akkor ez azt jelenti, hogy az adott hiperbolikus programoz´asi feladatnak t¨obb optim´alis megold´asa van (l´asd. (43) k´epletet). A 2. esetben az eredeti (30)-(33) hiperbolikus programoz´asi feladat S lehets´eges halmaza nem-korl´atos, ezt az esetet pedig a vizsg´alatunkb´ol kiz´artuk (l´asd. 31. oldalt). A szimplex m´odszer nem rendelkezik olyan eszk¨oz¨okkel, amlyek lehet˝ov´e tenn´enek korl´atlan halmazon optimaliz´alni t¨ort-alak´ u c´elf¨ uggv´enyt. T´enyleg, ebben az esetben l´etezik legal´abb egy olyan j0 index, hogy ∆j0 (x) < 0 , ´es minden m darab xij0 egy¨ utthat´o nem-pozit´ıv, azaz xij0 ≤ 0, i = 1, 2, . . . , m. A(z) (41) k´epletnek megfelel˝oen ez pedig azt jelenti, hogy θ ´ert´eknek nincsen fels˝o korl´atja, ´es emiatt a θ ´ert´ek tetsz˝oleges nagy lehet. Ahogy ez k¨ovetkezik a(z) (39) k´epletb˝ol, ilyenkor az x(θ) u ´j vektor marad a lehets´eges a θ ´ert´ek nagys´ag´at˝ol f¨ uggetlen¨ ul, ´es ez´ert tartalmazhat tetsz˝olegesen nagy xj (θ) elemeket. Az ut´obbi pedig azt jelenti, hogy az S lehets´eges halmaz korl´atlan. Itt a szimplex m´odszert meg kell szak´ıtani, mert a m´odszer ilyen esetben nem alkalmazhat´o. II.4. Megjegyz´ es. A 2.eset el˝ofordul´asa nem jelenti azt, hogy az adott hiperbolikus programoz´asi feladat elvileg (definici´o szerint) nem megoldhat´o. T´enyleg, mivel Q(x) c´el-f¨ uggv´eny t¨ort alak´ u, ez´ert lehet, hogy v´egtelen sok lehets´eges x pontban az ´ert´eke v´eges, azaz a lim
Q(x)
x→∞ x∈S
´ert´eke lehet v´eges sz´am. Meg kell jegyezn¨ unk, hogy a szimplex m´odszer a korl´atlan lehets´eges halmazra val´o adaptal´as´aval t¨obb cikkben k´ıs´erleteztek a kutat´ok az 1970-es ´evekben ´es k´es˝obb (l´asd. [29], [96]), de, sajnos nem nagy sikerrel. A 3. esetben l´etezik olyan x(θ) u ´j lehet´eseges b´azismegold´as, hogy Q(x(θ)) > Q(x). T´enyleg, a megtett felt´etelez´eseknek megfelel˝oen az adott esetben megtal´alhat´o legal´abb egy olyan nem-b´azis j index, hogy J0 6= ∅ ´es J0− = ∅. Akkor a(z) (41) tartom´anyb´ol k¨ovetkezik, hogy a θ ´ert´eke fel¨ ulr˝ol korl´atos, ´es a maxim´alis ´ert´eke meghat´arozhat´o a(z) (42) k´epletb˝ol. Mivel x(θ) vektor a(z) (30)-(33) hiperbolikus programoz´asi feladat lehets´eges megold´asa, ´es D(x) > 0, ∀x ∈ S, ebb˝ol k¨ovetkezik, hogy D(x(θ)) > 0. Az ut´obbi pedig azt jelenti, hogy a nem-¨ ures J0 halmazb´ol kiv´alaszthatunk olyan j0
´ II. SZIMPLEX MODSZER
42
indexet (l´asd. (43) k´eplet), hogy −θ∆j0 (x) > 0. D(x(θ)) Ebb˝ol k¨ovetkezik, hogy ha az Aj0 vektort vezetj¨ uk be a b´azisba, akkor olyan x(θ) u ´j b´azismegold´ast fogunk kapni, amelyn´el Q(x(θ)) > Q(x). Q(x(θ)) − Q(x) =
Teh´at a 3. esetben az x aktu´alis lehets´eges cs´ ucspontb´ol ´atugrottunk egy szomsz´edos x(θ) lehets´eges cs´ ucsbontba, amelyben c´el-f¨ uggv´eny ´ert´eke ”jobb” (a maximaliz´al´asi feladatn´al ez azt jelenti, hogy ”nagyobb”). Az u ´j x(θ) pont el˝o´all´ıt´as´at szimplex-iter´ aci´ onak szokt´ak nevezni. Mivel az S lehets´eges megold´asok halmaza korl´atos, ez´ert a cs´ ucspontok sz´ama v´eges. Az ut´obbi biztos´ıtja azt, hogy v´eges sz´am´ u szimplex-iter´aci´o ut´an kapjuk az 1. vagy 2. esetet.
4. Szimplex t´ abla A szimplex m´odszer v´egrehajt´asakor a megoldand´o hiperbolikus programoz´asi feladathoz tartoz´o adatokat az u ´n. szimplex t´ abl´ azatban (angolul – simplex tableau, oroszul – ”simpleksna tablica”) szokt´ak tartani. Az ilyen szimplex t´abla megtekinthet˝o a(z) 1. t´abl´azatban.
B A s1 A s2 .. .
PB p s1 p s2 .. .
DB d s1 d s2 .. .
A sm
p sm d sm P (x) D(x) Q(x)
p0 d0 xB x s1 x s2 .. . x sm
p1 d1 A1 x11 x21 .. .
p2 d2 A2 x12 x22 .. .
xm1 xm2 ∆01 ∆02 ∆001 ∆002 ∆1 (x) ∆2 (x)
··· ··· ··· ··· ··· .. .
pn dn An x1n x2n .. .
··· ··· ··· ···
xmn ∆0n ∆00n ∆n (x)
1. T´ abl´ azat. Szimplex t´abl´azat.
A line´aris programoz´asi szimplex t´abl´aval szemben a legfontosabb k¨ ul¨onbs´egek itt a k¨ovetkez˝ok: (1) Ha line´aris esetben a ”B”-vel j¨el¨olt oszlop ut´an k¨ovetkezik a ”PB ” ´es ”xB ” vektor, akkor a hiperbolikus esetben nek¨ unk nyilv´an kell tartanunk a ”DB ” oszlopot is.
´ OK ´ KOZ ¨ OTTI ¨ 5. AZ ITERACI KAPCSOLAT
43
(2) Ha line´aris feladat eset´en csak p vektorra van sz¨ uks´eg, akkor a hiperbolikus esetben a p vektort tartalmaz´o fels˝o sor alatt m´eg a d vektort kell tartanunk. (3) V´eg¨ ul line´aris programoz´asi feladatban csak egy ∆-sorra van sz¨ uks´eg, viszont a hiperbolikus programoz´asi feladat eset´en h´arom ∆sorra van sz¨ uks´eg¨ unk, ´es ez´ert a szimplex t´abla als´o r´esz´en 3 darab ∆-sor tal´alhat´o.
5. Az iter´ aci´ ok k¨ oz¨ otti kapcsolat Az egyik b´azisr´ol a m´asik b´azisra val´o ´att´er´essel kapcsolatos m˝ uveleteket szimplex transzfom´ aci´ onak (ang. pivot transformation) szokt´ak nevezni. Most megvizsg´aljuk, hogy az egyik b´azisr´ol a m´asikra val´o ´att´er´es sor´an hogyan transzfom´al´odik a szimplex t´abl´azat. Ennek a transzform´aci´onak a l´enyege l´athat´o a(z) 2. t´abl´azatban. A t´abl´azatban az xrk -val jel¨olt¨ uk az
xij
···
xik
.. .
···
.. .
xrj
···
xrk
xrj xik xrk
···
0
.. .
···
.. .
xrj xrk
···
1
xij − −→
2. T´ abl´ azat. Transzform´aci´os ´atalak´ıt´asok a szimplex t´abl´azatban.
u ´n. gener´ al´ o elemet (ang. pivot element), u ´gy hogy a b´azisba bevezetend˝o v´altoz´o indexe k ´es a b´azisban lev˝o ´es cser´elend˝o vektor indexe sr , azaz az Asr vektor b´azisban val´o pozici´oja r. II.9. Defin´ıci´ o. A szimplex t´abl´azatban a gener´al´o elem sor´at gener´ al´ o sornak, a gener´al´o elem oszlop´at pedig gener´ al´ o oszlopnak szokt´ak nevezni (angolul – pivot row ´es pivot column, oroszul – ”generiru»wa stroka” ´es ”generiru»wi½ stolbec”). A t´abl´azatban szerepl˝o ´atalak´ıt´asok a k¨ovetkez˝ok: (1) A gener´al´o sorhoz tartoz´o ¨osszes elemet osztjuk az xrk ( xrk 6= 0 ) gener´al´o elemmel. Ennek k¨ovetkezt´eben az xrk u ´j ´ert´eke az 1. Minden m´as eleme ennek a sornak xrj /xrk ´ert´eket kap j = 1, 2, . . . , n.
´ II. SZIMPLEX MODSZER
44
(2) Minden m´as sorhoz tartoz´o ¨osszes elem u ´j ´ert´eke meghat´arozhat´o a k¨ovetkez˝o k´epletb˝ol xij − (xrj xik )/xrk . (3) A gener´al´o oszlop minden m´as eleme (azaz a gener´al´o sorhoz nem tartoz´o elemekr˝ol van sz´o) u ´j ´ert´eke 0, azaz x0ik = xik − (xrk xik )/xrk = 0.
6. A szimplex m´ odszer ind´ıt´ asa Amikor az el˝oz˝o r´eszben t´argyaltuk a szimplex m´odszer elm´eleti h´atter´et, felt´etelezt¨ uk, hogy van egy x indul´o lehets´eges b´azismegold´as. Ahogy m´ar eml´ıtett¨ uk (l´asd. 39. oldal), bizonyos esetekben az indul´o b´azismegold´as k¨onnyen el˝o´all´ıthat´o. Pl. ha az A m´atrixban van m darab olyan Aj oszlopvektor, amelyekb˝ol ¨ossze lehet ´all´ıtani egy (m × m) m´eret˝ u egys´egm´atrixot. Vil´agos, hogy a gyakorlatban ilyen feladatok viszonylag ritk´an fordulnak el˝o. Nek¨ unk pedig meg kell tanulnunk, hogyan kell ilyenkor kezelni az ´altal´anos A m´atrixot. Miel˝ott ´att´er¨ unk az ´altal´anos esetre, tekints¨ unk m´eg meg egy ”k¨onny˝ u” esetet. Tegy¨ uk fel, hogy a megoldand´o hiperbolikus programoz´asi feladat a f˝o felt´etelrendszer´eben tartalmaz csak ” ≤ ” rel´aci´oj˝ u felt´eteleket, azaz n X Aj xj ≤ b, xj ≥ 0, j = 1, 2, . . . , n, j=1
´es a b = (b1 , b2 , . . . , bm )T vektor minden bi , i = 1, 2, . . . , m, eleme nemnegat´ıv. Ebben az esetben a kanonikus alakba val´o ´atalak´ıt´askor a feladatba be kell vezetn¨ unk m darab mesters´eges v´altoz´ot: xn+1 , xn+2 , . . . , xn+m , (l´asd. 1.4. szekci´o, 7. oldal). Ezekhez a mesters´eges v´altoz´okhoz tartozik m darab An+1 , An+2 , . . . , An+m , egys´egvektor, amelyek (m × m) m´eret˝ u I = (An+1 , An+2 , . . . , An+m ) egys´egm´atrixot alkotnak, ahol i
An+i
z }| { = (0, 0, . . . , 0, 1, 0, 0, . . . , 0)T , i = 1, 2, . . . , m, | {z } m
´ ´ 6. A SZIMPLEX MODSZER IND´ITASA
azaz
An+1
=
1 0 0 .. . 0
, An+2 =
0 1 0 .. . 0
45
, . . . , An+m =
0 0 0 .. . 1
´Igy indul´o b´azismegold´ask´ent haszn´alhatjuk a k¨ovetkez˝o vektort:
x = (0, 0, . . . , 0, b1 , b2 , . . . , bm )T . | {z } n
II.5. Megjegyz´ es. Az ilyen m´odon bevezetett xn+1 , xn+2 , . . . , xn+m mesters´eges v´altoz´ok a c´elf¨ uggv´enyben nem kapnak helyet, azaz ¨osszes az pj ´es dj , j = n + 1, n + 2, . . . , n + m, nulla ´ert´ek˝ u. ´Igy kapjuk az ´atalak´ıtott (44)-(46) feladatot.
(44)
Q(x) =
n X
j=1 n X
pj x j +
dj xj +
(46)
j=n+1 n+m X
0xj + p0 −→ max( or min) 0xj + d0
j=n+1
j=1
a k¨ovetkez˝o felt´etelek a11 x1 + a21 x1 + (45) .. . a x + m1 1
n+m X
mellett . . . +a1n xn . . . +a2n xn .. .
+xn+1 +xn+2
. . . +amn xn
= b1 = b2 .. . +xn+m = bm
xj ≥ 0, j = 1, 2, . . . , n + m.
Nyilv´anval´ov´a v´alik, hogy a(z) (44)-(46) hiperbolikus programoz´asi feladatnak megfelel a(z) 3. t´abl´azatban szerepl˝o indul´o szimplex t´abla. II.6. Megjegyz´ es. Vegy¨ uk tudom´asul, hogy a(z) 3. t´abl´azatban az xij egy¨ utthat´ok helyett (azaz xij egy¨ utthat´okk´ent) szerepelnek az eredeti aij koefficiensek. Ez az´ert van ´ıgy, mert az indul´o lehets´eges b´azisban szerepl˝o An+i , i = 1, 2, . . . , m, vektorok egys´egvektorok, ´es emiatt m X Aj = An+i aij , j = 1, 2, . . . , n. i=1
Sajnos az ´altal´anos esteben az indul´o lehets´eges b´azismegold´as el˝o´all´ıt´asa ´ nem trivi´alis feladat. Eppen ez´ert a fejezet k¨ovetkez˝o k´et r´esz´eben mi k´et megfelel˝o m´odszert fogunk t´argyalni. Ezekb˝ol a m´odszerekb˝ol az els˝o az u ´n. Nagy M-m´ odszer (angolul – ”Big M -method ”, oroszul – ”M -metod” ) ´es
´ II. SZIMPLEX MODSZER
46
B An+1 An+2 .. . An+m
P B DB x B 0 0 b1 0 0 b2 .. .. .. . . . 0 0 bm P (x) D(x) Q(x)
p1 d1 A1 a11 a21 .. .
··· ··· ··· ··· ··· .. .
pn dn An a1n a2n .. .
am1 ∆01 ∆001 ∆1 (x)
··· ··· ··· ···
amn ∆0n ∆00n ∆n (x)
An+1 1 0 .. .
··· ··· ··· ··· ··· .. .
An+m 0 0 .. .
0 0 0 0
··· ··· ··· ···
1 0 0 0
0 0
0 0
3. T´ abl´ azat. Indul´o szimplex t´abla a(z) (44)-(46) feladathoz.
a m´asodik az u ´n. K´etf´ azis´ u szimplex m´ odszer (ang.– ”Two-phase simplex method ”, oroszul – ”Dvuh-fazisny½ simpleksny½ metod”). Ez a k´et m´odszer lehet˝os´eget ad az indul´o lehets´eges b´azismegold´as k¨onny˝ u ´es probl´emamentes meghat´aroz´as´ara, ´es mindkett˝o alkalmazhat´o tetsz˝oleges hiperbolikus programoz´asi feladatn´al. Meg kell jegyezn¨ unk, hogy a line´aris programoz´asban haszn´alt Nagy Mm´odszer ´es K´etf´azis´ u szimplex m´odszer line´aris v´altozat´anak t¨obb speci´alis implement´aci´oja van (lasd. pl.[32]). Ezeknek a speci´alis line´aris programoz´asi v´altozatoknak a t¨obbs´eg´et k¨onnyen ki lehet terjeszteni a hiperbolikus programoz´asi feladatra is.
6.1. Nagy M -m´odszer A m´odszer alkalmaz´asakor az eredeti normaliz´alt kanonikus alak´ u (30)(33) hiperbolikus programoz´asi feladat f˝o felt´etelrendszer´eben minden i-dik felt´etelbe be kell vezetni egy-egy mesters´eges xn+i (i = 1, 2, . . . , m) v´altoz´ot, ´ıgy ¨osszesen m darab xn+1 , xn+2 , . . . , xn+m mesters´eges v´altoz´o ker¨ ul a felt´etelrendszerbe. Ezenk´ıv¨ ul ezeket a mesters´eges v´altoz´okat be kell vezetni a P (x) f¨ uggv´enybe is −M egy¨ utthat´oval. ´Igy, az eredeti normaliz´alt kanonikus alak´ u (30)-(33) hiperbolikus programoz´asi feladat helyett kapjuk a k¨ovetkez˝o M-feladatot [42]: P (x) − M (47)
(48)
˜ Q(x) = n X j=1
m X i=1
D(x)
xn+i −→ max
aij xj + xn+i = bi , i = 1, 2, . . . , m,
´ ´ 6. A SZIMPLEX MODSZER IND´ITASA
47
xj ≥ 0, j = 1, 2, . . . , n + m,
(49)
ahol M egy tetsz˝olegesen nagy pozit´ıv sz´amot jel¨ol (ez a sz´am nem ig´enyel semmif´ele konkr´et numerikus ´ert´eket, csak u ´gy kell kezeln¨ unk, hogy ez nagyon nagy pozit´ıv sz´am). Tov´abb´a az ilyen m´odon el˝o´all´ıtott M -feladatn´al az indul´o lehets´eges b´azismegold´ask´ent haszn´alhatjuk a k¨ovetkez˝o x = (0, 0, . . . , 0, b1 , b2 , . . . , bm ), | {z } n
vektort. Teh´at a szimplex m´odszer ind´ıt´as´ahoz sz¨ uks´eges lehets´eges b´azismegold´as megvan, szimplex m´odszer ezen az M-feladaton m´ar ind´ıthat´o. Nyilv´anval´o, hogy az indul´o szimplex t´abl´aban ∆0j ∆00j
m X = (−M )aij − pj
=
∆j (x) =
i=1 m X
0aij − dj
i=1 ∆0j −
= −M
m X
aij − pj ,
i=1
= −dj ,
Q(x)∆00j ,
ahol j = 1, 2, . . . , n, ´es Q(x) = (p0 − M
m X
xn+i )/d0 .
i=1
Tegy¨ uk fel, hogy x ˜ = (˜ x1 , x ˜2 , . . . , x ˜n , x ˜n+1 , . . . , x ˜n+m )T optim´alis megold´asa a(z) (47)-(49) M -feladatnak. A k¨ovetkez˝o esetek fordulhatnak el˝o II.5. T´ etel. Ha x ˜ vektor optim´alis megold´asa a(z) (47)-(49) M -feladatnak ´es x ˜n+i = 0, i = 1, 2, . . . , m, azaz x ˜ = (x˜1 , x ˜2 , . . . , x ˜n , 0, 0, . . . , 0), | {z } m
x∗
akkor = (˜ x1 , x ˜2 , . . . , x ˜n datnak.
)T
optim´alis megold´asa az eredeti (30)-(33) fela-
II.6. T´ etel. Ha x ˜ vektor optim´alis megold´asa a(z) (47)-(49) M -feladatnak, ´es a mesters´eges v´altoz´ok k¨oz¨ott van legal´abb egy pozit´ıv ´ert´ek˝ u, azaz ∃ i 0 : x ˜n+i0 > 0, 1 ≤ i0 ≤ m, akkor az eredeti (30)-(33) feladat nem megoldhat´o, mert az S lehets´eges halmaza u ¨res, azaz S = ∅.
´ II. SZIMPLEX MODSZER
48
II.7. Megjegyz´ es. Az M -feladat SM lehets´eges halmaza nem-¨ ures mert tartalmaz legal´abb egy x = (0, 0, . . . , 0, b1 , b2 , . . . , bm ) | {z } n
´ vektort, amely kiel´eg´ıt´ı a(z) (48) ´es (49) felt´eteleket. Eppen ez´ert az az eset, amikor az M -feladat az´ert nem oldhat´o meg, mert az SM lehets´eges halmaza u ¨res, nem fordulhat el˝o. II.8. Megjegyz´ es. Az M -feladatban c´el-f¨ uggv´enyt nem csak a(z) (47) alakban haszn´alhatjuk, hanem a k¨ovetkez˝o alakokban is: ˜ Q(x) =
P (x) −→ max m X xn+i D(x) + M i=1
vagy
P (x) − M ˜ Q(x) = D(x) + M
m X
xn+i
i=1 m X
−→ max .
xn+i
i=1
II.9. Megjegyz´ es. Az M -feladatban szerepl˝o m darab mesters´eges v´altoz´ora nem mindig van sz¨ uks´eg. Nyilv´anval´o, hogy ezek a mesters´eges v´altoz´okra csak az´ert van szuks´eg, hogy a m´atrixban legyen m darab egys´egvektor. Term´esztesen ha a m´atrixban m´ar van n´eh´any egys´egvektor, akkor csak annyi mesters´eges v´altoz´ora van sz¨ uks´eg, hogy az egys´egvektorok sz´ama pontosan legyen m. Teh´at ha az eredeti hiperbolikus programoz´asi feladat megoldhat´o, akkor a Nagy M-m´odszer haszn´alat´aval meghat´arozhatjuk a feladat optim´alis megold´as´at. Ha viszont az eredeti hiperbolikus programoz´asi feladat nem megoldhat´o, mert lehets´eges halmaza u ¨res vagy a c´el-f¨ uggv´eny fel¨ ulr˝ol nem korl´atos, akkor a Nagy M-m´odszer jelezni fogja ezt. Az M -feladathoz tatoz´o indul´o szimplex t´abla a 4. t´abl´azatban megtekinthet˝o. Tekints¨ uk a k¨ovetkez˝o numerikus p´eld´at. Adott a k¨ovetkez˝o ´altal´anos hiperbolikus programoz´asi feladat. Q(x) =
10x1 + 5x2 + 2 P (x) = −→ max D(x) 1x1 + 4x2 − 4
´ ´ 6. A SZIMPLEX MODSZER IND´ITASA
B An+1 An+2 .. .
PB −M −M .. .
An+m −M
DB x B 0 b1 0 b2 .. .. . . 0 bm
p1 d1 A1 a11 a21 .. .
··· ··· ··· ··· ···
pn dn An a1n a2n .. .
−M 0 An+1 1 0 .. .
··· ··· ··· ··· ···
−M 0 An+m 0 0 .. .
am1
···
amn
0
···
1
··· ··· ···
∆0n ∆00n ∆n (x)
0 0 0
··· ··· ···
0 0 0
∆01 ∆001 ∆1 (x)
P (x) D(x) Q(x)
49
4. T´ abl´ azat. Nagy M -m´odszer – Inndul´o szimplex t´abla.
a k¨ovetkez˝o felt´etelek mellett x1 − 3x2 ≥ −30 x1 + 2x2 ≥ 2x1 −
20
x2 ≤
10
x1 ≥ 0, x2 ≥ 0 . Hat´arozzuk meg a feladat megold´as´ahoz sz¨ uks´eges indul´o lehets´eges b´azismegold´ast. Els˝o l´ep´esben alak´ıtsuk ´at a feladatot standard alakba:
x1 − 3x2 ≥ −30 x1 + 2x2 ≥ 20 2x1 − x2 ≤ 10
30 ≤ −20 ≤ 10
−x1 + 3x2 ≤ ⇒
−x1 − 2x2 2x1 −
x2
Most konvert´aljuk a felt´eteleket kanonikus alakra. Ehhez vezess¨ unk be sz¨ uks´eges ”slack” v´altoz´okat:
30 ≤ −20 ⇒ ≤ 10
−x1 +3x2 ≤
−x1 +3x2 +x3
−x1 −2x2
−x1 −2x2
2x1
−x2
2x1
−x2
30 = −20 = 10 =
+x4 +x5
V´eg¨ ul norm´aliz´aljuk a felt´etleket, ehhez szorozzuk meg a m´asodik felt´etel mindk´et oldal´at (−1)-gyel:
´ II. SZIMPLEX MODSZER
50
−x1 +3x2 +x3 −x4
x1 +2x2 −x2
2x1
+x5
= 30 = 20 = 10
´Igy a k¨ovetkez˝o norm´al alak´ u kanononikus feladatot kapjuk: Q(x) =
P (x) 10x1 + 5x2 + 2 = −→ max D(x) 1x1 + 4x2 − 4
a k¨ovetkez˝o felt´etelek mellett −x1 +3x2 +x3 x1 +2x2 2x1
= 30 −x4
−x2
= 20 +x5 = 10
x1 ≥ 0, x2 ≥ 0 x3 ≥ 0, x4 ≥ 0 x5 ≥ 0 A kapott feladatot helyettes´ıts¨ uk a k¨ovetkez˝o M -feladattal: 10x1 + 5x2 − M x6 + 2 P˜ (x) ˜ = −→ max Q(x) = D(x) 1x1 + 4x2 − 4 a k¨ovetkez˝o felt´etelek mellett −x1 +3x2 +x3 x1 +2x2 2x1
−x2
= 30 −x4
+x6 = 20 +x5
= 10
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0, x5 ≥ 0, x6 ≥ 0. Az ilyen m´odon kapott M -feladatn´al indul´o lehets´eges b´azismegold´ask´ent haszn´alhatjuk az x = (0, 0, 0, 30, 0, 10, 20) vektort, amelyiknek megfelel a k¨ovetkez˝o b´azis: B = (A3 , A6 , A5 ).
6.2. K´etf´azis´ u szimplex m´odszer A k´etf´azis´ u szimplex m´odszernek csak az els˝o f´azisa jelenti az indul´o lehets´eges b´azis keres´es´et, maga a m´odszer m´ar az eg´esz hiperbolikus programoz´asi feladat megold´as´ara szolg´al. A m´odszer els˝o f´azis´aban a megoldand´o norm´al alak´ u kanonikus feladat f˝o felt´etelrendszer´eben be kell vezetn¨ unk az xn+1 , xn+2 , . . . , xn+m mesters´eges v´altoz´okat. Ugyan´ ugy, mint az el˝oz˝o r´eszben le´ırt Nagy M-m´odszer eset´en, most is az a c´elunk, hogy a m´atrixban legyen m darab egys´egvektor. Ha
´ ´ 6. A SZIMPLEX MODSZER IND´ITASA
51
be vannak bezetve a mesters´eges v´altoz´ok, akkor a k¨ovetkez˝o line´aris programoz´asi feladatot kell megoldanunk: (50)
Z(x) =
m X
xn+i −→ min
i=1
a k¨ovetkez˝o felt´etelek mellett n X aij xj + xn+i = bi , i = 1, 2, . . . , m, (51) j=1
(52)
xj ≥ 0, j = 1, 2, . . . , n + m.
Tekints¨ uk ezt a(z) (50)-(52) Els˝ o f´ azis´ u feladatot (ang. – ”Phase I problem”). Mivel az x = (0, 0, . . . , 0, b1 , b2 , . . . , bm )T | {z } n
vektor kiel´eg´ıti a(z) (51)-(52) felt´eteleket, ´es (50) c´el-f¨ uggv´eny alulr´ol korl´atos, ebb˝ol k¨ovetkezik, hogy a(z) (50)-(52) feladat megoldhat´o.
Tegy¨ uk fel, hogy az x0 = (x01 , x02 , . . . , x0n , x0n+1 , . . . , x0n+m )T vektor a(z) (50)-(52) optim´alis megold´asa. Ilyenkor a k¨ovetkez˝o k´et lehets´eges eset fordulhat el˝o: (1) Z(x0 ) = 0, azaz x0n+i = 0, ∀ i = 1, 2, . . . , m. Ebben az esetben x00 = (x01 , x02 , . . . , x0n )T vektor az eredeti hiperbolikus programoz´asi feladat lehets´eges b´azismegold´asa. A m´odszer m´asodik f´azis´aban x00 vektor haszn´alat´aval ind´ıtjuk a szimplex m´odszert. (2) Z(x0 ) > 0, azaz ∃ i0 : x0n+i0 > 0, 1 ≤ i0 ≤ m. Ilyenkor az eredeti hiperbolikus programoz´asi feladat nem megoldhat´o az´ert, mert lehets´eges halmaza u ¨res, azaz S = ∅ . Tekints¨ uk a k¨ovetkez˝o numerikus p´eld´at. Adott a k¨ovetkez˝o ´altal´anos hiperbolikus programoz´asi feladat. Q(x) =
P (x) 5x1 + 1x2 + 10 = −→ max D(x) 4x1 + 2x2 + 15
a k¨ovetkez˝o felt´etelek mellett x1 x1
≤ 30 ≥
5
2x1 + x2 = 10 x1 ≥ 0, x2 ≥ 0 .
´ II. SZIMPLEX MODSZER
52
Hat´arozzuk meg a feladat megold´as´ahoz sz¨ uks´eges indul´o lehets´eges b´azismegold´ast. Alak´ıtsuk ´at a feladatot kanonikus alakra, ehhez vezess¨ unk be megfelel˝o nem-negat´ıv mesters´eges v´altoz´okat: x1 +x3 = 30 x1 ≤ 30 x1 −x4 = 5 x1 ≥ 5 ⇒ 2x1 + x2 = 10 2x1 + x2 = 10 A kapott felt´etelrendszerben m´ar van k´et darab egys´egvektor: 1 0 A2 = 0 ´es A3 = 0 0 1
A hi´anyz´o (0, 1, 0)T egys´egvektor p´otl´as´ara be kell vezetni m´eg egy mesters´eges v´altoz´ot, ´ıgy a felt´etelrendszer v´egleges form´aja a k¨ovetkez˝o: = 30 x1 −x4 +x5 = 5 2x1 +x2 = 10 V´eg¨ ul ´all´ıtsuk el˝o az els˝o f´azis´ u line´aris programoz´asi feladatot: x1
+x3
Z(x) = x5 −→ min a k¨ovetkez˝o felt´etelek mellett x1 +x3 x1 2x1 +x2
= 30 −x4 +x5 =
5
= 10
x1 ≥ 0, x2 ≥ 0 x3 ≥ 0, x4 ≥ 0 x5 ≥ 0 A kapott feladatn´al az indul´o lehets´eges b´azismegold´ask´ent haszn´alhatjuk az x = (0, 10, 30, 0, 5) vektort, amelyiknek megfelel a k¨ovetkez˝o b´azis: B = (A3 , A5 , A2 ).
7. A szimplex t´ abla kompakt form´ aja A szimplex m´odszer elm´eleti h´atter´enek vizsg´alata sor´an megtekintett szimplex t´abla (l´asd. 1. t´abl´azat) a bels˝o r´esz´eben tartalmazza a feladathoz tartoz´o ¨osszes adatot. Amint kider¨ ult az el˝oz˝o k´et alfejezetben, a b´azishoz tartoz´o vektoroknak megfelel˝o oszlopokban a szimplex t´abla tartalmazza az (m × m) m´eret˝ u egys´eg-matrixot. Nyilv´anval´o, hogy ez az egys´egm´atrix az egyik iter´aci´ob´ol a m´asikba val´o m´asol´asa felesleges m˝ uvelet, ez´ert a
´ ´ 7. A SZIMPLEX TABLA KOMPAKT FORMAJA
53
gyakorlatban ´es term´esztesen a sz´am´ıt´og´epes k´odokban haszn´alni szokt´ak az u ´n. kompakt szimplex t´ abl´ at, amely nem tartalmaz egys´egm´atrixot (l´asd. 5. t´abl´azat).
xB b1 b2 .. .
p1 d1 A1 a11 a21 .. .
p2 d2 A2 a12 a22 .. .
··· ··· ··· ··· ··· .. .
pn dn An a1n a2n .. .
An+m bm
am1
am2
···
amn
P (x) D(x) Q(x)
∆01 ∆001 ∆1 (x)
∆02 ∆002 ∆2 (x)
··· ··· ···
∆0n ∆00n ∆n (x)
B An+1 An+2 .. .
5. T´ abl´ azat. Kompakt szimplex t´abla.
Most megviszg´aljuk, hogy az egyik b´azisr´ol a m´asikra val´o ´att´er´es sor´an hogyan transzform´al´odik a kompakt szimplex t´abla (l´asd. 6. t´abl´azat). A transzform´aci´o a k¨ovetkez˝o l´ep´esekb˝ol ´all: (1) Az xrk gener´al´o elem hely´ere annak a reciproka ker¨ ul, azaz xrk ⇒ 1/xrk m´egpedig xrk 6= 0. (2) A gener´al´o sor t¨obbi elem´et osztjuk az xrk gener´al´o elemmel: xrj ⇒ xrj /xrk , j = 1, 2, . . . , n, j 6= k. (3) A gener´al´o oszlop t¨obbi elem´et osztjuk (−xrk ) -val, ´ıgy xik ⇒ −xik /xrk , ∀i = 1, 2, . . . , m, i 6= r . (4) V´eg¨ ul a gener´al´o sorhoz ´es gener´al´o oszlophoz nem tartoz´o elemek sz´am´ara xij − (xrj xik )/xrk .
´ II. SZIMPLEX MODSZER
54
xij
···
xik
.. .
···
.. .
xrj
···
xrk
xrj xik xrk
···
.. .
···
.. .
xrj xrk
···
1 xrk
xij − −→
−
xik xrk
6. T´ abl´ azat. Szimplex transzform´aci´o kompakt szimplex t´abl´aban
Szok´asos jel¨ol´esek haszn´alat´aval ´ırjuk le a transzform´aci´os k´epleteket:
(53)
x0ij
1 , xrk xij − , xrk = xij , xrk xrj xik xij − , xrk
j = k, i = r; j = k, i = 1, 2, . . . , m, i 6= r; j = 1, 2, . . . , n, j 6= k, i = r; i = 1, 2, . . . , m, i 6= r, j = 1, 2, . . . , n, j 6= k.
Vegy¨ unk ´eszre, hogy a ”sz´eles” szimplex t´abla oszlopaiban mindig ugyanazok az Aj oszlopvektorok szerepelnek v´altozatlan sorrendben. Ezzel szemben a kompakt szimplex t´abla oszlopaiban csak nem-b´azis vektorok szereplenek. ´Igy az iter´aci´ok sor´an a kompakt szimplex t´abla soraiban ´es oszlopaiban szerepl˝o b´azis ´es nem-b´azis vektorok cser´el˝odnek egym´assal. Tegy¨ uk fel, hogy a megoldand´o hiperbolikus programoz´asi feladatban a B = (An+1 , An+2 , . . . , An+m ) az aktu´alis b´azis, ´es a benne szerepl˝o An+r vektort kell felcser´eln¨ unk az Ak nem-b´azis vektorral. Ilyenkor az Ak vektort ´at kell helyezn¨ unk a kdik oszlopb´ol az r-dik sorba, k¨ozben az An+r b´azis-vektor az r-dik sorb´ol ´athelyez˝odik k-dik oszlopba. Ezt az oszlopcsere folyamatot mutatja a(z) 7. t´abl´azat (a csere el˝otti ´allapot) ´es a(z) 8. t´abl´azat (a csere ut´ani ´allapot).
´ KIVEZETENDO ˝ VALTOZ ´ ´ KIVALASZT ´ ´ 8. BE- ES O ASA
B An+1 .. .
xB b1 .. .
p1 d1 A1 x11 .. .
An+r .. .
br .. .
xr1 .. .
An+m bm
xm1
P (x) D(x) Q(x)
∆01 ∆001 ∆1 (x)
··· ··· ··· ···
pk dk Ak x1k .. .
··· ··· ··· ··· .. .
pn dn An x1n .. .
··· ···
xrk .. .
··· .. .
xrn .. .
xmk
···
xmn
··· ··· ···
∆0k ∆00k ∆k (x)
··· ··· ···
∆0n ∆00n ∆n (x)
··· ···
55
⇒
⇑ 7. T´ abl´ azat. Kompakt szimplex t´abla – Csere el˝ott.
B An+1 .. .
xB b01 .. .
p1 d1 A1 x011 .. .
Ak .. .
b0k .. .
x0r1 .. .
An+m b0m
x0m1
P (x) D(x) Q(x)
··· ··· ··· ··· ··· ··· ··· ···
∆01 ··· ∆001 ··· ∆1 (x) · · ·
pn+r dn+r An+r x01k .. .
··· ··· ··· ··· .. .
pn dn An x01n .. .
x0rk .. .
··· .. .
x0rn .. .
x0mk
···
x0mn
∆0n+r ··· ∆00n+r ··· ∆n+r (x) · · ·
∆0n ∆00n ∆n (x)
8. T´ abl´ azat. Kompakt szimplex t´abla – Csere ut´an.
8. Be- ´ es kivezetend˝ o v´ altoz´ o kiv´ alaszt´ asa A ∆j (x) determin´ansok vizsg´alata sor´an el˝ofordulhat, hogy ezek k¨oz¨ott a determin´ansok k¨oz¨ott n´eh´any determin´ans negat´ıv ´ert´ek˝ u. Ilyenkor felmer¨ ul a k´erd´es - melyik nem-b´azis vektort kell bevezetni a b´azisba? Tov´abb´a ha siker¨ ult kiv´alasztani egy ilyen vektort, akkor majd a θ-teszt sor´an el˝ofordulhat, hogy a b´azisban t¨obb olyen pozici´o is van, ahova be lehet vezetni a kiv´alasztott nem-b´azis vektort. Ilyenkor felmer¨ ul m´eg egy k´erd´es - melyik b´azisvektort kell kivezetni a b´azisb´ol? Ezekre a k´erd´esekre az´ert kell v´alaszt adnunk, mert ett´ol f¨ ugg egyr´eszt a m´odszer hat´ekonys´aga, m´asr´eszt az elj´ar´as sz´am´ıt´og´epes implement´al´asa.
56
´ II. SZIMPLEX MODSZER
Ebben az alfejezetben ´eppen az ilyen k´erd´esekre v´alaszokat ad´o szab´alyokkal foglalkozunk.
8.1. Bevezet˝o szab´alyok 8.1.1. Legmeredekebb n¨ oveked´es szab´ alya. Az adott szab´aly szerint az u ´j b´azisba olyan nem-b´azis v´altoz´o ker¨ ul, amelyhez a legnagyobb abszol´ ut − ´ert´ek˝ u negat´ıv ∆j (x) determin´ans tartozik. M´as szavakkal, ha JN jel¨oli az olyan j indexek halmaz´at, amelyekn´el ∆j (x) determin´ansok negat´ıv ´ert´ek˝ uek, azaz − JN = {j : j ∈ JN , ∆j (x) < 0} , ´es (54)
∆j0 (x) = max |∆j (x)|, − j∈JN
akkor b´azisba ker¨ ul az xj0 v´altoz´o. Az angol nyelv˝ u szakirodalomban ezt a szab´alyt a ”Steepest Ascent Rule”-nak nevezik. 8.1.2. Legnagyobb n¨ oveked´es szab´ alya. Az el˝oz˝o szab´aly leggyakrabban haszn´alt alternat´ıv´aja az u ´n. ”Legnagyobb n¨ oveked´es szab´ alya” (ang. – ”highest step method ”). Az adott szab´aly szerint az a v´altoz´o ker¨ ul a b´azisba, amelyiknek a b´azisba val´o bevezet´ese vezet a c´el-f¨ uggv´eny ´ert´ek´enek legnagyobb n¨oveked´es´eshez. A(z) (43) k´epletnek megfelel˝oen (l´asd.38). oldal) ez azt jelenti, hogy minden iter´aci´os l´ep´esn´el meg kell hat´arozni azt a j0 indexet, amelyn´el ¾ ½ −θ∆j (x) −θ∆j0 (x) max = , − D(x(θ)) D(x(θ)) j∈JN ahol D(x(θ))-val jel¨olt¨ uk a D(x) nevez˝o u ´j ´ert´ek´et, ´es majd xj0 v´altoz´ot fogjuk bevezetni a b´azisba. II.10. Megjegyz´ es. Az adott szab´aly ´atlagosan t¨obb id˝ot ig´enyel iter´aci´os l´epesenk´ent (a b´azisba val´o bevezetend˝o v´altoz´o meghat´aroz´asa t¨obb munk´aval j´ar), de gyakran eredm´enyez kisebb sz´am´ u iter´aci´os lep´eseket. 8.1.3. Lexikografikus szab´ alyok. Ezek a szab´alyok felt´etelezik, hogy a szimplex m´odszer ind´ıt´as´ahoz a feladatban szerepl˝o v´altoz´ok valamely krit´erium szerint rendezve vannak. Ez a rendez´esi szab´aly tetsz˝oleges lehet, de ha egyszer kiv´alasztottunk egy rendez´esi szab´alyt, akkor ez fix marad a szimplex m´odszer befejez´es´eig. Az adott szab´alyok szerint a b´azisba bevezethet˝o v´altoz´ok k¨oz¨ ul az a v´altoz´o ker¨ ul a b´azisba, amelyik a rendez´esi sorrend szerint a legbaloldalibb (”leftmost of the eligible variables rule”), vagy legjobboldalibb (”rightmost of the eligible variables rule”). P´ed´aul ha rendez´esi
´ KIVEZETENDO ˝ VALTOZ ´ ´ KIVALASZT ´ ´ 8. BE- ES O ASA
57
szab´alyk´ent v´alasztottuk a j indexet, n¨ovekv˝oleg, akkor az az xj0 v´altoz´o ker¨ ul a b´azisba, amely sz´am´ara teljes¨ ul a
j 0 = min j, − j∈JN
− = {j : j ∈ JN , ∆j (x) < 0} ahol JN
felt´etel. II.11. Megjegyz´ es. Ha a megoldand´o hiperbolikus programoz´asi feladat t¨obb optim´alis megold´assal rendelkezik, a fenti szab´alyok ´altal´aban m´asm´as optim´alis megold´ashoz vezetnek.
A fenti szab´alyok hat´ekonys´ag´anak ¨osszehasonl´ıt´as´ara 1963-ban k´et amerikai matematikus H.W. Kunh ´es R.E.Quandt v´egeztek sz´am´ıt´og´epes k´ıs´erleteket. Ezeknek a k´ıs´erleteknek a sor´an v´eletlensz´am-gener´atorral el˝o´all´ıtott line´aris programoz´asi feladatok sorozat´an hajtott´ak v´egre mind a h´arom elj´ar´ast, ´es ¨osszehasonl´ıtott´ak az iter´aci´os l´ep´esek sz´am´at, valamint a fut´asi id˝oket. A kapott eredm´enyek azt mutatt´ak, hogy a legmeredekebb n¨oveked´es szab´aly alkalmaz´asa ´atlagosan alacsonyabb iter´aci´osz´amhoz vezet ´es ebben az esetben a fut´asi id˝ok ´atlaga is kisebb.
8.2. Kivezet˝o szab´alyok A szimplex m´odszer v´egrehajt´asa sor´an el˝ofordulhat, hogy a b´azisba val´o bevezetend˝o v´altoz´o meghat´aroz´asa ut´an az u ´n. θ-teszt (l´asd. (42) k´eplet) nem eredm´enyez egyetlen egy olyan v´atoz´o index´et sem, amelyet ki kellene vezetni a b´azisb´ol. A k¨ovetkez˝o szab´alyokat alkalmazhatjuk ilyenkor. 8.2.1. Legfels˝ obb sor szab´ aly. Ennek a szab´alynak megfelel˝oen azt a sor v´alasztjuk a szimplex t´abl´aban, amely a legfels˝o pozici´ot foglalja el. 8.2.2. Lexikografikus szab´ alyok. A lexikografikus szab´alyok haszn´alat eset´en a szimplex m´odszer ind´ıt´asa el˝ott ki kell v´alasztanunk egy rendez´esi szab´alyt, amelynek megfelel˝on v´alasztjuk ki majd a b´azist elhagy´o v´altoz´okat. Hiperbolikus programoz´asi feladatokban alkalmazhatjuk a line´aris programoz´asi feladatokra kifejlesztett szab´alyokat is. Azokr´ol pedig r´eszletes le´ır´asokat tal´alhatunk a k¨ovetkez˝o forr´asokban: [100], [123], [129], [146], [183], [191].
58
´ II. SZIMPLEX MODSZER
9. Degener´ aci´ o´ es cikliz´ al´ as A jelen jegyezet minden el˝oz˝o r´esz´eben felt´etelezt¨ uk, hogy az aktu´alis lehets´eges b´azismegold´as nem-degener´alt (l´asd. II.6. Defin´ıci´o). El˝ofordulhat azonban, hogy az aktu´alis lehets´eges b´azismegold´as tartalmaz legal´abb egy nulla-´ert´ek˝ u b´azisv´altoz´ot, azaz a megold´as degener´alt. Ez a jelens´eg pedig ahhoz vezethet, hogy a szimplex m´odszer v´egrehajt´asa sor´an t¨obbsz¨or fordul el˝o ugyanaz a b´azis. Ilyenkor azt mondjuk, hogy a m´odszer cikliz´ al (ang. –”cycling”). Szerencs´ere a szimplex m´odszert u ´gy lehet finom´ıtani, hogy a cikliz´al´as ne forduljon soha el˝o [33], [54]. A gyakorlatban a degener´al´as nem sz¨ uks´egk´eppen vezet mindig cikliz´al´ashoz, ´es maga a cikliz´al´as el˝oforul´asa rendk´ıv¨ uli ritka esem´eny [120], [121]. A szakirodalomban tal´alhat´o ”cikliz´al´o” line´aris programoz´asi feladatok t¨obbs´ege ”mesters´eges” jelleg˝ u, azaz a kutat´ok ´altal tudatosan konstru´alt feladatok [157]. Elk´epzelhet˝o, hogy a hiperbolikus programoz´asban is lehet konstru´alni ”cikliz´al´o” feladatokat. Azonban l´eteznek speci´alis feladatok, ahol degener´al´as ´es cikliz´al´as viszonylag gyakori esem´eny, pl. a sorban´all´asi elm´elet speci´alis feladatai [121]. A szimplex m´odszer elm´eleti h´atter´enek targyal´as´an´al felt´etelezt¨ uk, hogy (1) a kiv´alasztott j indexre a(z) (42) θ-teszt pozit´ıv ´ert´eket eredm´enyez, azaz xs xk θ = min i = > 0. xij >0 xij xkj (2) A b´azisb´ol kivezetend˝o v´altoz´o (vagy m´ask´eppen a gener´al´o sor) index´et egyedi m´odon siker¨ ult azonos´ıtani, azaz xk xs < i , ∀i = 1, 2, . . . , m, si 6= k. xkj xij (3) Minden iter´aci´os l´epesben a c´el-f¨ uggv´eny ´ert´eke szigor´ uan n¨ovekszik. Ha az aktu´alis lehets´eges b´azismegold´as nem-degener´alt, akkor az 1. sz´am´ u felt´etelez´es azt jelenti, hogy a b´azisba ker¨ ul˝o xj v´altoz´o ´ert´ek¨ ul szigor´ uan pozit´ıv θ-t kap, ´es ennek k¨osz¨onhet˝oen az u ´j b´azismegold´as szint´en nemdegener´alt lesz. Ebben az esetben, ha az xj v´altoz´ohoz tartoz´o ∆j (x) determin´ans szigor´ uan negat´ıv ´ert´ek˝ u, akkor a(z) (43) k´epletnek megfelel˝oen a Q(x) c´el-f¨ uggv´eny ´ert´eke szigor´ uan n¨ovekszik, ´es ez´ert teljes¨ ul a 3. sz´am´ u felt´etelez´es¨ unk.
´ O ´ ES ´ CIKLIZAL ´ AS ´ 9. DEGENERACI
59
Ha ´ıgy alakul az ¨osszes iter´aci´os l´epes, nyilv´anval´o, hogy a v´eges sz´am´ u iter´aci´ok ut´an az optim´alis megod´ast kapjuk. Sz´oval, ilyenkor a cikliz´al´as nem fordulhat el˝o. P´eld´aul tegy¨ uk fel, hogy a megoldand´o hiperbolikus programoz´asi feladatban szerepel 10 darab v´altoz´o, ´es 5 f˝ofelt´etel. Tov´abb´a tegy¨ uk fel, hogy a feladat ¨osszes lehets´eges b´azismegold´asa nem-degener´alt. Az ilyen feladat legfeljebb 10! 5 C10 = = 252 5! (10 − 5)! darab b´azismegold´assal rendelkezik. Mivel az ¨osszes lehets´eges b´azismegold´as nem-degener´alt, ´es emiatt a szimplex m´odszer nem cikliz´al, ez´ert legfeljebb 252 iter´aci´os l´ep´es v´egrehajt´asa ut´an kapjuk az optim´alis megold´ast. A 2. sz´am´ u felt´etelez´es¨ unk biztos´ıtja a degener´al´as elker¨ ul´es´et. T´enyleg, tegy¨ uk fel, hogy xs xs xs θ = min i = 1 = 2 . xij >0 xij x1j x2j Ebb˝ol k¨ovetkezik, hogy az xj u ´j b´azisv´altoz´o az u ´j b´azisban vagy az xs1 v´altoz´o hely´et vagy az xs2 -´et foglalja. Ilyenkor ha xs1 (vagy xs2 ) v´altoz´o kiker¨ ul a b´azisb´ol, ´es xs2 (vagy xs1 ) v´atoz´o a b´azisban marad, akkor az xs2 (vagy xs1 ) b´azisv´alt´oz´o u ´j ´ert´eke nulla lesz. Sz´oval az u ´j b´azismegold´as degener´al´odik. 1977-ben R.G.Bland [33] kifejlesztett a line´aris programoz´asi feladatkra egy olyan szab´alyt, amely haszn´alja a rendezett index˝ u v´altoz´okat, ´es ezzel biztos´ıtja a cikliz´al´as elker¨ ul´es´et. Szerencs´enkre ez a szb´aly alkalmazhat´o a hiperbolikus programoz´asban is. Bland szab´ aly (Legkisebb index szab´ aly – ”Least index rule”) – Ha t¨obb, mint egy nem-b´azis v´altoz´o vezethet˝o be ab´azisba, akkor v´alasszuk a legkisebb index˝ ut. – Ha t¨obb, mint egy v´altoz´o ker¨ ulhet ki a b´azisb´ol, akkor v´alasszuk a legkisebb index˝ ut. Ezen k´ıv¨ ul, R.G.Bland megfogalmazta ´es bebizony´ıtotta [33] a k¨ovetkez˝ot II.7. T´ etel. A fenti szab´aly alkalmaz´asa eset´en a szimplex m´odszer nem cikliz´alhat, ´es ez´ert v´eges sz´am´ u it´ar´aci´os l´ep´es ut´an v´eget ´er.
III. Fejezet
Dualit´ as A matematikai programoz´as elm´elete szerint minden folytonos (azaz csak folytonos v´altoz´okat tartalmaz´o) optimaliz´al´asi feladat sz´am´ara konstru´alhat´o egy u ´n. du´ alis feladat. A k´et feladat k¨oz¨otti kapcsolatb´ol ered˝o tulajdons´agokat, ´all´ıt´asokat sz´amos elm´eleti ´es alkalmaz´asi ter¨ uleten haszn´alj´ak fel. A dualit´as elve megjelenik a k¨ ul¨onb¨oz˝o matematikai, fizikai, statisztikai ´agakban is. A dualit´as alkalmaz´asa k¨ ul¨on¨osen hasznos a line´aris ´es hiperbolikus programoz´asban, amikor a feladat optim´alis megold´as´at kell elemezni. Ebben a fejezetben a hiperbolikus programoz´asban ismert legfontosabb dualit´asi eredm´enyeket fogjuk tanulm´anyozni.
1. A dualit´ as r¨ ovid ´ attekint´ ese Ebben a szekci´oban r¨oviden ´attekintj¨ uk a hiperbolikus programoz´asi du´alit´as n´eh´any megk¨ozel´ıt´es´et. Meg kell jegyezn¨ unk, hogy az 1960-as ´es 1970-es ´evekben a du´alit´asi k´erd´ese a hiperbolikus programoz´asban nagy ´erdekl˝od´est keltett a kutat´ok k¨or´eben, ´es k¨ ul¨onb¨oz˝o megk¨ozel´ıt´esben sz´amos eredm´enyt hozott (l´asd. p´eld´aul: [1], [25], [26], [27], [30], [41], [45], [111], [163] [164], [167], [168] [170], [177], [178]). Ezekb˝ol a megk¨ozel´ıt´esekb˝ol nem mindegyik bizonyult hasznosnak ´es alkalmazhat´onak. Azonban a Charnes–Cooper-transzorm´aci´on (l´asd. [40] ´es a jelen jegyzetben 3. alfejezet), illetve a Gol’stein-f´ele Lagrange-f¨ uggv´eny haszn´alat´an alapul´o megk¨ozel´ıt´esek nagyon hasznosak lettek. Tekints¨ uk a k¨ovetkez˝o standard hiperbolikus programoz´asi feladatot:
(55)
n X
P (x) j=1 Q(x) = = n X D(x) j=1 61
pj x j + p 0
dj xj + d 0
→ max,
´ III. DUALITAS
62
a k¨ovetkez˝o felt´etelek mellett n X aij xj ≤ bi , i = 1, 2, . . . , m, (56) j=1
xj ≥ 0, j = 1, 2, . . . , n.
(57)
A(z) (55)-(57) feladatot ”prim´al” feladatnak fogjuk nevezni (ang.– ”primal problem”). A Charnes–Cooper-transzform´aci´o szerint a(z) (55)-(57) feladatnak megfelel a k¨ovetkez˝o line´aris anal´og: n X (58) L(t) = pj tj −→ max j=0
a k¨ovetkez˝o felt´etelek mellett
n X
(59)
dj tj = 1.
j=0
(60)
−bi t0 +
n X
aij tj ≤ 0, i = 1, 2, . . . , m,
j=1
tj ≥ 0, j = 0, 1, 2, . . . , n,
(61) ahol tj =
xj , j = 1, 2, . . . , n, D(x)
t0 =
1 . D(x)
Meg kell jegyezn¨ unk, hogy a(z) (58)-(61) feladat line´aris programoz´asi feladat. A line´aris programoz´asi dualit´as elm´elete szerint a(z) (58)-(61) feladathoz a k¨ovetkez˝o du´alis feladat tartozik: ψ(y) = y0 −→ min
(62)
a k¨ovetkez˝o felt´etelek mellett d 0 y0 −
(63)
m X
bi yi ≥ p0 ,
i=1
(64)
d j y0 +
m X
aij yi ≥ pj , j = 1, 2, . . . , n.
i=1
(65)
yi ≥ 0, i = 1, 2, . . . , m.
A tov´abbiakban ezt a(z) (62)-(65) line´aris programoz´asi feladtot ”du´ alis” feladatnak fogjuk nevezni a(z) (55)-(57) hiperbolikus programoz´asi feladat sz´am´ara.
´ ROVID ¨ ´ ´ 1. A DUALITAS ATTEKINT ESE
63
Az 1970-es ´evekben Gol’stein [78], [79] ´altal bevezett t¨ortalak´ u P (x) + (66)
m X
yi (bi −
aij xj )
j=1
i=1
L(x, y) =
n X
D(x)
.
Lagrange-f¨ uggv´eny szint´en a(z) (62)-(65) feladathoz vezet. Most tekints¨ uk a k¨ovetkez˝o kanonikus alak´ u hiperbolikus programoz´asi feladatot: n X pj x j + p 0 P (x) j=1 = n (67) Q(x) = → max, X D(x) dj xj + d 0 j=1
a k¨ovetkez˝o felt´etelek mellett n X (68) aij xj = bi , i = 1, 2, . . . , m, j=1
xj ≥ 0, j = 1, 2, . . . , n.
(69)
Ennek a feladatnak a k¨ovekez˝o du´alis feladat felel meg: ψ(y) = y0 −→ min
(70)
a k¨ovetkez˝o felt´etelek mellett d 0 y0 −
(71)
m X
bi yi ≥ p0 ,
i=1
(72)
d j y0 +
m X
aij yi ≥ pj , j = 1, 2, . . . , n.
i=1
Jegyezz¨ uk meg, hogy a(z) (70)-(72) nem tartalmaz nem-negat´ıvit´asi felt´eteleket. V´eg¨ ul fogalmazzuk meg a du´alis feladatot az ´altal´anos hiperbolikus programoz´asi feladat sz´am´ara. Legyen a k¨ovetkez˝o ´altal´anos hiperbolikus programoz´asi feladat: n X pj x j + p 0 P (x) j=1 −→ max = n (73) Q(x) = X D(x) dj xj + d 0 j=1
´ III. DUALITAS
64
a k¨ovetkez˝o felt´etelek mellett n X aij xj ≤ bi , i = 1, 2, . . . , m1 , (74) j=1
n X
(75)
aij xj = bi , i = m1 + 1, m1 + 2, . . . , m,
j=1
xj ≥ 0, j = 1, 2, . . . , n1 ,
(76)
ahol m1 ≤ m, n1 ≤ n. Ennek a feladatnak k¨ovetkez˝o du´alis feladat felel meg: ψ(y) = y0 −→ min
(77)
a k¨ovetkez˝o felt´etelek mellett d 0 y0 −
(78)
m X
bi yi ≥ p0 ,
i=1
(79)
d j y0 +
m X
aij yi ≥ pj , j = 1, 2, . . . , n1 .
i=1
(80)
d j y0 +
m X
aij yi = pj , j = n1 + 1, n1 + 2, . . . , n.
i=1
(81)
yi ≥ 0, i = 1, 2, . . . , m1 .
2. F˝ o t´ etelek Ebben a szekci´oban megfogalmazzuk a dualit´as legfontosabb ´all´ıt´asait. III.1. Lemma (Dualit´ as 1. lemm´ aja). Ha az x = (x1 , x2 , . . . , xn )T vektor lehets´eges megold´asa a(z) (55)-(57) standard hiperbolikus programoz´asi feladatnak, ´es az y = (y0 , y1 , y2 , . . . , ym ) vektor lehets´eges megold´asa a(z) (62)-(65), akkor teljes¨ ul a Q(x) ≤ ψ(y) egyenl˝otlens´eg.
˝ TETELEK ´ 2. FO
65
III.2. Lemma (Dualit´ as 2. lemm´ aja). Ha az x∗ = (x∗1 , x∗2 , . . . , x∗n )T vektor lehets´eges megold´asa a(z) (55)-(57) standard hiperbolikus programoz´asi feladatnak, ´es az ∗ y ∗ = (y0∗ , y1∗ , y2∗ , . . . , ym ) vektor lehets´eges megold´asa a(z) (62)-(65) feladatnak, ´es teljes¨ ul a (82)
Q(x∗ ) = ψ(y ∗ )
egyenl˝os´eg, akkor az x∗ vektor optim´alis megold´asa a(z) (55)-(57) feladatnak, ´es az y ∗ vektor optim´alis megold´asa a(z) (62)-(65) feladatnak. A k¨ovetkez˝o lemma ¨osszek¨oti a prim´al ´es du´al feladat megoldhat´os´ag´at. III.3. Lemma (Dualit´ as 3. lemm´ aja). Ha (62)-(65) du´alis feladat ψ(y) c´el-f¨ uggv´enye az Y lehets´eges halmazon alulr´ol nem korl´atos, akkor a(z) (55)-(57) prim´al feladat nem megoldhat´o, mert S lehets´eges halmaza u ¨res, azaz S = ∅. Ford´ıtva, Ha (55)-(57) prim´al feladat Q(x) c´el-f¨ uggv´enye az S lehets´eges halmazon fel¨ ulr˝ol nem korl´atos, akkor a(z) (62)-(65) du´alis feladat nem megoldhat´o, mert Y lehets´eges halmaza u ¨res, azaz Y = ∅ III.1. T´ etel (Du´ alit´ as 1. T´ etele). Ha a(z) (55)-(57) prim´al hiperbolikus programoz´asi megoldhat´o, ´es x∗ vektor az optim´alis megold´asa, akkor a(z) (62)-(65) du´alis feladat is megoldhat´o, ´es tetsz˝oleges y ∗ optim´alis megold´asa mellett teljes¨ ul a (83)
Q(x∗ ) = ψ(y ∗ ).
egyenl˝os´eg. Ford´ıtva, Ha a(z) (62)-(65) du´alis feladat megoldhat´o, ´es y ∗ vektor az optim´alis megold´asa, akkor a(z) (55)-(57) prim´al hiperbolikus programoz´asi is megoldhat´o, ´es tetsz˝oleges x∗ optim´alis megold´asa mellett teljes¨ ul a(z) (83) egyenl˝os´eg. Megfogalmazunk n´eh´any ´all´ıt´ast, amely k¨ovetkezik a III.1. T´etelb˝ol. III.1. K¨ ovetkezm´ eny. Ahhoz, hogy a(z) (55)-(57) prim´al ´es a(z) (62)(65) du´alis feladat megoldhat´o legyen, sz¨ uks´eges ´es el´egs´eges, hogy mindk´et feladatnak legyen legal´abb egy-egy lehets´eges megold´asa. III.2. K¨ ovetkezm´ eny. Ha az x∗ vektor a(z) (55)-(57) prim´al feladat lehets´eges megold´asa, ´es az y ∗ vektor a(z) (62)-(65) du´alis feladat lehets´eges megold´asa, akkor ahhoz, hogy x∗ ´es y ∗ vektor legyen a saj´at feladat´anak optim´alis megold´asa sz¨ uks´eges ´es el´egs´eges, hogy teljes¨ ulj¨on a Q(x∗ ) = ψ(y ∗ ) egyenlet.
´ III. DUALITAS
66
III.3. K¨ ovetkezm´ eny. Ha (55)-(57) prim´al feladat (line´aris anal´og (58)(61)) megoldhat´o, akkor a hozz´atartoz´o (58)-(61) line´aris anal´ogja (hozz´atartoz´o (55)-(57) hiperbolikus programoz´asi feladat) is megoldahat´o. Ezenk´ıv¨ ul ha az x∗ vektor a(z) (55)-(57) prim´al feladat optim´alis megold´asa, ∗ ´es a t vektor a(z) (58)-(61) line´aris anal´og optim´alis megold´asa, akkor Q(x∗ ) = φ(t∗ ), ´es (84)
t∗0
ha
(85)
ha
> 0,
t∗0 = 0,
x∗j
akkor
t∗j = ∗ , j = 1, 2, . . . , n; t0
akkor x∗j =
(
t∗j lim λk , j ∈ J 0 , k→∞
0,
j ∈ J 00
III.1. Defin´ıci´ o. A(z) (56) ´es (60), azaz n X
aij xj ≤ bi ´es
− b i t0 +
j=1
n X
aij tj ≤ 0, i = 1, 2, . . . , m,
j=1
felt´etelekb˝ol az i index szerint ¨ossze´all´ıtott felt´etelp´arokat, illetve a(z) (57), (61), azaz xj ≥ 0 ´es tj ≥ 0, j = 1, 2, . . . , n, felt´etelekb˝ol a j index alapj´an ¨ossze´all´ıtott felt´etelp´arokat anal´ og felt´ etelp´ aroknak fogjuk nevezni. III.2. Defin´ıci´ o. A(z) (56) ´es (65), azaz n X
aij xj ≤ bi ´es yi ≥ 0, i = 1, 2, . . . , m,
j=1
felt´etelekb˝ol az i index szerint ¨ossze´all´ıtott felt´etelp´arokat, illetve a(z) (57), (64), azaz xj ≥ 0 ´es dj y0 +
m X
aij yi ≥ pj , j = 1, 2, . . . , n,
i=1
felt´etelekb˝ol a j index alapj´an ¨ossze´all´ıtott felt´etelp´arokat du´ alis felt´ etelp´ aroknak fogjuk nevezni. III.3. Defin´ıci´ o. Azt fogjuk mondani, hogy egy (56) (vagy (57)) felt´etel r¨ ogz´ıtett, ha tetsz˝oleges x∗ optim´alis megold´as mellet az adott felt´etel teljes¨ ul mint szigor´ u egyenl˝os´eg. III.4. Defin´ıci´ o. Azt fogjuk mondani, hogy egy (56) (vagy (57)) felt´etel szabad, ha legal´abb egy x∗ optim´alis megold´as mellet az adott felt´etel teljes¨ ul mint szigor´ u egyenl˝otlens´eg.
˝ TETELEK ´ 2. FO
67
Hasonl´o m´odon ezt a k´et defin´ıci´ot kiterjeszthetj¨ uk a du´alis feladat (63), (64), (65), azaz m X bi yi ≥ p0 , d 0 y0 − i=1
d j y0 +
m X
aij yi ≥ pj , j = 1, 2, . . . , n,
i=1
yi ≥ 0, i = 1, 2, . . . , m, felt´eteleire, illetve a line´aris anal´og (60), (61), azaz −bi t0 +
n X
aij tj ≤ 0, i = 1, 2, . . . , m,
j=1
tj ≥ 0, j = 0, 1, 2, . . . , n, felt´eteleire is. III.2. T´ etel. Ha a(z) (55)-(57) prim´al hiperbolikus programoz´asi feladat ´es a hozz´atartoz´o (58)-(61) line´aris anal´og megoldhat´o, akkor minden anal´og felt´etelp´arban mindk´et felt´etel vagy r¨ogz´ıtett vagy szabad. III.3. T´ etel. Ha a(z) (55)-(57) prim´al hiperbolikus programoz´asi feladat ´es a hozz´atartoz´o (62)-(65) du´alis feladat megoldhat´o, akkor minden du´alis felt´etelp´arban az egyik felt´etel r¨ogz´ıtett, a m´asik pedig szabad; vagy m´as szavakkal n X ( aij xj − bi ) yi = 0, i = 1, 2, . . . , m, j=1
´es (pj − dj y0 +
m X
aij yi ) xj = 0, j = 1, 2, . . . , n.
i=1
Jegyzz¨ uk meg, hogy a(z) (62)-(65) du´alis feladatban n + 1 darab f˝ofelt´etel van. Ebb˝ol 1 darab (63) felt´etel ´es n darab (64) felt´etel. A(z) (64) felt´etelek a j index szerint a(z) (57) felt´elekkel vannak kapcsolatban, ´es a(z) (65) ´es (56) felt´etelek ¨ossze vannak kapcsolva az i indez alapj´an. Du´alis feladatban egyetelen egy (63) felt´etelnek nincsen p´arja a prim´al feladatban. Ezt a hi´anyt p´otolja a k¨ovetkez˝o ´all´ıt´as: III.4. T´ etel ([8]). Ha a(z) (55)-(57) prim´al feladat ´es a hozz´atartoz´o (62)(65) du´alis feladat megoldhat´o, akkor (63) felt´etel akkor ´es csak akkor r¨ogz´ıtett, ha a prim´al feldatnak van legal´abb egy v´eges ´ert´ek˝ u optim´alis megold´asa, azaz (86)
x∗j < ∞, j = 1, 2, . . . , n
´ III. DUALITAS
68
3. Du´ alis v´ altoz´ ok ´ es stabilit´ asi anal´ızis Tekints¨ uk a k¨ovetkez˝o kanonikus alak´ u hiperbolikus programoz´asi feladatot: n X pj x j + p 0 P (x) j=1 = n −→ max, (87) Q(x) = X D(x) dj xj + d 0 j=1
a k¨ovetkez˝o felt´etelek mellett n X (88) aij xj = bi , i = 1, 2, . . . , m, j=1
xj ≥ 0, j = 1, 2, . . . , n .
(89) Felt´etelezz¨ uk, hogy
D(x) > 0, ∀x ∈ R+ = {Rn |x ≥ 0}. Tegy¨ uk fel, hogy az x∗ = (x∗1 , x∗2 , . . . , x∗n )T vektor a (87)-(89) feladat optim´alis megold´asa, ´es (90)
x∗j < ∞, j = 1, 2, . . . , n.
Jel¨olj¨ uk HP (b)-vel a(z) (87)-(89) feladatot, ´es cser´elj¨ uk ki a HP (b) feladatban a b = (b1 , b2 , . . . , bm )T vektort egy m´asik b0 = (b01 , b02 , . . . , b0m )T vektorral. Az ilyen m´odon ¨ossze´all´ıtott u ´j hiperbolikus programoz´asi feladatot HP (b0 )-vel fogjuk jel¨olni. A ilyen m´odon bevezetett k´et hiperbolikus programoz´asi feladat k¨oz¨otti kapcsolatot a k¨ovetkez˝o ´all´ıt´as ´ırja le: III.5. T´ etel ([9]). Tegy¨ uk fel, hogy a HP (b) feladat megoldhat´o, ´es x∗ vektor ennek a feladatnak nem-degener´alt, v´eges, optim´alis meold´asa. Ha |bi − b0i | < ε, i = 1, 2, . . . , m, akkor a HP (b0 ) feladat is megoldhat´o, ´es tetsz˝oleges x0 optim´alis megold´asa mellett teljes¨ ul a k¨ovetkez˝o egyenl˝os´eg m X yi∗ (b0i − bi ) (91)
Q(x0 ) = y0∗ +
i=1
D(x0 )
,
ahol ε elegend˝oen kicsi sz´am, ´es az ∗ y ∗ = (y0∗ , y1∗ , y2∗ , . . . , ym )
vektor a HP (b) feladathoz tartoz´o du´alis feladat optim´alis megold´asa.
´ ´ ´ ES ´ STABILITASI ´ 3. DUALIS VALTOZ OK ANAL´IZIS
69
Jegyezz¨ uk meg, hogy a(z) (90) felt´etelez´esnek nagyon fontos ´es meghat´aroz´o szerepe van, mivel G.R.Bitran ´es T.L.Magnanti [30], [31] megmutatt´ak, hogy abban az esetben, ha (90) felt´etel nem teljes¨ ul, akkor a jobb oldali vektorban t¨ort´en˝o valami kis m´ert´ek˝ u v´altoz´as nem v´altoztatja a c´el-f¨ uggv´eny optim´alis ´ert´ek´et.
IV. Fejezet
´ ekenys´ Erz´ eg vizsg´ alata A gyakorlati alkalmaz´asok szempontj´ab´ol gyakran sz¨ uks´eges tudni, hogy a feladatban szerepl˝o egy¨ utthat´ok v´altoz´as´anak milyen hat´asa van a c´el-f¨ uggv´eny optim´alis ´ert´ek´ere, vagy meddig marad ilyenkor az optim´alis megold´as optim´alis. Ebben a fejezetben az u ´n. ´erz´ekenys´eg vizsg´ alat´ aval (ang.–”stability analysis” vagy ”sensitivity analysis”) fogunk foglalkozni, azaz hogyan hat az egy¨ utthat´ok v´altoztat´asa az optim´alis megold´asra. El˝osz¨or a 1. szekci´oban egy numerikus p´elda seg´ıts´eg´evel illusztr´aljuk a jobb oldali b vektorban t¨ort´en˝o v´altoz´asok hat´as´at az optim´alis megold´asra, majd az ez ut´an k¨ovetkez˝o 2.-6. r´eszekben megtekintj¨ uk a hiperbolikus programoz´asi feladat k¨ ul¨onb¨oz˝o r´eszeiben t¨ort´en˝o v´altoz´asi eseteket. Legyen a k¨ovetkez˝o kanonikus hiperbolikus programoz´asi feladat:
(92)
n X
P (x) j=1 = n Q(x) = X D(x)
pj x j + p 0 −→ max
dj xj + d 0
j=1
a k¨ovetkez˝o felt´etelek mellett n X (93) aij xj = bi , i = 1, 2, . . . , m, j=1
xj ≥ 0, j = 1, 2, . . . , n,
(94) ahol D(x) > 0, ∀x ∈ S.
Tegy¨ uk fel, hogy a(z) (92)-(94) feladat megoldhat´o, ´es az x∗ vektor ennek a feladatnak optim´alis b´azismegold´asa. Az ´altal´anoss´ag megszor´ıt´asa n´elk¨ ul felt´etelezhetj¨ uk, hogy x∗ = (x∗1 , x∗2 , . . . , x∗m , 0, 0, . . . , 0)T ´es ennek a vektornak megfelel a k¨ovetkez˝o b´azis: B = (A1 , A2 , . . . , Am ), 71
´ ´ ´ VIZSGALATA ´ IV. ERZ EKENYS EG
72
ahol Aj = (a1j , a2j , . . . , amj )T , j = 1, 2, . . . , n. A fejezet tov´abbi r´eszeiben minden¨ utt haszn´alni fogjuk a k¨ovetkez˝o jel¨ol´eseket: J = {1, 2, . . . , n}, JB = {1, 2, . . . , m}, JN = J \ JB = {m + 1, m + 2, . . . , n}.
¨osszes indexhalmaz: b´azis indexek halmaza: nem-b´azis indexek halmaza:
1. Grafikus bevezet´ es Tekints¨ uk a k¨ovetkez˝o numerikus p´eld´at: (95)
Q(x) =
6 x1 + 3 x 2 + 6 −→ max(min) 5 x1 + 2 x 2 + 5
a k¨ovetkez˝o felt´etelek mellett 4 x1 − 2 x2 ≤ 20 , (i) 3 x1 + 5 x2 ≤ 25 , (ii) (96) x1 ≥ 0, x2 ≥ 0.
Ennek a feladatnak optim´alis megold´asa az
x∗ = (0, 5), Q(x∗ ) =
21 , 15
vektor (az A bet˝ uvel jel¨olt pont a(z) 1. ´abr´an). X2
Q(x)=max A 5
S Max
F -1
0C
B 5
8 1/3
1. a ´bra. (95)-(96) eredeti feladat lehets´eges halmaza.
X1
´ 1. GRAFIKUS BEVEZETES
73
V´altoztassuk meg jobb oldali b = (20, 25)T vektor u ´gy, hogy b1 = 20 maradjon v´altoztatlan, ´es a b2 = 25 helyett pedig legyen b02 = b2 + δ = 25 + 5 = 30. Nyilv´anval´o, hogy ennek a valtoz´asnak nincsen semmi hat´asa az F fokusz pontra, ´es az nem v´altozik. Viszont ilyenkor v´altozik a lehets´eges halmaz (l´asd. 2. ´abra). A(z) 2. ´abr´ab´ol l´atszik, hogy a jobb oldali b vektorba
X2
Q(x)=max
A' New constraint II
A 5
S Max
F -1
B 5
0C
8 1/3
X1
2. a ´bra. Megv´aloztatott lehets´eges halmaz.
bevezetett v´altoz´asok miatt a lehets´eges halmaz megv´altozott u ´gy, hogy az optim´alis b´azis marad ugyanaz, de az optim´alis megold´as elmozdult, ´es ´athelyez˝od¨ott az A0 pontba, ´ıgy az u ´j optim´alis megold´as az x0 = (0, 6)T 0 vektor lett, ´es Q(x ) = 24/17. Vegy¨ uk ´eszre, hogy ebben a numerikus p´eld´aban a b vektor b2 elem´ebe bevezetett δ ´ert´eknek nincsen hat´asa az optim´alis b´azisra, ´es ez´ert a δ ´ert´ek (´es emiatt a b2 ´ert´ek) lehet tetsz˝oleges nagy. Teh´at a δ ´ert´ek fels˝o korl´atja v´egtelen nagy, azaz ∞. Azonban ha b2 cs¨okken (azaz δ < 0), akkor az optim´alis b´azis csak addig marad stabil, amig b2 + δ ≥ 0, mivel a negat´ıv ´ert´ek˝ u b2 mellett a feladat mogoldhatatlann´a v´alik az u ¨res lehets´eges halmaz miatt. Az ut´obbi azt jelenti, hogy δ ≥ 0 − b2 = −25. V´eg¨ ul kapjuk a k¨ovetkez˝o stabilit´asi tartom´anyt:
−25 ≤ δ < ∞
vagy
0 ≤ b2 < ∞ .
Hasonl´o m´odon kider´ıthetj¨ uk, hogy a b1 elem sz´am´ara a stabilit´asi tartom´any a k¨ovetkez˝o: −30 ≤ δ < ∞
vagy
− 10 ≤ b1 < ∞ .
´ ´ ´ VIZSGALATA ´ IV. ERZ EKENYS EG
74
Ha v´altoz´asok t¨ort´ennek a c´el-f¨ uggv´enyben, akkor a helyzet j´oval komplik´altabb´a v´alik, mivel az ilyen v´altoz´asok hatnak az F fokus pontra (l´asd. 3. ´abra), ´es emiatt olyan l´enyeges v´altoz´asokat eredm´enyezhetnek a feladatban, amelyek r´eszletes vizsg´alatokat ig´enyelhetnek. Ezenk´ıv¨ ul a c´el-f¨ uggv´eny nevez˝oj´eben bevezetett v´altoz´asok miatt el˝ofordulhat a D(x) > 0 ∀x ∈ S ´ felt´etel megs´ert´ese is. Eppen ez´ert a hiperbolikus programoz´asi feladat k¨ ul¨onb¨oz˝o r´eszeiben t¨ort´en˝o v´altoz´asokat k¨ ul¨on-k¨ ul¨on alfejezetekben fogjuk t´argyalni.
X2 F A
Q(x)=max
5
S
-3
0C
B 5
X1 8 1/3
3. a ´bra. Megv´altoztatott c´el-f¨ uggv´eny ´es F fokusz pont.
A(z) 3. ´abr´an l´athatjuk, milyen v´altoz´asokhoz vezet a p1 nem-b´azis egy¨ utthat´oban t¨ort´en˝o p1 = 6 −→ p01 = p1 + 1 = 6 + 1 = 7 v´altoz´as.
2. V´ altoz´ as a jobb oldali korl´ atvektorban Cser´elj¨ uk ki a jobb oldali b vektor bµ elem´et a b0µ = bµ + δ ´ert´ekre, ´es vizsg´aljuk meg az adott csere hat´as´at a B optim´alis b´azisra, az x∗ optim´alis megold´asra ´es a Q(x) c´el-f¨ uggv´eny optim´alis ´ert´ek´ere. A kor´abban megtett felt´etelez´es¨ unk szerint az x∗ vektor lehets´eges ´es optim´alis megold´asa a(z) (92)-(94) feladatnak. Mivel az x∗ vektor lehets´eges megold´asa ennek a feladatnak, ez´ert a x∗ vektor mellett teljes¨ ulnek a(z) (93) ´es (94) felt´etelek. ´Irjuk ´at a(z) (93) rendszert a k¨ovetkez˝o m´odon: (93) as
´ ´ A JOBB OLDALI KORLATVEKTORBAN ´ 2. VALTOZ AS
75
follows Bx∗ = b,
(97) vagy
x∗ = B −1 b,
(98)
ahol B −1 = ||eij ||m×m jel¨oli a B m´atrix inverz´et (eml´ekezve arra, hogy B m´atrix line´arisan f¨ uggetlen Aj , j = 1, 2, . . . , m, vektorokb´ol ´all, teh´at B −1 l´etezik). Tov´abb´a a(z) (98) rendszerb˝ol kapjuk, hogy m X ∗ eik bk , i = 1, 2, . . . , m. (99) xi = k=1
Vezess¨ uk be a bµ → bµ + δ cser´et a(z) (99) k´epletbe: (100)
x0i
=
m X
eik bk + δeiµ = x∗i + δeiµ , i = 1, 2, . . . , m.
k=1
´Igy az eredeti
x∗
vektor helyett kapjuk az x0 = (x01 , x02 , . . . , x0m , 0, 0, . . . , 0).
vektort. Ezzel a vektorral kapcsolatban felvet˝odik a k¨ovetkez˝o k´et k´erd´es: (1) Mondhatjuk-e, hogy az x0 vektor lehets´eges megold´asa az u ´j feldatnak? (2) Mondhatjuk-e, hogy az x0 vektor optim´alis megold´asa az u ´j feldatnak? Vizsg´aljuk meg az els˝o k´erd´est. A lehets´eges megold´as defin´ıci´oja szerint ahhoz, hogy az x0 vektor lehets´eges megold´asa legyen a(z) (92)-(94) feladatnak, kell, hogy teljes¨ ulj¨on az x0i ≥ 0, i = 1, 2, . . . , m;
(101) ´es
(102)
m X aij x0j = bi ,
i = 1, 2, . . . , m, i 6= µ;
j=1
m X aij x0j = bi + δ,
i=µ
j=1
felt´etel. A(z) (100) haszn´alat´aval ´ırjuk ´at (101)-t a k¨ozetkez˝ok´eppen: x0i = x∗i + δeiµ ≥ 0, i = 1, 2, . . . , m.
Az ut´obbi azt jelenti, hogy δeiµ ≥ −x∗i , i = 1, 2, . . . , m,
´ ´ ´ VIZSGALATA ´ IV. ERZ EKENYS EG
76
vagy
x∗i , for those i that eiµ > 0, eiµ x∗ δ ≤ − i , for those i that eiµ < 0. eiµ Ilyen m´odon a k¨ovetkez˝o tartom´anyt kaphatjuk: ½ ½ ¾ ¾ x∗ x∗ (103) max − i ≤ δ ≤ min − i . 1≤i≤m 1≤i≤m eiµ eiµ δ≥−
eiµ >0
eiµ <0
Nyilv´anval´o, ha δ ´ert´eke olyan, hogy teljes¨ ul a(z) (103) felt´etel, akkor minden x0i , i = 1, 2, . . . , m, b´azisv´altoz´o nem-negat´ıv ´ert´ek˝ u, ´es ez´ert teljes¨ ul a(z) (101) felt´etel. Ami a(z) (102) felt´etelt illeti, az x0 vektor defin´ıci´o szerint teljes´ıti ezt a felt´etelt. T´enyleg, az x0 vektor meghat´aroz´asakor a B b´azism´atrixot ´es (97) k´epletet haszn´altuk. Ily m´odon megmutattuk, hogy ha δ teljes´ıti a(z) (103) felt´etelt, akkor az x0 vektor mellett teljes¨ ul a(z) (101) ´es (102) felt´etel, azaz az x0 vektor lehets´eges megold´asa a m´odos´ıtott feladatnak. Vizsg´aljuk a m´asodik k´erd´est. A szimplex m´odszer optimalit´asi kr´ıt´eriuma szerint (l´asd. 2. szekci´o) a lehets´eges x0 vektor akkor optim´alis vektor, ha ∆j (x0 ) = ∆0j − Q(x0 )∆00j ≥ 0, j = 1, 2, . . . , n. Mivel ∆0j = ∆00j = ∆j (x∗ ) = 0, ∀j ∈ JB , ez´ert az x0 vektor optimalit´as´ahoz el´egs´eges, ha (104)
∆j (x0 ) = ∆0j − Q(x0 )∆00j ≥ 0, ∀j ∈ JN .
Tekints¨ uk a(z) (104) k´epletet. Jegyezz¨ uk meg, hogy a ∆0j ´es ∆00j ´ert´ekek 0 k¨ozvetlen¨ ul nem f¨ uggnek a b ´es x vektorokt´ol. Ez´ert a jobb oldali b vektorban t¨ort´en˝o v´altoz´asok csak a Q(x) c´el-f¨ uggv´eny optim´alis ´ert´ek´ere hatnak. Teh´at m X pi x0i + p0 ∗ P (x ) = i=1 = Q(x0 ) = m X D(x∗ ) di x0i + d0 i=1
(105)
(100)
=
m X
i=1 m X i=1
pi (x∗i + δeiµ ) + p0 = di (x∗i + δeiµ ) + d0
P (x∗ ) + δh1 , D(x∗ ) + δh2
´ ´ A JOBB OLDALI KORLATVEKTORBAN ´ 2. VALTOZ AS
77
ahol h1 =
m X
pi eiµ , h2 =
i=1
m X
di eiµ .
i=1
Ahhoz, hogy teljes¨ ulj¨on a D(x) > 0, ∀x ∈ S felt´etel, sz¨ uks´eges a D(x∗ ) + δh2 > 0.
(106)
felt´etel teljes´ıt´ese. Az ut´obbi a k¨ovetkez˝o δ tartom´anyt adja: D(x∗ ) >− , if h2 > 0, h2 (107) δ ∗ < − D(x ) , if h2 < 0. h2 A(z) (105) haszn´alat´aval tov´abb´a ´at´ırhatjuk a(z) (104) felt´etelt a k¨ovetkez˝o form´aba: ∆0j ≥ ∆00j
(108)
P (x∗ ) + δh1 , ∀j ∈ JN . D(x∗ ) + δh2
A megfele˝o ´atalak´ıt´asok ut´an kapjuk a δ(∆0j h2 − ∆00j h1 ) ≥ ∆00j P (x∗ ) − ∆0j D(x∗ ),
∀j ∈ JN ,
felt´etelt, amelyb˝ol k¨ovetkezik, hogy δ(∆0j h2 − ∆00j h1 ) ≥ −∆j (x∗ )D(x∗ ), ∀j ∈ JN . Ebb˝ol kapjuk a k¨ovetkez˝o tartom´anyt: ½ ¾ ½ ¾ −∆j (x∗ )D(x∗ ) −∆j (x∗ )D(x∗ ) (109) max ≤ δ ≤ min , j∈JN j∈JN gj gj gj >0
gj <0
ahol gj = ∆0j h2 − ∆00j h1 , j ∈ JN . Teh´at ha δ teljes´ıti a(z) (109) ´es (107) felt´eteleket, akkor teljes¨ ul a(z) (104) felt´etelrendszer, ´es akkor az x0 vektor a m´odos´ıtott hiperbolikus programoz´asi feladatnak optim´alis megold´asa. ¨ Osszefoglal´ as: Ha δ kiel´eg´ıti a(z) (103), (107) ´es (109) felt´eteleket, akkor a(z) (100) k´epletb˝ ol meghat´ arozhat´ o x0 vektor optim´ alis megold´ asa a m´ odo0 s´ıtott (azaz a bµ → bµ = bµ + δ csere ut´ an kapott) hiperbolikus programoz´ asi feladatnak.
´ ´ ´ VIZSGALATA ´ IV. ERZ EKENYS EG
78
3. V´ altoz´ as a p sz´ aml´ al´ o vektorban Vizsg´aljuk meg azt az esetet, amikor a Q(x) c´el-f¨ uggv´eny sz´aml´al´oj´aban szerepl˝o p = (p1 , p2 , . . . , pn ) vektor pµ elem´et kicser´elj¨ uk a p0µ = (pµ + δ) elemre. Felt´etelezhetj¨ uk, hogy az eredeti (92)-(94) feladat optim´alis megold´asa az x∗ = (x∗1 , x∗2 , . . . , x∗m , 0, 0, . . . , 0)T . vektor. C´elunk az, hogy meghat´arozzuk a δ ´ert´ek olyan als´o ´es fels˝o hat´arait, amelyek mellett a pµ → p0µ csere nem hat az optim´alis b´azisra, ´es az x∗ vektor marad az optim´alis megold´as. Az ilyen csere hat´as´anak vizsg´alatakor a k¨ovetkez˝o k´et esetet kell megk¨ ul¨onb¨oztetn¨ unk: (1) µ ∈ JN = {m + 1, m + 2, . . . , n}, azaz µ nem-b´azis index; (2) µ ∈ JB = {1, 2, . . . , m}, azaz µ b´azis index. Nyilv´anval´o, hogy a pµ → p0µ csere nem v´altoztatja az S lehets´eges halmazt, ez´ert az x∗ vektor lehets´eges megoldasa a m´odos´ıtott feladatnak. Azonban a p vektorban t¨ort´en˝o v´altoz´as megv´altoztatja a Q(x) c´el-f¨ uggv´eny ´ert´ek´et, ´ ´es ezzel v´altoztatja a ∆j (x∗ ) = ∆0j − Q(x∗ ) ∆00j determin´ansokat is. Eppen emiatt a pµ → p0µ csere mellett el˝ofordulhat, hogy az eredeti feladatban kapott x∗ optim´alis megold´as az u ´j feladatban m´ar nem lesz optim´alis. Sz´oval, most ki kell der´ıten¨ unk, hogy a pµ → p0µ csere hogyan hat a ∆j (x∗ ), j = 1, 2, . . . , n, determin´ansokra. 1. Eset (µ ∈ JN ): Ebben az esetben, mivel µ nem-b´azis index, ez´ert x∗µ = 0 ´es Q(x∗ ) ´ert´eke nem v´altozik. Tov´abb´a nem-b´azis index˝ u pµ egy¨ utthat´o nem szerepel a b´azis index˝ u ∆0j , j = 1, 2, . . . , m, ´ert´ekekben, ´es ez´ert a pµ ´ert´ek´eben t¨ort´en˝o v´altoz´as nem befoly´asolhatja a b´azis ∆0j , j = 1, 2, . . . , m, ´ert´eket. Azonban pµ egy¨ utthat´o egyetlen egy nem-b´azis index˝ u ∆0µ
=
m X
pi xiµ − pµ .
i=1
´ert´ekben sem szerepel. Ez´ert a pµ → p0µ csere eset´en a ∆0µ ´ert´ek a k¨ovetkez˝o m´odon v´altozik: ˜ 0µ = ∆ =
m X
i=1 m X i=1
pi xiµ −
p0µ
=
m X
pi xiµ − (pµ + δ) =
i=1
pi xiµ − pµ − δ = ∆0µ − δ.
´ ´ A p SZAML ´ ´ O ´ VEKTORBAN 3. VALTOZ AS AL
79
Sz´oval, ˜ µ (x∗ ) = (∆0µ − δ) − Q(x∗ )∆00µ = ∆µ (x∗ ) − δ. ∆ Ebb˝ol ad´odik a k¨ovetkez˝o felt´etel: δ ≤ ∆µ (x∗ ).
(110)
¨ Osszefoglal´ as: Ha a µ ∈ JN ´es δ kiel´eg´ıti a(z) (110) felt´etelt, akkor az eredeti feladat x∗ optim´ alis megold´ asa az u ´j feladatnak is optim´ alis megold´ asa. 2. Eset (µ ∈ JB ): Mivel µ a b´azis index, ez´ert a pµ → p0µ csere megv´altoztatja a P (x) ´es Q(x) f¨ uggv´enyek optim´alis ´ert´ek´et. Nyilv´anval´o, hogy ilyenkor X X P˜ (x∗ ) = pj x∗j + p0µ x∗µ + p0 = pj x∗j + (pµ + δ)x∗µ + p0 = j∈JB
=
j6=µ m X
j∈JB
j6=µ
pj x∗j + p0 + δx∗µ = P (x∗ ) + δx∗µ ,
i=1
´es ez´ert
˜ ∗ P (x∗ ) + δx∗µ ˜ ∗ ) = P (x ) = . Q(x D(x∗ ) D(x∗ ) Ezenk´ıv¨ ul a pµ → p0µ csere miatt v´altoznak a nem-b´azis index˝ u ∆0j , j ∈ JN ´ert´ekek is: X X ˜ 0j = pi xij + (pµ + δ)xµj − pj = pi xij + p0µ xµj − pj = ∆ i∈JB
i∈JB
=
i6=µ m X
i6=µ
pi xij − pj + δxµj = ∆0j + δxµj , j ∈ JN .
i=1
Az el˝oz˝o k´epleteket figyelembe v´eve most meghat´arozhatjuk a nem-b´azis index˝ u ∆j (x∗ ), j ∈ JN determin´ansokat: ˜ j (x∗ ) = ∆ ˜ 0j − Q(x ˜ ∗ )∆00j = ∆ (111)
= ∆0j + δxµj −
P (x∗ ) + δx∗µ 00 ∆j , j ∈ J N . D(x∗ )
Ami a b´azis indexeket (j ∈ JB ) illeti, nyilv´anval´o, hogy b´azis index˝ u ∆0j ´ert´ekek nem v´altoznak, ez´ert ˜ 0j = ∆0j = 0, ∀j ∈ JB , ∆ ´es emiatt
˜ j (x∗ ) = ∆j (x∗ ) = 0, ∀j ∈ JB . ∆
A szimplex m´odszer elm´elete szerint ha teljes¨ ul a ∗ ˜ j (x ) ≥ 0, ∀j ∈ J (112) ∆
´ ´ ´ VIZSGALATA ´ IV. ERZ EKENYS EG
80
felt´etel, akkor az x∗ vektor optim´alis megold´asa az u ´j feladatnak. Mivel ∆0j = ∆00j = ∆j (x∗ ) = 0, ∀j ∈ JB , ez´ert a(z) (112) felt´etelekb˝ol csak azokra kell figyeln¨ unk, amelykn´el a j index nem-b´azis. Sz´oval, a(z) (112) helyett kapjunk a k¨ovetkez˝ot: ˜ j (x∗ ) ≥ 0, ∀j ∈ JN . ∆ Az ut´obbib´ol a(z) (111) k´eplet felhaszn´al´as´aval kapjuk a k¨ovetkez˝o rendszert: P (x∗ ) + δx∗µ 00 ∆0j + δxµj − ∆j ≥ 0, ∀j ∈ JN . D(x∗ ) Ebb˝ol a rendszerb˝ol ad´odik, hogy δ(xµj D(x∗ ) − ∆00j x∗µ ) ≥ −(D(x∗ )∆0j − P (x∗ )∆00j ), ∀j ∈ JN , vagy m´ask´eppen δ(xµj D(x∗ ) − ∆00j x∗µ ) ≥ −∆j (x∗ )D(x∗ ), ∀j ∈ JN . Az ut´obbib´ol kapjuk a k¨ovetkez˝o tartom´anyt: ¾ ¾ ½ ½ −∆j (x∗ )D(x∗ ) −∆j (x∗ )D(x∗ ) ≤ δ ≤ min , (113) max j∈JN j∈JN gj gj gj >0
gj <0
ahol (114)
gj = xµj D(x∗ ) − ∆00j x∗µ , ∀j ∈ JN .
¨ Osszefoglal´ as: Ha a µ ∈ JB ´es δ kiel´eg´ıti a(z) (113) felt´etelt, akkor az eredeti feladat x∗ optim´ alis megold´ asa az u ´j feladatnak is optim´ alis megold´ asa.
4. V´ altoz´ as a p0 sz´ aml´ al´ o egy¨ utthat´ oban Tekints¨ uk a p0 egy¨ utthat´oban t¨ort´en˝o p0 → p00 v´altoz´ast. Mint ahog mindig, felt´etelezz¨ uk, hogy az eredeti feladat otim´alis megold´asa az x∗ = (x∗1 , x∗2 , . . . , x∗m , 0, 0, . . . , 0)T vektor. ure, ´es vizsg´aljuk meg Cser´elj¨ uk ki a p0 egy¨ utthat´ot p00 = (p0 + δ) ´ert´ek˝ hat´as´at ennek a cser´enek az optim´alis megold´asra. Els˝osorban azt jegyezz uk meg, hogy a p0 → p00 nem v´altoztaja az S lehets´eges halmazt, ez´ert tetsz˝oleges p0 → p00 csere mellett az x∗ vektor lesz a lehets´eges megold´asa az u ´j feladatnak. Ugyanakkor a p0 → p00 csere ∗ miatt megv´altozik a P (x ) ´ert´ek, ´es emiatt v´altozik Q(x∗ ), az ut´obbi pedig a ∆j (x∗ ), j = 1, 2, . . . , n, ´ert´ekek v´altoz´as´ahoz vezet, ´es ezzel befoly´asolhatja az x∗ vektor optimalit´as´at.
´ ´ A p0 SZAML ´ ´ O ´ EGYUTTHAT ¨ ´ 4. VALTOZ AS AL OBAN
81
Hat´arozzuk meg a P (x∗ ), a Q(x∗ ) ´es a ∆j (x∗ ), j = 1, 2, . . . , n, ´ert´ekekben t¨ort´en˝o v´altoz´asokat. Nyilv´anval´o, hogy P˜ (x∗ ) =
n X
pj x∗j + p00 =
n X
pj x∗j + p0 + δ = P (x∗ ) + δ,
j=1
j=1
∗ ˜ ∗ ˜ ∗ ) = P (x ) = P (x ) + δ Q(x D(x∗ ) D(x∗ )
´es ez´ert (115)
∗ ˜ j (x∗ ) = ∆0j − Q(x ˜ ∗ ) ∆00j = ∆0j − P (x ) + δ ∆00j , j = 1, 2, . . . , n. ∆ D(x∗ )
A szimplex m´odszer elm´elete szerint ha teljes¨ ul a ˜ j (x∗ ) ≥ 0, ∀j ∈ J = {1, 2, . . . , n}, ∆ felt´etel-rendszer, akkor az x∗ vektor az u ´j (a p0 → p00 csere ut´an kapott) feladatnak optim´alis megold´asa. Tov´abb´a, mivel p0 nem szerepel sem a ∆0j , j = 1, 2, . . . , n, ´ert´ekekben, sem a ∆00j , j = 1, 2, . . . , n, ´ert´ekekben, ez´ert ezek az ´ert´ekek nem v´altoznak. Innen k¨ovetkezik, hogy b´azis index˝ u ∆0j ´es ∆00j (azaz ∀j ∈ JB ) maradnak nulla ´ert´ek˝ uek, azaz ∆˜0j = ∆˜00j = ∆0j = ∆00j = 0, ∀j ∈ JB , ´es emiatt ˜ j (x∗ ) = ∆0j − Q(x ˜ ∗ ) ∆00j = 0, ∀j ∈ JB . ∆ Sz´oval, ahhoz, hogy x∗ vektor optim´alis megold´asa legyen az u ´j feladatnak, el´egend˝o, ha ˜ j (x∗ ) ≥ 0, ∀j ∈ JN . ∆ Innen a(z) (115) haszn´alat´aval kapjuk a k¨ovetkez˝ot: ∆0j −
P (x∗ ) + δ 00 ∆j ≥ 0, ∀j ∈ JN . D(x∗ )
Az ut´obbi a megfelel˝o ´atalak´ıt´asok ut´an adja a δ ∆00j ≤ ∆0j D(x∗ ) − P (x∗ )∆0j , ∀j ∈ JN felt´etelt, amelyb˝ol kapjuk, hogy ( ( ) ) ∆j (x∗ )D(x∗ ) ∆j (x∗ )D(x∗ ) ≤ δ ≤ min . (116) max j∈JN j∈JN ∆00j ∆00j ∆00 j <0
∆00 j >0
¨ Osszefoglal´ as: Ha δ kiel´eg´ıti a(z) (116) felt´etelt, akkor az eredeti feladat x∗ optim´ alis megold´ asa az u ´j feladatnak is optim´ alis megold´ asa.
´ ´ ´ VIZSGALATA ´ IV. ERZ EKENYS EG
82
5. V´ altoz´ as a d nevez˝ o vektorban Ebben a r´eszben vizsg´alni fogjuk azt az esetet, amikor a Q(x) c´el-f¨ uggv´eny D(x) nevez˝oj´eben szerepl˝o d = (d1 , d2 , . . . , dn ) vektor dµ eleme v´altozik. Tegy¨ uk fel, hogy x∗ = (x∗1 , x∗2 , . . . , x∗m , 0, 0, . . . , 0)T vektor az eredeti feladat optim´alis megold´asa. Cser´elj¨ uk ki a dµ elemet a d0µ = (dµ + δ) ´ert´ekre. Jegyezz¨ uk meg, hogy a dµ → d0µ csere nem v´altoztatja az S lehets´eges megold´ast, ´es ez´ert az x∗ az u ´j feladatnak lehets´eges megold´asa. Azon∗ ban valtozhat D(x ), v´altozhat Q(x∗ ) ´es ez´ert v´altozhatnak a ∆j (x∗ ) determin´ansok. Sz´oval, a dµ → d0µ csere miatt k´erd´esess´e v´alhat az x∗ vektor optimalit´asa. Tekints¨ uk a k¨ovetkez˝o k´et esetet: – µ ∈ JN = {m + 1, m + 2, . . . , n}, azaz µ nem-b´azis index; – µ ∈ JB = {1, 2, . . . , m}, azaz µ b´azis index. Mindenekel˝ott jegyezz¨ uk meg, hogy a dµ → d0µ csere nem v´altoztatja az eredeti feladat S lehets´eges halmaz´at, ´es ez´ert az x∗ vektor az u ´j feladatnak lehets´eges megold´asa lesz. ugg˝oen) a Ugyanakkor a dµ → d0µ csere miatt valtozhat (a µ indext˝ol f¨ D(x) ´es a Q(x) = P (x)/D(x) f¨ uggv´eny ´ert´eke. A ut´obbi pedig megv´altoztathatja a ∆j (x∗ ) = ∆0j − Q(x∗ )∆00j determin´ansokat, ´es ezzel befoly´asolhatja az x∗ vektor optimalit´as´at. Vizsg´aljuk meg a dµ → d0µ csere hat´as´at a ∆j (x∗ ) determin´ansokra. 1. Eset (µ ∈ JN ): Mivel µ nem-b´azis index, ez´ert x∗µ = 0 ´es Q(x) optim´alis ´ert´eke nem v´altozik. Jegyezz¨ uk meg, hogy ilyenkor D(x) ´ert´eke sem v´altozik, ´es ez´ert D(x) megtartja az ´ert´ek´enek pozitivit´as´at. Tov´abb´a, mivel dµ nem-b´azis egy¨ utthat´o, ´es nem szerepel b´azis index˝ u ∆00j , j ∈ JB , ´ert´ekekben, ez´ert a b´azis index˝ u ∆00j , j = 1, 2, . . . , m, ´ert´ekek nem v´altoznak. Azonban a dµ egy¨ utthat´o szerepel nem-b´azis ∆00µ , ´ert´ekben ∆00µ
=
m X i=1
di xiµ − dµ
´ ´ A d NEVEZO ˝ VEKTORBAN 5. VALTOZ AS
83
´es ez´ert a dµ → d0µ csere eset´en ˜ 00µ = ∆
m X
di xiµ − d0µ =
i=1
=
m X
m X
di xiµ − (dµ + δ) =
i=1
di xiµ − dµ − δ = ∆00µ − δ
i=1
´es emiatt
˜ µ (x∗ ) = ∆0µ − Q(x∗ )∆ ˜ 00µ = ∆ = ∆0µ − Q(x∗ )(∆00µ − δ) = ∆µ (x∗ ) + Q(x∗ ) δ. Az ut´obbi azt jelenti, hogy ha δ teljes´ıti a ∆µ (x∗ ) + Q(x∗ ) δ ≥ 0
(117)
felt´etelt, akkor az eredeti feledat x∗ optim´alis megold´asa optim´alis megold´asa lesz az u ´j feladatnak is. A(z) (117) felt´etel haszn´alat´aval a k¨ovetkez˝o tartom´anyt kapjuk: −∆µ (x∗ ) , ha Q(x∗ ) > 0, ≥ Q(x∗ ) −∆µ (x∗ ) (118) δ , ha Q(x∗ ) < 0, ≤ ∗) Q(x korl´atlan, ha Q(x∗ ) = 0. ¨ Osszefoglal´ as: Ha µ ∈ JN ´es δ kiel´eg´ıti a(z) (118) felt´etelt, akkor az eredeti feladat x∗ optim´ alis megold´ asa az u ´j feladatnak is optim´ alis megold´ asa.
2. Eset (µ ∈ JB ): Ebben az esteben a dµ → d0µ csere megv´altoztatja D(x∗ ) ´ert´eket, m´egpedig a k¨ovetkez˝o m´odon: X X ˜ ∗) = dj x∗j + (dµ + δ)x∗µ + d0 = dj x∗j + d0µ x∗µ + d0 = D(x j∈JB
j∈JB
j6=µ
j6=µ
= D(x∗ ) + δx∗µ , ´es ezzel megv´altoztatja a Q(x∗ ) ´ert´ek´et is: ∗ P (x∗ ) ˜ ∗ ) = P (x ) = Q(x . ˜ ∗) D(x∗ ) + δx∗µ D(x
Ezenk´ıv¨ ul, a D(x) nevez˝o nem lehet negat´ıv vagy nulla ´ert´ek˝ u, ebb˝ol keletkezik m´eg egy felt´etel: ˜ ∗ ) = D(x∗ ) + δx∗µ > 0, D(x amelyb˝ol kapjuk a k¨ovetkez˝o korl´atoz´ast: (119)
δ>
−D(x∗ ) . x∗µ
´ ´ ´ VIZSGALATA ´ IV. ERZ EKENYS EG
84
A(z) (119) k´epletben felt´etelezz¨ uk, hogy az x∗ vektor nem-degener´alt, ´es ∗ ∗ ez´ert xµ > 0. Nyilv´anval´o, ha x degener´alt, ´es az ´eppen µ-edik b´azis komponense nulla ´ert´ek˝ u, akkor a dµ → d0µ , µ ∈ JB , cser´enek nincsen semmi hat´asa a D(x) f¨ uggv´eny pozitivit´as´ara, ´es ez´ert δ ´ert´eke lehet korl´atlan. Tov´abb´a a dµ → d0µ , µ ∈ JB , csere megv´altoztatja a nem-b´azis index˝ u 00 ∆j , j ∈ JN , ´ert´ekeket X X ˜ 00j = di xij + (dµ + δ)xµj − dj = di xij + d0µ xµj − dj = ∆ i∈JB
i∈JB
=
i6=µ m X
i6=µ
di xij − dj + δxµj = ∆00j + δxµj , j ∈ JN .
i=1
de nem v´altoztatja meg sem a b´azis index˝ u ∆00j ´ert´ekeket, sem a b´azis index˝ u ∗ ∆j (x ) determin´ansokat, (∀j ∈ JB ). Ez´ert azok maradnak nulla ´ert´ek˝ uek, azaz (120)
˜ 00j = ∆00j = 0 ´es ∆ ˜ j (x∗ ) = ∆j (x∗ ) = 0, ∀j ∈ JB . ∆
Most pedig der´ıts¨ uk ki a v´altoz´asokat a nem-b´azis index˝ u ∆j (x∗ ), j ∈ JN , determin´ansokban: ˜ j (x∗ ) = ∆0j − Q(x ˜ ∗ )∆˜00 j = ∆ = ∆0j −
(121)
P (x∗ ) (∆00j + δxµj ), j ∈ JN . D(x∗ ) + δx∗µ
A szimplex m´odszer elm´elete szerint az u ´j feladat x∗ lehets´eges b´azismegold´asa optim´alis, ha ˜ j (x∗ ) ≥ 0, ∀j ∈ J = {1, 2, . . . , n}. ∆ Figyelembe v´eve a(z) (120) k´epleteket az ut´obbib´ol a(z) (121) haszn´alat´aval kapjuk a k¨ovetkez˝o optimalit´asi felt´etelt: ∆0j −
P (x∗ ) (∆00j + δxµj ) ≥ 0, ∀j ∈ JN , D(x∗ ) + δx∗µ
vagy (122)
∆0j ≥
P (x∗ ) (∆00j + δxµj ), ∀j ∈ JN . D(x∗ ) + δx∗µ
Tov´abb´a ´ırjuk ´at a(z) (122) felt´etelt a(z) (119) haszn´alat´aval a k¨ovetkez˝o form´aba: δ (∆0j x∗µ − P (x∗ ) xµj ) ≥ −(D(x∗ )∆0j − P (x∗ )∆00j ), ∀j ∈ JN , vagy δ (∆0j x∗µ − P (x∗ ) xµj ) ≥ −∆j (x∗ )D(x∗ ), ∀j ∈ JN .
´ ´ A d0 NEVEZO ˝ EGYUTTHAT ¨ ´ 6. VALTOZ AS OBAN
85
Az ut´obbib´ol ad´odik a k¨ovetkez˝o tartom´any: ½ ¾ ¾ ½ −∆j (x∗ )D(x∗ ) −∆j (x∗ )D(x∗ ) (123) max ≤ δ ≤ min , j∈JN j∈JN gj gj gj >0
gj <0
ahol gj = ∆0j x∗µ − P (x∗ ) xµj , ∀j ∈ JN . ¨ Osszefoglal´ as: Ha µ ∈ JB , az x∗ vektor nem-degener´ alt, ´es δ kiel´eg´ıt´ı a(z) (119) ´es (123) felt´eteleket, akkor az eredeti feladat x∗ optim´ alis megold´ asa az u ´j feladatnak is optim´ alis megold´ asa. Abban az esetben, ha az x∗ vektor degener´ alt, ´es ´eppen x∗µ = 0, akkor a(z) (119) felt´etel teljes´ıt´ese nem sz¨ uks´eges.
6. V´ altoz´ as a d0 nevez˝ o egy¨ utthat´ oban Ebben a szekci´oban tekints¨ uk a d0 → d00 = (d0 + δ) cser´et. Tegy¨ uk fel, hogy x∗ = (x∗1 , x∗2 , . . . , x∗m , 0, 0, . . . , 0)T vektor a(z) (92)-(94) eredeti hiperbolikus programoz´asi feladat optim´alis megold´asa a B = (A1 , A2 , . . . , Am ) b´azissal. Jegyezz¨ uk meg, hogy a d0 → d00 csere nem v´altoztatja meg a feladat lehets´eges halmaz´at, ´es ez´ert az eredeti hiperbolikus programoz´asi feladat x∗ optim´alis b´azismegold´asa lesz a lehets´eges b´azismegold´asa az uj feldatnak is. Azonban a d0 → d00 csere megv´altoztatja a D(x) ´es a Q(x) = P (x)/D(x) f¨ uggv´eny optim´alis ´ert´ek´et, ´es ez´ uttal megv´altoztathatja a ∆j (x∗ ) = ∆0j − Q(x∗ )∆00j , j = 1, 2, . . . , n, determin´ansokat. M´as szavakkal b´armely v´altoz´as a d0 egy¨ utthat´o ´ert´ek´eben az x∗ vektor optimalit´as´anak elveszt´es´ehez vezethet. Nyilv´anval´o, hogy a d0 → d00 cser´en´el a Q(x) c´el-f¨ uggv´eny D(x) nevez˝oj´enek ´ert´eke az x∗ pontban a k¨ovetkez˝o m´odon v´altozik: n n X X ˜ ∗) = D(x dj x∗j + d00 = dj x∗j + d0 + δ = D(x∗ ) + δ. j=1
j=1
Ebb˝ol kapjuk, hogy
∗ ∗ ˜ ∗ ) = P (x ) = P (x ) Q(x ˜ ∗) D(x∗ ) + δ D(x
´ ´ ´ VIZSGALATA ´ IV. ERZ EKENYS EG
86
´es ez´ert (124)
˜ j (x∗ ) = ∆0j − Q(x ˜ ∗ ) ∆00j = ∆0j − ∆
P (x∗ ) ∆00 , j = 1, 2, . . . , n. D(x∗ ) + δ j
˜ j (x∗ ) ´ert´ekek haszn´alat´aval azonnal kider¨ A kapott ∆ ul, hogy az adott δ ∗ mellett x optim´alis-e? Csak figyelembe kell venni, hogy a D(x) f¨ uggv´eny nem lehet negat´ıv vagy nulla ´ert´ek˝ u, ez´ert δ ´ert´eke csak olyan lehet, hogy D(x∗ ) + δ > 0. Ebb˝ol kapjuk az els˝o felt´etelt: δ > −D(x∗ ).
(125)
Tov´abb´a a szimplex m´odszer elm´elete szerint az x∗ vektor optim´alis megold´asa az u ´j feldatnak, ha ˜ j (x∗ ) ≥ 0, ∀j ∈ J = {1, 2, . . . , n}, ∆ Vegy¨ unk ´eszre, hogy a d0 egy¨ utthat´o nem szerepel se ∆0j , se ∆00j , j = 1, 2, . . . , n, ´ert´ekekben. Ez azt jelenti, hogy a b´azis index˝ u ∆0j ´es ∆00j ´ert´ekek megtartj´ak a nulla ´ert´eket az u ´j feladatban is, azaz ˜ 0j = ∆ ˜ 00j = ∆0j = ∆00j = 0, ∀j ∈ JB . ∆ Ebb˝ol k¨ovetkezik, hogy ˜ j (x∗ ) = ∆ ˜ 0j − Q(x ˜ ∗) ∆ ˜ 00j = 0 − Q(x ˜ ∗ ) 0 = 0, ∀j ∈ JB . ∆ Teh´at a d0 → d00 csere megv´altoztathatja a csak nem-b´azis index˝ u ∆j (x∗ ), j ∈ ∗ JN , determin´ansokat, ez´ert ahhoz, hogy az x vektor optim´alis megold´asa legyen az u ´j feladatnak, elegend˝o, ha teljes¨ ulnek a ˜ j (x∗ ) ≥ 0, ∀j ∈ JN , ∆ felt´etelek. Ily m´odon a(z) (124) haszn´alat´aval kapjuk a k¨ovetkez˝o felt´eteleket: ∆0j −
(126)
P (x∗ ) ∆00 ≥ 0, ∀j ∈ JN . D(x∗ ) + δ j
A(z) (125) k´eplet figyelembe v´etel´evel az ut´obbit ´at´ırhatjuk a k¨ovetkez˝o form´aba: δ∆0j ≥ −D(x∗ )(∆0j − Q(x∗ )∆00j ), ∀j ∈ JN , vagy δ∆0j ≥ −D(x∗ )∆j (x∗ ), ∀j ∈ JN . Az als´o ´es fels˝o korl´atok v´egleges form´aja a k¨ovetkez˝o: ) ( ) ( −∆j (x∗ )D(x∗ ) −∆j (x∗ )D(x∗ ) ≤ δ ≤ min . (127) max j∈JN j∈JN ∆0j ∆0j ∆0j >0
∆0j <0
´ ´ A d0 NEVEZO ˝ EGYUTTHAT ¨ ´ 6. VALTOZ AS OBAN
87
¨ Osszefoglal´ as: A kapott eredm´enyt megfogalmazhatjuk a k¨ ovetkez˝ ok´ent: ha a δ ´ert´ek teljes´ıti a(z) (125) ´es (127) felt´eteleket, akkor az eredeti hiperbolikus programoz´ asi feladat x∗ optim´ alis megold´ asa az u ´j feldatanak is optim´ alis megold´ asa.
V. Fejezet
Sz´ all´ıt´ asi Feladat Ebben a fejezetben egy speci´alis hiperbolikus programoz´asi feladattal fogunk foglalkozni. 1941-ben F.L.Hitchcok vetette fel az az´ota sz´all´ıt´asi feladat n´even ismert feladatot a line´aris programoz´asban. K´es˝obb a line´aris programoz´asi sz´all´ıt´asi feladatot ´altal´anos´ıtott´ak a hiperbolikus programoz´asra. Ennek a feladatnak t¨obb speci´alis v´altozata van, pl. hozz´ arendel´esi (ang.– ”assignment problem”) feladat, a ´trakod´ asos sz´ all´ıt´ asi (ang.–”transshipment problem”) feladat. Annak ellen´ere, hogy ezeket a speci´alis strukt´ ur´aj´ u feladatokat meg lehet oldani ´altal´anos szimplex m´odszerrel, gyakran ´erdemes alkalmazni az ´eppen ezekre a feladatokra kifejlesztett m´odszereket. Ebben a fejezeteben ezekkel a feladatokkal foglalkozunk. Ennek a fejezetnek a fel´ep´ıt´ese a k¨ovetkez˝o: el˝osz¨or megfogalmazzuk a feladatot, majd bevezetj¨ uk a megfelel˝o definici´okat ´es jel¨ol´eseket, majd ´attekintj¨ unk a speci´alis megold´asi m´odszereket, a v´eg´en pedig megoldunk egy numerikus p´eld´at.
1. A feladat megfogalmaz´ asa A sz´all´ıt´asi feladat megfogalmaz´as´aban a k¨ovetkez˝o adatok szerepelnek: 1.: m darab Ri -vel jel¨olt ”felad´ohely” (ang.–”supply points” vagy ”stores”), vagy ”rakt´ar”, ahol azonos anyagf´eles´eg (term´ekf´eles´eg) ´all rendelkez´esre k¨ ul¨onb¨oz˝o bi mennyis´egekben (”k´eszlet”) (ang.– ”supply”), i = 1, 2, . . . , m. 2.: n darab Bj -vel jel¨olt ”felvev˝ohely” (ang. – demand points vagy shops) vagy ”bolt”, amelyeken az adott anyagf´eles´egre (term´ekf´eles´egre) van sz¨ uks´eg adott aj mennyis´egben (”kereslet”) (ang. – ”demand”), j = 1, 2, . . . , n. 3.: p11 p12 . . . p1n p21 p22 . . . p2n P = ||pij ||m×n = .. .. .. .. . . . . pm1 pm2 . . . pmn 89
´ ´ITASI ´ V. SZALL FELADAT
90
profit m´atrix, amelynek pij eleme a profit, ha a sz´oban forg´o anyag egy egys´eg´enek sz´all´ıt´asa az i-edik rakt´arr´ol a j-edik boltba t¨ort´enik. 4.: d11 d12 . . . d1n d21 d22 . . . d2n D = ||dij ||m×n = .. .. .. .. . . . . dm1 dm2 . . . dmn k¨olts´eg m´atrix, amelynek dij eleme a k¨olts´eg, ha a sz´oban forg´o anyag egy egys´eg´enek sz´all´ıt´asa az i-edik rakt´arr´ol a j-edik boltba t¨ort´enik. 5.: p0 ´es d0 ´alland´ok – a sz´all´ıt´ast´ol nem f¨ ugg˝o ´alland´o profit ´es k¨olts´eg.
Vezess¨ unk be a k¨ovetkez˝o ismeretlen v´altoz´okat: xij – az i-edik rakt´arr´ol a j-edik boltba sz´all´ıtand´o anyagmennyis´eg, i = 1, 2, . . . , m, j = 1, 2, . . . , n. Az ilyen m´odon bevezetett jel¨ol´esekkel a probl´ema az al´abbi hiperbolikus programoz´asi feladattal ´ırhat´o le: Adott a
(128)
m X n X
P (x) i=1 j=1 Q(x) = = m n X X D(x)
pij xij + p0 , dij xij + d0
i=1 j=1
c´el-f¨ uggv´eny, amelyet maxim´aliz´alni kell a k¨ovetkez˝o felt´etelek mellett (129)
n X
xij ≤ bi , i = 1, 2, . . . , m,
m X
xij ≥ aj , j = 1, 2, . . . , n,
j=1
(130)
i=1
(131)
xij ≥ 0, i = 1, 2, . . . , m; j = 1, 2, . . . , n.
Itt ´es minden¨ utt a tov´abbiakban felt´etelezz¨ uk, hogy D(x) > 0, ∀x = (xij ) ∈ S, ahol S jel¨oli a(z) (129)-(131) felt´etelek ´altal meghat´arozott lehets´eges halmazt. Ezenk´ıv¨ ul felt´etelezz¨ uk, hogy (132)
bi > 0, aj > 0, i = 1, 2, . . . , m; j = 1, 2, . . . , n,
´ 1. A FELADAT MEGFOGALMAZASA
91
´es az ¨osszes k´eszlet legal´abb olyan nagy, mint az ¨osszes kereslet, azaz m X
(133)
bi ≥
i=1
n X
aj .
j=1
Az ilyen m´odon megfogalmazott feladat rendelkezik n´eh´any fontos tulajdons´aggal: – A feladat lehets´eges halmaza nem u ¨res, azaz S 6= ∅. – A feladat lehets´eges halmaza mindig korl´atos. – Innen k¨ovetkezik, hogy a feladat mindig megoldhat´o. T´enyleg, legyen x0ij =
(134)
bi aj , i = 1, 2, . . . , m, j = 1, 2, . . . , n, K
ahol K=
n X
aj > 0.
j=1
x0ij
Az ´ert´ekeket behelyettes´ıtve a(z) (129) ´es a(z) (130) felt´etelekbe a k¨ovetkez˝ot kapjuk: n X
x0ij
=
j=1
j=1
n bi bi X aj = K = bi , i = 1, 2, . . . , m, = K K K
n X bi aj
j=1
´es m X
x0ij
=
m X bi aj i=1
i=1
=
m n aj X (133) aj X bi ≥ aj = = K K K i=1
j=1
aj K = aj , j = 1, 2, . . . , n. K
Ez pedig azt jelenti, hogy az x0ij ´ert´ekek kiel´eg´ıt´ık a(z) (129) ´es (130) felt´eteleket. A(z) (132) ´es a(z) (134) k´epletekb˝ol nyilv´anval´ov´a v´alik, hogy x0ij > 0, i = 1, 2, . . . , m; j = 1, 2, . . . , n. Teh´at az x0ij ´ert´ekek kiel´eg´ıtik minden felt´etel´et a sz´all´ıt´asi feladatnak. Ezzel megmutattuk, hogy a feladat lehets´eges halmaza nem u ¨res. Tov´abb´a a(z) (129) ´es (131)-b´ol k¨ovetkezik, hogy 0 ≤ xij ≤ bi , i = 1, 2, . . . , m; j = 1, 2, . . . , n. Ebb˝ol pedig k¨ovetkezik, hogy S korl´atos.
´ ´ITASI ´ V. SZALL FELADAT
92
V´eg¨ ul, mivel P (x) ´es D(x) line´aris f¨ uggv´enyek, m´eg ezenk´ıv¨ ul D(x) > 0, ∀x ∈ S, ez´ert a Q(x) f¨ uggv´eny korl´atos, ´es ez´ert az adott sz´all´ıt´asi feladat megoldhat´o. V.1. Defin´ıci´ o. Ha ¨osszes k´eszlet pontosan megegyezik az ¨osszes kereslettel, azaz m X
(135)
i=1
bi =
n X
aj ,
j=1
akkor a feladatot egyens´ ulyozott feladatnak nevezz¨ uk (angolul – balanced transportation problem, oroszul – ”sbalansirovanna transportna zadaqa”). Egy´ ebk´ent a feladatot nyitott feladatnak szokt´ak nevezni (angolul – open transportation problem vagy un-balanced transportation problem, oroszul – ”nesbalansirovanna transportna zadaqa” vagy ”otkryta transportna zadaqa”). A(z) (128)-(131) sz´all´ıt´asi feladatot n´eha m´eg nem-korl´ atos sz´ all´ıt´ asi feladatnak is nevezik, mivel a feldatban nincsenek megadva k¨ozvetlen form´aban az xij v´altoz´okhoz tartoz´o fels˝o korl´atok. Meg kell jegyezn¨ unk, hogy a(z) (129) ´es a(z) (131) felt´etelek m´egis magukban foglalnak (de nem k¨ozvetlen m´odon!) fels˝o korl´atokat az xij v´altoz´okra: xij ≤ min {bi }, i = 1, 2, . . . , m, j = 1, 2, . . . , n. 1≤i≤m
Ha a sz´all´ıt´asi feladatban az ¨osszes k´eszlet szigor´ uan kisebb az ¨osszes keresletn´el, elvileg a feladat nem megoldhat´o. Azonban ilyenkor az u ´n. fikt´ıv rakt´ ar (ang.–fictive supply point vagy dummy supply point) bevezet´es´evel a feladatot k¨onnyen ´at lehet alak´ıtani az egyens´ ulyozott form´aba. Ezenk´ıv¨ ul a feladatban el˝ofordulhat, hogy az ¨osszes k´eszlet szigor´ uan nagyobb az ¨osszes keresletn´el. Term´esztesen az ilyen feladat megoldhat´o, de az ilyen feladatnak az egyens´ ulyozott form´aba val´o ´atalak´ıt´asakor u ´n. fikt´ıv boltot (ang.–fictive demand point) szoktak haszn´alni. Ezeknek a technik´aknak r´eszletes le´ır´as´at megtal´alhatjuk p´eld´aul a k¨ovetkez˝o k¨onyvekben [80], [190].
2. Hurokszerkeszt´ eses Szimplex M´ odszer Tekints¨ uk a k¨ovetkez˝o kanonikus sz´all´ıt´asi feladatot: n m X X pij xij + p0 P (x) i=1 j=1 (136) Q(x) = −→ max = m n XX D(x) dij xij + d0 i=1 j=1
´ ´ 2. HUROKSZERKESZTESES SZIMPLEX MODSZER
93
a k¨ovetkez˝o felt´etelek mellett n X xij = bi , i = 1, 2, . . . , m, (137) j=1
(138)
m X
xij = aj , j = 1, 2, . . . , n,
i=1
(139)
xij ≥ 0, i = 1, 2, . . . , m; j = 1, 2, . . . , n,
ahol D(x) > 0, ∀x = (xij ) ∈ S. A(z) (137)-(138) felt´eteleknek megfelel a k¨ovetkez˝o m´atrix: b1 1 1 ··· 1 b2 1 1 ··· 1 .. .. . . 1 1 · · · 1 bm , A |R = 1 1 1 a1 1 1 1 a2 . . . . .. .. .. .. ··· 1 1 1 an
ahol R-rel jel¨olt¨ uk a bi k´eszleteket ´es az aj keresleteket tartalmaz´o R = (b1 , b2 , . . . , bm , a1 , a2 , . . . , an )T , vektort.
Jel¨olje Aij , i = 1, 2, . . . , m, j = 1, 2, . . . , n, az A (m + n sorb´ol ´es m × n oszlopb´ol ´all´o) m´atrix oszlopait. Nyilv´anval´o, hogy az Aij oszlop-vektor ’1’-t tartalmaz az i-edik ´es az (m+j)-edik pozici´oban. Minden m´as eleme egyenl˝o null´aval. V.1. T´ etel (Redundancia). A(z) (137)-(138) felt´etel-rendszerben van egyetlen egy redund´ans felt´etel. Ha az adott felt´etel-rendszerb˝ol elt´avol´ıtunk tetsz˝olegesen egy felt´etelt, akkor a t¨obbi felt´etellel olyan line´arisan f¨ uggetlen rendszert alkotnak, amelynek a rangja m + n − 1. Az ´all´ıt´as bizony´ıt´asa megtal´alhat´o K.G.Murty [137] k¨onyv´eben. V.2. Defin´ıci´ o. Tetsz˝oleges m + n − 1 darab Aij vektorb´ol ´all´o (line´arisan f¨ uggetlen) B rendszert b´ azisnak fogunk nevezni. P´eld´aul a B = (A11 , A12 , . . . , A1n , A21 , A22 , . . . , A2,m−1 ) rendszer nevezhet˝o b´azisnak, mert ´eppen m+n−1 darab Aij vektor szerepel benne.
´ ´ITASI ´ V. SZALL FELADAT
94
V´alasszunk ki az A m´atrixb´ol m + n − 1 darab Aij vektorb´ol ´all´o B b´azist. Jel¨olj¨ uk JB -vel a kiv´alasztott vektorok (ij) indexp´arjait. Ha J-vel jel¨olj¨ uk az ¨osszes lehets´eges (ij) indexp´art, akkor a JN = J \JB index-halmaz jel¨oli azoknak az Aij vektorok indexparjait, amelyek nincsenek a b´azisban. V.3. Defin´ıci´ o. Azt fogjuk mondani, hogy az x = (xij ) v´altoz´o a(z) (136)(139) feladat b´ azismegold´ asa, ha x kiel´eg´ıti a X Aij xij = R ´es xij = 0, ∀(ij) ∈ JN . (ij)∈JB
felt´etelt. A szok´asos m´odon ha az xij v´altoz´o (ij) indexe a JB halmazban van (azaz (ij) ∈ JB ), akkor ezt a v´altoz´ot b´ azisv´ altoz´ onak fogjuk nevezni. V.4. Defin´ıci´ o. Azt fogjuk mondani, hogy az x b´azismegold´as degener´ alt, ha leg´alabb egy b´aziseleme egyenl˝o null´aval, azaz ha ∃(ij) : (ij) ∈ JB , olyan, hogy xij = 0. Egy´ebk´ent az x b´azismegold´ast nem-degener´ altnak nevezz¨ uk. V.5. Defin´ıci´ o. Azt fogjuk mondani, hogy az x = (xij ) b´azismegold´as a(z) (136)-(139) feladat lehets´ eges b´ azismegold´ asa, ha minden xij b´aziseleme (azaz (ij) ∈ JB , ) nem-negat´ıv. Aa ´altal´anos sz´all´ıt´asi feladatt´ol elt´er˝oen el˝ofordulhat, hogy a kanonikus sz´all´ıt´asi feladat nem megoldhat´o. V.2. T´ etel. A(z) (136)-(139) kanonikus sz´all´ıt´asi feladat megoldhat´o akkor ´es csak akkor, ha teljes¨ ul a m n X X (140) bi = aj . i=1
j=1
egyens´ ulyi felt´ etel (angolul – balance equality, oroszul – ”uslovie ba-
lansa”).
A k¨ovetkez˝o ´all´ıt´asok tov´abbi fontos tulajdons´agait adj´ak meg a kanonikus sz´all´ıt´asi feladatnak. V.3. T´ etel (Eg´ esz´ ert´ ek˝ us´ eg). Ha minden aj ´es bi egy¨ utthat´o a(z) (136)(139) feladatban pozit´ıv ´es eg´esz ´ert´ek˝ u, akkor tetsz˝oleges b´azismegold´asa csak eg´esz sz´amokb´ol ´all. Teh´at ha minden aj ´es bi egy¨ utthat´o pozit´ıv ´es eg´esz ´ert´ek˝ u, ´es teljes¨ ul az egyens´ ulyi felt´etel, akkor a feladatnak van eg´esz´ert´ek˝ u optim´alis megold´asa x∗ . Vezess¨ uk be a k¨ovetkez˝o speci´alis v´altoz´okat: a P (x) f¨ uggv´enyhez rendelj¨ uk hozz´a az u0i , i = 1, 2, . . . , m, ´es vj0 , j = 1, 2, . . . , n, v´altoz´okat,
´ ´ 2. HUROKSZERKESZTESES SZIMPLEX MODSZER
95
a D(x) f¨ uggv´enyhez pedig rendelj¨ uk hozz´a az u00i , i = 1, 2, . . . , m, ´es 00 vj , j = 1, 2, . . . , n, v´altoz´okat. A vj0 ´es vj00 v´altoz´ok index szerint megfelelnek a ”boltoknak”, az u0i ´es u00i v´altoz´ok pedig index szerint megfelenek a ”rakt´aroknak”. A v´altoz´ok meghat´aroz´as´ahoz haszn´aljuk az u0i + vj0 = pij , (ij) ∈ JB ,
(141) ´es az
u00i + vj00 = dij , (ij) ∈ JB .
(142) egyenletrendszereket.
A tov´abbiakban az u0i , vj0 , u00i , ´es vj00 v´altoz´ok haszn´alat´aval vezess¨ uk 00 0 be a k¨ovetkez˝o ∆ij ´es ∆ij ´ert´ekeket: ) ∆0ij = u0i + vj0 − pij i = 1, 2, . . . , m, j = 1, 2, . . . , n. (143) ∆00ij = u00i + vj00 − dij Tov´abb´a vezess¨ uk be az Ui (x) = u0i − Q(x) u00i =
u0i Q(x) u00i 1
, i = 1, 2, . . . , m,
Vj (x) = vj0 − Q(x) vj00 =
vi0 Q(x) vi00 1
, j = 1, 2, . . . , n,
´es
determin´ansokat, majd Zij (x) = Ui (x) + Vj (x), i = 1, 2, . . . , m, j = 1, 2, . . . , n, ´es Cij (x) = pij − Q(x) dij , i = 1, 2, . . . , m, j = 1, 2, . . . , n, ´ert´ekeket, v´eg¨ ul a ∆ij (x) = Zij (x) − Cij (x), i = 1, 2, . . . , m, j = 1, 2, . . . , n. determin´ansokat. K¨onnyen bel´athat´o, hogy a ∆ij (x) determin´ansokat kifejezhetj¨ uk a k¨ovetkez˝o m´odon is: (144)
∆ij (x) = ∆0ij − Q(x)∆00ij , i = 1, 2, . . . , m, j = 1, 2, . . . , n.
Az adott jel¨ol´esek haszn´alat´aval fogalmazzuk meg a k¨ovetkez˝o optimalit´asi krit´eriumot: V.4. T´ etel (Optimalit´ asi krit´ erium). A(z) (136)-(139) kanonikus sz´all´ıt´asi feladat x = (xij ) lehets´eges b´azismegold´asa optim´alis, ha teljes¨ ulnek a (145) felt´etelek.
∆ij (x) ≥ 0, i = 1, 2, . . . , m, j = 1, 2, . . . , n.
´ ´ITASI ´ V. SZALL FELADAT
96
A feladathoz tartoz´o adatokat megfelel˝o fel´ep´ıt´es˝ u sz´all´ıt´asi szimplex t´abl´azatban szokt´ak tartani ´es kezelni (l´asd. 1. ´abra), ahol Tij jel¨oli xij b´aBolt 1
Bolt 2
p11 Rakt´ar 1
p12 T11
.. .
T22
.. .
dm1 Kereslet
...
T1n
b1
T2n
b2
.. .
.. .
Tmn
bm
d2n
.. .
.. .
Tm2
...
pm2 Tm1
K´eszlet
d1n p2n
d22
pm1 Rakt´ar m
...
d12 p22 T21
d21
Bolt n p1n
T12
d11 p21 Rakt´ar 2
...
pmn
dm2
dmn
a1
a2
...
an
1. T´ abl´ azat. Sz´all´ıt´asi szimplex t´abl´azat.
zisv´altoz´okat, ha (ij) ∈ JB vagy ∆ij (x) determin´ansokat, ha (ij) ∈ JN . Teh´at a t´abl´azat k¨ ul¨onb¨oz˝o cell´ai a k¨ovetkez˝o tartalm´ uak: pij xij
,
∀(ij) ∈ JB ,
dij ´es ∆ij (x) dij
∆0ij
pij
pij
∆ij (x)
vagy dij
, ∆00ij
∀(ij) ∈ JN .
V.6. Defin´ıci´ o. A huroknak (angolul – circle vagy loop, oroszul – ”cikl”) nevezz¨ uk az olyan rendezett (ij) indexp´arokat tartalmaz´o indexhalmazt, amelyben van legal´abb n´egy elem, ´es ezek az index-elemek rendelkeznek a k¨ovetkez˝o tulajdons´agokkal: (1) Tetsz˝oleges egym´ast k¨ovet˝o indexp´arnak a szimplex t´abl´aban vagy azonos oszlop, vagy azonos sor felel meg. (2) Minden sorban ´es minden oszlopban van legfeljebb kett˝o hurokhoz tartoz´o indexp´ar. (3) A hurok utols´o indexp´arja vagy sorban vagy oszlopban megegyezik a hurok els˝o indexp´arj´aval.
´ ´ 2. HUROKSZERKESZTESES SZIMPLEX MODSZER
97
Azok a hurkok, amelyeket majd haszn´alni fogunk, rendelkeznek m´eg egy speci´alis tulajdons´aggal: A hurok els˝ o eleme, mondjuk (rk) legyen nem-b´ azis, azaz (rk) ∈ JN , az o ¨sszes t¨ obbi eleme meg legyen b´ azisban. Ilyen hurok eset´en az (rk) index˝ u cell´at a hurkot gener´ al´ o cell´anak szokt´ak nevezni. 1 →
1 2 3 4
2 ↓ →
3
4
1 1 2 3 4
↓
↑
←
2
3 →
4
5 ↓ ←
↓ →
↑
2. T´ abl´ azat. Sz´all´ıt´asi feladat – hurkokkal
A(z) 2. t´abl´aban ´abr´azolt p´eld´ak tartamazz´ak a k¨ovetkez˝o k´et hurkot: (1, 1) → (1, 2) → (2, 2) → (2, 4) → (4, 4) → (4, 1) → (1, 1) ´es (1, 3) → (1, 5) → (2, 5) → (2, 1) → (4, 1) → (4, 3) → (1, 3). A(z) 3. t´abl´an felt¨ untetett p´eld´ak nem tartalmaznak hurkokat. Val´oban, a bal oldali p´eld´aban a legfels˝o sor tartalmaz kett˝on´el t¨obb cell´at, a jobb oldali p´eld´aban felt¨ untetett u ´tvonal pedig nem alkot hurkot az´ert, mert a t´abla m´asodik ´es harmadik oszlopa csak egy-egy cell´at tartalmaz.
1 2 3
1 → ↑
2
3 →
4
5 ↓ ←
1 2 3 4
1 →
2 ↓
↑
3
←
3. T´ abl´ azat. Sz´all´ıt´asi feladat – hurkok n´elk¨ ul
Tegy¨ uk fel, hogy B egy b´azist jel¨ol, ´es x jel¨oli ennek a b´azisnak megfelel˝o b´azismegold´ast. Vizsg´aljuk meg az x vektort az optimalit´as szempontj´ab´ol. Els˝osz¨or ´all´ıtsuk ¨ossze a(z) (141) ´es a(z) (142) rendszereket, majd az ¨ossze´all´ıtott egyeletrenszerek megold´as´aval hat´arozzzuk meg az u0i , vj0 , u00i , ´es vj00 v´altoz´ok ´ert´ek´et. Jegyezz¨ uk meg, hogy a(z) (141) ´es a(z) (142) rendszer ¨osszesen (m + n − 1) + (m + n − 1) egyenletet tartalmaz, a v´altoz´ok sz´ama pedig (m + n) + (m + n). Mivel ezeknek a rendszereknek t¨obb megold´asa van, ez´ert minden rendszerben egy-egy v´altoz´ot szabadon v´alaszthatunk meg. Megegyez´es szerint ilyenkor u01 = 0, u001 = 0
´ ´ITASI ´ V. SZALL FELADAT
98
´ert´ekekkel szokt´ak ind´ıtani a sz´amol´ast. Kisz´am´ıtva ezeket a v´altoz´okat ´all´ıtsuk ¨ossze a ∆0ij , ∆00ij ´es ∆0ij (x) ´ert´ekeket minden nem-b´azis cell´ara. Ilyenkor a k¨ovetkez˝o k´et eset fordulhat el˝o: (1) Minden nem-b´azis ∆ij (x), ∀(ij) ∈ JN , nem-negat´ıv. Mivel ∆ij (x) = 0, ∀(ij) ∈ JB , ez azt jelenti, hogy ∆ij (x) ≥ 0, ∀(ij) ∈ J. (2) A nem-b´azis ∆ij (x) ´ert´ekek k¨oz¨ott van legal´abb egy negat´ıv ´ert´ek˝ u, azaz − JN = {(ij)| (ij) ∈ JN , ∆ij (x) < 0} 6= ∅. Az 1. esetben az optimalit´asi krit´eriumnak (l´asd. V.4. t´etel) megfelel˝oen az aktu´alis x lehets´eges b´azismegold´as optim´alis. Eljutottunk az optim´alis megold´ashoz. V´ege. − A 2. esetben a JN index-halmazb´ol ki kell v´alasztanunk egy (rk) indexp´art, majd az xrk v´altoz´ot bevezetj¨ uk a b´azisba a k¨ovetkez˝o szab´alyok szerint:
– Els˝osz¨or jel¨olj¨ uk az (rk) index˝ u cell´at ’+’-jellel, ´es ebb˝ol a cell´ab´ol kiindulva ´ep´ıts¨ unk fel hurkot u ´gy, hogy k¨ozben jel¨olj¨ uk ’-’ ´es ’+’ jellel felv´altva a hurokhoz tartoz´o cell´akat. A hurok elk´esz´ıt´ese ut´an meghat´arozhatjuk a θ = min xij = xf q ,
(146)
− (ij)∈JB
–
– – –
´ert´eket, ahol JB− jel¨oli azoknak a b´aziscell´aknak az indexhalmaz´at, amelyek ’-’ jellel szerepelnek a hurokban. Az ( xij − θ, ha (ij) ∈ JB− , xij (θ) = xij + θ, ha (ij) ∈ JB+ , k´eplet haszn´alat´aval sz´amoljuk ki az u ´j b´azishoz tartoz´o b´azisv´altoz´okat. Itt JB+ jel¨oli azoknak a b´aziscell´ak az indexhalmaz´at, amelyek ’+’ jellel szerepelnek a hurokban. Minden nem-b´azis v´altoz´o ´ert´eke marad nulla. Az u ´j b´azisba ker¨ ul˝o xrk v´altoz´o u ´j ´ert´eke xrk (θ) = θ. Az xf q b´azisv´altoz´o kiker¨ ul a b´azisb˝ol, ´ıgy az u ´j ´ert´eke xf q (θ) = 0.
Az x(θ) u ´j b´azismegold´as el˝o´all´ıt´as´at k¨ovet˝oen u ´jra (m´ar az u ´j b´azisban) kisz´amolhatjuk az u0i , vj0 , u00i , vj00 v´altoz´okat ´es ∆0ij , ∆00ij ∆0ij (x) ´ert´ekeket, amelyek seg´ıts´eg´evel megvizsg´alhatjuk az aktu´alis lehets´eges b´azismegold´ast az optimalit´as szempontj´ab´ol. Mivel a kanonikus egyens´ ulyozott sz´all´ıt´asi feladat megoldhat´o, ´es az S lehets´eges halmazhoz tartoz´o b´azismegold´asok (cs´ ucspontok) sz´ama v´eges, ez´ert a fenti elj´ar´as v´eges sz´am´ u ism´etl´ese ut´an eljutunk az optim´alis megold´ashoz.
´ LEHETSEGES ´ ´ ´ ELO ˝ ALL ´ ´ITASA ´ 3. AZ INDULO BAZISMOGOLD AS
99
Az adott szekci´o befejez´ese el˝ott meg kell jegyezn¨ unk, hogy a hurokszerkeszt´eses szimplex m´odszer haszn´alata sor´an kider¨ ulhet, hogy a feladat aktu´alis lehets´eges b´azismegold´asa degener´alt. Tegy¨ uk fel, hogy a θ ´ert´ek meghat´aroz´asakor kider¨ ult, hogy a(z) (146) k´epletben minim´alis ´ert´ek t¨obb cell´aban is el´erhet˝o, azaz θ = min xij = xf1 q1 = xf2 q2 = . . . = xfh qh . − (ij)∈JB
Az ut´obbi azt jelenti, hogy az u ´j b´azisban szerepl˝o b´azisv´altoz´ok k¨oz¨ott lesznek nulla´ert´ek˝ uek, azaz az u ´j b´azismegold´as degener´alt. Tegy¨ uk fel, hogy az x lehets´eges b´azismegold´as degener´alt. Ilyenkor el˝ofordulhat, hogy az u ´j hurokban egy vagy t¨obb nulla ´ert´ek˝ u b´azisv´altoz´o szerepel ’-’ jellel. Nyilv´anval´o, hogy emiatt a θ ´ert´eke szint´en nulla lesz, azaz θ = 0. Az ut´obbi pedig azt jelenti, hogy a c´el-f¨ uggv´eny ´ert´eke ilyenkor nem v´altoz´ık. Az ilyen cikliz´al´as elker¨ ul´ese ´erdek´eben ugyanazokat a speci´alis szab´alyokat haszn´alhatjuk, amelykr˝ol sz´o volt a(z) 9. ´alfejezetben.
3. Az Indul´ o Lehets´ eges B´ azismogold´ as El˝ o´ all´ıt´ asa A hurokszerkeszt´eses szimplex le´ır´as´an´al felt´etelezt¨ uk, hogy rendelkez´es¨ unkre ´all egy lehets´eges b´azismegold´as. El˝ofordulhat, hogy a feladattal egy¨ utt adott egy indul´o lehets´eges b´azis ´es hozz´a lehets´eges b´azismegold´as. Ebben az esetben nincs akad´alya a hurokszerkeszt´eses szimplex ”beind´ıt´as´anak”. Leggyakrabban azonban nem ismeretes a megoldand´o feladatnak egyetlen lehets´eges b´azismegold´asa sem. Ebben az alfejezetben bemutatunk n´eh´any speci´alis m´odszert (elj´ar´ast), amelyek seg´ıts´eg´evel meg lehet hat´arozni egy lehets´eges b´azismegold´ast.
´ 3.1. Eszaknyugati Sarok M´odszer Az adott elj´ar´as nem haszn´alja a megoldand´o feladathoz tartoz´o se P = ||pij ||m×n profit m´atrixot, se D = ||dij ||m×n k¨olts´eg m´atrixot. Az adott m´odszer szerint a szimplex t´abla balfels˝o (”´eszaknyugati”) cell´aj´ab´ol kell indulnunk – itt kell kiv´alasztanunk az x11 b´azisv´altoz´o ´ert´ek´et az x11 = min{b1 , a1 } k´eplet alapj´an. Ha x11 = b1 , akkor ´at kell h´ uznunk (vagy lehet × jellel is jel¨olni) a t´abla
´ ´ITASI ´ V. SZALL FELADAT
100
legfels˝o sor´at ezzel jel¨olve azt, hogy az els˝o rakt´ar k´eszlete elfogyott, ´es x12 = x13 = . . . = x1n = 0. Ezut´an ´ırjuk ´at az els˝o bolt a1 ig´eny´et az a1 − b1 ´ert´ekre ezzel jel¨olve, hogy az els˝o bolt az a1 egys´egnyi ig´eny´eb˝ol b1 egys´eget m´ar kiel´eg´ıtett¨ unk az x11 = b1 sz´all´ıt´assal. Ha x11 = a1 , akkor ´at kell h´ uznunk (vagy lehet × jellel is jel¨olni) a t´abla bal oldali sz´els˝o oszlop´at, ezzel jel¨olve azt, hogy az els˝o bolt ig´eny´et teljesen kiel´eg´ıtett¨ uk, ´es x21 = x31 = . . . = xm1 = 0. Ezut´an ´ırjuk ´at az els˝o rakt´ar b1 k´eszlet´et a b1 − a1 ´ert´ekre ezzel jel¨olve azt, hogy az els˝o rakt´ar a b1 egys´egnyi k´eszlet´eb˝ol a1 egys´eget m´ar kisz´all´ıtottunk az x11 = b1 sz´all´ıt´assal. Ha x11 = a1 = b1 , akkor tetsz´es szerint ´at kell huznunk vagy az els˝o sort vagy az els˝o oszlopot nem felejtve el megv´altoztani a megfelel˝o m´odon a b 1 ´es a1 ´ert´eket. Ha az x11 v´altoz´oval befejezt¨ uk a munk´at, akkor a fenti elj´ar´ast alkalmazzuk a balfels˝o cell´ara a szimplex t´abl´azat nem ´athuzott r´esz´eben. Az ehhez a cell´ahoz tartoz´o xi j v´altoz´o lesz a k¨ovetkez˝o b´azisv´altoz´o. Ezt a elj´ar´ast kell ism´eteln¨ unk addig, am´ıg nem ´erj¨ uk el a t´abla jobbals´o cell´aj´at. 1
2
3
4
1 2 3 4
200 100 100 100 120 150 180 50
´ 4. T´ abl´ azat. Eszaknyugati sarok m´odszer – Eredeti t´abla.
Illusztr´aljuk a m´odszer m˝ uk¨od´es´et a(z) 4. t´abl´azatban adott numerikus p´eld´an. Mivel az ´eszaknyugati sarok m´odszerben nincs sz¨ uks´eg¨ unk a c´elf¨ uggv´enyben szerepl˝o P m´atrixra ´es D m´atrixra egyik´ere sem, ez´ert ebben a p´eld´aban nem haszn´aljuk ezeket az adatokat. Kezdj¨ uk azzal, hogy kiv´alasztjuk az x11 v´altoz´o ´ert´ek´et: x11 = min{b1 , a1 } = min{200, 120} = 120. Majd huzzuk ´at az els˝o oszlopot, ´es v´altoztassuk meg a b1 ´es a1 ´ert´eket (5. t´abl´azat, 1. t´abla): b1 → b1 − a1 = 200 − 120 = 80 a1 → 0
´ LEHETSEGES ´ ´ ´ ELO ˝ ALL ´ ´ITASA ´ 3. AZ INDULO BAZISMOGOLD AS
1 2 3 4
1 120
2
3
4 80 100 100 100
×
1 2 3 4
1 2 120 80
×
150 180 50
3
101
4 × 100 100 100
70 180 50
´ 5. T´ abl´ azat. Eszaknyugati sarok m´odszer – 1. ´es 2. t´abla
1 2 3 4
1 2 120 80 70
×
×
3
4 × 30 100 100
1 2 3 4
1 2 120 80 70
×
180 50
×
3
4 × × 100 100
30
150 50
´ 6. T´ abl´ azat. Eszaknyugati sarok m´odszer – 3. ´es 4. t´abla
1 2 3 4
1 2 120 80 70
×
×
3
4 × × × 100
30 100 50
1 2 3 4
1 2 120 80 70
×
50
×
3
4
30 100 50 × 50
× × × 50
´ 7. T´ abl´ azat. Eszaknyugati sarok m´odszer – 5. ´es 6. t´abla
1 2 3 4
1 2 120 80 70
×
×
3
4
30 100 50 50 × ×
× × × ×
´ 8. T´ abl´ azat. Eszaknyugati sarok m´odszer – 7. t´abla
Most k¨ovetkezik az els˝o oszlop ´ath´ uz´asa ut´an megmaradt, ´at nem huzott t´ablar´esz ´eszknyugati sark´aban tal´alhat´o x12 v´altoz´o. V´alasszuk az ´ert´ek´et: x12 = min{b1 , a2 } = min{80, 150} = 80
´ ´ITASI ´ V. SZALL FELADAT
102
Majd h´ uzzuk ´at az els˝o sort, ´es v´altoztassuk a b1 ´es a2 ´ert´eket (5. t´abl´azat, 2. t´abla): a2 → a2 − b1 = 150 − 80 = 70 b1 → 0 Folytassuk ezt a folyamatot am´ıg nem kapjuk a(z) 8. t´abl´azatban felt¨ untetett ´ v´egs˝o 7. t´abl´at. Igy a k¨ovetkez˝o lehets´eges megold´ast kapjuk: x11 = 120, x12 = 80, x22 = 70, x23 = 30, x33 = 100, x34 = 50, x44 = 50, a JB = {(1, 1), (1, 2), (2, 2), (2, 3), (3, 3), (4, 3), (4, 4)}, b´azis indexhalmazzal. Jegyezz¨ uk meg, hogy az adott lehets´eges megold´as pontosan m + n − 1 = 4 + 4 − 1 = 7 nem-negat´ıv v´altoz´ob´ol ´all, ´es ez´ert az adott megold´as nem csak lehets´eges, de m´eg b´azismegold´as is. Ezenk´ıv¨ ul figyelembe kell venn¨ unk azt is, hogy a m´odszer nem haszn´alja a c´el-f¨ uggv´enyben szerepl˝o pij ´es dij egy¨ utthat´ok egyik´et sem, ez´ert gyakran olyan indul´o lehets´eges b´azismegold´ast eredm´enyez, amely viszonylag messze van az optim´alist´ol. A k¨ovetkez˝o m´odszerben pedig van m´odunk a c´el-f¨ uggv´eny hasznos´ıt´as´ara.
3.2. Maxim´alis profit (vagy minim´alis k¨olts´eg) m´odszer Az adott m´odszer tulajdonk´eppen a line´aris programoz´asb´ol j´ol ismert minim´alis k¨olts´eg m´odszer olyan lesz´armazottja, amelyet k´et v´altozatban haszn´alhatunk – az egyikben a P = ||pij ||m×n m´atrixot haszn´aljuk (maxim´alis profit m´odszer), a m´asikban pedig a D = ||dij ||m×n m´atrixot (minim´alis k¨olts´eg m´odszer). Mivel a sz´oban forg´o k´et v´altozat csak abban k¨ ul¨onb¨ozik egym´ast´ol, hogy a b´azisv´altoz´o kiv´alaszt´asakor melyik m´atrixot (P vagy D) kell figyelembe venni, ez´ert a m´odszer bemutat´as´at csak a ”profitos” v´altozat´ara korl´atozzuk. A m´odszer azzal kezd¨odik, hogy a P = ||pij ||m×n m´atrixb´ol ki kell v´alasztani a legnagyobb ´ert´ek˝ u elemet: pi1 j1 = max pij ´es a t´abl´azat (i1 , j1 ) cell´aj´aba be kell vezetni a legnagyobb lehets´eges sz´all´ıt´ast, azaz: xi1 j1 = min{bi1 , aj1 }
´ LEHETSEGES ´ ´ ´ ELO ˝ ALL ´ ´ITASA ´ 3. AZ INDULO BAZISMOGOLD AS
103
Ugyan´ ugy, mint az ´eszaknyugati sarok m´odszer eset´en, ´at kell h´ uznunk vagy az i1 -edik sort vagy a j1 -edik oszlopot att´ol f¨ ugg˝oen, hogy a bi1 ´es az aj1 k¨oz¨ ul melyik kisebb. Majd az elj´ar´ast ism´eteln¨ unk kell a t´abl´azat ´at nem h´ uzott r´esz´eben addig, am´ıg egycell´as ´at nem h´ uzott t´abl´azatot nem kapunk. Tekints¨ uk a 9. t´abl´azatban megadott sz´all´ıt´asi feladatot. V´alaszzuk a P 1 8
2 6
3 6
4 1
1
200 3
4
6
8
2
100 7
3
8
9
3
100 4
12
4
3
4
100 120
150
180
50
9. T´ abl´ azat. Maxim´alis profit m´odszer – Eredeti t´abla, P m´atrix.
m´atrix legnagyobb elem´et max pij = p4,2 ´es vezess¨ unk be sz´all´ıt´ast ebbe a cell´aba: x42 = min{b4 , a2 } = min{100, 150} = 100. Majd v´altoztassuk a2 → a2 − b4 = 50, ´es h´ uzzuk ´at a 4.-edik sort. A kapott eredm´enyt ´ırjuk be a t´abl´aba (l´asd. 10. t´abl´azat). A k¨ovetkez˝o legnagyobb pij elemet tartalmaz´o cella (3, 4). Teh´at a k¨ovetkez˝o b´azisv´altoz´o x34 . Hat´arozzuk meg ennek a v´altoz´onak az ´ert´ek´et x34 = min{b3 , a4 } = min{100, 50} = 50, majd v´altoztassuk megfelel˝o m´odon a b3 k´eszletet ´es a4 keresletet b3 → b3 − a4 = 100 − 50 = 50 a4 → 0 ´es h´ uzzuk ´at a 4.-edik oszlopot. Az eredm´enyt ´ırjuk be a 11. t´abl´azatba. A k¨ovetkez˝o l´ep´esn´el v´alaszthatjuk vagy az x11 v´altoz´ot vagy x33 -t, mert p11 = p33 = 8. Tetsz´es szerint v´alasszuk x11 -t, ´es a megfelel˝o ´atalakit´asok ut´an kapjuk a 12. t´abl´azatban felt¨ untetett eredm´enyt. Ut´ana k¨ovetkezik az x33 v´altoz´o (az eredm´eny megtekinthet˝o a 13. t´abl´azatban), majd k¨ovetkeznek az x12 = 50, x13 = 30, x23 = 100 v´altoz´ok (az utols´o t´abla megtekinthet˝o a 14. t´abl´azatban). Az ilyen m´odon kapott
´ ´ITASI ´ V. SZALL FELADAT
104
1 8
2 6
3 6
4 1
1
200 3
4
6
8
2
100 7
3
8
9
3
100 4
12
4
4
3 ×
100 120
50
180
50
10. T´ abl´ azat. Maxim´alis profit m´odszer – 1. t´abla
1 8
2 6
3 6
4 1
1
200 3
4
6
8
2
100 7
3
8
9
3
50 4
12
4
4
3 ×
100 120
50
50
180
×
11. T´ abl´ azat. Maxim´alis profit m´odszer – 2. t´abla
x11 = 120, x12 = 50, x13 = 30, x23 = 100, x33 = 50, x34 = 50, x42 = 100 lehets´ehes b´azismegold´asnak megfelel a k¨ovetkez˝o profit´ert´ek: P (x) = 4090. Jegyezz¨ uk meg, hogy az ´eszaknyugati sarok m´odszer seg´ıts´eg´evel kapott lehets´eges b´azismegold´asnak csak a P (x) = 3050 ´er´etk˝ u profit felel meg.
´ LEHETSEGES ´ ´ ´ ELO ˝ ALL ´ ´ITASA ´ 3. AZ INDULO BAZISMOGOLD AS
1 8 1
2 6
3 6
4 1
120 3
105
80 4
6
8
2
100 7
3
8
9
3
50 4
12
4
4
3 ×
100 ×
50
50
×
180
12. T´ abl´ azat. Maxim´alis profit m´odszer – 3. t´abla
1 8 1
2 6
3 6
4 1
120 3
80 4
6
8
2
100 7
3
8
3
9 50
4
12
4
4
50 3
×
100 ×
50
×
130
×
13. T´ abl´ azat. Maxim´alis profit m´odszer – 4.t´abla
3.3. Vogel-m´odszer Ugyan´ ugy, mint az el˝oz˝o m´odszer eset´en, a Vogel-m´odszer alkalmaz´asa sor´an egyar´ant haszn´alhatjuk a P vagy a D m´artixot. Mivel a m´odszer vagy sorokhoz, vagy oszlopokhoz alkalmazhat´o, ez´ert besz´elhet¨ unk a m´odszer n´egy v´altozat´ar´ol. ´Irjuk le a m´odszer l´enyeg´et a D m´atrix ´es a t´ablazat oszlopainak haszn´alat´aval.
´ ´ITASI ´ V. SZALL FELADAT
106
1 8 1
2 6
120 3
3 6
50 4
4 1 ×
30 6
2
8 ×
100 7
3
8
3
9 50
4
12
4
4
50 3
×
100 ×
×
×
×
×
14. T´ abl´ azat. Maxim´alis profit m´odszer – V´egs˝o t´abla.
A m´odszer l´enyege az, hogy a t´abl´azat minden oszlop´ahoz hozz´a kell rendelni az u ´n. ”b¨ untet´eseket” (ang.–”penalty”). A j-edik oszlophoz (j = 1, 2, . . . , n) tartoz´o tj b¨ untet´es egyenl˝o az adott oszlop k´et legkisebb elem´enek abszol´ ut k¨ ul¨onbs´eg´evel, azaz ha t0j ´es t00j jel¨oli a j-edik oszlop k´et legkisebb elem´et, akkor a tj = | t0j − t00j | A kisz´amolt tj , j = 1, 2, . . . , n, b¨ utet´esekb˝ol ki kell v´alasztani a legnagyobbat, majd a hozz´a tartoz´o oszlopban ki kell v´alasztani a legkisebb k¨olts´eg˝ u cell´at. Az ilyen m´odon meghat´arozott cell´aba be kell vezetni a lehet˝oleg legnagyobb sz´all´ıt´ast. Itt lesz az els˝o b´azisv´altoz´o. Majd ugyan´ ugy, mint az el˝oz˝o m´odszerek eset´en, v´altoztassuk a megfelel˝o k´eszletet, keresletet ´es h´ uzzuk ´at a megfelel˝o oszlopot vagy sort. Az adott elj´ar´ast addig kell ism´eteln¨ unk, am´ıg a t´abl´azatban nem marad egyetlen egy ´at nem h´ uzott sor vagy oszlop sem. Illusztr´aljuk a m´odszer m˝ uk¨od´es´et a D = ||dij ||4×4 m´atrixot, az a = (a1 , a2 , a3 , a4 ) keresletet ´es a b = (b1 , b2 , b3 , b4 )T k´eszletet tartalmaz´o a(z) 9. t´abl´azatban felt¨ untetett numerikus p´elda alapj´an. Els˝osz¨or minden oszlophoz rendelj¨ unk hozz´a b¨ untet´eseket (l´asd. a(z) 15. t´abl´azat). P´eld´aul az els˝o oszlopban a k´et legkisebb elem d21 = 3 ´es d41 = 4, ez´ert t1 = 1. ´Igy, t1 = 1, t2 = 1, t3 = 2, t4 = 2. Majd v´alasszunk legnagyobb b¨ untet´est, pl. t4 , ´es a 4.-edik oszlopban v´alasszuk a legkisebb di4 elemet, azaz d14 = 1. Ezut´an az ilyen m´odon meghat´arozott (1, 4) cell´aba vezess¨ uk be a lehet˝o legnagyobb sz´all´ıt´ast, azaz x14 = min{b1 , a4 } = min{200, 50} = 50.
´ LEHETSEGES ´ ´ ´ ELO ˝ ALL ´ ´ITASA ´ 3. AZ INDULO BAZISMOGOLD AS
107
V´eg¨ ul v´altoztassuk meg a megfelel˝o m´odon az a4 keresletet ´es b1 k´eszletet: b1 → b1 − a4 = 200 − 50 = 150 a4 → 0 Az eredm´enyeket ´ırjuk be a(z) 16. t´abl´azatba. Az adott elj´ar´ast ism´etelve sorban kapjuk a(z) 17, 18, 19 ´es v´eg¨ ul a(z) 20 t´abl´azatokat. 1
2
3
4
1
200 8
6
6
1
3
4
6
8
7
3
8
9
4
12
4
3
2
100
3
100
4
100 120 150 180 50 4−3=1 4−3=1 6−4=2 3−1=2 15. T´ abl´ azat. Vogel-m´odszer – 1. t´abla
1
2
3
4
1
50 8
6
6
1
3
4
6
8
7
3
8
9
4
12
4
3
150
2
100
3
100
4
100 120 150 180 4−3=1 4−3=1 6−4=2
× −
16. T´ abl´ azat. Vogel-m´odszer – 2. t´abla
A v´egs˝o t´abla megtekinthet˝o a 20. t´abl´azatban.
A kapott lehets´eges
´ ´ITASI ´ V. SZALL FELADAT
108
1
2
3
4
1
50 8
6
6
1
3
4
6
8
7
3
8
9
4
12
4
2
150
100
3
100
4
×
100 120 150 7−3=4 4−3=1
3 × −
80 8−6=2
17. T´ abl´ azat. Vogel-m´odszer – 3. t´abla.
1
2
3
4
1
50 8
6
6
1
3
4
6
8
7
3
8
9
4
12
4
20 8−7=1
150 6−3=3
80 8−6=2
2
150
×
100
3
100
4
×
100 3 × −
18. T´ abl´ azat. Vogel-m´odszer – 4. t´abla.
b´azismegold´as: x11 = 20, x12 = 50, x13 = 80, x14 = 50, x21 = 100, x32 = 100, x43 = 100. ¨ Osszefoglal´ as: A most megt´argyalt h´arom m´odszer k¨oz¨ ul a lehets´eges b´azismegold´as el˝o´all´ıt´as´ara az ´eszaknyugati sarok m´odszer ig´enyli a legkevesebb, ´es a Vogel-m´odszer a legt¨obb er˝ofesz´ıt´est. Alapos kutat´asok megmutatt´ak, hogy amikor a Vogel-m´odszerrel ´all´ıtjuk el˝o az indul´o lehets´eges
´ LEHETSEGES ´ ´ ´ ELO ˝ ALL ´ ´ITASA ´ 3. AZ INDULO BAZISMOGOLD AS
1
2
3
4
1
50 8
6
6
1
3
4
6
8
7
3
8
9
4
12
4
2
109
150
×
100
3
×
100
4
×
100 20 8
50 6
3 × −
80 6
19. T´ abl´ azat. Vogel-m´odszer – 5. t´abla.
1
1
2
3
4
20
50
80
50
8
6
6
1
3
4
6
8
7
3
8
9
4
12
4
2
×
100
3
×
100
4
×
100 ×
×
×
3 ×
×
20. T´ abl´ azat. Vogel-m´odszer – v´egs˝o t´abla.
b´azismegold´ast, akkor l´enyegesen kevesebb tov´abbi iter´aci´os l´ep´esre van sz¨ uks´eg, mint a m´asik k´et m´odszer alkalmaz´asakor. Ez´ert nagym´eret˝ u sz´all´ıt´asi feladatok eset´en az els˝o lehets´eges b´azismegold´as el˝o´all´ıt´as´ara az ´eszaknyugati sarok m´odszert ´es a minim´alis k¨olts´eg (vagy maxim´alis profit) m´odszert csak ritk´an haszn´alj´ak.
´ ´ITASI ´ V. SZALL FELADAT
110
4. Numerikus p´ elda Tekints¨ uk a k¨ovetkez˝o 3 × 4 m´eret˝ u numerikus p´eld´at: 3 X 4 X
P (x) i=1 j=1 Q(x ) = = 3 4 D(x) XX 0
(147)
pij xij + p0 −→ max
dij xij + d0
i=1 j=1
a k¨ovetkez˝o felt´etelek mellett x11 + x12 + x13 + x14 ≤ 150, x21 + x22 + x23 + x24 ≤ 250, (148) x31 + x32 + x33 + x34 ≤ 200, x11 + x21 + x31 x12 + x22 + x32 x13 + x23 + x33 x14 + x24 + x34
(149)
≥ 150, ≥ 250, ≥ 50, ≥ 150;
xij ≥ 0, i = 1, 2, 3, j = 1, 2, 3, 4,
(150)
ahol p0 = 100, d0 = 120, meg pij ´es dij egy¨ utthat´ok a k¨ovetkez˝ok: pij 1 2 3
1 10 8 9
2 14 12 6
3 8 14 15
4 12 8 9
dij 1 2 3
1 15 10 13
2 12 6 15
3 16 13 12
4 8 12 10
Vegy¨ unk figyelembe, hogy az adott feladat egyens´ ulyozott, ´es ez´ert semmilyen fikt´ıv v´altoz´okra nincs sz¨ uks´eg. Az indul´o lehets´eges b´azismegold´as meghat´aroz´as´ahoz haszn´alt maxim´alis profit m´odszert a(z) 21. t´abl´azatban felt¨ untetett megold´ashoz vezet. A maxim´alis profit m´odszer alkalmaz´asa sor´an kaptuk a k¨ovetkez˝o x12 = 150, x22 = 100, x24 = 150, x31 = 150, x33 = 50 5 darab b´azisv´altoz´ot. Mivel definici´o szerint egy 3 × 4 m´eret˝ u sz´all´ıt´asi feladat b´azismegold´as´aban szerepel 3+4−1 = 6 b´azisv´altoz´o, ez´ert a kapott lehets´eges megold´as nem b´azismegold´asa a megoldand´o feladatnak. Ilyenkor a b´azisba be kell vezetni m´eg egy v´altoz´ot, pl. x11 = 0. Az ilyen m´odon ¨ossze´all´ıtott lehets´eges b´azismegold´as degener´alt, ´es tartalmazza a k¨ovetkez˝o b´azis c´ell´akat: JB = {(1, 1), (1, 2), (2, 2), (2, 4), (3, 1), (3, 3)}.
´ 4. NUMERIKUS PELDA
1 10 1
2 14
0
111
3 8
4 12
150
15 8
12 12
10 9
150 16 14
8 8
6 6
13 15
12 9
15
12
2
100
3
150
150 13 150
50 250
250
200 10
50
150
21. T´ abl´ azat. Hurokszerkeszt´eses szimplex m´odszer – Indul´o lehets´eges b´azismegold´as.
Ennek a lehets´eges b´azismegold´asnak megfelelnek a k¨ovetkez˝o c´el-f¨ uggv´eny ´ert´ekek: P (x) = 6700, D(x) = 6870, Q(x) = 6700/6870 (≈ 0.975255) . Most a(z) (141)-(142) k´epletek haszn´alat´aval ´all´ıtsuk ¨ossze a k¨ovetkez˝o egyeletrendszereket: u01 + v10 = 10, u01 + v20 = 14, u02 + v20 = 12, (151) u02 + v40 = 8, u03 + v10 = 9, u03 + v30 = 15, u001 + v100 = 15, u001 + v200 = 12, 00 00 u2 + v2 = 6, (152) u002 + v400 = 12, u003 + v100 = 13, u003 + v300 = 12,
A(z) (151) ´es (152) rendszerben legyen u01 = 0 ´es u001 = 0, akkor kapjuk a k¨ovetkez˝ot: u01 = 0, u02 = −2, u03 = −1, v10 = 10, v20 = 14, v30 = 16, v40 = 10, ´es u001 = 0, u002 = −6, u003 = −2, v100 = 15, v200 = 12, v300 = 14, v400 = 18. Ezeket a v´altoz´okat haszn´aljuk fel a ∆0ij ´es ∆00ij (l´asd (143)) ´ert´ekek meghat´aroz´as´ahoz a k¨ovetkez˝o nem-b´azis cell´akban: JN = {(1, 3), (1, 4), (2, 1), (2, 3), (4, 2), (4, 4)}.
´ ´ITASI ´ V. SZALL FELADAT
112
Kapjuk, hogy ∆013 ∆014 ∆021 ∆023 ∆032 ∆034
= = = = = =
u01 + v30 − p13 u01 + v40 − p14 u02 + v10 − p21 u02 + v30 − p23 u03 + v20 − p32 u03 + v40 − p34
= 0 + 16 − 8 = 0 + 10 − 12 = −2 + 10 − 8 = −2 + 16 − 14 = −1 + 14 − 6 = −1 + 10 − 9
∆0013 ∆0014 ∆0021 ∆0023 ∆0032 ∆0034
= = = = = =
u001 + v300 − d13 u001 + v400 − d14 u002 + v100 − d21 u002 + v300 − d23 u003 + v200 − d32 u003 + v400 − d34
= = = = = =
0 + 14 − 16 0 + 18 − 8 −6 + 15 − 10 −6 + 14 − 13 −2 + 12 − 15 −2 + 18 − 10
= 8, = −2, = 0, = 0, = 7, = 0, = = = = = =
−2, 10, −1, −5, −5, 6.
Tov´abb´a a kapott ∆0ij , ∆00ij ´es (144) k´eplet haszn´alat´aval meghat´arozhatjuk a ∆ij (x) ´ert´ekeket: 653 , 687 517 , ∆14 (x) = ∆014 − Q(x) ∆0014 = −11 687 670 ∆21 (x) = ∆021 − Q(x) ∆0021 = , 687 602 4 ∆23 (x) = ∆023 − Q(x) ∆0023 = , 687 602 , ∆32 (x) = ∆032 − Q(x) ∆0032 = 11 687 195 ∆34 (x) = ∆034 − Q(x) ∆0034 = −5 . 229 Mivel a kapott nem-b´azis index˝ u ∆ij (x) ´ert´ekek k¨oz¨ott vannak negat´ıv ´ert´ek˝ uek, ez´ert az aktu´alis lehets´eges b´azismegold´as nem optim´alis megold´asa a megoldand´o feladatnak. Ez´ert a negat´ıv nem-b´azis index˝ u ∆ij (x) ´ert´ekekb˝ol ki kell v´alasztani az egyiket, ´es hozz´atartoz´o nem-b´azis xij v´altoz´ot be kell vezetni a b´azisba. ∆13 (x) = ∆013 − Q(x) ∆0013 =
9
V´alasszuk az x14 v´altoz´ot. Majd az (1, 4) index˝ u cell´aba vezess¨ unk be θ ´ert´ek˝ u sz´all´ıt´ast, ´es ebb˝ol a cell´ab´ol kiindulva ´all´ıtsunk ¨ossze egy hurkot. Ezeknek a m˝ uveleteknek az eredm´eny´et megtekinthetj¨ uk a(z) 22. t´abl´az´atban. Az ¨ossza´all´ıtott hurok seg´ıts´eg´evel meghat´arozhatjuk a θ ´ert´ek´et: θ = min{x12 , x24 } = min{150, 150} = 150. Jegyezz¨ uk meg, hogy a fenti k´epletben a θ ´ert´ek ´el´erhet˝o k´et k¨ ul¨on (1, 2) ´es (2, 4) cell´aban. Ez azt jelenti, hogy az aktu´alis b´azisban szerepl˝o x12 ´es x24 v´altoz´ob´ol nek¨ unk kell kiv´alsztani egyet, ´es azt kivezetni a b´azisb´ol, a m´asik pedig degener´alt v´altoz´ok´ent marad a b´azisban nulla ´ert´ekkel.
´ 4. NUMERIKUS PELDA
1
2
10 1
8 150 − θ 12 ↓ 16 12 14 100 + θ → 6 13 6 15
15 8 2 10 9 3
3
14 0
113
150
4 12 ← 8 8
θ
150
↑ 150 − θ
250
12 9 50
13
15
12
150
250
200 10
50
150
22. T´ abl´ azat. Hurokszerkeszt´eses szimplex m´odszer – 1. t´abla
V´alasszuk az x24 v´altoz´ot, ´es vezess¨ uk azt ki a b´azisb´ol. ´Igy az u ´j b´azis tartalmazza a JB = {(1, 1), (1, 2), (1, 4), (2, 2), (3, 1), (3, 3)}, cell´akat, a nem-b´azis call´ak pedig a k¨ovetkez˝ok: JN = {(1, 3), (2, 1), (2, 3), (2, 4), (3, 2), (3, 4)}. A szimplex iter´aci´o v´egrehajt´asa ut´an kapjuk a a(z) 23. t´abl´azatban felt¨ untetett t´abl´at. Az u ´j lehets´eges b´azismegold´as: 1 10 1
2 14
0
3
4
8
12
16 14
8 8 12 9
0
150
15 8
12 12
10 9
6 6
13 15
15
12
2
250
3
250
150 13 150
150
50 250
200 10
50
150
23. T´ abl´ azat. Hurokszerkeszt´eses szimplex m´odszer – 2. t´abla
x11 = 0, x12 = 0, x14 = 150, x22 = 250, x31 = 150, x33 = 50 ´es a hozz´atartoz´o c´el-f¨ uggv´eny ´ert´ekek: P (x) = 7000, D(x) = 5370, Q(x) = 7000/5370 (≈ 1.303538).
´ ´ITASI ´ V. SZALL FELADAT
114
A tov´abbiakban az u ´j b´azisban ´all´ıtsuk ¨ossze a k¨ovetkez˝o egyenletrendszereket: u01 + v10 u01 + v20 u01 + v40 u02 + v20 u03 + v10 u03 + v30
= = = = = =
10, 14, 12, 12, 9, 15,
u001 + v100 u001 + v200 u001 + v400 u002 + v200 u003 + v100 u003 + v300
= = = = = =
15, 12, 8, 6, 13, 12.
´es
Oldjuk meg ezeket az egyenletrendszereket, ´es kapjuk a k¨ovetkez˝o megold´asokat: u01 = 0, u02 = −2, u03 = −1, v10 = 10, v20 = 14, v30 = 16, v40 = 12, ´es u001 = 0, u002 = −6, u003 = −2, v100 = 15, v200 = 12, v300 = 14, v400 = 8, amelyek alapj´an kisz´amolhatjuk a ∆013 ∆021 ∆023 ∆024 ∆032 ∆034
= = = = = =
u01 + v30 − p13 u02 + v10 − p21 u02 + v30 − p23 u02 + v40 − p24 u03 + v20 − p32 u03 + v40 − p34
= 0 + 16 − 8 = −2 + 10 − 8 = −2 + 16 − 14 = −2 + 12 − 8 = −1 + 14 − 6 = −1 + 12 − 9
= = = = = =
8, 0, 0, 2, 7, 2,
´ert´ekeket, majd a ∆0013 ∆0021 ∆0023 ∆0024 ∆0032 ∆0034
= = = = = =
u001 + v300 − d13 u002 + v100 − d21 u002 + v300 − d23 u002 + v400 − d24 u003 + v200 − d32 u003 + v400 − d34
= 0 + 14 − 16 = −6 + 15 − 10 = −6 + 14 − 13 = −6 + 8 − 12 = −2 + 12 − 15 = −2 + 8 − 10
= −2, = −1, = −5, = −10, = −5, = −4,
´ 4. NUMERIKUS PELDA
115
´ert´ekeket, ´es v´eg¨ ul a 326 , 537 163 1 , 537 278 , 6 537 19 15 , 537 278 13 , 537 115 . 7 537
∆13 (x) = ∆013 − Q(x) ∆0013 = 10 ∆21 (x) = ∆021 − Q(x) ∆0021 = ∆23 (x) = ∆023 − Q(x) ∆0023 = ∆24 (x) = ∆024 − Q(x) ∆0024 = ∆32 (x) = ∆032 − Q(x) ∆0032 = ∆34 (x) = ∆034 − Q(x) ∆0034 = ´ert´ekeket.
Mivel az ¨osszes nem-b´azis index˝ u ∆ij (x) ´ert´ek nem negat´ıv, azaz ∆ij (x) ≥ 0, (ij) ∈ JN ez azt jelenti, hogy az aktu´alis lehets´eges b´azismegold´as optim´alis.
VI. Fejezet
A WinGULF programcsomag WinGULF - is a General, User-friendly Linear and linear-Fractional programming package for Windows. Eredetileg a WinGULF programcsomag az ausztr´al sz´armaz´as´ u GULP elnevez´es˝ u line´aris programoz´asi programcsomag lesz´armazottja. A GULP programcsomagot David J. Pannell1 fejlesztette ki MS-DOS-ban az 1990es ´evek elej´en Turbo Pascal nyelven. Vil´agh´ıres ´es n´epszer˝ u LP eszk¨oz volt a fels˝ooktat´asi int´ezm´enyekben [184] ´es minden¨ utt, ahol szerkeszteni ´es megoldani kellett line´aris programoz´asi feladatokat folytonos v´altoz´okkal. A jelen jegyzet szerzH oje 1993-ban a David J. Pannell egy¨ uttm˝ uk¨od´es´evel tov´abbfejlesztette a GULP-ot u ´gy, hogy ”GULF” elnevez´est kapott az u ´j programcsomag, amely m´ar k´epes megoldani hiperbolikus programoz´asi feladatot is. A GULF programcsomag els˝o verzi´oja sikeresen ´atment az ”European Journal of Operational Research” c´ım˝ u szakfoly´oirat oper´aci´okutat´asi szoftver szerkeszt˝os´eg´eben az alkalmazhat´os´agi tesztel´eseken, ´es ott pozit´ıv v´elem´enyt kapott [185]. K´es˝obb a Borland Delphi fejleszt˝oi programcsomag megjelen´es´evel a GULF ”´at lett u ¨ltetve” az MS-Windows al´a. Az 1998 ´ota WinGULF programcsomag rendelkezik saj´at ”branch-and-bound” motorral, ami lehet˝ov´e teszi az eg´esz´ert´ek˝ u v´altoz´okat tartalmaz´o hiperbolikus programoz´asi feladatok megold´as´at is. Manaps´ag a WinGULF programcsomag speci´alis ”Student Edition” elnevez´es˝ u verzi´oja szabadon let¨olthet˝o a szerz˝o http:\\www.inf.unideb.hu\ ∼bajalinov\ c´ım˝ u Web-lapj´ar´ol. A jelen fejezetben a sz´obanforg´o programcsomagot ismertetj¨ uk meg.
1The University of Western Australia, School of Agriculture, Nedlands W.A. 6009 Australia 117
118
VI. A WINGULF PROGRAMCSOMAG
1. A Programcsomag r¨ ovid ´ attekint´ ese A WinGULF programcsomag teljes elnevez´ese a ”General User-friendly Linear and linear-Fractional programpackage for Windows”. M´as oper´aci´okutat´asi szoftverekkel szemben a WinGULF legfontosabb k¨ ul¨onlegess´ege az, hogy a programcsomag k´epes megoldani nem csak line´aris programoz´asi feladatokat, hanem hiperbolikus feladatokat is. A WinGULF hagyom´anyos men¨ urendszerrel rendelkezik, amely seg´ıts´eg´evel a felhaszn´al´o el´erheti az ¨osszes, a csomagba be´ep´ıtett eszk¨ozt. A t´abl´azatkezel˝o szer˝ u fel¨ uleten megjelen´ıtett feladatot lehet szerkeszteni, menteni, beolvasni. A viszonylag egyszer˝ u aritmetikai sz´amol´asok v´egrehajt´as´ahoz haszn´alhatjuk a be´ep´ıtett sz´am´ol´og´epet. Az adatok beg´epel´ese/szerkeszt´ese sor´an azok helyess´egi vizsg´alata ”on-fly” m´odban t¨ort´enik. Adatokat lehet beg´epelni vagy szerkeszteni manu´alisan, illetve beolvasni lemezr˝ol vagy menteni lemezre az MPS2 form´atum´ u ´allom´anyba (´allom´anyb´ol). A csomag rendelkezik be´ep´ıtett 2-f´azis´ u ”prim´al szimplex” elj´ar´assal ´es ”korl´atoz´as-´es-sz´etv´alaszt´as” motorral. Mindez lehet˝ov´e teszi line´aris ´es hiperbolikus programoz´asi feladatok megold´as´at nem csak folytonos v´altoz´okkal, hanem eg´esz´ert´ek˝ u v´altoz´ok eset´en is. A szimplex m´odszer k´et m´odban futtathat´o: az egyik az u ´n. automatic, a m´asik pedig a step-by-step. Az els˝o m´odban a szimplex elj´ar´as v´egrehajt´asa v´egig automatikusan t¨ort´enik. A feladatt´ol f¨ ugg˝oen vagy megkapjuk az optim´alis megold´ast, vagy megfelel˝o arr´ol sz´ol´o u ¨zenetet, hogy a feladat valamely ok miatt nem megoldhat´o. A m´asik m´odban t¨ort´en˝o futtat´as eset´en az elj´ar´as v´egrehajt´asa l´ep´esenk´ent t¨ort´enik. Minden iter´aci´o ut´an a csomag meg´all ´es v´arakozik, ilyenkor a felhaszn´al´o kiv´alaszthatja a k¨ovetkez˝o gener´al´o oszlopot. A maxim´alis m´eret˝ u feladat, amelyet k´epes megoldani az Intenetr˝ol szabadon let¨olthet˝o verzi´o, 50 felt´etelt ´es 50 v´altoz´ot tartalmaz, ebb˝ol az 50 v´altoz´ob´ol maximum 25 v´altoz´o lehet eg´esz´ert´ek˝ u. A csomag telep´ıt´es´ehez 1, 5M b szabad ter¨ ulet elegend˝o. Amennyiben a megoldand´o folytonos feladat be van g´epelve vagy olvasva (l´asd. 1. ´abra), m´aris a Run gombon t¨ort´en˝o kattint´assal (l´asd. 2. ´abra) vagy Run→Run men¨ upont kiv´alaszt´as´aval (forr´o gomb-F8 ) lehet ind´ıtani a szimplex m´odszert. Ilyenkor a program a szimplex elj´ar´ast ”automatic” m´odban ind´ıtja, ´es ´ıgy hajtja v´egre a m´odszert. A szimplex m´odszer v´egrehajt´asa 2MPS – a ”Mathematical Programming System” r¨ ovidet´ese.
Ez egy speci´ alis szabv´ anyos´ıtott Oper´ aci´ okutat´ asi form´ atum, amely szerinti sz¨ oveges a ´llom´ anyokban szokt´ ak t´ arolni a matematikai programoz´ asi feladatokat.
¨ ´ ´ 1. A PROGRAMCSOMAG ROVID ATTEKINT ESE
119
1. a ´bra. WinGULF – Folytonos LFP feladat
2. a ´bra. WinGULF – F˝o funkcion´alis gombok.
sor´an a k´eperny˝on megjelen´ıtett p´arbesz´edablakban l´athatjuk a statisztik´at: a f´azis neve, iter´aci´os l´ep´es sorsz´ama ´es a c´el-f¨ uggv´eny aktu´alis ´ert´eke (l´asd. 3. ´abra). Abban az esetben, ha szeretn´enk megtekinteni a szimplex m´odszer
3. a ´bra. WinGULF – Status window.
fut´asi folyamat´at, akkor a Run by Step gombot kell v´alasztanunk (men¨ upont: Run→Run by Step, forr´o gomb: F9 ). Ilyenkor a k´eperny˝on megjelenik az indul´o szimplex t´abla (l´asd. 4. ´abra), majd a program meg´all ´es v´arakozik. A Run by Step m´od kiv´alaszt´asa eset´en az ablak als´o r´esz´en a k¨ovetkez˝o vez´erl´esi eszk¨oz¨oket vehetj¨ uk ig´enybe (l´asd. 4. ´abra): Cancel gomb (megszak´ıtja a szimplex elj´ar´ast, ´es ´atadja a vez´erl´est a f˝o
120
VI. A WINGULF PROGRAMCSOMAG
4. a ´bra. WinGULF – Step-by-Step mode.
ablakba), Iterate < K > gomb (v´egrehajtja a szimpex m´odszer < K >.-edik iter´aci´oj´at), User selected pivot lefel´e ny´ıl´o lista combo box (a gener´al´o oszlop kiv´alaszt´as´ahoz). Ezenk´ıv¨ ul itt tal´alhatjuk a program ´altal javasolt gener´al´o oszlop azonos´ıt´oj´at is. A program ´altal megjel¨olt gener´al´o oszlop kiv´alaszt´asa az ”Options” (men¨ u: Options→Defaults, majd Methods lap) ablakban r¨ogz´ıtett szab´aly szerint t¨ort´enik. A Defaults p´arbesz´ed ablak Methods nev˝ u lapja megtekinthet˝o a(z) 5. ´abr´an.
2. Szerkeszt˝ o A WinGULF programcsomag k¨oz´eppontja a t´abl´azatkezel˝o t´ıpus´ u fel¨ ulettel rendelkez˝o szerkeszt˝o ablak, amelyben t¨ort´enik az u ´j ´es megl´ev˝o feladatok szerkeszt´ese. A feladathoz tartoz´o egy¨ utthat´oknak a megfelel˝o cell´akba t¨ort´en˝o bev´etele k´et m´odon t¨ort´enhet: az egyik ”manu´alis” – azaz numerikus vagy sz¨oveges adatot u ´gy kell beg´epelni k¨ozvetlen¨ ul a cell´aba, ahogy van; a m´asik m´od pedig ”sz´am´ol´og´epes”. Az ut´obbi m´odot csak numerikus cell´akn´al vehetj¨ uk ig´enybe az eg´er jobb gombj´anak haszn´alat´aval (6. ´abra). A be´ep´ıtett sz´am´ol´og´ep ablak´anak fels˝o r´esz´en l´athajuk az aktu´alis cella poz´ıci´oja a k´eperny˝on.
˝ 2. SZERKESZTO
121
5. a ´bra. WinGULF – Defaults→Methods lap.
6. a ´bra. WinGULF – Be´ep´ıtett sz´am´ol´og´ep.
A szerkeszt´esi szakaszon a k´eperny˝o tartalmazza az aktu´alis feladatot vagy u ¨res r´acsos fel¨ uletet u ´j feladat eset´en (l´asd. 7. ´abra). A r´acsos fel¨ ulet fels˝o bal oldali cell´aja tartalmazza a feladat azonos´ıt´oj´at. Ez a cella (a 7. ´abr´an ”Problem2”) csak akkor ´erhet˝o el, ha az ablak als´o
122
VI. A WINGULF PROGRAMCSOMAG
´ feladat. 7. a ´bra. WinGULF – Uj
r´esz´en tal´alhat´o ´es ”FRow” (”Fixed Rows”) meg ”FCol” (”Fixed columns”) cimk´ekkel ell´atott vez´erl˝ok null´ara vannak be´all´ıtva (l´asd. 8. ´abra).
8. a ´bra. WinGULF – R¨ogz´ıtett sorok ´es oszlopok be´all´ıt´as´ara szolg´al´o vez´erl˝ok.
Az ”RHS” oszlop ´es ”Obj.Denom” sor keresztez˝od´es´eben ´all´o ”1.00” sz´am az alap´ertelmezett ´ert´eke a d0 egy¨ utthat´onak. Ennek a sornak a t¨obbi egy¨ utthat´oi csupa 0.00 ´ert´ek˝ uek, de mivel ”0.00” ´ert´ek˝ u egy¨ utthat´okat a szerkeszt˝o r´acs nem jelen´ıti meg, ez´ert a megfelel˝o cell´ak u ¨resek. Teh´at az u ´j feladat eset´en D(x) = 0.00 x1 + 0.00 x2 + . . . + 0.00 xn + 1.00 Mivel ilyenkor D(x) = 1, ez azt jelenti, hogy az alap´ertelmez´es szerint az u ´j feladat line´aris ´es a line´aris programoz´asi feladat c´el-f¨ uggv´eny´enek egy¨ utthat´oi a ”Obj.Numer” sorban vannak. Ez addig marad ´ıgy, amig ”Obj.Denom” sorban az ¨osszes dj , j = 1, 2, . . . , n egyenl˝o null´aval. Egy´ebk´ent a c´el-f¨ uggv´eny t¨ort alak´ u ´es a feladat hiperbolikus.
˝ 2. SZERKESZTO
123
A szerkeszt´esn´el u ¨gyeln¨ unk kell arra, hogy minden egy¨ utthat´o saj´at cell´aba ker¨ ulj¨on a k¨ovetkez˝oknek megfelel˝oen: Pozici´o Egy¨ utthat´o
Sor
Oszlop
p0 p1 p2 .. .
Obj.N umer Obj.N umer Obj.N umer .. .
RHS Col 1 Col 2 .. .
pn
Obj.N umer
Col n
d0 d1 , .. .
Obj.Denom Obj.Denom .. .
RHS Col 1 .. .
dn
Obj.Denom
Col n
b1 b2 .. .
Row i Row 2 .. .
RHS RHS .. .
bm
Row m
RHS
aij
Row i
Col j
A bal oldali sz´els˝o oszlopban ´es a legfels˝o sorban tal´alhat´o sorcimk´ek, illetve oszlopcimk´ek (”Row 1”, ”Row 2”, ”Col 1”, ”Col 2”, stb.) szerkeszt´es´ehez a r¨ogz´ıtett oszlopok ´es r¨ogz´ıtett sorok be´all´ıt´as´ara szolg´al´o vez´erl˝oket ´at kell ´all´ıtanunk null´ara (l´asd. 8. ´abra). Term´eszetesen a Windows hagyom´anyoknak megfelel˝oen a feladatot tartalmaz´o ablak vizszintes ´es f¨ ugg˝oleges g¨orget˝os´avokkal rendelkezik arra az esetre, ha a feladat m´erete a k´eperny˝ohez k´epest t´ ul nagy. A WinGULF legals´o r´esz´eben tal´alhatunk m´eg k´et darab hasznos vez´erl˝ot (l´asd. 9. ´abra), amelyek seg´ıts´eg´evel be´all´ıthatjuk a numerikus ´ert´ekek megjelen´ıt´esi pontoss´ag´at.
9. a ´bra. WinGULF – Numerikus ´er´etekek megjelen´ıt´esi pontoss´ag´at be´all´ıt´o vez´erl˝ok.
124
VI. A WINGULF PROGRAMCSOMAG
A munkafel¨ ulet testreszab´as´at v´egezhetj¨ uk az Options p´arbesz´ed ablak Spreadsheet oldal´an (men¨ u: Options→Defaults→Spreadsheet) (l´asd. 10. ´abra).
10. a ´bra. WinGULF – Options ablak.
Ha a feladatot siker¨ ult megoldani, ´es a megjelent p´arbesz´ed ablakban a Make Report gombra kattintottunk (l´asd. 3. ´abra), akkor a WinGULF legener´alja a kapott optim´alis megold´asr´ol sz´ol´o jelent´est (l´asd. 3. ´es 4. alfejezet). Ennek a jelent´esnek a tartalma f¨ ugg att´ol, hogy a feladat tartalmaze csak folytonos v´altoz´okat, vagy vannak benne eg´esz´ert´ek˝ u v´altoz´ok is. Ezenk´ıv¨ ul a jelent´es tartalma konfigur´alhat´o az ”Options” ablakban is (l´asd. 11. ´abra).
3. Folytonos feladatok A jegyzet jelen r´esz´eben olyan LP ´es HP feladatok WinGULF-ban t¨ort´en˝o kezel´es´evel fogunk megismerkedni, amelyek csak folytonos v´altoz´okat tartalmaznak.
3. FOLYTONOS FELADATOK
125
11. a ´bra. WinGULF – Opci´ok.
3.1. Bev´etel ´es f˝o Opci´ok Ahogy m´ar eml´ıtett¨ uk az el˝oz˝o alfejezetben, a WinGULF-ban szerkeszteni (kezelni) lehet megl´ev˝o feladatokat ´es u ´j feladatokat. A v´alaszt´ast´ol f¨ ugg˝oen ehhez haszn´alhatjuk a megfelel˝o gombokat (2. ´abra) vagy a megfelel˝o men¨ upontokat (File→New vagy File→Open). A feladat folytonoss´ag´anak be´all´ıt´as´ahoz haszn´alhatjuk az ”All variables are continuous” opci´ot a ”Defaults” p´arbesz´ed ablakban tal´alhat´o ”Variables” c´ım˝ u lapon (l´asd. 12. ´abra). A feladat szerkeszt´es´enek befejez˝od´ese ut´an a feladatot menthetj¨ uk MPS-form´atum´ u sz¨oveges ´allom´anyba ´es/vagy kinyomtathatjuk a nyomtat´on.
3.2. Kimenet Ha a feladatot siker¨ ult megoldani, ´es a megjelen´ıtett ”Status window” ablakban kiv´alasztottuk a ”Make Report” gombot, akkor a WinGULF legener´alja a kapott megold´asr´ol sz´ol´o jelent´est, majd megjelen´ıti azt egy k¨ ul¨on sz¨oveges ablakban (l´asd. 13. ´abra). A jelent´es szerkezete szabv´anyos MPS form´atum´ u, ´ıgy a hordozhat´os´ag´anak k¨osz¨onhet˝oen a jelent´es nemcsak m´as optim´aliz´al´asi eszk¨ozekkel olvashat´o ´es kezelhet˝o, hanem m´as rendszerekben (UNIX, LINUX, SOLARIS, stb.) is.
126
VI. A WINGULF PROGRAMCSOMAG
12. a ´bra. WinGULF – ”Variables” lap.
13. a ´bra. WinGULF – Folytonos feladatat jelent´ese.
A megjelen´ıtett jelent´est kinyomtathatjuk vagy menthetj¨ uk sz¨oveges ´allom´anyba (”.SOL” alap´ertelmez´esi kiterjeszt´essel). Ha sz¨ uks´eg¨ unk van egy kor´abban mentett jelent´esre, akkor a ”File” men¨ upont seg´ıts´eg´evel nyithatjuk meg a megfelel˝o p´arbesz´ed ablakot (l´asd.14. ´abra) ´es azzal kiv´alaszthatjuk a k´ıv´ant jelent´est. A WinGULF ´altal ¨ossze´all´ıtott jelent´es k´et nagyobb r´eszb˝ol ´all:
3. FOLYTONOS FELADATOK
127
14. a ´bra. WinGULF – Jelent´es ny´ıt´asa.
(1) a jelent´es fels˝o r´esze ´altal´anos adatokat ´es statisztik´at tartalmaz – itt tal´alhatjuk az aktu´alis d´atumot, a feladat nev´et, az optim´aliz´al´asi c´elt (Max/Min), ig´enybe vett m´odszer(eke)t, a feladat m´eret´et, ´es a folyamat protokollj´at (az ut´obbi kikapcsolhat´o), a v´egrehajtott iter´aci´os l´ep´esek sz´am´at stb., (2) a jelent´es m´asodik r´esze a kapott optim´alis megold´asr´ol sz´ol´o r´eszletes inform´aci´ot foglal mag´aban – itt tal´alhatjuk a c´el-f¨ uggv´eny optim´alis ´ert´eket, prim´al ´es du´alis v´altoz´okot, ∆j ´ert´ekeket, ´erz´ekenys´egi vizsg´alat eredm´enyeit stb. A line´aris programoz´asi feladat eset´en a jelent´es m´asodik r´esze n´egy szakaszb´ol ´all: az els˝o szakasz oszlopokhoz tartoz´o inform´aci´ot szolg´al, a m´asodik pedig a sorokr´ol sz´ol. Ut´ana k¨ovekezik az ´erz´ekenys´egi vizsg´alat szint´en k´et r´eszre bontva. A hiperbolikus programoz´asi feladat eset´en a jelent´es m´asodik r´esze nyolc szakaszb´ol ´all. Ez az´ert van ´ıgy, mert a ”line´aris” jelent´esben szerepl˝o n´egy r´esz el˝o´all´ıt´asa k¨ ul¨on-k¨ ul¨on t¨ort´enik a t¨ort-alak´ u c´el-f¨ uggv´eny sz´aml´al´oj´ara ´es nevez˝oj´ere vet´ıtve.
3.3. Az optim´alis megold´as ´ertelmez´ese A megkeresett optim´alis megold´asr´ol sz´ol´o jelent´esnek t¨obb alkot´oeleme van. Ebben az alfelezetben tekints¨ uk r´eszletesen ezeket az elemeket. 3.3.1. ”Activity”. A bal oldali els˝o k´et (”No” ´es ”Name”) oszlopban tal´alhatjuk a v´altoz´o numerikus sorsz´am´at ´es sz¨oveges azonos´ıt´oj´at. Majd
128
VI. A WINGULF PROGRAMCSOMAG
ezeket k¨oveti az egykarakteres ”Status”, amely a v´altoz´o optim´alis megold´asban val´o ´allapot´at jelk´epezi. A ”Status” lehets´eges ´ert´ekei: A|M|D|Z. – A mint ”Active” azt jelenti, hogy az adott v´altoz´o ”akt´ıv”, azaz szerepel az optim´alis megold´as b´azis´aban, ´es az ´ert´eke nagyobb null´an´al. – Z mint ”Zero” azt mutatja, hogy az adott v´altoz´o nincsen a b´azisban, ´es az ´ert´eke nulla. – M mint ”Multiple” – ez az ´ert´ek abban az esetben jelenik meg, ha az adott feladatnak t¨obb optim´alis megold´asa van, ´es az adott v´altoz´o nem szerepel a felt¨ untetett optim´alis megold´as b´azis´aban, de nincs kiz´arva, hogy egy m´asik optim´alis megold´asn´al az adott v´altoz´o a b´azisban van. – D mint ”Degenerate” jel¨oli a degener´alt (azaz nulla ´ert´ek˝ u) b´azis v´altoz´ot. Az egykarakteres ”Status” oszlopot k¨oveti a ”Value” cimk´evel ell´atott, a prim´al v´altoz´o optim´alis ´ert´ek´et tartalmaz´o oszlop. A ”Value” oszlop ut´an k¨ovetkezik a ”Shadow costs” oszlop. A line´aris programoz´asi feladat eset´en az ebben az oszlopban felt¨ untetett ∆j ´ert´ekek k´et m´odon ´ertelmezhet˝oek: (1) Ha az adott v´altoz´o nincsen az optim´alis b´azisban, akkor az adott v´altoz´ohoz tartoz´o ∆j ´ert´ek azt mutatja, hogy mennyivel rosszabbodik a c´el-f¨ uggv´eny optim´alis ´ert´eke, ha a v´altoz´o ´ert´eke egy egys´eggel n˝o (a mostani null´ahoz k´epest). (2) Abban az esetben, ha a v´altoz´o nincsen a b´azisban, akkor ∆j ´ert´ek azt mutatja, hogy h´any egys´eggel kellene ”jav´ıtani” a v´altoz´ohoz tartoz´o pj egy¨ utthat´o ´ert´ek´et ahhoz, hogy az adott v´altoz´o b´azisba ker¨ ulj¨on. A hiperbolikus programoz´asi feladatokn´al ilyenkor h´arom ”Shadow cost” oszlop jelenik meg: az egyik a c´el-f¨ uggv´eny sz´aml´al´oj´ahoz tartozik, a m´asodik a c´el-f¨ uggv´eny nevez˝oje sz´am´ara kisz´amolt ∆00j ´ert´ekeket tartalmaz, a harmadik pedig a ∆j (x∗ ) ´ert´ekeket tartalmazza. Mindh´arom oszlopban a felt¨ untett ´ert´ekeket ´ertelmezhetj¨ uk a 1. pontban le´ırtaknak megfelel˝oen. 3.3.2. ”Constraints”. Ebben a r´eszben az els˝o k´et oszlop a feladatban szerepl˝o felt´elekhez tartoz´o numerikus sorsz´amot ´es sz¨oveges azonos´ıt´ot tartalmazza. Majd k¨ovetkezik a ”Slack” oszlop. Az ebben az oszlopban felt¨ untett ´ert´ekek nem m´asok, mint a k¨ ul¨onbs´eg a felt´etel bal ´es jobb oldala k¨oz¨ott. Ebb˝ol az ´ert´ekb˝ol der¨ ul ki, hogy a felt´etel jobb oldal´an szerepl˝o er˝oforr´as k´eszlet´eb˝ol az optim´alis megold´asn´al marad-e felesleg. A ”Slack” oszlopot k¨ovet˝o ”Shadow price” oszlop du´alis v´altoz´okat tartalmaz, amelyek arra a k´erd´esre adnak a v´alaszt, hogy mennyivel javul a c´el-f¨ uggv´eny optim´alis ´ert´eke abban az esetben, ha a megfelel˝o er˝oforr´as k´eszlet´et egy egys´eggel n˝oveljuk.
3. FOLYTONOS FELADATOK
129
3.3.3. ”Stability for Objective”. Az ebben a szakaszban felt¨ untett jobb oldali h´arom oszlop tartalmazza a c´el-f¨ uggv´enyben szerepl˝o pj egy¨ utthat´ok sz´am´ara ¨ossze´all´ıtott stabilit´asi tartom´anyt: a tartom´any als´o hat´ara (”Lower Limit”), majd maga az aktu´alis pj ´ert´ek, ´es ezt k¨oveti a tartom´any fels˝o hat´ara (”Upper Limit”). Ez a tartom´any biztos´ıtja az aktu´alis optim´alis b´azis optimalit´as´at abban az esetben, ha a pj ´ert´ek v´altoz´asa a felt¨ untetett tartom´anyon bel¨ ul t¨ort´enik. 3.3.4. ”Stability for constraints”. A jelen szakaszban felt¨ untett jobb oldali h´arom oszlop tartalmazza a felt´etelekben szerepl˝o bi ´ert´ekek sz´am´ara ¨ossze´all´ıtott stabilit´asi tartom´anyt: a tartom´any als´o hat´ara (”Lower Limit”), majd maga az aktu´alis bi ´ert´ek, ´es ezt k¨oveti a tartom´any fels˝o hat´ara (”Upper Limit”). Ez a tartom´any biztos´ıtja az aktu´alis optim´alis b´azis optimalit´as´at abban az esetben, ha a bi ´ert´ek v´altoz´asa a felt¨ untetett tartom´anyon bel¨ ul t¨ort´enik.
3.4. LP p´elda Tekints¨ unk egy numerikus LP p´eld´at. Tegy¨ uk fel, hogy egy sert´esteny´eszt˝o farmer olyan ¨osszet´etel˝ u takarm´anyt szeretne ¨ossze´all´ıtani, amely egyr´eszt legyen min´el olcs´obb, m´asr´eszt eleg´ıtse ki az ´allatok ¨osszes t´apl´alkoz´asi ig´enyeit. A t´apl´alkoz´asi ig´enyeket (egy ´allatra vet´ıtve) a 15. t´abl´azatban foglaltuk ¨ossze. A minim´alis ig´enyeknek a ”nagyobb mint” rel´aci´oj´ u felt´etelek, a maxim´alis ig´enyeknek ”kisebb mint” rel´aci´oj´ u felt´etelek felelnek meg. A farmer rendelkez´es´er´e ´all´o alaptakarm´anyok, illetve az alaptakarm´anyok t´aplalkoz´asi tulajdons´agai a 16. t´abl´aban vannak felsorolva.
Crude protein (CP) (nyers protein) % min
l6.00
Digestible energy (DE) MJ/kg
min l2.50 max l3.50
Lysine (Ly) %
min
0.64
Phosphorus (P) %
min
0.54
Calcium (Ca) %
min max
0.72 2.00
15. a ´bra. WinGULF – T´apl´alkoz´asi ig´enyek.
Manu´alisan (azaz a megfelel˝o szoftvereszk¨oz¨ok haszn´alata n´elk¨ ul) ezt a probl´em´at nagyon neh´ez lenne megoldani. WinGULF-ban pedig ez a feladat
130
VI. A WINGULF PROGRAMCSOMAG
Wheat Lupins
Cost $/Ton CP % DE MJ/kg Lysine % Phosphorus % Calcium %
120.00 11.00 14.60 0.32 0.26 0.04
Meat- Dicalcium Lime- Lysine meal phosphate stone
100.00 325.00 28.00 50.00 14.20 11.50 0.85 1.53 0.29 4.80 0.21 10.00
600.00
80.00 3800.0
78.00 22.30 29.00
33.58
16. a ´bra. WinGULF – Rendelkez´esre ´all´o alaptakarm´anyok.
megold´as´anak keres´ese nagyon egyszer˝ u folyamatt´a v´alik. El˝osz¨or meg kell fogalmazni a feladatnak megfelel˝o LP modellt, majd ezt az LP modellt be kell g´epelni a WinGULF-ban. Mivel a modellalkot´asi technik´ak targyal´asa nem tartozik a jelen jegyzet t´emak¨or´ehez, ez´ert felt´etelezz¨ uk, hogy a modell m´ar megvan (az optim´aliz´al´asi modellek fel´ep´ıt´es´er˝ol, alkot´as´ar´ol, megfelel˝o technik´akr´ol l´asd.[55], [93], [180], [189], [190]). A modell beg´epel´ese (az adott feladat megtal´alhat´o a WinGULF telep´ıt´esi csomaghoz csatolt Example1.GLF nev˝ u ´allom´anyban) ut´an kapjuk a 17. ´abran felt¨ untett LP feladatot. LP example Cost Obj.Denom CP min(kg) DE min(MJ) DE max(MJ) Ly min (g) P min (g) Ca min (g) Ca max (g) Mass (kg)
Limit N N G G L G G G L E
1 16 1250 1350 640 540 720 2000 100
Wheat Lupins MeatMl Ca2P LimeSt Lysine 0.12 0.10 0.325 0.6 0.08 3.8 0.11 14.60 14.60 3.20 2.60 0.40 0.40 1.00
0.28 14.20 14.20 8.50 2.90 2.10 2.10 1.00
0.50 11.50 11.50 15.30 48.00 100.00 100.00 1.00
780.0 223.0 290.0 290.0 1.0
335.8 335.8 1.0
1.00
17. a ´bra. WinGULF – LP feladat a WinGULF-ban.
A feladat megold´asa ut´an a 18. ´abran felt¨ untett jelent´est kapjuk. Tekints¨ uk ´at r¨oviden a megjelent jelent´es k¨ ul¨onb¨oz˝o r´eszeit. El˝osz¨or n´ezz¨ uk az ”Optimal value” cimk´evel ell´atott ´ert´eket a jelent´es ”Activities” el¨otti sor´aban. Ez a megkeresett legolcs´obb ¨osszet´etel˝ u takarm´any ´ara (10.5 cent per kilogramm). Most akkor k¨ovetkezzen az ”Activities” r´esz. Ez a r´esz a k¨ ul¨onb¨oz˝o alaptakarm´anyok mennyis´eg´et tartalmazza az
3. FOLYTONOS FELADATOK
131
Optimal Solution Problem name Problem direction Objective function value Number of iterations
: : : :
LP example MIN 10.509784 4
Activities No Name 1 Wheat 2 Lupins 3 MeatMl 4 Ca2P 5 LimeSt 6 Lysine
Z A Z A A Z
Level 0.0000 94.4722 0.0000 1.1930 4.3349 0.0000
Shad.Cost 0.0206 0.0000 0.1241 0.0000 0.0000 3.7067
LowerObj 0.10 0.09 0.20 0.08 -5.24 0.09
Obj 0.120 0.100 0.325 0.600 0.080 3.800
UpperObj INF 0.12 INF 1.20 0.09 INF
Constraints No Name 1 CP min(kg) 2 DE min(MJ) 3 DE max(MJ) 4 Ly min (g) 5 P min (g) 6 Ca min (g) 7 Ca max (g) 8 Mass (kg)
Slack G 10.4522 G 91.5048 L 8.4952 G 163.0134 G 0.0000 G 1280.0000 L 0.0000 E 0.0000
Shad.Price 0.0000 0.0000 0.0000 0.0000 -0.0023 0.0000 0.0000 -0.0933
LowerLim Limit -INF 16.0 -INF 1250.0 1341.5048 1350.0 -INF 640.0 274.4441 540.0 -INF 720.0 1800.7186 2000.0 93.6077 100.0
UpperLim 26.45 1341.50 INF 803.01 1658.45 2000.00 4146.52 100.59
18. a ´bra. WinGULF – Optim´alis megold´asi jelent´es.
¨ossze´all´ıtand´o optim´alis takarm´anyban. Ezek szerint az optim´alis (legolcsobb) ¨osszet´etel˝ u takarm´any 1 kil´oja a k¨ovetkez˝o alaptakarm´anyokb´ol ´all: 94.5% lupins, 1.2% Dicalcium Phosphate ´es 4.3% Limestone. A ”Value” ut´an k¨ovetkez˝o ”Shadow Cost” oszlopban felt¨ untetett ∆ j ´ert´ekek azt mutatj´ak, hogy mennyivel kell megv´altoztatni a megfelel˝o pj egy¨ utthat´ot ahhoz, hogy az adott v´altoz´o a b´azisba ker¨ ulj¨on. P´eld´aul a ”Lupins” v´alt´oz´o m´ar a b´azisban van, ez´ert a hozz´a tartoz´o p2 = 0.10 ´ert´eket nem kell v´altoztatni, ´eppen ez´ert ∆2 = 0.0. Viszont ha a ”Wheat” (b´ uza) alaptakarm´any ´ara legal´abb ∆1 = 0.0206 egys´eggel olcs´obb lett volna, akkor ez az alaptakarm´any m´ar szerepelt volna az optim´alis megold´asban. M´as szavakkal, addig erre az alaptakarm´anyra nincs sz¨ uks´eg¨ unk, amig az ´ara nagyobb, mint 0.12 cent − 0.0206 cent = 0.0994 cent per kilogramm.
132
VI. A WINGULF PROGRAMCSOMAG
3.5. HP P´elda Ebben a szekci´oban egy hiperbolikus programoz´asi numerikus p´eld´aval fogunk foglalkozni. Tegy¨ uk fel, hogy egy h˝ ut˝oszekr´enyeket gy´art´o gy´arban jelenleg a k¨ovetkez˝o modelleket lehet gy´artani: Lehel 220, Lehel 120, Star 200, Star 160 ´es Star 250. Egy nagykeresked˝ot˝ol kapott megrendel´es szerint a nagykeresked˝onek sz¨ uks´ege lenne 150 darab Star 200 k´esz¨ ul´ekre, 70 darab Star 160 k´esz¨ ul´ekre ´es 290 darab Star 250 k´esz¨ ul´ekre. Ezenk´ıv¨ ul m´eg 240 darab tetsz˝oleges k´esz¨ ul´ekre lenne sz¨ uks´ege. Feladatunk abban ´all, hogy el˝o kell ´all´ıtanunk olyan gy´art´asi tervet, amely kiel´eg´ıti a nagykeresked˝o ig´enyeit, ezenk´ıv¨ ul biztos´ıtja a gy´ar sz´am´ara a legmagasabb ”profit/k¨olts´eg” hat´ekonys´agot. Annak ellen´ere, hogy a feladatban szerepl˝o h˝ ut˝oszekr´enyek ”eg´esz´ert´ek˝ uek”, ebben a p´eld´aban csak folytonos v´altoz´okkal dolgozunk. K´es˝obb, a(z) 4. alfejezetben visszat´er¨ unk ehhez a feladathoz ´es akkor a h˝ ut˝oszekr´enyek ”eg´esz´ert´ek˝ uek” lesznek. Az egyszer˝ us´eg kedv´e´ert ebben a feladatban csak k´et korl´atozott mennyis´egben haszn´alhat´o er˝oforr´ast fogunk figyelembe venni – ezek az u ´n. ”Freon 12” ´es ”TL 16”. A feladathoz tartoznak a k¨ovetkez˝o adatok: Lehel 200 Lehel 120 Star 200 Star 160 Star 250 TL 16(l/unit) F 12(l/unit) Price $/unit Cost $/unit
0.20 420.00 320.00
0.13 365.00 290.00
0.22 395.00 300.00
0.21 355.00 280.00
0.26 450.00 340.00
A feladathoz ¨ossze´all´ıtott m´atrix megtekinthet˝o a(z) 19. ´abr´an. Az adaLFP example Profit $ Cost $ F12 (l) TL16 (l) S200 min S160 min S250 min Output
Limit
N N L L G G G E
L 220 L 120 S 200 S 160 S 250 100.00 75.00 95.00 75.00 110.00 320.00 290.00 300.00 280.00 340.00 125.00 0.22 0.21 0.26 80.00 0.20 0.13 150.00 1.00 70.00 1.00 290.00 1.00 750.00 1.00 1.00 1.00 1.00 1.00
19. a ´bra. WinGULF – M´atrix a hiperbolikus programoz´asi p´eld´ahoz.
3. FOLYTONOS FELADATOK
133
tok beg´epel´ese (az adott feladat megtal´alhat´o a WinGULF telep´ıt´esi csomaghoz csatolt Example2.GLF nev˝ u ´allom´anyban) ut´an kapjuk a 20. ´abran felt¨ untett HP feladatot. A feladat megold´asa ut´an a WinGULF ´altal leg-
20. a ´bra. WinGULF – HP p´eldafeladat.
ener´alt jelent´es megtekinthet˝o a(z) 21. ´es 22. ´abr´an. Optimal Solution Problem name Problem direction Objective function value Number of iterations Activities - Numerator No 1 2 3 4 5
Name L 220 L 120 S 200 S 160 S 250
A Z A A A
Level 232.69 0.00 150.00 70.00 297.31
: : : :
LFP example MAX 75473.076923/240146.153846 = 0.314280 4
Shadow Cost 0.00 25.00 0.00 0.00 0.00
Lower Obj Obj Upper Obj 84.2689 100.00 100.8255 -INFINITY 75.00 90.5716 92.1506 95.00 96.8155 68.8942 75.00 90.1804 108.5624 110.00 529.2583
Activities - Denominator No Name 1 L 220 2 L 120 3 S 200 4 S 160 5 S 250
A Z A A A
Level 232.69 0.00 150.00 70.00 297.31
Shadow Cost 0.00 30.00 0.00 0.00 0.00
Lower Obj 317.3801 240.4530 294.2441 232.3684 -163.1100
Obj 320.00 290.00 300.00 280.00 340.00
Upper Obj 372.6060 INFINITY 309.1179 299.5385 344.6003
21. a ´bra. WinGULF – HP p´eldafeladat jelent´ese, 1.r´esz.
134
VI. A WINGULF PROGRAMCSOMAG
Constraints - Numerator No Name 1 2 3 4 5 6
F12 (l) TL16 (l) S200 min S160 min S250 min Output
L L G G G E
Slack Shadow Lower Limit Upper Price Lim Lim 0.00 38.46 123.1000 125.0 185.5000 33.46 0.00 46.5385 80.0 INFINITY 0.00 -13.46 0.0000 150.0 158.6364 0.00 -33.08 0.0000 70.0 79.0476 7.31 0.00 -INFINITY 290.0 297.3077 0.00 100.00 517.3077 750.0 917.3077
Constraints - Denominator No Name 1 2 3 4 5 6
F12 (l) TL16 (l) S200 min S160 min S250 min Output
L L G G G E
Slack Shadow Lower Limit Upper Price Lim Lim 0.00 76.92 123.1000 125.0 185.5000 33.46 0.00 46.5385 80.0 INFINITY 0.00 -36.92 0.0000 150.0 158.6364 0.00 -56.15 0.0000 70.0 79.0476 7.31 0.00 -INFINITY 290.0 297.3077 0.00 320.00 517.3077 750.0 917.3077
22. a ´bra. WinGULF – HP p´eldafeladat jelent´ese, 2.r´esz.
Tekints¨ uk ´at r¨oviden a kapott jelent´est. El˝osz¨or a c´el-f¨ uggv´eny optim´alis ´ert´eke ad´odik a sz´aml´al´o (profit) ´es a nevez˝o (k¨olts´eg) optim´alis ´ert´ek´eb˝ol (l´asd. 21. ´abra): 75473.076923 / 240146.153846 = 0.314280. Most n´ezz¨ uk az ”Activities” cimke alatt tal´alha´o ”Level” oszlopot. Ahhoz, hogy a feladatban r¨ogz´ıtett felt´etelekhez k´epest a ”profit/k¨olts´eg” fajlagos gazdas´agi mutat´o maxim´alis ´ert´ek˝ u legyen, ahhoz a sz´oban forg´o gy´art´onak el˝o kell ´all´ıtania 232.69 darab Lehel 220 k´esz¨ ul´eket, 150 darab Star 200 k´esz¨ ul´eket, 70 darab Star 160 k´esz¨ ul´eket ´es 297.31 darab Star 250-t. Lehel 120 k´esz¨ ul´ek az optim´alis gy´art´asi tervben nem szerepel. Nyilv´anval´o, a kapott optim´alis megold´as nem hasznos´ıthat´o a gyakorlatban mivel tartalmaz nem-eg´esz´ert´ek˝ u gy´artand´o mennyis´egeket. T´erj¨ unk ´at a ”Shadow cost” oszlopokhoz (l´asd. 21. ´es 22. ´abra). Ezekben az oszlopokban majdnem minden ∆j nulla ´ert´ek˝ u. Csak Lehel 120 v´altoz´ohoz tartoz´o ∆02 ´es ∆002 k¨ ul¨ob¨oznek a null´at´ol. A ”Shadow Cost” oszlopokban szerepl˝o ”25.00” ´es ”30.00” ´ert´ekek azt mutatj´ak, hogy a Lehel 120 k´esz¨ ul´eket akkor ´erdemes gy´artani, ha az egy egys´ege ut´an j´ar´o profit a mostani 75.00 egys´eghez k´epest legal´abb 25.00 egys´eggel lesz nagyobb, vagy ha az egy egys´eg´evel j´ar´o k¨olts´eg a mostani 290.00 egys´eghez k´epest legal´abb 30.00 egys´eggel lesz kisebb. M´as szavakkal, Lehel 120 k´esz¨ ul´eket akkor lesz
´ ERT ´ ´ U ˝ FELADATOK 4. EGESZ EK
135
´erdemes gy´artani, ha az egy k´esz¨ ul´ekre es˝o profit legal´abb 75.00$ + 25.00$ = 100.00$ lesz, vagy ha az adott k´esz¨ ul´ek egy egys´eg´evel j´ar´o k¨olts´eg nem nagyobb lesz, mint 290.00$ − 30.00$ = 260.00$
4. Eg´ esz´ ert´ ek˝ u feladatok Ebben a szekci´oban eg´esz´ert´ek˝ u LP ´es HP feldatokkal fogunk foglalkozni, azaz olyan feladatokkal, amelyekben van legal´abb egy eg´esz´ert´ek˝ u v´altoz´o.
4.1. Bev´etel ´es f˝o Opci´ok Ha a megoldand´o feladatban vannak eg´esz´ert´ek˝ u v´altoz´ok, akkor ezt a feladatot ugyan´ ugy be kell g´epelni, mint a folytonos esetben. A k¨ ul¨onbs´eg csak abban ´all, hogy ut´ana k¨ovetkezik az ”Options” p´arbesz´ed ablak a ”Variables” lapj´an t¨ort´en˝o kijel¨ol´ese azoknak a v´altoz´oknak, amelyek csak eg´esz sz´amokat vehetnek ´ert´ek¨ ul. (l´asd. 23. ´abra). Jelenleg a WinGULF-ban a
23. a ´bra. WinGULF – Defaults, ”Variables” lap.
korl´atoz´as-´es-sz´etv´alaszt´asi m´odszer van implement´alva. A m´odszerhez tartoz´o testreszab´asi opci´okat megtekinthetj¨ uk a(z) 24. ´abr´an. A megold´asi
136
VI. A WINGULF PROGRAMCSOMAG
24. a ´bra. WinGULF – ”Branch-and-Bound” m´odszer, Opci´ok.
folyamat sor´an ¨ossze´all´ıtand´o bin´aris f´aban t¨ort´en˝o keres´eskor a WinGULF programcsomag jelenleg az u ´n. ”el˝osz¨or lefel´e” keres´esi szab´alyt haszn´alja, ´es ez´ert az opci´okban csak k´et bej´ar´asi szab´alyb´ol v´alaszthatunk: ”from left to right” vagy ”from right to left”. Viszonylag nagyobb ´es bonyolultabb feladatok eset´en gyakran ´erdemes bekapcsolni a ”Preprocessor” opci´ot. Ilyenkor a WinGULF redund´ans felt´etelek keres´es´et v´egzi, ´es ha megtal´alja azokat, akkor kiz´arja a feladatb´ol a felesleges felt´eteleket. P´eld´aul a k¨ovetkez˝o x1 ≤ 12,
´es
x1 ≤ 8
k´et felt´etel helyett a bekapcsolt ”Preprocessor”-n´al a csom´opontban megoldand´o feladatban csak az utols´o felt´etel marad.
4.2. Kimenet Ha befejezt¨ uk a feladat szerkeszt´es´et, ´es m´ar kijel¨olt¨ uk az eg´esz´ert´ek˝ u v´altoz´okat, akkor a Run gomb segits´eg´evel ind´ıthatjuk a megold´asi elj´ar´ast. Ekkor a WinGULF megjelen´ıti a(z) 25. ´abr´an ´abr´azolt ablakot. Ha ebben az ablakban a Run B&B gombon kattintunk, akkor elindul a ”Branch-andBound” elj´ar´as. A megold´asi elj´ar´as sikeres befejez˝od´ese ut´an megjelenik a a(z) 26. ´abr´an felt¨ untetett bin´aris fa. A WinGULF ´altal legener´alt jelent´es megtekinthet˝o a(z) 27. ´abr´an. A sz¨oveges jelent´es els˝o r´esz´eben tal´alhatjuk az ig´enybe vett be´all´ıt´asokat, majd egy n´egyoszlopos r´esz k¨ovetkezik, amely a ”Branch-and-Bound” m´odszer v´egrehajt´asi folyamat´anak le´ır´as´at tartalmazza. Ezek az adatok a k¨ovetkez˝ok: (1) ”Node/Level” – a csom´opont sorsz´ama ´es poz´ıci´oja a bin´aris f´aban a <sorsz´am>/<szint><jobb/bal> form´atumban,
´ ERT ´ ´ U ˝ FELADATOK 4. EGESZ EK
137
25. a ´bra. WinGULF – Branch-and-Bound Method, starting.
26. a ´bra. WinGULF – Branch-and-Bound m´odszer, grafikus jelent´es.
(2) ”Objective” – a c´el-f¨ uggv´eny ´ert´eke az adott csom´opontban, (3) ”Node type” – a csom´opont t´ıpusa: ”Real”-folytonos megold´as, ”Integer”-eg´esz´ert´ek˝ u megold´as, ”Infeasible”-feladat nem megoldhat´o, (4) ”Bound” – az addig el´ert legjobb c´el-f¨ uggv´eny ´ert´ek.
138
VI. A WINGULF PROGRAMCSOMAG
27. a ´bra. WinGULF – Branch-and-Bound m´odszer, sz¨oveges jelent´es.
4.3. Eg´esz´ert´ek˝ u p´elda Ebben a szekci´oban t´erj¨ unk vissza a ”h˝ ut˝oszekr´enyes” hiperbolikus programoz´asi feladathoz. Amikor a fenti r´eszben tanulm´anyoztuk ezt a feladatot, sz´and´ekosan figyelmen k´ıv¨ ul hagytuk azt a t´enyt, hogy a h˝ ut˝oszekr´enyek gy´artand´o mennyis´ege nem tartalmazhat t¨ortr´eszt. Most nyissuk meg az ”Options” p´arbesz´ed ablak ”Variables” lapj´at, ´es ´all´ıtsuk ´at a feladatban szerepl˝o v´altoz´okat eg´esz´ert´ek˝ u ´allapotba. A feladat eg´esz´ert´ek˝ u megold´as´at keres˝o folyamathoz tartoz´o bin´aris f´at megtekinthetj¨ uk a(z) 28. ´abr´an.
28. a ´bra. WinGULF – Bin´aris fa.
A kapott eg´esz´ert´ek˝ u megold´asr´ol sz´ol´o jelent´est megtekinthetj¨ uk a(z) 29. ´abr´an. A WinGULF ´altal ¨ossze´all´ıtott jelet´esb˝ol l´atszik, hogy az ¨osszes v´altoz´o optim´alis ´ert´eke eg´esz.
´ ERT ´ ´ U ˝ FELADATOK 4. EGESZ EK
Node/Level ---------0/0 1/1R 2/1L 3/2R 4/2L
Objective -----------------0.31 N/A 0.31 0.31 0.31
Node type ----------Real Infeasible Real Integer Real
139
Bound ------------N/A N/A N/A N/A 0.31
Optimal solution found at 11:02:33 AM in 00h.00m.00s.531ms. Optimal value : 0.31427501 Number of nodes : 5 Best node number : 3 Activities ---------No Name --- ---------1 L 220 2 L 120 3 Star 200 4 Star 160 5 Star 250
Value - -----------------------A 233.00 Z 0.00 A 150.00 A 70.00 A 297.00
Constraints ----------No Name --- ---------1 F12 (l) 2 TL16 (l) 3 S200 min 4 S160 min 5 S250 min 6 Output
Slack - -----------------------L 0.08 L 33.40 G 0.00 G 0.00 G 7.00 E 0.00 29. a ´bra. WinGULF – Optim´alis jelent´es.
Irodalomjegyz´ ek ”Knowledge is of two kinds. We know a subject ourselves, or we know where we can find information upon it” – Samuel Johnson, 1775 [1] Abrham,J., Luthra,S., ”Comparison of Duality Models in Fractional Linear Programming”, Zeitschrift f¨ ur Operations Research, Vol.21, 1977, pp.125-130. [2] Aggarwal,S.P., ”Analysis of the solution to a linear fractional functionals programming”, Metrika, Vol.16, 1970, pp.9-26. [3] Almogy,Y., Levin,O., ”A Class of Fractional Programming Problems”, Operations Research, Vol.19, 1971, pp.57-67. [4] Arora,S.R., Puri,M.C., ”Enumeration Technique for the Set Covering Problem with Linear Fractional Functional as its Objective Function”, Zeitschrift f¨ ur Angewandte Mathematik und Mechanik, Vol.56, 1977, pp.181-186. [5] Arora,S.R., Puri,M.C., Swarup,K., ”The Set Covering Problem with Linear Fractional Functional”, Indian Journal of Pure and Applied Mathematics, Vol.8, No.5, 1977, pp.578-588. [6] Arvalo,M.T., Mrmol,A.M., Zapata,A. ”The Tolerance Approach in Multiobjective Linear Fractional Programming”, Sociedad de Estad´istica e Investgaci´on Operativa, Vol.5, No.2, 1997, pp.241-253. [7] Ashton,D.J., Atkins,D.R., ”Multi-criteria Programming for Financial Planning”, Journal of the Operational Research Society, Vol.30, 1979, pp.259-270. [8] Bajalinov,E.B., ”Duality in Linear-Fractional Programming and its Applications”, Ph.D. Thesis, Institute of Mathematics, Kirghiz Academy of Sciences, Frunze, Kirghiz Republic, 1984. (in Russian) [9] Bajalinov,E.B., ”On the Economic Sense of Dual Variables in LinearFractional Programming”, Ekonomika i matematicheskie metody, 3, Vol.24, 1988, pp.558-561. (in Russian) [10] Bajalinov,E.B., ”On the Coincidence of the Optimal Solutions in Linear and Linear Fractional Programming Problems”, Izvestia Akademii Nauk Kirgizskoi SSR, No.3, 1988. (in Russian) [11] Bajalinov,E.B., ”On the System of Three Problems of Mathematical Programming”, Kibernetika, No.6, 1989. (in Russian) 141
142
´ IRODALOMJEGYZEK
[12] Bajalinov,E.B., ”On Concordance of the Economic Interests”, Izvestia Akademii Nauk Kirgizskoi SSR, No.3, 1990. (in Russian) [13] Bajalinov,E.B., ”On an Approach to the Modelling of Problems Connected with Conflicting Economic Interests”, European Journal of Operational Research, Vol.116, 1999, pp. 477-486. [14] Bajalinov,E.B., ”Linear-Fractionl Programming: Theory, Methods, Applications and Software”, Kluwer Academic Publishers, 2003. [15] Bajalinov,E.B., Imreh,B., ”Oper´ aci´ okutat´ as”, Polygon jegyzett´ar, Szeged, 2001. [16] Bajalinov,E.B., Pannel,D.J., ”GULF : a General, User-friendly Linear and linear – Fractional programming package”, Technical Report No. 93/86, Department of Mathematics, University of L.Kossuth, Debrecen, Hungary, 1993. [17] Balas,E., ”An Additive Algorithm for Solving Linear Programs with Zero-One Variables”, Operations Research, Vol.13, 1965, pp.517-546. [18] Balas,E.,Ceria,S., Cornujols,G., ”A Lift-and-Project Cutting Plane Algorithm for Mixed 0/1 Programs”, Mathematical Programming, Vol.58, 1993, pp.295-324. [19] Balas,E.,Ceria,S., Cornujols,G., Natraj,N., ”Comory Cuts Revised”, Operations Research Letters, Vol.19, 1996, pp.1-9. [20] Barros,A.I., ”Discrete and Fractional Programming Techniques for Locations Models”, Seria ”Combinatorial Optimization”, Vol. 3, Kluwer Academic Publishers, 1998. [21] Barros,A.I., Frenk,J.B.G., Schaible,S., Zhang,S., ”A New Algorithm for Generalized Fractional Programs”, Mathematical Programming, Vol.72, 1996, pp.147-173. [22] Bartels,R.H., Golub,G.H., ”The Simplex Method of Linear Programming Using LU -Decomposition”, Communication of the ACM, Vol.12, 1969, pp. 266-268 and 275-278. [23] Beale,E.M.L., Small,R.E., ”Mixed Integer Programming by a Branch and Bound Technique”, Proc. IFIP. Congr. 2, 1965, pp.450-451. [24] Beasley,J.E., ”Advances in Linear and Integer Programming”, Oxford Lecture Series in Mathematics and Its Applications, Vol.4, Oxfors University Press, 1996. [25] Bector,C.R., ”Duality in Fractional and Indefinite Programming”, Zeitschrift f¨ ur Angewandte Mathematik und Mechanik, Vol.48, No.6, 1968, pp.418-420. [26] Bector,C.R., ”Duality in Linear Fractional Programming”, Utilitas Mathematica, Winnipeg, Vol.4, 1973, pp.155-168. [27] Bector,C.R., ”Duality in Nonlinear Fractional Programming”, Zeitschrift f¨ ur Operations Research, Vol.17, 1973, pp.183-193. [28] Bector,C.R., Chandra,S., Singh,C., ”Duality in Multiobjective Fractional Programming”, in ”International Workshop on Generalized Concavity, Fractional Programming and Economic Applications”, University of Pisa, Italy, 1989.
´ IRODALOMJEGYZEK
143
[29] Belykh,V.M., Gavurin,M.K., ”An Algorithm for Minimizing a Fractional-Linear Function”, Bulletin of the Leningrad State University, Vol.19, No.4, Oct.1980, pp.10-15. (in Russian) [30] Bitran,G.R., Magnanti,T.L., ”Fractional Programming: Duality, Algorithms, Sensitivity Analysis and Applications”, Technical Report No.92, Operations Research Center, Massachusets Institute of Technology, June 1974. [31] Bitran,G.R., Magnanti,T.L., ”Duality and Sensitivity Analysis for Fractional Programs”, Operations Research, No.4, Vol.24, 1976, pp.675-699. [32] Bixby, R.E., ”Implementing the Simplex Method: The Initial Basis”, ORSA J. on Computing, Vol.4, No.3, pp. 267-284, Summer, 1992. [33] Bland,R., ”New Finite Pivoting Rules for the Simplex Method”, Mathematics of Operations Research, Vol.2, 1977, pp. 103-107. [34] Borde,J., Crouzeix,J.-P., ”Convergence of a Dinkelbach-type Algorithm in Generalized Fractional Programming”, Zeitschrift f¨ ur Operations Research, Vol.32, 1987, pp.A31-A54. [35] Cambini,A., Martein,L., Schaible,S., ”On Maximizing a Sum of Ratios”, Journal of Information and Optimization Sciences, Vol.10, 1989, pp.65-79. [36] Ceria,S., Cornujols,G., Dawande,M. ”Combining and Strengthening Gomory Cuts”, in Balas,E., Clausen,J., (eds.), Lecture Notes in Computer Science, Vol.920, Spinger-Verlag, 1995. [37] Chandra,S, Chandramohan,M., ”An Improved Branch and Bound Method for Mixed Integer Linear Fractional Program”, Zeitschrift f¨ ur Angewandte Mathematik und Mechanik, Vol.59, No.10, 1979, pp.575577. [38] Chandra,S, Chandramohan,M., ”A Note on Integer Linear Fractional Program”, Naval Research Logistics Quarterly, Vol.27, 1980, pp.171174. [39] Chandrasekaran,R., ”Minimal Ratio Spanning Trees”, Networks, Vol.7, 1977, pp.335-342. [40] Charnes,A., Cooper,W.W., ”Programming with Linear Fractional Functionals”, Naval Res. Logistics Quart., Vol.9, No.3 and 4, 1962, pp.181-186. [41] Chadha,S.S., ”Dual Fractional Program”, ZAMM, Vol.51, 1971, pp.560-561. [42] Chernov,Y.P., Lange,E.G., ”Problems of Nonlinear Programming with Fractional Economic Criteria. Methods and Applications”, Kirghiz Academy of Science, Ilim, Frunze, 1978. (in Russian) [43] Choo,E.U., Atkins,D.R., ”Bicriteria Linear Fractional Programming”, Journal of Optimization Theory and Applications, Vol.36, 1982, pp.203-220. [44] Chv´atal,V., ”Linear Programming”, Freeman, New York, 1983.
144
´ IRODALOMJEGYZEK
[45] Craven,B.D., Mond,B., ”The Dual of a Fractional Linear Program”, Journal of Mathematical Analysis and Applications, Vol.42, 1973, pp. 507-512. [46] Crouzeix,J.-P., Ferland,J.A., ”Algorithms for Generalized Fractional Programming”, Mathematical Programming, Vol.52, 1991, pp.191207. [47] Crouzeix,J.-P., Ferland,J.A., Schaible,S., ”Duality in Generalized Linear Fractional Programming”, Mathematical Programming, Vol.27, 1983, pp.342-354. [48] Crouzeix,J.-P., Ferland,J.A., Schaible,S., ”An Algorithm for Generalized Fractional Programs”, Journal of Optimization Theory and Applications, Vol.47, 1985, pp.35-49. [49] Curtis,A.R., Reid,J.K., ”On the Automatic Scaling of Matrices for Gaussian Elimination”, J. Inst. Maths. Applics., Vol.10, pp.118-124, 1972. [50] Craven,B.D., ”Fractional Programming”, Sigma Series in Applied Mathematics, Vol.4, Heldermann Verlag, Berlin, 1988. [51] Dai,Y., Shi,J., ”A Conical Partition Algorithm for Maximizing the Sum of Several dc Ratios”, Proceedings of the 5th International Conference on Optimization: Tech. Applications (ISOTA 2001), Hong Kong, 2001, pp.600-608. [52] Dakin,R.,J., ”A Tree-Search Algorithm for Mixed Integer Programming Problems”, Computer Journal, Vol.8, 1965, pp.250-255. [53] Dantzig,G.B., ”Maximization of a Linear Function of Variables Subject to Linear Inequalities”, In Activity Analysis of Production and Allocation, edited by T.C.Koopmans. New-York, John Wiley and Sons, 1951. [54] Dantzig,G.B., ”Linear Programs and Extensions.” Princeton, New Jersey, Princeton University Press, 1963. [55] Dent,J.B., Harrison,S.R. and Woodford,K.B., ”Farm Planning With Linear Programming: Concept and Practice”, Butterworths, Sydney, 1986. [56] Dinkelbach,W., ”Die Maximierung Eines Quotienten Zweier Linearer Funktionen Unter Linearen Nebenbedingungen”, Wahrscheinlichkeitstheorie, Vol.1, 1962, pp.141-145. [57] Dorn,W.S., ”Linear Fractional Programming”, IBM Research Report RC-830, Yorktown Heights, New York, November 1962. [58] Duff,I.S., ”A Survey of Sparse Matrix Research”, Proc. IEEE 65, pp.500-535, 1977. [59] Duff,I.S., Erisman,A.M., Reid,J.K., ”Direct Methods for Sparse Matrices”, Clarendon Press, Oxford, 1986. [60] Dutta,D., Rao,J.R., Tiwari,R.N., ”Fuzzy Approaches for Multiple Criteria Linera Fractional Optimization: a comment”, Fuzzy Sets and Systems, Vol.54, 1993, pp. 347-349. [61] Eijkhout,V., ”LAPACK Working Note 50: Distributed Sparse Data Structures for Linear Algebrs Operations”, Technical Report CS
´ IRODALOMJEGYZEK
[62]
[63]
[64]
[65] [66]
[67]
[68]
[69] [70]
[71] [72]
[73]
[74] [75]
[76] [77]
145
92-169, Computer Science Department, University of Tennessee, Knoxville, TN, 1992. Falk,J.E., Palocsay,S.W., ”Optimizing the Sum of Linear Fractional Functions”, Recent Advances of Global Optimization, Princeton University Press, Princeton 1992, pp.221-258. Fletcher,R., Matthews,S.P.J., ”Stable Modification of Explicit LU Factors for Simplex Updates”, Mathematical Programming, Vol.30, 1984, pp.267-284. Fletcher,R., Matthews,S.P.J., ”A Stable Algorithm for Updating Triangular Factors Under a Rank One Change”, Mathematics of Computations, Vol.45, No.172, 1985, pp.471-485. Fletcher,R., ”Practical Methods of Optimization”, Wiley-Interscience, 1987. Forrest,J.J.H., Tomlin,J.A., ”Updating Triangular Factors of the Basis Matrix to Maintane Sparsity in the Product Form Simplex Method”, Mathematical Programming, Vol.2, 1972, pp.263-278. Freund,R.W., Jarre.F., ”An Interior-Point Method for Convex Fractional Programming”, AT&T Numerical Analysis Manuscript, No.93-03, Bell Laboratories, Murray Hill, NJ, 1993. Freund,R.W., Jarre.F., ”An Interior-Point Method for MultiFractional Programs with Convex Constraints”, AT&T Numerical Analysis Manuscript, No.93-07, Bell Laboratories, Murray Hill, NJ, 1993. Fukuda,K., Terlaky,T., ”Criss-Cross Method: a Fresh View on Pivot Algorithms”, Mathematical Programming, B79, 1997, pp.369-395. Gavurin,M.K., ”Fractional-Linear Programming on an Unbounded Set”, Bulletin of the Leningrad State University, Vol.19, No.4, Oct.1982, pp.12-16. (in Russian) Gass,S.I., ”Linear programming”, McGraw-Hill, New-York, 1958. Gill,P.E., Golub,G.H., Murray,W., Saunders,M.A., ”Methods for Modifying Matrix Factorizations”, Mathematics of Computations, Vol.28, 1974, pp. 505-535. Gill,P.E., Murray,W., Saunders,M.A., Wright,M.H., ”Maintaining LU Factors of a General Sparse Matrix”, Linear Algebra and its Aplications, 1988, pp.239-270. Gill,P.E., Murray,W., Wright,M.H., ”Numerical Linear Algebra and Optimization”, Addison-Wesley, 1991. Glover,F., ”A Multiphase-Dual Algorithm for the Zero-One Integer Programming Problem”, Operations Research, Vol.13, 1965, pp.879919. Glover,F., Laguna,M., ”Tabu Search”, Kluwer Academic Publishers, 1997. Goedhart,M.H., Spronk, J., ”Financial Planning with Fractional Goals”, European Journal of Operational Research, Vol.82, 1995, pp.111-123. North-Holland.
146
´ IRODALOMJEGYZEK
[78] Gol’stein,E.G., ”Dual Problems of Convex and Fractional-Convex Programming in Functional Spaces”, Doklady Akademii Nauk SSSR, Vol.172, No.5, 1967, pp.1007-1010. (in Russian) [79] Gol’stein,E.G., ”Duality Theory in Mathematical Programming and its Applications”, Nauka, Moscow, 1971. (in Russian) [80] Gol’stein,E.G., Yudin,D.B., ”Linear programming problems of transportation type”, Nauka, Moscow, 1969. (in Russian) [81] Golub,G.H., Van Loan,C.F., ”Matrix Computations”, Baltimore, The Johns Hopkins University Press, 1996. [82] Gomory,R., ”Outline of an Algorithm for Integer Solutions to Linear Programs”, Bulletin of the American Mathematical Society, Vol.64, 1958, pp.275-278. [83] Gomory,R., ”An Algorithm for Integer Solutions to Linear Programs”, Recent Advances in Mathematical Programming, in Graves,R.L., and Wolfe,P. (eds.), McGraw-Hill, 1963, pp.269-302. [84] Gondzio,J., ”Stable Algorithm for Updating Dense LU Factorization After Row or Column Exchange and Row and Column Addition or Deletion”, Optimization, Vol.23, 1992, pp.7-26. [85] Gondzio,J., ”Applying Schur Complements for Handling General Updates of a Large, Sparse, Unsymmetric Matrix”, Technical Report ZTSW-2-G244/93, Systems Research Institute, Polish Academy of Sciences, 1995. [86] Granot,D., Granot,F., ”On Integer and Mixed Integer Fractional Programming Problems”, Annals of Discrete Mathematics 1, Studies in Integer Programming, (eds.) Hammer,P.L., North Holland Publishing Company, 1977, pp.221-231. [87] Gupta,B., ”Finding the Set of all Efficient Solutions for the Linear Fractional Multiobjective Program with Zero-One Variables”, Operations Research, Vol.18, 1981, pp.204-214. [88] Gupta,R., Malhotra,R., ”Multi-Criteria Integer Linear Fractional Programming Problem”, Optimization, Vol.35, 1995, pp.373-389. [89] Gustavson,F.G., ”Some Basic Technigues for Solving Sprase Systems of Linear Equations”, In ”Sparse Matrices and thier Applications”, Ed.: Rose,D.J., Willoughby,R.A., Proceedings of Symposium at IBM Research Center, NY, September 9-10, 1971. [90] Hansen,P., De Arag˜ao,M.V.P., Ribeiro,C.C., ”Hyperbolic 0 − 1 Programming and Query Optimization in Information Retrieval”, Mathematical Programming, Vol.52, 1991, pp.255-263. [91] Hansen,P.,Pedrosa Filho,E.L., Ribeiro,C.C., ”Locations and Sizing of Offshore Platforms for Oil Exploration”, European Journal of Operational Research, Vol.58(1), pp.202-214, 1992. [92] Hansen,P.,Pedrosa Filho,E.L., Ribeiro,C.C., ”Modeling Location and Sizing of Offshore Platforms”, European Journal of Operational Research, Vol.72(3), pp.602-605, 1994. [93] Hardaker,J.B., ”Farm Planning by Computer”, MAFF/ADAS, Reference Book 419, Her Majesty’s Stationery Office, London, 1980.
´ IRODALOMJEGYZEK
147
[94] Hartmann,K., ”Einige Aspekte der Ganzzahligen Linearen Quotientenoptimierung”, Wiss Z.Tech.Hochsch. Chem.Leuna-Merseburg., Vol.15, No.4, 1973, pp.413-418. [95] Hartmann,K., ”Zur Anwendung des Schnittverfahrens von Gomory auf Gemischt Ganzzahlige Lineare Quotientenoptimierungsprobleme”, III ¨ Internat. Tagung ”Mathematik und Kybernetik in der Okonomie”, 1973. [96] Hartwig,H., ”Ein Simplexartigen L¨ osungsalgorithmus f¨ ur Pseudolineare Optimierungsprobleme”, Studia Sci. Math. Hungar., Vol.10, No.12, 1975, pp.213-236. [97] Heath,M.T., ”Scientific Computing. An Introductory Survey”, McGraw-Hill, 2002. [98] Heesterman,A.R.G., ”Matrices and Simplex Algorithms”, D.Reidel Publishing Company, 1983. [99] Hirche,J., ”Optimizing of Sums and Products of Linear Fractional Functions Under Linear Constraints”, Perprints Series, 95-03. [100] Hoffman,A.J., Mannos,M., Sokolowsky,D., Weigmann,N., ”Computational Experience in Solving Linear Programms”, Journal of the Society for Industrial and Applied Mathematics, Vol.1, No.1, 1953, pp.1733. ´ Terlaky,T., ”The Finite Criss-cross Method for [101] Ill´es,T., Szirmai,A., Hyperbolic Programming”, European Journal of Operational Research, Vol.114, 1999, pp. 198-214. [102] Ishii,H., Ibaraki,T., Mine,H., ”A Primal Cutting Plane Algorithm for Integer Fractional Programming Problems”, Journal of the Operations Research Society of Japan, Vol.19, No.3, 1976, pp.228-244. [103] Ishii,H., Ibaraki,T., Mine,H., ”Fractional Knapsack Problems”, Mathematical Programming, Vol.13, 1976, pp.255-271. [104] Ishii,H., Nishida,T., Daino.A., ”Fractional Set Covering Problems”, Technical Report No. 1492, Osaka University, Vol. 29, 1979, pp.319326. [105] Isbell,J.R., Marlow,W.H., ”Attrition Games”, Naval Research Logistics Quarterly, Vol.3, 1956, pp.71-94. [106] Jagannathan,R., Schaible,S., ”Duality in Generalized Fractional Programming via Farkas’ Lemma”, Journal of Optimization Theory and Applications, Vol.41, 1983, pp.417-424. [107] Jo,C.L., Kim,D.S., Lee,G.M., ”Duality for Multiobjective Fractional Programming Involving n-Set Functions”, Optimization, Vol.29, 1994, pp.205-213. [108] Jonathan,S., Kornbluth,H., Steuer,R.E., ”Multiple Objective Linear Fractional Programming”, Management Science, Vol.27, No.9, 1981, pp.1024-1031. [109] Kantorovich,L.V., ”Economic Accounting for the Best Utilization of Resources”, AN SSSR, Moscow, 1960. (in Russian) [110] Karmarkar,N, ”A new Polynomial-Time Algorithm For Linear Programming”, Combinatorica, Vol.4, No.4, 1984, pp.373-395.
148
´ IRODALOMJEGYZEK
[111] Kaˇska,J., ”Duality in linear fractional programming”, EkonomickoMatematicky Obzor, Vol.5, No.4, 1969, pp.442-453. [112] Kaul,R.N., Bhatia,D., ”Generalized Linear Fractional Programming”, Ekonomocko-Matematicky Obzor, Vol.10, No.3, 1974, pp.322-330. [113] Khachian,L.G., ”A Polynomial Algorithm in Linear Programming”, Doklady Akademii Nauk SSSR, Vol.244, 1979, pp.1093-1096. [114] Knuth,D.E., ”The Art of Computer Programming”, Vol.1:”Fundamental Algorithms”, Adisson-Wesley, 1968. [115] Konno,H., Yajima,Y., ”Minimizing and Maximizing the Product of Linear Fractional Functions”, Recent Advances of Global Optimization, Princeton University Press, Princeton 1992, pp.259-273. [116] Kornbluth,J.S.H., ”A Survey of Goal Programming”, OMEGA, Vol.1, 1973, pp.193-205. [117] Kornbluth,J.S.H., Salkin,G.R., ”A Note on the Economic Interpretation of the Dual Variables in Linear Fractional Programming”, ZAMM, 52, 1972. [118] Kornbluth,J.S.H., Steuer,R.E., ”Multiple Objective Linear Fractional Programming”, Management Science, Vol.9, No. 27, 1981, pp.10241039. [119] Kornbluth,J.S.H., Vinso,J.D., ”Capital Structure and the Financing of Multinational Corporation: A Fractional Multiobjective Approach”, Journal of Financial and Quantitative Amalysis, Vol.17, 1982, pp.147178. [120] Kotiah,T., Slater,N., ”On Two-Server Poisson Queues with Two Types of Customers”, Operations Research, Vol.21, 1973, pp.597-603. [121] Kotiah,T., Steinberg,D.I., ”Occurrence of Cycling and Other Phenomena Arising in a Class of Linear Programming Models”, Commun. ACM, Vol.20, No.2, 1977, pp.102-112. [122] Kuhn,H.W., ”The Hungarian Method for the Assignment Problem”, Naval Research Logistics Quaterly, Vol.2, No.2-3, 1955, pp.83-97. [123] Kuhn,H.W., Quandt,R.E., ”An Experimantal Study of the Simplex Method”, Proceedings of the Symposia in Applied Mathemetics, Vol.15, American Mathematical Society, 1963. [124] Kydland,F., ” Duality in fractional programming”, Naval Research Logistics Quarterly, Vol.19, No.4, 1972, pp.691-697. [125] Land,A.H., Doig,A.G., ”An Automatic Method of Solving Discrete Programming Problems”, Econometrica, Vol.28, No.3, 1960, pp.497520. [126] Larcombe,M.H.E., ”A List Processing Approach to the Solution of Large Sparse Sets of Matrix Equations and the Factorizations of the Overall Matrices”, In ”Large Sparse Sets of Linear Eqiations”, Ed.: Reid,J.K., Academic Press, London, 1971. [127] Lasdon,L.S., ”Optimization Theory for Large Systems”, Macmillan, Collier-MacMillan, London, 1970. [128] Lawler,E.L., Lenstra,J.K., Rinnoy Kan,A.H.G., Shmoys,D.B., (eds.) ”The Traveling Salesman Problem”, John Wiley & Sons, Ltd., 1985.
´ IRODALOMJEGYZEK
149
[129] Liebling,T.M., ”On the Number of Iterations of the Simplex Method”, Methods of Operations Research, Vol.17, No.5, Oberwolfach-Tagung uber Operations Research, 13-19, 1977, pp. 248-264. [130] Luhandjula,M.K., ”Fuzzy Approaches for Multiple Objective Linear Fractional Optimization”, Fuzzy Sets and Systems, Vol.13, 1984, pp.11-23. [131] Lutsma,F.A., ”Multi-Criteria Decision Analysis via Ratio and Difference Judgement”, in Series of Applied Optimization, Vol.29., Kluwer Academic Publishers, 1999, [132] Magee,T.M., Glover,F., ”Integer Programming: Mathematical Programming for Industrial Engineers”, Avriel,M., and Golany,B.(eds.), Marcel Dekker, Inc. New York, 1995, pp.123-270. [133] Martos,B., ”Hyperbolic Programming”, Publ. Math. Inst., Hungarian Academy of Sciences, Vol.5, ser. B, 1960, pp.386-406. [134] Martos,B., ”Hyperbolic Programming”, Naval Research Logistics Quarterly, Vol.11, 1964, pp.135-155. [135] Matsui, T., Saruwatari,Y., Shigeno,M., ”An Analysis of Dinkelbach’s Algorithm for 0-1 Fractional Programming Problems”, Technical Reports METR92-14, Department of Mathematical Engineering and Information Physics, University of Tokyo, 1992. [136] Mukherjee,R.N., ”Generalizad Convex Duality for Multiobjective Fractional Programs”, Journal of Mathematical Analysis and Applications, Vol.162, 1991, pp.309-316. [137] Murty,K.G., ”Linear Programming”, John Wiley and Sons, 1983. [138] Myung,Y., Tcha,D., ”Return of Investment Analysis for Facility Location”, Technical Reprt OR 251-91, Massachusetts Institute of Technology, 1991. [139] Nemhauser,G.L., Wolsey,L.A., ”Integer and Combinatorial Optimization”, John Wiley & Sons, New York, 1988. [140] Nemirovskii,A.S., Nesterov,Y., ”An Interior-point Method for Generalized Linear-Fractional Programming”, Mathematical Programming, Vol.69, 1995, pp.177-204. [141] Nemirovskii,A.S., ”On Polynomiality of the Method of Analytical Centers for Fractional Programming”, Mathematical Programming, Vol.73, 1996, pp.175-198. [142] Nemirovskii,A.S., ”The Long-Step Method of Analytical Centers for Fractional Problems”, Mathematical Programming, Vol.77, 1997, pp.191-224. [143] Nesterov,Y., Nemirovskii,A.S., ”Interior Point Polynomial Algorithms in Convex Programming: Theory and Applications”, SIAM, Philadelphia, 1994. [144] Neumann von,J., ”A Model of General Economic Equilibrium”, Review of Economic Studies, Vol.13, 1945, pp.1-9. [145] Nykowski,I., Zolkiewski,Z., ”A Compromise Procedure for the Multiple Objective Linear Fractional Programming Problem”, European Journal of Operational Research, Vol.19, 1985, pp.91-97.
150
´ IRODALOMJEGYZEK
[146] Orden,A., ”Computaional Investigation and Analysis of Probabilistic Parameters of Convergence of a Simplex Method”, In Progress in Operations Research, Vol.2, Ed. Prekopa A., North-Holland, Amsterdam, The Netherlands, 1976, pp.705-715. [147] Parker,G., Radin,R., ”Discrete Optimization”, Academic Press, New York, 1988. [148] Pissanetzky,S., ”Sparse Matrix Technology”, Academic Press, 1984. [149] Press,W.H., Teukolsky,S.A., Vetterling,W.T., Flannery,B.P., ”Numerical Recipes in C. The Art of Scientific Computing.”, Second Edition, The University of Cambridge, 1992. [150] Reid,J.K., ”Fortran Subroutines for Handling Sparse Linear Programming Bases”, HMSO, London, UK, Report AERE-R.8269, 1976. [151] Reid,J.K., ”A Sparsity Exploiting Variant of the Bartels-Golub decomposition for Linear Programming Bases”, Mathematical Programming, Vol.24, 1982, pp.55-69. [152] Rheinboldt,W.C., Mesztenyi,C.K., ”Programs for the Solution of Large Sparse Matrix Problems Based on the Arc-graph Structures”, Computer Science Center, University of Maryland, College Park, Technical Report TR-262, 1973. [153] Ritter,K., ”A Parametric Method for Solving Certain Nonconcave Maximization Problems”, Journal of Computer System Science, Vol.1, 1967, pp.44-54. [154] Robillard,P., ”(0/1) Hyperbolic Programming Problems”, Naval Research Logistics Quarterly, Vol.18, 1971, pp.47-57. [155] Roos,C., Terlaky,T., Vial,J.-Ph., ”Theory and Algorithms for Linear Optimization”, John Wiley & Sons, 1997. [156] Rosing,K.E., ”Considering offshore production platforms”, European Journal of Operational Research, Vol.72(1), pp.204-206, 1994. [157] Rothenberg,R.I., ”Linear programming”, North-Holland, 1979. [158] Saad,O.M., ”An Algorithm for Solving the Linear Fractional Programs”, Journal of Information & Optimization Science, Vol.14, No.1, 1993, pp.87-93. [159] Saad,Y., ”SPARSKIT: A Basic Tool Kit for Sparse Matrix Computation”, Technical Report CSRD TR 1029, CSRD, University of Illinois, Urbana, IL, 1990. [160] Saunders,M.A. ”A Fast, Stable Implementation of the Simplex Method Using Bartels-Golub Updating”, In Sparse Matrix Computations, Ed. Bunch,J.R., Rose,D.J., Academis Press, 1976, pp.213-226 [161] Savelsbergh,M.W.P., ”Preprocessing and Probing Techniques for Mixed Integer Programming Problems”, ORSA Journal on Computing, Vol.6, No.4, 1994, pp.445-454. [162] Saxena,P.C., Patkar,V.N., Parkash,O., ”A Note on an Algorithm for Integer Solution to Linear and Piecewise Linear Programs”, Pure and Applied MAthematic Science, Vol.9, No.1-2, 1979, pp.31-36.
´ IRODALOMJEGYZEK
151
[163] Schaible,S., ”Fractional Programming: Transformations, Duality and Algorithmic Aspects”, Technical Report Vol.73-9, Department of Operations Research, Stanford University, November 1973. [164] Schaible,S., ”Duality in Fractional Programming: A Unified Approach”, Operations Research, Vol.24, No.3, 1976, pp.452-461. [165] Schaible,S., ”Fractional Programming: Applications and Algorithms”, European Journal of Operations Research, Vol.7, 1981, pp.111-120. [166] Schaible,S., ”Fractional Programming with Sums of Ratios”, Scala and Vector Optimization in Economic and Financial Problems, Procedding of the Italian Workshop, (eds.) Castagnoli,E., Giorgi,E., Stampato da Elioprint, 1996, pp.163-175. [167] Scott,C.H., Jefferson, T.R., ”Fractional Programming Duality via Geometric Programming Duality”, Journal of Australian Mathematical Society, Sseies B, Vol.21, 1980, pp.398-401. [168] Seshan,C.R., ”On duality in Linear Fractional Programming”, Proc. Indian Acad. Sci., Sect. A. Math.Sci., Vol.89, 1980, pp. 35-42. [169] Seshan,C.R., Tikekar,V.G., ”Algorithms for Integer Fractional Programming”, Journal of Indian Institute of Science, Vol.62, No.2, 1980, pp.9-16. [170] Sharma,I.C., Swarup,K., ”On Duality in Linear Fractional Functionals Programming”, Zeitschrift f¨ ur Operations Research, Vol.16, 1972, pp.91-100. [171] Shigeno,M., Saruwatari,Y., Matsui,T., ”An Algorithm for Fractional Assignment Problems”, DAMATH: Discerete Applied Mathematics and Combinatorial Operations Research and Computer Science, Vol.56, 1995. [172] Shor,N.Z., Solomon,D.I., ”Decomposition Methods in Linear Fractional Programming”, Chi¸sin˘au, ”S¸tiint¸a”, 1989. [173] Skeel,R.D., ”Scaling for Stability in Gaussian Elimination”, J. Assoc. Comput. Mach., Vol.26, pp.494-526, 1979. [174] Sniedovich,M., ”Fractional Programming Revised”, European Journal of Operations Research, Vol.33, pp.334-341, 1988. [175] Stancu-Minasian,I.M., ”Fractional Programming: Theory, Methods and Applications”, Kluwer Academic Publishers, 1997. [176] Suhl,U.H., Suhl,L.M., ”Computing Sparse LU Factorization for Largescale Linear Programming Bases”, ORSA Journal of Computing, Vol.2, 1990, pp.325-335. [177] Swarup,K., ”Some Aspects of Duality for Linear Fractional Functional Programming”, Zeitschrift f¨ ur Angewandte Mathematik und Mechanik, Vol.47, No.3, 1967, pp.204-205. [178] Swarup,K., ”Duality in Fractional Programming”, Unternehmensforshung, Vol.12, No.2, 1968, pp.106-112. [179] Taha,H.A., ”Integer Programming. Theory, Applications, and Computations”, Academic Press, 1975. [180] Taha,H.A., ”Operations Research, An Introduction”, Collier MacMillan, New York, 1976.
152
´ IRODALOMJEGYZEK
[181] Terlaky,T., ”A New, Finite Criss-Cross Method for Solving Linear Programming Problems”, Alkalmazott Matematikai Lapok, Vol.10, 1984, pp.289-296. (in Hungarian). [182] Terlaky,T., ”A Convergent Criss-Cross Method”, Math. Oper. und. Statist. Ser. Optim. Vol.16, No.5, 1985, pp.683-690. [183] Terlaky,T., Zhang,S., ”Pivot Rules for Linear Programming: a Survey on Recent Theoretical Developments”, Annals of Operations Research, Vol.46, 1993, pp.203-233. [184] Thiriez,H., ”GULP (version 4.1)”, in European Journal of Operational Research, Vol.39, 1989, pp.345-346. North-Holland. [185] Thiriez,H., ”GULF (version 2.2)”, in European Journal of Operational Research, Vol.67, 1993, pp.295-296. North-Holland. [186] Vanderbei,R.J., ”Linear Programming. Foundations and Extensions”, International Series in Operations Research & Management Science, Kluwer Academic Publishers, 1996. [187] Verma,V., Bakshi,H.C., Puri,M.C., ”Ranking in Integer Linear Fractional Programming Problems”, Zeitschrift f¨ ur Operations Research, Vol.34, 1990, pp.325-334. [188] Wilkinson,J.H., Reinsch,C., ”Linear Algebra”, Vol.2 of ”Handbook for Automatic Computaion”, New York, Springer-Verlag, 1971. [189] Williams,H.P., ”Model Building in Mathematical Programming”, John Wiley & Sons, A Wiley - Interscience Publication, 1985. [190] Winston,W.L., ”Indtroduction to Mathematical Programming. Applications & Algorithms” , PWS-Kent Publishing Company, Boston, 1991. [191] Wolfe,P., Cutler,L., ”Experiments in Linear Programming”, In Recent Advances in Mathematical Programming, Ed. Graves,R.L., and Wolfe,P., McGraw-Hill, New York, 1963, pp. 177-200. [192] Zolkiewski,Z., ”A Multicriteria Linear Programming Model with Linear Fractional Objective Functions”, Ph.D. Thesis, Central School of Planning and Statistics, Warsaw, Poland, 1983. (in Polish) [193] Yudin,D.B., Gol’stein,E.G., ”Linear programming (Theory, Methods and Applications)”, Nauka, Moscow, 1969. (in Russian)