bevezetés a lineáris programozásbakovacss/nagyvarad/lp_ea.pdf · kétváltozós esetben az lp...
TRANSCRIPT
Bevezetés a lineárisprogramozásba
8. eloadás
Farkas István
DE ATC Gazdaságelemzési és Statisztikai Tanszék
Szimplex módszer – p. 1/15
Az LP feladatok általános modellje
A korlátozó feltételeket írjuk fel a következo alakban:
a11x1 + a12x2 + . . . + a1nxn ≤ b1
a21x1 + a22x2 + . . . + a2nxn ≤ b2
...
am1x1 + am2x2 + . . . + amnxn ≤ bm,
aholxi ≥ 0 mindeni = 1, 2, . . . , n-re,
Szimplex módszer – p. 2/15
Az LP feladatok általános modellje
A korlátozó feltételeket írjuk fel a következo alakban:
a11x1 + a12x2 + . . . + a1nxn ≤ b1
a21x1 + a22x2 + . . . + a2nxn ≤ b2
...
am1x1 + am2x2 + . . . + amnxn ≤ bm,
aholxi ≥ 0 mindeni = 1, 2, . . . , n-re, míg a célfüggvény
z = c1x1 + c2x2 + . . . + cnxn =⇒ max v. min
alakú.
Szimplex módszer – p. 2/15
Az LP feladatok mátrix alakú modellje
A modell vektorok és mátrixok seítségével egyszerubben isfelírható:
1.) ~x ≥ ~0
2.) A~x ≤ ~b
3.) z = ~cT ~x =⇒ max v. min
Az A mátrix elemeittechnikai vagy technológiai koefficiensnek
nevezzük. Az~x vektor elemei aváltozók(programozási feladatokban
ezeketprimál változóknak nevezzük). A~b vektortkészletvagy
kapacitás vektornak, a~cT vektort pedig acélfüggvény vektorának
nevezzük.
Szimplex módszer – p. 3/15
Az LP feladatok csoportosítása
A feladatoknak két alaptípusa van: maximum- és minimumszámítás. A
további csoportosítást maximum feladatoknál a korlátozó feltételek
milyensége alapján végezzük.
1. Normál feladat: az
~x ≥ ~0
A~x ≤ ~b
z = ~cT ~x =⇒ max
feladatot normál feladatnak hívjuk. Ebben az esetben a feltételek
mindegyike≤.
2. Módosított normál feladat: a korlátozó feltételek között≤ és=
is szerepel.
3. Általános feladat: a korlátozó feltételek között≤, = és≥ is
szerepel.Szimplex módszer – p. 4/15
Grafikus megoldásKétváltozós esetben az LP feladatokat grafikusan is megoldhatjuk. Erre nézünk most egy példát.
Feladat. Két termék egy-egy darabjának eloállításához négy alapanyagból rendre 8, 1, 3, 0 és 8,
3, 0, 2 egységet kell felhasználni. Az alapanyagokból maximálisan 64, 15, 18, 8 egységet lehet
felhasználni. Az egyes végtermékek egy darabjának tiszta hozama 5, illetve 3 egység. Mennyit
kell eloállítani az egyes termékekbol, hogy a hozam maximális legyen? Mennyi ez a maximum?
Szimplex módszer – p. 5/15
Grafikus megoldásKétváltozós esetben az LP feladatokat grafikusan is megoldhatjuk. Erre nézünk most egy példát.
Feladat. Két termék egy-egy darabjának eloállításához négy alapanyagból rendre 8, 1, 3, 0 és 8,
3, 0, 2 egységet kell felhasználni. Az alapanyagokból maximálisan 64, 15, 18, 8 egységet lehet
felhasználni. Az egyes végtermékek egy darabjának tiszta hozama 5, illetve 3 egység. Mennyit
kell eloállítani az egyes termékekbol, hogy a hozam maximális legyen? Mennyi ez a maximum?
Megoldás.Elkészítjük a feladat matematikai modelljét. Jelöljex az elso termék darbszámát, míg
y azt, hogy hány darabot állítunk elo a második termékbol.
Szimplex módszer – p. 5/15
Grafikus megoldásKétváltozós esetben az LP feladatokat grafikusan is megoldhatjuk. Erre nézünk most egy példát.
Feladat. Két termék egy-egy darabjának eloállításához négy alapanyagból rendre 8, 1, 3, 0 és 8,
3, 0, 2 egységet kell felhasználni. Az alapanyagokból maximálisan 64, 15, 18, 8 egységet lehet
felhasználni. Az egyes végtermékek egy darabjának tiszta hozama 5, illetve 3 egység. Mennyit
kell eloállítani az egyes termékekbol, hogy a hozam maximális legyen? Mennyi ez a maximum?
Megoldás.Elkészítjük a feladat matematikai modelljét. Jelöljex az elso termék darbszámát, míg
y azt, hogy hány darabot állítunk elo a második termékbol.
x, y ≥ 0
8x + 8y ≤ 64
x + 3y ≤ 15
3x ≤ 18
2y ≤ 8
z = 5x + 3y → max.
Szimplex módszer – p. 5/15
Grafikus megoldásAz egyenlotlenség rendszert grafikusan oldjuk meg. Az elso feltétel biztosítja, hogy a
megoldásokat a koordináta rendszer elso síknegyedében keressük. Tekintsünk az
egyenlotlenségek helyett egyenloségeket. Ekkor egyenesek egyenleteit kapjuk, melyeket
tengelymetszetes alakra átírva könnyen ábrázolhatunk. Ezek után besatírozzuk az
egyenlotlenségeket igazzá tévo területrészeket. Ha a feltételben a≤-jel szerepel, akkor az
egyenes alatti pontok-, illetve az egyenes pontjainak koordinátái teszik igazzá az
egyenlotlenséget. A≥-jel esetén fordítva. A beszinezett területek metszete tartalmazza azon
pontokat, melynek koordinátái az összes feltételt kielégítik. Ez a megengedett megoldások
halamaza. Ezen pontok között keressük azt, amelyre a célfüggvény maximális értéket vesz fel.
Szimplex módszer – p. 6/15
Grafikus megoldásAz egyenlotlenség rendszert grafikusan oldjuk meg. Az elso feltétel biztosítja, hogy a
megoldásokat a koordináta rendszer elso síknegyedében keressük. Tekintsünk az
egyenlotlenségek helyett egyenloségeket. Ekkor egyenesek egyenleteit kapjuk, melyeket
tengelymetszetes alakra átírva könnyen ábrázolhatunk. Ezek után besatírozzuk az
egyenlotlenségeket igazzá tévo területrészeket. Ha a feltételben a≤-jel szerepel, akkor az
egyenes alatti pontok-, illetve az egyenes pontjainak koordinátái teszik igazzá az
egyenlotlenséget. A≥-jel esetén fordítva. A beszinezett területek metszete tartalmazza azon
pontokat, melynek koordinátái az összes feltételt kielégítik. Ez a megengedett megoldások
halamaza. Ezen pontok között keressük azt, amelyre a célfüggvény maximális értéket vesz fel.
A tengelymetszetes alakok:
e1 :x
8+
y
8= 1
e2 :x
15+
y
5= 1
e3 :x
6= 1
e4 :y
4= 1.
Szimplex módszer – p. 6/15
Grafikus megoldás
0 2 4 6 8 10 12 14 16
0
2
4
6
8
X
Y
zpr = 15
zmax = 36
e1
e2
e4
e3
Foglalkozzunk most a célfüggvénnyel. Adjunk a célfüggvénynek egy tetszoleges értéket, úgy
hogy az könnyen ábrázolható legyen. (Érdemes azx ésy együtthatóinak közös többszörösét
választani.) Így azpr próbaegyeneshez jutunk:
5x + 3y = 15. Szimplex módszer – p. 7/15
Grafikus megoldásAzok a pontok, amelyekben a célfüggvény a 15 értéket veszi fel, a fenti egyenesen (ún.
szintvonalon) fekszenek. A megengedett megoldások halmazának egyes pontjaiban a
célfüggvény azt az értéket veszi fel, amelyhez az adott ponton áthaladó szintvonal tartozik.
A más értékekhez tartozó szintvonalak evvel az egyenessel párhuzamosak. Ha az egyenest
önmagával párhuzamosan felfelé toljuk, akkorz értéke no, míg lefelé tolvaz értéke csökken.
Mivel z maximumát keressük, az értékét növelnünk kell, az egyenest önmagával párhuzamosan
felfelé toljuk el. Így elérheto, hogy a párhuzamos egyenesnek csak egy közös pontja legyena
megengedett megoldások halmazával. (Általános esetben ezlehet egy szakasz, illetve egy
félegyenes is.) A konkrét példában ez a pont aze1 ése3 egyenesek metszéspontja. Ahhoz, hogy
a maximumhelyet megkapjuk, meg kell oldanunk az:
x = 6
8x + 8y = 64
egyenletrendszert. A szélsoértékhely koordinátái:x = 6, illetve y = 2. Az elso termékbol 6-ot, a
másodikból 2-ot kell eloállítanunk, hogy a maximális hozamot kapjuk. A maximum értékét a
célfüggvénybe való behelyettesítéssel kapjuk meg:
zmax(6, 2) = 5 · 6 + 3 · 2 = 36.
Szimplex módszer – p. 8/15
A szimplex módszer• A megoldás elso lépéseként elkészítjük azinduló táblázatot, melyben azu1, u2, u3 és
u4 szimbólummal az ún.duál változókat jelöljük. A gyakorlati példára gondolva ezek az
eroforrások sorait jelölik.
• A felso sorban a primál változók (~x vektor elemei), az
• alsó sorban pedig a célfüggvény együtthatói (~cT vektor elemei),
• a jobb oldali oszlopban a készletvektor (~b) elemei szerepelnek.
• Egészítsük ki a táblázatot azzal, hogy a célfüggvény sorának végére0-t, az elejére pedig
(−z)-t írunk, kifejezve ezzel azt, hogy a táblázatnak megfelelo program alapján a
célfüggvény értéke zérus, illetve hogy a célfüggvény maximumát kapjuk.
Szimplex módszer – p. 9/15
A szimplex módszer• A megoldás elso lépéseként elkészítjük azinduló táblázatot, melyben azu1, u2, u3 és
u4 szimbólummal az ún.duál változókat jelöljük. A gyakorlati példára gondolva ezek az
eroforrások sorait jelölik.
• A felso sorban a primál változók (~x vektor elemei), az
• alsó sorban pedig a célfüggvény együtthatói (~cT vektor elemei),
• a jobb oldali oszlopban a készletvektor (~b) elemei szerepelnek.
• Egészítsük ki a táblázatot azzal, hogy a célfüggvény sorának végére0-t, az elejére pedig
(−z)-t írunk, kifejezve ezzel azt, hogy a táblázatnak megfelelo program alapján a
célfüggvény értéke zérus, illetve hogy a célfüggvény maximumát kapjuk.
A teljes induló szimplex táblázat tehát:
x y ~b
u1 8 8 64
u2 1 3 15
u3 3 0 18
u4 0 2 8
−z 5 3 0Szimplex módszer – p. 9/15
A szimplex módszer1. Ebben a táblázatban – és a további módosított táblázatokban is – a bal oldali oszlopban
szereplo változók értékei a jobb oldali oszlop megfelelo sorában olvashatók le, míg a
felso sorban szereplo változók értékei a program alapján zérussal egyenlok.
2. A program módosítását az egyenletrendszerek megismert módszeréhez hasonlóan
végezzük néhány módosítással:
(a) Generáló elemet választunk, de ezt csak abból az oszlopból tehetjük meg, ahol a
célfüggvény együtthatója nem negatív (így növekedik a célfüggvény). Abból az
oszlopból célszeru választani, ahol legnagyobb az együttható.
(b) Generáló elemnek csak pozitív számot választunk, ellenkezo esetben ugyanis az
xi ≥ 0 feltételt sértenénk meg.
(c) Abból a sorból választunk generáló elemet, ahol a legsz˝ukebb a keresztmetszet,
azaz a választott oszlopból csak az azaig > 0 elem lehet generáló elem, amelyrebi
aiga legkisebb.
� �
Szimplex módszer – p. 10/15
A szimplex módszer1. Ebben a táblázatban – és a további módosított táblázatokban is – a bal oldali oszlopban
szereplo változók értékei a jobb oldali oszlop megfelelo sorában olvashatók le, míg a
felso sorban szereplo változók értékei a program alapján zérussal egyenlok.
2. A program módosítását az egyenletrendszerek megismert módszeréhez hasonlóan
végezzük néhány módosítással:
(a) Generáló elemet választunk, de ezt csak abból az oszlopból tehetjük meg, ahol a
célfüggvény együtthatója nem negatív (így növekedik a célfüggvény). Abból az
oszlopból célszeru választani, ahol legnagyobb az együttható.
(b) Generáló elemnek csak pozitív számot választunk, ellenkezo esetben ugyanis az
xi ≥ 0 feltételt sértenénk meg.
(c) Abból a sorból választunk generáló elemet, ahol a legsz˝ukebb a keresztmetszet,
azaz a választott oszlopból csak az azaig > 0 elem lehet generáló elem, amelyrebi
aiga legkisebb.
Tekintsük tehát az induló táblázatot. Mivel5 > 3, így azx oszlopból célszeru választani (x
változót célszeru bevonni a programba, hiszen minden egysége 5 egységgel növeli a
célfüggvényt). A hányadosokra:
min
�64
8,15
1,18
3
�
=18
3,
Szimplex módszer – p. 10/15
A szimplex módszertehát azu3 sorhoz tartozó a legkisebb. Azaz azx oszlopából ésu3 sorából választunk generáló
elemet amit úgy jelzünk, hogy bekeretezzük az itt álló3-as számot.
x y ~b
u1 8 8 64
u2 1 3 15
u3 3 0 18
u4 0 2 8
−z 5 3 0
3. Ebben az új, javított táblázatban nem hagytunk el oszlopot. A generáló elem sorának
elemeit úgy kapjuk, hogy a régi táblázat ezen elemeit osztjuk a generáló elemmel.
4. A generáló elem oszlopának elemeit úgy kapjuk, hogy a régitáblázat ezen elemeit
osztjuk a generáló elem(−1)-szeresével.
5. A generáló elem helyére annak reciproka kerül.
6. A többi elemet a teljes bázistranszformációnál tanult ésaz egyenletrendszereknél
alkalmazott módszer szerint számoljuk ki.
Szimplex módszer – p. 11/15
A szimplex módszerAz elso javított táblázathoz tartozó program:
u3 y ~b
u1 - 8
38 16
u2 - 1
33 9
x 1
30 6
u4 0 2 8
−z - 5
33 -30
Szimplex módszer – p. 12/15
A szimplex módszerAz elso javított táblázathoz tartozó program:
u3 y ~b
u1 - 8
38 16
u2 - 1
33 9
x 1
30 6
u4 0 2 8
−z - 5
33 -30
A táblázatból leolvasott eredmények:
x = 6 y = 0 z = 30
u1 = 16 u2 = 9 u3 = 0 u4 = 8
Szimplex módszer – p. 12/15
A szimplex módszerAz elso javított táblázathoz tartozó program:
u3 y ~b
u1 - 8
38 16
u2 - 1
33 9
x 1
30 6
u4 0 2 8
−z - 5
33 -30
A táblázatból leolvasott eredmények:
x = 6 y = 0 z = 30
u1 = 16 u2 = 9 u3 = 0 u4 = 8
A táblázat jelentése: az elso termékbol 6, míg a másodikból 0 darabot állítunk elo. Ekkor a 3.
nyersanyag teljesen elfogy, az elso nyersanyagból 16, a másodikból 9, a negyedikbol 8 egység
marad. Ilyen termelési program mellett a bevétel 30 egység.Ezt a programot még lehet javítani,
mert tudunk generáló elemet választani. Az új táblázat:
Szimplex módszer – p. 12/15
A szimplex módszerA második javított táblázathoz tartozó program:
u3 u1~b
y - 1
3
1
82
u22
3- 3
83
x 1
30 6
u42
3- 2
84
−z - 2
3- 3
8-36
Szimplex módszer – p. 13/15
A szimplex módszerA második javított táblázathoz tartozó program:
u3 u1~b
y - 1
3
1
82
u22
3- 3
83
x 1
30 6
u42
3- 2
84
−z - 2
3- 3
8-36
Tovább már nem lehet generáló elemet választani, hiszen a célfüggvény együtthatói negatív
számok. A kapott értékek optimálisak. Az eredmény:
x = 6 y = 2 zmax = 36
u1 = 0 u2 = 3 u3 = 0 u4 = 4
Szimplex módszer – p. 13/15
A szimplex módszerA második javított táblázathoz tartozó program:
u3 u1~b
y - 1
3
1
82
u22
3- 3
83
x 1
30 6
u42
3- 2
84
−z - 2
3- 3
8-36
Tovább már nem lehet generáló elemet választani, hiszen a célfüggvény együtthatói negatív
számok. A kapott értékek optimálisak. Az eredmény:
x = 6 y = 2 zmax = 36
u1 = 0 u2 = 3 u3 = 0 u4 = 4
A táblázat jelentése: az elso termékbol 6, míg a másodikból 2 darabot állítunk elo. Ekkor az 1. és
a 3. nyersanyag teljesen elfogy, a második nyersanyagból 3,a negyedikbol 4 egység marad. Ilyen
termelési program mellett a maximális bevétel 36 egység.
Szimplex módszer – p. 13/15
PéldaFeladat. Oldja meg alábbi az lineáris programozási feladatot!
x1, x2, x3 ≥ 0
x1 + x3 ≤ 40
−x2 + x3 ≤ 10
x1 + x2 − x3 ≤ 18
z = 4x1 + 3x3 → max
Megoldás.
Szimplex módszer – p. 14/15
PéldaFeladat. Oldja meg alábbi az lineáris programozási feladatot!
x1, x2, x3 ≥ 0
x1 + x3 ≤ 40
−x2 + x3 ≤ 10
x1 + x2 − x3 ≤ 18
z = 4x1 + 3x3 → max
Megoldás.
x1 x2 x3 b
u1 1 0 1 40
u2 0 -1 1 10
u3 1 1 -1 18
−z 4 0 3 0
Szimplex módszer – p. 14/15
PéldaFeladat. Oldja meg alábbi az lineáris programozási feladatot!
x1, x2, x3 ≥ 0
x1 + x3 ≤ 40
−x2 + x3 ≤ 10
x1 + x2 − x3 ≤ 18
z = 4x1 + 3x3 → max
Megoldás.
x1 x2 x3 b
u1 1 0 1 40
u2 0 -1 1 10
u3 1 1 -1 18
−z 4 0 3 0
u3 x2 x3 b
u1 -1 -1 2 22
u2 0 -1 1 10
x1 1 1 -1 18
−z -4 -4 7 -72
Szimplex módszer – p. 14/15
Példau3 x2 u2 b
u1 -1 1 -2 2
x3 0 -1 1 10
x1 1 0 1 28
−z -4 3 -7 -142
Szimplex módszer – p. 15/15
Példau3 x2 u2 b
u1 -1 1 -2 2
x3 0 -1 1 10
x1 1 0 1 28
−z -4 3 -7 -142
u3 u1 u2 b
x2 -1 1 -2 2
x3 -1 1 -1 12
x1 1 0 1 28
−z -1 -3 -1 -148
Szimplex módszer – p. 15/15
Példau3 x2 u2 b
u1 -1 1 -2 2
x3 0 -1 1 10
x1 1 0 1 28
−z -4 3 -7 -142
u3 u1 u2 b
x2 -1 1 -2 2
x3 -1 1 -1 12
x1 1 0 1 28
−z -1 -3 -1 -148
A célfüggvény a maximumát az−→x = (28, 2, 12)T helyen veszi felzmax = 148 értékkel, míg
az−→u =−→0 .
Szimplex módszer – p. 15/15