38
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 = −

Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

  • Upload
    others

  • View
    20

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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 𝑥�̃� = −𝑥𝑗

Page 2: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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.

Page 3: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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.

Page 4: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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.

Page 5: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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:

Page 6: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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.

Page 7: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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

Page 8: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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.

Page 9: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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.

Page 10: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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.

Page 11: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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.

Page 12: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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:

Page 13: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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.

Page 14: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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

Page 15: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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.

Page 16: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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.

Page 17: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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

Page 18: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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.

Page 19: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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.

Page 20: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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.

Page 21: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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.

Page 22: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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.

Page 23: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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.

Page 24: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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

Page 25: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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.

Page 26: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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:

Page 27: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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.

Page 28: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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

Page 29: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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.

Page 30: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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:

Page 31: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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.

Page 32: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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.

Page 33: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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.

Page 34: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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.

Page 35: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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

Page 36: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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:

Page 37: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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.

Page 38: Lineáris programozási (LP) feladatok megoldása szimplex ...matka/Dokumentumok/LPfeladatok.pdf · Lineáris programozási (LP) feladatok megoldása szimplex módszerrel A lineáris

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