Computationele Intelligentie

Vergelijkbare documenten
Computationele Intelligentie

Kosten. Computationale Intelligentie. Een zoekprobleem met stapkosten. Een voorbeeld: het vinden van een route. Zoeken met kosten.

Duration: 2 hrs; Total points: 100 No documents allowed. Use of electronic devices, such as calculators, smartphones, smartwatches is forbidden.

Constraint satisfaction. Computationele Intelligentie. Voorbeelden. Een constraint satisfaction probleem. Constraint Satisfaction

Constraint satisfaction. Zoekalgoritmen ( ) College 11: Constraint Satisfaction. Voorbeelden. Een constraint satisfaction probleem

Computationale Intelligentie Dirk Thierens

Zoeken met beperkt geheugen. Zoekalgoritmen ( ) College 7: Zoeken met beperkt geheugen. Een representatie van het kleuringsprobleem

Een voorbeeld. Computationele Intelligentie Zoeken met een tegenstander. Een voorbeeld vervolg. Een zoekprobleem met een tegenstander

Recapitulatie: Ongeïnformeerd zoeken. Zoekalgoritmen ( ) College 2: Ongeïnformeerd zoeken. Dynamische breadth-first search

Lokaal zoeken. Computationele Intelligentie. Een representatie van het kleuringsprobleem. Impliciete doeltoestanden. Lokaal zoeken

Kunstmatige Intelligentie (AI) Hoofdstuk 6 van Russell/Norvig = [RN] Constrained Satisfaction Problemen (CSP s) voorjaar 2015 College 7, 31 maart 2015

Uitwerking tentamen Algoritmiek 10 juni :00 13:00

Opgaven Kunstmatige intelligentie 4 mei 2012

Uitwerking tentamen Analyse van Algoritmen, 29 januari

Opgaven Kunstmatige Intelligentie 1 maart 2017

Branch-and-Bound en Cutting Planes

Transport-, Routing- en Schedulingproblemen. Wi4062TU / Wi487TU / a86g. Uitwerkingen

l e x e voor alle e E

Uitwerking tentamen Algoritmiek 9 juli :00 13:00

Grafen. Indien de uitgraad van ieder punt 1 is, dan bevat de graaf een cykel. Indien de ingraad van ieder punt 1 is, dan bevat de graaf een cykel.

Het Queens n 2 graafkleuring probleem

Containers stapelen. M.L. Koning april 2013

Overzicht. Inleiding. Toepassingen. Verwante problemen. Modellering. Exacte oplosmethode: B&B. Insertie heuristieken. Local Search

Tiende college algoritmiek. 26 april Gretige algoritmen

Examen Datastructuren en Algoritmen II

De statespace van Small World Networks

Opgave Constraint Processing

Kunstmatige Intelligentie (AI) Hoofdstuk van Russell/Norvig = [RN] Genetische algoritmen. voorjaar 2016 College 11, 3 mei 2016

Uitgebreide uitwerking tentamen Algoritmiek Dinsdag 2 juni 2009, uur

Tiende college algoritmiek. 13/21 april Gretige Algoritmen Algoritme van Dijkstra

Elfde college algoritmiek. 21 april Dijkstra en Branch & Bound

Datastructuren en Algoritmen

Tentamen Kunstmatige Intelligentie (INFOB2KI)

Heuristisch zoeken. Computationele Intelligentie. Een heuristische functie op de toestandsruimte. Voorbeelden van kennis. Heuristisch zoeken

Transport-, Routing- en Schedulingproblemen. Wi4062TU / Wi487TU / a86g. Uitwerkingen

9. Strategieën en oplossingsmethoden

Tiende college algoritmiek. 2 mei Gretige algoritmen, Dijkstra

Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms

Discrete Wiskunde, College 12. Han Hoogeveen, Utrecht University

Combinatoriek en rekenregels

Datastructuren Uitwerking jan

Uitwerkingen Sum of Us

Tentamen: Operationele Research 1D (4016)

Vierde college algoritmiek. 2 maart Toestand-actie-ruimte Exhaustive Search

Tentamen Kunstmatige Intelligentie (INFOB2KI)

