A dualitás vagy a dualitás elve az az elv, amely alapján az optimalizálási problémákat két szempontból tekinthetjük, közvetlen vagy kettős problémaként . A duális probléma megoldása adja a direkt probléma alsó korlátját (minimalizáláskor) [1] . Általános esetben azonban a közvetlen és a kettős problémák optimális megoldásának célfüggvényeinek értékei nem feltétlenül esnek egybe. Ezen értékek különbségét, ha megfigyeljük, dualitásrésnek nevezzük . A konvex programozás problémáinál a dualitási rés egyenlő nullával, ha a megszorítások szabályszerűségének feltételei teljesülnek .
Általában a "kettős probléma" kifejezés a Lagrange-féle kettős problémát jelenti , de más kettős problémákat is használnak, mint például a Wolfe-féle kettős probléma és a Fenchel-féle kettős probléma . A kettős Lagrange-problémát úgy kapjuk meg, hogy létrehozunk egy Lagrange -féle szorzót, nem negatív Lagrange-szorzókat használunk a célfüggvény megszorításaihoz, és a Lagrange-problémát a közvetlen probléma néhány változója tekintetében minimalizáljuk. Egy ilyen megoldás a direkt probléma változóit Lagrange-szorzók függvényeiként adja meg, amelyeket duális változóknak nevezünk, így az új probléma a célfüggvény maximalizálásának problémája lesz a kettős változók vonatkozásában a kettős változókra generált megszorítások mellett. legalábbis nem negativitás).
Általánosságban elmondható, hogy egy elválasztható lokális konvex tér és egy függvény duális párja [2] alapján a direkt problémát úgy definiálhatjuk, mint a keresést , úgy, hogy más szóval a függvény infimuma (pontos alsó korlátja) .
Ha vannak megkötések, akkor beépíthetők a függvénybe , ha tesszük , ahol az indikátorfüggvény . Legyen most (egy másik kettős pár esetén) egy olyan perturbációs függvény , hogy [3] .
A dualitási rés az egyenlőtlenség jobb és bal oldala közötti különbség
ahol mindkét változó konjugált függvénye , és a felső határt jelenti (pontos felső korlát) [3] [4] [5] .
A kettősség rés az elsődleges probléma bármely megoldásának értéke és a kettős probléma megoldásának értékei közötti különbség. Ha a duális probléma optimális értéke, és a direkt probléma optimális értéke, akkor a dualitási rés . Ez az érték mindig nagyobb, mint 0, vagy egyenlő azzal. A dualitási rés akkor és csak akkor nulla, ha erős dualitás van . Ellenkező esetben a diszkontinuitás szigorúan pozitív, és gyenge kettősség lép fel [6] .
A numerikus optimalizálási feladatokban gyakran használnak egy másik "kettős rést", amely egyenlő a kettős megoldás és a direkt probléma elfogadható, de lokálisan nem optimális iterációja közötti különbséggel. Az alternatív "dualitási rés" az elsődleges probléma jelenlegi megvalósítható, de lokálisan nem optimális megoldásának értéke és a duális probléma értéke közötti eltérést fejezi ki. A duális probléma értéke a megszorítások szabályossága feltétele mellett egyenlő a direkt probléma konvex gyengülésének értékével , ahol a konvex gyengülés abból adódik, hogy a megvalósítható megoldások nem konvex halmazát a zártjával helyettesítjük. konvex burok , és a nem konvex függvényt a konvex lezárásával cseréljük le , vagyis egy olyan függvényre, amelynek epigráfja zárt konvex a direkt probléma eredeti célfüggvényének bezárásával [7] [8] [9] [10] [11 ] [12] [13] [14] [15] [16] [17] .
A lineáris programozási problémák olyan optimalizálási problémák , amelyekben a célfüggvény és a megszorítások lineárisak. A közvetlen feladatban a célfüggvény n változó lineáris kombinációja . M megszorítás létezik, amelyek mindegyike felülről korlátozza n változó lineáris kombinációját . A cél a célfüggvény értékének maximalizálása megszorítások mellett. A megoldás egy n értékből álló vektor (lista), amely megadja a célfüggvény maximális értékét.
A kettős feladatban a célfüggvény olyan m érték lineáris kombinációja, amely az elsődleges probléma m kényszerének jobb oldala . n kettős megkötés létezik, amelyek mindegyike alulról korlátozza m kettős változó lineáris kombinációját .
Lineáris esetben a direkt feladatban a lokális optimum minden korlátot kielégítő pontjáról van egy irány vagy altere , és az ilyen irányú mozgás növeli a célfüggvényt. Bármely ilyen irányú elmozdulás csökkenti a szakadékot a megvalósítható megoldás (vagy megvalósítható terv ) és az egyik korlát között. Érvénytelen lehetséges megoldás az a megoldás, amely megsért egy vagy több megkötést.
A duális feladatban a duálvektor elemeit megszorozzuk azokkal az oszlopokkal, amelyek megfelelnek a primálfeladatban szereplő kényszereknek. A duális vektor perturbációja a duális feladatban egyenértékű az elsődleges probléma felső határának felülvizsgálatával. A duális feladat megoldása során a legkisebb felső korlátot keresik, vagyis a duális vektor úgy változik, hogy a megvalósítható megoldás és a tényleges optimum közötti különbség csökkenjen.
Az elsődleges és a kettős problémák közötti kapcsolattal kapcsolatos további információkért lásd a " Lineáris programozás kettős problémái " című cikket .
Ha az elsődleges lineáris programozási problémánkat klasszikus „erőforrás-allokációs” problémaként értelmezzük, akkor annak kettős problémája „ Resource estimation ” problémaként értelmezhető .
A nemlineáris programozásban a megszorítások nem feltétlenül lineárisak. Azonban a lineáris eset sok elve érvényesül.
Annak biztosítására, hogy egy nemlineáris probléma globális maximuma könnyen meghatározható legyen, a problémafelvetés gyakran megköveteli, hogy a függvények konvexek legyenek, és kompakt halmazaik legyenek alacsonyabb szintekből (vagyis olyan halmazokból, amelyeken a függvény valamely szintnél kisebb értéket vesz fel). .
Ez a Karush-Kuhn-Tucker állapot . Bizonyították a szükséges feltételeket a nemlineáris problémák lokális optimumának meghatározásához. Vannak további feltételek (korlátozás szabályszerűségi feltétele), amelyek szükségesek az optimális megoldás irányának meghatározásához. Itt az optimális megoldás a lokális optimumok egyike, amely nem biztos, hogy globális.
Ha egy nemlineáris programozási feladatot szabványos formában adunk meg
minimalizálni | |
feltételek mellett | |
ha a tartomány nem üres belsővel rendelkezik, a Lagrange függvényt a következőképpen határozzuk meg
A és a vektorokat kettős változóknak vagy a problémához kapcsolódó Lagrange-szorzók vektorainak nevezzük . A kettős Lagrange függvényt a következőképpen határozzuk meg
A g duális függvény akkor is konkáv, ha a kezdeti probléma nem konvex, mivel az affin függvények pontszerű infimuma. A kettős függvény alsó határokat ad az eredeti probléma optimális értékére. Bárkinek és bárkinek, amink van .
Ha a kényszer szabályossági feltételek , mint például a Slater feltétel teljesülnek , és az eredeti probléma konvex, akkor szigorú dualitásunk , azaz .
Egy konvex minimalizálási probléma megszorításokkal – egyenlőtlenségekkel,
minimalizálni | |
feltételek mellett |
A Lagrange-féle kettős probléma az
maximalizálni | |
feltételek mellett |
ahol a célfüggvény a kettős Lagrange-függvény. Ha a és függvényekről ismert, hogy folyamatosan differenciálhatóak, akkor az infimum azokon a pontokon van, ahol a gradiens nulla. Egy feladat
maximalizálni | |
feltételek mellett | |
duális Wolfe-problémának nevezik. Ez a feladat számításilag nehéz lehet, mivel a célfüggvény nem konvex a koordinátákban . Ezenkívül a megszorítás általában nem lineáris, így a duális Wolfe-probléma általában nem konvex optimalizálási probléma. Mindenesetre van egy gyenge kettősség [18] .
George Danzig szerint a lineáris optimalizálás kettősségi tételét John von Neumann terjesztette elő sejtésként közvetlenül azután, hogy Danzig bemutatta a lineáris programozási problémát. Von Neumann észrevette, hogy a játékelméletéből származó információkat használt, és azt javasolta, hogy egy kétszemélyes, nulla összegű mátrixjáték egyenértékű egy lineáris programozási problémával. Ennek a ténynek a szigorú bizonyítékát először 1948-ban publikálta Albert Tucker és csoportja [19] .