Upload
others
View
20
Download
0
Embed Size (px)
Citation preview
Lineáris programozási (LP) feladatok megoldása szimplex módszerrel
A lineáris programozási feladatokban mind a célfüggvény, mind a feltételeket definiáló
függvények az 𝑥1, 𝑥2, … , 𝑥𝑛 döntési változók lineáris függvényei. A korlátozó feltételek
lehetnek lineáris egyenlőség vagy egyenlőtlenség formájában megadva, és az egyes
döntési változók előjelére is lehetnek megkötések. Így azonban még mindig rengeteg
féle variációja lehet az LP-feladatoknak, melyekre mind különböző megoldási
módszereket kellene konstruálnunk. Szerencsére a feladat optimális megoldásának
létezését és meghatározását illetően elegendő egy speciális LP-feladat, az
úgynevezett standard feladat vizsgálatára szorítkozni.
Egy lineáris programozási feladat standard alakja alatt az alábbi módon való
megadását értjük:
𝐴�̅� = �̅� (�̅� ≥ 0̅)
�̅� ≥ 0̅
𝑐̅𝑇�̅� → 𝑚𝑎𝑥
ahol 𝐴 a feltételeket definiáló együtthatók mátrixa,
�̅� a döntési változók vektora,
�̅� a feltételek jobboldalán álló konstansok vektora,
𝑐̅ a célfüggvény együtthatóiból álló vektor,
0̅ zérusokból álló oszlopvektor.
Általános alakú LP-feladat standard alakúra transzformálása
1. Minimumfeladat esetén a célfüggvény együtthatóinak (-1)-el való szorzásával
alakítjuk át a feladatot maximumfeladattá, ugyanis az 𝑓(𝑥) célfüggvénynek abban a
pontban van minimuma, ahol a −𝑓(𝑥) célfüggvénynek maximuma.
2. Ha a k-adik feltétel jobboldalán álló bk konstans negatív, a teljes feltételi egyenlőség
vagy egyenlőtlenség (-1)-szeresét vesszük.
3. Ha az 𝑥𝑖 döntési változóra nincs előírva a nemnegativitási feltétel, akkor ezt a
változót két, újonnan bevezetett, nemnegatív változó különbségeként írjuk fel:
𝑥𝑖 = 𝑥𝑖′ − 𝑥𝑖′′ alakban.
Ha az 𝑥𝑗 ≤ 0 feltétel van előírva, akkor a változó ellentettjével számolunk, az 𝑥�̃� = −𝑥𝑗
nemnegatív változó bevezetésével.
4. Ha a k-adik korlátozó feltétel ≤ típusú egyenlőtlenséggel adott akkor a feltétel
baloldalához egy nemnegatív 𝑢𝑘 hiányváltozót adunk, hogy egyenlőséget kapjunk.
Ha az l-edik korlátozó feltétel ≥ egyenlőtlenséggel adott, akkor egy nemnegatív 𝑣
feleslegváltozó kivonásával alakítjuk a feltételt egyenlőséggé.
Pivotelem-választás a szimplex táblában
1. A pivotelem csak pozitív szám lehet.
2) Olyan oszlopból válasszunk pivotelemet, ahol a célfüggvény sorában pozitív elem
áll. (Az ilyen elem feletti vektor bázisba hozásával növelhető a célfüggvényérték.)
3) Ha eldöntöttük, hogy melyik oszlopból választunk pivotelemet, akkor az oszlopban
azt az elemet válasszuk, ahol teljesül a szűk keresztmetszet kritérium, azaz az adott
sorban álló jobboldali konstans és a választandó pivotelem hányadosa a lehető
legkisebb.
Ha a választásra több lehetőség is adódik, akkor próbáljuk a kevesebb számolással
járó változatot választani.
A kétfázisú szimplex módszer
A normál LP feladatok esetén (melyek csak ≤ típusú feltételeket tartalmaznak)
rendelkezésünkre áll egy kiinduló, lehetséges bázismegoldás az 𝑢𝑘 hiányváltozókból,
így a szimplex algoritmus a szimplex tábla felírása után azonnal elkezdhető. Az
általános, standard alakban felírt LP-feladatok esetén ezt a kezdeti bázismegoldást
mesterséges változók és mesterséges célfüggvény segítségével állítjuk elő a kétfázisú
szimplex módszer első fázisában.
A kiinduló bázismegoldás megtalálása érdekében u*-gal jelölt mesterséges változókat
adunk azon feltételek baloldalához, ahol = vagy ≥ jel szerepel. A mesterséges
változókra szintén megköveteljük a nemnegativitást, és bevezetünk egy z*
másodlagos célfüggvényt, az u* változókat tartalmazó sorok összegeként. Először a
másodlagos célfüggvény szerint optimalizálunk, arra törekedve, hogy minden u*
változó kikerüljön a bázisból. Ha ez sikerül, és a másodlagos célfüggvény optimuma
0, akkor az azt jelenti, hogy megkaptuk az eredeti feladat egy lehetséges megoldását,
amelyből kiindulva a második fázisban meghatározhatjuk az eredeti feladat optimális
megoldását. Ha a másodlagos célfüggvény optimuma nem 0, akkor az eredeti
feladatnak nincs lehetséges megoldása, így optimális megoldása sem lehet.
A továbbiakban néhány normál és általános LP feladat szimplex algoritmussal történő
részletes megoldását közöljük. A feladatgyűjtemény szöveges példákat is tartalmaz,
így az LP feladatok modelljének felírását is gyakorolhatja az olvasó.
A feladatok egy részének forrása Dr. Nagy Tamás Operációkutatás c. egyetemi
jegyzete. A feladatok mellett megjelöltük az oldalszámot és a példa betűjelét.
1. feladat (157a)
2𝑥1 + 𝑥2 ≤ 2
− 𝑥1 + 𝑥2 ≤ 1
𝑥1, 𝑥2 ≥ 0
2𝑥1 + 6𝑥2 → 𝑚𝑎𝑥
Ez egy normál feladat, azaz a szimplex tábla már tartalmaz egy kezdeti bázis-megoldást (u1 =2, u2 =1). Az x2 oszlopában kezdjük a pivotálást, mert ott biztosan 1 a pivotelem.
x1 x2 b
u1 2 1 2
u2 -1 1 1
-z 2 6 0
Most csak egyféleképpen választhatunk pivotelemet.
x1 u2 b
u1 3 -1 1
x2 -1 1 1
-z 8 -6 -6
u1 u2 b
x1 1/3 - 1/3 1/3
x2 1/3 2/3 4/3
-z -8/3 -10/3 -26/3
Optimális táblát kaptunk, az optimális megoldás: 𝑥1 =1
3; 𝑥2 =
4
3.
A célfüggvény maximuma: 𝑧 =26
3.
2. feladat (157k)
𝑥1 + 2 𝑥2 + 4𝑥3 − 𝑥4 ≤ 6
−𝑥3 + 𝑥4 ≤ 12
𝑥1 + 𝑥3 + 𝑥4 ≤ 4
𝑥1, 𝑥2, 𝑥3, 𝑥4 ≥ 0
2𝑥1 + 𝑥2 − 3𝑥3 + 5𝑥4 → 𝑚𝑎𝑥
A szimplex táblában érdemes a pivotálást x2 oszlopában kezdeni, mert két nullát is
tartalmaz az egyetlen lehetséges pivotelem mellett, így kevesebb számolásra van
szükség (a nullák sorai változatlanok maradnak).
x1 x2 x3 x4 b
u1 1 2 4 -1 6
u2 0 0 -1 1 12
u3 1 0 1 1 4
-z 2 1 -3 5 0
A következő lépésben x1 vagy x4 hozható a bázisba, u3 helyett. Az x4 választása
azonban kedvezőbb, mert így rögtön optimális táblát kapunk.
x1 u1 x3 x4 b
x2 0,5 0,5 2 -0,5 3
u2 0 0 -1 1 12
u3 1 0 1 1 4
-z 1,5 -0,5 -5 5,5 -3
Az optimális tábla:
x1 u1 x3 u3 b
x2 1 0,5 2,5 0,5 5
u2 -1 0 -2 -1 8
x4 1 0 1 1 4
-z -4 -0,5 -10,5 -5,5 -25
Az optimális megoldás: 𝑥1 = 0; 𝑥2 = 5; 𝑥3 = 0; 𝑥4 = 4.
A célfüggvény maximuma: 𝑧 = 25.
3. feladat (157h)
𝑥1 + 𝑥2 ≤ 3
0 ≤ 𝑥1 ≤ 2
0 ≤ 𝑥2 ≤ 2
𝑥1 + 𝑥2 → 𝑚𝑎𝑥
A feladatban szereplő változók felülről is konstans korláttal rendelkeznek. Az egyedi
korlátok kezelésére léteznek különböző módszerek, de a felső korlátokat külön
feltételbe is foglalhatjuk a feladat átfogalmazásával:
𝑥1 + 𝑥2 ≤ 3
𝑥1 ≤ 2
𝑥2 ≤ 2
𝑥1, 𝑥2 ≥ 0
𝑥1 + 𝑥2 → 𝑚𝑎𝑥
Így egy normál feladatot kaptunk, melynek szimplex táblája az alábbi:
x1 x2 b
u1 1 1 3
u2 1 0 2
u3 0 1 2
-z 1 1 0
Először az x1 változót hozzuk a bázisba:
u2 x2 b
u1 -1 1 1
x1 1 0 2
u3 0 1 2
-z -1 1 -2
Majd az x2 változót:
u2 u1 b
x2 -1 1 1
x1 1 0 2
u3 1 -1 1
-z 0 -1 -3
A célfüggvény sora már nem tartalmaz pozitív elemet, így a táblázatból kiolvasható
megoldás ( 𝑥1 = 2; 𝑥2 = 1) a feladat egy optimális megoldása. A célfüggvény sorában
szereplő 0 érték azonban azt jelenti, hogy alternatív optimum van. Valóban, ha az u2
változót bevisszük a bázisba az u3 változó helyett, az alábbi táblázatot kapjuk:
u3 u1 b
x2 1 0 2
x1 -1 1 1
u2 1 -1 1
-z 0 -1 -3
Ebből látható, hogy a feladat egy másik optimális megoldása: 𝑥1 = 1; 𝑥2 = 2.
Valójában a feladatnak végtelen sok optimális megoldása van, a két feltárt megoldást
összekötő szakasz pontjai. Ezt a szakaszt a két végpont konvex lineáris
kombinációjaként adhatjuk meg, a következő módon:
𝜆(1; 2) + (1 − 𝜆)(2; 1) ahol 𝜆 ∈ [0; 1]
A maximum értéke minden optimális megoldás esetén: 𝑧 = 3.
4. feladat
𝑥2 + 𝑥3 ≤ 160
−𝑥1 + 𝑥2 + 𝑥3 = 100
𝑥1 + 𝑥2 + 𝑥3 ≥ 180
𝑥1, 𝑥2, 𝑥3 ≥ 0
2𝑥1 + 6𝑥2 + 2𝑥3 → 𝑚𝑎𝑥
Általános feladatról van szó, hiszen egyenlőség és ≥ típusú egyenlőtlenség is van a
feltételek között. Ez utóbbi feltétel miatt szükségünk van egy v3 segédváltozóra a
standard alakra hozáshoz. Kétfázisú szimplex módszert alkalmazunk, az első fázishoz
a második és a harmadik feltétel miatt két mesterséges változót vezetünk be.
A szimplex táblában az első átalakítás az x2 változó bázisba vitele:
x1 x2 x3 v3 b
u1 0 1 1 0 160
u2* -1 1 1 0 100
u3* 1 1 1 -1 180
-z 2 6 2 0 0
z* 0 2 2 -1 280
Ezután az x1 változó következik:
x1 u2* x3 v3 b
u1 1 -1 0 0 60
x2 -1 1 1 0 100
u3* 2 -1 0 -1 80
-z 8 -6 -4 0 -600
z* 2 -2 0 -1 80
Ezzel az átalakítással vége az első fázisnak, mert a mesterséges célfüggvény értéke
0 lett. A továbbiakban nincs szükség a mesterséges célfüggvény sorára (valójában a
mesterséges változók oszlopait is törölhetjük), az eredeti célfüggvény alapján
pivotálunk tovább, a v3 változót visszük a bázisba.
u3* u2* x3 v3 b
u1 - 1/2 - 1/2 0 1/2 20
x2 1/2 1/2 1 - 1/2 140
x1 1/2 - 1/2 0 - 1/2 40
-z -4 -2 -4 4 -920
z* -1 -1 0 0 0
x3 u1 b
v3 0 2 40
x2 1 1 160
x1 0 1 60
-z -4 -8 -1080
A tábla optimális.
Az optimális megoldás: 𝑥1 = 60; 𝑥2 = 160; 𝑥3 = 0.
A célfüggvény maximuma: 𝑧 = 1080.
5. feladat (158t)
2𝑥1 + 6𝑥2 + 𝑥3 + 𝑥4 ≤ 30
𝑥1 + 2𝑥2 + 𝑥3 = 10
−𝑥1 + 𝑥2 − 𝑥3 + 𝑥4 ≥ 4
𝑥1, 𝑥2, 𝑥3, 𝑥4 ≥ 0
𝑥1 + 2𝑥2 − 13𝑥3 + 4𝑥4 → 𝑚𝑎𝑥
Általános feladatról van szó, hiszen egyenlőség és ≥ típusú egyenlőtlenség is van a
feltételek között. Ez utóbbi feltétel miatt szükségünk van egy v3 segédváltozóra a
standard alakra hozáshoz. Kétfázisú szimplex módszert alkalmazunk, az első fázishoz
a második és a harmadik feltétel miatt két mesterséges változót vezetünk be.
A szimplex táblában először az x4 változó szerint pivotálunk, mert 1 a megfelelő
pivotelem és 0 is van a pivotelem oszlopában.
x1 x2 x3 x4 v3 b
u1 2 6 1 1 0 30
u2* 1 2 1 0 0 10
u3* -1 1 -1 1 -1 4
-z 1 2 -13 4 0 0
z* 0 3 0 1 -1 14
Ezután az x3 változót visszük a bázisba, mert szintén 1 a pivotelem, és két 0 is van a
sorában.
x1 x2 x3 u3* v3 b
u1 3 5 2 -1 1 26
u2* 1 2 1 0 0 10
x4 -1 1 -1 1 -1 4
-z 5 -2 -9 -4 4 -16
z* 1 2 1 -1 0 10
Ezzel az első fázis véget ért, mert a mesterséges célfüggvény értéke 0.
x1 x2 u2* u3* v3 b
u1 1 1 -2 -1 1 6
x3 1 2 1 0 0 10
x4 0 3 1 1 -1 14
-z 14 16 9 -4 4 74
z* 0 0 -1 -1 0 0
Elhagyjuk a mesterséges célfüggvény sorát, valamint a mesterséges változók
oszlopait. x1 oszlopában választunk pivotelemet.
x1 x2 v3 b
u1 1 1 1 6
x3 1 2 0 10
x4 0 3 -1 14
-z 14 16 4 74
Ezután x2-t visszük a bázisba:
u1 x2 v3 b
x1 1 1 1 6
x3 -1 1 -1 4
x4 0 3 -1 14
-z -14 2 -10 -10
A kapott tábla optimális.
u1 x3 v3 b
x1 2 -1 2 2
x2 -1 1 -1 4
x4 3 -3 2 2
-z -12 -2 -8 -18
Az optimális megoldás: 𝑥1 = 2; 𝑥2 = 4; 𝑥3 = 0; 𝑥4 = 2.
A célfüggvény maximuma: 𝑧 = 18.
6. feladat (157f)
𝑥1 + 𝑥3 − 𝑥4 = 30
2𝑥1 − 3𝑥2 + 𝑥3 + 2𝑥4 ≤ 250
4𝑥1 + 2𝑥2 + 2𝑥3 + 𝑥4 ≥ 125
𝑥1, 𝑥3, 𝑥4 ≥ 0; 𝑥2 ≤ 0
5𝑥1 − 4𝑥2 + 8𝑥3 + 7𝑥4 → 𝑚𝑖𝑛
A standard alakra hozáshoz a harmadik egyenlőtlenségi feltétel miatt szükségünk van
egy v3 segédváltozóra, valamint az x2 változó helyett mindenütt a (-1)-szeresével
számolunk. Az első és a harmadik feltétel miatt két mesterséges változót vezetünk be.
Mivel minimumfeladatról van szó, a célfüggvény együtthatóinak (-1)-szeresét írjuk a
táblázatba.
A szimplex tábla alakja a következő:
x1 x2 x3 x4 v3 b
u1* 1 0 1 -1 0 30
u2 2 3 1 2 0 250
u3* 4 -2 2 1 -1 125
-z -5 -4 -8 -7 0 0
z* 5 -2 3 0 -1 155
Először az x1 változót visszük a bázisba.
u1* x2 x3 x4 v3 b
x1 1 0 1 -1 0 30
u2 -2 3 -1 4 0 190
u3* -4 -2 -2 5 -1 5
-z 5 -4 -3 -12 0 150
z* -5 -2 -2 5 -1 5
Most x4 oszlopából kell pivotelemet választani.
u1* x2 x3 u3* v3 b
x1 0,2 -0,4 0,6 0,2 -0,2 31
u2 1,2 4,6 0,6 -0,8 0,8 186
x4 -0,8 -0,4 -0,4 0,2 -0,2 1
-z -4,6 -8,8 -7,8 2,4 -2,4 162
z* -1 0 0 -1 0 0
Az első fázis véget ért, és egyúttal a második is. A tábla optimális.
Az optimális megoldás: 𝑥1 = 31; 𝑥2 = 0; 𝑥3 = 0; 𝑥4 = 1.
A célfüggvény minimuma: 𝑧 = 162.
7. feladat (158o)
𝑥1 + 4𝑥2 + 𝑥3 + 2𝑥4 ≤ 90
3𝑥2 + 𝑥4 ≤ 50
𝑥1 + 2𝑥2 + 2𝑥4 = 60
𝑥1 + 𝑥3 = 80
𝑥1, 𝑥2, 𝑥3, 𝑥4 ≥ 0
4𝑥1 + 2𝑥2 + 𝑥3 + 9𝑥4 → 𝑚𝑎𝑥
A két egyenlőségi feltétel miatt két mesterséges változót vezetünk be.
A szimplex táblában először az x1 változó szerint pivotálunk.
x1 x2 x3 x4 b
u1 1 4 1 2 90
u2 0 3 0 1 50
u3* 1 2 0 2 60
u4* 1 0 1 0 80
-z 4 2 1 9 0
z* 2 2 1 2 140
Ezután az x3 változót visszük a bázisba.
u3* x2 x3 x4 b
u1 -1 2 1 0 30
u2 0 3 0 1 50
x1 1 2 0 2 60
u4* -1 -2 1 -2 20
-z -4 -6 1 1 -240
z* -2 -2 1 -2 20
Ezzel az első fázis véget ért:
u3* x2 u4* x4 b
u1 0 4 -1 2 10
u2 0 3 0 1 50
x1 1 2 0 2 60
x3 -1 -2 1 -2 20
-z -3 -4 -1 3 -260
z* -1 0 -1 0 0
A mesterséges célfüggvény sorát, valamint a mesterséges változók oszlopait elhagyhatjuk:
x2 x4 b
u1 4 2 10
u2 3 1 50
x1 2 2 60
x3 -2 -2 20
-z -4 3 -260
Az x4 változó bázisba hozásával optimális táblát kapunk:
x2 u1 b
x4 2 0,5 5
u2 1 -0,5 45
x1 -2 -1 50
x3 2 1 30
-z -10 -1,5 -275
Az optimális megoldás: 𝑥1 = 50; 𝑥2 = 0; 𝑥3 = 30; 𝑥4 = 5.
A célfüggvény maximuma: 𝑧 = 275.
8. feladat (159z)
𝑥1 + 2𝑥2 = 5
−𝑥1 + 5𝑥2 ≥ 3
4𝑥1 + 7𝑥2 ≤ 8
𝑥1 tetszőleges, 𝑥2 ≥ 0
5𝑥1 + 6𝑥2 → 𝑚𝑎𝑥
Az 𝑥1 változóra nincs előjelmegkötés, ezért két nemnegatív változó különbségeként
írjuk fel: 𝑥1 = 𝑥1′ − 𝑥1
′′, ( 𝑥1′ ≥ 0 , 𝑥1
′′ ≥ 0). Az új változók bevezetése után a feladat
alakja:
𝑥1′ − 𝑥1
′′ + 2𝑥2 = 5
−𝑥1′ + 𝑥1
′′ + 5𝑥2 ≥ 3
4𝑥1′ − 4 𝑥1
′′ + 7𝑥2 ≤ 8
𝑥1′
, 𝑥1′′, 𝑥2 ≥ 0
5𝑥1′ − 5 𝑥1
′′ + 6𝑥2 → 𝑚𝑎𝑥
A standard alakra hozáshoz a második egyenlőtlenségi feltétel miatt szükségünk van
egy v2 segédváltozóra. Az első és a második feltétel miatt két mesterséges változót
vezetünk be.
A szimplex módszer lépései az alábbiak:
x'1 x''1 x2 v2 b
u1* 1 -1 2 0 5
u2* -1 1 5 -1 3
u3 4 -4 7 0 8
-z 5 -5 6 0 0
z* 0 0 7 -1 8
x'1 x''1 u2* v2 b
u1* 1,4 -1,4 -0,4 0,4 3,8
x2 -0,2 0,2 0,2 -0,2 0,6
u3 5,4 -5,4 -1,4 1,4 3,8
-z 6,2 -6,2 -1,2 1,2 -3,6
z* 1,4 -1,4 -1,4 0,4 3,8
x'1 x''1 u2* u3 b
u1* - 1/7 1/7 0 - 2/7 19/7
x2 4/7 - 4/7 0 1/7 8/7
v2 27/7 -27/7 -1 5/7 19/7
-z 11/7 -11/7 0 - 6/7 -48/7
z* - 1/7 1/7 -1 - 2/7 19/7
x'1 u1* u2* u3 b
x''1 -1 7 0 -2 19
x2 0 4 0 -1 12
v2 0 27 -1 -7 76
-z 0 11 0 -4 23
z* 0 -1 -1 0 0
Az első fázis véget ért, és egyúttal a második is (a célfüggvény értéke nem javítható
tovább). A tábla optimális.
Az optimális megoldás: 𝑥1′ = 0; 𝑥1
′′ = 19 és ezért 𝑥1 = 0 − 19 = −19; 𝑥2 = 12.
A célfüggvény maximuma: 𝑧 = −23.
9. feladat (157b)
𝑥1 − 2𝑥2 + 𝑥3 ≤ 8
3𝑥1 + 𝑥2 ≤ −18
2𝑥1 + 𝑥2 − 2 𝑥3 ≤ −4
𝑥1, 𝑥2, 𝑥3 ≥ 0
2𝑥1 + 𝑥2 − 5𝑥3 → 𝑚𝑎𝑥
A standard alakú LP feladat jobboldalán nem állhatnak negatív számok, ezért a
második és harmadik feltételt (-1)-gyel végig kell szoroznunk. A feladat új alakja:
𝑥1 − 2𝑥2 + 𝑥3 ≤ 8
−3𝑥1 − 𝑥2 ≥ 18
−2𝑥1 − 𝑥2 + 2 𝑥3 ≥ 4
𝑥1, 𝑥2, 𝑥3 ≥ 0
2𝑥1 + 𝑥2 − 5𝑥3 → 𝑚𝑎𝑥
A szimplex tábla két mesterséges változót tartalmaz a második és harmadik feltétel
miatt, valamint be kell vezetnünk a v2 és v3 változókat is a standard alakra hozáshoz.
Az induló szimplex tábla:
x1 x2 x3 v2 v3 b
u1 1 -2 1 0 0 8
u2* -3 -1 0 -1 0 18
u3* -2 -1 2 0 -1 4
-z 2 1 -5 0 0 0
z* -5 -2 2 -1 -1 22
Egyedül az x3 változóval kezdhetjük a pivotálást. Az alábbi táblát kapjuk:
x1 x2 u3* v2 v3 b
u1 2 -1,5 -0,5 0 0,5 6
u2* -3 -1 0 -1 0 18
x3 -1 -0,5 0,5 0 -0,5 2
-z -3 -1,5 2,5 0 -2,5 10
z* -3 -1 -1 -1 0 18
Mivel z* sorában nincs pozitív szám, a mesterséges célfüggvény értékét nem tudjuk
0-ra levinni. Ez azt jelenti, hogy a feladatnak nincs nemnegatív bázismegoldása (amit
az első fázis végeztével kapnánk), így optimális megoldás sincs.
10. feladat (157d)
8𝑥1 + 𝑥2 ≥ 8
2𝑥1 + 𝑥2 ≥ 6
𝑥1 + 3𝑥2 ≥ 6
𝑥1 + 6𝑥2 ≥ 8
𝑥1, 𝑥2 ≥ 0
3𝑥1 + 2𝑥2 → 𝑚𝑖𝑛
Mind a négy feltétel ≥ típusú, ezért a standard alakra hozáshoz minden feltételi sorból
ki kell vonnunk egy v változót. A feladatot két fázisban oldjuk meg, minden feltételhez
hozzá kell adnunk egy mesterséges u* változót. Mivel minimumfeladatról van szó, a
célfüggvény (-1)-szeresével számolunk.
Az egymás után számított szimplex táblák az alábbiak:
x1 x2 v1 v2 v3 v4 b
u1* 8 1 -1 0 0 0 8
u2* 2 1 0 -1 0 0 6
u3* 1 3 0 0 -1 0 6
u4* 1 6 0 0 0 -1 8
-z -3 -2 0 0 0 0 0
z* 12 11 -1 -1 -1 -1 28
u1* x2 v1 v2 v3 v4 b
x1 0,125 0,125 -0,125 0 0 0 1
u2* -0,25 0,75 0,25 -1 0 0 4
u3* -0,125 2,875 0,125 0 -1 0 5
u4* -0,125 5,875 0,125 0 0 -1 7
-z 0,375 -1,625 -0,375 0 0 0 3
z* -1,5 9,5 0,5 -1 -1 -1 16
u1* x2 u2* v2 v3 v4 b
x1 0 0,5 0,5 -0,5 0 0 3
v1 -1 3 4 -4 0 0 16
u3* 0 2,5 -0,5 0,5 -1 0 3
u4* 0 5,5 -0,5 0,5 0 -1 5
-z 0 -0,5 1,5 -1,5 0 0 9
z* -1 8 -2 1 -1 -1 8
u1* x2 u2* u3* v3 v4 b
x1 0 3 0 1 -1 0 6
v1 -1 23 0 8 -8 0 40
v2 0 5 -1 2 -2 0 6
u4* 0 3 0 -1 1 -1 2
-z 0 7 0 3 -3 0 18
z* -1 3 -1 -2 1 -1 2
u1* u4* u2* u3* v3 v4 b
x1 0 -1 0 2 -2 1 4
v1 -1 -23/3 0 47/3 -47/3 23/3 74/3
v2 0 -5/3 -1 11/3 -11/3 5/3 8/3
x2 0 1/3 0 - 1/3 1/3 - 1/3 2/3
-z 0 -7/3 0 16/3 -16/3 7/3 40/3
z* -1 -1 -1 -1 0 0 0
Az első fázis végére értünk, töröljük a mesterséges változókat. Még szükség van a v4
és v2 változók cseréjére.
v3 v2 b
x1 0,2 -0,6 2,4
v1 1,2 -4,6 12,4
v4 -2,2 0,6 1,6
x2 -0,4 0,2 1,2
-z -0,2 -1,4 9,6
Optimális táblát kaptunk, az optimális megoldás: 𝑥1 = 2,4; 𝑥2 = 1,2.
A célfüggvény minimuma: 𝑧 = 9,6.
11. feladat (159w)
𝑥1 + 2𝑥2 + 𝑥3−3𝑥4 = 12
𝑥1 + 3𝑥2 + 2𝑥3 − 5𝑥4 = 13
𝑥1, 𝑥2, 𝑥3, 𝑥4 ≥ 0
6𝑥1 + 7𝑥2 + 8𝑥3 − 14𝑥4 → 𝑚𝑖𝑛
A két egyenlőségi feltétel miatt két mesterséges változóval számolunk az első
fázisban. Mivel minimumfeladatról van szó, a célfüggvény (-1)-szeresét írjuk a
táblázatba.
x1 x2 x3 x4 b
u1* 1 2 1 -3 12
u2* 1 3 2 -5 13
-z -6 -7 -8 14 0
z* 2 5 3 -8 25
Az x1 változóval kezdjük a bázisvektorcseréket, mert így 1 a pivotelem.
u1* x2 x3 x4 b
x1 1 2 1 -3 12
u2* -1 1 1 -2 1
-z 6 5 -2 -4 72
z* -2 1 1 -2 1
Ezután x2-t hozzuk a bázisba.
u1* u2* x3 x4 b
x1 3 -2 -1 1 10
x2 -1 1 1 -2 1
-z 11 -5 -7 6 67
z* -1 -1 0 0 0
Az első fázis véget ért, de a tábla még nem optimális. x4-et kell a bázisba hozni. A
bázisvektorcsere és a mesterséges változók törlése után az alábbi, optimális táblát
kaptuk:
x3 x1 b
x4 -1 1 10
x2 -1 2 21
-z -1 -6 7
Az optimális megoldás: 𝑥1 = 0; 𝑥2 = 21; 𝑥3 = 0; 𝑥4 = 10.
A célfüggvény minimuma: 𝑧 = 7.
12. feladat
𝑥1 + 𝑥2 + 4𝑥3 ≥ 10
𝑥1 + 3𝑥2 + 𝑥3 = 8
𝑥1, 𝑥2, 𝑥3 ≥ 0
𝑥1 + 2𝑥2 + 𝑥3 → 𝑚𝑖𝑛
Az első feltétel miatt beiktatjuk a v1 feleslegváltozót. Két mesterséges változóra van
szükség a szimplex módszer első fázisához. Mivel minimumfeladatról van szó, a
célfüggvény (-1)-szeresét írjuk az induló táblázatba.
x1 x2 x3 v1 b
u1* 1 1 4 -1 10
u2* 1 3 1 0 8
-z -1 -2 -1 0 0
z* 2 4 5 -1 18
A pivotálást x1-el kezdjük, hogy 1 legyen a pivotelem.
u2* x2 x3 v1 b
u1* -1 -2 3 -1 2
x1 1 3 1 0 8
-z 1 1 0 0 8
z* -2 -2 3 -1 2
Most csak az x3 változót hozhatjuk a bázisba.
u2* x2 u1* v1 b
x3 - 1/3 - 2/3 1/3 - 1/3 2/3
x1 4/3 11/3 - 1/3 1/3 22/3
-z 1 1 0 0 8
z* -1 0 -1 0 0
Az első fázis végére értünk. Töröljük a mesterséges változókat és folytatjuk a pivotálást
az x2 változó bázisba vitelével.
x2 v1 b
x3 - 2/3 - 1/3 2/3
x1 11/3 1/3 22/3
-z 1 0 8
x1 v1 b
x3 2/11 - 3/11 2
x2 3/11 1/11 2
-z - 3/11 - 1/11 6
Az optimális megoldás: 𝑥1 = 0; 𝑥2 = 2; 𝑥3 = 2.
A célfüggvény minimuma: 𝑧 = 6.
13. feladat
𝑥1 + 2𝑥2 + 𝑥3 = 16
𝑥1 + 𝑥2 + 2 𝑥3 ≤ 17
𝑥1, 𝑥2, 𝑥3 ≥ 0
𝑥1 − 𝑥2 + 3𝑥3 → 𝑚𝑎𝑥
Az egyenlőségi feltétel miatt szükségünk van egy mesterséges változóra.
Az induló szimplex tábla az alábbi alakú:
x1 x2 x3 b
u1* 1 2 1 16
u2 1 1 2 17
-z 1 -1 3 0
z* 1 2 1 16
Az x1 változót hozzuk be először a bázisba, amivel a szimplex módszer első fázisa
véget is ér.
u1* x2 x3 b
x1 1 2 1 16
u2 -1 -1 1 1
-z -1 -3 2 -16
z* -1 0 0 0
Töröljük a mesterséges változókat és folytatjuk a pivotálást az x3 változó bázisba
vitelével.
x2 x3 b
x1 2 1 16
u2 -1 1 1
-z -3 2 -16
Optimális táblát kaptunk:
x2 u2 b
x1 3 -1 15
x3 -1 1 1
-z -1 -2 -18
Az optimális megoldás: 𝑥1 = 15; 𝑥2 = 0; 𝑥3 = 1.
A célfüggvény maximuma: 𝑧 = 18.
14. feladat
2𝑦1 + 𝑦2 ≥ 1
𝑦1 + 𝑦2 − 𝑦3 ≥ 3
−𝑦1 + 2𝑦3 ≥ 2
𝑦1, 𝑦2, 𝑦3 ≥ 0
10𝑦1 + 6𝑦2 + 16𝑦3 → 𝑚𝑖𝑛
Ha észrevesszük, hogy a feladat duálisa egy normál feladat, akkor nincs szükség a
kétfázisú szimplex módszerre. A duális probléma:
2𝑥1 + 𝑥2 − 𝑥3 ≤ 10
𝑥1 + 𝑥2 ≤ 6
−𝑥2 + 2𝑥3 ≤ 16
𝑥1, 𝑥2, 𝑥3 ≥ 0
𝑥1 + 3𝑥2 + 2𝑥3 → 𝑚𝑎𝑥
Az induló szimplex tábla:
x1 x2 x3 b
u1 2 1 -1 10
u2 1 1 0 6
u3 0 -1 2 16
-z 1 3 2 0
Az x2 változót hozzuk először a bázisba.
x1 u2 x3 b
u1 1 -1 -1 4
x2 1 1 0 6
u3 1 1 2 22
-z -2 -3 2 -18
Az x3 változó behozásával optimális táblát kapunk:
x1 u2 u3 b
u1 1,5 -0,5 0,5 15
x2 1 1 0 6
x3 0,5 0,5 0,5 11
-z -3 -4 -1 -40
A duális feladat optimális megoldása: 𝑥1 = 0; 𝑥2 = 6; 𝑥3 = 11.
Az eredeti (primál) feladat optimális megoldását a célfüggvény sorában találhatjuk, az
ui változók alatt, ellenkező előjellel: 𝑦1 = 0; 𝑦2 = 4; 𝑦3 = 1.
Az optimális célfüggvényérték mindkét feladat esetében: 𝑧 = 40.
15. feladat
3𝑥1 + 2𝑥2−4𝑥3 = 16
−2𝑥1 − 𝑥2+ 𝑥3 = 12
𝑥1 + 𝑥3 = 4
𝑥1, 𝑥2, 𝑥3, 𝑥4 ≥ 0
3𝑥1 + 4𝑥2 + 2𝑥3 → 𝑚𝑖𝑛
A három feltételi egyenletből álló egyenletrendszernek vagy végtelen sok megoldása
van, vagy egyértelmű megoldása van, vagy nincs megoldása. Az utóbbi esetben az
LP feladatnak sincs optimális megoldása. Ha az egyenletrendszernek egyetlen
megoldása van, és egyúttal teljesülnek a változókra rótt nemnegativitási feltételek,
akkor ez a megoldás egyben az LP feladat optimális megoldása is. Ha viszont végtelen
sok megoldás van, akkor kétfázisú szimplex módszerrel tudjuk meghatározni ezek
közül az optimálisat.
Bízva abban, hogy szimplex módszer nélkül is meg tudjuk oldani az LP feladatot,
először, bázistranszformációs technikával megoldjuk az egyenletrendszert. Ilyenkor az
a cél, hogy egyenként vigyük be a bázisba a változókat. A pivotelem tetszőleges, 0-tól
különböző szám lehet.
x1 x2 x3 b
u1 3 2 -4 16
u2 -2 -1 1 12
u3 1 0 1 4
u3 x2 x3 b
u1 -3 2 -7 4
u2 2 -1 3 20
x1 1 0 1 4
u3 u2 x3 b
u1 1 2 -1 44
x2 -2 -1 -3 -20
x1 1 0 1 4
u3 u2 u1 b
x3 -1 -2 -1 -44
x2 -5 -7 -3 -152
x1 2 2 1 48
A lineáris egyenletrendszernek egyértelmű megoldása van:
𝑥1 = 48; 𝑥2 = −152; 𝑥3 = −44. A megoldás azonban negatív értékeket is tartalmaz,
így az eredeti LP feladatnak nincs lehetséges megoldása és optimális megoldása se.
16. feladat
Egy anyuka gyermeke születésnapi zsúrjára kétféle szendvicset készít. Egy szalámis
szendvicsre 3 gramm vajat, 3 karika tojást és 2 szelet szalámit tesz. A sonkás
szendvicshez 4 gramm vaj, 2 karika tojás és 1 szelet sonka szükséges. A szendvicsek
készítéséhez rendelkezésre áll 100 szelet szalámi, 40 szelet sonka, 170 karika tojás
és 220 gramm vaj (kenyérszeletből nincs korlátozás, abból elegendően sok van).
Melyik szendvicsből hány darabot kell készítenie az anyukának, ha azt akarja, hogy a
rendelkezésre álló készletekből összességében a lehető legtöbb szendvics készüljön
el?
Megoldás: Írjuk fel a feladat matematikai modelljét, vagyis alkalmas változók
bevezetése után adjuk meg a célfüggvény egyenletét, illetve a korlátozó feltételeket
leíró egyenlőtlenségeket! Tegyük fel, hogy az elkészítendő szalámis szendvicsek
száma 𝑥1, a sonkás szendvicsek száma pedig 𝑥2. Vajból a szalámis szendvicsekre
3𝑥1, a sonkás szendvicsekre 4𝑥2 gramm kerül összesen, mivel azonban csak 220
gramm vaj van, fenn kell állnia a 3𝑥1 + 4𝑥2 ≤ 220 egyenlőtlenségnek. Hasonlóan, a
felhasznált tojáskarikák száma 3𝑥1 + 2𝑥2, mely összeg legfeljebb 170 lehet. a szalámi-
szeletekre a 2𝑥1 ≤ 100, a sonkaszeletekre az 𝑥2 ≤ 40 reláció érvényes. Továbbá,
egyik változó sem lehet negatív, azaz 𝑥1 ≥ 0 és 𝑥2 ≥ 0. E feltételek teljesülése mellett
keressük az 𝑥1 + 𝑥2 összeg maximumát. Tehát a feladat matematikai modellje az
alábbi kétváltozós LP feladat:
3𝑥1 + 4𝑥2 ≤ 220
3𝑥1 + 2𝑥2 ≤ 170
2𝑥1 ≤ 100
𝑥2 ≤ 40
𝑥1, 𝑥2 ≥ 0
𝑥1 + 𝑥2 → 𝑚𝑎𝑥
Ez egy normál feladat, melynek induló szimplex táblája az alábbi:
x1 x2 b
u1 3 4 220
u2 3 2 170
u3 2 0 100
u4 0 1 40
-z 1 1 0
Először x2 -t hozzuk a bázisba, majd két további pivotálás után optimális táblát kapunk.
x1 u4 b
u1 3 -4 60
u2 3 -2 90
u3 2 0 100
x2 0 1 40
-z 1 -1 -40
u1 u4 b
x1 1/3 -4/3 20
u2 -1 2 30
u3 - 2/3 8/3 60
x2 0 1 40
-z - 1/3 1/3 -60
u1 u2 b
x1 - 1/3 2/3 40
u4 - 1/2 1/2 15
u3 2/3 -4/3 20
x2 1/2 - 1/2 25
-z - 1/6 - 1/6 -65
Az optimális megoldás: 𝑥1 = 40; 𝑥2 = 25; 𝑧𝑚𝑎𝑥 = 65. Tehát a rendelkezésre álló
készletekből összesen legfeljebb 65 szendvics készíthető, melyből 40 szalámis, 25
pedig sonkás.
17. feladat
Egy fogyókúrázó napi C-vitamin és vas szükségletét kétféle gyümölcs, citrom és
alma fogyasztásával szeretné fedezni. Tegyük fel, hogy a napi C-vitamin
szükséglet 500 egység, és 100 gramm citromban 300 egységnyi, 100gramm
almában 100 egységnyi C-vitamin van. Vasból 1,2 mg a napi szükséglet, és 100
gramm citrom 0,2 mg, 100 gramm alma pedig 0,5 mg vasat tartalmaz. A
fogyókúrázó a gyümölcsök fogyasztásával legfeljebb 400 kalóriát szeretne bevinni.
100 gr citromban 50, 100 gr almában 80 kalória van. A piacon egy kiló citrom 600
forintba, egy kiló alma 400 forintba kerül. Mennyit vegyen az egyes gyümölcsökből,
ha azt szeretné, hogy a lehető legkevesebbet költsön, ne lépje túl az előírt
kalóriamennyiséget, de a napi C-vitamin és vasszükségletét fedezze a megvásárolt
gyümölcs?
Megoldás: Tegyük fel, hogy a fogyókúrázó 𝑥1 ∙ 100 gramm citromot és 𝑥2 ∙ 100
gramm almát vásárol a piacon. Ekkor 60𝑥1 + 40𝑥2 a fizetendő összeg, ezt kell
minimalizálni. Mindkét változó nemnegatív, és a feladat feltételeiből három további
egyenlőtlenséget tudunk felírni korlátozó feltételként. A feladat modellje:
300𝑥1 + 100𝑥2 ≥ 500
0,2𝑥1 + 0,5𝑥2 ≥ 1,2
50𝑥1 + 80𝑥2 ≤ 400
𝑥1, 𝑥2 ≥ 0
60𝑥1 + 40𝑥2 → 𝑚𝑖𝑛
A feladatot kétfázisú szimplex módszerrel oldjuk meg. Az induló szimplex tábla:
x1 x2 v1 v2 b
u1* 300 100 -1 0 500
u2* 0,2 0,5 0 -1 1,2
u3 50 80 0 0 400
-z -60 -40 0 0 0
z* 300,2 100,5 -1 -1 501,2
Az x2 vektort bevisszük a bázisba:
x1 u2* v1 v2 b
u1* 260 -200 -1 200 260
x2 0,4 2 0 -2 2,4
u3 18 -160 0 160 208
-z -44 80 0 -80 96
z* 260 -201 -1 200 260
Majd az x1 vektort is:
u1* u2* v1 v2 b
x1 0,0038 -0,7692 -0,004 0,76923 1
x2 -0,002 2,30769 0,0015 -2,30769 2
u3 -0,069 -146,15 0,0692 146,154 190
-z 0,1692 46,1538 -0,169 -46,1538 140
z* -1 -1 0 0 0
A szimplex módszer első fázisa véget ért, hiszen a mesterséges célfüggvény
értéke 0. Ha töröljük a mesterséges célfüggvény sorát, valamint a mesterséges
változók oszlopait, az alábbi táblát kapjuk:
v1 v2 b
x1 -0,004 0,76923 1
x2 0,0015 -2,30769 2
u3 0,0692 146,154 190
-z -0,169 -46,1538 140
A tábla optimális, a feladat optimális megoldása: 𝑥1 = 1; 𝑥2 = 2; 𝑧𝑚𝑖𝑛 = 140.
Tehát 100 gr citromot és 200 gr almát kell vásárolni a feltételek teljesüléséhez, és
ez 140 Ft-ba fog kerülni.
18. feladat
Egy építési vállalkozó kétféle üzemcsarnok építésével foglalkozik. Az A típusú
csarnok 4000 m2 lemez, 4 tonna acél, 300 m2 tetőfedő anyag és 200 m3 beton
felhasználásával készül el. A B típusú csarnok felépítéséhez 5000 m2 lemez, 3
tonna acél, 200 m2 tetőfedő anyag és 100 m3 beton szükséges. Az alapanyagok
csak korlátozott mennyiségben állnak rendelkezésre: 32000 m2 lemez, 24 tonna
acél, 2000 m2 tetőfedő anyag és 1600 m3 beton használható fel az adott
szezonban. Egy A típusú csarnok felépítése 4000 $, a B típusú csarnok felépítése
5000 $ nyereséget hoz. Milyen összetételben vállaljon a kétféle csarnokra
vonatkozó megrendelésekből a vállalkozó, ha maximalizálni szeretné a
nyereségét?
Megoldás: Jelölje 𝑥1 a felépítendő A típusú csarnokok számát, 𝑥2 pedig a B
típusúak számát. A feladat az alábbi rendszerrel modellezhető:
4000𝑥1 + 5000𝑥2 ≤ 32000
4𝑥1 + 3𝑥2 ≤ 24
300𝑥1 + 200𝑥2 ≤ 2000
200𝑥1 + 100𝑥2 ≤ 1600
𝑥1, 𝑥2 ≥ 0
4000𝑥1 + 5000𝑥2 → 𝑚𝑎𝑥
Normálfeladatról van szó, két pivotálás után optimális megoldáshoz jutunk:
x1 x2 b
u1 4000 5000 32000
u2 4 3 24
u3 300 200 2000
u4 200 100 1600
-z 4000 5000 0
u2 x2 b
u1 -1000 2000 8000
x1 0,25 0,75 6
u3 -75 -25 200
u4 -50 -50 400
-z -1000 2000 -24000
u2 u1 b
x2 -0,5 0,0005 4
x1 0,625 -0,0004 3
u3 -87,5 0,0125 300
u4 -75 0,025 600
-z 0 -1 -32000
A célfüggvény sorában szereplő 0 azonban azt jelenti, hogy alternatív optimum
esete áll fenn, azaz a feladatnak végtelen sok optimális megoldása van. Az u2
vektor bázisba hozásával az alábbi táblát kapjuk:
x1 u1 b
x2 0,8 0,0002 6,4
u2 1,6 -0,0006 4,8
u3 140 -0,04 720
u4 120 -0,02 960
-z 0 -1 -32000
A két utolsó táblából leolvashatjuk az optimális megoldások szakaszának végpontjait.
Az összes optimális megoldás a végpontok konvex lineáris kombinációja: 𝜆(3; 4) + (1 − 𝜆)(0; 6,4) ahol 𝜆 ∈ [0; 1]
A maximális bevétel minden optimális megoldás esetén: 𝑧 = 32000 $.
Megjegyzés: A feladat jellegéből adódóan egészértékű megoldást keresünk
elsősorban, ezért a kérdéses szakaszon azt a pontot adjuk meg megoldásként,
melynek mindkét koordinátája egész, azaz a (3;4) pontot. Tehát 3 db A típusú és 4 db
B típusú csarnokot kell építeni, s így 32000 $ lesz a nyereség. Ugyanígy 32000 $ lenne
a nyereség, ha a szakasz egy másik pontját, például a (2;4,8) pontot választanánk. Ez
a megoldás értelmezhető úgy, hogy a vállalkozó felépít 2 A típusú csarnokot, s a vállalt
5 B típusúból négyet teljesen, egyet pedig 80%-os készültségben ad át. Ekkor a
nyeresége is csak 80%-os, azaz 4000 $ az utolsó csarnokon. Az egészértékű
megoldások keresése az integer programozás tárgykörébe tartozik, és általában
nehezebb problémát jelent, mint az általános megoldás meghatározása.
19. feladat
A távoli jövőben az optimalizálás vizsgára különböző ízesítésű tudástabletták
bevételével is fel lehet készülni. Egy spenótos tabletta elfogyasztása 10%-kal, egy
eperízű tabletta elfogyasztása 7 %-kal növeli meg a hallgató tudását. (Tehát 4
spenótos és 5 epres tabletta esetén a tananyag 75%-ának lennénk birtokában).
Egy spenótos tabletta 2000, egy eperízű tabletta 1500 forintba kerül. A túladagolás
elkerülése érdekében a két tablettából összesen legfeljebb 8 darab vehető be, és
arra is ügyelnünk kell, hogy legalább annyi eprest vegyünk be, mint spenótost (az
utóbbi nem túl kellemes íze miatt). Milyen összetételben vásároljunk a tablettákból,
ha a lehető legkevesebbet szeretnénk költeni és 51% a sikeres vizsga
teljesítésének feltétele?
Megoldás: Jelölje 𝑥1 a megvásárlandó spenótos, 𝑥2 pedig az eperízű tabletták
számát. Az 𝑥1 ≤ 𝑥2 feltételben egy oldalra rendezve a változókat, az alábbi
rendszerrel modellezhetjük a feladatot:
𝑥1 − 𝑥2 ≤ 0
𝑥1 + 𝑥2 ≤ 8
10𝑥1 + 7𝑥2 ≥ 51
𝑥1, 𝑥2 ≥ 0
2000𝑥1 + 1500𝑥2 → 𝑚𝑖𝑛
A harmadik feltétel miatt kétfázisú szimplex módszerrel oldjuk meg a feladatot. Az
induló szimplex tábla:
x1 x2 v3 b
u1 1 -1 0 0
u2 1 1 0 8
u3* 10 7 -1 51
-z -2000 -1500 0 0
z* 10 7 -1 51
Először az x1 vektort hozzuk a bázisba, mert itt 1 a pivotelem.
u1 x2 v3 b
x1 1 -1 0 0
u2 -1 2 0 8
u3* -10 17 -1 51
-z 2000 -3500 0 0
z* -10 17 -1 51
Ezután az x2 vektor következik:
u1 u3* v3 b
x1 7/17 1/17 - 1/17 3
u2 3/17 - 2/17 2/17 2
x2 - 10/17 1/17 - 1/17 3
-z -58
14/17 205
15/17 -205 15/17 10500
z* 0 -1 0 0
Az első fázis véget ért, és egyúttal a második is, a tábla már optimális megoldást
tartalmaz.
A feladat optimális megoldása: 𝑥1 = 3; 𝑥2 = 3; 𝑧𝑚𝑖𝑛 = 10500.
Tehát mindkét tablettából egyaránt 3 szemet kell vásárolni, és 10500 Ft a minimális
költség.
20. feladat
Egy kis szabóságban ingeket és szoknyákat varrnak. Egy ingen 4 $, egy szoknyán
3 $ nyeresége van a szabóságnak. Egy ing 3 m anyagból 5 óra alatt, egy szoknya
4 m anyagból 2 óra alatt készül el. A cég vezetője azt várja el a varrónőktől, hogy
a napi 10 órás munkaidő alatt legalább 4 ruhadarabot készítsenek el, legfeljebb 12
m anyag felhasználásával. Hány ing és hány szoknya megvarrásával érhető el egy
varrónő esetén a maximális profit?
Megoldás: Jelölje 𝑥1 az egy varrónő által elkészített ingek, 𝑥2 pedig a szoknyák
számát. A feladat modellje a következő:
3𝑥1 + 4𝑥2 ≤ 12
5𝑥1 + 2𝑥2 ≤ 10
𝑥1 + 𝑥2 ≥ 4
𝑥1, 𝑥2 ≥ 0
4𝑥1 + 3𝑥2 → 𝑚𝑎𝑥
A kétfázisú szimplex módszer induló táblája:
x1 x2 v3 b
u1 3 4 0 12
u2 5 2 0 10
u3* 1 1 -1 4
-z 4 3 0 0
z* 1 1 -1 4
Az x1 változót hozzuk a bázisba:
u2 x2 v3 b
u1 - 3/5 14/5 0 6
x1 1/5 2/5 0 2
u3* - 1/5 3/5 -1 2
-z - 4/5 7/5 0 -8
z* - 1/5 3/5 -1 2
Majd az x2-t:
u2 u1 v3 b
x2 - 3/14 5/14 0 15/7
x1 2/7 - 1/7 0 8/7
u3* - 1/14 - 3/14 -1 5/7
-z - 1/2 - 1/2 0 -11
z* - 1/14 - 3/14 -1 5/7
Mivel a másodlagos célfüggvény értéke pozitív maradt, és tovább már nem
csökkenthető, a feladatnak nincs megoldása.
21. feladat
Egy háziasszony eladásra lekvárt és befőttet készít. Összesen 120 kg gyümölcs
és 80 kg cukor áll rendelkezésére. Egy üveg lekvárhoz 80 dkg gyümölcsre és 40
dkg cukorra, egy üveg befőtt elkészítéséhez 40 dkg gyümölcsre és 40 dkg cukorra
van szüksége. A nyeresége egy üveg lekváron 100 Ft, egy üveg befőttön 80 Ft.
Hány üveg lekvárt és befőttet kell elkészítenie, hogy maximális nyereséget érjen el
és mekkora ez a maximális nyereség?
Megoldás: Tegyük fel, hogy a háziasszony 𝑥1 üveg lekvárt és 𝑥2 üveg befőttet
készít. A feladat adataiból a következő modellt állíthatjuk fel:
0,8𝑥1 + 0,4𝑥2 ≤ 120
0,4𝑥1 + 0,4𝑥2 ≤ 80
𝑥1, 𝑥2 ≥ 0
100𝑥1 + 80𝑥2 → 𝑚𝑎𝑥
A normál feladat szimplex táblái:
x1 x2 b
u1 0,8 0,4 120
u2 0,4 0,4 80
-z 100 80 0
x1 u2 b
u1 0,4 -1 40
x2 1 2,5 200
-z 20 -200 -16000
u1 u2 b
x1 2,5 -2,5 100
x2 -2,5 5 100
-z -50 -150 -18000
Az utolsó tábla optimális, melyből leolvashatjuk a megoldást: a háziasszonynak 100
üveg lekvárt és 100 üveg befőttet kell készítenie, és így 18000 Ft lesz a bevétele.
22. feladat
Egy üzemben két terméket (T1, T2) gyártanak, megmunkálásuk két gépen (G1,G2)
történik. A T1 termék egy darabjának megmunkálása a G1 gépen 3 órát, a G2
gépen 4 órát vesz igénybe, a T2 termék esetén 4 és 6 óra ez a két adat. A G1 gép
kapacitása 130, a G2 gép kapacitása 200 óra. A T1 termék szerelési ideje 1 óra, a
T2 terméké 2 óra, a szerelde kapacitása 60 óra. A T1 termék eladási egységára
8, a T2 termék eladási egységára 10 pénzegység. Milyen termékösszetételben
érdemes gyártani, ha maximális árbevételre törekszünk, úgy, hogy a gépek
kapacitását nem lépjük túl és a szerelde teljes kapacitással dolgozik (azaz
egyenlőség van a szereldére vonatkozó feltételben)?
Megoldás: Jelölje 𝑥1 a T1 termékből gyártandó mennyiséget, 𝑥2 pedig a T2
termékből gyártandó mennyiséget. A feladat modellje a következő:
3𝑥1 + 4𝑥2 ≤ 130
4𝑥1 + 6𝑥2 ≤ 200
𝑥1 + 2𝑥2 = 60
𝑥1, 𝑥2 ≥ 0
8𝑥1 + 10𝑥2 → 𝑚𝑎𝑥
Felírjuk az induló szimplex táblát és elvégzünk egy pivotálást:
x1 x2 b x1 u3* b
u1 3 4 130 u1 1 -2 10
u2 4 6 200 u2 1 -3 20
u3* 1 2 60 x2 0,5 0,5 30
-z 8 10 0 -z 3 -5 -300
z* 1 2 60 z* 0 -1 0
A kétfázisú szimplex módszer első fázisa véget ért. Töröljük a mesterséges
célfüggvény sorát és a mesterséges változó oszlopát, majd elvégzünk még egy
pivotálást:
x1 b u1 b
u1 1 10 x1 1 10
u2 1 20 u2 -1 10
x2 0,5 30 x2 -0,5 25
-z 3 -300 -z -3 -330
A kapott optimális táblából leolvassuk a megoldást: 10 darabot kell gyártani a T1
termékből, 25 darabot a T2 termékből. Az elért maximális nyereség 330
pénzegység.
23. feladat
Egy üzem kétféle termék (T1, T2) előállításával foglalkozik. A termékeket három
alkatrészből (A1, A2, A3) szerelik össze. Az első táblázat az egyes termékek
összeszereléséhez szükséges alkatrészek számát, a termékek szerelési idejét és
a termékek egységárát tartalmazza. Az alkatrészek megmunkálását két gépen
(G1,G2) végzik. A második táblázat az alkatrészek egyes gépeken történő
megmunkálásának időszükségletét (percben) és a gépek kapacitását mutatja. A
szerelde kapacitása 220 perc/nap. Meghatározandó a szerelde és a gépműhely
kapacitását túl nem lépő napi termelés az egyes termékekből úgy, hogy az
árbevétel maximális legyen!
A1 A2 A3 Szer. idő Egységár
T1 1 0 2 2 27
T2 0 1 1 1 8
Megoldás: Jelölje 𝑥1 a T1 termékből gyártandó mennyiséget, 𝑥2 pedig a T2
termékből gyártandó mennyiséget. A táblázatok adataiból kiderül, hogy a T1
termék egy egységének előállításához 3 percre van szükség a G1 gépen, és 9
percre a G2 gépen. Ugyanezek az adatok a T2 termék esetén: 1 perc a G1 gépen
és 2 perc a G2 gépen. Ezek után tudjuk felírni a gépekre vonatkozó
kapacitáskorlátokat és a feladat modelljét:
3𝑥1 + 𝑥2 ≤ 240
9𝑥1 + 2𝑥2 ≤ 630
2𝑥1 + 𝑥2 ≤ 220
𝑥1, 𝑥2 ≥ 0
27𝑥1 + 8𝑥2 → 𝑚𝑎𝑥
x1 x2 b x1 u3 b
u1 3 1 240 u1 1 -1 20
u2 9 2 630 u2 5 -2 190
u3 2 1 220 x2 2 1 220
27 8 0 11 -8 -1760
u1 u3 b u1 u2 b
x1 1 -1 20 x1 - 2/3 1/3 50
u2 -5 3 90 u3 -5/3 1/3 30
x2 -2 3 180 x2 3 -1 90
-11 3 -1980 -6 -1 -2070
A feladat optimális megoldása: 𝑥1 = 50; 𝑥2 = 90; 𝑧𝑚𝑎𝑥 = 2070.
A1 A2 A3 Kapacitás
G1 1 0 1 240
G2 7 1 1 630
24. feladat
Három nemnegatív számot kell meghatározni úgy, hogy az elsőt hárommal, a
másodikat öttel, a harmadikat hattal szorozva és ezeket a szorzatokat összeadva
az így keletkezett szám minél nagyobb legyen. A három szám összege legfeljebb
száz lehet. Az első szám kétszeresének és a második számnak az összege
pontosan harminc legyen. A harmadik szám kétszeresének és a második számnak
az összege legalább ötven legyen. Írja fel a feladat matematikai modelljét és oldja
meg a feladatot szimplex módszerrel!
Megoldás: Jelölje 𝑥1, 𝑥2, 𝑥3 a keresett számokat. A feladat modellje:
𝑥1 + 𝑥2 + 𝑥3 ≤ 100
2𝑥1 + 𝑥2 = 30
𝑥2 + 2𝑥3 ≥ 50
𝑥1, 𝑥2, 𝑥3 ≥ 0
3𝑥1 + 5𝑥2 + 6𝑥3 → 𝑚𝑎𝑥
Két pivotálás után véget ér a kétfázisú szimplex módszer első fázisa:
x1 x2 x3 v3 b
u1 1 1 1 0 100
u2* 2 1 0 0 30
u3* 0 1 2 -1 50
-z 3 5 6 0 0
z* 2 2 2 -1 80
x1 u2* x3 v3 b
u1 -1 -1 1 0 70
x2 2 1 0 0 30
u3* -2 -1 2 -1 20
-z -7 -5 6 0 -150
z* -2 -2 2 -1 20
x1 u2* u3* v3 b
u1 0 -0,5 -0,5 0,5 60
x2 2 1 0 0 30
x3 -1 -0,5 0,5 -0,5 10
-z -1 -2 -3 3 -210
z* 0 -1 -1 0 0
Töröljük a mesterséges célfüggvény sorát és a mesterséges változó oszlopát, majd
elvégzünk még egy pivotálást:
x1 v3 b
u1 0 0,5 60
x2 2 0 30
x3 -1 -0,5 10
-z -1 3 -210
x1 u1 b
v3 0 2 120
x2 2 0 30
x3 -1 1 70
-z -1 -6 -570
Az utolsó tábla optimális, melyből meghatározhatjuk a megoldást:
𝑥1 = 0; 𝑥2 = 30; 𝑥3 = 70; 𝑧𝑚𝑎𝑥 = 570.
25. feladat
Egy üzem háromféle termék előállításával foglalkozik. A termékek megmunkálását
két gépen végzik. Az esztergagép kapacitása 80 óra/hét, a marógép kapacitása 70
óra/hét. Az egyes termékfajták egységének megmunkálásához rendre 2, 1, 1 óra
szükséges az esztergagépen, a marógépen mindhárom termékre 1 óra ez az adat.
A termékek eladási egységára 3, 1 és 2 pénzegység. A termékegységre jutó
anyagköltségek rendre 0,8, 0,2 és 0,5 pénzegység. A cél olyan heti termelési terv
meghatározása, mellyel legalább 100 pénzegységnyi bevétel érhető el, de az
anyagköltségek összege minimális.
Megoldás: Jelölje 𝑥1, 𝑥2, 𝑥3 az egyes termékekből előállítandó mennyiségeket. A
feladat adatainak alapján az alábbi modellt állíthatjuk fel:
2𝑥1 + 𝑥2 + 𝑥3 ≤ 80
𝑥1 + 𝑥2 + 𝑥3 ≤ 70
3𝑥1 + 𝑥2 + 2𝑥3 ≥ 100
0,8𝑥1 + 0,2𝑥2 + 0,5𝑥3 → 𝑚𝑖𝑛
Két pivotálás után a tábla optimálissá tehető, de a célfüggvény sorában szereplő 0
azt mutatja, hogy alternatív optimális megoldások is vannak. A célfüggvény
minimuma azonban minden esetben 23 pénzegység. Ezt az értéket az 𝑥1 = 0; 𝑥2 =
40; 𝑥3 = 30 megoldással értük el, de például az 𝑥1 = 10; 𝑥2 = 50; 𝑥3 = 10
választással is optimális termelési tervet határozunk meg.
x1 x2 x3 v3 b
u1 2 1 1 0 80
u2 1 1 1 0 70
u3* 3 1 2 -1 100
-z -0,8 -0,2 -0,5 0 0
z* 3 1 2 -1 100
x1 u2 x3 v3 b
u1 1 -1 0 0 10
x2 1 1 1 0 70
u3* 2 -1 1 -1 30
-z -0,6 0,2 -0,3 0 14
z* 2 -1 1 -1 30
x1 u2 u3* v3 b
u1 1 -1 0 0 10
x2 -1 2 -1 1 40
x3 2 -1 1 -1 30
-z 0 -0,1 0,3 -0,3 23
z* 0 0 -1 0 0