In dit gedeelte worden drie problemen genoemd die kunnen voorkomen in netwerken.

Doorzoeken van grafen. Algoritmiek

Tiende college algoritmiek. 14 april Dynamisch Programmeren, Gretige Algoritmen, Kortste Pad met BFS

Modeluitwerking Tentamen Computationele Intelligentie Universiteit Leiden Informatica Vrijdag 11 Januari 2013

Combinatoriek en rekenregels

Begrenzing van het aantal iteraties in het max-flow algoritme

CTB1002 deel 1 - Lineaire algebra 1

Release Notes CheQpoint 2.0. Versie 30. Efficiency through innovation

Handleiding Japanse puzzels

Divide & Conquer: Verdeel en Heers vervolg. Algoritmiek

Calculus I, 23/11/2015

Netwerkdiagram voor een project. AOA: Activities On Arrows - activiteiten op de pijlen.

Examen Datastructuren en Algoritmen II

Algoritmes in ons dagelijks leven. Leve de Wiskunde! 7 April 2017 Jacobien Carstens

Magidoku s en verborgen symmetrieën

ALGORITMIEK: antwoorden werkcollege 5

ALGORITMIEK: antwoorden werkcollege 5

TW2020 Optimalisering

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding:

Uitleg van de Hough transformatie

TW2020 Optimalisering

TU/e 2DD50: Wiskunde 2 (1)

Uitgebreide uitwerking Tentamen Complexiteit, juni 2017

Antwoorden. Magische vierkanten Vierkant voor Wiskunde Doeboek 8

8. Complexiteit van algoritmen:

Netwerkdiagram voor een project. AON: Activities On Nodes - activiteiten op knooppunten

Project Paper: Tiling problem

Transcriptie:

Computationele Intelligentie Uitwerking werkcollege Representatie, Ongeïnformeerd zoeken, Heuristisch zoeken 1 lokkenwereld a. De zoekboom die door het dynamische breadth-first search algoritme wordt gegenereerd voor het blokkenwereld zoekprobleem, is weergegeven in Figuur 1. ij het genereren van de zoekboom zijn de operatoren in een vaste volgorde toegepast: eerst wordt geprobeerd om het meest rechtse blok naar links te verplaatsen, vervolgens wordt geprobeerd om het meest rechtse blok naar rechts te verplaatsen, enzovoort. Omdat de operatoren in het probleem omkeerbaar zijn, is bij het genereren van de boom gebruik gemaakt van een van de technieken om herhaalde toestanden te voorkomen: er is gekozen om bij het expanderen van een knoop nooit een toestand op te nemen die gelijk is aan de toestand die wordt weergegeven door de ouder van de knoop. b. De zoekboom die door het dynamische depth-first search algoritme wordt gegenereerd voor het blokkenwereld zoekprobleem, is weergegeven in Figuur 2. ij het genereren van deze zoekboom is dezelfde vast volgorde van toepassing van de operatoren gebruikt als bij opgave a. Ook is dezelfde techniek gebruikt om herhaalde toestanden te voorkomen. 2 Een vijver in een park a. In Figuur 3(a) zijn de waarden van de heuristische functie h in roman weergegeven; de volgorde waarin de toestanden geëxpandeerd worden is weergegeven in italics. De doeltoestand wordt in 12 expansies gevonden; het gevonden pad heeft lengte 9. b. In Figuur 3(b) zijn de waarden van de evaluatiefunctie f in roman weergegeven. Merk op dat de evaluatiewaarde van de toestand linksboven is berekend over het pad dat via de toestand rechtsboven loopt; de knoop is immers door expansie van knopen op dat pad gegenereerd. De volgorde waarin de knopen geëxpandeerd worden is weergegeven in italics. De doeltoestand wordt in 14 expansies gevonden; het gevonden pad heeft lengte 7. c. Ja. Er geldt dat h(n) h (n) voor elke toestand n: de echte afstand kan immers nooit kleiner zijn dan de hemelsbrede afstand in horizontale richting plus de hemelsbrede afstand in verticale richting, aangezien de wandelaar alleen een stap in horizontale of in verticale richting kan zetten. Het algoritme is dus een -algoritme, en derhalve geoorloofd. 1

