You are on page 1of 12

1 Bevezetés

1.1 Operációkutatás
• A második világháború alatt alakult ki

• Leginkább optimalizálási feladatokkal foglalkozik


• Jelentős gazdasági vetülete van
• Alkalmazásorientált

Főbb területei:
• lineáris programozás

• készletgazdálkodás
• hálózati problémák
• sorbanállási problémák
• tömegkiszolgálási problémák

• szimuláció

1.2 Modellezés
1. A vizsgálat tárgyát képző tevékenységet felbontjuk véges sok, ún. elemi
tevékenységre.
Definı́ció. Elemi tevékenység: Teljes tevékenységnek az a pontosan
körülhatárolt része melyet már nem szándékozunk tovább bontani:
E1 , E2 , . . . , En .

2. Minden elemi tevékenységhez rendelünk egy pozitı́v valós számot xi :


ezeket intenzitásoknak nevezzük
3. Összefüggések kapcsolatok keresése.
Definı́ció. Feladat lehetséges megoldása: x̄ = (x¯1 , . . . ), x¯n . Ha x̄
minden feltételt kielégı́t. L = {x̄|x̄ lehetséges megoldás}

4. cél megfogalmazása: z : L → R függvény, amely a lehetséges megoldások


”jóságát” elemzi. z célfüggvény. (Amennyiben több célfüggvény is szere-
pel, többcélú optimalizálásról beszélünk.)

Definı́ció. A gyakorlati élet problémacsoportjait formálisan leı́ró modelleket


optimumszámı́tási modellnek nevezzük, amelyek egy feltételrendszerből és
egy vagy több célfüggvényből állnak.

Példa: Termelési feladat: Adott egy műhely, amely asztalokat, székeket, és
szekrényeket gyárt. A gyártás során kétféle anyagot használnak fel, egyfajta

1
lemezt, és egyfajta deszkát. Ezek korlátozott mennyiségben állnak rendelkezésre.
Feladat: olyan termék összetétel meghatározása, amely mellett a műhely ny-
eresége maximális.
Elemi tevékenységek kiválasztása:
• Egy asztal gyártása → x1

• Egy szék gyártása → x2


• Egy szekrény gyártása → x3
Intenzitások hozzárendelése. Jelölje:
l1 , l2 , l3 egy asztal, egy szék, egy szekrény elkészı́téséhez szükséges lemezek
számát
d1 , d2 , d3 egy asztal, egy szék, egy szekrény elkészı́téséhez szükséges deszkák
számát
c1 , c2 , c3 egy asztal, egy szék, egy szekrény gyártásából származó nyereséget
l, d a rendelkezésre álló lemezek illetve deszkák számát
A bevezetett jelölésekkel a tekintett probléma az ún. optimumszámı́tási
modellel ı́rható le, amely matematikai szempontból egy feltételes szélsőérték
feladat:

l1 · x 1 + l2 · x 2 + l3 · x 3 ≤ l
d1 · x1 + d2 · x2 + d3 · x3 ≤ d
c1 · x1 + c2 · x2 + c3 · x3 = z → max

ahol xi egész, és xi ≥ 0 (i = 1, 2, 3)

1.3 Optimumszámı́tási modellek osztályozása


1. Elemi függvények intenzitásértékétől függően:
• folytonos
• diszkrét
• vegyes

2. Modellben szereplő paraméterek szerint


• determinisztikus (paraméterek pontosan megadhatók)
• sztochasztikus (van olyan paraméter, ami valószı́nűségi változó)

3. Ha a feltételek mindegyike lineáis egynlőtlenség, vagy egyenlőség, akkor a


célfüggvény szerint:
• lineáris programozási feladat (célfüggvény is lineáris),
• nemlineáris programozási feladat

2
2 Lineáris programozás
Definı́ció. Az olyan többváltozós feltételes szélsőérték feladatot mely során
z : Rn → R lineáris függvény szélsőértékét keressük egy, vagy több lineáris
feltétel teljesülése mellett, lineáris programozási feladatnak (LP-feladatnak)
nevezzük. A z függvényt, amelynek szélsőértékét keressük célfüggvénynek
nevezzük.
Definı́ció. Az Rn tér azon pontjainak összessége, melyek az LP-feladat minden
feltételét kielégı́tik, a feladat lehetésges megoldásainak halmaza, melyet
L-lel jelölünk. (Talán lambda? vagy L?)

