www.wikidata.de-de.nina.az
Der AC 3 Algorithmus von englisch arc consistency algorithm dt Kantenkonsistenz Algorithmus ist ein Algorithmus zur Losung von Constraint Erfullungsproblemen CSPs mit binaren Bedingungen Er wurde 1977 von Alan Mackworth entwickelt 1 Der Algorithmus BearbeitenAC 3 arbeitet auf den Domanen von Variablen in Constraint Erfullungsproblemen Eine Variable kann hier jeden Wert einer festgelegten Menge ihrer Domane annehmen Diese Belegungen der Variablen werden durch klar definierte Regeln Constraints eingeschrankt Diese Constraints konnen die Belegungen anderer Variablen beinhalten Ein CSP kann als gerichteter Graph betrachtet werden wobei die Knoten den Variablen des Problems entsprechen und die Kanten fur Constraints stehen AC 3 untersucht die Kanten zwischen Variablen Paaren x y Es werden jene Werte aus den Domanen von x und y entfernt die nicht mit den Constraints zwischen x und y konsistent sind Der Algorithmus speichert die Kanten die noch gepruft werden mussen Wenn Werte aus der Domane einer Variable entfernt werden werden alle Kanten Constraints an dieser Variable der Menge der noch zu prufenden Kanten hinzugefugt Da die Domanen von Variablen endlich sind und in jedem Schritt entweder eine Kante oder eine Variable entfernt werden terminiert der Algorithmus garantiert Ein Beispiel anhand eines einfachen Problems Es sei eine Variable X mit der Domane D X 0 1 2 3 4 5 gegeben Ausserdem sei eine Variable Y mit D Y 0 1 2 3 4 5 gegeben Die Constraints seien C1 X sei gerade und C2 X Y 4 Da AC 3 in einem gerichteten Graphen reprasentiert wird existieren dabei aufgrund von C2 zwei Kanten zwischen X und Y Bei Anwendung von AC 3 werden zunachst die ungeraden Werte der Domane von X entfernt wodurch alle verbleibenden Belegungsmoglichkeiten fur X D X 0 2 4 den Constraint C1 erfullen Anschliessend werden die Kanten zwischen X und Y untersucht Constraint C2 wird nur durch die Belegungen X 0 Y 4 X 2 Y 2 und X 4 Y 0 erfullt AC 3 terminiert mit D X 0 2 4 und D Y 0 2 4 AC 3 in Pseudocode function AC3 Reduziert Domanen queue Alle Kanten des CSP while empty queue Entferne eine Kante x y aus queue if EntferneInkonsistenteWerte x y foreach Nachbar z von x queue ADD Kante z x function AC3 end function EntferneInkonsistenteWerte x y Liefert true wenn Domane D x reduziert wird removed false foreach Value v1 in D x if Kein v2 in D Y so dass x v1 y v2 alle Constraints zwischen x y erfullt D x LOSCHE v1 removed true return removed function EntferneInkonsistenteWerte end Der Algorithmus hat eine Worst Case Zeit Komplexitat von O ed3 Worst Case Speicher Komplexitat O e wobei e die Anzahl der Kanten und d die Grosse der grossten Domane ist Belege Bearbeiten Alan K Mackworth Consistency in Networks of Relations In Artificial Intelligence Bd 8 Nr 1 Februar 1977 ISSN 0004 3702 S 99 118 doi 10 1016 0004 3702 77 90007 8 Abgerufen von https de wikipedia org w index php title AC 3 Algorithmus amp oldid 225609608