Figuur 1: De zoekboom van dynamische breadth-first search voor de blokkenwereld. 3 Een heuristische functie voor de Zwart-wit puzzel a. We beschouwen de puzzel met vier cellen en de begintoestand ZW Z Toepassing van het (dynamische) breadth-first search algoritme op de puzzel resulteert bijvoorbeeld in de zoekboom van Figuur 4; afhankelijk van de volgorde van toepassing van de operatoren kan een andere zoekboom resulteren. Merk op dat het breadth-first search algoritme een doeltoestand pas als zodanig herkent op het moment dat het de toestand expandeert. Omdat het algoritme in de puzzel de doeltoestand W ZZ niet direct bij generatie herkent, zullen de toestanden Z WZ en ZWZ op diepte 1 in de zoekboom eerst geëxpandeerd worden voordat het algoritme de doeltoestand vindt. b. Een variantprobleem voor een gegeven zoekprobleem is een probleem dat verkregen is uit het oorspronkelijke probleem door de operatoren te verzwakken. Het idee van zo n variantprobleem is de operatoren zodanig te verzwakken dat de precieze kortste afstand van een probleemtoestand tot de dichtstbijzijnde doeltoestand in het variantprobleem gemakkelijk te berekenen is. De precieze afstand in het variantprobleem wordt dan als heuristische functie voor de afstand in het oorspronkelijke probleem genomen. Voor de beschreven puzzel is een geschikt variantprobleem het probleem waarin twee willekeurige tegels van plaats verwisseld mogen worden. In vergelijking met het oorspronkelijke probleem zijn de operatoren op twee manieren verzwakt: een tegel kan niet alleen met de lege tegel verwisseld worden, maar met elke willekeurige tegel; een tegel kan over een willekeurige afstand verplaatst worden en niet alleen maar over maximaal twee celposities. In het variantprobleem kan in een gegeven probleemtoestand iedere witte tegel met slechts één verplaatsing op een celpositie in het linkerdeel van de rij gebracht worden. Zodra alle witte tegels aaneengesloten in de meest linkse cellen zijn geplaatst, staan ook de zwarte tegels op een correcte celpositie. Het aantal verschuivingen dat nodig is om een gegeven probleemtoestand in een dichtstbijzijnde doeltoestand te brengen, is derhalve gelijk aan het aantal incorrect geplaatste witte tegels. Het aantal incorrect geplaatste witte tegels wordt nu als heuristische functie voor het oorspronkelijke probleem genomen. Merk op dat deze heuristische functie 2

Figuur 2: De zoekboom van dynamische depth-first search voor de blokkenwereld. geoorloofd is: er is in het oospronkelijke probleem immers tenminste één verplaatsing nodig om een witte tegel op een correcte celpositie te krijgen. c. De bij onderdeel b. geformuleerde heuristische functie wordt nu gebruikt in een -algoritme. Daartoe wordt de functie ingebed in een evaluatiefunctie van de vorm f(n) = g (n) + h(n) voor elke probleemtoestand n, waarin g (n) de lengte van het kortste pad van de begintoestand naar n is en h(n) de heuristische waarde van n is. Toepassing van het resulterende -algoritme op de puzzel resulteert nu bijvoorbeeld in de zoekboom van Figuur 5; afhankelijk van de volgorde van toepassing van de operatoren kan een andere zoekboom resulteren. Merk op dat het -algoritme na expansie van de toestand WZZ de keuze heeft uit drie toestanden met dezelfde evaluatiewaarde. Het algoritme kiest naar willekeur een van deze drie toestanden voor expansie. Zoeken met kosten, Lokaal zoeken 3 2 2 10 1 2 11 3 2 4 3 4 10 7 9 7 12 7 8 2 3 9 7 13 5 4 1 9 0 12 1 1 2 3 7 11 7 14 1 1 3 3 2 8 1 7 2 6 3 5 7 9 5 7 5 6 5 5 (a) Figuur 3: Toepassing van best-first search (a) en van het -algoritme (b) op het Vijverprobleem (b) 3

