Dualitástétel

A Wikipédiából, a szabad enciklopédiából

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]

Dualitás tétel

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:

  1. cx* minden , x* optimális
  2. 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
  3. 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]