A dalitás elve Készítette: Dr. Ábrahám István
A dalitás fogalma, alapösszefüggései Definíció: Adott a lineáris programozás maimm feladata: 0 A b f()=c* ma Ekkor felírható a kővetkező minimm feladat: y 0 A*y c g(y)=b*y min A két feladatot egymás dáljának nevezzük. A későbbiekben az elsőként felírt feladatot primál, a másodikként feírtat dál feladatnak nevezzük, tehát a minimm feladat is nevezhető primál feladatnak.
A kanoniks alakok: A+=b és A*y - w=c A maimmfeladat eltérésvektorát -val, a minimmfeladatát w-vel jelöljük. Tétel: Ha az 0 és y 0 A b A*y c f()=c* ma g(y)=b*y min feladatpárnál az és az y lehetséges megoldás, akkor minden esetben igaz: f() g(y). Bizonyítás: A feltételek szerint A b és A*y c, azaz (transzponálás): y*a c*. Az első egyenlőtlenséget balról szorozzk y*-gal: y*a y*b=b*y =g(y). A második egyenlőtlenséget jobbról szorozzk -szel: y*a c*=f(). Látható: f() y*a g(y). 3
A tétel következményei: a.) Ha a primál feladatnak van megoldása és az f célfüggvény nem korlátos felülről, akkor, mivel g(y) f(), a dál feladatnak nincs lehetséges megoldása. Hasonlóan: ha a dál feladat g célfüggvénye nem korlátos allról, akkor a primál feladatnak nincs lehetséges megoldása. b.) Ha a primál feladat f célfüggvényének értéke egy 0 helyen éppen egyenlő a dál feladat g célfüggvényének y 0 helyen felvett értékével, akkor f( 0 ) f-nek maimma, g(y 0 ) a g-nek minimma. Ekkor 0 a primál, y 0 a dál feladat optimális megoldása. Optimális megoldásnál tehát a célfüggvény értéke a primál és a dál feladatnál megegyezik. 4
Feladat: Kétféle terméket készítünk, három erőforrás felhasználásával, amelyekre felső kapacitás korlátok vannak: 40, 50,. Az egyes erőforrások beépülése a termékekbe: 0, 0,, illetve 0, 5, 0. A késztermékek eladási egységára mindkét esetben 300 pénzegység. Határozzk meg a legnagyobb eladási árbevételt biztosító termelési programot! Táblázatot készítünk: Erőforrások A B C Termékek I. II. 0 0 0 5 0 Ár 300 300 Kapacitás 40 50 Az első termékből darabot, a másodikból -t készítünk. 5
A matematikai modell ( a táblázatból): A B C I.( 0 ) II.( Eröf. Ár 0 0 5 0 300 300 ) Kap. 40 50, 0 0 +0 40 0 +5 50 z=300 +300 ma A modellből felírjk a szimple indló táblázatot. 6
B 0 3 z A szimple táblázattal történő megoldás: 0 0 b 40 0 5 50 0 300 300 0 B - z 3 0 5 b 0 0 5 90 0 6-50 300-800 B - z 3 0 0 0,5 b 40 0 6 50-30 -400 B 3 3 - z 0 40 0 8 40 6-5 45 4 b 4 5 700 A táblázat felépülését nyomon követhetjük: generáló elem választás, új koordináták kiszámolása. Leolvassk az optimális megoldásokat: o = [ 5 4 ]* o = [ 0 0 ]* z o = 700 A felvetett és megoldott problémához dál feladatot rendelhetünk. 7
A dál probléma megfogalmazása Emlékeztetőül az eredeti szövegünk: Feladat: Kétféle terméket készítünk, három erőforrás felhasználásával, amelyekre felső kapacitás korlátok vannak: 40, 50,. Az egyes erőforrások beépülése a termékekbe: 0, 0,, illetve 0, 5, 0. A késztermékek eladási egységára mindkét esetben 300 pénzegység. Határozzk meg a legnagyobb eladási árbevételt biztosító termelési programot! Dál értelmezés: Ha nem kívánnk termelni, hanem a meglévő erőforrásainkat y, y, y 3 egységárakon el akarjk adni, akkor a következő modell vehető fel: 8
Adatainkat táblázatba írjk: Termék Erőforr. A e.ár:y B e.ár:y C e.ár:y 3 Ár I. II. Kapacitás 0 0 0 5 0 300 300 40 50 A matematikai modell: a.) y, y, y 3 0 b.) Az első termékben felhasznált erőforrások ára darabonként: 0y +0y +y 3 300 Ugyanis ennek a terméknek eladási egységára 300, legalább ennyit szeretnénk kapni érte. Hasonlóan: 0y +5y +0y 3 300 A vevő összes kiadása vásárlás esetén: A vevő kiadásai minimalizálására törekszik, tehát: 40y +50y +y 3 c.) z = 40y +50y +y 3 min 9
A szöveges feladathoz tartozó, A feladat dál modellje: elsőként felírt ( primál ) matematikai modell: a.),, 0 a.) y,y, y 3 0 b.) 0 +0 40 0 +5 50 c.) z=300 +300 ma b.) 0y +0y +y 3 300 0y +5y 300 c.) z =40y +50y +y 3 min A primál-dál megnevezés a modell felírásának sorrendjére tal, az egyik modellből következik a másik. Az egyik modellből a másik felírása mechaniksan történhet: A sorok helyére oszlopok kerülnek, a relációk és a cél átfordl. 0
Általánosan : minden LP feladat felírhat rható primál és dál alakban. Adott maimm, illetve minimm feladatnál: a primál modell oszlopaiból lesznek a dál modell sorai, a relációjelek megfordlnak és a cél is ellenkezőjére változik. A primál modell optimális szimple táblázatából leolvasható a dál feladat optimma: ez az tolsó oszlop helyett az tolsó sorból történik, ellenkező előjellel. Az változók a dál w eltérésvátozókkal, az eltérésváltozók az y változókkal vannak kapcsolatban. Példánknál az optimális táblázat: B 3 -z A táblázat közepét nem kell kitölteni az optimm leolvasásához. b 4 5-5/ -45/4-700 A primál optimm: o =[5 4]* o =[0 0 ]* z o =700. A dál optimm: y o =[ 45/4 5/ 0]* w o =[0 0]* z o =700.
Példa minimmfeladat dáljára: Egy gazdaságban állatok etetésére kétféle takarmánykeveréket akarnak használni. A keverékek négyféle tápanyagból készülnek, amelyeket, 0,, 7, illetve 0,,, 6 mennyiségben tartalmaznak. Az egyes tápanyagokból legalább, 4, 0, 4 egységnyit fel kell használni. A takarmánykeverékek egységárai: 00, 300. Az egyes takarmánykeverékekből mennyit szerezzünk be, hogy a lehető legkisebb legyen a beszerzési költség? Táblázat: Tápanyag A B C D Keverék I. II. 0 0 7 6 Ár 00 300 Előírás 4 0 4 A (primál) matematikai modell: a.), 0 b.) +0 4 + 0 7 +6 4 c.) z=00 +300 min A primál modellben és a keverékek mennyiségei. A dál modell: a.) y,y,y 3,y 4 0 b.) y +0y +y 3 +7y 4 00 y +y 3 +6y 4 300 c.) z =4y +4y +0y 3 +4y 4 ma A dál modellben az y i értékek a tápanyag egységárak. Mechaniksan: sorok és oszlopok, relácójelek megcserélődnek, a cél átfordl.
A primál modell megoldása szimple módszerrel hosszadalmas, az eltérésváltozók kalaposak, 4 darab v i változót, valamint másodlagos célfüggvényt kell szerepeltetni. A dálfeladat viszont egyszerű normálfeladat, megoldása: Az indló szimple tábla: y y y 3 y 4 w 0 7 w 0 6 00 300 -z 4 0 4 0 Az optimális szimple tábla: y 4 y 3 y w y w,5,5 -z - -3,5-3 -3-650 Az optimális megoldások ( direkt leolvasás y-ra és w-re, az alsó sorból -re és v-re, és tdjk: az oszlopfőn lévő változók az optimmnál nllák): y o =[ 0 0,5,5]* z o =650 o =[ 3 3,5 ]* w o =[ 0 0]* o =[ 3 0 0 ]* Tehát az első keverékből 3, a másodikból 3,5 beszerzése optimális. 3
A primál-dál feladatpár általánosabb változata Az általános lineáris programozási feladatot maimm, vagy tiszta minimm típsú modellé alakítjk és eztán képezzük a dálját. Példa: Ha A b, A b és c* ma, akkor a második feltételt szorozzk --gyel és a maimm feladatra felírjk a dálját: y 0 (A -A )*y c és (b -b )*y min. Ha A b, A b és c* ma, akkor a modellt tiszta minimm típsú modellé alakítjk az első feltételt és a célfüggvényt --gyel szorozva, és eztán képezzük a dálját: y 0 (-A A )*y c és (-b b )*y ma. Ha a modellben egyenlőség is van, akkor az átalakításnál ezt a relációt változatlanl hagyjk, képezzük a dál modellt és az egyenlőség sorokhoz tartozó dál változókra nem lesz előjelkorlát. Ha pedig valamelyik változóra nincs előjelkorlát, akkor a dál feladatban a hozzá tartozó feltétel 4 egyenlőség.
A primál-dál feladatpár felvétele Ha adott a kiindló LP feladat, akkor azt először a definícióban lévő primál, vagy dál alakra hozzk. Példa: Legyen a kiindló feladat:,, 3 0 A második feltételben a relációt megfordítjk, szorzás --gyel. Ekkor a modell:,, 3 0 3 +4-6 3 3-5 + 3 8 z=6 +4-7 3 ma 3 +4-6 3 3 - +5-3 -8 z=6 +4-7 3 ma Ehhez a definícióban meghatározott módon felírhatjk a dál alakot: Eljárhattnk volna úgy is, hogy a célfüggvényt fordítjk át és az első feltételt. Ekkor a definícióban szereplő dál alak lenne a kiindló modell. y, y 0 3y -y 6 4y +5y 4-6y -y -7 z=3y -8y min A szimple módszerrel történő megoldáshoz a harmadik feltételt meg kell szorozni --gyel. 5
A feltételek között egyenlőséget tartalmazó modell dálja Alapelv: az egyenlőséget két egyenlőtlenségre bontjk. Példa:,, 3 0 Így a modellünk:,, 3 0 3 + - 3 3 4-5 +6 3 3 + - 3 3 4-5 +6 3 = -4 +5-6 3 - z= +7-3 3 ma z= +7-3 3 ma Összefoglalva: ha egy LP feladatban valamelyik feltétel egyenlőség, akkor a dáljában a neki megfelelő változóra nincs előjelkorlát. Ha pedig valamelyik változóra nincs előjelkorlát, akkor a dál feladatban a hozzá tartozó feltétel egyenlőség. A második feltétel felírható egyenlőtlenséggel: 4-5 +6 3 4-5 +6 3 A második egyenlőtlenséget szorozzk --gyel: -4 +5-6 3 - Az átíráshoz az y változót is részre bontjk: y és y. Így: y, y, y 0 3y +4y -4y y -5y +5y 7 -y +6y -6y -3 z=3y +y -y min Kiemelés és legyen y -y =y.. Ekkor, mivel az y -y előjelét nem ismerjük: y R. A dál modell: y, 0, és y R 3y +4y y -5y 7 -y +6y -3 z=3y +y min 6
Példa: Képezzük a következő primál modell dálját kétféleképpen: 0 3 + -4 3 3 - +4 + 3 0-5 -7 3 5 A modellt maimm típsúvá alakítjk: 0 3 + -4 3 3 - +4 + 3 0 - +5 +7 3-5 A dál modell: y 0 3y -y -y 3 - y +4y +5y 3-6 -4y +y +7y 3 8 z= +6-8 3 min -z=- -6 +8 3 ma z =3y +0y -5y 3 min Ha a modellt tiszta minimm típsúvá alakítjk: 0-3 - +4 3-3 -4-3 -0-5 -7 3 5 Az ehhez tartozó dál modell: y 0-3y +y +y 3 -y -4y -5y 3 6 4y -y -7y 3-8 z= +6-8 3 min z =-3y -0y +5y 3 ma Ha a modellünkben a második feltétel egyenlőség: 0 3 + -4 3 3 - +4 + 3 =0-5 -7 3 5 z= +6-8 3 min Ekkor a normál típsú dál modell: y,y 3 0 és y R 3y -y -y 3 - y +4y +5y 3-6 -4y +y +7y 3 8 z =3y +0y -5y 3 min 7
Gyakorló feladat: Egy vállalat kétféle terméket gyárt, amelyekbe 3 erőforrásból, 8, és 6, valamint 7, 8 és 4 egységnyi épül be. Az erőforrások kapacitásai: 770, 640 és 840. A termékek egységárai: és. Ismert még, hogy az első termékből legfeljebb 600 darabot, a másodikból maimálisan 400 darabot lehet eladni. Célnk a maimális árbevétel. Írjk fel a feladathoz tartozó primál és dál modellt, valamint számoljk ki a primál és dál optimális megoldásokat! A modellek: A primál feladat változója legyen a gyártásra kerülő termékek darabszáma. A dál feladat változója legyen az erőforrások egységára. Primál: 0 +7 770 8 +8 640 6 +4 840 600 400 f()=z= + ma Dál: y 0 y +8y +6y 3 +y 4 7y +8y +4y 3 +y 5 g(y)=z =770y y +640y +840y 3 +600y 4 +400y 5 min 8
A primál feladat megoldása szimple módszerrel: 3 4 5 z 8 6 0 7 8 4 0 770 640 840 600 400 0 4 5 z 8 64 4 6 4 6 4 4 3 7 4 8 4 4 0 4 4 350 60 60 600 340 0 4 5 z. 4 64... 3 3. 8... 8 70 35 45 565 355 5 Az tolsó táblázatban elegendő a legalsó sor és a jobboldali oszlop kitöltése. Az optimális megoldások: o =[ 35 45 ]* o =[ 70 0 0 565 355 ]* z o =5 y o =[ 0 /3 /8 0 0 ]* w o =0 A fejezet tárgyalását befejeztük. 9