ZW Z WZZ Z WZ ZWZ W ZZ bingo! ZWZ ZZW Z ZW Figuur 4: Een zoekboom voor de puzzel na toepassing van breadth-first search. ZW Z f = 0 + 1 = 1 WZZ f = 1 + 1 = 2 Z WZ f = 1 + 1 = 2 ZWZ f = 1 + 1 = 2 W ZZ f = 2 + 0 = 2 bingo! 4 Een stedenkaart Figuur 5: De zoekboom voor de puzzel na toepassing van. a. Het cost-based search algoritme genereert bijvoorbeeld de onderstaande zoekboom. ls de nakomelingen van een knoop in een andere volgorde worden gegenereerd, kan een enigszins afwijkende boom worden gevonden. Echter, bij elke volgorde zal het algoritme dezelfde oplossing geven. Het kortste pad van S naar G is de route Deze route heeft een lengte van 5 kilometer. S F G b. ij het toepassen van het depth-first branch-and-bound algoritme maakt het heel erg uit in welke volgorde de nakomelingen van een knoop worden gegenereerd, veel meer dan bij het toepassen van het cost-based search algoritme. Het depth-first branch-and-bound algoritme genereert bijvoorbeeld de onderstaande zoekboom. ij het genereren van deze boom is er voor 4

gekozen om vanuit de stad eerst de route direct naar stad G te onderzoeken; als eerst de route via stad zou zijn onderzocht, zou een veel grotere boom zijn ontstaan. ij het genereren van de bovenstaande zoekboom heeft het depth-first branch-and-bound algoritme gebruik gemaakt van achtereenvolgens de grenzen 7, 6 en 5 van de respectievelijke paden S G S G S F G Merk op dat de zoekboom van depth-first branch-and-bound vrijwel gelijk is aan die van cost-based search. Omdat het cost-based search algoritme veel meer geheugen gebruikt, is depth-first branch-and-bound voor het oplossen van het onderhavige probleem het meest geprefereerde algoritme. c. De zoekboom die door uitputtende depth-first search wordt gegenereerd is enorm groot. In vergelijking met de zoekboom van onderdeel b. van deze opgave worden nog 48 knopen extra gegenereerd: onder het pad S worden door het algoritme nog 18 knopen gegenereerd; onder het pad S D wordt door het algoritme nog 1 knoop gegenereerd; onder het pad S E worden door het algoritme nog 7 knopen gegenereerd; onder het pad S F E worden door het algoritme nog 2 knopen gegenereerd; onder het pad S C E worden door het algoritme nog 10 knopen gegenereerd; onder het pad S C F worden door het algoritme nog eens 10 knopen gegenereerd. Uit de verschillen in omvang van de zoekbomen kan geconcludeerd worden dat het voor het stedenkaart-probleem heel zinvol is om de branch-and-bound techniek te gebruiken. 5 Een vijver in een park (1) a. Het hill climbing algoritme zal de wandelaar niet in punt g brengen. Met het algoritme zal de wandelaar zelfs het beginpunt niet verlaten. Immers, de hemelsbrede afstand van punt s tot punt g is 1. De afstanden van de naburige punten van s tot g zijn beide gelijk aan 2. angezien het de bedoeling is om de heuristische waarde van een punt te minimaliseren, zal hill climbing alleen een punt met de waarde 1 of 0 selecteren. Het zal dus geen van de naburige punten van s selecteren en onmiddellijk termineren. b. Het attractieveld van een punt is de verzameling van alle punten van waaruit dat punt zeker bereikt zal worden. In de onderstaande figuur is het attractieveld van het eindpunt g weergegeven: 5

