Professional Documents
Culture Documents
Döntéselméleti Módszerek
Döntéselméleti Módszerek
Döntéselméleti Módszerek
Bevezető 3
4. Dualitás, érzékenységvizsgálat 49
4.1. A dualitás . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.1.1. A normál feladat duálja . . . . . . . . . . . . . . . . . . . . . . 49
4.1.2. Az általános LP feladat duálja . . . . . . . . . . . . . . . . . . . 58
4.2. A szimplex-táblázatok ellenőrzése . . . . . . . . . . . . . . . . . . . . . 63
4.2.1. Az ellenőrzés módszerének elméleti alapjai . . . . . . . . . . . . 63
4.3. Variánsszámítás . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.4. Érzékenységvizsgálat . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5. Disztribúciós feladatok 80
1
Vásárló neve: Kalamár Kata
6. Bevezetés a játékelméletbe 96
6.1. Kétszemélyes zérusösszegű mátrixjáték . . . . . . . . . . . . . . . . . . 96
6.2. A lehetséges stratégiák, a játék várható értéke . . . . . . . . . . . . . . 97
6.3. Az optimális stratégia . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.4. A kétszemélyes zérusösszegű mátrixjáték . . . . . . . . . . . . . . . . . 100
4. Idegenforgalom 153
Irodalomjegyzék 185
Bevezető
3
I. rész
Optimalizálás matematikai
modellezéssel
4
1. fejezet
5
6 1. FEJEZET: A MODELL FOGALMA, JELENTŐSÉGE, FŐBB FAJTÁI
I. Anyagi modellek
Általános jellemzőjük valamilyen kézzelfogható megjelenés. A főbb kategóriák:
a) Geometriai modellek: ezek legtöbb esetben makettek, a valóságos tárgyak egy-
szerűsített, kicsinyített másai, mint például a létesítendő lakópark épületei egy terep-
asztalon.
b) Fizikai modellek: a valósággal való fizikai hasonlóság ad alapot a modell ké-
szítéséhez, például amikor az elektromos áram töltéshordozóinak mozgását folyadék
áramlásával próbálták modellezni.
c) Tárgyi-matematikai modellek: általában a mennyiségi viszonyok, számolási eljá-
rások modellezésére szolgálnak, ide sorolható például a „golyós számológép”.
d) A Kibernetikai modellezés eszközei: a vezetési–irányítási folyamatban használa-
tos tárgyakat szokás tágabb értelemben ide sorolni, így például az elektronikus számí-
tógépet és perifériáit.
Az absztrakt jelmodellek
A gazdasági élet egyes területein a nagyobb feladatokra a 20. századtól kezdtek al-
kalmazni tudományosan is megalapozott modelleket. Ezek a modellek alapvetően a
1.1. A MODELLEK TÍPUSAI 7
kiegészítései szükségesek a gazdasági élet különböző területein. Sőt egy adott tevékeny-
ségi körben a volumen nagyságától is függhet, hogy milyen specifikumokkal alkalmazzák
a modelleket, azaz például a jelmodell mellett használnak-e geometriai, képmás- vagy
egyéb modelleket. Ugyanakkor megállapítható, hogy a gazdaságban a különféle fo-
lyamatok vizsgálatára a matematikai modellek közül a lineáris programozási modellek
változatait általában jól lehet alkalmazni. Lineárisnak azért nevezzük ezeket az eszmei
jelmodelleket, mert a feltételek megfogalmazása elsőfokú egyenletek, egyenlőtlenségek
alkalmazásával történik. A lineáris programozási modellek körében is lényeges eltérések
lehetnek, a következőkben mutatunk ezekre is példákat.
Ismeretes, hogy optimumokat (függvények szélsőértékeit) nemcsak lineáris progra-
mozási módszerekkel lehet kiszámolni, más matematikai eljárásokat is használhatunk:
például egy adott térfogatú egyenes henger alakú konzervdoboz optimális méreteinek
meghatározása differenciálszámítással egyszerűen elvégezhető.
len relációként legyen felírva, és a változók a bal oldalon szerepeljenek, a jobb oldalon
pedig a konstansok álljanak.
Megjegyezzük, hogy léteznek és számítógépen kezelhetők olyan modellek is, ahol
nem kötelező a szabványszerű elrendezés, és a korlátozó feltételek nem lineáris függvé-
nyek is lehetnek. Ezek felvételének módját, alakját a megoldásra alkalmazott szoftver
felhasználói útmutatója határozza meg.
3. A cél megfogalmazása. A felvett célfüggvényeinkben optimumokat keresünk. Az
optimum a lehető legnagyobb vagy legkisebb megoldások megtalálását jelenti. Előfor-
dulhat, hogy a célfüggvény adott számértékéhez keresünk optimumot. Gyakori, hogy
adott feltételrendszerhez több célfüggvény is tartozik, illetve nemcsak elsőfokú függvény
lehet célfüggvény.
4. A számolási eljárás megadása. Az Operációkutatásban az egyszerű kétváltozós
gyakorló feladatoknál a szemléletes geometriai megoldással találkozhatunk, manuáli-
san, algebrai úton a szimplex-módszert választjuk, bonyolultabb feladatoknál számító-
gépes szoftvereket használunk. Szemléltetésül példákat hozunk fel ezekre, amelyek egy
része az operációkutatást ismerők számára ismétlést jelent.
I II Kapacitás
A 3 2 18
B 4 0 16
C 2 4 24
E. ár 4 2
x = [x1 x2 ]∗ ≥ 0.
Ha a döntési változók folytonosak, és az induló feltételünk szerint nemnegatívak, akkor
ezt szokás triviális feltételnek is nevezni.
1.5. A LINEÁRIS PROGRAMOZÁSÚ MODELLEK ÉS MEGOLDÁSAIK 11
3x1 + 2x2 ≤ 18
A második erőforrásra hasonló megfontolással adódó feltétel:
4x1 + 0 · x2 ≤ 16
A harmadik erőforrásra:
2x1 + 4x2 ≤ 24
Az erőforrásokra felírt korlátozó feltételek a gyártási technológiából erednek, így a
3x1 + 2x2 ≤ 18
4x1 + 0 · x2 ≤ 16
2x1 + 4x2 ≤ 24
Általánosan:
A·x ≤ b.
z = f (x) = c∗ · x → max .
x≥0
A · x ≤ b (b ≥ 0)
z = c ∗ · x → max .
B0 x1 x2 b B1 u2 x 2 b B2 u2 u1 b
u1 3 2 18 u1 −3/4 2 6 x2 −3/8 1/2 3
u2 4 0 16 x1 1/4 0 4 x1 1/4 0 4
u3 2 4 24 u3 −1/2 4 16 u3 1 −2 4
−z 4 2 0 −z −1 2 −16 −z −1/4 −1 −22
darab. Ha legalább négyszer annyi 1,5 méteres oszlopra van szükségünk, mint 2,5
méteresre, akkor
Rendezve:
7x1 + x2 − 4x3 ≤ 0.
A célfüggvényt a maradékokra írjuk fel: z = 0, 5x1 + x3 → min.
A matematikai modell tehát:
x1 , x 2 , x 3 ≥0
x1 + x2 + x3 = 1000
7x1 + x2 − 4x3 ≤0
z = 0, 5 x1 + x3 → min .
x1 x2 x3 b x1 x2 b x1 u2 b
û1 1 1 1 1000 x3 1 1 1000 x3 −6/5 −1/5 200
u2 7 1 −4 0 u2 11 5 4000 x2 11/5 1/5 800
z −0, 5 0 −1 0 z 1/2 1 1000 z −17/10 −1/5 200
−ẑ 1 1 1 1000 −ẑ 0 0 0
Számítógépes megoldás
A modellünk egyszerűen megoldható számítógép alkalmazásával. Ehhez megadjuk a
megoldás algoritmusát. Az Excel egyik bővítményét, valamint a Lingo programot
használjuk.
A lineáris programozású matematikai modellek számítógépes megoldásának lépéseit
példákkal mutatjuk be.
Példa: Négy erőforrás felhasználásával négyféle terméket gyártanak. Az egyes termé-
kek egy-egy egységébe az erőforrásokból rendre 1, 0, 2, 1; 1, 2, 2, 0; 0, 2, 2, 1 és 1,
2, 0, 0 épül be az egyes erőforrásokból. Az erőforrások felső korlátai: 100, 160, 100,
60. A termékek eladási egységárai rendre: 6, 6, 5, 4. Milyen termékszerkezetnél lesz
maximális az árbevétel?
1.5. A LINEÁRIS PROGRAMOZÁSÚ MODELLEK ÉS MEGOLDÁSAIK 17
I II III IV Kap.
A 1 1 0 1 100
B 0 2 2 2 160
C 2 2 2 0 100
D 1 0 1 0 60
Ár 6 6 5 4 Max.
1.) Adatbevitel
Az adatokat az előbb felvett adattáblázathoz hasonló formában vihetjük be.
Célszerű a termékek oszlopait xi -vel, a feltételek sorait fi -vel elnevezni.
A feltételek sorai alatt legyen a célegyütthatók sora (c*), alatta legyen az x* sora,
induláskor nullákkal feltöltve.
Az x4 oszlopa után töltsünk fel egy oszlopot nullákkal a c* soráig, majd legyen egy
oszlop a relációjeleknek és egy újabb oszlop a kapacitásoknak.
Az induló táblánk:
18 1. FEJEZET: A MODELL FOGALMA, JELENTŐSÉGE, FŐBB FAJTÁI
x1 x2 x3 x4 b
f1 1 1 0 1 0 <= 100
f2 0 2 2 2 0 <= 160
f3 2 2 2 0 0 <= 100
f4 1 0 1 0 0 <= 60
c* 6 6 5 4 0
x* 0 0 0 0
2. Megoldás
Az Excel eszközök menüjéből behívjuk a Solvert.
Ha nincs ott, akkor a Bővítmények menüpontból bekérjük.
Megjegyzés: a korlátozó feltételek mind egytípusúak (<=), így azokat nem szükséges
egyesével felvenni.
Ezután a „Beállításáá gombon a nemnegatív és a lineáris feltételeket jelöljük be.
Ezt követően indulhat a megoldás.
A megoldás gombra kattintva megkapjuk az optimális (primál) megoldást:
x1 x2 x3 x4 b
f1 1 1 0 1 100 <= 100
f2 0 2 2 2 160 <= 160
f3 2 2 2 0 100 <= 100
f4 1 0 1 0 50 <= 60
c* 6 6 5 4 545
x* 35 0 15 65 max
b1 -re: 100 − 70 ≤ b1 ≤ 100 + 30, b2 -re: 160 − 60 ≤ b2 ≤ 160 + 140, és így tovább.
x1 x2 x3 b
f1 1 1 1 0 = 1000
f2 7 1 -4 0 <= 0
c* 0,5 0 1 0
x* 0 0 0 min
A számítógépes megoldás módszerével a következő optimális táblát kaptuk:
x1 x2 x3 b
f1 1 1 1 1000 = 1000
f2 7 1 -4 0 <= 0
c* 0,5 0 1 200
x* 0 800 200 min
x1 x2 x3 x4 b
f1 0 1 4 2 0 <= 300
f2 3 1 0 0 0 <= 100
f3 1 1 1 0 0 <= 150
f4 1 1 0 −1 0 = 0
f5 0 1 0 −1 0 >= 3
c* 6 5 8 7 0
x* 0 0 0 0 max
x1 x2 x3 x4 b
f1 0 1 4 2 300 <= 300
f2 3 1 0 0 100 <= 100
f3 1 1 1 0 100 <= 150
f4 1 1 0 −1 0 = 0
f5 0 1 −1 0 100 >= 3
c* 6 5 8 7 1200
x* 0 100 0 100 max
x1 , x2 ≥ 0
x1 x2 v4 v5 v6
u1 4 2 0 0 0 240
u2 0 4 0 0 0 160
û3 2 3 0 0 0 180
û4 1 1 −1 0 0 100
û5 1 0 0 −1 0 30
û6 20 40 0 0 −1 1000
−z 20 40 0 0 0 0
−ẑ 24 44 −1 −1 −1 1310
x1 x2 b
f1 4 2 0 <= 240
f2 0 4 0 <= 160
f3 2 3 0 >< 180
f4 1 1 0 >= 100
f5 1 0 0 >= 30
f6 20 40 0 >= 1000
c* 20 40 0 0
x* 0 0
x1 x2 b
f1 4 2 240 <= 240
f2 0 4 120 <= 160
f3 2 3 180 >< 180
f4 1 1 75 >= 100
f5 1 0 45 >= 30
f6 20 40 2100 >= 1000
c* 20 40 2100 0
x* 45 30
xi ≥ 0 (1 ≤ i ≤ 4).
Az 500 000 forintos vásárlási határból a változókra alsó határok adódnak:
x1 ≥ 37 x2 ≥ 35 x3 ≥ 179 x4 ≥ 132
x1 ≤ 100
xi ≥ 0 (1 ≤ i ≤ 4).
x1 ≥ 37
x1 ≤ 100
x2 ≥ 35
26 1. FEJEZET: A MODELL FOGALMA, JELENTŐSÉGE, FŐBB FAJTÁI
x3 ≥ 179
x4 ≥ 132
F1 → R 1 : 2 F 1 → R2 : 4 F 1 → R3 : 3
F2 → R 1 : 1 F 2 → R2 : 5 F2 → R3 : 6.
R1 R2 R3 R4
F1 4 3 5 6 40
F2 3 6 4 7 80
F3 2 3 5 4 90
70 70 40 20
M 3 5 6 M 40
3 5 4 7 M 80
2 3 5 4 0 90
70 70 40 20 10
A tiltásokat a többi költségelemhez képest relatíve nagy számok beírásával (M )
valósítjuk meg. Például: M = 99.
Cél: az Fi-ből az Rj-be szállítandó xij mennyiségek mátrixának meghatározása úgy,
hogy az összköltség minimális legyen.
A feladat számítógépen megoldható a már ismert, a „szokásos” matematikai model-
lel, 15 változóval.
Egyszerűbb, gyorsabb megoldást kapunk a „mátrixcsere”-módszerrel.
Ehhez felvesszük az Excelben a névleges állomással, tiltásokkal kiegészített táblá-
zatunkat:
R1 R2 R3 R4 R5
F1 99 3 5 6 99 40
F2 3 6 4 7 99 80
F3 2 3 5 4 0 90
70 70 40 20 10
R1 R2 R3 R4 R5
F1 0 0 0 0 0 0
F2 0 0 0 0 0 0
F3 0 0 0 0 0 0
0 0 0 0 0
R1 R2 R3 R4 R5
F1 0 40 0 0 0 40
F2 40 0 40 0 0 80
F3 30 30 0 20 10 90
70 70 40 20 10 630
R1 R2 R3
F1 2 4 3 5
F2 1 5 6 4
3 4 2
R1 R2 R3
F1 0 3 2 5
F2 3 1 0 4
3 4 2 26
x1+x2+x4<100;
2*x2+2*x3+2*x4<160;
2*x1+2*x2+2*x3<100;
x1+x3<60;
max=6*x1+6*x2+5*x3+4*x4;
X1 35.00000 0.000000
X2 0.000000 1.500000
X4 65.00000 0.000000
X3 15.00000 0.000000
1.5. A LINEÁRIS PROGRAMOZÁSÚ MODELLEK ÉS MEGOLDÁSAIK 31
Példa: Egy üzem 2 terméket gyárt, két erőforrás felhasználásával. Az egyes termékek
egy-egy darabjába az erőforrásokból 2, 2, illetve 3, 1 egységnyi épül be. A kapacitások
felső korlátai: 3000 és 4000. A piaci igény az egyes termékekre maximum 1200, illetve
1500 darab. A termékek eladási egységárai 110 és 80, az önköltségi egységárak: 70, 50.
A gyártás fix költsége: 5000. Adjuk meg azt a termékösszetételt, amelynél az egységnyi
költségre eső fedezeti összeg maximális!
A matematikai modell
A döntési változók legyenek az egyes termékek darabszámai: x1 és x2.
Az induló feltétel : x1, x2 ∈ N . (A darabszámok csak természetes számok lehetnek!)
A korlátozó feltételek (A Lingo írásmódjával):
2 ∗ x1 + 3 ∗ x2 < 3000;
2 ∗ x1 + x2 < 4000;
x1 < 1200;
x2 < 1500;
2 ∗ x1 + 3 ∗ x2 < 3000;
2 ∗ x1 + x2 < 4000;
x1 < 1200;
x2 < 1500;
@gin(x1); @gin(x2);
max = (40 ∗ x1 + 30 ∗ x2)/(70 ∗ x1 + 50 ∗ x2 + 5000);
A megoldás pedig:
Local optimal solution found.
Objective value: 0.5454545
Variable Value Reduced Cost
X1 1200.000 −0.1836547E-04
X2 200.0000 −0.2754821E-04
33
34 2. FEJEZET: SPECIÁLIS ESETEK A KLASSZIKUS LP MODELLEKNÉL
f1 (x )
g(x ) = → opt.
f2 (x )
alakú, akkor hiperbolikus programozási feladatról (későbbiekben: HP) van szó.
A HP feladatok geometriai megoldásánál feltétel még, hogy a nevező sehol ne legyen
0 (azaz f2 (x ) minden lehetséges változó értéknél vagy csak pozitív, vagy csak negatív
értéket vehet fel).
Feltétel még, hogy a lehetséges megoldások (nem üres) L halmaza korlátos legyen.
3.1. Példa:
x ≥0
x1 + x2 ≤ 2
2x1 − x2 ≤ 1
x1 + 2x2
g(x ) = → max .
x2 + 1
A feltételek teljesülnek, a lehetséges megoldások halmazát ábrázoljuk:
37
38 3. FEJEZET: TOVÁBBI PROGRAMOZÁSI ESETEK
x1 + x2 < 2;
2 ∗ x1 − x2 < 1;
Variable Value
X1 1.000000
X2 1.000000
3.2. Példa:
x1 , x 2 ≥ 0
x1 + x2 ≤ 4
−2x1 + x2 ≤ 1
z = 10x1 + 6x2 − x21 − x22 → max
Az L halmaz:
40 3. FEJEZET: TOVÁBBI PROGRAMOZÁSI ESETEK
Az optimális értéket azon a körvonalon kapjuk, amely már „éppen eléri” a lehet-
séges megoldások halmazát. Ehhez merőlegest húzunk a középpontból az L halmaz
legközelebbi határoló vonalára, és a kapott metszéspont koordinátái jelentik azokat az
x1 és x2 értékeket, amelyeknél maximális lesz a célfüggvény értéke. Így a megoldások:
x 0 = [3 1]∗ és z0 = 26. A gyakorlati feladatok megoldására megfelelő szoftvereket
használnak.
3.3. Példa:
x1 , x2 ≥ 0; x1 , x2 pozitív egész,
x1 ≤ 3, 5
2x1 + 2x2 ≤ 11
4x2 ≤ 14,
z = 2x1 + x2 → max.
Az induló feltétel miatt az optimum nem a (3, 5; 2) pontban van, hanem a cél-
függvényegyeneshez legközelebb eső rácspontban. A rajzról jól látható: x0 = [3 2]∗ és
ekkor: z0 = 8.
A feladatunkat egyszerűen megoldhatjuk Lingóval.
A változókra egész értékeket akarunk, ezt a programban @GIN jelöléssel tehetjük
meg, a modellt a szokásos módon visszük be:
x1 < 3.5;
2 ∗ x1 + 2 ∗ x2 < 11;
4 ∗ x2 < 14;
max = 2 ∗ x1 + x2;
@GIN(x1); @GIN(x2);
Variable Value
X1 3.000000
X2 2.000000
3.4. BINÁRIS PROGRAMOZÁS 43
R1 R2 R3
F1 4 3 5 1
F2 5 4 7 1
F3 5 6 4 1
1 1 1
c.) z = 4x11 + 3x12 + 5x13 + 5x21 + 4x22 + 7x13 + 5x31 + 6x32 + 4x33 → min.
A feladat megoldása a Lingóval egyszerű. Példaként először az integer programozás-
nál bemutatott feladatot oldjuk meg úgy, hogy a változók bináris értékeket vehetnek
fel. Ezt a Lingo bemenő adataiban úgy tehetjük fel, hogy a változókra @BIN(Xi )
feltételt alkalmazzuk:
x1 < 3.5;
2 ∗ x1 + 2 ∗ x2<11;
4 ∗ x2<14;
max = 2 ∗ x1 + x2;
@BIN(x1); @BIN(x2);
44 3. FEJEZET: TOVÁBBI PROGRAMOZÁSI ESETEK
Variable Value
X1 1.000000
X2 1.000000
min = 4 ∗ x11 + 3 ∗ x12 + 5 ∗ x13 + 5 ∗ x21 + 4 ∗ x22 + 7 ∗ x23 + 5 ∗ x31 + 6 ∗ x32 + 4 ∗ x33 ;
A megoldás:
Variable Value
X11 1.000000
X12 0.000000
X13 0.000000
X21 0.000000
X22 1.000000
X23 0.000000
X31 0.000000
X32 0.000000
X33 1.000000
3.4. BINÁRIS PROGRAMOZÁS 45
Optimális megoldást kapunk tehát, ha F1 -ről R1 -be, F2 -ről R2 -be, és F3 -ról R3 -ba
telepítjük a berendezéseket, és ekkor a minimális költség 12.
(Kereshetnénk maximális költséget is, ennek értéke 17 lenne, és ekkor az 1 értéket
az x11 , x23 és az x32 venné fel.)
A feladat a felvett modell alapján egyszerűen megoldható az Excel Solverével, a
„táblázatos” módszerrel, de gyorsabban kapunk megoldást a „mátrixcserével”:
R1 R2 R3
F1 4 3 5 1
F2 5 4 7 1
F3 5 6 4 1
1 1 1
R1 R2 R3
F1 1 0 0 1
F2 0 1 0 1
F3 0 0 1 1
1 1 1 12
R1 R2 R3
F1 0 1 0 1
F2 1 0 0 1
F3 0 0 1 1
1 1 1 12
Lehetséges esetek:
1. A felvett célfüggvényekkel külön-külön optimumokat számolunk, és ezek alapján
adunk válasz a feladat kérdéseire.
3.5. Példa: Adjuk meg grafikus úton az alábbi feladatok összes optimális megoldását:
x ≥0
x1 − 2x2 ≤2
x2 ≥1 a) f (x ) = −5x1 + 10x2 → min
2x1 + x2 ≥6 b) g(x ) = −4x1 − 2x2 → max
−2x1 + x2 ≤0 c) h(x) = −2x1 + 2x2 → min
A lehetséges megoldások halmaza nyílt, az extremális pontok: Q1 (1, 5; 3), Q2 (2, 5; 1),
Q3 (4; 1).
Az f célfüggvény optimumai a Q3 kezdőpontú félegyenesen vannak:
3.5. TÖBBCÉLÚ LINEÁRIS PROGRAMOZÁS 47
x1 , x 2 ≥ 0
x1 + x2 ≤ 60
x1 + 2x2 ≤ 80
x2 ≤ 30
z1 = 2x1 + 5x2 → max .
z2 = x1 → max .
Kiszámolhatjuk az optimumokat külön az első és külön a második célfüggvénnyel.
A z1 célfüggvénnyel megoldva a feladatot: x 0 = [20 30]∗ , u 0 = [10 0 10]∗ és
z10 = 190.
A z2 célfüggvénnyel az optimum: x 0 = [60 0]∗ , u 0 = [0 20 30]∗ és z20 = 60.
Ha az első célfüggvénnyel kifejezett célunkat négyszer olyan fontosnak tartjuk, mint
a második célt (azaz 80% és 20% lesznek a súlyok), akkor a konvex lineáris kombiná-
cióval előálló kompromisszumos célfüggvény:
zk = 0, 8(2x1 + 5x2 ) + 0, 2x1 = 1, 8x1 + 4x2 → max .
Ezzel megoldva a feladatot az optimum: x 0 = [20 30]∗ , u 0 = [10 0 10]∗ és z0 = 156.
Ha mindkét célunkat egyenlő fontosságúnak vesszük, tehát a súlyok a kompro-
misszumos célfüggvény felvételéhez 0,5 és 0,5, akkor az optimumok:
48 3. FEJEZET: TOVÁBBI PROGRAMOZÁSI ESETEK
Dualitás, érzékenységvizsgálat
4.1. A dualitás
A lineáris programozást gyakran használják gazdasági problémák optimalizálására. A
gazdasági műveleteket többnyire két szempontból vizsgálhatjuk, amelyeknek megvaló-
sulása lehet például az eladó és a vevő nézőpontja, a beszállító és a felhasználó érdek-
viszonya, vagy hasonló, az adott gazdasági operációhoz tartozó elkülönülő érdek. A
lineáris programozási feladatok megfogalmazásában és megoldásában érvényesíthető a
kétféle nézőpont: az adott optimalizálási problémához elsőként felírt matematikai mo-
dellt primál modellnek nevezzük, az ugyanezen folyamatot a gazdasági partner szem-
pontjából tárgyaló feltételrendszert és célt pedig a duál modell írja le.
4.1. Példa: Egy üzemben kétféle terméket (I és II) készítenek négy erőforrás (A, B,
C, D) felhasználásával. A technológiai mátrix:
I. II.
A 0 2
B 8 12
C 4 3
D 3 0
Az erőforrásokból rendre maximum 120, 960, 360, 225 egységnyi áll rendelkezésre. Az
első termék egységára 90, a másodiké 32 euró. Cél: olyan termelési program meg-
adása, amely a lehető legnagyobb árbevételt eredményezi. Írjuk fel a primál és duál
matematikai modellt!
Megoldás: A döntési változó az egyes termékek darabszáma. A szokásos módon
49
50 4. FEJEZET: DUALITÁS, ÉRZÉKENYSÉGVIZSGÁLAT
x ≥ 0
2x2 ≤ 120
8x1 + 12x2 ≤ 960
4x1 + 3x2 ≤ 360
3x1 ≤ 225
z = 90x1 + 32x2 → max .
y ≥ 0
8y2 + 4y3 + 3y4 ≥ 90
2y1 + 12y2 + 3y3 ≥ 32
z = 120y1 + 9602 + 3003 + 225y4 → min .
4.1. A DUALITÁS 51
Definíció: az
Ax ≤ b (x ≥ 0)
z = f (x ) = c ∗ x → max.
és az A∗ y ≥ c (y ≥ 0)
z ′ = g(y) = b ∗ y → min .
feladatokat egymás duáljainak nevezzük. (Figyelem: a definícióban a b vektor nemne-
gatív voltát nem kötöttük ki!)
Tétel: Ha az
Ax ≤ b (x ≥ 0)
z = f (x ) = c ∗ x → max .
és az A∗ y ≥ c (y ≥ 0)
z ′ = g(y) = b ∗ y → min .
primál-duál párnál az x, illetve y lehetséges megoldás, akkor f (x ) ≤ g(y).
x ≥ 0
2x2 ≤ 120
8x1 + 12x2 ≤ 960
4x1 + 3x2 ≤ 360
3x1 ≤ 225
z = 90x1 + 32x2 → max .
4.1. A DUALITÁS 53
Megoldás:
A duál modell:
y ≥ 0
8y2 + 4y3 + 3y4 ≥ 90
2y1 + 12y2 + 3y3 ≥ 32
z = 120y1 + 960y2 + 300y3 + 225y4 → min .
B0 x1 x2 b B1 u4 x2 b B2 u4 u3 b
u1 0 2 120 u1 0 2 120 u1 8/9 −2/3 80
u2 8 12 960 u2 −8/3 12 360 u2 8/3 −4 120
u3 4 3 360 u3 −4/3 3 60 x2 −4/9 1/3 20
u4 3 0 225 x1 1/3 0 75 x1 1/3 0 75
−z 90 32 0 −z −30 32 −6750 −z −142/9 −32/3 −7390
Írjuk fel a (részletes) matematikai modell primál és duál alakját, adjuk meg az
optimális primál és duál megoldást, végezzünk ellenőrzést is!
54 4. FEJEZET: DUALITÁS, ÉRZÉKENYSÉGVIZSGÁLAT
Megoldás:
A modellek:
Primál: x ≥ 0 Duál: y ≥ 0
x1 − 3x2 + 2x3 ≤ 4 y1 − 2y2 + 2y4 ≥ 2
−2x1 + 2x3 ≤ 6 −3y1 + y3 − 2y4 ≥ 1
x2 + 4x3 ≤ 5 2y1 + 2y2 + 4y3 + y4 ≥ 1
2x1 − 2x2 + x3 ≤ 4 g(y) = 4y1 + 6y2 + 5y3 + 4y4 → min
f (x ) = z = 2x1 + x2 + 3x3 → max
x1 x2 x3 b x 1 u3 x 3 b u4 u3 x3 b
u1 1 −3 2 4 u1 1 3 14 19 u1 −1/2 2 19/2 12
u2 −2 0 2 6 u2 −2 0 2 6 u2 1 2 11 20
u3 0 1 4 5 x2 0 1 4 5 x2 0 1 4 5
u4 2 −2 1 4 u4 2 2 9 14 x1 1/2 1 9/2 7
−z 2 1 3 0 −z 2 −1 −1 −5 −z −1 −3 −10 −19
Az optimális megoldások:
y 0 = [0 0 3 1]∗ w 0 = [0 0 10]∗
Hasonlón haladhatunk a többi sor esetén, vagy akár a duál feladat sorainál is.
A célfüggvények:
f (x ) = z = 2x1 + x2 + 3x3 = 14 + 5 = 19
és
Az adattáblázat:
x1 x2 x3 b
f1 1 -3 2 0 <= 4
f2 -2 0 2 0 <= 6
f3 0 1 4 0 <= 5
f4 2 -1 1 0 <= 4
c* 2 1 3 0
x* 0 0 0
A megoldás táblázata:
x1 x2 x3 b
f1 1 -3 2 -8 <= 4
f2 -2 0 2 -14 <= 6
f3 0 1 4 5 <= 5
f4 2 -2 1 4 <= 4
c* 2 1 3 19
x* 7 5 0
Korlátozó feltételek
Cella Név Cellaérték Képlet Status Eltérés
$E$3 f1 –8 $E$3<=$G$3 Bőven 12
$E$4 f2 –14 $E$4<=$G$4 Bőven 20
$E$5 f3 5 $E$5<=$G$5 Éppen 0
$E$6 f4 4 $E$6<=$G$6 Éppen 0
Módosuló cellák
Redukált Objective Megengedhető Megengedhető
Cella Név Végérték költség Célegyüttható növekedés csökkenés
$B$8 x* x1 7 0 2 1E+30 2
$C$8 x* x2 5 0 1 1E+30 2,5
$D$8 x* x3 0 -10 3 10 1E+30
Korlátozó feltételek
Shadow Feltétel Megengedhető Megengedhető
Cella Név Végérték Árnyékár jobb oldala növekedés csökkenés
$E$3 f1 -8 0 4 1E+30 12
$E$4 f2 -14 0 6 1E+30 20
$E$5 f3 5 3 5 1E+30 5
$E$6 f4 4 1 4 24 14
A primál modell:
x ≥ 0
2x1 + x2 + x3 ≥ 5
x1 + 2x2 + 2x4 ≥ 4
x1 + 2x3 + x4 ≥ 10
z = 5x1 + 3x2 + 4x3 + x4 → min .
x1 x2 x3 x4 v1 v2 v3 b
û1 2 1 1 0 −1 0 0 5
û2 1 2 0 2 0 −1 0 4
û3 1 0 2 1 0 0 −1 10
z −5 −3 −4 −1 −1 −1 −1 0
−ẑ 4 3 3 3 −1 −1 −1 19
y ≥ 0
2y1 + y2 + y3 ≤ 5
y1 + 2y2 ≤ 3
y1 + 2y3 ≤ 4
2y2 + y3 ≤ 1
z = 5y1 + 4y2 + 10y3 → max
y1 y2 y3 b
w1 2 1 1 5
w2 1 2 0 3
w3 1 0 2 4
w4 0 2 1 1
−z 5 4 10 0
58 4. FEJEZET: DUALITÁS, ÉRZÉKENYSÉGVIZSGÁLAT
A megoldás:
B0 y1 y2 y3 b B1 y1 y2 w4 b B2 w3 y2 w4 b B3 w3 w1 w4 b
w1 2 1 1 5 w1 2 −1 −1 4 w1 −2 7 3 0 y2 − 72 − 71 − 73 0
w2 1 2 0 3 w2 1 2 0 3 w2 −1 6 2 1 w2 . − 67 . 1
4
w3 1 0 2 4 w3 1 −4 −2 2 y1 1 −4 −2 2 y1 . −7 . 2
w4 0 2 1 1 y3 0 2 1 1 y3 0 2 1 1 y3 . − 27 . 1
−z 5 4 10 0 −z 5 −16 −10 −10 −z −5 4 0 −20 −z − 27
7 − 74 − 12
7 −20
y 0 = [2 0 1]∗ w 0 = [0 1 0 0]∗ z0 = 20
y1 y2 y3 b
f1 2 1 1 5 <= 5
f2 1 2 0 2 <= 3
f3 1 0 2 4 <= 4
f4 0 2 1 1 <= 1
c* 5 4 10 20
y* 2 0 1
x >= 0
x >= 0
y1 , y2 >= 0
Természetesen eljárhatunk úgy is, hogy első lépésként a modellünkből tiszta mini-
mumfeladatot készítünk, és arra alkalmazzuk a definíciót.
Ha egy LP feladatban valamelyik feltétel egyenlőség, akkor a duáljában a neki
megfelelő változóra nincs előjelkorlát. Ha pedig valamelyik változóra nincs előjelkorlát,
akkor a duál feladatban a neki megfelelő feltétel egyenlőség. Az indoklást egy példával
mutatjuk be.
x >= 0
x >= 0
x ≥ 0
x1 + 2x2 + 2x3 ≥ 3
x1 + x3 = 2
x1 + x2 + x3 ≥ 1
z = f (x ) = 2x1 + 5x2 + 4x3 → min .
Írjuk fel a duál modellt és mindkét feladatot oldjuk meg!
Megoldás:
A duál modell: y1 ≥ 0, és y3 ≥ 0 (de y2 -re nincs előjelkorlát!)
y1 + y2 + y3 ≤ 2
2y1 + y3 ≤ 5
2y1 + y2 + y3 ≤ 4
z = g(y) = 3y1 + 2y2 + y3
′
→ max .
x1 x2 x3 b
f1 1 2 2 3 >= 3
f2 1 0 1 2 <> 2
f3 1 1 1 2 >= 1
c* 2 5 4 6
x* 1 0 1
Módosuló cellák
Redukált Objective Megengedhető Megengedhető
Cella Név Végérték költség Célegyüttható növekedés csökkenés
$B$6 x* x1 1 0 2 2 0,5
$C$6 x* x2 0 1 5 1E+30 1
$D$6 x* x3 1 0 4 0,5 2
Korlátozó feltételek
Shadow Feltétel Megengedhető Megengedhető
Cella Név Végérték Árnyékár jobb oldala növekedés csökkenés
$E$2 f1 3 2 3 1 1
$E$3 f2 2 0 2 1 0,5
$E$4 f3 2 0 1 1 1E+30
y1 y2 y3 c
f1 1 1 1 2 <= 2
f2 2 0 1 4 <= 5
f3 2 1 1 4 <= 4
b* 3 2 1 6
y* 2 0 0 max
Korlátozó feltételek
Shadow Feltétel Megengedhető Megengedhető
Cella Név Végérték Árnyékár jobb oldala növekedés csökkenés
$E$3 f1 2 1 2 2 0
$E$4 f2 4 0 5 1E+30 1
$E$5 f3 4 1 4 0 2
x∗
u A b
−z c∗ 0
u∗1 x∗2
x1 i bi1
A
u2 bi2
−z c∗i
1 c∗i
2 −z0
Rendezés után: i
· i
¸ · ¸ b1 0
A b1
· = bi2 − b2
c ∗i
02
−zo 0
Ez a képlet teszi lehetővé azt, hogy a szimplex-módszer alkalmazása során bármelyik
táblázatunk sorait ellenőrizzük.
A dualitás elvéből levezethető a táblázatok oszlopai ellenőrzésére szolgáló összefüg-
gés:
[ c1 * 0* ]·[A’] = [ 0* c2 * ] – [ c1 *’ c2 *’ ].
b∗1 0∗
u∗1 x2
c 1 x1 bl1 0
Ai
0 u2 bl2 b2
−z c∗i
1 c∗l
2 zo 0
∗
0 c∗2 0
Konkrétan:
1.) A peremsorokkal a táblázat kiegészítése úgy történik, hogy a legfelső sorba került
ui értékek fölé írjuk az eredeti kapacitásvektor megfelelő komponenseit, a szemközti
legalsó peremsorba a megfelelő helyekre nullákat írunk. Az ui értékekkel azonos sorban
lévő xi értékek fölé nullák kerülnek, a legalsó peremsorba a megfelelő helyekre pedig az
eredeti célfüggvény megfelelő együtthatóit írjuk.
2.) A peremoszlopokkal történő kiegészítés: a bal oldali oszlopba került xi értékek
mellé írjuk a megfelelő célfüggvény-együtthatókat, a szemközti jobb oldali peremosz-
lopba a megfelelő helyekre nullákat írunk. A bal oldali oszlopban maradt ui értékek
mellé nullák kerülnek, a szemközti jobb oldali oszlopba pedig a megfelelő kapacitásvek-
tor-komponensek.
A célfüggvényérték (z0 ) alá és mellé 0 kerül.
A táblázatunk kiegészítésével az ellenőrzés elméletileg levezetett módszere egysze-
rűen, szinte mechanikusan végrehajtható.
4.2. A SZIMPLEX-TÁBLÁZATOK ELLENŐRZÉSE 65
4.6. Példa: Egy normál LP feladat induló táblájában adott b = [40 37 27 26]∗ és
c = [5 8 5 7 2]∗ . Optimális táblaként a következőt kaptuk:
x 1 u4 u1 x 4 u2 b
x3 0 −1 1 0 0 14
x5 −1 −1 0 1 1 11
.
u3 2 2 −1 −2 −1 2
x2 1 1 0 1 0 26
−z −1 −1 −5 −3 −2 −300
0 26 40 0 37
x 1 u4 u1 x 4 u2 b
5 x3 0 −1 1 0 0 14 0
2 x5 −1 −1 0 1 1 11 0
0 u3 2 2 −1 −2 −1 2 27
8 x2 1 1 0 1 0 26 0
−z −1 −1 −5 −3 −2 −300 0
5 0 0 7 0 0
x 1 u2 x 3 u1 u3 b
x4 2 −1 −1 0 1
x2 −1 1 2 1 −1
x5 1 0 −1 −1 1
−z
0 50 0 60 100
x 1 u2 x 3 u1 u3 b
6 x4 2 −1 −1 0 1 50 0
9 x2 −1 1 2 1 −1 10 0
7 x5 1 0 −1 −1 1 40 0
−z −7 −3 −2 −2 −4 −670 0
3 0 3 0 0 0
y 0 = [2 3 4]∗ w 0 = [7 0 2 0 0]∗ .
x 1 u2 x 3 u1 u3 b x 1 u2 x 2 u1 u3 b
x4 2 −1 −1 0 1 50 x4 . . . . . 55
x2 −1 1 2 1 −1 10 Javítás: x3 . . . . . 5
x5 1 0 −1 −1 1 40 x5 . . . . . 45
−z −9 −1 2 0 −6 −650 −z −8 −2 −1 −1 −5 −660
4.3. Variánsszámítás
A variáns számításnál alapvetően azt vizsgáljuk, hogy a kapacitásvektor komponensei-
nek, vagy a célfüggvény-együtthatóknak a megváltozása a szimplex-táblázat szerkezetét
hogyan befolyásolja. Elvileg lehetnek változások az A mátrix elemei között is, de ez
egyrészt ritka, hiszen a megfelelő gazdasági feladatban ez többnyire technológia vál-
tozást jelent, másrészt az eljárás analóg azzal, amit a kapacitás, vagy a célfüggvény
megváltozásakor követünk.
A variánsszámításnál az ellenőrzés módszerét használjuk. A megfelelő szimplex-
táblázat peremértékeit egyszerűen kicseréljük a megváltozott értékekre és ezekkel ki-
számoljuk a táblázat új értékeit. Az új táblázatot javítjuk, ha szükséges.
Optimumok leolvasása:
4.4. Érzékenységvizsgálat
Az érzékenységvizsgálat algebrai módszerénél az a célunk, hogy meghatározzuk: az
optimális táblázat szerkezete milyen mértékű változtatásokat visel el, azaz a bi és a ci
értékek megváltoztatása után is optimális marad a megoldásunk.
Konkrétan: az érzékenységvizsgálatban arra keresünk válaszokat, hogy
a) milyen határok között módosíthatjuk a célfüggvény-együtthatóit úgy, hogy op-
timális maradjon a (primál) megoldás;
b) hogyan változtathatjuk meg a b, a kapacitásvektor komponenseit, hogy az adott
táblázat szerkezete (optimális volta) ne változzon meg.
Ha arra törekszünk, hogy a megváltoztatott kiindulási adatokkal ne változzon az
optimális tábla, akkor a szimplex-táblázatban kizárólag az utolsó oszlop, illetve az
utolsó sor adatai módosulhatnak.
Ha egy szimplex-táblázat optimális, akkor az utolsó oszlopában nem szerepelhetnek
negatív számok, és a célfüggvény sorában nem lehetnek pozitív értékek. Az érzékenység-
vizsgálatnál ezt a tényt használjuk ki. Módszerünket egy példán keresztül mutatjuk
meg.
u1 x 2 x 3 u4
x1 1/2 2 1/2 0
u2 0 −1 5 −1
u3 1 3 5 −2
x4 −1/2 −1 −1/2 1
−z
Adjuk meg a feladat optimális primál és duál megoldását! Végezzünk teljes érzékeny-
ségvizsgálatot!
70 4. FEJEZET: DUALITÁS, ÉRZÉKENYSÉGVIZSGÁLAT
Tehát z0 = 1, 5b1 + 450. Ez azt jelenti, hogy az első erőforrás árnyékára 1,5 (ez
az y 0 vektor első komponense), azaz az érzékenységi határok között az első erőforrás
értékét 1 egységgel növelve a célfüggvény értéke 1,5-del nő.
A b1 és a z0 között lineáris kapcsolat van, így a z0 határait a b1 határainak behe-
lyettesítésével kapjuk : 450 ≤ z 0 ≤ 900.
A b2 -re és a b3 -ra nem kell az ellenőrzési eljárást végigvinni. Ebből a két kapaci-
tásértékből az optimális táblázatban maradvány van, például a b2 -nél 50 egység. Az
eredeti kapacitásvektorban a b2 értéke 200 volt, így minden olyan b2 mellett optimális
marad a táblázat, amelyben b2 ≥ 200−50 = 150. A b2 ebben az intervallumban történő
változása a célfüggvény optimális értékét nem érinti, az marad 600.
Az érzékenységvizsgálat eredménye tehát b 2 -re: 150 ≤b 2 < ∞ és z 0 =600.
Hasonlóan b3 -ra (ez esetben is maradvány van: 150, eredetileg volt 350, tehát most
b3 ≥ 350 − 150 = 200): 200 ≤b 3 < ∞ és z0 =600.
Az érzékenységvizsgálat b4 -re ugyanúgy történik, mint b1 -re: a táblázatban u4 fölé
150 helyett b4 -et írunk és sorellenőrzést végzünk (az u1 fölé visszakerült a 100):
100 0 0 b4
u1 x2 x 3 u4 b
6 x1 1/2 2 1/2 0 β1 0
0 u2 0 −1 5 −1 β2 200
0 u3 1 3 5 −2 β3 350
3 x4 −1/2 −1 −1/2 1 β4 0
−z −3/2 −15 −9/2 −3 −zo 0
0 −6 −3 0 0
A feltételek:
Az első sorból b4 -re nincs feltétel (nullával szorozzuk az ellenőrzéskor).
A második sorból: −b4 = β2 − 200, azaz β2 = 200 − b4 ≥ 0, így b4 ≤ 200.
A harmadik sorból: 100 − 2b4 = β3 − 350, azaz β3 = 450 − 2b4 ≥ 0, így b4 ≤ 225.
72 4. FEJEZET: DUALITÁS, ÉRZÉKENYSÉGVIZSGÁLAT
50 ≤b 4 ≤ 200.
A b4 és a z0 összefüggése:
100 · −3
2
+ 0 · (−15) + 0 · −9
2
+ (−3) · b4 = −z0 − 0, azaz: z0 = 3b4 + 150.
100 0 0 150
u1 x 2 x 3 u4 b
c 1 x1 1/2 2 1/2 0 50 0
0 u2 0 −1 5 −1 50 200
0 u3 1 3 5 −2 150 350
3 x4 −1/2 −1 −1/2 1 100 0
−z γ1 γ2 γ3 γ4 −zo 0
0 −6 −3 0 0
3 ≤ c1 < ∞
100 0 0 150
u1 x 2 x 3 u4 b
6 x1 1/2 2 1/2 0 50 0
0 u2 0 −1 5 −1 50 200
0 u3 1 3 5 −2 150 350
c4 x4 −1/2 −1 −1/2 1 100 0
−z γ1 γ2 γ3 γ4 −zo 0
0 −6 −3 0 0
0 ≤ c 4 ≤ 6.
x >= 0
x1 + 2x2 + x3 <= 30
x1 + x3 <= 20
2x1 + x2 + x3 <= 35
x1 u1 u2
x2 0 1/2 −1/2
u3 1 −1/2 −1/2
x3 1 0 1
−z
Adjuk meg a primál és a duál optimális megoldást és végezzünk teljes érzékenységvizs-
gálatot!
0 30 20
x1 u1 u2
1 x2 0 1/2 −1/2 5 0
0 u3 1 −1/2 −1/2 10 35
4 x3 1 0 1 20 0
−z −2 −1/2 −7/2 −85 0
2 0 0 0
0 ≤ b2 ≤ 30 15 ≤ z0 = 15 + 3, 5b2 ≤ 120.
25 ≤ b3 < ∞ z0 = 85.
4.4. ÉRZÉKENYSÉGVIZSGÁLAT 75
A célfüggvény-együtthatókra:
−∞ < c1 ≤ 4 z0 = 85.
0 ≤ c2 ≤ 8 80 ≤ z0 = 80 + c1 ≤ 120
A megoldás táblázata:
x1 x2 x3 b
f1 1 2 1 30 <= 30
f2 1 0 1 20 <= 20
f3 2 1 1 25 <= 35
c* 2 1 4 85
x* 0 5 20 0
A leolvasható optimum:
x 0 = [0 5 20]∗ z0 = 85.
76 4. FEJEZET: DUALITÁS, ÉRZÉKENYSÉGVIZSGÁLAT
Korlátozó feltételek
Cella Név Cellaérték Képlet Status Eltérés
$E$3 f1 30 $E$3<=$G$3 Éppen 0
$E$4 f2 20 $E$4<=$G$4 Éppen 0
$E$5 f3 25 $E$5<=$G$5 Bőven 10
u 0 = [0 0 10]∗
Módosuló cellák
Redukált Objective Megengedhető Megengedhető
Cella Név Végérték költség Célegyüttható növekedés csökkenés
$B$7 x* x1 0 -2 2 2 1E+30
$C$7 x* x2 5 0 1 7 1
$D$7 x* x3 20 0 4 1E+30 2
Korlátozó feltételek
Shadow Feltétel Megengedhető Megengedhető
Cella Név Végérték Árnyékár jobb oldala növekedés csökkenés
$E$3 f1 30 0,5 30 20 10
$E$4 f2 20 3,5 20 10 20
$E$5 f3 25 0 35 1E+30 10
20 ≤ b1 ≤ 50 0 ≤ b2 ≤ 30 25 ≤ b3 < ∞.
30 − 10 = 20 ≤ b1 ≤ 30 + 20 = 50.
4.4. ÉRZÉKENYSÉGVIZSGÁLAT 77
20 ≤ b1 ≤ 50 és 80 ≤ z0 ≤ 95.
−∞ < c1 ≤ 4, 0 ≤ c2 ≤ 8, 2 ≤ c3 < ∞.
85 − 5 · 1 = 80 ≤ z0 ≤ 85 + 7 · 5 = 120.
x1+2*x2+x3<30;
x1+x3<20;
2*x1+x2+x3<35;
max=2*x1+x2+4*x3;
78 4. FEJEZET: DUALITÁS, ÉRZÉKENYSÉGVIZSGÁLAT
Az optimális megoldások:
Global optimal solution found.
Objective value: 85.00000
Variable Value Reduced Cost
X1 0.000000 2.000000
X2 5.000000 0.000000
X3 20.00000 0.000000
Row Slack or Surplus Dual Price
1 0.000000 0.5000000
2 0.000000 3.500000
3 10.00000 0.000000
A szokásos írásmóddal:
x 0 = [0 5 20]∗ u 0 = [0 0 10]∗ z0 = 85.
y 0 = [0, 5 3, 5 0]∗ w 0 = [2 0 0]∗ .
Az érzékenységvizsgálat nem alapbeállítás, ehhez a következők szükségesek:
– Felvisszük a modellt a Lingóban megkövetelt módon.
– A program fejlécén középen a LINGO oszlopban behívjuk az opciókat (Option,
rákattintunk).
– A felugró ablakban a General Solver fül bejelölése után az első oszlopban a Dual
Computations-nál a Prices § Ranges-t állítjuk be és okézzuk.
– Ezután megoldatjuk a modellt (Solve, vagy a „piros” ikon).
– A megoldásablak bezárása után a LINGO oszlopban a Range-re kattintva kapjuk
az érzékenységvizsgálat eredményeit:
Objective Coefficient Ranges
Current Allowable Allowable
Variable Coefficient Increase Decrease
X1 2.000000 2.000000 INFINITY
X2 1.000000 7.000000 1.000000
X3 4.000000 INFINITY 2.000000
Disztribúciós feladatok
A B C D
I 19 17 20 16 5
II 9,4 9,8 8,9 9,2 3
III 7,8 8 7,2 6,6 2
4 3 2 1
5.2. Példa: Adott két feladóállomás, a tőlük elszállítandó áru mennyisége rendre
70 és 30 egységnyi. 3 rendeltetési hely van, igényeik rendre 30, 20, 50 egységnyi. A
feladóhelyek és a rendeltetési állomások között minden esetben lehetséges szállítás. Az
egyes relációkban a szállítási költségek egy egység szállítására vonatkozóan:
80
5.1. A SZÁLLÍTÁSI FELADAT MATEMATIKAI MODELLJE 81
F1 -ből R1 -be: 1, F1 -ből R2 -be: 4, F1 -ből R3 -ba: 2, valamint F2 -ből R1 -be: 3, F2 -ből
R2 -be: 2, F2 -ből R3 -ba: 1. Készítsük el a minimális költségű szállítási tervet!
Áttekinthetőbb a probléma, ha táblázatot készítünk!
Az F1 és F2 feladóhelyekről az R1 , R2 , R3 célállomásokra adottak a mozgatandó
mennyiségek, és az egyes relációkban (Fi -ből Rj -be) az egységnyi szállítandó mennyi-
ségre jutó költségek:
R1 R2 R3
F1 1 4 2 70
F2 3 2 1 30
30 20 50
Megoldás: A döntési változó, az xij változó jelentse az egyes relációkban (azaz Fi -ből
az Rj -be) szállításra kerülő áru mennyiségét.
Felírható a modell induló feltétele: xij ≥ 0, ahol 1 ≤ i ≤ 2 és 1 ≤ j ≤ 3.
A feltételi relációkat a szállítandó mennyiségek határozzák meg:
x11 + x21 = 30
x12 + x22 = 20
x13 + x23 = 50
R1 R2 R3
30 40
F1 1 4 2 70
20 10
F2 3 2 1 30
30 20 50
A megoldás:
84 5. FEJEZET: DISZTRIBÚCIÓS FELADATOK
R1 R2 R3
F1 1 4 2 70
F2 3 2 1 30
30 20 50
R1 R2 R3
F1 0 0 0 0
F2 0 0 0 0
0 0 0
xij ≥ 0 (1 ≤ i ≤ m és 1 ≤ j ≤ n)
Xn
xij = fi (1 ≤ i ≤ m)
j=1
86 5. FEJEZET: DISZTRIBÚCIÓS FELADATOK
m
X
xij = rj (1 ≤ j ≤ n)
i=1
m X
X n
z= cij xij → min .
i=1 j=1
A B C D
I 19 17 20 16 5
II 9,4 9,8 8,9 9,2 3
III 7,8 8 7,2 6,6 2
4 3 2 1
A megoldás:
5.3. Példa: Írjuk fel a következő szállítási feladathoz tartozó matematikai modellt, a
szimplex induló táblát, ha a harmadik feladóhelyről az első célállomásra legalább 5, de
legfeljebb 10 egységnyi mennyiség szállítható! Cél a költség minimuma.
1 5 2 2 12
1 3 2 1 8
2 6 4 3 21
16 14 6 5
a) xij ≥ 0 (1 ≤ i ≤ 3, 1 ≤ j ≤ 4)
(Az x31 -re vonatkozó alsó és felső korlátokat a modellbe külön sorokban kell bevinni!)
c) z = x11 +5x12 +2x13 +2x14 +x21 +3x22 +2x23 +x24 +4x31 +6x32 +4x33 +3x34 → min.
5.1. A SZÁLLÍTÁSI FELADAT MATEMATIKAI MODELLJE 89
x11+x12+x13+x14=12;
x21+x22+x23+x24=8;
x31+x32+x33+x34=21;
x11+x21+x31=16;
x12+x22+x32=14;
x13+x23+x33=6;
x14+x24+x34=5;
x31>5;
x31<10;
min=x11+5*x12+2*x13+2*x14+x21+3*x22+2*x23+x24+4*x31+6*x32+4*x33+3*x34;
Variable
X11 11.00000
X12 0.000000
X13 1.000000
X14 0.000000
X21 0.000000
X22 8.000000
X23 0.000000
X24 0.000000
X31 5.000000
X32 6.000000
X33 5.000000
X34 5.000000
Variable
X11 0.000000
X12 6.000000
X13 6.000000
X14 0.000000
X21 6.000000
5.1. A SZÁLLÍTÁSI FELADAT MATEMATIKAI MODELLJE 91
X22 2.000000
X23 0.000000
X24 0.000000
X31 10.00000
X32 6.000000
X33 0.000000
X34 5.000000
R1 R2 R3 R4
F1 6 99 8 0 70
F2 7 6 7 99 60
F3 2 5 3 0 70
F4 8 99 7 0 20
80 70 40 30
R1 R2 R3 R4
F1 0 0 0 0 0
F2 0 0 0 0 0
F3 0 0 0 0 0
F4 0 0 0 0 0
0 0 0 0 0
R1 R2 R3 R4
F1 60 0 0 10 70
F2 0 60 0 0 60
F3 20 10 40 0 70
F4 0 0 0 20 20
80 70 40 30 930
R1 R2 R3 R4
F1 40 0 0 30 70
F2 0 60 0 0 60
F3 40 10 20 0 70
F4 0 0 20 0 20
80 70 40 30 930
5.5. Példa: Egy beruházó négy nagyobb ingatlan (F1 , F2 , F3 , F4 ) létesítésére kér ár-
ajánlatokat négy kivitelezőtől (R1 , R2 , R3 , R4 ). Mindegyik kivitelező csak egy munkát
kaphat meg. A beérkezett ajánlatok:
94 5. FEJEZET: DISZTRIBÚCIÓS FELADATOK
R1 R2 R3 R4
F1 52 48 54 55 1
F2 65 68 62 63 1
F3 48 50 46 45 1
F4 33 36 38 35 1
1 1 1 1
(Tehát például az F1 ingatlan kivitelezését az R2 48 pénzegységért vállalná.)
Minimálisan, illetve maximálisan mekkora összegért és milyen elosztásban valósít-
ható meg a beruházás?
Megoldás: A matematikai modell felvétele után (ahol az xij döntési változó értékei,
ha az i-edik ingatlant a j-edik kivitelező kapja, és 0 ez az érték, ha nem kapja meg –
tehát bináris programozásról lesz szó) a szállítási feladatnál megismert módon felírjuk
a feltételeket és a célfüggvényeket, majd, akár az Excel, akár a Lingo felhasználásával
megoldásokat kaphatunk. Rövidebb és talán áttekinthetőbb a „mátrixcsere”-módszerrel
történő megoldás. Az induló táblázat:
R1 R2 R3 R4
F1 52 48 54 55 1
F2 65 68 62 63 1
F3 48 50 46 45 1
F4 33 36 38 35 1
1 1 1 1
R1 R2 R3 R4
F1 0 0 0 0 0
F2 0 0 0 0 0
F3 0 0 0 0 0
F4 0 0 0 0 0
0 0 0 0 0
R1 R2 R3 R4
F1 0 1 0 0 1
F2 0 0 1 0 1
F3 0 0 0 1 1
F4 1 0 0 0 1
1 1 1 1 188
R1 R2 R3 R4
F1 0 0 0 1 1
F2 0 1 0 0 1
F3 1 0 0 0 1
F4 0 0 1 0 1
1 1 1 1 209
Bevezetés a játékelméletbe
A gazdasági életben is gyakran előfordul, hogy kettő vagy több döntéshozó egyidejűleg
tesz ajánlatot valamilyen cselekvés elvégzésére. Az egyénileg kiválasztott lehetőségek
befolyásolják a többi döntéshozó által elérhető eredményeket, azaz ellentétes érdekeltsé-
gűek a szereplők. Előfordulhat, hogy valamelyik résztvevő („ játékos”) nem természetes
személy, hanem például egy árucikk iránti kereslet valószínűsége vagy az időjárás. Te-
kintsük a következő döntési szituációt:
Az adott feltételek mellett döntést igényel, hogy milyen arányban vesse a termelő a G1
és a G2 fajtát, hogy a nyeresége a lehető legnagyobb legyen.
Hasonló problémák megoldása jól modellezhető a játékelmélet legegyszerűbb eseté-
vel, az ún. kétszemélyes zérusösszegű játékkal.
96
6.2. A LEHETSÉGES STRATÉGIÁK, A JÁTÉK VÁRHATÓ ÉRTÉKE 97
0 3 −1
−1 1 2
P =
5
0 1
−1 1 1
és ha az A a második sort, a B a harmadik oszlopot jelöli ki, akkor B fizet a sorjáté-
kosnak 2 pénzegységet. Ha az A a negyedik sort jelöli ki, a B pedig az első oszlopot,
akkor a sorjátékos −1 pénzt „fizet” az oszlopjátékosnak, azaz ekkor a B kap A-tól 1
pénzt.
Mindegyik játékban az A nyeresége megegyezik a B veszteségével, így a két játé-
kos nyereségének, illetve veszteségének összege nullával egyenlő. Ez indokolja a játék
„zérusösszegű mátrixjáték” elnevezését. A P mátrixot fizetési mátrixnak nevezzük.
Ha a játékot ismétlődően sokszor játszák, akkor a játékosok a sorokat, illetve osz-
lopokat célszerűen két alapelv szerint jelölik ki:
1. Azokat a sorokat, illetve oszlopokat részesítik előnyben a kijelöléskor, azaz na-
gyobb valószínűséggel úgy választanak, amelyek alapján a nyereségük várható értéke a
lehető legnagyobb.
2. Az egyes sorokat, illetve oszlopokat véletlenszerűen, tehát nem valamilyen kiis-
merhető rendszer szerint kell kiválasztaniuk. Ha valamelyikük kiismerhető stratégiával
játszik, akkor ezt az információt az ellenfél a döntésénél kihasználhatja.
A játékosok stratégiáját kifejezhetjük azokkal a valószínűségekkel, amelyekkel a so-
rokat, illetve oszlopokat kiválasztják. Az A játékos az egyes sorokat x1 , x2 ,..., xm
valószínűséggel, a B az oszlopokat y1 , y2 ,. . . , yn valószínűséggel választja ki. A valószí-
nűségeket vektoralakban is felírhatjuk:
x = [x1 , x2 , ..., xm ]∗
y ∗ = [y1 , y2 , ..., yn ]
Mind az A, mind a B a játékban biztosan választ, azaz az egyes valószínűségek
összege mindkét játékos esetén 1, azaz 1∗ · x = 1 és y ∗ · 1 = 1.
Adott fizetési mátrix esetén a játék várható értékére alsó és felső korlátokat adha-
tunk, ezt fejezi ki a következő
Tétel: A játék várható értéke a P mátrix legkisebb és legnagyobb értékei között talál-
ható, azaz: min pij ≤ x ∗ · P · y ≤ max pij .
x ∗ · P · y 0 ≤ V ≤ x ∗0 · P · y.
x ∗0 · P · y 0 ≤ V ≤ x 0 ∗ ·P · y 0 .
V = x ∗0 · P · y 0 .
Ha egy P mátrix optimális stratégiáit és így a játék értékét is ismerjük, akkor arra
a Q mátrixra vonatkozóan, amely a P-ből úgy keletkezik, hogy a P minden eleméhez
ugyanazt a k valós számot adjuk hozzá, az optimális stratégiák változatlanok marad-
nak. A Q által meghatározott játék értékét úgy kapjuk meg, hogy a P játék értékéhez a
100 6. FEJEZET: BEVEZETÉS A JÁTÉKELMÉLETBE
k számot hozzáadjuk. Így mindig elérhető, hogy az optimális stratégiákat olyan fizetési
mátrixra határozzuk meg, amelynek elemei között nincsenek negatív számok.
V ≤ x ∗0 · P · y.
Az összefüggés a B játékos minden lehetséges stratégiája esetén érvényes, így akkor is,
ha y = e j (j = 1, ] 2, . . . , n), azaz ha egységvektorok jelentik a B stratégiáját. Így:
V ≤ x ∗0 · P · e 1
V ≤ x ∗0 · P · e 2
..
.
V ≤ x ∗0 · P · e n
Az n egyenlőtlenség összevont alakban:
V · 1 ∗ ≤ x ∗0 · P · (e 1 , e 2 , ...e n )
V · 1 ∗ ≤ x ∗0 · P
1 · V ≤ P ∗ · x 0.
z = V → max .
x ≥0
x1 + x2 + · · · + xm = 1
z = V → max .
x1 , x2 ≥ 0
A korlátozó feltételek:
x1 + x2 = 1
V − 2x1 − 3x2 ≤ 0
102 6. FEJEZET: BEVEZETÉS A JÁTÉKELMÉLETBE
V − 4x1 − x2 ≤ 0
V − 6x1 − 5x2 ≤ 0
A célfüggvény:
z = V → max .
Az Excel induló tábla:
V x1 x2
F1 0 1 1 0 <> 1
F2 1 -2 -3 0 <= 0
F3 1 -4 -1 0 <= 0
F4 1 -6 -5 0 <= 0
V 1 0 0 0
mo 0 0 0 max
Az induló táblázatban a V -t is természetesen változóként kezeljük. Az optimalizá-
lást a Solverrel a szokásos módon végezzük el, az eredmény:
V x1 x2
F1 0 1 1 1 <> 1
F2 1 -2 -3 0 <= 0
F3 1 -4 -1 0 <= 0
F4 1 -6 -5 -3 <= 0
V 1 0 0 2,5
mo 2,5 0,5 0,5 max
Korlátozó feltételek
Shadow Feltétel Megengedhető Megengedhető
Cella Név Végérték Árnyékár jobb oldala növekedés csökkenés
$E$2 F1 1 2,5 1 1E+30 1
$E$3 F2 0 0,75 0 2 2
$E$4 F3 0 0,25 0 2 2
$E$5 F4 -3 0 0 1E+30 3
6.4. A KÉTSZEMÉLYES ZÉRUSÖSSZEGŰ MÁTRIXJÁTÉK 103
x1+x2=1;
v<2*x1+3*x2;
v<4*x1+x2;
v<6*x1+5*x2;
max=v;
x1+x2=1;
v<25*x1+5*x2;
v<20*x1+20*x2;
v<45*x2;
max=v;
A megoldás:
x1+x2+x3+x4=1;
v<-x2+5*x3-x4;
v<3*x1+x2+x4;
v<-x1+2*x2+x3+x4;
max=v;
A megoldás:
Matematikai modellezés,
esettanulmányok
106
107
Termelésprogramozás az iparban
108
1.1. A TERMELÉSPROGRAMOZÁSI FELADATOK MEGOLDÁSAI 109
A matematikai modell: x1 , x2 ≥ 0
x1 x2 b
f1 4 2 0 <= 240
f2 0 4 0 <= 160
f3 2 3 0 = 180
f4 1 1 0 >= 100
f5 1 0 0 >= 30
f6 20 40 0 >= 1000
c* 20 40 0 0
x* 0 0
A megoldási kísérletünk:
x1 x2 b
f1 4 2 240 <= 240
f2 0 4 120 <= 160
f3 2 3 180 = 180
f4 1 1 75 >= 100
f5 1 0 45 >= 30
f6 20 40 2100 >= 1000
c* 20 40 2100
x* 45 30
x1 x2 b
f1 4 2 240 <= 240
f2 0 4 120 <= 160
f3 2 3 180 = 180
f4 1 1 75 >= 75
f5 1 0 45 >= 30
f6 20 40 2100 >= 1000
c* 20 40 2100
x* 45 30
4*x1+2*x2<240;
4*x2<160;
2*x1+3*x2=180;
x1+x2>100;
x1>30;
20*x1+40*x2>1000;
max=20*x1+40*x2;
A matematikai modell: x1 , x2 , x3 , x4 ≥ 0
x2 + 4x3 + 2x4 ≤ 300
3x1 + x2 ≤ 100
x1 + x2 + x3 ≤ 150
x1 + x2 − x4 = 0
x2 − x4 ≥ 3
z = 6x1 + 5x2 + 8x3 + 7x4 → max .
x2+4*x3+2*x4<300;
3*x1+x2<100;
x1+x2+x3<150;
x1+x2-x4=0;
x2-x4>3;
max=6*x1+5*x2+8*x3+7*x4;
x1 ≥ 200
x2 ≥ 510
x3 ≥ 0
x4 ≥ 300
0, 1x1 + 0, 6x2 + 0, 1x3 + 0, 2x4 ≤ 746
0, 2x1 + 0, 1x2 + 0, 2x3 + 0, 1x4 ≤ 291
0, 2x1 + 0, 4x2 + 0, 1x3 + 0, 1x4 ≤ 594
z = 90x1 + 240x2 + 90x3 + 60x4 → max
A feladat megoldása
A bonyolultnak tűnő szövegből a modellalkotás algoritmusát felhasználva különö-
sebb nehézség nélkül felvehető a matematikai modell. A Solver adattáblázata:
x1 x2 x3 x4 b
f1 0,1 0,6 0,1 0,2 0 <= 746
f2 0,2 0,1 0,2 0,1 0 <= 291
f3 0,2 0,4 0,1 0,1 0 <= 594
f4 1 0 0 0 0 >= 200
f5 0 1 0 0 0 >= 510
f6 0 0 0 1 0 >= 300
c* 90 240 90 60 0 max
x* 0 0 0 0
x1 x2 x3 x4 b
f1 0,1 0,6 0,1 0,2 746 <= 746
f2 0,2 0,1 0,2 0,1 291 <= 291
f3 0,2 0,4 0,1 0,1 534 <= 594
f4 1 0 0 0 200 >= 200
f5 0 1 0 0 1010 >= 510
f6 0 0 0 1 300 >= 300
c* 90 240 90 60 332400 max
x* 200 1010 600 300
Az optimumok:
x1 x2 x3 x4 b
f1 0,1 0,6 0,1 0,2 746 <= 746
f2 0,2 0,1 0,2 0,1 291 <= 291
f3 0,2 0,4 0,1 0,1 594 <= 594
f4 1 0 0 0 800 >= 200
f5 0 1 0 0 1010 >= 510
f6 0 0 0 1 300 >= 300
c* 90 240 90 60 332400 max
x* 800 1010 0 300
x1 , x 2 ≥ 0
3x1 + 2x2 ≤ 18
4x1 ≤ 16
116 1. FEJEZET: TERMELÉSPROGRAMOZÁS AZ IPARBAN
2x1 + 4x2 ≤ 24
z = 3x1 + 2x2 → max .
Az extremális pontok: A(0; 0), B(4; 0), C(4; 3), D(3; 4,5), E(0; 6). Behúzzuk
1.1. A TERMELÉSPROGRAMOZÁSI FELADATOK MEGOLDÁSAI 117
x1 x2 b
F1 3 2 18 <= 18
F2 4 0 16 <= 16
F3 2 4 20 <= 24
c* 4 2 22 max
x* 4 3
x1 x2 b
f1 3 2 18 <= 18
f2 4 0 12 <= 16
f3 2 4 24 <= 24
c* 2,9999 2 17,9997
x* 3 4,5
A kettőnél több változós feladatoknál a z = 0 feltételnek már nem egyenes felel meg,
általában bonyolult dolog azt eldönteni, hogy a gyanított alternatív alapmegoldások
mely paraméterek milyen mértékű „átbillentésével” adódnak. A gyakorlatban előfor-
duló feladatoknál a számítógépen lévő adatok egyszerű módosításával kaphatunk más és
más optimumokat. Az alternatív optimumok keresésénél általában fontosabb az, hogy
a modell adatainak milyen határok között történő változtatásakor mikor kaphatunk
újabb megoldásokat. Erre a célra az érzékenységvizsgálat eredményeit használhatjuk
fel. Például az eredeti modellünk Excellel kapott optimális megoldásához (x 0 = [4 3]∗ ,
u 0 = [0 0 4]∗ , z0 = 22) tartozó érzékenységjelentés:
Módosuló cellák
Redukált Objective Megengedhető Megengedhető
Cella Név Végérték költség Célegyüttható növekedés csökkenés
$B$6 x1 4 0 4 1E+30 1
$C$6 x2 3 0 2 0,666666667 2
Korlátozó feltételek
Shadow Feltétel Megengedhető Megengedhető
Cella Név Végérték Árnyékár jobb oldala növekedés csökkenés
$D$2 F1 18 1 18 2 6
$D$3 F2 16 0,25 16 8 4
$D$4 F3 20 0 24 1E+30 4
x1 x2 b
f1 3 2 20 <= 20
f2 4 0 17 <= 17
f3 2 4 23 <= 24
c* 4 2 24,25 max
x* 4,25 3,625
x1 +x2 +x4 ≤ 90
x2 +x3 +x4 ≤ 80
x1 +x2 +x3 ≤ 50
z = 2x1 +3x2 +2x3 +2x4 → max .
A manuális megoldás is egyszerű szimplex módszerrel:
B0 x1 x2 x3 x4 b B1 x1 u3 x3 x4 b
u1 1 1 0 1 90 u1 0 −1 −1 1 40
u2 0 1 1 1 80 u2 −1 −1 0 1 30
u3 1 1 1 0 50 x2 1 1 1 0 50
−z 2 3 2 2 0 −z −1 −3 −1 2 −150
B2 x1 u3 x3 u2 b B3 u1 u3 x3 u2 b B4 u1 u3 x 2 u2 b
u1 1 0 −1 −1 10 x1 1 0 −1 −1 10 x1 . . . . 30
x4 −1 −1 0 1 30 x4 1 −1 −1 0 40 x4 . . . . 60
x2 1 1 1 0 50 x2 −1 1 2 1 40 x3 . . . . 20
−z 1 −1 −1 −2 −210 −z −1 −1 0 −1 −220 −z −1 −1 0 −1 −220
Alternatív optimum van:
x1 x2 x3 x4 b
f1 1 1 0 1 90 <= 90
f2 0 1 1 1 80 <= 80
f3 1 1 1 0 50 <= 50
c* 2 3 2 2 220
x* 10 40 0 40 max
x1 x2 x3 x4 b
f1 1 1 0 1 90 <= 90
f2 0 1 1 1 80 <= 80
f3 1 1 1 0 50 <= 50
c* 2 3 2 2 220
x* 11 38 1 41 max
x1 x2 x3 x4 b
f1 1 1 0 1 90 <= 90
f2 0 1 1 1 80 <= 80
f3 1 1 1 0 50 <= 50
c* 2 3 2 2 220
x* 30 0 20 60 max
x1 x2 x3 x4 b
f1 1 1 0 1 90 <= 90
f2 0 1 1 1 80 <= 80
f3 1 1 1 0 50 <= 50
c* 2 3 2 2 220
x* 26 8 16 56 max
G1 G2 G3 G4
T1 15 20 10 12
T2 10 8 11 10
T3 40 45 38 44
Az egyes gépsorok üzemeltetési ideje egy adott időszakban rendre legfeljebb: 300, 400,
350, 450. Az első termékből pontosan 30, a másodikból legalább 20, a harmadikból
legfeljebb 35 darab az igény.
Vegyük fel a matematikai modellt, ha a cél a gyártási összidő minimuma!
A modell felírása: A döntési változó legyen xij , és jelentse azt, hogy hány darabot
gyárt az i-edik termékből a j-edik gépsor. xij ∈ N + , és mindegyik terméket gyártják.
Üzemidő feltételek:
A célfüggvény:
z = 15x11 + 10x21 + 40x31 + 20x12 + 8x22 + 45x32 + 10x13 + 11x23 + 38x33 + 12x14 + 10x24 +
+44x34 → min .
x11 x12 x13 x14 x21 x22 x23 x24 x31 x32 x33 x34 b
f1 15 0 0 0 10 0 0 0 40 0 0 0 0 <= 300
f2 0 1 0 0 0 8 0 0 0 45 0 0 160 <= 400
f3 0 0 10 0 0 0 11 0 0 0 38 0 300 <= 350
f4 0 0 0 12 0 0 0 10 0 0 0 44 0 <= 450
f5 1 1 1 1 0 0 0 0 0 0 0 0 30 <> 30
f6 0 0 0 0 1 1 1 1 0 0 0 0 20 >= 20
f7 0 0 0 0 0 0 0 0 1 1 1 1 0 <= 35
c* 15 20 10 12 10 8 11 10 40 45 38 44 460 min
x* 0 0 30 0 0 20 0 0 0 0 0 0
x11 x12 x13 x14 x21 x22 x23 x24 x31 x32 x33 x34 b
f1 15 0 0 0 10 0 0 0 40 0 0 0 0 <= 300
f2 0 1 0 0 0 8 0 0 0 45 0 0 160 <= 400
f3 0 0 10 0 0 0 11 0 0 0 38 0 338 <= 350
f4 0 0 0 12 0 0 0 10 0 0 0 44 0 <= 450
f5 1 1 1 1 0 0 0 0 0 0 0 0 30 <> 30
f6 0 0 0 0 1 1 1 1 0 0 0 0 20 >= 20
f7 0 0 0 0 0 0 0 0 1 1 1 1 1 >= 1
f8 0 0 0 0 0 0 0 0 1 1 1 1 1 <= 35
c* 15 20 10 12 10 8 11 10 40 45 38 44 498 min
x* 0 0 30 0 0 20 0 0 0 0 1 0
Eszerint most már 1 darab készül a 3. termékből is és ezt a gyors 3. gép gyártsa.
1.1. A TERMELÉSPROGRAMOZÁSI FELADATOK MEGOLDÁSAI 125
x11 x12 x13 x14 x21 x22 x23 x24 x31 x32 x33 x34 b
f1 15 0 0 0 10 0 0 0 40 0 0 0 300 <= 300
f2 0 1 0 0 0 8 0 0 0 45 0 0 400 <= 400
f3 0 0 10 0 0 0 11 0 0 0 38 0 350 <= 350
f4 0 0 0 12 0 0 0 10 0 0 0 44 450 <= 450
f5 1 1 1 1 0 0 0 0 0 0 0 0 30 <> 30
f6 0 0 0 0 1 1 1 1 0 0 0 0 20 >= 20
f7 0 0 0 0 0 0 0 0 1 1 1 1 31,6 >= 1
f8 0 0 0 0 0 0 0 0 1 1 1 1 31,6 <= 35
c* 15 20 10 12 10 8 11 10 40 45 38 44 2070 max
x* 0 30 0 0 0 20 0 0 8 5 9 10
Hajtsunk végre egy olyan változtatást, hogy a 3. termékből minimum 31-et gyártani
kell, azaz az f7 sorában 1 helyett írjunk 31-et. Ekkor a megoldás:
x11 x12 x13 x14 x21 x22 x23 x24 x31 x32 x33 x34 b
f1 15 0 0 0 10 0 0 0 40 0 0 0 300 <= 300
f2 0 1 0 0 0 8 0 0 0 45 0 0 400 <= 400
f3 0 0 10 0 0 0 11 0 0 0 38 0 350 <= 350
f4 0 0 0 12 0 0 0 10 0 0 0 44 450 <= 450
f5 1 1 1 1 0 0 0 0 0 0 0 0 30 <> 30
f6 0 0 0 0 1 1 1 1 0 0 0 0 20 >= 20
f7 0 0 0 0 0 0 0 0 1 1 1 1 31 >= 31
f8 0 0 0 0 0 0 0 0 1 1 1 1 31 <= 35
c* 15 20 10 12 10 8 11 10 40 45 38 44 2022 min
x* 0 27,5 2,51 0 0 20 0 0 7,5 4,72 8,55 10,2
x11 x12 x13 x14 x21 x22 x23 x24 x31 x32 x33 x34 b
f1 15 0 0 0 10 0 0 0 40 0 0 0 300 <= 300
f2 0 1 0 0 0 8 0 0 0 45 0 0 399 <= 400
f3 0 0 10 0 0 0 11 0 0 0 38 0 342 <= 350
f4 0 0 0 12 0 0 0 10 0 0 0 44 440 <= 450
f5 1 1 1 1 0 0 0 0 0 0 0 0 30 <> 30
f6 0 0 0 0 1 1 1 1 0 0 0 0 20 >= 20
f7 0 0 0 0 0 0 0 0 1 1 1 1 31 >= 31
f8 0 0 0 0 0 0 0 0 1 1 1 1 31 <= 35
c* 15 20 10 12 10 8 11 10 40 45 38 44 2051 min
x* 0 30 0 0 2 18 0 0 7 5 9 10
I II III
A 1 2 5
B 3 1 4
C 2 2 4
D 4 4 6
x1 ≥ 250y1
x1 ≤ 660y1
x2 ≥ 100y2 és x2 ≤ 800y2
x3 ≥ 120y3 és x3 ≤ 320y2
A modellünk a Lingóban:
x1+2*x2+5*x3<1600;
3*x1+x2+4*x3<2000;
2*x1+2*x2+4*x3<2800;
4*x1+4*x2+6*x3<3600;
x1>250*y1;
x2>100*y2;
x3>120*y3;
x1<660*y1;
x2<800*y2;
128 1. FEJEZET: TERMELÉSPROGRAMOZÁS AZ IPARBAN
x3<320*y3
@gin(x1);@gin(x2);@gin(x3);@bin(y1);@bin(y2);@bin(y3);
max=120*x1*y1+80*x2*y2+200*x3*y3;
A megoldás:
Modellek a kereskedelemből és a
mezőgazdaságból
129
130 2. FEJEZET: MODELLEK A KERESKEDELEMBŐL. . .
a) xi ∈ N
b)
x1 + x2 = 4000
x1 ≥ 3000
x3 ≥ 3000
x4 ≤ 800
x1 + x2 + x3 + x4 = 8000
A célfüggvény: c) z = 6x1 + 20x2 + 20x3 + 18x4 → max .
A feladat megoldása
A megoldás Solverrel :
x1 x2 x3 x4 b
f1 1 1 0 0 4000 = 4000
f2 1 0 0 0 3000 >= 3000
f3 0 0 1 0 4000 >= 3000
f4 0 0 0 1 0 <= 800
f5 1 1 1 1 8000 = 8000
c* 6 20 20 18 118000
x* 3000 1000 4000 0 max
x1 x2 x3 x4 b
f1 1 1 0 0 4000 = 4000
f2 1 0 0 0 3214,3 >= 3000
f3 0 0 1 0 4000 >= 3000
f4 0 0 0 1 0 <= 800
f5 1 1 1 1 8000 = 8000
c* 6 20 20 18 115000
x* 3214 785,7 4000 0 érték
Az optimum módosult:
x1 x2 x3 x4 b
f1 1 1 0 0 4000 = 4000
f2 1 0 0 0 3214 >= 3000
f3 0 0 1 0 3998 >= 3000
f4 0 0 0 1 2 <= 800
f5 1 1 1 1 8000 = 8000
c* 6 20 20 18 115000
x* 3214 786 3998 2 egész
vízigény eladási ár
sárgarózsa 9 300
vörösrózsa 10 400
liliom 8 500
flamingó 13 1000
tulipán 5 200
frézia 6 180
kála 12 600
papagájvirág 15 1500
A felhasználható vízmennyiség maximum 700 liter.
A vevők a tulipánt kétszer annyira kedvelik, mint a vörös rózsát, a rendelésnél ezt
figyelembe vesszük.
A flamingó és a papagájvirág drága, ezért legfeljebb 2–2 tucatot rendelnek belőle.
Fréziából és sárga rózsából ugyanannyit kérnek.
Minden virágfajtából legalább 1 tucatot rendelnek.
A feladat megoldása:
Ha kellően rendezetten vesszük fel a matematikai modell relációit, akkor azokból
a gépi megoldás indulótábláját közvetlenül felvehetjük. Általában viszont indokolt
a matematikai modell szokásos alakjának kiírása, ugyanis a megoldásoknál sokszor
szükséges variánsok számolása áttekinthetőbben történhet.
A modell feltételeiben ritkán szokás egyszerűsítéseket tenni, mert ez termékmódo-
sulással járhat. A célfüggvényt tetszés szerint egyszerűsíthetjük, például ha túl nagyok
az együtthatók. Ez a döntési változók optimális értékeit nem befolyásolja, csak az op-
timum értékét kell „visszakorrigálni”. Esetünkben legyenek a célfüggvény-együtthatók
2.1. TERMELÉSPROGRAMOZÁS A KERESKEDELEMBEN 133
a virágok tucatjának árai. Így a kapott optimumot 12-vel szorozva kapjuk a maximális
árbevételt.
x1 x2 x3 x4 x5 x6 x7 x8 b
f1 9 10 8 13 5 6 12 15 0 <= 700
f2 0 2 0 0 −1 0 0 0 0 = 0
f3 0 0 0 1 0 0 0 0 0 <= 2
f4 0 0 0 0 0 0 0 1 0 <= 2
f5 1 0 0 0 0 −1 0 0 0 = 0
f6 1 0 0 0 0 0 0 0 0 >= 1
f7 0 1 0 0 0 0 0 0 0 >= 1
f8 0 0 1 0 0 0 0 0 0 >= 1
f9 0 0 0 1 0 0 0 0 0 >= 1
f10 0 0 0 0 1 0 0 0 0 >= 1
f11 0 0 0 0 0 1 0 0 0 >= 1
f12 0 0 0 0 0 0 1 0 0 >= 1
f13 0 0 0 0 0 0 0 1 0 >= 1
c* 300 400 500 1000 200 180 600 1500 0 max
x* 0 0 0 0 0 0 0 0
1 1 74,6 2 2 1 1 2
1 24,7 5 2 49,3 1 8 2
Ez a megoldás is furcsa, 0,7 és 0,3 tucatot nem nagyon lehet rendelni. Nem sokat
javul, ha egész értékű optimumokat kérünk, ekkor ugyanis:
1 24 5 2 48 1 8 2
134 2. FEJEZET: MODELLEK A KERESKEDELEMBŐL. . .
1 11 3 2 22 1 8 2
9*x1+10*x2+8*x3+13*x4+5*x5+6*x6+12*x7+15*x8<700;
2*x2-x5=0;
x4<2;x8<2;
x1-x6=0;
x1>1;x2>1;x3>1;x4>1;x5>1;x6>1;x7>1;x8>1;
max=300*x1+480*x2+500*x3+1000*x4+200*x5+180*x6+600*x7+1500*x8;
9*x1+10*x2+8*x3+13*x4+5*x5+6*x6+12*x7+15*x8<700;
2*x2-x5=0;
x4<2;x8<2;
x1-x6=0;
x1>1;x2>1;x3>1;x4>1;x5>1;x6>1;x7>1;x8>1;
300*x1+400*x2+500*x3+1000*x4+200*x5+180*x6+600*x7+1500*x8<25000;
300*x1+400*x2+500*x3+1000*x4+200*x5+180*x6+600*x7+1500*x8>15000;
x1<10;x3<10;x7<10; x2>4; x5>3;x5<10;
@gin(x1);@gin(x2);@gin(x3);@gin(x4);@gin(x5);@gin(x6);@gin(x7);@gin(x8);
max=300*x1+400*x2+500*x3+1000*x4+200*x5+180*x6+600*x7+1500*x8;
Variable Value
X1 10.00000
X2 5.000000
X3 10.00000
X4 2.000000
X5 10.00000
X6 10.00000
X7 10.00000
X8 2.000000
3. feladat (Kocsis Péter: Opt. döntések lin.pr. (15. oldal) nyomán): egy keres-
kedelmi cég a gyártól kétféle terméket rendel, négyféle kiszerelésben, 20–20 kartonnal
minden kiszerelésből. A termékek eladási egységárát, a kereskedelmi árrést és az egyes
kiszerelések kartonozási darabszámait ismerjük:
136 2. FEJEZET: MODELLEK A KERESKEDELEMBŐL. . .
I II Árrés% Kartonozás
A 52 78 30 36
B 65 117 30 16
C 90 180 20 12
D 96 240 20 6
Tapasztalatból tudjuk, hogy az I. termékből legalább kétszer annyi fogy, mint a II.-ból.
Ismert, hogy az A kiszerelésben az I. termékből legfeljebb annyit vásárolnak, mint
a II.-ból. Cél a maximális árbevétel.
Adjuk meg a modellt arra az esetre is, ha célunk a legnagyobb hozam!
A modell felvétele
Döntési változó: xij jelenti az i-edik kiszerelésben a j-edik termékből rendelt dara-
bok számát. Az induló feltétel: xij ∈ N
A korlátozó feltételek:
Egy kartonban 36, 16, 12, 6 darab van és 20–20 kartont kértünk:
x11 − x12 ≤ 0
A célfüggvény az árbevételre:
A célfüggvény a hozamra:
A feladat megoldása
A modellünk optimális megoldása Solverrel:
2.1. TERMELÉSPROGRAMOZÁS A KERESKEDELEMBEN 137
x11+x12=720;
x21+x22=320;
x31+x32=240;
x41+x42=120;
x11+x21+x31+x41-2*x12-2*x22-2*x32-2*x42>0;
x11-x12<0;
@gin(x11);@gin(x12);@gin(x21);@gin(x22);@gin(x31);@gin(x32);@gin(x41);@gin(x42);
max=52*x11+78*x12+65*x21+117*x22+90*x31+180*x32+96*x41+240*x42;
!max=12*x11+18*x12+15*x21+27*x22+15*x31+30*x32+16*x41+40*x42;
!max=(12*x11+18*x12+15*x21+27*x22+15*x31+30*x32+16*x41+40*x42)/
/(52*x11+78*x12+65*x21+117*x22+90*x31+180*x32+96*x41+240*x42);
A modell felvétele:
Az xi döntési változó a keverékek „darabszáma”.
Az induló feltétel: xij ∈N
A korlátozó feltételek (az alsó határok):
2x1 + x2 + x3 ≥ 5
x1 + 2x2 + 2x4 ≥ 4
x1 + 2x3 + x4 ≥ 10
Továbbá (a felső korlátok):
2x1 + x2 + x3 ≤ 10
x1 + 2x2 + 2x4 ≤ 8
x1 + 2x3 + x4 ≤ 20
A célfüggvény: z = 5x1 + 3x2 + 4x3 + x4 → min .
2.2. MEZŐGAZDASÁGI-AGRÁRIPARI MODELLEK 139
Az 1. feladat megoldása:
A modellünk eléggé egyszerű, a megoldás Solverrel, az egészértékűség feltételezése
nélkül:
x1 x2 x3 x4 b
f1 2 1 1 0 5 >= 5
f2 1 2 0 2 4 >= 4
f3 1 0 2 1 10 >= 10
f4 2 1 1 0 5 <= 10
f5 1 2 0 2 4 <= 8
f6 1 0 2 1 10 <= 20
c* 5 3 4 1 20
x* 0,571429 0 3,857143 1,714286 min
x* 1 0 3 3
x1 x2 x3 x4 b
f1 2 1 1 0 0 >= 5 <= 10
f2 1 2 0 2 0 >= 4 <= 8
f3 1 0 2 1 0 >= 10 <= 20
c* 5 3 4 1 0
x* 0 0 0 0 min
x1 x2 x3 x4 b
f1 2 1 1 0 7 >= 5 <= 10
f2 1 2 0 2 6 >= 4 <= 8
f3 1 0 2 1 10 >= 10 <= 20
c* 5 3 4 1 24
x* 2 0 3 2 min
2*x1+x2+x3>5;
x1+2*x2+2*x4>4;
x1+2*x3+x4>10;
2*x1+x2+x3<10;
x1+2*x2+2*x4<8
x1+2*x3+x4<20;
@gin(x1);@gin(x2);@gin(x3);@gin(x4);
min=5*x1+3*x2+4*x3+x4;
Variable Value
X1 1.000000
X2 0.000000
X3 3.000000
X4 3.000000
A modell felvétele:
Az xi döntési változó a zöldségfélék termelt mennyisége, xi ≥ 0.
A korlátozó feltételek az adatokból és az ismert korlátokból adódnak.
A matematikai modell:
Az induló feltétel: xi ≥ 0
A korlátozó feltételek:
1, 2x1 + 1, 1x2 + 0, 5x3 + 0, 9x4 + 0, 3x5 + 0, 8x6 + 1, 3x7 ≤ 120
53x1 + 14x2 + 3x3 + 20x4 + 16x5 + 23x6 + 10x7 ≤ 1156
4x1 + 4x2 + 2x3 + x4 + 2x5 + 2x6 + x7 ≤ 316
10x1 + 9x2 + 9x3 + 5x4 + 3x5 + 8x6 + 6x7 ≤ 313
15x1 + 10x2 + 5x3 + 9x4 + 13x5 + 15x6 + 9x7 ≤ 317
5x1 + 5x2 + 5x3 + x4 + x5 + 6x6 + 3x7 ≤ 319
x1 ≥ 2, x2 ≥ 4, x3 ≥ 1, x4 ≥ 3, x5 ≥ 1, x6 ≥ 5, x7 ≥ 1
A célfüggvény: z = 450x1 + 500x2 + 120x3 + 350x4 + 110x5 + 90x6 + 140x7 → max .
A feladat megoldása
Az Excel-táblában az A mátrix relatíve elég nagy, 13 sor és 7 oszlop.
142 2. FEJEZET: MODELLEK A KERESKEDELEMBŐL. . .
x1 x2 x3 x4 x5 x6 x7 b
f1 1,2 1,1 0,5 0,9 0,3 0,6 1,3 27,58 <= 120
f2 53 14 3 20 16 23 10 531,2 <= 1156
f3 4 4 2 1 2 2 1 89,2 <= 316
f4 10 9 9 5 3 8 6 235,2 <= 313
f5 15 10 5 9 13 15 9 317 <= 317
f6 5 5 5 1 1 6 3 131 <= 319
f7 1 0 0 0 0 0 0 2 >= 2
f8 0 1 0 0 0 0 0 15,8 >= 4
f9 0 0 1 0 0 0 0 1 >= 1
f10 0 0 0 1 0 0 0 3 >= 3
f11 0 0 0 0 1 0 0 1 >= 1
f12 0 0 0 0 0 1 0 5 >= 5
f13 0 0 0 0 0 0 1 1 >= 1
c* 450 500 120 350 110 90 140 10670 max
x* 2 15,8 1 3 1 5 1
92,42
624,8
77,8
226,8
0
188
11,8
1 3 2 2 1200
1 3 2 1 600
2 6 4 3 1000
1600 1400 1100 800
A termelők kikötése, hogy a teljes mennyiséget átvegyék tőlük.
A gyárak mindegyike legalább 150 tonnát szeretne vásárolni a 3. termelőtől.
Az üzletet szervező célja a lehető legkisebb szállítási költség elérése.
A matematikai modell:
A döntési változó xij , amely az i-edik termelőtől a j-edik gyárba szállítandó mennyi-
séget jelöli. Az induló feltétel: xij ≥ 0
A termelőktől a teljes mennyiséget el kell szállítani:
A célfüggvény:
z = x11 + 3x12 + 2x13 + 2x14 + x21 + 3x22 + 2x23 + x24 + 2x31 + 6x32 + 4x33 + 3x34 → min .
A feladat megoldása
Bevisszük a modellt a Lingóba:
x11+x12+x13+x14=1200;
x21+x22+x23+x24=600;
x31+x32+x33+x34=1000;
x11+x21+x31<1600;
x12+x22+x32<1400;
x13+x23+x33<1100;
x14+x24+x34<800;
x31>150;x32>150;x33>150;x34>150;
min=x11+3*x12+2*x13+2*x14+x21+3*x22+2*x23+x24+2*x31+6*x32+4*x33+3*x34;
Az optimális megoldás:
Variable Value
X11 1050.000
X12 0.000000
X13 150.0000
X14 0.000000
X21 0.000000
X22 0.000000
X23 0.000000
X24 600.0000
X31 550.0000
X32 150.0000
X33 150.0000
X34 150.0000
1 3 2 2 1200
1 3 2 1 600
2 6 4 3 1000
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
kapacitás egységár
széna 36 bála 500/bála
táp 1000 kg 300/kg
búza 1000 kg 150/kg
kukorica 500 kg 200/kg
víz korlátlan 15/liter
A modell felvétele
A döntési változó xi , az egyes állatfajták darabszáma a táblázat sorrendjében.
2.2. MEZŐGAZDASÁGI-AGRÁRIPARI MODELLEK 147
Az induló feltétel: xi ∈ N
Az építmények korlátai:
Nyulak száma: x1 ≥ 45, de x1 ≤ 50
Tyúkok száma: x2 ≤ 32
Kecskék száma: x3 ≤ 10
Libák száma: x4 ≤ 44
Kacsák száma: x5 ≤ 66
A legelő „kapacitása”: x3 + x4 ≤ 50
Beszerzés: 2000x1 + 10 000x2 + 1000x3 + 1500x4 + 1000x5 ≤ 300000
Havi költség: 3450x1 + 8475x2 + 2850x3 + 3900x4 + 2850x5 ≤ 600 000
A célfüggvény: z = 1000x1 + 4200x2 + 800x3 + 1500x4 + 1200x5 → max .
A feladat az eredeti esettanulmány rövidítése.
A modell megoldása
A feladat egyik érdekessége, hogy az adatok felmérése során az optimumszámítás-
hoz felesleges adatok is szerepelnek a szövegben. A havi költség kiszámításához való-
színűleg szükség volt a raktárra vonatkozó adatokra, de a modell felírásához nem volt
szükség ezekre. Előfordulhat, hogy olyan modellt veszünk fel, ahol ezeket az adatokat
is felhasználjuk, vagy a probléma megoldásához több modell szükséges.
A döntési változók optimális értékeit nem befolyásolja, ha a pénzben megadott
adatokat ezres mértékegységekben vesszük fel. Így a „nyers” megoldás Solverrel:
x1 x2 x3 x4 x5 b
f1 1 0 0 0 0 48,95 >= 45
f2 1 0 0 0 0 48,95 <= 50
f3 0 1 0 0 0 6,41 <= 32
f4 0 0 1 0 0 6 <= 10
f5 0 0 0 1 0 44 <= 44
f6 0 0 0 0 1 66 <= 66
f7 0 0 1 1 0 50 <= 50
f8 2 10 1 1,5 1 300 <= 300
f9 3,45 8,475 2,85 3,9 2,85 600 <= 600
c* 1 4,2 0,8 1,5 1,2 225,9 max
x* 48,95 6,41 6 44 66
148 2. FEJEZET: MODELLEK A KERESKEDELEMBŐL. . .
x0 * 46 7 6 44 66
Variable Value
X1 46.00000
X2 7.000000
X3 6.000000
X4 44.00000
X5 66.00000
Pénzügyi feladatok
1. feladat: (Kocsis Péter: Opt. döntések lin.pr. (23. oldal) nyomán): Adott négy
részvény jelenlegi árfolyama és a tőzsde 4 hónappal későbbi árfolyamelvárásai:
jelenlegi árfolyamelvárás
árfolyam (Ft/db)
A 13 800 16 600
B 14 600 15 500
C 2800 3100
D 3800 4200
A modell felvétele
A döntési változó az egyes részvények darabszáma: xi .
Az induló feltétel: xi ∈ N +
500 000
Az egyes részvényekből legalább ≈ 37, ill. 35, 179, 132 darabot veszünk.
13 800
Így a darabszámokra: x1 ≥ 37 és x1 ≤ 100, x2 ≥ 35, x3 ≥ 179, x4 ≥ 132.
Továbbá: x3 − 2x4 ≥ 0 („legalább kétszer annyit veszünk”).
13 800x1 + 14 600x2 + 2800x3 + 3800x4 ≤ 4 000 000 (a befektetés maximálisan 4
millió).
A célfüggvény: z = 2800x1 + 900x2 + 300x3 + 400x4 → max.
A modell megoldása
A modellünk megoldása egyszerű:
149
150 3. FEJEZET: PÉNZÜGYI FELADATOK
x1 x2 x3 x4 b
f1 1 0 0 0 100 >= 37
f2 0 1 0 0 35 >= 35
f3 0 0 1 0 574 >= 179
f4 0 0 0 1 132 >= 132
f5 1 0 0 0 100 <= 100
f6 0 0 1 −2 310 >= 0
f7 138 146 28 38 39998 <= 40000
c* 28 9 3 4 5365 max
x* 100 35 574 132
A modell felvétele:
A döntési változó, xij jelentse az i-edik alapba a j-edik társaságnál elhelyezett tőkét.
Az induló feltétel: xij ≥ 0, ahol 1 ≤ i ≤ 3 és 1 ≤ j ≤ 4.
A feltételi relációk:
A modell megoldása
Az Excel tábla eléggé terjedelmes (16 oszlop)
x11 x12 x13 x14 x21 x22 x23 x24 x31 x32 x33 x34 b
f1 1 1 1 1 0 0 0 0 0 0 0 0 5 <> 5
f2 0 0 0 0 1 1 1 1 0 0 0 0 3 <> 3
f3 0 0 0 0 0 0 0 0 1 1 1 1 2 <> 2
f4 1 0 0 0 1 0 0 0 1 0 0 0 4 <> 4
f5 0 1 0 0 0 1 0 0 0 1 0 0 3 <> 3
f6 0 0 1 0 0 0 1 0 0 0 1 0 2 <> 2
f7 0 0 0 1 0 0 0 1 0 0 0 1 1 <> 1
f8 1 0 1 0 0 0 0 0 0 0 0 0 5 >= 3
f9 0 0 0 0 0 0 0 0 0 1 0 0 2 <> 2
c* 19 17 20 16 9 10 9 9 8 8 7 7 141 max
x* 3 0 2 0 1 1 0 1 0 2 0 0
152 3. FEJEZET: PÉNZÜGYI FELADATOK
A B C D
I 19 17 20 16 5
II 9,4 9,8 8,9 9,2 3
III 7,8 8 7,2 6,6 2
4 3 2 1
A B C D
I 0 0 0 0 0
II 0 0 0 0 0
III 0 0 0 0 0
0 0 0 0 0
A B C D
I 3 0 2 0 5
II 1 1 0 1 3
III 0 2 0 0 2
4 3 2 1 141,4
Idegenforgalom
A modell felvétele:
A döntési változó az egyes utakat választók száma: xi . Az induló feltétel: xi ∈ N .
A korlátozó feltételek (legyen ezer forint a mértékegység a „pénzes” adatoknál):
100x1 + 120x2 + 200x3 + 120x4 ≥ 50000 (repülő)
50x4 ≥ 3000 (busz)
50x1 + 100x2 + 200x3 + 80x4 ≤ 100 000 (szállás)
6x1 + 2x2 + x3 + 3x4 ≥ 4(x1 + x2 + x3 + x4 ) (a preferáció miatt)
153
154 4. FEJEZET: IDEGENFORGALOM
A modell megoldása
Az adatainkkal optimális megoldás nem adódik, a Solver ezt jelzi:
x1 x2 x3 x4 b
f1 100 120 200 120 39 920 >= 50 000
f2 0 0 0 50 3300 >= 3000
f3 50 100 200 80 25 680 <= 100 000
f4 2 −2 −3 −1 138 >= 0
f5 1 0 0 0 200 >= 12
f6 1 0 0 0 200 <= 200
f7 0 0 1 0 12 >= 4
f8 0 0 1 0 12 <= 12
f9 0 1 0 0 80 >= 20
f10 0 1 0 0 80 <= 80
f11 0 0 0 1 66 <= 66
c∗ 230 280 500 250 90 900
x∗ 200 80 12 66 max
Látható, hogy az f1 feltétel nem teljesül. Ez azt jelenti, hogy a repülő igénybevéte-
lére felvett alsó korlát esetén a többi korlátozó feltétel miatt nem lehet megoldás. Az
f3 feltétel esetén viszont nagy a tartalék: a 100 000 felső korlátból csupán 25 680-at
használtunk fel, azaz a szállásköltségekre szánt pénzügyi korlát erősen túlzó.
Már az adatok felvételekor észrevehettük volna, hogy a repülési árakra kikötött 50
milliós alsó korlát nem teljesíthető, hiszen ha minden út esetén a maximális résztvevői
létszámmal (200, 66, 12, 80) számolunk, az összköltség akkor is csupán 39,92 millió. Így
155
x1 x2 x3 x4 b
f1 100 120 200 120 39 920 >= 35 000
f2 0 0 0 50 3300 >= 3000
f3 50 100 200 80 25 680 <= 100 000
f4 2 −2 −3 −1 138 >= 0
f5 1 0 0 0 200 >= 12
f6 1 0 0 0 200 <= 200
f7 0 0 1 0 12 >= 4
f8 0 0 1 0 12 <= 12
f9 0 1 0 0 80 >= 20
f10 0 1 0 0 80 <= 80
f11 0 0 0 1 66 <= 66
c∗ 230 280 500 250 90 900
x∗ 200 80 12 66 max
159,1304 80 12 60
156 79 12 64
198 54 4 66
156 4. FEJEZET: IDEGENFORGALOM
10*x1+12*x2+20*x3+12*x4>3500;
5*x4>300;
5*x1+10*x2+20*x3+8*x4<10000;
2*x1-2*x2-3*x3-x4>0;
x1>12;x1<200;x2>20;x2<80;x3>4;x3<12;x4<66;
@gin(x1);@gin(x2);@gin(x3);@gin(x4);
max=23*x1+28*x2+50*x3+25*x4;
2. feladat. (Kocsis Péter: Opt. döntések lin.pr. (35. oldal) nyomán): Egy légitársa-
ság egyik járatán 1 jegy 60000 forintba kerül. Ha mind a 100 ülőhelyet kihasználják,
akkor a jegyek árának 60%-a a cég haszna.
157
A modell felvétele
Az induló feltétel: xi ∈ N .
A korlátozó feltételek: x1 ≤ 120, x2 ≤ 4, x3 ≤ 3, x4 ≤ 3, x5 ≤ 2.
A „speciális” esetek: x2 + x3 + x4 + x5 + x6 ≤ 20
A gép „tele van”: x1 − x2 − x3 − x4 − x5 − x6 = 100
A célfüggvény felírásához: az út önköltsége utasonként 60 · 0, 4 = 24 ezer Ft. (60%
volt a nyereség, így a ráfordítás 40%.)
A teljes számított árbevételből (60000x1 ) le kell vonni a visszafizetéseket és a rá-
fordítást.
Így: z = 60x1 − 60x2 − 60x3 − 48x4 − 30x5 − 99x6 − 2400 → max (ezer forintban)
(Magyarázat: a 48 a 60-nak 80%-a, a 30 fele a 60-nak. A 99 úgy adódik, hogy 75
a kárpótlás, meg 24 a ráfordítás. A 2400 a 100 utas szállításának önköltsége.)
A modell megoldása
A megoldás Lingóval egyszerű (itt „egyben” láthatjuk a modellt is):
158 4. FEJEZET: IDEGENFORGALOM
x1<120;x2<4;x3<3;x4<3;x5<2;
x2+x3+x4+x5+x6<20;
x1-x2-x3-x4-x5-x6=100;
@gin(x1);@gin(x2);@gin(x3);@gin(x4);@gin(x5);
max=60*x1-60*x2-60*x3-48*x4-30*x5-99*x6-2400;
Az eredmények:
x1 x2 x3 x4 x5 x6 b
f1 1 0 0 0 0 0 105 <= 120
f2 0 1 0 0 0 0 0 <= 4
f3 0 0 1 0 0 0 0 <= 3
f4 0 0 0 1 0 0 3 <= 3
f5 0 0 0 0 1 0 2 <= 2
f6 0 1 1 1 1 1 5 <= 20
f7 1 -1 -1 -1 -1 -1 100 <> 100
c* 60 -60 -60 -48 -30 -99 6096 max
x* 105 0 0 3 2 0
alternatív optimuma van. Erről információt szerezhetünk úgy is, hogy például az x1
különböző értékeinél megvizsgáljuk, hogy milyen értékeket kapunk a célfüggvény op-
timumára. A Lingót használva egyszerűbb a dolgunk. Írjunk be a modellbe x1 -re
feltételt, legyen először x1 = 104. Ekkor a célfüggvény maximumaként 3684-et kapunk,
ez kisebb 3696-nál, ami valószínűsíti, hogy 105-nél kisebb x1 esetén már nem kapunk
optimális értékeket. Ha x1 -re 112-nél nagyobb értéket próbálunk ki, akkor szintén csök-
ken a célfüggvény értéke. A célfüggvény maximális értéke minden 105 és 112 közötti
egész értéknél 3696, ez azt jelenti, hogy bármelyiket választhatjuk, a döntésünket ebben
az intervallumban egyéb tényezők figyelembe vételével hozhatjuk meg.
A Solverrel számolva hasonlóan megkaphatjuk az alternatív optimumokat.
5. fejezet
Humánerőforrás tervezés
1. feladat (Kocsis Péter: Opt. döntések lin.pr. (34. oldal) nyomán): Egy cégnél a havi
összes bér 14,6 millió forint, amit szeretnének 10 millióra csökkenteni. A dolgozókat 4
bérkategóriában foglalkoztatják. Adottak az átlagbérek és a dolgozók száma:
A modell felvétele:
A döntési változó: xi az egyes kategóriákban elbocsátottak száma.
Induló feltétel: xi ∈N.
„A” -ban legfeljebb kétszer annyian, mint „B”-ben: 50 − x1 ≤ 2(40 − x2 )
Ebből: −x1 + 2x2 ≤ 30.
A „C”-ben legalább 14 fő marad: 30 − x3 ≥ 14, azaz: x3 ≤ 16.
„D”-ben minimum 6, de legfeljebb 12 fő: 6 ≤ 20−x4 ≤ 12, tehát: x4 ≤ 14 és x4 ≥ 8.
Létszámcsökkentés utáni béremelések:
160
161
x1 x2 x3 x4 b
f1 −1 2 0 0 0 <= 30
f2 0 0 1 0 0 <= 16
f3 0 0 0 1 0 <= 14
f4 0 0 0 1 0 >= 8
f5 96 120 132 165 0 >= 6860
célfv. 1 1 1 1 0 min
x∗ 0 0 0 0
A B C D E
Pr . menedzser 150 155 165 140 150
Könyvelő 0 145 160 0 200
Asszisztens 80 60 0 70 0
Mérnök 180 190 160 0 0
HR-es 130 100 120 130 135
A táblázatban a nullák azt jelentik, hogy azt a munkakört az illető cég jelenleg
nem keresi. Az adott munkakörökre a fejvadász cég 2, 2, 1, 2, 3 fő közvetítését tudja
teljesíteni.
Az eddigi kapcsolatok miatt az egyes cégeknek 0, 3, 3, 2, 2 fő iránti igényét fogadják
el. A cégek egy munkakörre egy főt foglalkoztatnának.
A fejvadász cég célja a maximális közvetítői jutalék elérése.
A modell felvétele
Az xij döntési változó jelentse az i-edik munkakörre a j-edik cégnek történt kiköz-
vetítést.
Az induló feltétel: xij ∈ {0; 1} (A változók csak bináris értékeket vehetnek fel.)
163
A feltételek munkakörönként:
A feltételek cégenként:
A B C D E
I 150 155 165 140 160 2
II 0 145 160 0 200 2
III 80 60 0 70 0 1
IV 180 190 160 0 0 2
V 130 100 120 130 135 3
0 3 3 2 2
A B C D E
I 0 1 1 0 0 2
II 0 1 0 0 1 2
III 0 0 0 1 0 1
IV 0 1 1 0 0 2
V 0 0 1 1 1 3
1470
0 3 3 2 2
Az optimális megoldás:
0 1 1 0 0
0 1 0 0 1
X=
0 0 0 1 0
0 1 1 0 0
0 0 1 1 1
A célfüggvény maximális értéke: z0 = 1470.
Ha a döntési változók bináris voltát nem tekintjük feltételnek, akkor a megoldás
táblázata:
A B C D E
I 0 0 2 0 0 2
II 0 0 0 0 2 2
III 0 1 0 0 0 1
IV 0 2 0 0 0 2
V 0 0 1 2 0 3
0 3 3 2 2 1550
x14+x24+x34+x44+x54=2;
x15+x25+x35+x45+x55=2;
max=150*x11+155*x12+165*x13+140*x14+150*x15+145*x22+160*x23+
+200*x25+80*x31+60*x32+70*x34+180*x41+190*x42+160*x43+130*x51+
+100*x52+120*x53+130*x54+135*x55;
A Lingo eredményei egybeesnek a Solverrel kapottakkal. A bináris feltételeket a
Lingoba a @bin(x) utasítással vihetjük be. Ezt használva az eredményünk már azonos
lesz a Solver megoldásával.
6. fejezet
Műszaki feladatok
1. feladat (Kocsis Péter: Opt. döntések lin.pr. (25. oldal) nyomán): Négy hőerőműtől
elvárt összes teljesítményigény 80 megawatt (MW). Ismertek a következők:
Max. teljesítmény Tüzelőanyag ára Fajlagos hőfogyasztás
MW Ft/GJ kJ/kWh
I 20 1100 10000
II 30 2000 7500
III 50 1000 12000
IV 60 1600 11250
Cél: az erőművek optimális igénybevétele úgy, hogy az 1 óra alatt felhasznált tüzelő-
anyag ára minimális legyen.
A modell felvétele
A döntési változó az egyes erőművek felhasznált teljesítménye: xi .
Az induló feltétel: xi ≥ 0.
A korlátozó feltételek egyszerűen felírhatók:
x1 ≤ 20, x2 ≤ 30, x3 ≤ 50, x4 ≤ 60, és
x1 + x2 + x3 + x4 = 80
A problémát a célfüggvény felvétele okozhatja a mértékegység-átváltások miatt.
(Gyakori, hogy a modell felírása szakemberek segítségét igényli).
Ft Ft Ft Ft
1 GJ = 1 GWs =1 1 = 3, 6 MWh
103 MW· h
3600
Az xi mértékegysége MW, így a tüzelőanyag árakat xi -vel szorozva Ft/órát, azaz órán-
kénti árakat kapunk.
166
167
B.) Az 1 óra alatt felhasznált tüzelőanyag árára vonatkozó költség minimuma legyen
a célunk.
Ebben az esetben a célfüggvény tört alakú lesz (hiperbolikus programozás).
z′
z ′′ = → min
z
Az optimális megoldások a három célfüggvény esetén különbözők lehetnek.
A modell megoldása
Legegyszerűbb a Lingo használata, amelyben egyszerre felírhatjuk mindhárom cél-
függvényt:
x1<20;x2<30;x3<50;x4<60;
x1+x2+x3+x4=80;
min=11*x1+20*x2+10*x3+16*x4;
min=11*x1+13*x2+12*x3+18*x4;
min=(11*x1+20*x2+10*x3*16*x4)/(11*x1+13*x2+12*x3+18*x4);
A célfüggvényeket egyszerűsített alakban írtuk be.
A megoldáskor egy célfüggvény legyen aktív, a többit (a sor elé írt felkiáltójellel)
felfüggesztjük.
Az első célfüggvénnyel x 0 = [20 0 50 10]∗ .
A második célfüggvénnyel x 0 = [20 10 50 0]∗ .
A harmadik célfüggvénnyel x 0 = [20 0 0 60]∗ .
A célfüggvények optimális értékei „visszaszorzásokkal” adódnak. Természetesen a
az egyes esetekben az összes primál-duál optimumot leolvashatjuk.
2. feladat (Kocsis Péter: Opt. döntések lin.pr. (81. oldal) nyomán): Egy kamion
rakodótere téglatest alakú, alapja 8 · 2, 4 méter és magassága 245 cm. A gépkocsikba
168 6. FEJEZET: MŰSZAKI FELADATOK
I II III IV V VI VII
A 2 1 1 0 0 0 0
B 0 1 0 3 2 1 0
C 0 1 2 0 1 2 4
üres
45 5 25 5 25 45 5
(cm)
A modell felvétele
A döntési változó: a raklaprétegek elhelyezési változatainak száma: xi , ahol az i
egy és hét közötti egész szám. Az induló feltétel: xi ∈ N
A korlátozó feltételek:
A modell megoldása
A Lingo-modellünk az egészértékűség feltételezése nélkül:
48*x1+24*x2+24*x3=1800;
24*x2+72*x4+48*x5+24*x6=2100;
24*x2+48*x3+24*x5+48*x6+96*x7=2400;
min=45*x1+5*x2+25*x3+5*x4+25*x5+45*x6+5*x7;
Az optimális megoldás: x 0 = [0 75 0 4, 17 0 0 6, 25]/∗. A célfüggvény értéke: 427,08.
169
x1 x2 x3 x4 x5 x6 x7 b
f1 48 24 24 0 0 0 0 1800 <> 1800
f2 0 24 0 72 48 24 0 2100 <> 2100
f3 0 24 48 0 24 48 96 2400 <> 2400
célfv. 45 5 25 5 25 45 5 427,1 min
x* 0 75 0 4,167 0 0 6,25
Disztribúciós feladatok
R1 R2 R3 R4
F1 4 3 5 6 40
F2 3 5 4 7 80
F3 2 3 5 4 90
70 70 40 20
A modell felvétele:
A matematikai modellt úgy vesszük fel, hogy az xij döntési változó jelentse az Fi -ből
az Rj -be szállítandó mennyiséget.
Ekkor az induló feltétel: xij ≥ 0, ahol 1 ≤ i ≤ 3 és 1 ≤ j ≤ 4.
A korlátozó feltételeket és a célfüggvényt tömörítve írjuk fel:
4
X
xij = fi
j=1
170
171
4
X 4
X
x1j = 40, x2j = 80.
j=1 j=1
A célfüggvény a szokásos:
3 X
X 4
cij xij → min .
j=1 j=1
R1 R2 R3 R4 R5
F1 4 3 5 6 0 40
F2 3 5 4 7 0 80
F3 2 3 5 4 0 90
70 70 40 20 10
R1 R2 R3 R4 R5
F1 99 3 5 6 0 40
F2 3 5 4 7 99 80
F3 2 3 5 4 99 90
70 70 40 20 10
R1 R2 R3 R4 R5
F1 0 0 0 0 0 0
F2 0 0 0 0 0 0
F3 0 0 0 0 0 0
0 0 0 0 0
A megoldás:
R1 R2 R3 R4 R5
F1 99 3 5 6 0 40
F2 3 5 4 7 99 80
F3 2 3 5 4 99 90
70 70 40 20 10
R1 R2 R3 R4 R5
F1 0 30 0 0 10 40
F2 40 0 40 0 0 80
F3 30 40 0 20 0 90
70 70 40 20 10 630
2. feladat (Kocsis Péter: Opt. döntések lin.pr. (79. oldal) nyomán): Egy cég 4
városban (A, B, C, D) 1–1 üzlethelyiséget bérelne négy ingatlanközvetítőtől, azonban
mindegyiktől csak egyet-egyet. A bérleti díjakra az ajánlatok (ezer Ft havonta):
I II III IV
A 160 120 100 140
B 80 90 100 80
C 80 90 60 60
D 130 160 140 120
173
Cél a költségmimimum.
Az ilyen típusú feladatokat hozzárendelési problémának nevezik. Ez olyan disztri-
búciós feladat, amelyben a sorok és oszlopok „végén” csupa egyes áll és az adatmátrix
négyzetes.
A modell felvétele
A matematikai modell döntési változója xij , amelynek értéke 1, ha az i-edik város-
ban a j-edik közvetítő ajánlatát elfogadjuk, más esetben xij = 0.
Így: xij ∈ {0, 1}.
A feltételek:
X4 4
X
xij = 1, xij = 1
j=1 i=1
A célfüggvény:
4 X
X 4
cij ·xij → min.
i=1 j=1
A megoldás:
Az Excelben a mátrixokat, vektorokat tetszőleges helyeken vehetjük fel:
R1 R2 R3 R4
F1 0 0 0 0 0 1
F2 0 0 0 0 0 1
F3 0 0 0 0 0 1
F4 0 0 0 0 0 1
0 0 0 0
1 1 1 1 0
R1 R2 R3 R4
F1 160 120 100 140
F2 80 90 100 80
F3 80 90 60 60
F4 130 160 140 120
R1 R2 R3 R4
F1 0 1 0 0 1 1
F2 1 0 0 0 1 1
F3 0 0 1 0 1 1
F4 0 0 0 1 1 1
1 1 1 1
1 1 1 1 380
R1 R2 R3 R4
F1 160 120 100 140
F2 80 90 100 80
F3 80 90 60 60
F4 130 160 140 120
R1 R2 R3 R4
F1 0 0 1 0 1 1
F2 0 1 0 0 1 1
F3 0 0 0 1 1 1
F4 1 0 0 0 1 1
1 1 1 1
1 1 1 1 380
R1 R2 R3 R4
F1 160 120 100 140
F2 80 90 100 80
F3 80 90 60 60
F4 130 160 140 120
Egészségügyi feladatok
1. feladat (Kocsis Péter: Opt. döntések lin.pr. (32. oldal) nyomán): Egy kórházban
háromféle műtétet végezhetnek két műtőben. Ismertek a következők:
A modell felvétele:
A döntési változó xij jelentése: az i-edik fajta műtétből a j-edik műtőben hányat
végeznek el. Induló feltétel: xij ∈ N.
A feltételek: x11 = 0, x12 ≥ 1, x12 ≤ 3. „A” típusú operációk a két műtőben.
x21 + x22 ≥ 8, x21 + x22 ≤ 25. „B” típusú operációk a két műtőben.
x31 + x32 ≥ 12, x31 + x32 ≤ 28. „C” típusú operációk a két műtőben.
Időkorlátok: 1, 5x21 + 2x31 ≤ 30, 8x12 + 1, 5x22 + 2x32 ≤ 60.
A célfüggvény: z = 8 · 60 000x12 + 1, 5 · 28 000x21 + . . . + 2 · 37 000x32 → min .
175
176 8. FEJEZET: EGÉSZSÉGÜGYI FELADATOK
Megoldás
A Solverrel a megoldás viszonylag egyszerű:
A modell felvétele
A döntési változó az egyes élelmiszerek napi adagja (100 g-ra).
xi ≥ 0 (i = 1, 2, . . ., 9) értelemszerűen i = 1 az első élelmiszernél és így tovább.
A feltételek: 159x1 + 85x2 + . . . + 40x9 ≥ 1225
178 8. FEJEZET: EGÉSZSÉGÜGYI FELADATOK
A modell megoldása
A feladatban megfogalmazott feltételekkel meglehetősen egyoldalú táplálkozást „ ja-
vasol” a matematikai modell:
x1 x2 x3 x4 x5 x6 x7 x8 x9 b
f1 159 85 19 424 67 164 78 35 40 1251 >= 1225
f2 159 85 19 424 67 164 78 35 40 1251 <= 1600
f3 6,5 2,2 2,7 48 3,6 12 0,8 0,2 1,5 51,3 <= 60
f4 6 3,1 33,3 0,16 5,3 0,6 0,2 8,1 8,5 50 >= 50
f5 6 3,1 33,3 0,16 5,3 0,6 0,2 8,1 8,5 50 <= 100
f6 19 12,8 7,8 0,02 3,4 13,5 17,5 1,2 0,6 150 >= 150
c* 33 111 50 80 25 22 110 20 25 264 min
x* 7,86 0 0,09 0 0 0 0 0 0
x1 x2 x3 x4 x5 x6 x7 x8 x9 b
f1 159 85 19 424 67 164 78 35 40 1253 >= 1225
f2 159 85 19 424 67 164 78 35 40 1253 <= 1600
f3 6,5 2,2 2,7 48 3,6 12 0,8 0,2 1,5 60 <= 60
f4 6 3,1 33,3 0,16 5,3 0,6 0,2 8,1 8,5 50 >= 50
f5 6 3,1 33,3 0,16 5,3 0,6 0,2 8,1 8,5 50 <= 100
f6 19 12,8 7,8 0,02 3,4 13,5 17,5 1,2 0,6 150 >= 150
c* 33 111 50 80 25 22 110 20 25 370 min
x* 5,18 0 0,53 0 0 2 1,18 0 5
„Egyéni” feladatok
Minden ember a legbelső magánszférájában is naponta számos döntést hoz. Ezek között
akadnak nagyobb horderejűek és vannak olyanok is, amikor a különböző lehetőségek
közül az optimálist célszerű kiválasztani. Változatos témaköröket lehet felsorolni ezen
a területen, például optimalizálható egy adott időszakra a tevékenységek sorrendje,
időigénye („napirend-optimalizálás”), a hangulatjavításra elérhető lehetőségek legjobb
kiválasztása, vagy egyéni, személyre szabott szervezési feladatok optimalizálása.
180
181
A modell felvétele
A döntési változó, az xi jelentse a fogyasztott italfélék darabszámát, a táblázatban
felsorolt sorrendben: 1 ≤ i ≤ 6.
Az induló feltétel: xi ∈ N . „Fenékig”
A korlátozó feltételek:
0, 2x1 + 0, 14x2 + 0, 35x3 + 0, 25x4 + 0, 3x5 + 0, 3x6 ≤ 1, 5 (alkoholszint)
3x1 + x2 − 3x3 + 2x4 + 4x5 − x6 − 2(x1 + x2 + x3 + x4 + x5 + x6 ) ≥ 0 (élvezeti érték)
20x1 + 8x2 + 10x3 + 15x4 + 22x5 + 20x6 ≤ 180 (3 óra, azaz 180 perc hosszan tarthat)
x3 ≤ 1, x4 = 2 (töményet csak mértékkel!)
x5 + x6 ≥ 2, x5 + x6 ≤ 4 (a koktélok)
x1 ≥ 2 (sör)
x1 + x2 ≤ 5. (sör és fröccs együtt)
Az eredeti dolgozat több italfajtát és más feltételeket is tartalmazott.
A célfüggvény: z = 240x1 + 100x2 + 130x3 + 350x4 + 420x5 + 450x6 → min .
Az eredeti dolgozatban korlát szerepelt az elkölthető pénzösszegre és az alkoholszint
maximalizálása volt a cél.
Végül ne felejtsük: Mértékletesség ↔ Egészség!
A modell megoldása
Az alapmodell Solverrel történő megoldása lényegében eléggé egyszerű, az adatbevi-
tel sem igényel különösebben hosszú időt. Ez a feladat elég sok egyéb feltétel csatolását
kínálja fel, illetve a korlátozó feltételeknél az eredeti modellben szereplő adatokat több
esetben érdemes megváltoztatni. A modell fenti alakjának megoldása:
x1 x2 x3 x4 x5 x6 b
f1 0,2 0,14 0,35 0,25 0,3 0,3 1,5 <= 1,5
f2 1 -1 -5 0 2 -3 6 >= 0
f3 20 8 10 15 22 20 114 <= 180
f4 0 0 1 0 0 0 0 <= 1
f5 0 0 0 1 0 0 2 <> 2
f6 0 0 0 0 1 1 2 >= 2
f7 0 0 0 0 1 1 2 <= 4
f8 1 0 0 0 0 0 2 >= 2
f9 1 1 0 0 0 0 2 <= 5
c* 240 100 130 350 420 450 2020 min
x* 2 0 0 2 2 0
2. feladat (Nyolc óra munka, nyolc óra szórakozás. . . ”) N.F. heti szabadideje optimá-
lis kihasználására készül, összesen 56 órára kíván programot összeállítani. Tévénézésre
naponta minimum 2, maximum 3 órát szán. Baráti kapcsolatai ápolására legalább 6
órát fordítana. Egy alkalommal horgászni menne, ami utazással együtt legalább 5 órát,
de legfeljebb 8 órát igényelne. Olvasgatással töltene naponta minimum fél, maximum
másfél órát. Kiszámíthatatlan egyéb tevékenységre legalább 15 órát számol. Az egyes
183
A modell felvétele
A döntési változók az egyes tevékenységekre fordított időtartamok: x1 a tévézés, x2
a barátkozás, x3 a horgászás, x4 az olvasgatás, x5 az egyéb tevékenységre fordított idő.
Az induló feltétel: x ≥ 0.
A korlátozó feltételek:
x1 + x2 + x3 + x4 + x5 = 56 (a teljes heti szabadidőt kihasználjuk)
x1 ≥ 14, x1 ≤ 21 (a tévézés idejének korlátai)
x2 ≥ 6 (barátokkal eltöltött idő)
x3 ≥ 5, x3 ≤ 8 (horgászat ideje)
x4 ≥ 3, 5, x4 ≤ 10, 5 (olvasgatásra szánt idő hetente)
x5 ≥ 15 (egyéb tevékenység ideje)
A célfüggvényt az időtartamokhoz rendelt súlyokkal is felvehetjük:
z = 1, 45x1 + 1, 75x2 + 1, 4x3 + 1, 5x4 + x5 → max
A modell megoldása
A Lingo használatával gyors eredményt kapunk az alapmodellre. Az adatok Lingó-
ban:
x1+x2+x3+x4+x5=56;
x1>14; x1<21;
x2>6;
x3>5; x3<8;
x4>3.5; x4<10.5;
x5>15;
max=1.45*x1+1.75*x2+1.4*x3+1.5*x4+x5;
184 9. FEJEZET: „EGYÉNI” FELADATOK
A megoldás:
185