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