3 LP feladat alakjai
3.1 Standart alak
Definı́ció. Egy LP feladat standart alakú, ha
• feltételrendszere csak ≤ relációkat tartalmaz
• a változók csak nemengatı́v értékeket vehetnek fel
• a célfüggvény maximumát keressük
Tétel. Minden LP-feladat standart alakúra hozható
• Ha minimum feladatról van szó, akkor a célfüggvény (−1)-szeresét fogjuk
vizsgálni.
• Ha valamelyik feltétel ≥ relációval adott, helyette a (−1)-szeresét vesszük.
• Ha egy feltételben egyenlőség szerepel, azaz
ai1 x1 + ai2 x2 + · · · + ain xn = bi
akkor azt helyettesı́thetjük két egyenlőtlenséggel:
ai1 x1 + ai2 x2 + · · · + ain xn ≤ bi
ai1 x1 + ai2 x2 + · · · + ain xn ≥ bi

• Ha van olyan változó a modellben, melyre


– xj ≥ d (d ∈ R) a feltétel, akkor x′j := xj − d új változót bevezetve
x′j -re már az x′j ≥ 0 feltételnek kell teljesülnie
– xj ≤ e (e ∈ R) a feltétel, akkor x′j := e − xj új változót bevezetve
x′j -re már az x′j ≥ 0 feltételnek kell teljesülnie

– xj ∈ R a feltétel, azaz xj előjelkötetlen, akkor x′j := x+ ′′
j , xj := xj
′ ′′ ′ ′′
új változókat bevezetve xj , xj -re már az xj , xj ≥ 0 feltételnek kell

teljesülnie. A feltételrendszerbe xj = x′j − x′′j -t ı́runk. Ahol x+ j , xj
az x szám pozitı́v illetve negatı́v része.

3
3.2 Kanonikus alak
Definı́ció. Egy LP-feladat kanonikus alakú, ha
• feltételrendszere csak = relációkat tartalmaz

• a változók csak nemengatı́v értékeket vehetnek fel


• a célfüggvény maximumát keressük
Tétel. Minden standart feladat kanonikus alakúra hozható
Egy standart feladat feltételrendszerét úgy hozzhatjuk kanonikus alakra, hogy
a ≤ feltételek baloldalához ui ≥ 0 kiegészı́tő változókat adunk.
Ha nem standart feladatból indulunk ki, akkor a ≥ feltételek baloldalához vi ≥ 0
többletváltozót vonunk ki.
Definı́ció. A kiegészı́tő- és a többletváltozót összefoglaló néven eltérésváltozónak
nevezzük.

3.3 Normál feladat


Definı́ció. Egy LP-feladatot normál feladatnak nevezünk, ha
• feltételrendszere csak ≤ relációkat tartalmaz
• a változók csak nemengatı́v értékeket vehetnek fel

• a célfüggvény maximumát keressük


• a feltételek jobboldalán csak nemnegatı́v konstansok lehetnek
Megjegyzés. Amı́g minden feladat standart alakra ı́rható, a normál alakra hozás
nem mindig kivitelezhető

4
4 Lineáris programozási feladatok megoldása
4.1 Grafikus

4.2 Fourier módszer


• A célfüggvényt átı́rjuk egyenlőtlenséggé.
• Kiválasztunk egy z-től különböző váltzót, majd ezt kifejezzük miden egyenlőtlenségből.
• Az ı́gy kapott egyenlőtlenségek két csoportba sorolhatók
– a kifejezett változó kisebb, mint valamely lineáris kifejezés
– a kifejezett változó nagyobb, mint valamely lineáris kifejezés
• Az első csoport minden egyenlőtlenségét párosı́tjuk a második csoport
minden egyenlőtlenségével, és kiküszöböljük a rendszerből a kérdéses változót.
• Az eljárást addig folytatjuk, mı́g már csak egy változó (z) marad. Maxi-
mum feladat esetén a rá kapott felsőkorlátok legkisebbike, minimum fela-
dat esetén az alsó korlátok legnagyobbika lesz az optimum.
• Az optimum ismeretében az intenzitások meghatározhatóak

4.3 Szimplex módszer