Merk op dat het punt helemaal links bovenin, bijvoorbeeld, niet tot het attractieveld van het eindpunt g behoort. Dit punt heeft twee naburige punten met beide de heuristische waarde 2. ls het algoritme er voor kiest om naar het punt onder het punt links boven te gaan, kan het vervolgens naar het punt daaronder gaan waarna het de doeltoestand niet meer bereikt. c. Voor het parkprobleem is het niet zinvol om het hill-climbing algoritme uit te breiden met de random-restart techniek. Immers, de random-restart techniek is gebaseerd op het idee dat willekeurige begintoestanden kunnen worden gegenereerd van waaruit hill climbing wordt opgestart. ij het parkprobleem is echter één vaste begintoestand gegeven. 6 Een vijver in een park (2) a. Ook het lokale beam-search algoritme zal de wandelaar niet in punt g brengen. Net als met hill climbing zal ook met lokale beam search de wandelaar het beginpunt zelfs niet verlaten. Lokale beam search zal immers geen toestand selecteren met een slechtere heuristische waarde dan de slechtste huidige toestand. De hemelsbrede afstand van punt s tot punt g is 1. De afstanden van de naburige punten van s tot g zijn beide gelijk aan 2. Deze punten zijn in termen van de heuristische functie dus beide slechter dan het beginpunt s. b. In de onderstaande figuur is het attractieveld van het eindpunt g weergegeven voor lokale beam search met k = 2: Merk op dat het punt rechtsboven niet tot het attractieveld behoort. ls dit punt geëxpandeerd wordt, zullen beide naburige punten met de heuristische waarde 3 opgeslagen worden. ij het expanderen van deze punten zullen drie punten met de heuristische waarde 2 ontstaan. Het algoritme zal slechts twee van deze punten opslaan. ij een verkeerde keuze zal het algoritme het eindpunt niet meer bereiken. c. ij toepassing van het lokale beam-search algoritme met k = 3 zal het attractieveld inderdaad groter worden: het punt rechtsboven zal dan tot het attractieveld van het eindpunt gaan behoren. Met een grotere waarde van k zal altijd tenminste hetzelfde attractieveld worden gevonden. Meestal zal met toenemende k het attractieveld zelfs groter gevonden. In het parkprobleem geldt echter dat met k = 4 het attractieveld niet verder zal toenemen. Constraint Satisfaction Problemen 6

7 Pijlconsistentie a. Een waarde d in een domein D i van een variabele V i heet redundant in D i als er geen enkele oplossing van het onderhavige constraint satisfaction probleem bestaat waarin de variabele V i de waarde d heeft. Een voorbeeld van zo n redundante waarde in het probleem van deze opgave is de waarde 1 in het domein D 1 van de variabele V 1. an de hand van de gespecificeerde constraints is in te zien dat in elke oplossing van het probleem de variabele V 1 een waarde moet hebben die groter is dan de waarden van de variabelen V 2 en V 3. angezien de kleinste waarde in de domeinen van de variabelen V 2 en V 3 gelijk is aan 1, zal de variabele V 1 dus in elke oplossing een waarde groter dan 1 hebben. De waarde 1 is daardoor redundant in het domein D 1. b. Voor het analyseren van de verschillende constraints van een probleem is het vaak handig om de constraints eerst in de vorm van een verzameling tupels te schrijven. Voor het probleem van de opgave geldt: C 1,2 = {(2, 1), (3, 1), (3, 2)}, aangezien de waarde van de eerste variabele groter moet zijn dan de waarde van de tweede variabele; C 1,3 = {(2, 1), (3, 1), (3, 2)}, aangezien de waarde van de eerste variabele groter moet zijn dan de waarde van de tweede variabele; C 2,4 = {(1, 1), (2, 2)}, aangezien de twee variabelen dezelfde waarde moeten hebben en hun beider domeinen gelijk zijn aan {1, 2}; C 3,4 = {(1, 2), (2, 1)}, aangezien de twee variabelen verschillende waarden moeten hebben en hun beider domeinen gelijk zijn aan {1, 2}; C 2,3 = {(1, 1), (1, 2), (2, 1), (2, 2)}, aangezien voor de constraint geen expliciete restricties zijn beschreven en alle mogelijke combinaties van waarden dus zijn toegestaan; C 1,4 = {(1, 1), (1, 2), (2, 1), (2, 2), (3, 1), (3, 2)}, aangezien voor de constraint geen expliciete restricties zijn beschreven en alle mogelijke combinaties van waarden dus zijn toegestaan; C i,j = C j,i. Een tupel (d, d ) in een constraint C i,j heet redundant in de constraint als er geen enkele oplossing van het onderhavige probleem is waarin de variabele V i de waarde d en de variabele V j de waarde d heeft. Enkele voorbeelden van dergelijke redundante tupels in het probleem van de opgave zijn: het tupel (2, 1) is redundant in de constraint C 1,2. Veronderstel dat de variabele V 1 de waarde 2 heeft en dat de variabele V 2 de waarde 1 heeft. Omdat V 2 de waarde 1 heeft, moet de variabele V 4 ook de waarde 1 krijgen om aan de constraint C 2,4 te voldoen. Om aan de constraint C 1,3 te voldoen, moet de variabele V 3 ook de waarde 1 hebben. Maar, als V 3 de waarde 1 heeft, dan mag V 4 juist niet de waarde 1 hebben: immers, als V 4 ook de waarde 1 zou hebben, dan zou de constraint C 3,4 geschonden zijn. We kunnen concluderen dat er geen enkele oplossing van het probleem bestaat waarin V 1 de waarde 2 en V 2 de waarde 1 heeft. de tupels (1, 1), (2, 2) zijn redundant in de constraint C 2,3. Om aan de constraints C 2,4 en C 3,4 te voldoen, zullen de variabelen V 2 en V 3 immers verschillende waarden moeten hebben. de tupels (1, 1), (1, 2) zijn redundant in de constraint C 1,4. In de genoemde twee tupels heeft de variabele V 1 de waarde 1. In onderdeel a. van de opgave is juist vastgesteld dat V 1 in geen enkele oplossing de waarde 1 heeft. De twee tupels zijn dus redundant. c. Een constraint C i,j heet consistent als voor elke waarde d uit het domein van de variabele V i er een waarde d in het domein van de variabele V j te vinden is zodanig dat het tupel (d, d ) volgens de constraint is toegestaan. Voor het probleem van de opgave geldt nu dat: 7

