Hybridní algoritmus (uspokojení omezení) - Hybrid algorithm (constraint satisfaction)

v omezení spokojenosti, a hybridní algoritmus řeší a problém spokojenosti s omezením například kombinací dvou různých metod variabilní klimatizace (ustoupit, zpětný skok atd.) a odvození omezení (konzistence oblouku, variabilní eliminace, atd.)

Hybridní algoritmy využívají dobré vlastnosti různých metod jejich aplikací na problémy, které mohou účinně řešit. Hledání je například účinné, když má problém mnoho řešení, zatímco odvození je efektivní při dokazování neuspokojivosti příliš omezených problémů.

Algoritmus odvození / vyhledávání cyklického řezu

Tento hybridní algoritmus je založen na spouštění vyhledávání přes sadu proměnných a odvozování od ostatních. Zejména zpětné sledování nebo nějaká jiná forma vyhledávání probíhá přes řadu proměnných; kdykoli a konzistentní je nalezeno částečné přiřazení přes tyto proměnné, přes zbývající proměnné se provede odvození, aby se zkontrolovalo, zda lze toto částečné přiřazení rozšířit a vytvořit řešení.

U některých druhů problémů existují efektivní a úplné odvozovací algoritmy. Například problémy, jejichž prvotními nebo duálními grafy jsou stromy nebo lesy, lze vyřešit v polynomiálním čase. To ovlivní výběr proměnných vyhodnocených vyhledáváním. Jakmile je proměnná vyhodnocena, může ji z grafu efektivně odstranit a omezit tak veškerá omezení, se kterými je spojena, svou hodnotou. Alternativně lze vyhodnocenou proměnnou nahradit několika odlišnými proměnnými, jednou pro každé omezení a všechny mají doménu s jednou hodnotou.

Tento smíšený algoritmus je efektivní, pokud jsou vyhledávací proměnné zvoleny tak, že jejich duplikování nebo odstranění změní problém na problém, který lze efektivně vyřešit odvozením. Zejména pokud tyto proměnné tvoří a cyklus cutset grafu problému je odvození efektivní, protože musí vyřešit problém, jehož graf je a strom nebo, obecněji, a les. Takový algoritmus je následující:

najděte cyklickou část grafu hledání problému při hledání proměnných v sadě, když se najde konzistentní částečné přiřazení ke všem proměnným, nahraďte každou proměnnou v sadě novou proměnnou pro každé omezení; nastavit domény těchto nových proměnných na hodnotu staré proměnné v částečném přiřazení vyřešit problém pomocí odvození

Účinnost tohoto algoritmu závisí na dvou kontrastních faktorech. Na jedné straně, čím menší je sada, tím menší je dílčí problém, který má být vyřešen hledáním; vzhledem k tomu, že na stromech je odvození efektivní, je vyhledávání částí, která většinou ovlivňuje účinnost. Na druhou stranu je nalezení cutsetu minimální velikosti těžký problém. Výsledkem je, že místo minimálního lze použít malou cyklickou sadu.

Další alternativou ke zkrácení doby hledání je více zatěžovat odvozenou část. Zejména odvození může být relativně efektivní, i když problémový graf není les, ale graf malé indukované šířky. To lze zneužít vyhledáním sady proměnných, která není cyklickou sadou, ale po odstranění problému ponechá indukovanou šířku ohraničenou nějakou hodnotou .[je zapotřebí objasnění ] Taková sada proměnných se nazývá a - soubor problému.

Vyvolá se indukovaná šířka grafu po odstranění sady proměnných upravená indukovaná šířka. Proto se indukovaná šířka upravila vzhledem k a cutset je vždy . Nalezení minimální velikosti -cutset je obecně tvrdý. Nicméně, a -cutset minimální velikosti lze snadno najít pro pevné pořadí proměnných. Zejména taková sada ponechá ohraničený zbývající graf šířky podle toho konkrétního pořadí proměnných.

Algoritmus pro nalezení takovéto sady postupuje napodobováním postupu pro nalezení indukovaného grafu problému podle uvažovaného pořadí proměnných (tento postup vychází z posledního uzlu v pořadí do prvního a přidává hranu mezi každou dvojici nepřipojení rodiče každého uzlu). Kdykoli by tento postup našel nebo vytvořil uzel s více než rodiče, uzel je odstraněn z grafu a přidán do řezu. Podle definice výsledný graf neobsahuje žádný uzel šířky větší než , a sada odstraněných uzlů je tedy a - střih.

Alternativou k použití tohoto algoritmu je nechat hledání vyhodnotit proměnné, ale v každém kroku zkontrolujte, zda je zbývající graf doménová struktura, a v takovém případě spusťte odvození. Jinými slovy, místo toho, abychom na začátku našli sadu proměnných a používali je pouze během vyhledávání, začíná algoritmus jako běžné hledání; v každém kroku, pokud přiřazené proměnné tvoří a část problému, je spuštěna inference pro kontrolu uspokojivosti. To je možné, protože kontrola, zda a daný sada uzlů je a příbor pro a pevný je polynomiální problém.

Hybridní algoritmus rozkladu stromů

Další hybridní vyhledávací / odvozovací algoritmus pracuje na rozklad stromů. Obecně lze problém spokojenosti s omezeními vyřešit tak, že nejprve vytvoříte rozklad stromu a poté použijete specializovaný algoritmus.

Jeden takový algoritmus je založen na prvním šíření omezení mezi uzly a na řešení dílčího problému v každém uzlu. Toto šíření spočívá ve vytvoření nových omezení, která představují účinky omezení v uzlu přes spojený uzel. Přesněji řečeno, pokud jsou dva uzly spojeny, sdílejí proměnné. Povolená vyhodnocení těchto proměnných podle omezení prvního uzlu určují, jak první uzel ovlivňuje proměnné druhého uzlu. Algoritmus funguje tak, že vytvoří omezení splněné těmito hodnoceními a začlení toto nové omezení do druhého uzlu.

Když byla všechna omezení šířena z listů do kořene a zpět do kořene, všechny uzly obsahují všechna omezení, která jsou pro ně relevantní. Problém lze proto vyřešit v každém uzlu.

Hybridní přístup lze provést pomocí variabilní eliminace pro vytváření nových omezení, která se šíří v uzlech, a vyhledávací algoritmus (například ustoupit, zpětný skok, místní vyhledávání ) na každém jednotlivém uzlu.

Reference

  • Dechter, Rina (2003). Zpracování omezení. Morgan Kaufmann. ISBN  1-55860-890-7.