4.3.1 Bázis-transzformáció
Tétel. Legyen b1 b2 . . . bn azRn tér egy bázisa. Tegyük fel, hogy a v ∈ Rn vektor
{bi }ni=0 bázisra vonatkozó koordinátái közül a k-adik nem 0. (vk ̸= 0). Ekkor a
{bi }ni=0 bázis k-adik elemét (bk ) a v vektorra kicserélve szintén bázist kapunk.
Vigyük be a v vektort a k-adik bázisvektor helyére.
Egy tetszőleges w vektor koordinátáit az új bázisra vonatkozóan az alábbiak
szerint lehet felı́rni:

5
1. A k-adik sor minden elemét osszuk le vk -val (a w esetében az új k-adik
koordináta tehát wk′ = wvkk )

2. A j-edik koordináta (j ̸= k) kiszámı́tása az alábbi formula szerint történik:


wk
wj′ = wj − vj · = wj − vj · wk′
vk

2·3
Ha az a2 , e2 metszetében lévő elemet (2) nézzük. 2 − 1 = −4

4.3.2 Megoldás
Szimplex tábla készı́tése a standart alak alapján.
A szimplex tábla elemei az alábbiak szerint változnak:
• A pivot elem helyére a reciprokát ı́rjuk
• A pivot elem sorában minden elemet elosztunk a pivotelemmel

• A pivot elem oszlopában minden elemet elosztunk a pivotelemmel és vesszük


az ellentetjét
• A többi elemet úgy számoljuk, mint a báziscserénél

A pivot elem választásánál két dologra kell figyelnünk:


• Lehetséges megoldáshoz szeretnénk jutni, azaz minden bázisváltozó nem-
negatı́v értékű legyen (szűk keresztmetszet szabály, alsó példán 35 < 47 < 42 ,
ezért választjuk a 3-ast pivot elemntek)
• A céfüggvény értéke ne csökkenjen (negatı́v célsorelem oszlopában válasszunk
pozitı́v pivot elemet)

6
5 Egészértékű programozási feladat (EP-feladat)
Előfordulhat olyan model, hogy az LP feladatban a változók csak egész értékeket
vehetnek fel. Ha az LP-feladat feltételrendszerében
• minden változó egészértékű ⇒ (tiszta) egészértékű
• a változók egy része egészértékű ⇒ vegyes egészértékű
• minden változó csak 0 és 1 lehet ⇒ bináris egészértékű
feladatról beszélünk

5.1 Egészértékű feladat megoldása


1. Megkeressük a modell folytonos optimumát (A feladat LP-lazı́tását oldjuk
meg)
2. • Ha nincs folytonos optimum, akkor az EP feladatnak sincsen opti-
muma
• Ha van folytonos optimum, akkor
– ha az optimális megoldás változói mind egészértékűek, akkor a
diszkrét optimum megegyezik a folytonos optimummal
– ha nem minden változó értéke egész szám, akkor
∗ korlátozás és szétválasztás modszerével (vegyes EP fe-
ladat)
∗ Gomory féle végési módszerrel (tiszta EP feladat)
oldjuk meg a feladatot

5.2 Korlátozás és szétválasztás módszere


Az EP feladatot (P1 ), (P2 ), (P3 ), . . . (Ps ) részfeladatokra bontjukú úgy, hogy

LPi ∩ LPj = ∅ (i ̸= j) LP1 ∪ LP2 ∪ · · · ∪ LPs = LEP

7
Az (EP) feladat (Pk ) részfeladatán a

c · x = z → max (x ∈ LPk )

feladatot értjük
Tétel Legyen a (Pk ) részfeladat LP lazı́tásának optimális megoldásában xj
változó optimális értéke x∗j
• Ha a (Pk1 ) részfeladatot az xj ≤ [x∗j ] feltétel csatolásával kapjuk, akkor a
(Pk1 ) LP lazı́tásának optimális megoldásában xj értéke [x∗j ]

• Ha a (Pk2 ) részfeladatot az xj ≥ [x∗j ]+1 feltétel csatolásával kapjuk, akkor


a (Pk2 ) LP lazı́tásának optimális megoldásában xj értéke [x∗j ] + 1
Korlátozás Két leggyakrabban alkalmazott keresési stratégia:
• legjobb korlát stratégia (szélességi keresés)

– Mindig azt a (Pk ) részfeladatot bontjuk fel, amelyik LP-lazı́tása a