de constraint C 1,2 is inconsistent, aangezien voor de waarde 1 van de variabele V 1 geen waarde voor de variabele V 2 kan worden gevonden met V 1 > V 2 ; de constraint C 1,3 is inconsistent, aangezien voor de waarde 1 van de variabele V 1 geen waarde voor de variabele V 3 kan worden gevonden met V 1 > V 3 ; de constraint C 1,4 is consistent, aangezien voor elke waarde uit het domein van de variabele V 1 een toegestane waarde in het domein van de variabele V 4 kan worden gevonden: de constraint is immers universeel; de constraint C 2,1 is consistent, aangezien voor elke waarde uit het domein {1, 2} van de variabele V 2 een waarde in het domein van de variabele V 1 kan worden gevonden waarmee aan de constraint is voldaan: bijvoorbeeld, voor elke waarde van de variabele V 2 is de waarde 3 voor de variabele V 1 toegestaan; de constraint C 2,3 is consistent: de constraint is immers universeel; de constraint C 2,4 is consistent, aangezien voor elke waarde van de variabele V 2 een waarde in het domein van de variabele V 4 kan worden gevonden waarmee aan de constraint is voldaan: om aan de constraint te voldoen moeten de twee variabelen dezelfde waarde hebben en alle waarden van de variabele V 2 komen ook voor in het domein van de variabele V 4 ; de constraint C 3,1 is consistent, aangezien voor elke waarde van de variabele V 3 een waarde in het domein van de variabele V 1 kan worden gevonden waarmee aan de constraint is voldaan: bijvoorbeeld, voor elke waarde van de variabele V 3 is de waarde 3 voor de variabele V 1 toegestaan; de constraint C 3,2 is consistent: de constraint is immers universeel; de constraint C 3,4 is consistent, aangezien voor elke waarde van de variabele V 3 een waarde in het domein van de variabele V 4 kan worden gevonden waarmee aan de constraint is voldaan: om aan de constraint te voldoen moeten de variabelen V 3 en V 4 verschillende waarden hebben en omdat het domein van de variabele V 4 meer dan één waarde bevat, is het altijd mogelijk om een toegestane waarde te vinden; de constraint C 4,1 is consistent: de constraint is immers universeel; de constraint C 4,2 is consistent, aangezien voor elke waarde van de variabele V 4 een waarde in het domein van de variabele V 2 kan worden gevonden waarmee aan de constraint is voldaan: om aan de constraint te voldoen moeten de twee variabelen dezelfde waarde hebben en alle waarden van de variabele V 4 komen ook voor in het domein van de variabele V 2 ; de constraint C 4,3 is consistent: om aan de constraint te voldoen moeten de twee variabelen verschillende waarden hebben en omdat het domein van de variabele V 3 meer dan één waarde bevat, is het altijd mogelijk om een toegestane waarde te vinden. Merk op dat het voor twee variabelen V i en V j mogelijk is dat de constraint in de ene richting (bijvoorbeeld, C i,j ) consistent is en in de andere richting (C j,i ) inconsistent. d. Voor de reductie van het oorspronkelijke probleem tot een pijlconsistent probleem wordt de arc-consistency-3 procedure van transparant 180 toegepast. Het aanroepen van de procedure heeft de volgende effecten: cs-set element effect {C 1,2, C 1,3, C 1,4, C 2,1, C 2,3, C 2,4, C 1,2 D 1 = {2, 3} C 3,1, C 3,2, C 3,4, C 4,1, C 4,2, C 4,3 } {C 1,3, C 1,4, C 2,1, C 2,3, C 2,4, C 1,3 - C 3,1, C 3,2, C 3,4, C 4,1, C 4,2, C 4,3 }... - {C 4,3 } C 4,3-8

