Dvojí problém omezení spokojenosti - Constraint satisfaction dual problem

The dvojí problém je přeformulování a problém spokojenosti s omezením vyjadřující každé omezení původního problému jako proměnnou. Duální problémy obsahují pouze binární omezení, a jsou proto řešitelné pomocí algoritmy šité na míru těmto problémům. The připojit grafy a spojit stromy problému omezení spokojenosti grafy představující jeho duální problém nebo problém získaný z duálního problému odstraněním některých nadbytečných omezení.

Dvojí problém

Duální problém problému uspokojení omezení obsahuje proměnnou pro každé omezení původního problému. Jeho domény a omezení jsou vytvořeny tak, aby vynucovaly určitou rovnocennost s původním problémem. Obzvláště doména proměnné dvojího problému obsahuje jeden prvek pro každou n-tici splňující odpovídající původní omezení. Tímto způsobem může mít duální proměnná hodnotu právě tehdy, pokud je odpovídající původní omezení splněno odpovídající n-ticí.

Omezení duálního problému zakazují dvěma duálním proměnným nabývat hodnot, které odpovídají dvěma nekompatibilním n-ticím. Bez těchto omezení může mít jedna duální proměnná hodnotu odpovídající n-tici zatímco jiná duální proměnná má hodnotu odpovídající , který přiřadí jinou hodnotu .

Obecněji platí, že omezení duálního problému vynucují stejné hodnoty pro všechny proměnné sdílené dvěma omezeními. Pokud dvě duální proměnné odpovídají omezením sdílejícím některé proměnné, obsahuje duální problém omezení mezi nimi, vynucující rovnost všech sdílených proměnných.

Csp-dual-1.svg
Duální proměnné představují omezení původního problému.
Csp-dual-2.svg
Doménou každé duální proměnné je sada n-tic odpovídajícího původního omezení.
Csp-dual-3.svgDuální omezení vynucují duální proměnné (původní omezení), aby měly hodnoty (původní n-tice), které obsahují stejné hodnoty původních proměnných.

V tomto příkladu původní omezení a sdílet proměnnou . V dvojím problému proměnné a mohou mít hodnoty a protože tyto hodnoty se shodují .

V duálním problému jsou všechna omezení binární. Všichni vynucují dvě hodnoty, které jsou n-ticemi, aby se dohodly na jedné nebo více původních proměnných.

The duální graf je reprezentace toho, jak jsou proměnné omezeny v dvojím problému. Přesněji řečeno, duální graf obsahuje uzel pro každou duální proměnnou a hranu pro každé omezení mezi nimi. Okraj mezi dvěma proměnnými je navíc označen původními proměnnými, které jsou mezi těmito dvěma duálními proměnnými vynucovány stejně.

Duální graf lze sestavit přímo z původního problému: obsahuje vrchol pro každé omezení a hranu mezi dvěma omezeními sdílení proměnných; taková hrana je označena těmito sdílenými proměnnými.

CSP-dual-graph-1.svgDuální graf. Hrana mezi dvěma omezeními odpovídá duálnímu omezení vynucujícímu rovnost jejich sdílených proměnných. Například okraj označený mezi a označuje, že dvojitý problém obsahuje omezení mezi a a toto omezení vynucuje hodnoty (n-tice), které se shodují a .

Spojte grafy a spojte stromy

V duálním grafu mohou být některá omezení zbytečná. Duální omezení skutečně vynucují rovnost původních proměnných a některá omezení mohou být nadbytečná z důvodu přechodnosti rovnosti. Například pokud a jsou spojeny hranou, jejíž štítek obsahuje a stejně tak jsou a rovnost ve všech třech duálních proměnných je zaručeno. Výsledkem je dvojí omezení mezi a prosazování rovnosti není nutný a mohl by být odstraněn, pokud je přítomen.

CSP-dual-graph-2.svgOd rovnosti je vynuceno dalšími dvojími omezeními, tím mezi a lze upustit.

Graf získaný z duálního grafu odstraněním některých nadbytečných hran se nazývá a připojit graf. Pokud se jedná o strom, nazývá se a připojit strom. Duální problém lze vyřešit ze spojovacího grafu, protože všechny odstraněné hrany jsou nadbytečné. Na druhé straně lze problém efektivně vyřešit, pokud je tento spojovací graf strom, pomocí algoritmů přizpůsobených pro problémy s uspokojením acyklických omezení.

Nalezení spojovacího stromu, pokud existuje, lze provést s využitím následující vlastnosti: má-li duální graf spojovací strom, pak maximální váha klenout se nad stromy grafu jsou všechny spojovací stromy, pokud jsou hrany váženy počtem proměnných, odpovídající omezení musí být stejná. Algoritmus pro nalezení spojovacího stromu, pokud existuje, probíhá následovně. V prvním kroku jsou hranám přiřazeny váhy: pokud dva uzly představují omezení, která sdílejí proměnným, hraně, která je spojuje, je přiřazena váha . Ve druhém kroku je hledán kostra o maximální hmotnosti. Jakmile je jeden nalezen, zkontroluje se, zda vynucuje požadovanou rovnost proměnných. Pokud je to váš případ, je tento spanning tree spojovacím stromem.

Další metoda pro zjištění, zda má problém s uspokojením omezení strom spojení, používá spíše prvotní graf problému než duální graf. The prvotní graf problému uspokojení omezení je graf, jehož uzly jsou problémové proměnné a jejichž hrany představují přítomnost dvou proměnných ve stejném omezení. Strom spojení pro problém existuje, pokud:

  1. prvotní graf je akordický;
  2. proměnné každého maximální klika prvotního grafu jsou rozsah omezení a naopak; tato vlastnost se nazývá konformita.

Chordalitu lze zase zkontrolovat pomocí a max. mohutnost objednávání proměnných. Takové uspořádání lze také použít, pokud jsou splněny dvě výše uvedené podmínky, k nalezení spojovacího stromu problému. Řazení omezení podle jejich nejvyšší proměnné podle pořadí, algoritmus pro výrobu spojovacího stromu pokračuje od posledního k prvnímu omezení; v každém kroku je omezení spojeno s omezením, které s ním sdílí maximální počet proměnných mezi omezeními, která mu předcházejí v pořadí.

Rozšíření

Ne všechny problémy s uspokojením omezení mají spojovací strom. Problémy však lze upravit, aby se získal strom spojení. Klastrování spojení stromů je specifická metoda pro úpravu problémů takovým způsobem, že získají společný strom. To se provádí sloučením omezení, což obvykle zvětšuje velikost problému; řešení výsledného problému je však snadné, stejně jako u všech problémů, které mají spojovací strom.

Metody rozkladu zobecnit klastrování spojení stromů seskupením proměnných takovým způsobem, že výsledný problém má strom spojení. Metody rozkladu přímo spojují strom s problémy; uzly tohoto stromu jsou přidružené proměnné nebo omezení původního problému. Sloučením omezení založených na tomto stromu lze vytvořit problém, který má strom spojení, a tento strom spojení lze snadno odvodit ze stromu rozkladu. Alternativně lze postavit binární acyklický problém přímo ze stromu rozkladu.

Reference

  • Dechter, Rina (2003). Zpracování omezení. Morgan Kaufmann. ISBN  978-1-55860-890-0
  • Downey, Rod; M. Fellows (1997). Parametrizovaná složitost. Springer. ISBN  978-0-387-94883-6
  • Georg Gottlob; Nicola Leone; Francesco Scarcello (2001). „Hypertree Decompositions: A Survey“. MFCS 2001. 37–57.[mrtvý odkaz ]

Viz také