OPERÁCIÓKUTATÁS No.2. Komáromi Éva LINEÁRIS PROGRAMOZÁS Budapest 2005
Komáromi Éva LINEÁRIS PROGRAMOZÁS Javított kiadás OPERÁCIÓKUTATÁS No.2 Megjelenik az FKFP 0231 Program támogatásával a Budapesti Közgazdaságtudományi és Államigazgatási Egyetem, Operációkutatás Tanszék gondozásában Budapest, 2005
Komáromi Éva: LINEÁRIS PROGRAMOZÁS Javított kiadás Lektorálta: Puskás Csaba Készült az Aula Kiadó Digitális Gyorsnyomdájában. Nyomdavezető: Dobozi Erika
Tartalomjegyzék ELŐSZÓ 3 1. A lineáris programozási feladat 5 1.1. Alineárisprogramozásifeladat..................... 5 1.2. Aduálisfeladat.............................. 8 1.3. Konvexhalmazokazeuklideszitérben................. 8 1.4. AzLPfeladatmegoldásairól....................... 15 2. Dualitás, optimalitás 23 3. A lineáris programozási feladat megoldása 29 3.1. Aszimplexmódszer............................ 29 3.2. Aszimplexmódszermegalapozása.................... 32 3.3. Kiindulólehetségesbáziselőállítása................... 34 3.4. Aduálismegoldásaszimplextáblában................. 36 3.5. Számpéldaaszimplexmódszeralkalmazására............. 39 4. Lineáris programozáshoz vezető feladatok 51 4.1. Adöntésialapprobléma......................... 51 4.2. Hiperbolikusvagytörtprogramozás................... 52 4.3. Valószínűséggel korlátozott lineáris programozási modell....... 53 4.4. Többcélúprogramozás.......................... 55 4.5. Célprogramozás.............................. 56 4.6. Kétlépcsősprogramozásimodell..................... 57 1
2 TARTALOMJEGYZÉK 5. Történet, ajánlott könyvek 63
ELŐSZÓ E jegyzet célja az, hogy a lineáris programozás elméletét belehelyezze abba a gondolatkörbe, amelyhez a Budapesti Corvinus Egyetem hallgatói az első szemeszterekben hozzászoktak, és amelyre szükségük lesz különösen azoknak a hallgatóknak, akik a közgazdaságtant elméleti igénnyel készülnek mûvelni. A tárgyalásmód nem lesz éppen változatos, főként állítások és bizonyítások sorozatából áll, amelyeket példák és gyakorlatok ritkán illusztrálnak. Bár számítunk az olvasó lineáris algebrai tájékozottságára, összefoglaljuk mindazokat(de csak azokat) a fogalmakat és állításokat, többségükben bizonyításaikkal együtt, amelyeket a lineáris programozási feladat vizsgálatánál igénybe veszünk. Először bemutatjuk az LP feladatot, majd származtatunk egy másik lineáris programozási feladatot, amelyet duális feladatnak nevezünk, a kiinduló feladatot pedig ebben az összefüggésben primál feladatnak. Célunk az, hogy bemutassuk a lineáris programozási feladat szerkezetét, tulajdonságait, a primál-duál feladatpár kapcsolatát, és a két feladat együttes megoldására szolgáló sok módszer közül a legismertebbet: a szimplex módszert. A tárgyalás középpontjában a primál-duál feladatpár tanulmányozása és a dualitási tétel áll. A dualitási tétel kimondásához, bizonyításához szükségünk lesz a Farkas tételre, annak bizonyításához pedig a konvex halmazok elméletében központi jelentőséggel bíró szeparációs tételre, amelynek azonban csak azt a változatát mondjuk ki és bizonyítjuk itt, amelyet a Farkas tétel bizonyításához felhasználunk. Ennek megfelelően a tárgyalás felépítése a következő. A duális feladat bevezetése után néhány halmazelméleti illetve konvexitással kapcsolatos fogalom, a szeparációs tétel és a Farkas tétel következik. Ezután az LP feladat megoldásainak elhelyezkedéséről 3
4 TARTALOMJEGYZÉK lesz szó és bizonyítjuk a dualitási tételt. A dualitási tétel folyománya a nagyjelentőségû komplementaritási tétel, amely rávilágít az LP feladat optimális megoldásainak jellegére is. Ezzel teljes egészében előkészítettük a szimplex módszert, amelynek ezután csak a leírása marad hátra. Végül sor kerül a szimplex tábla szerkezetének a tanulmányozására abból a célból, hogy lássuk, hogyan befolyásolják a feladat paraméterei az optimális megoldást és az optimális célfüggvényértéket. A szimplex módszer alkalmazását, a lehetséges kimeneteleket és a feladat paraméterei változásának a következményeit számpélda illusztrálja. Az utolsó fejezetben lineáris programozási feladatra visszavezethető nemlineáris programozási feladatok közül bemutatunk néhányat, azzal a céllal is, hogy az olvasó érdeklődését felkeltsük a matematikai programozás néhány más ága, pl. a sztochasztikus programozás és a hiperbolikus programozás, és a döntéselméletben fontos szerepet játszó célprogramozás illetve többcélú programozás iránt. Az ajánlott irodalommal zárul a jegyzet. Néhány mérföldkőnek tekinthető könyvet sorolunk itt fel és néhány jellemző adatot, magyar vonatkozást a lineáris programozást is magában foglaló operációkutatás történetéből. E jegyzet a 2002-ben e sorozatban megjelent jegyzet javított kiadása.
1. fejezet A lineáris programozási feladat 1.1. A lineáris programozási feladat LegyenA m nméretűmátrix,b m-komponensűvektor,c n-komponensűvektor, mindhárom adott. Keresünk olyan n-komponensű x vektort, amely maximalizáljaacxlineárisfüggvényt(skalárisszorzatot)azax=b,x 0lineárisfeltételek mellett: cx max Ax = b,x 0. Ez a lineáris programozási feladat egységes, úgynevezett kanonikus alakban. Általános formájában egy LP feladat tartalmazhat egyenlőtlenségi feltételt, előjelkötetlen változókat, maximalizálás helyett lehet minimalizálás a cél. Az LP feladat különböző alakjai azonban ekvivalensek abban az értelemben, hogy bármely LP feladat kanonikus alakban felírható, és fordítva, egy kanonikus alakban felírt LP feladat átalakítható más, például csupa egyenlőtlenségi feltételt tartalmazó feladattá. A következő tételben összefoglaljuk az LP feladat feltételeit és célfüggvényét illető átalakítási lehetőségeket. Megjegyezzük, hogy ebben a jegyzetben minden vektor-vektor szorzás skaláris, ezért sehol nem tüntetjük fel a transzponált jelölésével, hogy az első sorvektor, a második pedig oszlopvektor. A mátrix-vektor szorzásnál szintén a sorrend dönti el, 5
6 1.FEJEZET: ALINEÁRISPROGRAMOZÁSIFELADAT hogy a szóbanforgó vektor sorvektornak vagy oszlopvektornak tekintendő-e. Megjegyezzüktovábbá,hogyA j jelöliazamátrixj-dikoszlopát,a i pedigazi-diksorát, azaza j m-komponensű,a i n-komponensűvektorok(j=1,...,n;i=1,...,m). 1. Állítás (ekvivalens átalakítások): (1)Aza i1 x 1 +a i2 x 2 +...+a in x n b i feltétel egynemnegatívu i változóbevezetésével helyettesíthető a következő két feltétellel: a i1 x 1 +a i2 x 2 +...+a in x n +u i = b i, u i 0. Aza i1 x 1 +a i2 x 2 +...+a in x n b i feltételegynemnegatívu i változóbevezetésével helyettesíthető a következő két feltétellel: a i1 x 1 +a i2 x 2 +...+a in x n u i = b i, u i 0. (2)Aza i1 x 1 +a i2 x 2 +...+a in x n b i feltételekvivalensa a i1 x 1 a i2 x 2... a in x n b i feltétellel,aza i1 x 1 +a i2 x 2 +...+a in x n b i feltételekvivalensa a i1 x 1 a i2 x 2... a in x n b i feltétellel. (3) Az a i1 x 1 +a i2 x 2 +...+a in x n = b i feltétel helyettesíthető a következő két egyenlőtlenségi feltétellel: a i1 x 1 +a i2 x 2 +...+a in x n b i, a i1 x 1 +a i2 x 2 +...+a in x n b i. Aza i1 x 1 +a i2 x 2 +...+a in x n =b i (i=1,...,k)kszámúfeltételbőlállófeltételrendszer helyettesíthető a következő k + 1 számú egyenlőtlenségi feltétellel:
1.1. ALINEÁRISPROGRAMOZÁSIFELADAT 7 a i1 x 1 +a i2 x 2 +...+a in x n b i (i=1,...,k), k k k k a i1 x 1 + a i2 x 2 +...+ a in x n b i. i=1 i=1 i=1 i=1 (4)Előjelkötetlenx j változóhelyettesíthetőkétnemnegatívváltozókülönbségével: x j =x j x j,x j 0,x j 0. Több előjelkötetlen változó esetén elegendő egyetlen új változót bevezetni ahhoz, hogy valamennyi szóbanforgó változó nemnegativitását előírhassuk: az a i1 x 1 +a i2 x 2 +...+a in x n =b i,i=1,...,m feltételrendszer ekvivalens az alábbi feltételrendszerrel: ( n a i1 x 1+a i2 x 2+...+a in x n a ij )x = b i,i=1,...,m, j=1 x 0,x j 0,j=1,...,n. aholazx 1 =x 1 x,...,x n =x n x helyettesítéstalkalmaztuk. (5) A célfüggvény maximalizálása ekvivalens a célfüggvény negatívjának minimalizálásával és fordítva. Bizonyítás: A(4) állítást látjuk be, a többi bizonyítását az olvasóra bízzuk. Tegyükfelelőször,hogy x=( x 1, x 2,..., x n )kielégítia n a ij x j =b i, i=1,...,m feltételeket. Mivel minden szám helyettesíthető két nemnegatív szám különbségével, találunkolyanx j,x j nemnegatívszámokat,hogy x j=x j x j, j=1,...,n.legyen x =max(x j)ésadjunkújértékeketazx j változóknakakövetkezőmódon: legyen j x j= x j +x. Ekkorx,x j kielégítikaz ( n a i1 x 1+a i2 x 2+...+a in x n a ij )x = b i,(i=1,...,m) egyenlőtlenségrendszert. j=1 j=1 x 0,x j 0,(j=1,...,n) Tegyük fel másodszor, hogy x 0,x j 0,(j = 1,...,n) kielégítik a fenti egyenlőtlenségrendszert. Legyen x=(x 1 x,...,x n x ).AkkorA x=bteljesül.
8 1.FEJEZET: ALINEÁRISPROGRAMOZÁSIFELADAT 1.2. A duális feladat Bevezetjük a cx max Ax = b, x 0 kanonikus alakú LP feladat duálisát a következő yb min ya c feladat formájában, ahol y m-komponensű döntési (változó) vektor. Az első feladatot primál feladatnak, a második feladatot duál vagy duális feladatnak nevezzük, y komponenseit duális változóknak. Noha a definíció a kanonikus feladathoz kapcsolódik, tetszőleges LP feladat duális feladatát definiáltuk ezáltal, mivel tetszőleges LP feladat átalakítható kanonikus alakúvá. Az olvasóra bízzuk az alábbi két állítás igazolását. 2. Állítás A duális feladat duálisa a primál feladat. 3. Állítás A cx max,ax b,x 0 úgynevezett standard alakú feladat duálisaazyb min, ya c, y 0feladat. 1.3. Konvex halmazok az euklideszi térben A lineáris programozási feladat vizsgálatához szükség van néhány lineáris algebrai fogalomra és állításra. Ebben a szakaszban ezeket foglaljuk össze. LegyenH R n,h. Az a pont a H torlódási pontja, ha a bármely környezete tartalmaz a-tól különböző elemet a H-ból. Aza H ponth-nakbelsőpontja,haa-naklétezikolyanr-sugarúkörnyezete (r > 0), amelynek minden pontja H-hoz tartozik. A H halmaz zárt, ha minden torlódási pontját tartalmazza.
1.3. KONVEXHALMAZOKAZEUKLIDESZITÉRBEN 9 AH halmaznyílt,hamindenpontjabelsőpont. AH halmazkorlátos,havanolyankszám,hogy a <kfennállmindena H esetén. AH R n halmazkompakt,hakorlátosészárt. AH R n lineáristér,haalineáriskombinációranézvezárt: a 1,a 2 H maga utánvonja,hogyµ 1 a 1 +µ 2 a 2 C mindenµ 1,µ 2 Resetén. Aza 1,a 2,...,a k R n vektoroklineárisanfüggetlenek,halineáriskombinációjukként a0vektorcsakazonosan0együtthatókkalállelő: µ 1 a 1 +µ 2 a 2 +...+µ k a k =0 µ i =0 mindeniesetén. Az a 1,a 2,...,a k H R n a H lineáris tér bázisa, ha a 1,a 2,...,a k lineárisan függetlenekéshmindenelemeelőállaza 1,a 2,...,a k vektoroklineáriskombinációjaként: a H magautánvonja,hogy µ 1,µ 2,...,µ k,hogya=µ 1 a 1 +µ 2 a 2 +...+µ k a k. Aza 1,a 2 Hpontokatösszekötőszakasz a{a a=λa 1 +(1 λ)a 2,0 λ 1} halmaz. A H halmaz konvex, ha bármely két elemével együtt az azokat összekötő szakaszt is tartalmazza. Az a legszûkebb konvex halmaz, amely tartalmazza a H halmazt, H konvex burka. Legyenc R n,c 0,α R. Az{x R n cx=α}halmazhipersík. Legyen c R n,c 0,α R. Az {x R n cx α} és {x R n cx α} halmazok zárt félterek. Legyenc R n,c 0,α R. Az{x R n cx<α}és{x R n cx>α}halmazok nyílt félterek. 4. Állítás: (1) A H halmaz konvex akkor és csak akkor, ha bárhogyan is választjuk ki az a 1,a 2,...,a k H pontokat,azokbármelykonvexlineáriskombinációjaiselemeah k k halmaznak: λ i a i H,haλ i 0 (i=1,...,k), λ i =1. i=1 (2) Konvex halmazok metszete konvex. (3) A hipersík konvex halmaz. i=1
10 1.FEJEZET: ALINEÁRISPROGRAMOZÁSIFELADAT (4) A féltér konvex halmaz. Bizonyítás. (1)AfeltételteljesüléseeseténaHhalmazkonvex,hiszenafeltételteljesülk=2 esetén is, ez pedig a konvex halmaz definiciója. Belátjuk most, hogy ha H konvex, akkor a = k k λ i a i H, (λ i 0 (i=1,...,k), λ i = 1), a H szóbanforgó i=1 elemeinek k számára vonatkozó teljes indukcióval. Az állítás igaz, a konvex halmaz definíciója szerint, k = 2-re. Tegyük fel, hogy igazk 1-re, belátjuk, hogy akkor igaz k-ra is. Ha λ k = 1, az állítás igaz, mert a k H. Tegyük fel, hogy λ k < 1. Ekkor1 λ k = k 1 λ i >0.Azindukciósfeltevésmiatt k 1 i=1 i=1 λ i 1 λ k a i H, mivel Ekkorazonbanaza=λ k a k +(1 λ k ) k 1 a H konvexitása miatt. i=1 λ i k 1 0,(i=1,...,k 1), 1 λ k i=1 i=1 λ i 1 λ k =1. λ i 1 λ k a i vektorszinténelemeahhalmaznak (2). Legyen x 1,x 2 H γ, H γ (γ Γ) konvex halmazok. Legyen x = λx 1 + (1 λ)x 2,1 λ 0.Mivelx 1,x 2 mindenh γ halmaznakelemeésh γ konvex,ezért x eleme e halmazok mindegyikének és ily módon metszetüknek is. (3)Legyenx 1,x 2 {x R n cx=α},legyenx=λx 1 +(1 λ)x 2,1 λ 0. Akkorcx=λcx 1 +(1 λ)cx 2 =λα+(1 λ)α=α,azazx {x R n cx=α}. (4)Legyenx 1,x 2 {x R n cx α},legyenx=λx 1 +(1 λ)x 2,1 λ 0. Akkorcx=λcx 1 +(1 λ)cx 2 λα+(1 λ)α=α,azazx {x R n cx α}. Egy a H a H konvex zárt halmaz csúcspontja vagy extrémális pontja, ha a nem írható fel H a-tól különböző elemeinek konvex lineáris kombinációjaként. AzR n végesszámúeleménekkonvexburkátpoliédernek nevezzük. Véges számú zárt féltér metszetét poliedrikus halmaz nak nevezzük. Vegyük észre, hogy a poliéder a csúcspontjainak konvex burka. AH R n konvexkúp,haanemnegatívkombinációranézvezárt: a 1,a 2 H és µ 1,µ 2 R,µ 1,µ 2 0magautánvonja,hogyµ 1 a 1 +µ 2 a 2 H. Könnyenlátható,hogyedefinícióekvivalensakövetkezővel: AH R n konvex kúp,haa 1,a 2 H,µ 0magautánvonja,hogya 1 +a 2 H,µa 1 H.
1.3. KONVEXHALMAZOKAZEUKLIDESZITÉRBEN 11 Az alábbi állítást bizonyítás nélkül közöljük. 5. Állítás AzR n térvégesszámúelemeáltalgeneráltkonvexkúpzárthalmaz. 6. Állítás Legyena 1,a 2,...,a k R n. (1)AH= { a R n a=µ 1 a 1 +µ 2 a 2 +...+µ k a k,µ j 0 (j=1,...,k) } halmaz konvex kúp. (2)AG={y R n ya j 0, j=1,...,k}halmazkonvexkúp. Bizonyítás. (1) Legyen H a = µ 1a 1 +µ 2a 2 +...+µ ka k,µ i 0 (i = 1,...,k), H a =µ 1 a 1+µ 2 a 2+...+µ k a k,µ i 0(i=1,...,k).Akkora +a = (µ 1+µ 1)a 1 +...+(µ k +µ k )a k H ésµµ 1a 1 +µµ 2a 2 +...+µµ k a k H,haµ 0, mertekkorµµ i 0 i=1,...,k. (2) Legyenek y 1,y 2 G, vagyis y 1 a j 0 és y 2 a j 0, (j = 1,...,k). Ekkor (y 1 +y 2 )a j = y 1 a j +y 2 a j 0,vagyis y 1 +y 2 G. Továbbá, µy 1 a j 0 (j = 1,...,k),azazµy 1 G. Az előző állításban szerepló G kúpot a H kúp polárisának nevezzük, jelölése: G=H. Akétkúpnakszemléletesgeometriaitartalomadható,amelyimplikálja azt az - alább a Farkas tételben bizonyított - megállapítást, hogy az R n egy a vektoravagybennevanah kúpban,vagyapolárisánakvanolyanyeleme,amely a-val hegyesszöget zár be, amint ezt az alábbi ábra mutatja. Vegyük észre, hogy G-vel együtt az αg halmaz is konvex kúp minden α R mellett. Vegyük észre, hogy az, hogy a kanonikus alakú lineáris programozási feladat feltételeit kielégítő megoldás létezik azt jelenti, hogy a jobboldalon lévő m-komponensű b vektor benne van az A mátrix A 1,...,A n oszlopvektorai által generált konvex kúpban. Legyen H és G két nemüres halmaz R n -ben. Az {x R n cx=α} hipersíkot H-t és G-t(szigorúan) elválasztó hipersík nak nevezzük, ha x H cx α (cx<α) x G cx α (cx>α)
12 1.FEJEZET: ALINEÁRISPROGRAMOZÁSIFELADAT 1.1. ábra. 1.2. ábra.
1.3. KONVEXHALMAZOKAZEUKLIDESZITÉRBEN 13 A következő állításazt mondjaki, hogy egyzárt konvex halmaz ésegy, a halmazhoz nem tartozó pont szigorúan elválasztható. 7. Állítás (Szeparációs tétel): Legyen H R n zárt, konvex, nemüres halmaz és x R n \H. Akkor létezik olyan 0 c R n és α R, hogy az {x R n cx=α} halmaz a H halmazt és az x pontot szigorúan elválasztó hipersík. Bizonyítás. LegyenD ρ ( x)={x x x ρ}az xρ-sugarúzártkörnyezete. Válasszuk ρ-t úgy, hogy D ρ ( x) H. Mivel x x folytonos függvény, ezért felvesziaminimumátazr n korlátosészárt,azazkompaktd ρ ( x) Hrészhalmazának egypontjában,legyenezapontx.aminimumértéke: x x >0,mert x / H. A tételt azzal bizonyítjuk, hogy belátjuk, c = x x és egy alkalmas α érték az állításban szereplő elválasztó hipersíkot határoz meg. Legyen x H tetszőleges pont. H konvexvoltamiattλx+(1 λ)x H ha0 λ 1,ésa λx+(1 λ)x x x x egyenlőtlenség fennáll minden 0 λ 1 értékre. Emeljük négyzetre az egyenlőtlenség mindkét oldalát. Azt kapjuk, hogy λ 2 (x x ) 2 +2λ(x x )(x x)+(x x) 2 (x x) 2 λ[2(x x )(x x)+λ(x x ) 2 ] 0. Mivel ez utóbbi egyenlőtlenség baloldalán λ szorzója λ-nak lineáris függvénye, az egyenlőtlenség csak akkor állhat fenn minden 0 < λ < 1 értékre is, ha e lineáris függvény konstans tagja nemnegatív: (x x )(x x) 0, azazx(x x) x (x x). Mivel (x x)(x x)>0,ezértx (x x)> x(x x).
14 1.FEJEZET: ALINEÁRISPROGRAMOZÁSIFELADAT Válasszuk c t és α-t a következőképpen: c=x x 0,α= x (x x)+ x(x x). 2 Aztkaptuk,hogycx>α>c xmindenx H esetén,azazaz{x R n cx=α}a H halmazt és az x pontot szigorúan elválasztó hipersík. 8. Állítás (Farkastétel): Akövetkezőkétfeladatközülazegyikéscsakazegyik oldható meg.: (a) Ax = b,x 0 (b) ya 0, yb<0 Bizonyítás. Először belátjuk, hogy a két feladat egyidejüleg nem oldható meg. Tegyük fel ugyanis az állítással ellentétben, hogy az x és ŷ vektorokra fennáll, hogy A x =b, x 0ésŷA 0,ŷb<0. Akkor ŷa x=ŷb<0, miközben ŷa x 0, ami ellentmondás. Másodszor: tegyük fel, hogy nincs megoldása az Ax = b,x 0 feladatnak, vagyis b nem állítható elő A oszlopvektorai nemnegatív kombinációjaként. Ez azt jelenti,hogyabvektornincsbenneaza 1,...,A n oszlopvektorokáltalgeneráltkonvex zárt kúpban. A szeparációs tétel szerint akkor létezik a b vektort és az A 1,...,A n oszlopvektorok által generált kúpot szigorúan elválasztó hipersík: y R m,y 0ésα R,hogyyb<αésya>αmindena {a a=ax,x 0} esetén. MivelazAoszlopvektoraiáltalgeneráltkúpnakazA j oszlopvektorokiselemei ésaza=0vektoriseleme,ezértya j >α, j=1,...,nésα<y0=0.ígyyb<0. Az α negatív volta önmagában még nem zárja ki, hogy valamely rögzített j indexre ya j negatívlegyen. DeA j -velegyüttannakmindennemnegatívδ-szorosaiseleme akúpnak,ezérthaya j <0,akkorδyA j tetszőlegesennagyabszolutértékűnegatív szám lehet, vagyis α-nál kisebb lesz, ha δ elég nagy. Ez ellentmondásban van azzal, hogyyax>αmindenx 0mellett,beleértveaztazxvektortis,amelynekj-edik komponense1,atöbbi0. Tehátazyvektorrafennáll,hogyyA 0ésyb<0,amiéppenatételállítása.
1.4. AZLPFELADATMEGOLDÁSAIRÓL 15 1.4. Az LP feladat megoldásairól Megállapítottuk, hogy minden lineáris programozási feladat ekvivalens átalakítás eredményeként kanonikus feladattá válhat és fordítva, minden kanonikus feladat bármilyen más formában is megfogalmazható. Elegendő tehát a kanonikus feladatot vizsgálnunk ahhoz, hogy az LP feladatokra vonatkozó általános észrevételeket tehessünk, amint az itt következik. A cx max Ax = b,x 0 LP feladat lehetséges vagy megengedett megoldásainak nevezzük azokat az x vektorokat, amelyek a feltételeket kielégítik. Az LP feladat célfüggvénye az optimalizálandó: maximalizálandó(más esetben minimalizálandó) cx lineáris függvény. Az LP feladat optimális megoldásainak nevezzük azokat az x vektorokat, amelyek a lehetséges megoldások halmazán a célfüggvényt maximalizálják. A feladat egy lehetséges bázisa az A mátrix oszlopvektorainak olyan összessége, amely egyrészt bázisa az A oszlopvektorai által generált lineáris térnek, másrészt azok az együtthatók, amelyekkel a b vektor egyértelmûen felírható ezen oszlopvektorok lineáris kombinációjaként, nemnegatívak. A feladat bázismegoldásainak nevezzük azokat az x vektorokat, amelyek pozitív komponenseihez tartozó oszlopvektorai az A mátrixnak lineárisan függetlenek. Egy bázismegoldás degenerált, ha a szóbanforgó oszlopvektorok az A mátrix oszlopvektorai által kifeszített lineáris térnek egy valódi alterét generálják. 9. Állítás A lehetséges megoldások L={x R n Ax=b,x 0} halmaza konvex. i=1 Bizonyítás. Mivelaz{x Ax=b}halmazhipersíkokmetszete: {x Ax=b}= m {x A i x=b i },ezértehalmazkonvex. Konvextovábbáaz{x R n x 0}halmazis,mertmetszeteaz{x R n e i x 0},i=1,...,nféltereknek,ahole i azi-dik
16 1.FEJEZET: ALINEÁRISPROGRAMOZÁSIFELADAT egységvektor. Így konvex az {x R n x 0} {x R n Ax=b} halmaz is. Vegyük észre, hogy az optimális megoldások halmaza, ha nemüres, szintén véges számú hipersík és a nemnegatív térnegyed közös része: L opt ={x Ax=b,cx=γ,x 0}, aholγ azoptimáliscélfüggvényértéketjelöli. Eztfoglaljaösszeazalábbi 10. Állítás Az optimális megoldások halmaza konvex. A következő állítást fontossága miatt kiemeljük, de tartalma nyilvánvaló, hiszen aweierstrasstételértelmébenazr n korlátoszártrészhalmazánfolytonosfüggvény felvesziaminimumátisésamaximumátis. 11. Állítás Ha a lehetséges megoldások halmaza korlátos, akkor az LP feladatnak van optimális megoldása. A lehetséges és optimális megoldások elhelyezkedését illusztrálja az alábbi példa. Példa Tekintsük a következő kétváltozós feladatokat és vizsgáljuk a lehetséges és optimális megoldások halmazát különböző esetekben. Induljunk ki a 2x 1 +3x 2 max (1) x 1 +x 2 1, (2) x 1 +x 2 4, (3) x 1 +2x 2 2, (4) 3x 1 +x 2 3, (5) x 1,x 2 0. feladatból. Ábrázoljuk a lehetséges megoldások halmazát(1.3. ábra):
1.4. AZLPFELADATMEGOLDÁSAIRÓL 17 1.3. ábra. (a) A lehetséges megoldások L halmaza korlátos, nemüres, poliéder. Az optimális megoldásokhalmazaegyetlencsúcspont,azx 1 +x 2 =4ésazx 1 2x 2 =2egyenesek metszéspontja: x 1 = 10 3,x 2= 2 3. (b) Változtassuk meg a célfüggvényt. Legyen a maximalizálandó célfüggvényünk: x 1 +x 2.EkkorazoptimálismegoldásokhalmazaazLhalmazegyhatárolószakasza: azx 1 = 10 3,x 2= 2 3 pontotazx 1= 3 2,x 2= 5 2 ponttalösszekötőszakasz. (c) Az eredeti feladat(2) feltételét változtassuk meg, legyen az új(2) feltétel a következő: x 1 +x 2 0,9.Ekkoralehetségesmegoldásokhalmazaésígytermészetszerűleg az optimális megoldások halmaza is üres. (d) Hagyjuk el a (2) feltételt teljes egészében. Ekkor a lehetséges megoldások halmaza a 1.4. ábrán mutatott nem korlátos poliedrikus halmaz: Látható, hogy a célfüggvény tetszőlegesen nagy értéket felvehet, vagyis nem korlátos a lehetséges megoldások L halmazán, ezért az optimális megoldások halmaza üres. (e) Hagyjuk el a(2) feltételt teljes egészében, és változtassuk meg a célfüggvényt. Legyenazújmaximalizálandócélfüggvény x 1 +x 2. Ekkorazoptimálismegoldások halmazaazlhalmazthatárolóazon félegyenes, amelyazx 1 = 1 2,x 2 = 3 2 csúcsból indul és iránytangense 1.
18 1.FEJEZET: ALINEÁRISPROGRAMOZÁSIFELADAT 1.4. ábra. Összefoglalva megállapíthatjuk, hogy kétváltozós esetben a lehetséges megoldások halmaza lehet üres, lehet nemüres korlátos poliéder, illetve nemüres nem korlátos: poliedrikus halmaz. Az optimális megoldások halmaza lehet üres, lehet egyetlen csúcs, lehet szakasz, vagy félegyenes, de az optimális megoldások között mindegyik esetben van csúcs. A következőkben a kétváltozós esetben tett észrevételeinket általánosítjuk. Először a feladat bázismegoldásaival azonosítjuk a lehetséges megoldások L halmazának csúcspontjait. Célunk az, hogy megmutassuk: ha a feladatnak van optimális megoldása, akkor van optimális bázismegoldása is- ez a következő fejezet utolsó állítása lesz és egyben a konklúzió. A következő állításban egy észrevételt fogalmazunk meg. 12. Állítás Tekintsükaz Ax=b,x 0feladategyx=(x 1,...,x n )megoldását. Ha x pozitív komponenseihez tartozó oszlopvektorok lineárisan összefüggnek, akkor meghatározható egy olyan másik x megoldás, amelynek komponensei 0 k ott, ahol x komponensei 0 k és a pozitív komponenseinek száma legalább eggyel kevesebb. Az egyszerűség kedvéért(de az általánosság megszorítása nélkül) feltesszük, hogy x minden komponense pozitív. Az állításban szereplő feltevés szerint az A mátrix
1.4. AZLPFELADATMEGOLDÁSAIRÓL 19 oszlopvektorailineárisanösszefüggnek. Ekkor s=(s 1,...,s n ),nemmind0komponensekkel, hogy n A j s j =0. j=1 Feltehetjük, hogy az s vektornak van pozitív eleme. (Ha nem lenne, az összeg minden tagját megszorozzuk 1-gyel.) Legyen x j 0<δ=min s j >0s j és tegyük fel(az általánosság megszorítása nélkül), hogy Ekkor δ= x n s n. x=x δs=(x 1 δs 1,...,x n δs n ) 0, j A j (x j δs j )=b, vagyis xmegoldás,de x n =0.Így xeggyelkevesebbpozitívkomponensttartalmaz. 13. Állítás Ha acx max, Ax=b,x 0kanonikusfeladatnakvan lehetséges megoldása, akkor van lehetséges bázismegoldása is. Bizonyítás. Az állítást az A mátrix oszlopvektorai (a változók) n számára vonatkozó teljes indukcióval bizonyítjuk. n=1-reazállításigaz. Tegyükfel,hogytetszőlegesn>1eseténigazk<nre, belátjuk, hogy akkor igaz k = n-re is. Legyen x = (x 1,x 2,...,x n ) lehetséges megoldás: n A j x j =b,x=(x 1,x 2,...,x n ) 0. j=1 1. eset: x komponensei között van 0. Az általánosság megszorítása nélkül feltehetjük,hogyx n =0.Ekkoraz(x 1,x 2,...,x n 1 )lehetségesmegoldásaazn 1oszlopvektorttartalmazó n 1 A j x j =b,x=(x 1,x 2,...,x n 1 ) 0feladatnak, azállítás j=1 tehát igaz az indukciós feltevés miatt. 2. eset: x j >0,j=1,...,n.Haazoszlopvektoroklineárisanfüggetlenek,akkorx bázismegoldás, készen vagyunk. Ha az oszlopvektorok lineárisan összefüggnek, akkor
20 1.FEJEZET: ALINEÁRISPROGRAMOZÁSIFELADAT az előző állítás értelmében redukálhatjuk a feladatot n-nél kevesebb oszlopvektort tartalmazó feladatra, amelyre pedig állításunk az indukciós feltevés miatt igaz. A lehetséges megoldások illetve optimális megoldások halmazának egy fontos tulajdonságát mutatja be a következő állítás. 14. Állítás Az x csúcspontja az L = {x R n Ax=b,x 0} halmaznak akkor és csak akkor, ha x bázismegoldás. Bizonyítás. Először belátjuk, hogy x csúcspont, ha x bázismegoldás. Tegyük fel az állítással ellentétben, hogy x bázismegoldás, de nem csúcspont. Akkor léteznek olyan R n x 1,x 2,x 1 x 2 x lehetséges megoldások, hogy x = λx 1 +(1 λ)x 2, 0 < λ < 1. Ha x j = 0, akkor x 1 j = 0 és x 2 j = 0 hiszen x,x 1,x 2 0. Ezért x 1 és x 2 pozitív komponenseihez tartozó oszlopvektorok szintén lineárisan függetlenek,tehátx 1 ésx 2 bázismegoldásoklennének,ellentmondásbanazzal,hogy minden vektor, így b is, csak egyféleképpen írható fel lineárisan független vektorok lineáris kombinációjaként. Másodszor: belátjuk, hogy x bázismegoldás, ha x csúcspont. Ismét tegyük fel az állítással ellentétben, hogy x csúcspont, de nem bázismegoldás. Legyen az x első r komponense pozitív, r n. Ekkor fennáll, hogy A 1 x 1 +...+A r x r =b,x j >0,haj=1,...,r és létezik olyan s = (s 1,...,s r,s r+1,...,s n ) vektor, amelyben s j = 0, ha j = r+ 1,...,n;s 1,...,s r nemmind0,közülüklegalábbegykomponenspozitívés A 1 s 1 +A 2 s 2 +...+A r s r =0. x Legyenδ 1 =min j s j >0 s j, δ 2 =min s j <0 ( x j s j ),ezutóbbiδ 1,has-neknincsnegatívkomponense. Legyenδ=min(δ 1,δ 2 ). Ekkor x 1 = x δs=(x 1 δs 1,...,x n δs n ) 0,x 2 =x+δs=(x 1 +δs 1,...,x n +δs n ) 0, Ax 1 = A(x δs)=b δ0=b, Ax 2 =A(x+δs)=b+δ0=b.
1.4. AZLPFELADATMEGOLDÁSAIRÓL 21 Vagyisx δsésx+δslehetségesmegoldásokésx= x1 +x 2 2, ellentmondásban azzal a feltevéssel, hogy x csúcspontja a lehetséges megoldások halmazának. Mivel az A mátrix oszlopvektorai közül véges számú: legfeljebb ( n m) számú lineárisan független rendszert alkotó halmaz választható ki, ezért a bázismegoldások száma, egyúttal a lehetséges megoldások L halmazának csúcspontjainak száma is szükségképpen véges. Ha tehát az LP feladat lehetséges megoldásainak halmaza korlátos, akkor e halmaz poliéder.
22 1.FEJEZET: ALINEÁRISPROGRAMOZÁSIFELADAT
2. fejezet Dualitás, optimalitás A kanonikus alakú LP feladat és duálisa közötti kézenfekvő kapcsolatot írja le az alábbi 15. Állítás (Gyenge dualitási tétel): (1) Ha x a primál és ŷ a duális feladat lehetségesmegoldása,akkorfennállac x ŷbösszefüggés. (2)Ha xaprimál ésŷaduálisfeladatlehetségesmegoldásaésc x=ŷb,akkor xaprimálésŷa duális feladat optimális megoldása. Bizonyítás. (1) Tegyük fel, hogy x és ŷ kielégítik a primál illetve a duál feltételeket. Szorozzuk meg ŷ-nal a primál feladat egyenletrendszerét. Szorozzuk meg x-val a duális feladat egyenlőtlenségrendszerét. Mivel x komponensei nemnegatívok, ezért az egyenlőtlenség iránya a szorzással nem változik. Azt kapjuk, hogy c x ŷa x=ŷb. (2)Minthogyac x ŷbegyenlőtlenségfennálltetszőleges xprímálésŷduálislehetséges megoldásra, ezért ha két lehetséges megoldásra a célfüggvényértékek egyenlők, ez csak úgy lehet, ha mindkettő optimális megoldás. Egy másik fontos összefüggés a Farkas tételből azonnal következik, nevezetesen az, hogy ha a primál feladatnak nincs lehetséges megoldása, akkor a duális feladatnak nincsoptimálismegoldása. Tegyükfelugyanis,hogynincsmegoldásaazAx=b,x 0 feladatnak. Ha a duális feladatnak sincs lehetséges megoldása, akkor optimális 23
24 2.FEJEZET: DUALITÁS,OPTIMALITÁS sem lehet, tehát készen vagyunk. Tegyük fel tehát, hogy a duális feladatnak van lehetségesŷmegoldása. Mivel ỹ R m,afarkastételszerint,amelyreỹa 0,ỹb< 0 fennáll, és mivel ŷ+λỹ is lehetséges megoldása a duális feladatnak minden pozitív λ érték mellett, ezért a duális feladat célfüggvénye tetszőlegesen nagy abszolut értékû negatív szám lehet a λ értékétől függően - azaz a duális feladat célfüggvénye nem veszi fel a minimumát a lehetséges megoldások halmazán, mivel alulról nem korlátos. Ezt az állítást is magában foglalja a következő tétel. Dualitási tétel: (1) Ha mind a primál, mind a duális feladatnak van lehetséges megoldása, akkor mindkettőnek van optimális megoldása és az optimális célfüggvényértékek megegyeznek. (2) Ha az egyiknek nincs lehetséges megoldása, akkor a másiknak nincs optimális megoldása. Bizonyítás. A(2) állítást beláttuk abban az esetben, amikor a primál feladatnak nincs lehetséges megoldása. Mivel azonban a primál feladat a duális feladat duálja, ezért a másik irányú állítás nem igényel bizonyítást. Az(1) állítás igazolásához azt kell belátnunk, hogy amennyiben a primál-duál feladatpár mindegyikének létezik lehetséges megoldása, akkor létezik olyan lehetséges ( x,ŷ) megoldáspár, amelyre fennáll a c x ŷb 0egyenlőtlenség, amely a gyenge dualitási tétel értelmében csak egyenlőséggel teljesülhet. Azt látjuk tehát be, hogy haaz Ax=b,x 0,yA c feladat megoldható, akkor megoldható az Ax=b,x 0,yA c,cx yb 0 feladat is. Abizonyításindirektmódontörténik. Feltesszük,hogyazAx=b,x 0,yA c,cx yb 0 feladat nem oldható meg, és a Farkas tétel felhasználásával ellentmondásra jutunk abban az esetben, amikor az Ax = b,x 0,yA c feladat megoldható. Ez utóbbi feladatnak rögzítjük is egy megoldását, jelölje ezt ( x, ŷ): fennálltehátaz,hogya x=b, x 0,ŷA c.
25 Az Ax = b,x 0,yA c,cx yb 0 feladatot írjuk fel olyan egységes formában, amelyre a Farkas tétel alkalmazható. Ehhez először írjuk fel olyan ekvivalens formában, amelyben a változók nemnegativitását előírjuk. Figyelembe véve, hogy minden vektor előáll két nemnegatív vektor különbségeként úgy, hogy a másodikazonoskomponensekettartalmaz,alkalmazzukazy=y y helyettesítést, aholy =(y 1,...,y m )ésy =(y,...,y )m-komponensűvektorok,ésaváltozókvektorával szorozzunk jobbról. Ekkor a feladat a következő lesz: Ax=b,x 0,A T (y y ) c,cx b(y y ) 0,y 0,y 0. Itt A T az A mátrix transzponáltját jelöli. Bevezetünk egy n komponensű u vektort és egy u változót abból a célból, hogy egyenletrendszert kapjunk. Azt a vektort, amelynek minden komponense 1, e-vel jelöljük és így y felírható ey formában. Ax = b,x 0,A T y A T ey u=c,cx by bey u =0, y 0,y 0,u 0,u 0, x R n,y R m,y 0 R,u R n,u 0 R. Végülírjukfelaztamátrixot,amelyetjobbrólaváltozók(x,y,y,u,u )nemnegatív vektorával szorzunk A 0 0 0 0 A = 0 A T A T e E 0 c b be 0 1 E jelölésekkel az Ax = b,x 0,yA c,cx yb 0 feladat az alábbi ekvivalens formában írható fel: x y b A y = c, u 0 u x y y u u 0.
26 2.FEJEZET: DUALITÁS,OPTIMALITÁS Indirekt feltevésünk szerint tehát ennek a feladatnak nincs megoldása. A Farkas tételértelmébenekkor(éscsakekkor)vanolyanz=(z 1,z 2,τ)vektor,z 1 R m,z 2 R n,τ R,amelymegoldjaa b za 0,z c <0 0 egyenlőtlenség rendszert, amely részletesebben így írható fel: z 1 A+τc 0 Az 2 τb 0 Az 2 e+τeb 0 z 1 b+z 2 c < 0 z 2 0, τ 0. Kis átalakítással ebből az alábbi feladathoz jutunk: z 1 A τc Az 2 = τb z 1 b+z 2 c < 0 z 2 0, τ 0. Indirekt feltevésünkből következően tehát ennek a feladatnak lenne megoldása. Szorozzuk meg z 2 -vel az első feltételcsoportot alkotó egyenlőtlenségrendszer mindkétoldalát. Mivelz 2 0,ezértazegyenlőtlenségirányamegváltozik. Szorozzukmegz 1 -gyelamásodikfeltételcsoportotalkotóegyenletrendszermindkétoldalát. Azt kapjuk, hogy z 1 Az 2 τcz 2 z 1 Az 2 = τbz 1.
Ekétfeltételbőlkövetkezik,hogya(z 1,z 2,τ)megoldásrafennállnaaτ(z 1 b+z 2 c) 0 27 egyenlőtlenség. Belátjuk, hogy ez lehetetlen. Haugyanisτ <0,akkorτ(z 1 b+z 2 c)>0azutolsófeltételmiatt. Haτ =0,akkorakövetkezőképpenjárunkel. SzorozzukmegazA x=begyenletrendszert z 1 -gyel, illetve a z 1 A τc egyenlőtlenségrendszert a nemnegatív x vektorral. Ezután szorozzuk meg az ŷa c egyenlőtlenségrendszert a nempozitív z 2 vektorral,illetveazaz 2 =τbegyenletrendszertŷ vel. Mivelτ =0,aztkapjuk, hogy z 1 A x = z 1 b τc x=0 z 1 b 0és 0 = ŷτb=ŷaz 2 cz 2 z 2 c 0, azaz z 1 b+z 2 c 0, ismét ellentmondásban az utolsó egyenlőtlenséggel. Ezzel b beláttuk, hogy nem megoldható a za 0,z c < 0 feladat, vagyis megoldható,afarkastételértelmében,azax=b,x 0,yA c,cx yb 0feladat,ami 0 éppen a tétel állítása. A dualitási tétel következménye, de önmagában is gyakran hivatkozott fontos tétel az alábbi Egyensúlyi(komplementaritási) tétel: Legyen x lehetséges megoldása a primál feladatnak, ŷ a duális feladatnak. Az x optimális megoldása a primál feladatnak és ŷ optimális megoldása a duális feladatnak akkor és csak akkor, ha ŷa j >c j magautánvonja,hogy x j =0. Bizonyítás. Tegyük fel először, hogy x j = 0 teljesül minden olyan j indexre, amelyreŷa j >c j.akkor x j >0magautánvonja,hogyŷA j =c j.ezért c x= n c j x j = c j x j = j=1 j: x j >0 n ŷa j x n j =ŷ A j x j =ŷa x=ŷb, j=1 j=1 azaz x és ŷ optimális megoldások a dualitási tétel értelmében.
28 2.FEJEZET: DUALITÁS,OPTIMALITÁS Tegyük fel másodszor, hogy x és ŷ optimális megoldások. Ekkor 0=c x ŷb= n n c j x j ŷ A j x j = j=1 j=1 n (c j ŷa j ) x j. j=1 Mivel xésŷlehetségesmegoldások,ezértc j ŷa j 0és x j 0,szorzatuktehát nempozitív. n j=1 (c j ŷa j ) x j tehátnempozitívtagokösszege,ezazösszeg0csak akkor lehet, ha minden tagja 0. Így x j = 0 kell, hogy teljesüljön minden olyan j indexre,amelyreŷa j >c j. Ezzel a tételt bizonyítottuk. Végül, akövetkezőállításfelhatalmazástad arra, hogya cx max, Ax= b, x 0 feladat optimális megoldását a bázismegoldások között keressük. 16. Állítás: Ha az LP feladatnak van optimális megoldása, akkor van optimális bázismegoldása is. Bizonyítás. Legyen x optimális és a pozitív komponensekhez tartozó oszlopvektoroklegyenekaza 1,A 2,...,A k.haŷaduálisfeladatoptimálismegoldása,akkor akomplementaritásitételértelmébenŷa j =c j,j=1,...,k.haa 1,...,A k lineárisan függetlenek,akkor xoptimálisbázismegoldás. HaA 1,...,A k lineárisanösszefüggnek, akkorlétezikolyanx lehetségesmegoldás,amelynekpozitívkomponenseiheztartozó oszlopvektorok A 1,...,A k egy független részhalmazát alkotják. De x is optimális, mertx ésŷegyüttszinténteljesítikakomplementaritásitételfeltételeit.
3. fejezet A lineáris programozási feladat megoldása 3.1. A szimplex módszer A dualitási tétel segítségével beláttuk, hogy ha az LP feladatnak van optimális megoldása, akkor van optimális bázismegoldása is. Ez a feladat numerikus megoldása, megoldhatósága szempontjából nagy jelentőséggel bír, mert lehetőséget nyújt arra, hogy csak bázismegoldásokat vizsgáljunk. Ez azt jelenti, hogy ha a megoldás menetében bázismegoldások sorozatát építjük fel és gondoskodunk arról, hogy egy már vizsgált bázismegoldás az eljárás során ne ismétlődhessen, akkor az eljárás véges számú lépésben befejeződik. Az alább leírt szimplex algoritmus azonban csak arról gondoskodik, hogy olyan bázismegoldások sorozatát hozza létre, amelyek elemeihez tartozó célfüggvényérték monoton növekvő, de nem szükségképpen szigorúan növekvő, így nem zárja ki a végtelen ciklus lehetőségét: azt, hogy egy degenerált bázismegoldás az eljárás során ismétlődjék. Megjegyezzük, hogy az eljárásba beépíthetők olyan óvintézkedések, amelyek kizárják ezt a lehetőséget, ilyen eljárás pl. a lexikografikus szimplex módszer. Két oka van annak, hogy ezt itt nem tárgyaljuk. Az egyik az, hogy ezek az aprólékos óvintézkedések talán elvonnák az olvasó érdeklődését és megnehezítenék, hogy a módszer gondolatmenetének, logikájának kellő figyelmet szenteljen. A másik az a szimplex módszerrel szerzett 29
30 3.FEJEZET: ALINEÁRISPROGRAMOZÁSIFELADATMEGOLDÁSA több évtizedes tapasztalat, hogy az eljárás ezen okból nem kerül végtelen ciklusba. A szimplex módszer irodalmában ismeretesek olyan konstruált példák, amelyekben az eljárás végtelen ciklusba torkollik, de gyakorlati feladatok megoldása során erre nem került sor, legalábbis ezen okból nem. Acx max,ax=b,x 0kanonikusalakúlineárisprogramozásifeladatmegoldására szolgál a szimplex módszer. Az LP feladat megoldására szolgáló módszerek közül e módszer és változatai a legnépszerűbbek, a matematikai programozási szoftvercsomagok is rendszerint a szimplex módszert foglalják magukban LP feladatok megoldására. A feladatot a z max, Ax=b, z cx=0,x 0 formában írjukfel. A z cx=0feltételt célfüggvénysornak szoktáknevezni, a z változó aktuális értéke láthatóan az aktuális x = (x 1,...,x n ) megoldáshoz tartozó célfüggvényérték. Feltesszük, az általánosság megszorítása nélkül, hogy a feladat lehetséges bázisa annyi oszlopvektorból áll, amennyi a sorok száma. A szimplex tábla az első és minden közbeeső iterációban ilyen szerkezetű:......... x j......... b x k1 t 11...... t 1j......... t 10................................................ x km t m1...... t mj......... t m0 z t 01...... t 0j......... t 00 Ittx k1,x k2,...,x km azokataváltozókatjelölik,amelyekheztartozóoszlopvektorok a z változóhoz tartozó m + 1. oszlopvektorral együtt alkotják az aktuális bázist.
3.1. ASZIMPLEXMÓDSZER 31 A táblázat j. oszlopának elemei az Aj c j (j=1,...,n),a0. (azazutolsó)oszlopelemeia Aj c j b 0 = = m i=1 (α) (β) m i=1 (γ) (δ) t ij Ak i vektor koordinátái ebben a bázisban c ki b 0 vektor koordinátái: +t 0j m t ij A k i =A j i=1 0 1 m t ij c ki t 0j =c j i=1 t i0 Ak i c ki +t 00 0 1 m t i0 c ki =t 00 i=1 m t i0 A k i =b. i=1 A szimplex tábla lehetséges, ha b a bázisvektorok nemnegatív kombinációjaként áll elő, vagyis ha t i0 0 (i = 1,...,m). A módszer alkalmazása során gondoskodunk arról, hogy a tábla mindig lehetséges legyen. Ekkor a szimplex táblából kiolvashatjuk, a(δ) összefüggés szerint, a szóbanforgó LP feladatunk egy lehetséges bázismegoldását: x ki = t i0, i = 1,...,m;x j = 0 másként, a (γ) összefüggés szerint pedig t 00 az ehhez a bázismegoldáshoz tartozó célfüggvényérték. Arra, hogyan lehet kiinduló lehetséges szimplex táblát előállítani, még visszatérünk. Lehetséges szimplex tábla birtokában az eljárás következő iterációja az alábbi lépésekből áll: 1. lépés: Kiválasztjuk a bázisba bekerülő oszlopvektort. Keresünk a t 0k (k 0) elemek között negatív elemet. Ha nincs, megállapítjuk, hogy a tábla optimális, a táblából leolvasható az optimális megoldás, az eljárás végetér. Ha van, kiválasztjuk azegyiket: t 0jb <0,eldöntjük,hogyazA j b oszlopvektortvonjukbeabázisba. 2. lépés: Kiválasztjuk a bázisból kikerülő oszlopvektort. Keresünk a t ijb (i =
32 3.FEJEZET: ALINEÁRISPROGRAMOZÁSIFELADATMEGOLDÁSA 1,..., m) elemek között pozitív elemet. Ha nincs, megállapítjuk, hogy a célfüggvény nemkorlátos, nincs optimális megoldás, az eljárás végetér. Ha van, kiválasztjuk az i b sorindexetúgy,hogy t ib 0 t i0 = min t ib j b i 0,t ijb >0t ijb egyenlőség teljesüljön,(ha több sorindexre teljesül, akkor közülük választunk egyet,) éseldöntjük,hogyazx jb változóhoztartozóoszlopvektorazx ib változóhoztartozó oszlopvektor helyére bekerül a bázisba. 3. lépés: Végrehajtjuk a báziscserét. A tábla új elemeit a megszokott módon kapjuk: hogy túj ij = t régi túj i b j = trégi i b j t régi x ib helyérebeírjukx jb tésx jb helyérebeírjukx ib t; ij trégi i b j trégi ij b t régi i b j b,i=0,1,...,m,i i b ;j=0,1,...,n m,j j b ; i b j b,j=0,1,...,n m,j j b ; túj ij b = trégi ij b,i=0,1,...,m,i i t régi b ; i b j b i b j b = 1 túj. t régi i b j b Vegyük észre, hogy a báziscsere generálóelemének kiválasztási módja garantálja, (1)túj i0 0,hat régi i0 0volt,i=1,...,m,azazabáziscsereutánújralehetséges megoldást kapunk; (2)túj 00 trégi 00,azazacélfüggvényértékmonotonnő. 3.2. A szimplex módszer megalapozása 17. Állítás: Ha t ij 0(i = 1,...,m) valamely kiválasztott j indexre, akkor a lehetséges megoldások halmaza nem korlátos: az x = x+λr lehetséges megoldás leszmindennemnegatívλértékre,ha xlehetségesmegoldásésazrvektorta következőképpen hozzuk létre: r j =1,r ki = t ij (i=1,...,m),r k =0másként.
3.2. ASZIMPLEXMÓDSZERMEGALAPOZÁSA 33 Bizonyítás: Az (α) összefüggés szerint 0 = A j m t ij A k i, így az állításban szereplőrvektorrafennáll,hogyar=0,ésaj.oszlopválasztásamiattr 0.Ebből az állítás következik. i=1 18. Állítás: Ha a j indexre fennáll, hogy t 0j < 0 és t ij 0minden i = 1,...,m, akkor a feladatnak nincs optimális megoldása. Bizonyítás: Az előző állítás szerinti r vektorra, a táblázatból kiolvasható x bázismegoldásraésazx= x+λr, λ 0vektorraekkorfennálla(β)összefüggés szerint, hogy cx=c x+λcr= m c ki t i0 +λ(c j i=1 m c ki t ij )=t 00 λt 0j, i=1 amely,mivelt 0j <0,λértékétőlfüggőentetszőlegesennagyszámlehet. 19. Állítás: Aszimplextáblábólkiolvashatóbázismegoldásoptimális, hat 0j 0 mindenj=1,...,n mindexre. Bizonyítás: Minthogy A k 1 (,...,A km lineárisan független m-komponensû vektorok, ezért az A k 1... A )mátrixrangjam. km Soraitehátazm-dimenziós tér bázisát alkotják, amelyek lineáris kombinációjaként minden m-komponensû vektorelőállítható,a(c k1,...,c km )vektoris. Léteznektehátolyany 1,...,y m együtthatók, amelyekkel e mátrik sorait sorra megszorozva és a kapott vektorokat összeadva a (c k1,...,c km )vektortkapjuk. Ezaztjelenti,hogyazm-dimenziósy=(y 1,...,y m )vektorra fennáll, hogy ya k i = c ki minden i = 1,...,m indexre. Ezt felhasználva az (α) összefüggésből az alábbi kifejezéshez jutunk: m m m ya j =y t ij A k i = t ij (ya k i )= t ij c ki, i=1 i=1 i=1 ésa(β)összefüggésszerint m t ij c ki =c j +t 0j c j,mertt 0j 0. Azytehátolyan i=1 vektor, amelyre egyrészt ya c, vagyis y a duális feladat lehetséges megoldása, másrésztya j =c j hax j >0,vagyisazegyensúlyitételértelmébenazxaprímál,y pedig a duális feladat optimális megoldása.
34 3.FEJEZET: ALINEÁRISPROGRAMOZÁSIFELADATMEGOLDÁSA 3.3. Kiinduló lehetséges bázis előállítása Haamegoldandófeladatunkvéletlenülstandardalakú: cx max,ax b,x 0, ésb 0,akkorefeladatkanonikusalakja: [A,E] x =b, x 0,(c,0) x u u u max, automatikusantartalmazegykiindulólehetségesbázist,mégpedigazu 1,...,u m változókhoz tartozó egységvektorokat. Lehetséges megoldás az x j = 0,j = 1,...n;u i = b i,i = 1,...m; a feladat együtthatói pedig a mátrix oszlopvektorainak illetve a b vektornak a koordinátáit jelentik ebben a bázisban. Ha a megoldandó feladat általános alakú, akkor a kiinduló lehetséges bázis előállítása külön megfontolást és eljárást igényel. Itt a kétfázisú szimplex módszert vázoljuk. Az első fázis célja kiinduló lehetséges megoldást létrehozni. Ezt mutatjuk be most. Tekintsük a cx max,ax = b,x 0,(b 0) feladathoz kapcsolódó alábbi feladatot: n a ij x j +w i = b i, w i 0, i=1,...,m j=1 z n c j x j = 0, x 0, j=1 m w i max, i=1 EzLPfeladat,amelynekvanlehetségesbázismegoldása: w i =b i (i=1,...,m),és vanoptimálismegoldásais,merta m w i célfüggvénynempozitív,ezérta0felső korlátja. Figyelembe véve, hogy az első fázis célfüggvénysora a következő: i=1 w + m m n m w i = w a ij x j + b i =0 i=1 i=1 j=1 w w m i=1 i=1 n a ij x j = j=1 m b i, i=1 ( n m a ij )x j = j=1 i=1 i=1 m b i,
3.3. KIINDULÓLEHETSÉGESBÁZISELŐÁLLÍTÁSA 35 a feladat rövidebben így írható fel: 0 0 A E 0 1 c 1... c n 0 1 0 m i=1 a i1... m i=1 a in 0 w max, b z = x 0, x 0. w m i=1 b i w w A w vektor elemei mesterséges változók, amelyeknek az a szerepük, hogy oszlopvektoraik a z változóval együtt kiinduló bázist adjanak. A feladat kiinduló szimplex táblája a következő: x 1...... x j...... x n b w 1 a 11...... a 1j...... a 1n b 1...................................................... w m a m1...... a mj...... a mn b m w 0 m a i1...... m a ij...... m a in m i=1 i=1 i=1 z c 1...... c j...... c n 0 b i i=1 Azelsőfázisbanaw 0 soraacélfüggvénysor,az változóhoztartozóz cx=0 sor a többihez hasonló feltételnek minősül azzal az eltéréssel, hogy a z változó sosem kerül ki a bázisból. Az első fázisban a m w i célfüggvény maximalizálása révén arra törekszünk, hogy sorozatos báziscserékkel kiiktassuk a mesterséges változókat a bázisból. Ha ez sikerül, akkor, értékük a bázison kívül 0 lévén, kiiktathatjuk őket a feladatból is és ily módon olyan szimplex táblához jutunk, amely már csak az eredeti feladat vektorait tartalmazza bázisvektorok és bázison kívüli vektorokként egyaránt. Csak akkor nem sikerül kiiktatni őket a feladatból, ha a célfüggvény optimális értéke negatív- ez pedig azt jelenti, hogy eredeti feladatunknak egyáltalán nincs lehetséges i=1
36 3.FEJEZET: ALINEÁRISPROGRAMOZÁSIFELADATMEGOLDÁSA megoldása. Az első fázis befejezésekor tehát erre a két konkluzióra juthatunk. A második esetben az eljárás végetér, az első esetben folytatódik a második fázissal, a második fázisban egy olyan szimplex táblával, amelyben a mesterséges célfüggvény sora már nem jelenik meg és a feladat m+1. sora visszanyeri a célfüggvénysor rangját és szerepét. 3.4. A duális megoldás a szimplex táblában A kiinduló és egymást követő szimplex táblákban nem tüntettük fel a bázisvektorokhoz tartozó oszlopokat, mert tudjuk, hogy koordinátáik az aktuális bázisban szükségképpen egységvektorokat alkotnak. Ha azonban feltüntetjük, azaz a tábla a kiinduló bázist alkotó oszlopvektorok(együttesen egységmátrixot alkotó vektorok) koordinátáit is tartalmazza az aktuális bázisra nézve, akkor az eredeti kiinduló egységmátrix helyén az egymást követő iterációkban az aktuális ( B= A k 1... A km ) bázis inverze jelenik meg, az A mátrix helyén pedig B 1 A. Ez az észrevétel magyarázatot igényel, amely itt következik. Különítsükelakiindulóbázistalkotóe 1,e 2,...,e m egységvektorokhelyénkeletkező oszlopokat és ezek mátrixát a szimplex módszer alkalmazásának egy közbeeső szakaszában. Az e k -nak megfelelő oszlop elemeit és egyben az e k koordinátáit az aktuális bázisban jelölje e 1ek e 2ek... e mek. Azeljárásegyközbeesőszakaszábantehátaze 1,e 2,...,e m oszlopok,azazaze=
3.4. ADUÁLISMEGOLDÁSASZIMPLEXTÁBLÁBAN 37 (e 1,e 2,...,e m )egységmátrixhelyénakövetkezőmátrixjelenikmeg: t 1e1 t 1e2... t 1em............ t me1 t me2... t mem Az(α)összefüggés,amelyszerint m i=1 t ie l A k i =e l,aztmutatja,hogy t 1e1 t 1e2... t 1em a 1k1...... a 1km t 1e1 t 1e2... t 1em................ E= =................ B. t me1 t me2... t mem a mk1...... a mkm t me1 t me2... t mem Ebből következik, hogy t 1e1 t 1e2... t 1em............ t me1 t me2... t mem =B 1. Szinténaz(α)összefüggésből,amelyszerint m t ij A k i =A j,következik,hogy ( A k 1,...,A ) k m t 1j... t mj Ajelölésbőlvilágos,hogyB 1 A j = i=1 =B t 1j... t mj t 1j... t mj =A j,,b 1 b= t 10... t m0.
38 3.FEJEZET: ALINEÁRISPROGRAMOZÁSIFELADATMEGOLDÁSA A tábla átalakulását és szerkezetét mutatja az alábbi ábra: e 1 A E b e m z c 0 0 x k1 T =B 1 A B 1 B 1 b x km z c B B 1 A c c B B 1 c B B 1 b aholc B =(c k1,...,c km ). A tábla tartalma a fönti (α) (δ) összefüggésekből adódik. Az y = c B B 1 vektorramindigfennáll,hogyyb=c B B 1 b=t 00. Megmutatjuk,hogyazoptimális szimplex táblában y a duális feladat lehetséges és egyben optimális megoldása. Valóban, ( y A k 1... A k m ) = c B B 1 ( ya j = c B B 1 B A k 1... A k m t 1j... t mj ) =c B B 1 B=c B, =c j +t 0j,j=1,...,n.
3.5. SZÁMPÉLDAASZIMPLEXMÓDSZERALKALMAZÁSÁRA 39 Ez utóbbi két egyenlet mutatja, hogy y a duális lehetséges megoldása, ha a tábla optimális, azaz, ha t 0j 0(j = 1,...,n), és mivel a hozzátartozó célfüggvényérték megegyezik a táblából kiolvasható primál megoldás célfüggvényértékével, ezért y optimális is. A tábla tartalmának ismerete lehetővé teszi azt, hogy megvizsgáljuk, mennyire érzékeny az optimális megoldás a célfüggvényegyütthatók változására, meddig marad még lehetséges (és ezért optimális) a tábla, ha a jobboldalon lévő értékeket változtatjuk, hogyan alakul az optimális megoldás, ha a feladat egyes paramétereit megváltoztatjuk. A szimplex módszer alkalmazására és ezt követő érzékenységi vizsgálatokra mutatunk be egy példát a következő fejezetben. 3.5. Számpélda a szimplex módszer alkalmazására Tekintsük a következő lineáris programozási feladatot: 2x 1 +8x 2 +5x 3 +14x 4 max 2x 1 +x 2 +x 3 +x 4 10 x 1 +2x 2 +x 3 +x 4 =8 x 1 +x 2 +x 3 +2x 4 =6 x 1 x 2 +x 3 +3x 4 8 x 1, x 2, x 3, x 4 0 1. Oldjuk meg a feladatot szimplex módszerrel. 2. Írjuk fel a feladat duálisát. 3. Az optimális szimplex táblából határozzuk meg a duális feladat optimális megoldását. 4. Határozzuk meg, hogy ε milyen értékei mellett marad az utolsó szimplex tábla optimális, ha a feladatunk célfüggvény együtthatóit így változtatjuk: ( 2 + ε,8,5,14).
40 3.FEJEZET: ALINEÁRISPROGRAMOZÁSIFELADATMEGOLDÁSA 5. Számítsuk ki, az utolsó szimplex tábla felhasználásával, az optimális megoldását annak a feladatnak, amelynek a feltételei ugyanazok, mint a felírt feladatban, célfüggvény együtthatóit azonban így változtatjuk: (4, 0, 2, 2). 6. Határozzuk meg, hogy β milyen értékei mellett marad az utolsó szimplex tábla lehetséges,haafeladatjobboldalátígyváltoztatjuk: b=(10,8+β,6,8). 7. Számítsuk ki az eredeti feladatból kiindulva és az utolsó szimplex tábla felhasználásávalazoptimálismegoldásátannakafeladatnak,amelybenx 4 együtthatói az egyes feltételekben sorra: ( 1, 1, 2, 3) és célfüggvény együtthatója 10. Megoldás. A feladat vizsgálatát azzal kezdjük, hogy minden olyan feltételt, amelynek jobboldalán negatív érték szerepel, megszorzunk 1 gyel- itt ilyen feltétel nem szerepel. Ezután a feladatot felírjuk kanonikus alakban. Az első feltétel baloldalából kivonunk egy nemnegatív kiegészitő változót, a negyedik feltétel baloldalához pedig hozzáadunk egy másik nemnegatív változót, hogy egyenlőségeket kapjunk. A továbbiakban ezzel a feladattal foglalkozunk: (P) 2x 1 +8x 2 +5x 3 +14x 4 2x 1 +x 2 +x 3 +x 4 u 1 x 1 +2x 2 +x 3 +x 4 x 1 +x 2 +x 3 +2x 4 x 1 x 2 +x 3 +3x 4 +u 4 x 1, x 2, x 3, x 4, u 1, u 4 max =10 =8 =6 =8 0 1) Alakítsuk át úgy a feladatot, hogy szimplex módszerrel történő megoldásra alkalmas legyen. Bevezetjük a célfüggvényértéket képviselő maximalizálandó z változót. Így a következő feladathoz jutunk:
3.5. SZÁMPÉLDAASZIMPLEXMÓDSZERALKALMAZÁSÁRA 41 z max +2x 1 8x 2 5x 3 14x 4 +z 2x 1 +x 2 +x 3 +x 4 u 1 x 1 +2x 2 +x 3 +x 4 x 1 +x 2 +x 3 +2x 4 x 1 x 2 +x 3 +3x 4 +u 4 x 1, x 2, x 3, x 4, u 1, u 4 =0 =10 =8 =6 =8 0 A feladat oszlopvektorai között csak egy egységvektor van, a z oszlopához tartozó egységvektortól eltekintve, így a feladat nem tartalmaz kiinduló bázist, ezért két fázisban oldjuk meg. Az első fázisban lehetséges bázismegoldást keresünk. Három mesterséges változót kell bevezetnünk, a célfüggvénysort követő három feltételben: w 1,w 2,w 3, amelyek oszlopvektoraiu 4 oszlopávalegyüttbázistalkotnak. Azelsőfázismaximalizálandó célfüggvénye: w 0 = (w 1 +w 2 +w 3 ). Az első fázis célfüggvénysorában, mint az előző fejezetben ezt megmutattuk, az x j együtthatójának negatívját úgy kapjuk, hogyösszeadjukx j együtthatóitamesterségesváltozókattartalmazósorokbanésa jobb oldal szintén a negatívja a megfelelő jobboldalon szereplő értékek összegének. Az első fázisban megoldandó feladat tehát a következő alakú: w 0 max 2x 1 +x 2 +x 3 +x 4 u 1 +w 1 =10 x 1 +2x 2 +x 3 +x 4 +w 2 =8 x 1 +x 2 +x 3 +2x 4 w 3 =6 x 1 x 2 +x 3 +3x 4 +u 4 =8 2x 1 8x 2 5x 3 14x 4 +z =0 4x 1 4x 2 3x 3 4x 4 +w 0 = 24 x 1, x 2, x 3, x 4, u 1, u 4, w 1, w 2, w 3 0
42 3.FEJEZET: ALINEÁRISPROGRAMOZÁSIFELADATMEGOLDÁSA A kiinduló szimplex tábla az első fázisban: x 1 x 2 x 3 x 4 u 1 b w 1 2 1 1 1-1 10 w 2 1 2 1 1 0 8 w 3 1 1 1 2 0 6 u 4 1-1 1 3 0 8 z 2-8 -5-14 0 0 w 0-4 -4-3 -4 1-24 Nem tüntetjük fel a bázist alkotó oszlopokat azért, mert tudjuk, hogy egységmátrixot alkotó oszlopok. Az egyes iterációk, amelyekben a szimplex módszernél leírt szabályok szerint járunk el, három lépésből állnak. Az elsőben kiválasztjuk a bázisba bekerülő, a másodikban a bázisból kikerülő oszlopvektort. A harmadikban végrehajtjuk a báziscserét. 1. Iteráció: 1. lépés: Aw 0 sorábankeresünknegatívelemet. Azösszeseredetiváltozóhoz tartozó elem ebben a sorban negatív, bármelyiket választhatnánk. Itt most kiválasztjuk azx 3 hoztartozóoszlopot,eztszeretnénkbevonniabázisba. 2. lépés: Az oszlopban az eredeti első négy sorban lévő elem pozitív, ezért mindegyikükre képezzük a jobboldal és az oszlopban lévő elem hányadosát, majd kiválasztjuk közülük a legkisebbet: 6 1 = min(10 1, 8 1, 6 1, 8 1 ). Kiválasztjuk a w 3 hoz tartozósort. Abázisbanw 3 helyérex 3 kerül. 3. lépés: Végrehajtjuk a báziscserét. Az új szimplex tábla:
3.5. SZÁMPÉLDAASZIMPLEXMÓDSZERALKALMAZÁSÁRA 43 x 1 x 2 w 3 x 4 u 1 b w 1 1 0-1 -1-1 4 w 2 0 1-1 -1 0 2 x 3 1 1 1 2 0 6 u 4 0-2 -1 1 0 2 z 7-3 5-4 0 30 w 0-1 -1 3 2 1-6 Megjegyezzük, hogy w 3 oszlopát nem kellene feltüntetnünk, ha csak a feladat optimális megoldását kellene kiszámítanunk. Szükségünk lesz azonban a duális feladat optimális megoldására és egyéb vizsgálatokra is, amelyeket csak a kiinduló bázishoz tartozó oszlopvektorok, amelyben ez esetben a mesterséges változókhoz tartozó oszlopvektorok is benne foglaltatnak, helyén megjelenő együtthatók segítségével tudunk meghatározni majd az optimális szimplex táblából. Ezért a mesterséges változók oszlopainak elemeit is számoljuk minden báziscsere transzformáció során, de a bázisba akkor se vonjuk be, ha a hozzá tartozó célfüggvénysorbeli elem negatív. 2. Iteráció. 1. lépés: Aw 0 sorábankeresünknegatívelemet. Kiválasztjukazx 1 hez tartozó oszlopot. 2. lépés: Az oszlopban azeredeti első négy sor közül azelső és harmadik sorban lévő elem pozitív, ezekre képezzük a jobb oldal és az oszlopban lévő elem hányadosát, majd kiválasztjuk közülük a legkisebbet: 4 1 =min(4 1, 6 1 ).Kiválasztjuk aw 1 hoztartozósort. Abázisbanw 1 helyérex 1 kerül.
44 3.FEJEZET: ALINEÁRISPROGRAMOZÁSIFELADATMEGOLDÁSA 3. lépés: Végrehajtjuk a báziscserét. Az új szimplex tábla: w 1 x 2 w 3 x 4 u 1 b x 1 1 0-1 -1-1 4 w 2 0 1-1 -1 0 2 x 3-1 1 2 3 1 2 u 4 0-2 -1 1 0 2 z -7-3 12 3 7 2 w 0 1-1 2 1 0-2 3. Iteráció. 1. lépés: Aw 0 sorábankeresünknegatívelemet. Kiválasztjukazx 2 hoz tartozó oszlopot. 2. lépés: Az oszlopban két pozitív elem van, a hányados teszt alapján bármelyiketválaszthatnánk. Ittmostkiválasztjukaw 2 hoztartozósort. Abázisban w 2 helyérex 2 kerül. 3. lépés: Végrehajtjuk a báziscserét. Az új szimplex tábla: w 1 w 2 w 3 x 4 u 1 b x 1 1 0-1 -1-1 4 x 2 0 1-1 -1 0 2 x 3-1 -1 3 4 1 0 u 4 0 2-3 -1 0 6 z -7 3 9 0 7 8 w 0 1 1 1 0 0 0 Valamennyi mesterséges változó kikerült a bázisból. Ezért az 1. fázisnak vége, töröljükazutolsó,aw 0 változónakmegfelelősort. Kezdődika2. fázis.
3.5. SZÁMPÉLDAASZIMPLEXMÓDSZERALKALMAZÁSÁRA 45 4. Iteráció. 1. lépés: A z sorában keresünk negatív elemet. Természetes változóhoz tartozó negatív elem nincs, ezért megállapítjuk, hogy a tábla optimális, az eljárás véget ért. Azoptimálisbázistazx 1,x 2,x 3,u 4 változókhoztartozóoszlopvektorokalkotják,az optimális bázismegoldás: x 1 =4,x 2 =2,x 3 =0,x 4 =0,u 1 =0,u 4 =6. Az optimális célfüggvényérték: z = 8. Vegyük észre, hogy az optimális bázismegoldás degenerált, hiszen a bázishoz tartozóváltozókközülx 3 értéke0.vegyükészre,hogyacélfüggvénysorábanlévő 0 érték arra utal, hogyvan alternatív bázismegoldás. Valóban, x 4 t bevonhatjuk a bázisba, mégpedig x 3 helyére, hiszen az oszlopban egyedül itt van pozitív elem. Ekkor a célfüggvény értéke nem változik, ez következik abból, ahogy a báziscsere transzformációt végrehajtjuk. Példánkban azonban csak alternatív optimális bázis van, ezt az x 1,x 2,x 4,u 4 változókhoz tartozó oszlopvektorok alkotják, de az ehhez tartozó megoldás változatlan marad a bázismegoldás degenerált volta miatt. 2)Írjukfela(P)feladatésegybenakiindulófeladatduálisát: 10y 1 +8y 2 +6y 3 +8y 4 min 2y 1 +y 2 +y 3 +y 4 2 y 1 +2y 2 +y 3 y 4 8 y 1 +y 2 +y 3 y 4 5 y 1 +y 2 +2y 3 +3y 5 14 y 1 0, y 4 0. 3) A duális feladat optimális megoldását az optimális szimplex táblában találjuk a kiinduló bázist alkotó változók alatt a célfüggvénysorban, mégpedig a kiinduló bázisváltozóinaksorrendjében. Aw 1,w 2,w 3,u 4 változókalattiértékekazoptimális táblacélfüggvénysorában: 7,3,9,0.Ittazu 4 változóbennemaradtabázisbanaz eljárás végéig. Oszlopa a 4. egységvektor, amelyet azonban nyilvánvalósága miatt nem tüntetünk fel, de tudjuk, hogy a célfüggvénysor hozzá tartozó eleme 0.
46 3.FEJEZET: ALINEÁRISPROGRAMOZÁSIFELADATMEGOLDÁSA Aduálisfeladatoptimálismegoldásatehát: y 1 = 7,y 2 =3,y 3 =9,y 4 =0. 4) Az utolsó szimplex tábla akkor marad optimális, ha a célfüggvénysorban a természetes változókhoz tartozó elemek nemnegatívok maradnak, ha újraszámoljuk értékeiket a megadott célfüggvény együtthatók ismeretében. A célfüggvénysornak azx j változóhoztartozóeleménekajelentése: c B B 1 A j c j.határozzukmegezeket azértékeketabbanazesetben,haacélfüggvényegyütthatói: c 1 =ε 2,c 2 =8,c 3 = 5,c 4 =14,c 5 =0,c 6 =0.Azutolsókétegyütthatóazu 1 illetveazu 4 változókhoz tartozik. Írjuk fel a kifejezésben szereplő vektorokat, mátrixokat. c B =(ε 2,8,5,0), B 1 = 1 0 1 0 0 1 1 0 1 1 3 0 0 2 3 1. Azx 4 ésu 1 változókhoztartozóújcélfüggvénysorbeliegyütthatókatkellkiszámítanunk: 1 0 1 0 1 0 1 1 0 1 túj 0,x 4 =(ε 2,8,5,0) 14 1 1 3 0 2 0 2 3 1 3 1 1 =(ε 2 5,3,2 ε 8+15,0) 14 2 3 = ε.
3.5. SZÁMPÉLDAASZIMPLEXMÓDSZERALKALMAZÁSÁRA 47 túj 0,u 1 =(ε 2,8,5,0) 1 0 1 0 0 1 1 0 1 1 3 0 0 2 3 1 1 0 0 0 0 = ε+7. Atáblatehátoptimálismarad,ha ε 0és ε+7 0,azazhaε 0. 5)Ismétazx 4 ésazu 1 változókhoztartozóújcélfüggvénysorbeliegyütthatókat kellkiszámítanunk,demostc B =(4,0,2,0). túj 0,x 4 = =(4,0,2,0) 1 0 1 0 0 1 1 0 1 1 3 0 0 2 3 1 1 1 2 3 14 =(2, 2,2,0) 1 1 2 3 14 = 10 túj 0,u 1 =(4,0,2,0) 1 0 1 0 0 1 1 0 1 1 3 0 0 2 3 1 1 0 0 0 0 =2. túj 0,x 4 negatív, ezért a tábla nem optimális. Az új célfüggvényegyütthatók melletti optimális megoldás kiszámításához kiindulunk a meglévő szimplex táblából. A továbbiakban a mesterséges változók oszlopait nem tüntetjük fel. A szimplex tábla tehát, amelyből kiindulunk, a következő:
48 3.FEJEZET: ALINEÁRISPROGRAMOZÁSIFELADATMEGOLDÁSA x 4 u 1 b x 1-1 -1 4 x 2-1 0 2 x 3 4 1 0 u 4-1 0 6 z -10 2 8 1. lépés: A célfüggvénysorban keresünk negatív elemet. Kiválasztjuk az x 4 heztartozóoszlopot. 2. lépés: Azoszlopbanegypozitívelemvan,kiválasztjukazx 3 hoztartozó sort. Abázisbanx 3 helyérex 4 kerül. 3. lépés: Végrehajtjuk a báziscserét. Az új szimplex tábla: x 3 u 1 b x 1 1 4 3 4 4 x 2 1 4 x 4 1 4 u 4 1 4 z 10 4 1 4 2 1 0 4 1 6 4 18 4 8 optimális, az optimális megoldás az adott célfüggvényegyütthatók mellett a következő: x 1 =4,x 2 =2,x 3 =x 4 =0,u 1 =0,u 4 =6. 6) A szimplex tábla addig marad lehetséges, ameddig a jobboldal koordinátái az aktuális bázisban- másként: a bázisváltozók értékei- nemnegatívok. A b koordinátái az aktuális bázisban B 1 b. Feladatunkban tehát β értékének eleget kell tennie a következő feltételnek:
3.5. SZÁMPÉLDAASZIMPLEXMÓDSZERALKALMAZÁSÁRA 49 1 0 1 0 0 1 1 0 1 1 3 0 0 2 3 1 10 8+β 6 8 = 4 2+β β 6+2β 0, amiből 2 β 0következik. 7)Azx 4 együtthatóiazegyesfeltételekbensorra: ( 1,1,2,3)éscélfüggvényegyütthatója 10. Újra kell számolnunk az x 4 -hez tartozó oszlopot a szimplex táblában. t 1,x4 t 2,x4 t 3,x4 t 4,x4 =B 1 1 1 2 3 = 1 0 1 0 0 1 1 0 1 1 3 0 0 2 3 1 1 1 2 3 = 3 1 6 1, A célfüggvénysorban lévő elem pedig: t 0,x4 =c B B 1 1 1 2 3 10=( 2,8,5,0) 3 1 6 1 10=18. A szimplex tábla tehát a következő lesz: x 4 u 1 b x 1-3 -1 4 x 2-1 0 2 x 3 6 1 0 u 4-1 0 6 z 18 2 8
50 3.FEJEZET: ALINEÁRISPROGRAMOZÁSIFELADATMEGOLDÁSA Minthogyacélfüggvénysorbeliegyütthatójax 4 -neknemnegatívmaradt,megállapíthatjuk, hogy az utolsó szimplex táblában kapott megoldás optimális arra a feladatra is, amelybenx 4 együtthatóiilymódonmegváltoznak.
4. fejezet Lineáris programozáshoz vezető feladatok A matematikai programozás más ágaiban: a hiperbolikus vagy törtprogramozás, a sztochasztikus programozás és a többcélú programozásban felmerülő olyan problémákat fogunk itt bemutatni, amelyek lineáris programozási feladattá átalakíthatók és ily módon megoldhatók pl. a szimplex módszerrel. A jegyzetben eddig nem szenteltünk figyelmet az LP gazdasági alkalmazásainak, ezt a hiányt itt részben pótoljuk azzal, hogy a matematikai modelleket döntési problémaként vezetjük be, egy döntési alapszituációra építve. Ez pedig a következő: 4.1. A döntési alapprobléma Egy termelési folyamatban n féle terméket állítanak elő m- féle erőforrás felhasználásával. Aj.termékegységénekelőállításáhozazi.erőforrásbólfelhasználnaka ij mennyiséget (valamilyen egységben természetesen). Ismeretes, hogy az egyes erőforrásokból mennyi áll rendelkezésre, jelölje az i. erőforrásból rendelkezésre álló mennyiséget b i. Jelölje x 1,...x n az egyes termékekből gyártandó mennyiségeket: ezek a döntési változóink, a számítandó értékek. Foglaljukösszeaza ij értékeketazamátrixban,ab i értékeketabvektorban,az x 1,...x n változókatazxvektorban. Feltesszük,(a)hogyx j mennyiséggyártásához 51
52 4.FEJEZET: LINEÁRISPROGRAMOZÁSHOZVEZETŐFELADATOK azi.forrásbóla ij x j mennyiségetfogunkfelhasználni;(b)hogyazegyesforrásokból afelhasználásokösszeadódnak: azi.forrásbólazösszesfelhasználásígy n i=1 a ijx j ; (c) az egyes termékekből gyártandó mennyiségek nem kell, hogy egészértékűek legyenek. Ezek a feltevések konkrét feladat esetében nem biztos, hogy megállják a helyüket. Ha például az egyik erőforrás a munkaóra, akkor természetes lehet, hogy tört(esetleg irracionális) számú munkaórára nem alkalmazhatunk embereket, vagy hogy másik termék gyártására nem csoportosítható át a munkaerő gond nélkül, azaz az egyes termékek gyártásához szükséges munkaórák nem adódnak össze. Az egyes termékekből rendszerint egész mennyiségeket gyártanak, tört vagy irracionális mennyiségeknek nincs kereskedelmi értéke. Ez gyakran mégsem okoz problémát, ha elég kicsi az egység, amiben mérjük a szóbanforgó terméket. Néha azonban nincs mód elhanyagolásra, pl. ha hajót gyártunk vagy vonatot, akkor elő kell írnunk a gyártandó mennyiség egészértékű voltát. Itt azonban csak azzal az esettel foglalkozunk, amikor az ilyen vagy más aggályok nem bírnak nagy jelentőséggel. Ekkor azt a feltételt, hogy az egyes erőforrásokból nem használhatunk többet, mint amennyi van, és hogy nem gyárthatunk negatív mennyiségeket, lineáris feltételek formájában, vagyis így írhatjuk fel: Ax b,x 0 4.2. Hiperbolikus vagy törtprogramozás Az első modellben a cél a termelés hatékonysága lesz. A hatékonyság mérésére szokásosazegységnyiköltségreesőárbevételt alkalmazni. Jelöljec 1,...c n azegyes termékek egy egységének előállítási költségét, p 1,...,p n az eladásukból származó árbevételt. Az összes költség és az összes árbevétel kiszámításánál ismét élünk a linearitási feltétellel. Foglaljuk össze az adott c j értékeket a c vektorban és a p j értékeket a p vektorban. Ekkor a termelés hatékonyságát- amelyet maximalizálni nj=1 p j x j szeretnénk- a nj=1 c j x j hányadosfejeziki.
4.3. VALÓSZÍNŰSÉGGELKORLÁTOZOTTLINEÁRISPROGRAMOZÁSIMODELL53 Első modellünk tehát a következő: (1) n j=1 p jx j n j=1 c jx j max A i x b i,i=1,..,m x j 0,j=1,...,n. E modell a hiperbolikus vagy törtprogramozás körébe tartozik. E feladatot a következőképpen alakítjuk át lineáris programozási feladattá. Vezessükbeatváltozótat= 1 n j=1 c jx j jelentéssel. t nekcsakakkorvanértelme,ha n j=1 c jx j 0.Ittennéltöbbetkívánunkmeg,azt,hogy n j=1 c jx j >0legyenmindeneleméreaz{x 0:Ax b}halmaznak. Legyeny j =tx j,j=1,...,n.szorozzuk be az A i x b i feltételeket a t > 0 változóval. A következő lineáris programozási feladathoz jutunk: (2) n p j y j max j=1 A i y b i t 0,i=1,...,m n c j y j = 1 j=1 y 0 A két feladat ekvivalens a következő értelemben. Ha x megoldja az (1) feladatot, akkor t = 1 n j=1 c jx j > 0 és y = xt megoldja a (2) feladatot. Fordítva, ha y = (y 1,...,y n )éstegyüttesenmegoldjáka(2)feladatot,ést>0,akkorx= y t megoldja az (1) feladatot. Ha az(1) feladatnak van megoldása, akkor a (2) feladatnak van olyan(y,t)megoldása,amelyret>0. 4.3. Valószínűséggel korlátozott lineáris programozási modell A második modellben visszatérünk az alapproblémára és egy lineáris célfüggvényt, mondjuk a n j=1 p jx j árbevételt maximalizáljuk. Az egyes erőforrásokból rendel-
54 4.FEJEZET: LINEÁRISPROGRAMOZÁSHOZVEZETŐFELADATOK kezésre álló b i mennyiségeket azonban valószinűségi változóknak tekintjük, amelyeknek tehát a lehetséges értékeit ismerjük és az eloszlásukat. Azt a feltételt, hogy a termelés az egyes erőforrásokból nem használhat fel többet, mint amennyi van, enyhítenünk kell, azt követeljük meg ehelyett, hogy ezt a feltételt előírt α i valószínűséggel teljesítse. Második modellünk a következő: (3) cx max P(A i x b i ) α i,i=1,...,m x 0 ahol P valószínűséget jelöl, 0 < α i < 1,b i valószínűségi változó, ismert F bi (z) eloszlásfüggvénnyel,i=1,...,m. Ez a modell a valószinűséggel korlátozott lineáris programozási modellek körébe tartozik. E feladatot a következőképpen alakítjuk át lineáris programozási feladattá. Vegyük észre, hogyp(a i x b i )=1 P(A i x>b i ).Azi-edikfeltételtehátígyírhatófel: P(A i x>b i ) 1 α i.figyelembevéve,hogyp(a i x>b i )=F bi (A i x),aholf bi (A i x) ab i valószínűségiváltozóeloszlásfüggvényénekazértékeaza i xhelyen,azi.feltételt így fogalmazhatjuk meg: F bi (A i x) 1 α i. Mivel az eloszlásfüggvény monoton növekvő, megadható az argumentumának az a legnagyobb r i értéke, amelynél ha A i x nem nagyobb, akkor az eloszlásfüggvény értéke nem nagyobb 1 α i nál. A következő lineáris programozási feladathoz jutunk: (4) cx max A i x r i,i=1,...,m x 0. aholr i =Argmax z {F bi (z) 1 α i },i=1,...,m.azígymeghatározottr i értékek azlpfeladatparaméterei. Hab i folytonoséseloszlásfüggvényeinvertálható-gondoljunkpl. anormáliseloszlásra-,akkorr i =F 1 b i (1 α i ). A (3) és (4) feladatok ekvivalensek. Ha x megoldja a (3) feladatot, akkor F bi (A i x) 1 α i ésezérta i x r i,vagyisxmegoldjaa(4)feladatot. Hafordítva,
4.4. TÖBBCÉLÚPROGRAMOZÁS 55 A i x r i, akkor F bi monotonitása miatt F bi (A i x) F bi (r i ) 1 α i, vagyis x megoldja a(3) feladatot. 4.4. Többcélú programozás A harmadik modellben ismét visszatérünk az alapproblémára. A döntéshozó számára azonban most több cél is fontos, minimalizálni szeretné például a cx költséget és maximalizni a px árbevételt. Értelmeznünk kell ebben az esetben, mit értünk optimális megoldáson. Azt mondjuk, egy x megoldás optimális, ha lehetséges: x {x:ax b,x 0} és nincs nála jobb lehetséges megoldás: nincs olyan x {x:ax b,x 0}, amelyre c x c x, és p x p x teljesülne, és legalább az egyik egyenlőtlenség szigorú lenne-vagyis ha x Paréto optimum vagy más néven efficiens pont. Harmadik modellünk lineáris feltételeket és több lineáris célfüggvényt foglal magában: c 1 x max c 2 x max... c r x max Ax b x 0 Ez a modell a többcélú programozás körébe tartozik. Kérdés, hogyan oldhatjuk meg a feladatot. Vegyük észre, hogy ha valamelyik célfüggvény szerinti optimalizálás egyetlen optimális megoldáshoz vezet, akkor ez a megoldás egyben efficiens pont is. Járjunk el a következőképpen. Optimalizáljunk az első- a legfontosabb- célfüggvény szerint. Ha egyetlen optimális megoldásunk van, akkor ezt az efficiens pontot elfogadjuk, mint a feladatunk megoldását. Ha az optimális megoldások halmaza nem egyetlen
56 4.FEJEZET: LINEÁRISPROGRAMOZÁSHOZVEZETŐFELADATOK pontból áll, akkor a második szakaszban az {x:ax b,c 1 x=z 1,x 0} halmazon optimalizáljuk a következő- a második legfontosabb- célfüggvényt, ahol z 1 jelöliazelsőcélfüggvényszerintioptimáliscélfüggvényértéket. Haegyoptimális megoldást kapunk, akkor ez egyúttal efficiens pont is, az eljárás véget ér. Ha nem, akkor folytatjuk az eljárást a harmadik célfüggvénnyel, stb. Az utolsó célfüggvény optimalizálása eredményeként kapott halmaz minden pontja efficiens lesz. Ebben az eljárásban LP feladatokat oldunk meg, az eljárást hierarchikus eljárásnak szokás nevezni azért, mert a célfüggvények fontossági sorrendje szabja meg az eljárás menetét. Egy másik megközelítés csak egyetlen lineáris programozási feladat megoldását igényli. Ha a célfüggvényeket a prioritásuknak megfelelő súlyokkal megszorozzuk, majd összeadjuk őket, akkor ha a kapott lineáris függvényt maximalizáljuk(minimalizáljuk) a szóbanforgó lineáris feltételek mellett, akkor az így kapott optimális megoldás szintén efficiens pont lesz. 4.5. Célprogramozás Anegyedikmodellszorosankapcsolódikaharmadikhoz. IttazA i x b i egyenlőtlenségek némelyikét(vagy mindegyikét) nem előírásnak, hanem csak kívánalomnak tekintjük. Például a termelési feladatunkban b 1 a rendelkezésre álló munkaórát jelentse. E feltétellel kapcsolatban két cél is felmerülhet. Egyfelől szeretnénk a meglévő munkaerőt kihasználni, mert ha kevesebbre lenne szükség, akkor ez elbocsájtásokkal járna. Másfelől nem szeretnénk több munkaórát felhasználni, mint az adott b i mennyiség, bár szükség esetén pl. túlórával több munkaórát is tudunk biztosítani, deezdrágább. Írjukfelazelsőfeltételtígy: A 1 x+y 1 + y1 =b 1. Itty 1 + jelöliazxtermeléssoránfeleslegesenmeglévőnekbizonyulómunkaórákszámát, y1 pedigazt,amelyettúlórávalkellbiztosítani.
4.6. KÉTLÉPCSŐSPROGRAMOZÁSIMODELL 57 Vonatkozzék a második feltétel energiafelhasználásra és tekintsük ezt is kívánalomnak. A második feltételt ekkor így írhatjuk fel: A 2 x+y 2 + y2 =b 2. Ekkor azonban csak ahhoz fűződhet érdekünk, hogy ne használjunk többet fel, mint amennyivan,ezértaztszeretnénk,hogyatöbbletfelhasználástképviselőy2 változó értéke legyen minél kisebb. Feladatunk tehát olyan termelési tervet meghatározni, amely kielégíti a felhasznált munkaórák és energia tekintetében a felírt egyenlőségeket, kielégíti az alapproblématöbbifeltételét,minimalizáljay 1-t,y + 1 ésy2 tis: y 1 + min y1 min y2 min A 1 x+y 1 + y 1 = b 1 A 2 x+y 2 + y2 = b 2 A i x b i, i=3,...,m x 0. Ez a modell a célprogramozás körébe tartozik. A megoldást a többcélú programozási feladatok körében értelmezzük és megoldása lineáris programozási feladatok negoldása formájában történik. 4.6. Kétlépcsős programozási modell Az ötödik modellben a termelési folyamat eredményeként közbeeső termékeket állítunk elő,amelyekbőlegykövetkezőszakaszbanvégtermékekkészülnek. Azx 1,...,x n termelési szintek meghatározásában az első szakaszban nemcsak az erőforrások rendelkezésre álló mennyiségét kell figyelembe vennünk, hanem azt is, hogy a végtermékekre - ezek mennyiségét a Bx szorzat képviseli - mekkora megrendelés érkezik, jelölje ezeketd 1,...D r,ravégtermékekszáma. Tegyükmostfel,hogyaD=(D 1,...,D r )
58 4.FEJEZET: LINEÁRISPROGRAMOZÁSHOZVEZETŐFELADATOK megrendelést nem ismerjük előre, amikor a közbeeső termékek termelési szintjéről kell dönteni, a megrendelések vektora azonban valószínűségi változó, amely nem függ attól, hogy milyen x termelési szintekről döntöttünk az első szakaszban. A D eloszlását ismerjük. Diszkrét értékeket vehet föl, ismerjük e lehetséges értékeket és azt is, hogy D a lehetséges értékeit milyen valószínűséggel veszi fel. A második szakaszban a végtermékek Bx mennyisége és a D megrendelés ismeretében korrekciót hajtunk végre, amely költséggel jár. Minthogy a korrekciós költség nemcsak x től, hanem D től is függ, maga is valószínűségi változó. Az összes költség két tagból áll. Az egyik a közbeeső termékek termeléséhez kapcsolódó (determinisztikus) lineáris költség: cx, a másik pedig a korrekció költségének várható értéke. A feladat az, hogy minimalizáljuk az összes költségünk várható értékét. Szeretnénk annyit termelni a közbeeső termékekből, hogy a belőlük előállítható végtermékek mennyisége pontosan annyi legyen, amennyi a megrendelés. Ha azonban a megrendelés csak a termelés második szakaszában lesz ismeretes, akkor korrekcióra van szükség. A felesleget értékesíteni kell, ezt csak alacsonyabb áron lehet, illetve ha kevesebbet állítunk elő, mint amire megrendelésünk van, akkor ki kell pótolnunk vásárlással, amelyre pedig csak magasabb áron nyílik mód. Jelölje a k. végtermékesetébeneztazalacsonyabbegységáratq k,amagasabbatq+ k, k=1,...,r. A termelés második szakaszában a korrekció költségét akarjuk minimalizálni, vagyis a modellt így írhatjuk fel: r (y + k q+ k +y k q k ) min k=1 B k x+y + k y k = D k, k=1,...,r y + k,y k 0, k=1,...,r. aholy + k jelöliahiányzómennyiségetak dikvégtermékből,y k pedigafelesleget. Így a második szakaszban elvégzendő korrekció minimális költsége is valószinűségi változó, amely adott x esetén szintén diszkrét értékeket vehet fel, nevezetesen a fenti célprogramozási feladat minimális értékeit abban az esetben, amikor a jobboldalon a D lehetséges értékeit helyettesítjük be. Ha D s számú lehetséges értékkel bír, akkor tehát s számú lineáris programozási feladatot kell megoldanunk, az l dik feladat a
4.6. KÉTLÉPCSŐSPROGRAMOZÁSIMODELL 59 következő: r (y + lk q+ k +y lk q k ) min k=1 B k x+y + lk y lk = D (l) k, k=1,...,r y + lk,y lk 0, k=1,...,r ahold (l) adlehetségesértéke,y + lk,y lk (k=1,...,r)azl dikfeladatváltozóitjelöli. Az optimális célfüggvényérték, amely valószinűségi változó, várható értékét is meg tudjuk határozni ezen optimális célfüggvényértékek birtokában, természetesen az x=(x 1,...,x n )termelésiszintekismeretében: E(x)= s l=1 p l min B k x+y + lk y lk =D(l) k,y+ lk,y lk 0, k=1,...,r r (y + lk q+ k +y lk q k ), k=1 ittp l annakvalószinűsége,hogydad (l) értéketveszifel. Ne felejtsük el, hogy e második szakaszban az x = (x 1,...,x n ) vektort, amely a közbeeső termékek termelési szintjét jelenti, adottnak tekintjük. Az x döntési vektor egyben az előállítható végtermékek mennyiségét is képviseli, ezért a modellező érdeklődése erre kell, hogy irányuljon. A feladat olyan x termelési szint vektort meghatározni, amely mellett az összes költség várható értéke minimális. Megfontolásaink a következő nagyméretű lináris programozási modellhez vezettek:
60 4.FEJEZET: LINEÁRISPROGRAMOZÁSHOZVEZETŐFELADATOK cx+ s r p l (y + lk q+ k +y lk q k ) min l=1 k=1 Ax b x 0 B k x+y + 1k y 1k = D (1) k, k=1,...,r y + 1k,y 1k 0, k=1,...,r B k x+y + 2k y 2k = D (2) k, k=1,...,r y + 2k,y 2k 0, k=1,...,r B k x+y + sk y sk = D (s) k, k=1,...,r... y + sk,y sk 0, k=1,...,r A leírt modell a kétlépcsős programozási modell, szintén a sztochasztikus programozás körébe tartozik. Legyen egyszerű példánk egy faipari üzem, ahol az első szakaszban a fa kitermelése történik, a második szakaszban a feldolgozása. A következő termelési periódusban (hónapban, évben, stb.) a legfeljebb T tonna kitermelhető fa egy részéből fűrészárú készül, más részéből rétegelt lemez, stb. Az első szakaszban a vállalatnak azt kell meghatároznia, hány tonna szálfát termeljen ki fűrészárú céljára, rétegeltlemezcéljára,stb. Akivágottszálfaegytonnájábólb 1 köbméterfűrészárú készül,b 2 táblarétegeltlemez, stb. Hax 1,...,x n akivágottszálfatonnájaazelső, második, n-edik célra, akkor a végtermékek mennyiségét(a fűrészárú, rétegelt lemez, b 1 x 1 b 1 0...0 b stb. termékekből) a 2 x 2 0b vektor képviseli, vagyis B = 2...0....... b n x n 00...b n
4.6. KÉTLÉPCSŐSPROGRAMOZÁSIMODELL 61 Kétlehetségesmegrendelésképzelhetőel: D (1) = az első 1 3, a második 2 3 D (1) 1 D (1) 2... D (1) n ésd (2) = D (2) 1 D (2) 2... D (2) n, valószinűséggel. Egy tonna szálfa feldolgozási költsége c 1, ha fűrészárú készül belőle, c 2, ha rétegelt lemez, stb. Az összes feldolgozási költség,ésegybenennekvárhatóértéke: n j=1 c jx j.azösszesköltségafeldolgozás költségének és a korrekciós költségnek az összege, amelynek várható értékét minimalizáljuk. Megoldandó lineáris programozási feladatunk így n + 2n + 2n = 5n változót,1+n+n+2n+n+2n=7n+1feltételttartalmazésakövetkezőlesz: n c j x j + 1 3 j=1 n (q + k y+ 1k +q k y lk )+2 3 k=1 n (q + k y+ 2k +q k y 2k ) min k=1 x 1 +x 2 +...+x n T x 1,x 2,...,x n 0 b 1 x 1 +y + 11 y 11 = D (1) 1... b n x n +y + 1n y 1n = D (1) n y + 1k,y 1k 0, k=1,...,n; b 1 x 1 +y + 21 y 21 = D (2) 1... b n x n +y + 2n y 2n = D (2) n y + 2k,y 2k 0, k=1,...,n.
62 4.FEJEZET: LINEÁRISPROGRAMOZÁSHOZVEZETŐFELADATOK
5. fejezet Történet, ajánlott könyvek A lineáris programozás az operációkutatás központi területe. Az operációkutatás elnevezés a II. világháború alatt keletkezett, a tudományos eredményeknek a hadműveleti tervekben való alkalmazására utal. Először a brit, majd az amerikai hadvezetés nagyszámú tudóst hívott, közöttük nagyszámú matematikust segítségül, hogy közreműködjenek stratégiai és taktikai katonai problémák kezelésében, az erőforrásoknak az egyes katonai tevékenységek közötti elosztásában, bonyolult szállítási és utánpótlási feladatok megtervezésében. Ezek a tudóscsoportok alkották az első operációkutatókat. A terület tudományos eredete és gyökere azonban sokkal korábbi. Egyszerű matematikai programozási modelleket közölt már a közgazdász Quesnay 1759-ben és Walras 1874-ben; Neumann János 1937-ben és Kantorovich 1939-ben hasonló műfajú de sokkal erőteljesebb és bonyolultabb gazdasági modelleket fejlesztettek ki. A lineáris modellek matematikai megalapozása a 19. század fordulájára esik. Lineáris egyenletrendszerek megoldhatóságáról szóló, jelentős fejlődést elindító eredményét Farkas Gyula 1901-ban publikálta. König Dénes és Egerváry Jenő kutatásai az 1910-es, 20- as években a hozzárendelési feladat megoldására szolgáló u.n. magyar módszerhez vezettek. Nagyhatású korai kutatásokra szolgálnak például Markov dinamikus modellekre vonatkozó munkái és Erlang úttörő tanulmányai a sorbanállási modellek területén-markov1856és1922közöttélt,erlangpedig1878és1929között. Bár e korai eredmények a tudományos közéletben elismerést váltottak ki, a ma- 63
64 5.FEJEZET: TÖRTÉNET,AJÁNLOTTKÖNYVEK tematikai modellek alkalmazása az üzleti életben és gazdasági döntésekben csak az utóbbi bő fél évszázad fejleménye. A II. világháborút követően világossá vált, hogy a gazdasági és üzleti életben felmerülő problémák alapvetően ugyanolyanok, mint amilyenekkel a háború idején a kutatók szembesültek. E felismeréshez az összegyűlt elméleti és módszertani ismeretek mellett a rendelkezésre álló technikák, mindenekelőtt a számítógép gyors fejlődése is hozzájárult, hiszen komplikált feladatok megoldása a megoldási módszer birtokában sem képzelhető el papíron, ceruzával. Az operációkutatás mint tudományterület hamarosan meggyökeresedett, egyetemi tanszékek alakultak, tudományos társaságok, folyóiratok jöttek létre, konferenciák szerveződtek ilyen néven. Magyar tudományos műhelyekben már az 1960-as években felismerték a lineáris programozás jelentőségét és a nagy lehetőséget a matematika gyakorlati életben való alkalmazhatóságára. Az első nagyszabású alkalmazási munka a Kornai János vezetésével végzett népgazdasági tervezés volt, amelyben akadémiai kutatóintézetek is részt vettek. Magyarországon az operációkutatás tudományos diszciplínává válásának úttörője, szervezeti rendszerének részben megteremtője és mindmáig nemzetközileg is legismertebb magyar művelője Prékopa András. Megszervezte az ELTE operációkutatási szakirányát, ennek megalapozásául 1967-69-ben nagysikerű tanfolyamot szervezett a Bólyai Társulatban. Az MTA SZTAKI Operációkutatási Osztály vezetője 1970-85 között, az ELTE Operációkutatás Tanszékének első vezetője, az MTA Operációkutatási Bizottság, majd a Magyar Operációkutatási Társaság megalapítója és első elnöke. Nevéhez fűződik egyebek mellett a valószínűséggel korlátozott lineáris programozási feladat bevezetése és széleskörű vizsgálata. 1985-től a Rutgers egyetemen tanít. Az országban elsőként azonban nem az ELTE-n, hanem a Marx Károly Közgazdaságtudományi Egyetemen létesült Operációkutatás Tanszék, 1976-ban. Megalapítója és a magyar operációkutatás elkötelezett képviselője, művelője Krekó Béla volt, aki számos közgazdasági alkalmazást is kezdeményezett és irányított. A lineáris programozásnak óriási irodalma van. Itt néhány olyan könyvet-tankönyvet sorolok fel, amelyek áttanulmányozásával az olvasó megismerkedhet a terület
65 különböző vonásaival. Célom az is, hogy a szerzőkre mint az operációkutatás kiemelkedő művelőire is felhívjam a figyelmet. A felsorolt könyvek többsége 30-40 évvel ezelőtt jelent meg, a lineáris programozás hőskorában. Azóta ugyan sok-sok új eredmény született, amelyek gazdagították a tudományterületet, a nagy felismerések azonban a hőskorban születtek. E könyvek nemcsak korszerűek ma is, hanem a szerzők nagy magyarázó lendülete és erőfeszítése eredményeként főként az ismereteiket megalapozni kívánók számára talán könnyebben megérthetők. Zömük sajnos csak angol nyelven olvasható, néhány egyetemi könyvtárban illetve akadémiai intézeti könyvtárban azonban megtalálhatók. Prékopa András a már említett, a Bólyai Társulat keretében operációkutatásról szervezett tanfolyamon a lineáris programozásról tartott előadássorozatot. Ehhez írt könyvét(lineáris Programozás I, Bólyai János Matematikai Társulat, Budapest, 1968) ajánlom elsőként az olvasó figyelmébe azért is, mert a lineáris programozás és a szimplex módszer e könyvben bemutatott szemléletes tárgyalásmódját és lineáris algebrai beágyazását jegyzetem írásakor magam is mintának tekintettem, gondolatmenetéből merítettem. G.B. Dantzig a lineáris programozás alapító atyái közül a legismertebb, a szimplex módszer az ő nevéhez fűződik. Könyve (Dantzig, G.B.: Linear programming and extensions, Princeton University Press, 1963) az első nagy elméleti és módszertani összefoglaló mű. D. Gale úttörő munkájában(gale, D.: The theory of linear economic models, McGraw-Hill, 1960) a lineáris gazdasági modelleket egységes szerkezetbe foglalta és egyúttal a lineáris programozás gondolatkörébe helyezte. H.M. Wagner nagyszabású és egyben szórakoztató stílusú könyvét (Wagner, H.M.: Principles of operations research with applications to managerial decisions, Prentice-Hall Inc., 1969) azoknak ajánlom, akik lineáris programozáshoz vezető széleskörű alkalmazási lehetőségek iránt érdeklődnek. O.L. Mangasarian munkája(mangasarian, O.L.: Nonlinear programming, McGraw- Hill, 1969) a matematikai programozás klasszikus kézikönyve, első része lineáris programozással foglalkozik.
66 5.FEJEZET: TÖRTÉNET,AJÁNLOTTKÖNYVEK A Hillier-Liebermann szerzőpáros tankönyve (Hillier, F.S., Lieberman, G.J.: Introduction to operations research, Holden Day Inc., 1986) több angol nyelvű kiadást ért meg, magyar fordításban 1994-ben jelent meg, megkapható vagy megrendelhető egyebek között a Budapesti Corvinus Egyetem könyvesboltjaiban. Sztochasztikus programozásról, ezen belül a valószínűséggel korlátozott lineáris programozási illetve a kétlépcsős programozási feladatról széleskörűen tájékozódhat, aki elolvassa Prékopa András Stochastic programming című nagy monográfiáját (Akadémiai Kiadó, Budapest, 1995), de áttekintést szerezhet Deák Istvánnak az erre a könyvre épülő jegyzetéből is ( Bevezetés a sztochasztikus programozásba, Operációkutatás No. 4, Budapest, 2004). A többcélú programozásnak és a célprogramozásnak az operációkutatásról szóló könyvek rendszerint külön fejezetet szentelnek. A hiperbolikus programozási feladatot azonban Martos Béla oldotta meg először, könyvére (Martos, B.: Nonlinear programming: theory and methods, North-Holland, Amsterdam, Akadémiai Kiadó, Budapest, 1975) felhívom az olvasó figyelmét. Vektorterekről való ismereteiket az itt tárgyaltaknál részletesebben felidézni szándékozóknak ajánlom Dancs István és Puskás Csaba Vektorterek című könyvét, megjelent az AULA kiadó gondozásában 2001-ben.