Dualitástétel
A dualitástétel a lineáris programozás fontos tétele. Segítségével ellenőrizhető, hogy tényleg a megfelelő szélsőértéket adták-e meg. De vannak más alkalmazásai is, például a játékelméletben vagy a gráfelméletben.
Általános alak
[szerkesztés]
A duális poliéder függ R megadásától, sőt c-től is.
Tekintve ugyanis a dimenziókat,
Bizonyítás
[szerkesztés]A tétel egy egyszerűbb, szimmetrikus alakja:
Tegyük fel, hogy nem üres, és felülről korlátos. Ekkor a primál program maximuma egyenlő a duál program minimumával. Azaz .
Az egyik irány könnyű. Hármas szorzattal . A másik irányhoz kell egy megoldáspár, amire az egyenlőség teljesül. Ezek bázismegoldások lesznek. Ha felülről korlátos, akkor maximumát egy bázismegoldáson is felveszi.
A bizonyítás folytatásához szükség van egy lemmára.
Lemma: legyen nem üres, és felülről korlátos. Ekkor a következők ekvivalensek:
- cx* minden , x* optimális
- nincs növelő irány, azaz nincs x1, hogy x1 , ahol a Q mátrixnak azokat a sorait jelöli, amiket x* egyenlőséggel teljesít
- a c vektor benne van x* aktív sorainak kúpjában, azaz van y*, és ha akkor . Ekvivalensen .
A lemma bizonyítása a Farkas-lemma segítségével:
Ha lenne x1 növelő irány, akkor egy kicsit elmozdulva az x1 irányban az vektor még mindig benne lenne R-ben. Ez miatt ellentmond maximalitásának.
Ha van x1 növelő irány, akkor a Farkas-lemma balról szorzós alakja szolgáltat egy y1 vektort, amit 0 koordinátákkal kiegészítve y* kapható.
Tetszőleges esetén , vagyis y*b felső korlát -re. biztosan optimális, ha , és a 3.-ban jelzett másik állítás ezzel ekvivalens.
A tétel bizonyítására visszatérve: a lemma szerint van , amiből , és ezzel vége a bizonyításnak.
Források
[szerkesztés]Text is available under the CC BY-SA 4.0 license; additional terms may apply.
Images, videos and audio are available under their respective licenses.