Operációkutatás I.
Bajalinov Erik és Imreh Balázs Operációkutatás c.
jegyzete alapján készítette:
Bartalos István
A tantárgy lehetséges kódjai: IB203, I203 Megjegyzések:
1. Csak a lineáris programozással foglalkozunk – ez spec. esete az opkut-nak 2. A fenti jegyzeten kívül számos olyan jó jegyzet/könyv létezik, amely
eredményesen használható.
3. A kurzuson csak az elhangzott anyagot kérjük számon.
(2008.márc.04-i állapot)
1. Az operációkutatás tárgya: feltételes szélsőérték feladatok megoldása
2. Feltételes szélsőérték feladat:
Adott
f : L
Rn
Rlehetséges megoldások
halmaza(zárt)
f értelmezési tartománya (f legalább folytonos L-en)Keresünk olyan x*L , melyen f
x* minxL f
xOptimális
megoldás f folyt. a zárt L-en
inf helyett min írható
1. Áttekintés
3. Lineáris programozási (röviden LP) feladat: olyan feltételes
szélsőérték feladat, melyben adott lineáris függvény (a célfüggvény) minimumát (vagy maximumát) keressük értelmezési tartományának ismert lineáris korlátokkal megadott részében (azaz L-ben)
Megjegyzés: Lineáris korlátjainkban csak a
, ,
relációk állhatnak(< és > nem, az L zártsága miatt)
4. Egyszerű példák LP feladatokra
0 ,
,
8 2
4 3
11 2
4
5
3 2
3 2 1
3 2
1
3 2
1
3 2
1
x x x
x x
x
x x
x
x x
x
min 3
4 5
5
x1 x2 x3 z 0 ,
1
5 2
7
3
6
3 2
3 2
1
4 2
4 3
2 1
x x
x x
x
x x
x x
x x
min
3
2
1 2 x x z
x
1 ésx
4tetsz. előjelű!!
5 .
5. Adott LP feladat lehetséges(fizibilis) megoldásán olyan valós szám n-est értünk,amely kielégíti a feladat feltételrendszerét.
6. Adott LP feladat optimális megoldásának olyan lehet-
séges megoldását nevezzük, ahol a feladat célfv-ének értéke minimális(maximális)
7. A nevezetes diéta probléma (egyszerűsített változat): Polly 7
szeretné étkezési költségeit csökkenteni úgy, hogy szervezete a naponta szükséges energiát(2000 kcal),fehérjét(55g) és
kalciumot(800mg) mégis megkapja
Választható
ételek energia tar-
talom (kcal) fehérje
tartalom (g) kalcium
tartalom (mg) ár (centben) Zabkása
(1adag 28g) 110 4 2 3 Csirke
(1 adag 100 g) 205 32 12 24 Tojás
(1 adag 2 db) 160 13 54 13 Tej
(1 adag 237cm3) 160 8 285 9 Pite
(1 adag 170g) 420 4 22 20 Bab hússal
(1 adag 260g) 260 14 80 19
1 adagra vonatkozó
Hogy étkezése ne legyen egyhangú, az egyes ételekből fogyaszt- Hogy étkezése ne legyen egyhangú, az egyes ételekből fogyaszt-
ható adagok számát korlátozza:
ható adagok számát korlátozza:
zabkása adagszáma ≤ 4
csirke ″ ≤ 3
tojás ″ ≤ 2
tej ″ ≤ 8
pite ″ ≤ 3
sólet ″ ≤ 2 Hogyan tud a legolcsóbban étkezni?
Hogyan tud a legolcsóbban étkezni?
A feladat LP modellje:
Változók: x1: napi zabkása adagszám x2: -||- csirke -||-
x3: -||- tojás -||- x4: -||- tej -||- x5: -||- pite -||- x6: -||- sólet -||-
energia alsó korlát: 110x1+205x2+160x3+160x4+420x5+260x6 ≥ 2000 fehérje alsó korlát: 4x1+32x2+13x3+8x4+4x5+14x6 ≥ 55
kalcium alsó korlát: 2x1+12x2+54x3+285x4+22x5+80x6 ≥ 800 zabkása felső korlát: x1 ≤ 4
csirke felső korlát: x2 ≤ 3 tojás felső korlát: x3 ≤ 2 tej felső korlát: x4 ≤ 8 pite felső korlát: x5 ≤ 2 sólet felső korlát: x6 ≤ 2
az adagszámok nem-negatívak: x1≥ 0, x2≥ 0, x3≥ 0, x4≥ 0, x5≥ 0, x6≥ 0 Napi költsége (célja): 3x1+24x2+13x3+9x4+20x5+19x6 → min
Megj.: x1,x2,…,x6 az egyes tevékenységek (az evések) mértékének vagy intenzitásának is tekinthető. Ekkor [x1,x2,…,x6] ε L egy lehetséges cselekvési terv, azaz program ( innen(?) származik a lineáris programozás elnevezés)
6 2
1
, x , , x
x
x1,x2,,x6
L8. Másik példa: egy keverési feladat: egy olajfinomítóban négyféle anyagot desztillálnak, amit az alábbi táblázat ír le:
oktánszámpárolgási nyomás
napi termelés (barrel)
alkilát 107 5 3814
krakkolt 93 8 2666
sima 87 4 4016
izopentán108 21 1300
A termékek mindegyike értékesíthető 4,83 $/barrel egységáron, vagy összekeverhető kétfajta repülőbenzinné, melyek paraméterei és árai:
oktánszám nyomás ár($/barrel) A típus min. 100 max. 7 6,45
B típus min. 91 max. 6 5,91
Milyen keverési program esetén éri el a finomító a max. bevételt?
Írjuk fel a feladat LP modelljét!
9. LP feladatok osztályozása megoldhatóságuk alapján
Van optimális megoldása Nincs optimális megoldása
0 ,
,
8 2
4 3
11 2
4
5
3 2
3 2 1
3 2
1
3 2
1
3 2 1
x x x
x x
x
x x
x
x x x
min 3
4 5
5 x1 x2 x3 z
2 2
1 x
x
L
L
normális(?) eset
10 2
2
1
2
x x 0 ,
21 x
x
min 3
2 x1 x2
ellentmondó feltételek (infizibilis eset)
1 2 1 2
x x
2 2
21
x x
0 ,
21
x
x
min 1 1 2
x x k x
k
x1 2 , 2
nemkorlátos eset de a célfv. alulról/felülről nemkorlátos L-en
(megoldását ld. alább) Pl.:
Pl.: Pl.:
Pl. lehetséges mo-ai:
) (k
11. A lineáris programozási feladat megoldhatóságának jelentősége a)
A meglevő feltételek között lehet a hatékonyságot javítanib) Széleskörű alkalmazhatóság
12. Néhány nagy név a lineáris programozás történetéből
Fourier(1826): az első, aki lineáris egyenlőtlenség rendszereket old meg
Kantorovich(1939): a gyártásütemezésre adott LP modellt és megoldási módszert Dantzig(1947): az általános LP feladat első megoldója
Koopmans(1947): gazdasági folyamatok modellezése
Khachyan(1979): az első, elméleti szempontból kielégítő (polinomiális) alg.
Karmarkar(1983): a gyakorlatban is versenyképes polinomiális algoritmus
13. Magyarok
Egerváry Jenő Prékopa András Lovász László
és még sokan mások…
14. Szabályos alakú feladat
n
j
i j
ij
x b
a
1
) 1
( i m
0
x
j( 1 j n )
nj
j j
x c
1
min
lineáris korlátok (minden feltétel ≤ )
minden változó
nemnegatív
1.megjegyzés: könnyen látható, hogy minden LP feladat ilyen alakúra hozható:
•Az egyenlőtlenségek iránya megfordítható (szorzás -1-gyel)
•Az egyenletek két egyenlőtlenséggel pótolhatók
•Az előjelkötetlen változó két új nemnegatív változó különbségeként írható fel
2. megjegyzés: ámde kihagytuk a < és a > feltételek kezelését…
(Látjuk, hogy a dolog megy, de azért ennek később még alaposan utána nézünk)
15. Hogyan működik a szimplex algoritmus?
(azaz vándorlás a feladat ekvivalens alakjai között)
a megoldandó
nemnegatív jobboldalú szabályos feladat
helyett az alábbi társított
lehetséges kanonikus alakú feladatot oldjuk meg
0 ,
,
8 2
4 3
11 2
4
5
3 2
3 2 1
3 2
1
3 2
1
3 2 1
x x x
x x
x
x x
x
x x x
min 3
4 5
5 x1 x2 x3 z
0 ,
, , , ,
8
2
4 3
11
2
4
5
3 2
6 5 4 3 2 1
6 3
2 1
5 3
2 1
4 3 2 1
x x x x x x
x x
x x
x x
x x
x x x x
(*)
Társítjuk (*)-hoz egy könnyen leolvasható megoldását, melyet a továbbiakban a feladat (*) alakjához társított bázismegoldásnak nevezünk.
min 3
4 5
5 x1 x2 x3 z
min 5
3 4
5
1
2
3
x x x z
0 ,
, , , ,
8
2
4 3
11
2
4
5
3 2
6 5 4 3 2 1
6 3
2 1
5 3
2 1
4 3
2 1
x x x x x x
x x
x x
x x
x x
x x
x
x
x ( 0 ) [ 0 , 0 , 0 , 5 , 11 , 8 ] T
eredeti változók
lazasági változók
aktuális döntési változók
aktuális bázis változók
új nevük A konstans átkerült a jobb oldalra
Vegyük észre, hogy a célfüggvény egyenletében csak döntési változók vannak és ezek értéke a bázismegoldásban 0. (nagyon fontos!)
a célfüggvény baloldalának értéke az (aktuális) bázismegoldáson 0!
5 )
( x
(0)
z
Ötlet: próbáljunk a 3 db feltételből és a célfüggvényből álló lineáris egyenletrendszeren olyan ekvivalens átalakításokat végezni, hogy
1. A 3 feltétel jobboldalai mind nemnegatívak maradjanak
2. Minden feltételben legyen (továbbra is) olyan változó, melynek
együtthatója ebben a feltételben 1, az összes többi feltételben és a célfüggvényben 0 ! (ezek lesznek az új bázisváltozók)
Azt szeretnénk, hogy a célfüggvény értéke az új
bázismegoldáson csökkenjen (de legalábbis ne nőjön)
16. Vándorlás a feladat különféle alakjai között
5 0
0 0 3 4
5
8 1
0 0 2
4 3
11 0
1 0 2
1 4
5 0
0 1 1
3 2
6 5 4
6 5 4 3
2 1
z
x x x
x x x x
x x
152 0
2 0 2 5
2 1 0 7
12 1
2 0 2 3
2 1 0 1
1 0
1 2
0 5
0 12 0 0 52
12 32
1
6 5 1
6 5 4
3 2
1
z x
x x
x x x
x x
x
354 4 0
0 5 12
114 0
14 4 1
0 3 12
134 0
114 4 0
0 1 12
14 1
12 2 0
1 1 2 0
0 5
6 1 4
6 5
4 3
2 1
z x
x x
x x
x x
x x
x(0) [0,0,0,5,11,8]T
x(1) [52,0,0,0,1, 12]T
szeretnék et
-
) 1
1 ( 11 a
bázis- változók
(aktuális) bázismo.
5 ) (x(0) z
a rajta felvett célfv. érték
szeretnék et
)
1
1 (
21
a
x(1) [114,0,0, 12,0, 14]T
Zsákutca, mert van negatív eleme
2 ) 15
(
x(1) Ez jó, ezt z
folytatom
L
Zsákutca, mert romlott a célfv. értéke
8
1 0
1 0
3 0
1 2
0 3 1
1 0
1 0
1 2 0
5 0
2 1
0 2
0 2
1
3 5 1
6 5
4 3
2 1
z x
x x
x x
x x
x x
5 3 0
3 0 3 4
0 5
7 3 4 3 0 1 4 3
2 3 3 0
1 1 3 1 0 28 3
5 3 3 0
10 1 3 0 0 5 3
1 3 3 1
2
6 5 2
6 5 4
3 2
1
z x
x x
x x x
x x
x
x(2) [2,0,1,0,1,0]T
szeretnék et
-
)
1
2 ( 33
a a
12(2) 1 et szeretnék
x(2) [0,53,0,0,283,43]T
8 )
(
x(2) z z(x(2)) 53
A célfüggvény értéke tovább nem csökkenthető, mert
bármely
x L
eseténx 0
miatt a célfüggvény értéke:0 3
8 )
( x x
2 x
4 x
6
z z ( x ) 8
,viszont
z ( x
(2)) 8
,azazx
(2-nél nem lehet jobb megoldást találni)) 2
x
( optimális megoldás!17. A szimplex algoritmus működésének grafikus szemléltetése
Példa:
min 4
3
0 ,
14 2
2
8 2
6 10 2
y x
y x
y x
y x
y x
A célfüggvény egyenlete:
3 x 4 y c
A feladat: mindaddig csökkenteni c értékét, amíg a célfüggvény egyenletének van közös pontja L-lel.
Grafikus megoldás:
y=4
x=6
(0,0)
(2,4)
(4,3)
(6,1) (0,4)
(6,0) x+2y=10
2x+2y=
14
-3x-4y=-8
-3x-4y=
-24
-3x-4y=0
1 . L
.
2 3 .
opt. mo.
Lehetséges kanonikus alakúvá alakítás
min 4
3
0 ,
, ,
, ,
,
14 2
2
8 2
6 10 2
4 3
2 1
4 3
2 1
z y
x
y x
u u
u u
y x
u
y u
x u
y x
u
Sőt további információkat nyerhetünk az egyes feltételek „feszességéről”, arról, hogy az egyes lehetséges megoldások mennyire „merítik ki” valamelyik feltételt.
Minden feltétel baloldalához hozzáadunk egy-egy nemnegatív változót és ezáltal egyenlőtlenségeinket egyenletekké egészítjük ki.
Nyilvánvaló, hogy ezáltal csak a feladat alakja változik, maga a feladat nem.
D. Megoldás szimplex algoritmussal
22 0
0 0
1 0
3
2 0
0 1
1 0
2
4 1
0 2 0
0 1 0
4 0
0 0
1 1
1
2 0
1 0
1 0
1
16 0
3 0
2 0
0
6 0
2 1
1 0
0
4 1
0 2 0
0 1 0
6 0
1 0
0 1
0
2 0
1 0
1 0
1
4 3
0 0
0 0
14 2
2 1
0 0
0
8 2
0 0
1 0
0
6 0
1 0
0 1
0
10 2
1 0
0 0
1
4 2 4 2 1 4 3 2 1
4 3
2 1
z u
y u
x
z u
y u
u
z u
u u u
y x
u u
u u
x
(0) [ 10 , 6 , 8 , 14 , 0 , 0 ]
Tx
(1) [ 2 , 6 , 0 , 6 , 0 , 4 ]
Tx
(2) [ 0 , 4 , 0 , 2 , 2 , 4 ]
T0 )
( x
(0) z
16 )
( x
(1) z
22 )
( x
(2) z
Még van negatív együttható folyt. köv.
Bázismegoldás = könnyen leolvas- ható megoldás
24 0
0 1
0 0 1
2 0
0 1
1 0 2
3 1
2 0 0 1
0 1
2 0
0 1
0 1 1
4 0
1 1
0 0 1
3 2
z u
y u
x x
(3) [ 0 , 2 , 2 , 0 , 4 , 3 ]
T24 )
( x
(3) z
Mivel a célfüggvényben nincs több negatív együttható, ezért az utoljára kapott bázismegoldás egyben optimális megoldás is, melyen felvett célfüggvényérték -24. (ez az optimum).
) 3
x
(Figyeljük meg és szedjük sorba az egymás után keletkező bázismegoldásokban az aláhúzott elemeket (kételemű vektorokat) !
(0,0) (0,4) (2,4) (4,3)
1. 2. 3.
Ha visszatekintünk a grafikus megoldásra, azonnal látjuk, hogy példánkban a szimplex algoritmus végrehajtása során kapott bázismegoldások egyben az
L
csúcspontjai
(Később ezt az általános esetben is belátjuk)
2. A lehetséges kanonikus feladat (rövidítve: l.k.a.f.)
Def.: egy LP feladat lehetséges kanonikus alakú, ha sor- és oszlopcserékkel vala- mint a változók átjelölésével az alábbi formában írható fel:
m n
m n m m m
m m m
m m m
n m n m m
m m
m
n m n m m
m m
m
b x
a x
a x
a x
b x
a x
a x
a x
b x
a x
a x
a x
, 2
2 , 1
1 ,
2 ,
2 2
2 , 2 1
1 , 2 2
1 ,
1 2
2 , 1 1
1 , 1 1
0
xj (1 j m n); (bi 0; (1i m))
c
m1x
m1 c
m2x
m2 c
mnx
mn z ( x ) min x
mx
x
1,
2, ,
változók az (aktuális) bázisváltozók aholés
x
m1, , x
mn változók az (aktuális) döntési változókDef.: a fenti lehetséges kanonikus alakú feladat (l.k.a.f.) bázismegoldásának az
0 ,
, 0 ,
, ,
,
2 2 11
1
b x b x
m b
mx
m x
mn
x
megoldását nevezzük.Köv.: 1. Bmely l.k.a.f. összes lehetséges megoldásainak halmaza nemüres 2. Az aktuális bázismegoldáson felvett célfüggvényérték mindig
1.Tétel (optimumkritérium)
Ha vmely. l.k.a.f. célfüggvényében nincs negatív együttható, akkor a feladat aktuális bázismegoldása egyben optimális megoldása is.
x
Biz: Bmely
~ x L
esetén
m nm j
j
j
x z x
c x
z x
1
*
)
~ (
~ ) (
~ 0
Megj: a feltétel csak elegendő, mert pl.
0 0
3 2
3 1
x x
x x
0 ,
,
2 31
x x
x
min )
(
5
3
x z x
feladatnál
L {( 0 , 0 , 0 )}
,az aktuális bázismo. optimális és az optimum kritérium mégsem teljesül.k kj
k
r
r a 1
2. Tétel (a bázisváltoztatás tétele)
Ha vmely. l.k.a.f. célfüggvényében a
c
j( m 1 j m n )
együttható negatív és létezik amennyiség, akkor megadható a feladatnak olyan másik lehetséges kanonikus alak-
x
'ja,melyhez tartozó bázismegoldáson felvett célfüggvényérték:
c
j
jBiz.: Tfh.
a
kj a generálóelem (azaz
a r m
a b
rj rj
j
min
r0 , 1
és
jkj k
j
a
b
)Ekkor a végrehajtandó átalakítások:
)
és 1
(
i m i k
a r r a
r
kkj ij i
i
k kj
j
r a z c
z
ahol
r
i az i-edik felt. régi, ésr
,i az új alakját,z
a célfv.régi ész
, az új alakját jelöli A kapott feladata: ekvivalens az előzővel, hiszen belőle (ami egy m+1 db egyenletből álló lineáris egyenletrendszer) ekvivalens átalakításokkal nyertük
b: lehetséges kanonikus alakú,hiszen
el"
romlanak
"
i együttható zójának
bázisválto eddigi
feltétel .
a csak
közül zók
bázisválto a
és et) - 1 (kivéve
lesznek k
- 0 i együttható
:
k
a
x
j kj
: maradnak ak
nemnegatív mind
k jobboldala a
:
) 0
és 0 (
0
kj k
kj
k k a b
a b b
)
és 1
(
i m i k
a b b a
b k
kj ij i
i
0
ii
b
b
0
ha aij
kj k ij
i
a b a
b
miatt
0
aij
k 0
kj ij i
i
b
a b a
b
0 ha aij
mivel a k. felt. min. hányadosú ( és
0
) ésj
c
jx
: a célfüggvén y értéke az új ' bázismegol dáson
: alakjába '
új célfv.
a dást bázismegol
' új az sítve behelyette
ui. x z
m n
t kj
j k t
t
a
c b x
z x
c
1
) '
(
0 0
c akkor zó,
bázisválto
ha x
t
t c
t x
t
0 0
akkor változó,
döntési
ha x
tx
t c
tx
t } c
t x
t 0
ezért
kj k j
a c b x
z
( ' )
jj
c
jx
z ( ' )
3. Tétel (nemkorlátos eset)
Ha vmely l.k.a.f-ban vmely
c
j 0 ( m 1 j m n )
és aza
rj( 1 r m )
együtthatók egyike sem pozitív, akkor a feladat célfv-ealulról nemkorlátos L-en.
Biz.: Megadjuk a feladat lehetséges mo-ainak egy olyan
{ x
(t)}
t1 sorozatát, melyenz ( x
(t))
t
Legyen
x
(jt) t
)
és 1
(
)
0
(
m s m n s j
x
st }
a döntési változók)
x
(t -benértékei Ekkor a bázisváltozók értékei:
x
r(t) b
r a
rjt 0 ( 1 r m )
Tehát
x
(t) L és z ( x
(t)) c
jt
t
0 c
jés
0 b
rmiatt
0 a
rj{
Megj.: az 1.,2. és 3. tételek sokféle generálóelem kiválasztási stratégiát tesznek lehetővé, ui.:
a. bármelyik negatív
c
j célfv. együttható oszlopát választhatjukb. melyben bmely minimális nemnegatív hányadosú sor választható Talán a legkorábbi a klasszikus szimplex algoritmus:
1. Ha a tekintett l.k.a.f. célfv-ében nincs negatív együttható, akkor vége az alg-nak:
az aktuális bázismegoldás optimális megoldás is egyben.
(különben a 2. lépés köv.)
2. Vegyük a célfv. legnegatívabb együtthatói közül a legkisebb indexűt (a bal szél- sőt), jelölje ezt
c
j Ha a j-edik oszlopban nincs pozitív együttható, akkor végeaz alg-nak: a célfv. alulról nemkorlátos L-en (különben a 3. lépés köv.)
3. A kiválasztott j-edik oszlopban felülről lefelé keressük meg az első olyan pozitív
a
kj együtthatót, melyre a minimalitási feltétel teljesül:j kj
k
a
b (ahol
rj r
j a
min{b
arj 0 (1 r m)}) Ez lesz a generálóelem!
Hajtsuk végre az
a
kj generáló elemmel a 2. Tételben megadott azonos átalakítá- sokat, majd a feladat így kapott új lehetséges kanonikus alakjával folytassuk az algoritmust az 1. lépéssel!Megj.: a. a fenti alg. Dantzigtól származik(1951)
b. Ha mást nem mondunk, akkor mindig így választunk generáló elemet ebben a jegyzetben
c. Sokáig azt hitték, hogy a fenti alg. mindig véget ér véges számú iterációs lépésben, de ez nem így van.
Problémák az alg. végrehajtása során (degeneráció és ciklizálás) Példa:
0 0 0
0 8 1
2
2 1 0
0 4
3 1
3 0 1
0 6
4 2
1 0 0
1 2
0 0
6 5 4
6 5
4 3
2 1
x
x x
x x
x x
x x
2
x
(0) [ 0 , 0 , 0 , 1 , 3 , 2 ]
T0 ) ( x
(0) z
„normális” iterációs lépés köv.
4 0
0 4
0 1
2
0 1
0 2 0
3 1
0 0
1 3 0
4
2 0 1 1 2 0 0 1 2
0
6 5 3
6 5
4 3
2 1
x
x x
x x
x x
x x
x
(1) [ 0 , 0 , 1 2 , 0 , 0 , 0 ]
T4 )
( x
(1) z
degenerált bázismo.
„degenerált” iterációs lépés köv.
2
(bázismo. és célfv.érték nem változik)
4 0
1 1
0 3 0
0 2 1
2 1 0 7
1 0
0 2 0
2 1 0 3
2 1
1 2 0 2 0
1 1 0
0
6 1 3
6 5
4 3
2 1
x
x x
x x
x x
x x
x
(2) [ 0 , 0 , 1 2 , 0 , 0 , 0 ]
T4 )
( x
(2) z
degenerált bázismo.
„degenerált” iterációs lépés köv.
(bázismo. és célfv.érték nem változik) 1
4 2 3
2 5 0 19
0 0
0 2 1
2 1 0 7
1 0
0 2 2
2 3 0 17
0 1
1 2 0 2 0
1 1 0
0
2 1 3
6 5
4 3
2 1
x
x x
x x
x x
x x
27 2 2 3
0 5 19 0
0
7 2 2 1
0 1 7
1 0
17 2 2 2
0 3 17 0
1
1 0
0 1
2 0
0
2 1 4
6 5
4 3
2 1
x x x
x x
x x
x x
x
(3) [ 0 , 0 , 1 2 , 0 , 0 , 0 ]
T4 )
( x
(3) z
degenerált bázismo.
„normális” iterációs lépés köv.
(célfv.érték csökken és a bázismo.
is változik)
x
(4) [ 17 2 , 7 2 , 0 , 1 , 0 , 0 ]
T27 2 )
( x
(4) z
És a most kapott bázismegoldás optimális! (mivel nincs több negatív együttható a célfv-ben)
Észrevétel: a célfv. értéke nem minden iterációs lépésben csökkent.
Oka: 0 jobboldalú feltételből választottunk gen. elemet
(
j 0 )
Ilyenkor a bázismo. nem változik (,de a feladat alakja igen), mert
a. A jobboldalak nem változnak (mert 0 jobboldalú felt. alkalmas számszorosait adjuk a többi felt-hez és a célfv-hez)
b. A gen. elemet tartalmazó felt. eddigi bázisváltozója a jelenlegi bázismo-ban 0 értékkel bír, ezután pedig döntési változó lesz (és ezért lesz az új bázis- mo-ban az értéke 0)
c. A gen. elemet tartalmazó felt. új bázisváltozója az új bázismo-ban 0 értékű lesz (eddig döntési változó volt és emiatt volt 0 a bázismo-ban).
d. Az összes többi felt. bázisváltozója és jobboldala sem változik.
Def.: Degenerált iterációs lépés az, melynek során a bázismo. nem változik (mert 0 jobboldalú felt-ből választottunk gen. elemet)
Def.: Degenerált bázismegoldás pedig az, melyben legalább egy bázisváltozó értéke 0 (azaz van 0 jobboldalú feltétel a l.k.a.f.-ban)
Megj.: a. Degenerált bázismo. megjelenése nem mindig eredményez degenerált iterációs lépést!
b. A gyakorlatban sokszor ütközünk degenerált bázismo-okba, melyek előbb-utóbb degenerált iterációs lépéseket eredményeznek. A szimp- lex algoritmusok azonban rendszerint (néhány iterációs lépés után) túljutnak ezeken a nehézségeken.
(Ellen)példa arra, amikor a szimplex alg. „klasszikus” változata sosem ér véget:
0 12 1
3 2
0 0 0
1 1 1
1 1
1 0 0
0 3 2
1 1 13
0 1 0
0 9 1
9 2
0 0 1
7 6
5 4
3 2 1
x x
x x
x x x
A 6. iterációs lépés után a feladatnak ugyanehhez a lehetséges kanonikus alak- jához jutunk (ld. Jegyzet), azaz az alg. ciklizál ( = sosem ér véget)
Igaz ez megfordítva is:
Tétel: Ha vmely szimplex alg. sosem ér véget, akkor ciklizál.
Biz.: a. m db felt-ből álló m+n ismeretlenes l.k.a.f. bázisváltozóinak halmaza
( -féle lehet
a bázisváltozók rendezett sorozatainak száma max.
(nem biztos, hogy mindegyikhez tartozik a feladatnak l.k.a.-ja)
m
n m
! m m
n m
lehet.!
m mn m
db iterációs lépés végrehajtása során keletkező
! 1
m m
n m
db l.k.a. között biztosan van két olyan, melyek bázisváltozói ugyanazok, ugyanabban a sorrendben (a skatulyaelv miatt).
b. Jelölje e két l.k.a. (közös) bázisváltozó sorozatát
x
1, x
2, , x
m ésfejezzük ki őket rendre az
1 ., 2 ., , m .
felt-ből ész
-t a célfv-ből:n m n m m
m
x a x
a b
x
1
1
1, 1 1
1, n m n m m
m
x a x
a b
x
2
2
2, 1 1
2,
(az egyik)n m n m m m
m m m
m
b a x a x
x
, 1 1
, n m n m m
m
x c x
c
z
1 1
n m n m m
m
x a x
a b
x
1
1
1
, 1 1
1
, n m n m m
m
x a x
a b
x
2
2
2, 1 1
2,
(a másik)n m n m m m
m m m
m
b a x a x
x
, 1 1
, n m n m m
m
x c x
c
z
1 1
c. Mivel e két lin.e.rsz. ekvivalens, ezért ugyanazon szám (mn1) -esek elégítik ki őket.
d. Legyen az
x
k döntési változó (m1 k m n) értéke tetsz.t
zvalós szám, a többi döntési változóé nulla. Ekkor a fenti két lin.e.rsz.:t a b
x
1
1
1kt a b
x
2
2
2k b a t
x
m
m
mkt c z
kt a b
x
1
1
1
kt a b
x
2
2
2
k b a t
x
m
m
mk
t
c
z
k
(
x
1, x
2, , x
més z
értékeit
ismeretében egyértelműen meghatározottak és a két lin.e.rsz. ekvivalens )
ugyanazont
értékhez mindkét lin. e.rsz-benugyanaz az
] ,
0 , , 0 , , 0 , , 0 , ,
, ,
[ x
1(t)x
2(t) x
m(t) t z
(t) mo. tartozik, amiből. t k
a b
x t
a
b
1
1k
1(t)
1
1
kt a b
x t
a
b
2
2k
2(t)
2
2
k x b a t
t a
b
m
mk
m(t)
m
mk t c z
t
c
k
t
k
( )bmely valós
t
eseténElőször
t 0
-t véve:b
1 b
1
2
2
b
b
m
m
b
b
,majd
t 1
esetén:k
k
c
c
k
k
a
a
2
2
mk
mk
a
a
k
k
a
a
1
1
adódik, azaz a két l.k.alak ugyanaz.
Megj.: a. a ciklizáció már
m
n
m db. iterációs lépés után bekövetkezik.
(ha a feltételek sorrendjétől eltekintünk) b. Ez a szám azonban mégis nagy lehet: pl. 150.000
10 20
persze ez a legrosszabb eset
c. Tehát a bázisváltozók egyértelműen kijelölik a feladat egy lehetséges kanonikus alakját !!!!!!
d. Változók adott m elemű halmazához tehát legfeljebb egy lehetséges kanonikus alak tartozhat (lehet, hogy egy se)
1 0 0
2 4
1 0
1 0
1 0 2 1
1 1 1 4
0 0
0
2 0 0
1 2 2
0 1 2
1
1 0 0
1 4 0
1 1 1 0
1 1 2 0
1 1 1 4
0 1
0
7 1 3 8
8 7
6 5
4 3
2 1
x x x x
x x
x x
x x
x x
3. A szimplex algoritmus néhány további változata
A 2. Tétel (a bázisváltoztatás tétele) szerint a generáló elem sokféle képpen választható
ugyanennyi féle szimplex típusú algoritmus létezhet.Ezek közül néhány (a megállási feltételek nélkül):
1. A generáló elem véletlenszerű kiválasztása
a. a negatív célfv. együtthatók közül véletlenszerűen választok egyet b. A kiválasztott
j
edik oszlopban azona
kj 0
együtthatók közülválasztok véletlenszerűen, melyekre
kj j k
a
b
teljesül.
Pl.:
véletlenszerűen választunk közülük egy oszlopot, legyen ez pl.
x
6A kiválasztott oszlopban gen.
elemként szóba jöhet: az 1., a 2. és a 4.:
) 2 ( 12
1 1
2 12
1
6
melyek közül véletlenszerűen választunk egyet
Megj.: Biz-ható, hogy ez az alg. 1 valószínűséggel véges számú lépésben véget ér.