legjobb célfüggvénnyel rendelkezik
– Előnyei: Célszerű a legjobb célfüggvény értéket igérő részfeladat megoldását
vizsgálni. Jól párhuzamosı́tható
– Hátrányai: A keletkezett részfeladatok LP-lazı́tésását mind meg kell
oldani. A feladatok száma gyorsan nő (nem zárhatunk ki részfeladatokat)
• LIFO(last in first out) stratégia (mélységi keresés)
– A (Pk ) feladat felbontása után csak az egyik részfeladat LP-lazı́tásával
foglalkozunk, a másik vizsgálatát későbbre hagyjuk
– A cél, hogy minél előbb egész megoldáshoz jussunk, mert akkor az
ennél kisebb célfüggvényértékkel rendelkező ágakat nem kell vizsgálni.

6 Lineáris programozási feladat duálisa


A duál feladat fogalma
Minden LP feladathoz (P) egyértelműen tudunk rendeli egy másik LP feladatot
az ún. duál feladatot (D)!
(P ) → (D)
A duál feladat szerepe:
• Duál feladat segı́tségével el lehet dönteni egy x ∈ L(P ) lehetséges pontról,
hogy optimális-e.
• Néha a duál feladatot könyebb megoldani

• A duál feladat optimális megoldása fontos gazdasági jelentéssel bı́r

8
Definı́ció. Standart alakú LP-feladat duál feladata:

Ax ≤ b yA ≥ c

 

x ≥ θn (P ) ⇒ y ≥ θ m
(D)
c · x = z → max
 
y · b = w → min 

Mivel (yA)T = AT y, ezért a második feltétel transzponáltját szokás ı́rni


Tétel. A (D) duál feladat duálja a (P) primál feladat
A (P)-(D) primál-duál feladatpér értelmezhező más LP-feladatokra is.

(P) (D)
célfüggvény maximum feladat minimum feladat célfüggvény
≤ bi yi ≥ 0
feltételek = bi yi előjelkötetlen változók
≥ bi yi ≤ 0
xj ≥ 0 ≥ cj
változók xj előjelkötetlen = cj feltételek
xj ≤ 0 ≤ cj

6.1 Dualitási tételek


Tétel. Gyenge dualitási tétel Ha x a (P) primál y pedig a duál (D) feladat
egy lehetséges megoldása, akkor c · x ≤ y · b, azaz a duál feladat minden egyes
célfüggvény-értéke nagyobb a primál feladat összes célfüggvény-érékénél

Következmény. Ha x∗ a (P) primál y ∗ pedig a duál (D) feladat egy lehetséges


megoldása, akkor c·x∗ = y ∗ ·b, akkor x∗ a primál y ∗ pedig a duál feladat egy-egy
optimális megoldása.

Tétel. Erős dualitási tétel


(a) Ha a (P)-(D) primál-duál pár valamelyikének van optimális megoldása
akkor van a duál párnak is megoldása, és
max{c · x|x ∈ L(P ) } = min{y · b|y ∈ L(D) }

(b) Ha a (P)-(D) primál-duál pár valamelyikének célfüggvénye nem korlátos a


lehetséges pontok halmazán, akkor a duál párnak nincs lehetséges megol-
dása.

A következő 2 tétel nem biztos, hogy kell:


Tétel. Komplementaritási tétel Legyen x a (P), y a (D) egy lehetséges megoldása.
Ezek pontosan akkor optimálisak, ha
)
y · (b − Ax) = 0
komplementaritási feltételek
(yA − c) · x = 0

9
Tétel. Farkas-lemma
c · x ≥ 0 teljesül ∀x ∈ Rn , melyre
 
yA = c-nek létezik

y ≥ θm megoldása Ax ≥ θm

Megjegyzés. Bebizonyı́tható, hogy

Farka lemma ⇔ Erős dualitási tétel

6.2 Duál feladat optimális megoldásának leolvasása


A primál feladat megoldásakor a duál feladatot is megoldjuk:
• Ha a feltételrendszerben szerepel = vagy ≥ reláció, akkor a szimplex algo-
ritmus során meg kell tartani a mestergéges kiegészı́tó váltózók oszlopait
is.
• Mind maximum, mind minimum feladat esetén
– az optimális tábla célsorából az ui kiegészı́tő, vagy ūi mesterséges
kiegészı́tő változók oszlopából leolvasható az yi duál változó optimális
értéke.
– Ha ui az optimális bázisban bázisváltozó, akkor yi optimális értéke
0.
• Az xi nembázisváltozók oszlopainak célsorából a duál eltérésváltozók értékét
olvashatjuk le.

6.3 Duál feladat haszna