In de eerste stap van de procedure wordt de verzameling cs-set geïnitialiseerd met alle constraints van het probleem. De constraint C 1,2 wordt uit de verzameling gehaald en consistent gemaakt met behulp van de procedure revise. De aanroep van de procedure revise leidt tot een wijziging in het domein van de variabele V 1 : de waarde 1 wordt uit het domein verwijderd, aangezien voor deze waarde geen passende waarde in het domein van de variabele V 2 kan worden gevonden. Ten gevolge van de wijziging van het domein D 1 worden de constraints C 3,1 en C 4,1 aan de verzameling cs-set toegevoegd. In de navolgende stappen van de procedure vinden geen wijzigingen in de domeinen van de variabelen meer plaats. Merk op dat elke constraint slechts eenmaal onderzocht is. Na de reductie is het resulterende probleem: de verzameling V van variabelen is als voorheen; de verzameling D van domeinen bevat D 1 = {2, 3}, D 2 = D 3 = D 4 = {1, 2}; de verzameling C van constraints bevat C 1,2 = {(2, 1), (3, 1), (3, 2)} {(2, 1), (2, 2), (3, 1), (3, 2)} = = {(2, 1), (3, 1), (3, 2)}; C 1,3 = {(2, 1), (3, 1), (3, 2)} {(2, 1), (2, 2), (3, 1), (3, 2)} = = {(2, 1), (3, 1), (3, 2)}; C 2,4 = {(1, 1), (2, 2)} {(1, 1), (1, 2), (2, 1), (2, 2)} = {(1, 1), (2, 2)}; C 3,4 = {(1, 2), (2, 1)} {(1, 1), (1, 2), (2, 1), (2, 2)} = {(1, 2), (2, 1)}; C i,j = C j,i. Merk op dat de constraints ongewijzigd zijn in vergelijking met het originele probleem. e. In het gereduceerde probleem komt nog steeds een redundante waarde voor: de waarde 2 in het domein D 1 van de variabele V 1 is namelijk redundant. Veronderstel dat de variable V 1 de waarde 2 heeft. Om aan de constraints C 1,2 en C 1,3 te voldoen, moeten de variabelen V 2 en V 3 beide de waarde 1 krijgen; andere consistente waardetoekenningen voor V 2 en V 3 zijn er niet. Echter, om aan de constraints C 2,4 en C 3,4 te voldoen, zouden V 2 en V 3 een verschillende waarde moeten krijgen. We concluderen dat in geen enkele oplossing van het probleem de variabele V 1 de waarde 2 zal hebben. f. In de constraints van het gereduceerde probleem komen nog enkele redundante tupels voor. Een voorbeeld van zo n redundant tupel is het tupel (2, 2) in de constraint C 2,3. In het genoemde tupel hebben de variabelen V 2 en V 3 dezelfde waarde. Om aan de constraints C 2,4 en C 3,4 te voldoen, zullen de twee variabelen echter verschillende waarden moeten hebben. We concluderen dat er geen enkele oplossing van het probleem bestaat waarin de variabelen V 2 en V 3 beide de waarde 2 hebben. 8 Forward checking ij het toepassen van het forward-checking algoritme moeten de variabelen in de volgorde V 1, V 2, V 3, V 4, V 5 geïnstantieerd worden. Stap 1 Voordat de eerste variabele een waarde krijgt, zijn de domeinen van de variabelen gelijk aan D i = {1, 2, 3} voor alle i. an de variabele V 1 wordt nu de eerste waarde uit zijn domein toegekend: V 1 = 1 9