• Árnyékár: Ha y ∗ egy optimális megoldás, akkor yi∗ megmutatja, hogy
mennyivel nőne a bevételünk, ha 1 egységgel több lenne a birtokunkban.
• Redukált költség: Ha a duál feladatnak nincsen alternatı́v optimuma,
akkor xj nembázis változó redukált költségét a j. duál feltétel eltérésváltozója
mutatja, hogy:
– mennyivel kell ennek a változónak a célegyütthatóját javı́tani, ahhoz,
hogy xj egy optimális megoldásban bázisváltozó legyen.
– az optimális célfüggvényérték mennyivel romlik, ha xj értékét 0-ról
1-re növeljük.

7 Hálózati folyam feladatok


7.1 Minimális költségű hálozati folyam (MKHF)
Példa:
• Egy régió m városában egy terméket gyártanak és árulnak

10
• Minden város esetében ismert a kı́nálat, és a kereslet különbsége bi , ha
bi > 0 akkor töblet árú van.
• Feltételezzük, hogy a nettó összkereslet megegyzeik a nettó összkı́nálattal
• Így a nettó kı́nálattal rendelkező városokból az árút át kell szállı́tani oda
ahol kereslet van
• A városokat egy gráf csúcsaival szemléltetjük
• Ahol lehetséges két véros között a szállı́tás, oda irányı́tott éleket rajzolunk
• Az adott élen való szállı́tás fajlagos költségéet az él fölé ı́rt számmal
jelöljük (ci )
• bi értékeit a csúcsok fölé ı́rjuk
• Célunk, hogy a vérosok igényeit kielégı́tsük úgy, hogya a szállı́tási költség
minimális legyen

A probléma egy m csúcsú irányı́tott gráffal modellezhető


A problémát egy olyan LP feladat definiálja, ahol az LP feladat együtthatói a
gráf illeszkedési mátrixa Az MKHF-probléma egy lehetséges megoldásának op-
timalitását a komplementaritási tétel segı́tségével vizsgáljuk

7.2 Megoldás
Tétel A primál feladat egy lehetséges megoldása akkor és csak akkor optimális,
ha
∀xij > 0 esetén yi − yj = cij
A primál feladat egy lehetséges megoldásának optimalitásának szükséges és
elégéséges feltétele az, hogy minden xij nem-bázisváltozóra cij = yi −yj −cij ≤ 0
A cij értéket az ij él redukált költségének nevezzük Alapötlet:
• Tekintsünk egy primál lehetséges megoldást
• A komplementeritási feltétel alapján meghatározzuk a duál változók egy
értékrendszerét

• Ellenőrizzük, hogy ez az érétékrendszer kielégı́ti-e a duál feladat feltételrendszerét


• Ha igen akkor optimális megoldással rendelkezünk
• Ha nem akkor a primál feladat lehetséges megoldását javı́tjuk

Hogyan javı́tható az MKHF-probléma egy lehetséges megoldása


• Tegyük fel, hogy ismerjük az MKHF feladat egy lehetséges bázismegoldésát,
amelyet a hálozatban egy feszı́tőfa reprezentál

11
• A feszı́tőfa éleihez tartozó folyamértékek a bázisváltozók aktuális értékei
• At yi − yj = cij feltételek segı́tségével a duál változók egy értékrendszerét
meghatározzuk
• Egyel kevesebb feltétel van mint, duálváltozó, általában y1 = 0 értékadással
indı́tunk
• Nem-bázis változók esetén ellenőrizzük az yi − yj ≤ cij feltételeket
• Ha ez min dteljesül, akkor készen vagyunk
• Ha nem akkor azt az xij változót vonjuk be a bázisba, amelyre

cij = yi − yj − cij ≥ 0

érték a legnagyobb

7.2.1 Hálózati szimplex transzformáció


• Az előbb meghatározott xij változóhoz tartozó éllel kiegészı́tjük a feszı́tőfát.

• A gráfban ekkor egy kör keletkezik


• Mivel cij = yi − yj − cij > 0 az {i, j} élen a folyam értékét 0-ról pozitı́vra
változtatva a célfüggvény javulni fog
• Addig növeljük az {i, j} élen a folyamot, amı́g a gréfban valamelyik élen
a folyam erőssége le nem csökken 0-ra

• Így az előzőnél jobb bázismegoldást kapunk


• Ellenőrizzük az új megoldás optimalitását

12

You might also like