Na deze waardetoekenning maakt het algoritme de volgende constraints consistent: C 2,1, C 3,1, C 4,1, C 5,1. ij het consistent maken van de eerste drie constraints vindt geen wijziging in de domeinen van de variabelen plaats, aangezien deze constraints universeel zijn. Het consistent maken van de constraint C 5,1 resulteert wel in een gewijzigd domein: D 5 = {2, 3} Het domein van V 5 is niet leeg geworden en het algoritme gaat verder met de volgende variabele. Stap 2 an de variabele V 2 wordt de eerste waarde uit zijn domein toegekend: V 2 = 1 Na deze toekenning maakt het algoritme de volgende constraints consistent: C 3,2, C 4,2, C 5,2. Het consistent maken van de eerste constraint leidt tot een wijziging in het domein van de variabele V 3 : D 3 = {1} ij het consistent maken van de andere twee constraints resulteren geen verdere wijzigingen meer. Geen enkel domein is leeg geworden en het algoritme gaat verder met de volgende variabele. Stap 3 an de variabele V 3 wordt de enige overgebleven waarde uit zijn domein toegekend: V 3 = 1 Na deze toekenning maakt het algoritme de volgende constraints consistent: C 4,3, C 5,3. Het consistent maken van de eerste constraint leidt niet tot een wijziging in het domein van de variabele V 4. ij het consistent maken van de constraint C 5,3 echter, worden de twee overgebleven waarden van V 5 uit het domein geschrapt. Het domein van V 5 is daarmee leeg geworden en het algoritme maakt de waardetoekenning V 3 = 1 ongedaan. Omdat er geen andere mogelijke waarden voor de variabele V 3 zijn, maakt het algoritme ook de waardetoekenning V 2 = 1 ongedaan. Stap 2 an de variabele V 2 wordt nu de volgende waarde uit zijn domein toegekend: V 2 = 2 Na deze toekenning maakt het algoritme de volgende constraints consistent: C 3,2, C 4,2, C 5,2. ij het consistent maken van C 3,2 resulteert een wijziging in het domein van de variabele V 3 : D 3 = {2} ij het consistent maken van de andere twee constraints resulteren geen verdere wijzigingen meer. Geen enkel domein is leeg geworden en het algoritme gaat verder met de volgende variabele. Stap 3 an de variabele V 3 wordt de enige overgebleven waarde uit zijn domein toegekend: V 3 = 2 Na deze toekenning maakt het algoritme de volgende constraints consistent: C 4,3, C 5,3. Het consistent maken van de eerste constraint leidt niet tot een wijziging in het domein van de variabele V 4. ij het consistent maken van de constraint C 5,3 wordt de waarde 3 uit het domein van V 5 geschrapt en resulteert: D 5 = {2} 10

Geen enkel domein is leeg geworden en het algoritme gaat verder met de volgende variabele. Stap 4 an de variabele V 4 wordt de eerste waarde uit zijn domein toegekend: V 4 = 1 Na deze toekenning maakt het algoritme de constraint C 5,4 consistent, hetgeen niet tot een wijziging in het domein van de variabele V 5 leidt. Geen enkel domein is leeg geworden en het algoritme gaat verder met de volgende variabele. Stap 5 an de variabele V 5 wordt de enige waarde uit zijn domein toegekend: V 5 = 2 Het algoritme heeft hiermee de oplossing (V 1 = 1, V 2 = 2, V 3 = 2, V 4 = 1, V 5 = 2) gevonden. 11