Constraintvervullingsproblemen

Bij veel planningsproblemen, toewijzingsproblemen en puzzels komt het erop neer dat je waarden kiest voor een verzameling variabelen, zodat aan elke regel wordt voldaan. Dit materiaal laat zien hoe je zulke taken beschrijft als constraintvervullingsproblemen en hoe je ze oplost: zoeken met backtracking en een slimme ordening van variabelen en waarden, voorwaartse controle en boogconsistentie om onmogelijke waarden te verwijderen, lokaal zoeken met de minimaleconflictenheuristiek voor grote problemen en snelle aanpassingen, en methoden die de vorm van de constraintgraaf benutten, zoals het algoritme met lineaire looptijd voor problemen met een boomstructuur en conditioneren op een cyclusdoorbrekende knopenverzameling. Elke methode wordt stap voor stap uitgewerkt aan de hand van kleine voorbeelden, waaronder een workshoprooster, het kleuren van een kaart en de n-damespuzzel.

GemiddeldLes 3 van 10 in Cursus Kunstmatige intelligentie

Wat je leert

  1. Beschrijf een probleem aan de hand van de variabelen, domeinen en constraints, herken de soorten constraints en zet plannings- en toewijzingstaken uit de praktijk om in correct geformuleerde constraintvervullingsproblemen.
    • Beschrijf de onderdelen van een constraintvervullingsprobleem
      Benoem de variabelen, domeinen en constraints van een probleem, onderscheid gedeeltelijke, consistente en volledige waardetoekenningen en teken de constraintgraaf.
    • Onderscheid de soorten constraints
      Deel constraints in als unair, binair, van hogere orde of globaal, herschrijf constraints van hogere orde als binaire constraints en onderscheid harde constraints van voorkeuren.
    • Modelleer planningsproblemen en toewijzingsproblemen als CSP's
      Zet roosterproblemen, werkplaatsplanning, toewijzingstaken en puzzels om in CSP's. Kies variabelen en domeinen zo dat de constraints eenvoudig blijven.
  2. Zoek naar een oplossing door steeds één variabele een waarde te geven, keer terug bij doodlopende zoekpaden en kies de volgorde van variabelen en waarden zo dat je met veel minder werk een oplossing vindt of bewijst dat er geen is.
    • Voer zoeken met backtracking stap voor stap uit
      Leg uit waarom backtracking per niveau één variabele een waarde geeft, voer het algoritme met de hand uit en beschrijf de volledigheid en kosten ervan.
    • Kies variabelen en waarden met ordeningsheuristieken
      Pas de heuristiek van de minste resterende waarden, de graadheuristiek en de minst beperkende waarde toe, leg uit waarom ze in tegengestelde richtingen wijzen en meet hun effect op een zoekproces.
    • Keer na een doodlopend zoekpad gericht terug naar een eerdere keuze
      Gebruik conflictverzamelingen om terug te springen voorbij variabelen die een mislukking niet hebben veroorzaakt en leg verboden combinaties vast zodat dezelfde mislukking zich niet herhaalt.
  3. Gebruik inferentie om vóór en tijdens het zoeken waarden te verwijderen die geen deel van een oplossing kunnen zijn, en beoordeel wat voorwaartse controle, boogconsistentie en sterkere consistentie elk garanderen.
    • Pas tijdens het zoeken voorwaartse controle toe
      Verklein de domeinen van variabelen die grenzen aan een variabele die net een waarde heeft gekregen, herken lege domeinen, herstel waarden bij het terugkeren en herken wat voorwaartse controle mist.
    • Dwing boogconsistentie af met AC-3
      Pas knoop- en boogconsistentie toe, voer AC-3 met de hand uit, ken de kosten en beperkingen en handhaaf boogconsistentie tijdens het zoeken.
    • Gebruik sterkere consistentie en globale constraints
      Leg pad- en k-consistentie uit, pas propagatie toe op Alldiff- en grensconstraints en weeg het extra verwijderen van waarden af tegen de kosten.
  4. Begin met een volledige waardetoekenning en herstel die met de minimaleconflictenheuristiek, ontsnap aan plateaus en lokale minima en beoordeel wanneer lokaal zoeken of backtracking de betere methode is.
    • Herstel waardetoekenningen met de minimaleconflictenheuristiek
      Voer de minimaleconflictenheuristiek met de hand uit op een formulering met volledige kandidaatoplossingen, leg uit waarom de methode goed werkt bij grote problemen en gebruik haar om een rooster na een wijziging te herstellen.
    • Ontsnap aan plateaus en lokale minima en kies tussen lokaal zoeken en backtracking
      Gebruik zijwaartse stappen, taboezoeken, constraintweging en herstarts en bepaal welke methode bij een gegeven probleem past.
  5. Lees de constraintgraaf om een probleem in onafhankelijke delen te splitsen, los problemen met een boomstructuur op in lineaire tijd en herleid problemen met een bijna-boomstructuur tot bomen.
    • Splits onafhankelijke deelproblemen af en los CSP's met een boomstructuur op
      Vind onafhankelijke deelproblemen in de constraintgraaf en los een CSP met een boomstructuur op met de achterwaartse en voorwaartse doorloop van het boomalgoritme.
    • Herleid problemen met een bijna-boomstructuur tot bomen
      Pas conditioneren op een cyclusdoorbrekende knopenverzameling en boomdecompositie toe, breng hun kosten in verband met de grootte van de knopenverzameling en de boombreedte en doorbreek waardesymmetrie.

Constraintvervullingsproblemen: uitleg

5 hoofdstukken

1

Formuleer problemen als constraintvervullingsproblemen

Een rooster kiezen of beoordelaars toewijzen begint met een model: wat heeft een waarde nodig, welke waarden zijn mogelijk en welke combinaties zijn toegestaan? Met een helder model kunnen dezelfde oplossingsmethoden voor heel verschillende taken werken. Je bouwt dat model, onderscheidt eisen van voorkeuren en ziet hoe de keuze van variabelen het werk van een oplosser verandert. Kleine voorbeelden van planning en puzzels maken elk onderdeel concreet.

1.1 Beschrijf de onderdelen van een constraintvervullingsprobleem

Een constraintvervullingsprobleem, of CSP, beschrijft een verzameling keuzes en de regels die ze verbinden. De toestand heeft een gefactoriseerde representatie: je kunt afzonderlijke variabelen en hun waarden bekijken en vervolgens algemene methoden voor het verwijderen van waarden en het zoeken opnieuw gebruiken.

Variabelen, domeinen en constraints

Een variabele benoemt iets wat gekozen moet worden. Het domein bevat de toegestane waarden. Een constraint geeft aan welke combinaties samen mogen voorkomen. Laat voor workshops A en B elke waarde een tijdvak uit {1,2,3} zijn. De regel “A komt vóór B” heeft variabelenbereik {A,B} en constraintrelatie {(1,2),(1,3),(2,3)}. De schrijfwijze A<B drukt dezelfde relatie beknopt uit.

Het variabelenbereik noemt de betrokken variabelen; de constraintrelatie geeft de toegestane waardetupels. Als je die verwart, kan een model ontstaan waarin “rood” een variabele wordt. Bij het kleuren van een kaart zijn regio's variabelen en kleuren waarden.

Wat telt als oplossing?

Een waardetoekenning geeft waarden aan variabelen. Drie controles beschrijven de status ervan:

  • De waardetoekenning is gedeeltelijk als sommige variabelen geen waarde hebben.
  • De waardetoekenning is volledig als elke variabele een waarde heeft.
  • De waardetoekenning is consistent als die geen constraint tussen de variabelen met een waarde schendt.

Een oplossing moet volledig en consistent zijn. Met alleen A=2 is de waardetoekenning consistent maar gedeeltelijk. Uitbreiding met B=1 maakt haar volledig en inconsistent. De keuze B=3 geeft een oplossing voor dit voorbeeld met twee variabelen. Een consistente gedeeltelijke waardetoekenning kan toch onmogelijk volledig worden gemaakt: bij variabelen zonder waarde kunnen de passende keuzes opraken.

Lees een constraintgraaf

Teken voor een binair CSP één knoop per variabele en één verbinding voor elk paar met een constraint. Op een vereenvoudigde kaart van Australië zijn de variabelen WA, NT, SA, Q, NSW, V en T, elk met domein {rood, groen, blauw}. De aangrenzende paren zijn WA–NT, WA–SA, NT–SA, NT–Q, SA–Q, SA–NSW, SA–V, Q–NSW en NSW–V. Elke verbinding vereist verschillende kleuren.

Een oplossing is WA rood, NT groen, SA blauw, Q rood, NSW groen, V rood en T rood. Controleer elke verbinding, ook SA–V. T heeft geen verbinding, dus is de kleur onafhankelijk van het vasteland. Er zijn 6 kleuringen van het vasteland en 3 keuzes voor T, samen 18 oplossingen. Een constraint met meerdere variabelen vereist een hypergraafrepresentatie; een extra constraintknoop kan worden verbonden met elke variabele in het variabelenbereik.

Domeinen en zoekruimte

Een eindig discreet domein is een vaste lijst, zoals drie kleuren. Een oneindig discreet domein kan elke niet-negatieve gehele begintijd bevatten. Een continu domein kan tijden met reële waarden bevatten. De laatste twee vereisen representaties en methoden die bij die domeinen passen; lineair programmeren behandelt continue lineaire constraints.

Voor n variabelen met elk d waarden zijn er dn volledige waardetoekenningen. De kaart heeft 37=2187 kandidaten voordat constraints er uitsluiten. Eindige CSP's omvatten NP-complete problemen, dus is er geen algemene oplossingsmethode in polynomiale tijd bekend. Hun interne structuur maakt het toch mogelijk waarden uit te sluiten: de oplosser kan een keuze uitsluiten zonder elke volledige waardetoekenning met die keuze op te sommen. Alleen de uiteindelijke waarden bepalen of het antwoord geldig is; het pad waarlangs ze zijn gevonden, is niet van belang.

Belangrijkste punten

  • Een CSP specificeert variabelen, hun domeinen en constraints over combinaties van waarden.
  • Een oplossing is zowel volledig als consistent.
  • Een binaire constraintgraaf laat zien welke variabelen elkaar rechtstreeks beïnvloeden.
  • Bij gelijke domeingrootte is het aantal volledige waardetoekenningen dn.

1.2 Onderscheid de soorten constraints

Constraints verschillen in het aantal variabelen dat ze verbinden en in de vraag of ze eisen of voorkeuren aangeven. Als je die structuur herkent, kun je een getrouw model schrijven en bruikbare propagatiemethoden kiezen.

Deel in naar variabelenbereik

Een unaire constraint beperkt één variabele. Als workshop E tijdvak 1 niet kan gebruiken, pas je E≠1 toe door het domein vóór het zoeken te verkleinen van {1,2,3} tot {2,3}. Een binaire constraint legt een verband tussen twee variabelen, zoals A<B of A≠D. Een binair CSP bevat alleen unaire en binaire constraints.

Een constraint van hogere orde heeft betrekking op minstens drie variabelen. Als de taakduren X, Y en Z samen 10 uur moeten vullen, schrijf je X+Y+Z=10. Met elke duur in {1,2,3,4,5} voldoet de tupel (2,3,4) niet, terwijl (2,3,5) wel voldoet. Bij de controle van een regel van hogere orde moeten de waarden samen voldoen.

Behoud nuttige globale constraints

Een globale constraint geeft een benoemde regel over een groep met een variabel aantal leden. Alldiff⁡(X1,…,Xk) vereist voor elk paar verschillende waarden. De oplossingsverzameling is gelijk aan die van de k(k−1)/2 paarsgewijze ongelijkheden. Voor negen Sudokucellen zijn dat 36 binaire constraints.

De globale vorm laat een oplosser ook over de groep redeneren. Drie variabelen die beperkt zijn tot twee verschillende waarden kunnen niet allemaal verschillen, ook al heeft elk afzonderlijk paar een verenigbare waardetoekenning. Gelijke oplossingsverzamelingen garanderen niet dat evenveel waarden kunnen worden verwijderd.

Een capaciteitsregel kan ook globaal zijn. Hier betekent Atmost⁡(10,P1,P2,P3) hetzelfde als P1+P2+P3≤10: het totale aantal mensen dat aan de drie taken is toegewezen, mag niet groter zijn dan tien. De argumenten stellen aantallen voor die worden opgeteld, dus staat deze regel bijvoorbeeld (3,4,3) toe.

Zet een eindige constraint om naar binaire vorm

Introduceer een hulpvariabele U waarvan de waarden de toegestane drietallen voor X+Y+Z=10 zijn. Eén mogelijke waarde is (2,3,5). Voeg drie binaire constraints toe: de eerste component van U is gelijk aan X, de tweede aan Y en de derde aan Z. Als je die waarde voor U kiest, vereist dat dus X=2, Y=3 en Z=5.

Elk oorspronkelijk geldig drietal komt overeen met een waarde van U en elke consistente waardetoekenning met U levert een geldig oorspronkelijk drietal op. Met deze constructie kunnen binaire methoden een eindige constraint van hogere orde behandelen. De prijs is het mogelijk grote tupeldomein; daarom behouden oplossers vaak de oorspronkelijke globale regel of regel van hogere orde.

Eisen en voorkeuren
SoortBetekenisPlanningsvoorbeeld
Harde constraintElke oplossing moet eraan voldoen.Een trainer kan niet twee workshops tegelijk geven.
Zachte constraintEen schending voegt kosten toe aan een verder haalbare keuze.Een trainer heeft een voorkeur voor een sessie in de middag.

Met zachte constraints wordt de taak een optimalisatieprobleem met constraints, of COP: voldoe aan alle harde regels en minimaliseer de totale kosten van voorkeuren. Voor optimalisatie kun je vertakken en begrenzen en lokaal zoeken gebruiken.

Test het model met een waardetoekenning waarvan je weet dat die geldig is en een waarvan je weet dat die ongeldig is. Een verzonnen ongelijkheid tussen workshops zonder onderling verband sluit geldige roosters uit; een ontbrekende constraint voor een gezamenlijke trainer laat onmogelijke roosters toe. Ook voorkeuren vereisen aandacht: als je “middag heeft de voorkeur” verandert in “middag is verplicht”, kan elk haalbaar rooster verdwijnen.

Belangrijkste punten

  • Unaire constraints verkleinen één domein; binaire constraints verbinden twee variabelen.
  • Alldiff vereist paarsgewijs verschillende waarden, maar kan meer waarden uitsluiten door over de groep te redeneren.
  • Met hulptupelvariabelen kun je eindige constraints van hogere orde omzetten naar binaire vorm.
  • Harde constraints bepalen de haalbaarheid; zachte constraints ordenen haalbare keuzes.
  • Controleer bij het testen van een model zowel een geldig als een ongeldig geval.

1.3 Modelleer planningsproblemen en toewijzingsproblemen als CSP's

Een model moet de beslissingen zo rechtstreeks beschrijven dat de regels gemakkelijk zijn uit te drukken. Bepaal eerst wat gekozen moet worden, ken vervolgens domeinen toe en vertaal elke eis naar een constraint over de variabelen waarop die werkelijk betrekking heeft.

Maak een workshoprooster

Vijf workshops van elk één tijdvak delen drie tijdvakken: 1 ochtend, 2 middaguur en 3 middag. Laat A Python voor beginners zijn, B Python voor gevorderden, C Statistiek, D Databases en E Ethiek. Elke workshop is een variabele met begindomein {1,2,3}.

Gezamenlijke deelnemers vereisen A≠C, A≠D, C≠D, B≠C, C≠E en D≠E. De beginnersworkshop moet voorafgaan aan de gevorderdenworkshop, dus A<B. De trainer van Ethiek komt op het middaguur aan, dus E≠1. Dit geeft zeven binaire verbindingen en één unaire regel; C heeft vier aangrenzende variabelen.

De waardetoekenning A=2,B=3,C=1,D=3,E=2 voldoet aan elke regel: elk paar met gezamenlijke deelnemers verschilt, de beginnersworkshop gaat vooraf aan de gevorderdenworkshop en Ethiek staat niet in tijdvak 1. Het is de enige geldige waardetoekenning onder de 35=243 kandidaten. Workshops B en D mogen allebei tijdvak 3 gebruiken omdat geen regel vereist dat ze verschillen.

Als je in plaats daarvan één variabele per tijdvak kiest, wordt elke waarde een deelverzameling van workshops, met maximaal 25=32 mogelijke deelverzamelingen per tijdvak. Regels zouden dan die verzamelingen moeten bekijken en ervoor moeten zorgen dat elke workshop eenmaal voorkomt. Met workshops als variabelen blijven de constraints eenvoudiger.

Druk taakduur en gedeelde hulpbronnen uit

Gebruik bij werkplaatsplanning voor elke taak een variabele voor de begintijd. Voorbereiden duurt 20 minuten, Analyseren 40 en Rapporteren 30. Begintijden zijn niet-negatieve gehele aantallen minuten. De volgorde en de uiterste tijd van 120 minuten geven

SP+20≤SA,SA+40≤SR,SR+30≤120.

De vroegste begintijden zijn 0, 20 en 60. Als je vanaf de uiterste tijd terugwerkt, krijg je de laatste begintijden 30, 50 en 90. De intervallen zijn dus SP∈[0,30], SA∈[20,50] en SR∈[60,90].

Twee taken die een machine delen, hebben een disjunctieve constraint nodig: SX+dX≤SY of SY+dY≤SX. Beide taken kunnen als eerste komen, maar ze mogen niet overlappen. Een eenvoudige voorrangsconstraint zou één bepaalde volgorde afdwingen en de andere mogelijkheid uitsluiten.

Modelleer toewijzingen en puzzels

Maak voor drie rapporten die aan drie beoordelaars worden toegewezen elk rapport een variabele met beoordelaars als waarden. Gebruik Alldiff als elke beoordelaar één rapport behandelt. Een belangenconflict verwijdert een beoordelaar uit het domein van het betreffende rapport.

Laat voor het n-damesprobleem Qi de rij zijn van de dame in kolom i. Eén dame per kolom is in het model ingebouwd. Vereis voor elk paar Qi≠Qj en ∣Qi−Qj∣≠∣i−j∣ om aanvallen over rijen en diagonalen te voorkomen. Voor acht dames verkleint dit de ruimte van mogelijke oplossingen van de keuze van 8 velden uit 64, 4.426.165.368 plaatsingen, tot 88=16.777.216 waardetoekenningen. Er zijn 92 oplossingen.

Voor Sudoku hebben de 81 celvariabelen domein 1–9. Gegeven cijfers leggen unaire constraints op en de 9 rijen, 9 kolommen en 9 blokken leggen elk Alldiff op.

Kies de grofste tijdseenheden waarmee je nog elke toegestane begintijd kunt weergeven. Sessies die op het hele uur beginnen hebben keuzes per uur nodig; domeinen per minuut zouden het werk vergroten zonder een nuttig rooster toe te voegen. Sluit af door voorkeuren van harde regels te scheiden en een klein geval met een bekend antwoord te controleren.

Belangrijkste punten

  • Kies variabelen die de constraints eenvoudig houden en domeinen die niet fijnmaziger zijn dan nodig.
  • Voorrang gebruikt ongelijkheden die het einde vóór het begin plaatsen; gedeelde hulpbronnen vereisen dat taken niet overlappen.
  • Eén dame per kolom kan in de keuze van variabelen worden ingebouwd.
  • Een correct model bevat impliciete regels voor hulpbronnen en behoudt toegestane gezamenlijke tijdvakken.
2

Los CSP's op door te zoeken met backtracking

Een zoekmethode kan het grootste deel van haar werk verspillen door dezelfde keuzes opnieuw te bekijken of conflicten te laat te ontdekken. Backtracking bouwt een waardetoekenning op, één variabele tegelijk, en keert terug naar eerdere keuzes als een tak mislukt. Ordening van variabelen en waarden helpt om eerder bruikbare takken te vinden, terwijl conflictanalyse vaststelt welke keuzes een doodlopend zoekpad veroorzaakten. Door de beslissingen stap voor stap te volgen, kun je zowel de basismethode als de verbeteringen gemakkelijker beoordelen.

2.1 Voer zoeken met backtracking stap voor stap uit

Backtracking bouwt een gedeeltelijke waardetoekenning op met diepte-eerst zoeken. De methode kiest één variabele, probeert een waarde en gaat door tot ze een oplossing vindt of een keuze ongedaan moet maken. Het zoeken behoudt de bruikbare eerdere keuzes als een latere keuze mislukt.

Vertak op waarden, één variabele tegelijk

Eerst A en dan B een waarde geven levert dezelfde uiteindelijke waardetoekenning op als eerst B en dan A. Door deze commutativiteit kan een CSP-oplosser op elk niveau één variabele kiezen en op haar waarden vertakken. Als je elke variabelevolgorde zou toestaan, zou je n!dn bladeren krijgen voor slechts dn verschillende volledige waardetoekenningen. Voor vijf variabelen met drie waarden zijn dat 29.160 bladeren in plaats van 243.

De volgende variabele kan afhangen van de huidige domeinen. Het gaat erom dat je in een knoop één volgende variabele kiest; het zoeken heeft geen afzonderlijke takken nodig voor alle mogelijke volgorden van waardetoekenning.

Volg de recursieve stappen
  1. Als de waardetoekenning volledig en consistent is, geef die dan terug.
  2. Kies een variabele zonder waarde.
  3. Probeer elke domeinwaarde die consistent is met de huidige waardetoekenning.
  4. Roep de methode recursief aan nadat je een waarde hebt toegevoegd. Als de recursieve aanroep mislukt, maak die waardetoekenning dan ongedaan en probeer de volgende waarde.
  5. Als geen waarde werkt, meld de mislukking dan aan de aanroeper.

Gewone backtracking test een constraint zodra alle variabelen in het variabelenbereik een waarde hebben. Bij A=1 en B zonder waarde heeft A<B geen volledig paar om te verwerpen. Als je dan B=1 probeert, mislukt dat onmiddellijk. Wachten tot elke variabele een waarde heeft, zou deze eenvoudige afwijzing uitstellen.

Volg een doodlopend zoekpad

Gebruik de workshopregels: A≠C,A≠D,C≠D,B≠C,C≠E,D≠E,A<B,E≠1. Neem de variabelen in de volgorde A, B, C, D, E en probeer de waarden 1, 2, 3.

  • Kies A=1. Verwerp B=1 en kies B=2.
  • Verwerp C=1 vanwege A en C=2 vanwege B; kies C=3.
  • Verwerp D=1 vanwege A; kies D=2.
  • E heeft geen toegestane waarde: 1 is verboden, 2 botst met D en 3 botst met C.

De mislukking bij E brengt de zoekmethode terug naar D. De volgende waarde daarvan, 3, botst met C. C heeft geen latere waarde, dus keert de zoekmethode terug naar B. De poging B=3 levert uiteindelijk nog een doodlopend zoekpad op onder A=1. Daarna probeert de zoekmethode A=2 en bereikt ze A=2,B=3,C=1,D=3,E=2. In deze volgorde test gewone backtracking in totaal 32 mogelijke waarden, inclusief afgewezen waarden.

Wat de methode garandeert
EigenschapGewone backtracking op eindige domeinen
VolledigheidVindt een oplossing als die bestaat; als alle mogelijkheden zijn doorzocht, staat onoplosbaarheid vast.
Omvang van het zoeken in het slechtste gevalExponentieel, O(dn) waardetoekenningen volgens de gebruikelijke grens.
Geheugen voor het zoekpadLineair in n; één actief pad wordt opgeslagen.

Constraints controleren en het model opslaan hebben ook kosten. De beschrijving van lineair geheugengebruik betreft het zoekpad, terwijl propagatie ook domeinen en gegevens voor het ongedaan maken kan opslaan.

Chronologische backtracking keert terug naar de meest recente keuze. Snellere varianten verbeteren vier afzonderlijke beslissingen: de volgende variabele, de volgorde van haar waarden, de gevolgen die na een keuze worden afgeleid en de eerdere keuze waarnaar na een mislukking wordt teruggekeerd. Deze verbeteringen verminderen het werk in de praktijk zonder te veranderen wat als oplossing telt.

Belangrijkste punten

  • Door commutativiteit hoef je niet elke volgorde van waardetoekenning te doorzoeken.
  • Backtracking geeft per niveau één variabele een waarde en verwerpt schendingen van constraints waarvan alle variabelen een waarde hebben.
  • Een mislukte recursieve aanroep maakt zijn keuze ongedaan en probeert een andere waarde.
  • Backtracking op eindige domeinen is volledig, maar het zoeken is in het slechtste geval exponentieel.
  • Lineair geheugen voor het zoekpad omvat niet alle opslag voor het model en propagatie.

2.2 Kies variabelen en waarden met ordeningsheuristieken

Een goede ordening kan een mislukking dicht bij de top van een zoekboom zichtbaar maken of bruikbare keuzes bewaren voor later. Variabeleordening en waardeordening dienen verschillende doelen, dus verschilt de richting die het beste lijkt.

Kies de meest beperkte variabele

De heuristiek van de minste resterende waarden (MRV) kiest de variabele zonder waarde met de minste waarden die op dat moment zijn toegestaan. Ze heet ook de heuristiek van de meest beperkte variabele of de vroeg-falenheuristiek. Een bijna uitgeput domein zal waarschijnlijk snel een tegenspraak aan het licht brengen. Als een domein leeg is, mislukt de tak onmiddellijk.

Tel de huidige waarden nadat waarden zijn verwijderd, niet de oorspronkelijke domeingrootten. Zonder opgeslagen domeinen moet een oplosser bepalen welke oorspronkelijke waarden nog consistent zijn met de waardetoekenning voordat MRV wordt toegepast.

De graadheuristiek maakt bij MRV een keuze tussen gelijke kandidaten door de variabele te kiezen met de meeste constraints op andere variabelen zonder waarde. Zo'n keuze beïnvloedt meer resterende beslissingen. Aangrenzende variabelen die al een waarde hebben, tellen niet mee voor deze resterende graad. Aan het begin op de kaart van Australië staan de gelijke domeinen met drie kleuren op gelijke hoogte en geven de vijf aangrenzende regio's SA de hoogste graad.

Houd opties open bij de keuze van een waarde

De minst beperkende waarde (LCV) probeert de waarde die de minste waarden verwijdert uit de domeinen van aangrenzende variabelen zonder waarde. Het beoordelen van mogelijke waarden kost extra rekenwerk, maar kan een kostbare mislukte tak voorkomen.

Met WA rood en NT groen kan SA alleen blauw zijn, terwijl Q rood of blauw kan zijn. Als je Q blauw kiest, wordt het domein van SA leeg. Als je Q rood kiest, verdwijnt rood uit het domein van NSW en blijft blauw voor SA behouden. LCV probeert daarom Q rood.

OrdeningsbeslissingVoorkeurskeuzeReden
Volgende variabeleMinste resterende waardenOntdek een waarschijnlijke mislukking vroeg.
Variabele bij gelijke standMeeste aangrenzende variabelen zonder waardeBeïnvloed meer resterende beslissingen.
Volgende waardeMinste verwijderde waarden bij aangrenzende variabelenBehoud de kans om de waardetoekenning te voltooien.

Elke variabele moet uiteindelijk een waarde krijgen, waardoor het nuttig is een kwetsbare variabele vroeg te testen. Voor een eerste oplossing is slechts één waarde nodig, wat pleit voor een waarde die ruimte laat voor andere beslissingen.

Combineer ordening met voorwaartse controle

Pas in het workshoprooster eerst E≠1 toe. E heeft twee waarden; A, B, C en D hebben er elk drie. MRV kiest E. Probeer E=2 en voorwaartse controle verwijdert 2 uit de domeinen van C en D.

C en D staan nu gelijk met domeinen {1,3}. C heeft drie aangrenzende variabelen zonder waarde, A, B en D; D heeft er twee, A en C. De graadheuristiek kiest C. Kies C=1, waarna DD={3} en DA=DB={2,3} overblijven. MRV kiest D=3, wat A=2 afdwingt; de voorrangsregel geeft dan B=3. Met vijf waardetoekenningen wordt de oplossing gevonden zonder terug te keren. Een vaste variabelevolgorde met voorwaartse controle heeft 12 waardetoekenningen nodig en bereikt twee doodlopende zoekpaden.

Ordening behoudt de volledigheid omdat ze de volgorde van keuzes verandert zonder toegestane takken uit te sluiten. Het zoeken blijft in het slechtste geval exponentieel. Als je elke oplossing opsomt of onoplosbaarheid bewijst, moeten uiteindelijk alle relevante waarden worden onderzocht, zodat het voordeel van LCV om vroeg succes te hebben afneemt. Het belangrijkste nut is om eerder een eerste oplossing te vinden.

Belangrijkste punten

  • MRV gebruikt het huidige aantal toegestane waarden.
  • De graadheuristiek kiest bij gelijke stand op basis van constraints met variabelen zonder waarde.
  • LCV behoudt bij het proberen van een waarde de keuzes van aangrenzende variabelen.
  • Ordening verandert de hoeveelheid zoekwerk en behoudt de volledigheid.

2.3 Keer na een doodlopend zoekpad gericht terug naar een eerdere keuze

Een doodlopend zoekpad heeft vaak een kleinere oorzaak dan de hele huidige waardetoekenning. Terugspringen gebruikt die oorzaak om te bepalen waarheen wordt teruggekeerd en constraints leren onthoudt een mislukking zodat die niet opnieuw hoeft te worden ontdekt.

Vind de keuzes die de mislukking veroorzaakten

Neem op de kaart van Australië de volgorde van waardetoekenning Q, NSW, V, T, SA. Laat Q rood zijn, NSW groen, V blauw en T rood. SA grenst aan Q, NSW en V, dus zijn alle drie de kleuren verboden. De conflictverzameling van SA is {Q,NSW,V}: eerdere variabelen waarvan de keuzes de waarden van SA uitsluiten.

Chronologische backtracking zou proberen T te veranderen. Tasmanië heeft geen verbinding met SA, dus kan het veranderen van de kleur geen optie voor SA herstellen. Terugspringen keert terug naar V, het lid van de conflictverzameling dat het laatst een waarde kreeg, en slaat T over.

Een conflictverzameling bevat variabelen; een verboden combinatie legt specifieke waardetoekenningen vast. Dat onderscheid is belangrijk: een andere kleur voor V kan de mislukking verhelpen, ook al blijft V een buur van SA.

Voer een conflict mee door eerdere mislukkingen

Eenvoudig terugspringen gebruikt de directe conflictverzameling van de huidige mislukking. Conflictgestuurd terugspringen voert informatie mee door meerdere mislukte niveaus. Als een mislukte variabele X terugspringt naar Y, neemt Y de conflictverzameling van X over zonder Y. Als Y later alle waarden heeft uitgeput, wijst de gecombineerde verzameling een oorzaak verder terug in de waardetoekenning aan.

Gebruik bijvoorbeeld de volgorde WA, NSW, T, NT, Q, V, SA en begin met WA rood, NSW rood, T rood. WA en NSW grenzen niet aan elkaar, dus is deze gedeeltelijke waardetoekenning consistent. Hun keuzes verwijderen rood uit de domeinen van NT, Q en SA. Die drie regio's vormen een driehoek, die niet met alleen groen en blauw kan worden gekleurd.

Geen enkele keuze voor T verandert die driehoek. Conflictinformatie kan via de mislukte pogingen teruggaan en WA en NSW aanwijzen als de onderliggende oorzaak. De zoekmethode keert terug naar NSW, de latere van die twee beslissingen, in plaats van tijd te besteden aan het opnieuw kleuren van T.

Leer de mislukte combinatie

Een oplosser kan {WA=rood,NSW=rood} vastleggen als verboden combinatie. Telkens als beide keuzes opnieuw voorkomen, volgt dezelfde tegenspraak in de driehoek, zodat de tak onmiddellijk kan worden afgewezen. Het zou onjuist zijn om WA rood op zichzelf te verbieden: WA kan rood zijn in geldige oplossingen met een andere kleur voor NSW.

Leren voegt een constraint of een opgeslagen verboden combinatie toe. De geleerde voorwaarde moet volgen uit de oorspronkelijke constraints; een mislukking die alleen wordt veroorzaakt doordat een tijdslimiet is bereikt, biedt geen dergelijke logische rechtvaardiging. Een bruikbare verboden combinatie bevat genoeg waardetoekenningen om de onmogelijkheid te verklaren, zonder keuzes op te nemen die er niets mee te maken hebben.

Combineer vooruitkijken en terugkijken

Voorwaartse controle en boogconsistentie verwijderen waarden zonder ondersteuning voordat een mislukking diep in de boom optreedt. Terugspringen onderzoekt een mislukking nadat die is opgetreden. Eenvoudig direct terugspringen sluit geen mogelijkheden uit boven op wat voorwaartse controle al ontdekt, maar conflictgestuurde methoden kunnen verklaringen van diepere mislukkingen combineren. Leren bewaart die verklaringen voor latere takken.

Belangrijkste punten

  • Een conflictverzameling wijst eerdere variabelen aan die verantwoordelijk zijn voor een mislukking.
  • Terugspringen slaat keuzes over die niets met die mislukking te maken hebben.
  • Conflictgestuurd terugspringen combineert conflictinformatie over mislukte niveaus heen.
  • Een verboden combinatie verbiedt een onmogelijke combinatie van waardetoekenningen, niet elke waardetoekenning afzonderlijk.
  • Vooruitkijkend waarden verwijderen en geleerde verklaringen kunnen samenwerken.
3

Verklein domeinen met constraintpropagatie

Een waarde kan al onmogelijk zijn voordat haar variabele wordt gekozen. Constraintpropagatie volgt de gevolgen van huidige domeinen en waardetoekenningen en verwijdert waarden die de benodigde ondersteuning missen. De methoden verschillen in hoe ver ze vooruitkijken: van de directe buren van een beslissing tot paren, drietallen en hele groepen variabelen. Uitgewerkte domeinwijzigingen laten zien wat elke methode ontdekt, wat ze mist en wanneer het extra werk loont.

3.1 Pas tijdens het zoeken voorwaartse controle toe

Voorwaartse controle onderzoekt wat een nieuwe waardetoekenning direct uitsluit voor aangrenzende variabelen zonder waarde. Ze verwijdert onverenigbare waarden voordat de zoekmethode die variabelen bereikt, waardoor sommige doodlopende zoekpaden enkele niveaus eerder zichtbaar worden.

Verwijder waarden na een waardetoekenning

Bekijk na de keuze X=x elke variabele Y zonder waarde die een constraint met X deelt. Verwijder elke waarde in DY die met de keuze conflicteert. Een leeg domein betekent dat de huidige tak niet tot een volledige waardetoekenning kan leiden, dus keer je direct terug.

Bij X≠Y verwijdert de waardetoekenning X=2 de waarde 2 uit het domein van Y. Bij X<Y verwijdert X=2 elke waarde van Y die hoogstens 2 is. De relatie zelf bepaalt wat wordt verwijderd; voorwaartse controle beperkt zich niet tot het verwijderen van gelijke waarden.

Het verwijderen van waarden verandert de domeinen van de huidige tak. Houd in een herstellogboek elke verwijdering bij die door de keuze is veroorzaakt. Als die keuze ongedaan wordt gemaakt, herstel je de daardoor verwijderde waarden en behoud je de beperkingen die bij eerdere keuzes horen. Kopieën van domeinen op elk niveau bieden een andere implementatie.

Volg de workshopdomeinen

Gebruik tijdvakken 1–3 en de regels A≠C,A≠D,C≠D,B≠C,C≠E,D≠E,A<B,E≠1. Pas de unaire regel toe om DE={2,3} te krijgen en gebruik daarna de vaste volgorde A, B, C, D, E.

  1. Na A=1 blijft voor B, C en D telkens {2,3} over.
  2. Na B=2 blijft voor C alleen {3} over.
  3. Na C=3 blijft voor D en E elk alleen {2} over.
  4. D=2 verwijdert 2 uit het domein van E, waardoor dat leeg raakt. Keer terug.

Als de domeinen zijn hersteld en B=3 wordt geprobeerd, moet C gelijk zijn aan 2. Voor zowel D als E blijft dan alleen 3 over, dus maakt de waardetoekenning aan D het domein van E opnieuw leeg. De zoekmethode moet A veranderen. Met A=2 kan ze B=3,C=1,D=3,E=2 bereiken. In dit verloop worden 12 waarden geprobeerd, tegenover 32 mogelijke waarden bij gewone backtracking in dezelfde volgorde.

Herken de grens van controle in één stap

Na stap 3 hebben D en E allebei alleen de waarde 2 en moeten ze verschillen. Voorwaartse controle heeft die constraint nog steeds niet gecontroleerd: noch D noch E heeft net een waarde gekregen. Ze ontdekt de mislukking pas als D een waarde krijgt.

Dit is de belangrijkste beperking van voorwaartse controle. Ze toetst de variabele met een waarde aan de aangrenzende variabelen zonder waarde, zonder de gevolgen van een kleiner domein van een aangrenzende variabele verder te verspreiden. Boogconsistentie kan die gevolgen tussen variabelen zonder waarde wel volgen.

Gebruik de bijgehouden domeinen

MRV kan nu direct het kleinste resterende domein kiezen. Een domein met één waarde wordt vaak als volgende gekozen; een leeg domein wijst op een mislukking zonder dat nog een waardetoekenning nodig is. Domeinen actueel houden helpt zowel bij inferentie als bij ordening.

Voor maximaal n−1 aangrenzende variabelen en maximaal d waarden per aangrenzende variabele gebruikt een ronde voorwaartse controle ongeveer O(nd) binaire controles, aangenomen dat een relatietest constante tijd kost. Ze verwijdert alleen waarden die onverenigbaar zijn met de huidige waardetoekenning, dus blijft backtracking volledig. Als je vergeet een verwijderde waarde te herstellen, kan een latere tak een geldige oplossing verliezen; waarden verwijderen uit het domein van een niet-betrokken variabele kan hetzelfde gevolg hebben.

Belangrijkste punten

  • Voorwaartse controle verwijdert waarden uit de domeinen van aangrenzende variabelen zonder waarde na een nieuwe waardetoekenning.
  • Een leeg domein wijst de huidige tak onmiddellijk af.
  • Herstel bij het ongedaan maken van een keuze de waarden die voor die tak zijn verwijderd.
  • Voorwaartse controle propageert niet tussen twee variabelen zonder waarde.

3.2 Dwing boogconsistentie af met AC-3

Een waarde heeft in elk aangrenzend domein een verenigbare partner nodig. Boogconsistentie maakt die ondersteuningseis expliciet en volgt de gevolgen van domeinwijzigingen door een binair CSP.

Ondersteuning heeft een richting

Knoopconsistentie verwijdert eerst waarden die door unaire regels zijn verboden. Voor een binaire constraint is de gerichte boog X→Y consistent als elke waarde in X minstens één verenigbare waarde in Y heeft. Die waarde in Y is een ondersteunende waarde. Bij het herzien van de boog worden waarden zonder ondersteuning uit de beginknoop X verwijderd.

Bij A<B met voor beide domeinen {1,2,3} verwijdert het herzien van A→B de waarde 3 uit A. Het herzien van B→A verwijdert 1 uit B. De resulterende domeinen zijn DA={1,2} en DB={2,3}. Een overgebleven waarde kan voor elke aangrenzende variabele een andere ondersteunende waarde gebruiken; die ondersteunende waarden hoeven samen geen oplossing te vormen.

Voer AC-3 uit

AC-3 gebruikt een wachtrij van gerichte bogen:

  1. Zet aanvankelijk elke boog in de wachtrij.
  2. Neem X→Y uit de wachtrij en herzie X met behulp van het domein van Y.
  3. Als het domein van X leeg wordt, stop dan en meld dat de methode is mislukt.
  4. Als het domein van X krimpt, voeg dan Z→X toe voor elke andere aangrenzende variabele Z van X, met uitzondering van Y.
  5. Ga door tot de wachtrij leeg is.

Een verwijdering uit X kan een ondersteunende waarde voor Z wegnemen, dus moet de wachtrij bogen bevatten die terugwijzen naar het gewijzigde domein. De boog vanuit Y hoeft niet direct opnieuw te worden gecontroleerd: de verwijderde waarden van X ondersteunden geen enkele waarde in Y, omdat ze om te beginnen met geen daarvan verenigbaar waren. Als alle einddomeinen niet leeg zijn, zijn ze onafhankelijk van de verwerkingsvolgorde; verschillende volgorden kunnen bij een mislukking tot verschillende lege domeinen leiden.

Propageer een workshopbeslissing

Voor de workshopregels A≠C,A≠D,C≠D,B≠C,C≠E,D≠E,A<B,E≠1 verwijdert de eerste uitvoering van AC-3 de waarde 3 uit A en 1 uit B. Voor C en D blijft {1,2,3} over en voor E blijft {2,3} over.

Kies nu C=1. De boog A→C verwijdert 1 uit A, zodat A=2 overblijft. Als je B ten opzichte van A herziet, wordt B=3 afgedwongen. D verschilt van C en A, dus D=3. E verschilt van D en kan geen 1 zijn, dus E=2. De domeinverkleiningen hebben zich verder verspreid dan de directe buren van de oorspronkelijke beslissing.

Boogconsistentie handhaven (MAC) past deze inferentie na elke zoekbeslissing toe. Als je uitgaat van boogconsistente domeinen en X=x vastlegt, is een wachtrij nodig met inkomende bogen vanuit de aangrenzende variabelen zonder waarde. Verwijderde domeinwaarden moeten worden hersteld als de zoekmethode de tak ongedaan maakt.

Interpreteer het resultaat en de kosten
Resultaat na knoop- en boogconsistentieBetekenis
Een leeg domeinGeen oplossing vormt een uitbreiding van de huidige beperkingen.
Elk domein bevat één waardeDe enige resterende waardetoekenning voldoet aan het binaire CSP.
Sommige domeinen bevatten meerdere waardenVerdere inferentie of verder zoeken kan nodig zijn.

Een driehoek met domeinen {rood, blauw} en ongelijkheden op alle drie de verbindingen blijft boogconsistent, maar heeft geen oplossing. Elke verbinding heeft afzonderlijk ondersteunende waarden, maar de drie keuzes kunnen niet samengaan.

Met c binaire constraints en maximale domeingrootte d kost AC-3 O(cd3) tijd: een boogherziening controleert maximaal d2 paren en elke boog kan maximaal d ronden nodig hebben als de eindknoop waarden verliest. MAC kost meer per zoekknoop dan voorwaartse controle, vaak in ruil voor een veel kleinere zoekboom.

Belangrijkste punten

  • Het herzien van X→Y verwijdert waarden zonder ondersteuning uit X.
  • Nadat het domein van X krimpt, controleert AC-3 de bogen die naar X wijzen opnieuw.
  • Niet-lege boogconsistente domeinen kunnen nog steeds een onvervulbaar CSP beschrijven.
  • MAC handhaaft boogconsistentie na zoekbeslissingen.
  • AC-3 heeft in het slechtste geval de gebruikelijke grens O(cd3).
  • Conclusies op basis van domeinen met één waarde vereisen dat de unaire en binaire constraints zijn afgedwongen.

3.3 Gebruik sterkere consistentie en globale constraints

Afzonderlijke paarsgewijze ondersteunende waarden kunnen een tegenspraak binnen een groep verhullen. Sterkere consistentie en gespecialiseerde globale propagatie onderzoeken combinaties die boogconsistentie mist, terwijl numerieke grenzen grote domeinen kunnen samenvatten in bruikbare intervallen.

Breid waardetoekenningen uit naar een andere variabele

Padconsistentie onderzoekt drietallen. Elke consistente waardetoekenning aan twee variabelen moet kunnen worden uitgebreid naar een derde met een waarde die met beide overeenkomt. In een driehoek die rood of blauw wordt gekleurd, laten X rood en Y blauw geen waarde over voor Z. Padconsistentie verwijdert dat toegestane paar en brengt uiteindelijk de onoplosbaarheid aan het licht. Ze kan tupels uit relaties verwijderen en doet dus meer dan afzonderlijke domeinwaarden verwijderen.

k-consistentie vereist dat elke consistente waardetoekenning aan willekeurige k−1 variabelen kan worden uitgebreid naar een willekeurige extra variabele. Voor binaire CSP's komt 1-consistentie overeen met knoopconsistentie, 2-consistentie met boogconsistentie en 3-consistentie met padconsistentie. Sterke k-consistentie omvat elk niveau van 1 tot en met k. Bij sterke n-consistentie voor n variabelen en niet-lege domeinen kan elke consistente gedeeltelijke waardetoekenning zonder terugkeren worden uitgebreid tot een oplossing. Het vaststellen van deze eigenschap heeft in het slechtste geval exponentiële tijd- en geheugenkosten.

Tel waarden in Alldiff

Alldiff vereist verschillende waarden voor alle variabelen in het variabelenbereik. Als een groep van m variabelen slechts n verschillende mogelijke waarden heeft en m>n, kan geen waardetoekenning eraan voldoen.

Voor drie cellen met domein {4,7} zijn paarsgewijze ongelijkheden boogconsistent: elke 4 heeft ondersteuning van 7 in elke aangrenzende cel en elke 7 heeft ondersteuning van 4. Toch voldoet de groep niet aan de telregel, omdat drie verschillende waarden nodig zijn en er maar twee bestaan.

Als twee cellen allebei domein {4,7} hebben, moeten ze samen 4 en 7 gebruiken. Die waarden kunnen uit elke andere cel in dezelfde rij worden verwijderd. Dit redeneren met een naakt paar gebruikt een deelverzameling van het volledige variabelenbereik van Alldiff. Een eenvoudige globale propagatiemethode kan ook herhaaldelijk variabelen met één waarde verwerken, hun waarden elders verwijderen en controleren of er te weinig verschillende waarden overblijven. Sterkere propagatiemethoden herkennen ook beperkte deelverzamelingen.

Scherp numerieke grenzen aan

Grenspropagatie slaat een domein op via het minimum en maximum. Grensconsistentie vereist dat elk eindpunt voor elke relevante constraint een uitbreiding heeft die eraan voldoet; ze controleert niet elke tussenliggende waarde.

Laat voor twee bussen die 100 mensen vervoeren B1∈[0,50] en B2∈[0,70] gelden, met B1+B2=100. De tweede bus vervoert hoogstens 70 mensen, wat B1≥30 afdwingt. De eerste vervoert hoogstens 50 mensen, wat B2≥50 afdwingt. De aangescherpte intervallen zijn [30,50] en [50,70].

Voor Voorbereiden, Analyseren en Rapporteren, die in die volgorde 20, 40 en 30 minuten duren, geeft een uiterste tijd van 120 minuten de laatste begintijden 30, 50 en 90. Niet-negatieve begintijden geven de vroegste begintijden 0, 20 en 60. Door voorwaarts en achterwaarts te propageren krijg je deze intervallen voordat een begintijd wordt gekozen.

Kies een bruikbare sterkte

Elke Sudokucel heeft 20 verschillende aangrenzende cellen: 8 in de rij, 8 in de kolom en 4 extra cellen in het blok. Over 81 cellen geeft dat 81×20/2=810 verschillende ongelijke paren. Globale constraints behouden dezelfde oplossingen als die paren, maar kunnen naakte paren en een tekort aan waarden eerder zichtbaar maken. Sterkere inferentie kost meer per ronde; praktische oplossers wegen die kosten af tegen het zoekwerk dat ze besparen en combineren vaak boogconsistentie met gespecialiseerde globale propagatie en grenspropagatie.

Belangrijkste punten

  • Padconsistentie controleert of een consistent paar kan worden uitgebreid naar een derde variabele.
  • Sterke k-consistentie omvat elk lager consistentieniveau.
  • Alldiff ontdekt groepen met te weinig verschillende waarden.
  • Een naakt paar reserveert zijn twee waarden voor die twee variabelen.
  • Grenspropagatie scherpt eindpunten aan zonder een groot numeriek domein op te sommen.
  • Sterkere inferentie kost extra werk per ronde, maar vermindert het zoekwerk.
4

Los CSP's op met lokaal zoeken

Een rooster dat enkele regels schendt, kan toch een bruikbaar uitgangspunt zijn. Lokaal zoeken houdt voor elke variabele een waarde bij en herstelt conflicten stap voor stap. De uitdaging is productieve stappen te kiezen en gebieden te verlaten waar de voortgang stopt. Je volgt de minimaleconflictenheuristiek op een klein bord, onderzoekt manieren om het herstel gaande te houden en kiest een oplossingsmethode die past bij het bewijs dat een plannings- of toewijzingstaak vereist.

4.1 Herstel waardetoekenningen met de minimaleconflictenheuristiek

Lokaal zoeken begint met een waarde voor elke variabele, ook als sommige constraints worden geschonden. De minimaleconflictenheuristiek herstelt deze volledige waardetoekenning door één variabele in een geschonden constraint een waarde met zo weinig mogelijk conflicten te geven.

Kies een herstelstap
  1. Maak een volledige waardetoekenning, willekeurig of gulzig.
  2. Als geen constraint wordt geschonden, geef de oplossing dan terug.
  3. Kies willekeurig een variabele die bij een geschonden constraint betrokken is.
  4. Beoordeel elke domeinwaarde van die variabele ten opzichte van de andere variabelen, die vast blijven.
  5. Kies een waarde met de minste conflicten, kies willekeurig bij gelijke stand en herhaal tot een oplossing is gevonden of een staplimiet is bereikt.

Een variabele in een geschonden constraint is betrokken bij minstens één geschonden constraint. Het is niet noodzakelijk de variabele met het grootste aantal schendingen. Willekeurig kiezen tussen zulke variabelen en tussen gelijke waarden helpt een vaste herhaalde reeks te voorkomen.

Herstel een bord met 4 dames

Gebruik één dame per kolom, met rijvariabelen Q1,Q2,Q3,Q4. Een paar conflicteert als de rijen gelijk zijn of als het verschil tussen de rijen gelijk is aan het verschil tussen de kolommen. Begin met (2,4,2,3). Kolommen 1 en 3 delen rij 2; de dames in kolommen 3 en 4 vallen elkaar diagonaal aan. De variabelen in geschonden constraints zijn Q1, Q3 en Q4.

Kies Q3 en beoordeel de rijen terwijl Q1, Q2 en Q4 vast blijven:

Mogelijke rij voor Q3Conflicten waarbij Q3 betrokken is
10
22
32
43

Rij 1 levert (2,4,1,3) op, een oplossing. Als in plaats daarvan Q1 was gekozen, waren de aantallen voor rijen 1–4 gelijk aan 0, 1, 2 en 2. Verplaatsing naar rij 1 geeft (1,4,2,3), waarbij het diagonale conflict Q3–Q4 overblijft. Een lokaal beste herstelstap kan dus leiden tot een herstelproces dat nog niet klaar is.

Tel de constraints waarbij de gekozen variabele betrokken is. Alle schendingen op elk resulterend bord tellen geeft dezelfde ordening, omdat niet-betrokken constraints bij elke mogelijke waarde een constante bijdrage leveren. Het kost alleen meer werk. Gebruik één consistente definitie van een conflict wanneer je mogelijkheden vergelijkt.

Herstel een bestaand rooster

Als een trainer niet meer beschikbaar is, vormt het huidige rooster al een volledige waardetoekenning. De minimaleconflictenheuristiek kan daar beginnen en sessies verplaatsen tot aan de nieuwe en bestaande constraints wordt voldaan. Een kleine wijziging vereist vaak weinig herstelstappen, hoewel één stap elders nieuwe conflicten kan veroorzaken. Als behoud van het oude plan belangrijk is, koppel dan expliciete kosten aan het veranderen van een waardetoekenning; alleen het aantal schendingen minimaliseren beperkt de verstoring niet tot een minimum.

Bij experimenten met een goede beginwaardetoekenning waren zelfs voor een miljoen dames relatief weinig herstelstappen nodig. Op grotere borden kost elke stap nog steeds meer. De minimaleconflictenheuristiek is ook gebruikt voor de planning van Hubble-waarnemingen. Naar verluidt daalde de tijd om een week waarnemingen te plannen van ongeveer drie weken tot ongeveer 10 minuten.

Interpreteer het zoekgedrag

Veel families van willekeurige CSP's veranderen van overwegend oplosbaar naar overwegend onoplosbaar naarmate de verhouding tussen constraints en variabelen stijgt. Dicht bij die overgang is bepalen hoe keuzes elkaar beïnvloeden vaak het moeilijkst. Problemen met weinig beperkende constraints kunnen veel gemakkelijk bereikbare oplossingen hebben. Sterk beperkte onvervulbare problemen kunnen door volledige oplossers die propagatie gebruiken snel worden afgewezen.

Het bereiken van een staplimiet voor de minimaleconflictenheuristiek betekent dat in die uitvoering geen oplossing is gevonden. Het probleem kan nog steeds oplosbaar zijn. De praktische kracht van de methode komt voort uit efficiënte herstelstappen, waaronder stappen met een gelijke score, ook al vormen oplossingen een heel klein deel van alle mogelijke waardetoekenningen.

Belangrijkste punten

  • De minimaleconflictenheuristiek begint met een volledige waardetoekenning en herstelt geschonden constraints.
  • Kies een variabele in een geschonden constraint en daarna een waarde met zo weinig mogelijk conflicten; kies willekeurig bij gelijke stand.
  • Bij de beoordeling van mogelijke waarden kun je constraints negeren die geen betrekking hebben op de gekozen variabele.
  • De haalbaarheid herstellen en het aantal wijzigingen minimaliseren zijn verschillende doelen.
  • Als de staplimiet wordt bereikt zonder oplossing, blijft de haalbaarheid onbeslist.

4.2 Ontsnap aan plateaus en lokale minima en kies tussen lokaal zoeken en backtracking

Een zoekmethode die oplossingen herstelt kan stoppen met verbeteren terwijl er nog conflicten zijn. Om verder te gaan heeft de oplosser een manier nodig om door toestanden met gelijke scores te bewegen of te veranderen welke stappen de moeite waard lijken. Ook het vereiste resultaat telt: een snelle haalbare aanpassing en een bewijs van onoplosbaarheid vereisen verschillende methoden.

Beweeg over een plateau

Een lokaal minimum heeft schendingen, maar geen stap die één variabele verandert en het aantal schendingen verlaagt. Een plateau is een samenhangend gebied van waardetoekenningen met dezelfde score. Stappen die alleen omlaag gaan kunnen vastlopen; een zijwaartse stap verandert de toestand zonder de score te verlagen.

Bij 4 dames heeft (1,4,2,3) één conflict tussen Q3 en Q4. Als de andere dames vast blijven, zijn de aantallen van Q3 voor rijen 1–4 gelijk aan 1, 1, 3 en 2; die van Q4 zijn 2, 2, 1 en 2. Geen van beide variabelen heeft een verbeterende stap.

Q3 naar rij 1 verplaatsen geeft (1,4,1,3), nog steeds met één conflict: nu delen Q1 en Q3 een rij. In deze nieuwe toestand zijn de aantallen van Q1 gelijk aan 1, 0, 3 en 1. Q1 naar rij 2 verplaatsen levert (2,4,1,3) op en neemt het conflict weg. De zijwaartse stap veranderde welke verbeterende stappen beschikbaar waren.

Houd het zoeken gaande
MethodeHoe de methode het zoeken verandert
TaboezoekenVerbiedt recente toestanden of stappen tijdelijk om cycli te verminderen.
ConstraintwegingVerhoogt het belang van constraints die geschonden blijven.
Willekeurige herstartsBegint na vruchteloze stappen opnieuw met een andere volledige waardetoekenning.
Gesimuleerd afkoelenAccepteert soms slechtere stappen, met een afnemende acceptatiekans als de temperatuur daalt.

Een taboelijst is een kortetermijngeheugen. Ze ontmoedigt onmiddellijke terugkeer naar een toestand die net is verlaten. Een herstart onderzoekt een ander gebied, terwijl gesimuleerd afkoelen binnen de huidige uitvoering een gebied met meer conflicten kan doorkruisen.

Geef bij constraintweging elk gewicht aanvankelijk de waarde 1 en beoordeel een toestand met de som van de gewichten van de geschonden constraints. Kies een wijziging die deze gewogen score verlaagt en verhoog daarna de gewichten van constraints die geschonden blijven. Herhaalde mislukkingen worden duurder, waardoor het zoeklandschap van vorm verandert. Een gewogen score van nul betekent nog steeds dat aan elke harde constraint met een positief gewicht is voldaan.

Kies het bewijs dat je nodig hebt

Lokaal zoeken is onvolledig: het kan een bestaande oplossing missen en een eindige mislukte uitvoering laat onbeslist of het probleem onoplosbaar is. Backtracking met propagatie op eindige domeinen is volledig: uiteindelijk vindt de methode een oplossing of onderzoekt ze alle mogelijke uitbreidingen.

Gebruik lokaal zoeken als een groot probleem met weinig beperkende constraints één haalbare waardetoekenning of een snelle aanpassing nodig heeft. Backtracking met MRV en MAC is een sterke keuze voor sterk beperkte puzzels en wanneer de taak een uitspraak over onoplosbaarheid vereist. De looptijd hangt nog steeds af van het concrete probleem; deze methodekeuzes zijn gebaseerd op hun garanties.

Het workshoprooster heeft de unieke oplossing A=2,B=3,C=1,D=3,E=2. Toevoeging van C≠1 sluit die uit. De minimaleconflictenheuristiek kan aanpassingen blijven proberen tot de limiet, maar alleen een volledige zoekmethode die de resterende gevallen uitput, stelt vast dat de organisator een eis moet veranderen, bijvoorbeeld door een extra tijdvak toe te voegen.

Belangrijkste punten

  • Een zijwaartse stap kan voorbij een plateau een verbeterende stap zichtbaar maken.
  • Taboegeheugen, gewichten, herstarts en gesimuleerd afkoelen pakken verschillende hindernissen voor voortgang aan.
  • Lokaal zoeken is onvolledig; uitputtende backtracking op eindige domeinen is volledig.
  • Kies een volledige methode wanneer onoplosbaarheid moet worden vastgesteld.
5

Benut de structuur van een probleem

De vorm van een constraintgraaf kan even belangrijk zijn als de grootte van de domeinen. Afzonderlijke componenten kunnen onafhankelijk worden opgelost en een boom maakt een achterwaartse doorloop om waarden te verwijderen mogelijk, gevolgd door een voorwaartse waardetoekenning zonder terug te keren. Cycli vereisen meer werk, maar een kleine cyclusdoorbrekende knopenverzameling of een boomdecompositie met een kleine breedte kan dat werk beperken. Deze methoden verbinden de graafstructuur met de tijd die nodig is om een consistente waardetoekenning te vinden.

5.1 Splits onafhankelijke deelproblemen af en los CSP's met een boomstructuur op

Een constraintgraaf kan kleinere problemen binnen een groot probleem zichtbaar maken. Onafhankelijke componenten kunnen afzonderlijk worden opgelost en voor acyclische componenten bestaat een bijzonder efficiënt algoritme met een achterwaartse doorloop om waarden te verwijderen en een voorwaartse doorloop om waarden toe te kennen.

Splits niet-verbonden componenten

Een samenhangende component is onafhankelijk als geen constraint haar variabelen met een andere component verbindt. Los elke component op en combineer daarna één oplossing van elke component. Als een component onvervulbaar is, is het volledige CSP onvervulbaar. Op de kaart van Australië staat Tasmanië los van het vasteland.

Met n variabelen verdeeld in onafhankelijke groepen van grootte c kost het vinden van één volledige waardetoekenning werk in de orde van O((n/c)dc) in plaats van O(dn). Voor 60 variabelen met elk twee mogelijke waarden, verdeeld in drie groepen van 20, bekijken afzonderlijke uitputtende zoekprocessen maximaal 3×220=3.145.728 waardetoekenningen in plaats van ongeveer 1,15×1018. Om elke gecombineerde oplossing op te sommen, zouden de combinaties nog steeds moeten worden opgesomd; de besparing betreft het oplossen van de deelproblemen.

Orden een boom vanaf de wortel

Een binair CSP heeft een boomstructuur als de constraintgraaf acyclisch is. Een samenhangende boom heeft één pad tussen elk paar variabelen; een bos bevat afzonderlijke bomen. Pas eerst unaire beperkingen toe. Kies een willekeurige wortel en orden variabelen zo dat elke ouderknoop vóór zijn kindknopen komt.

Gerichte boogconsistentie vereist in deze volgorde dat elke eerdere variabele ondersteuning heeft in elke latere aangrenzende variabele. In een boom zijn die latere aangrenzende variabelen de kindknopen. De richting van ondersteuning loopt van ouderknoop naar kindknoop, ook al verwerkt het algoritme kindknopen vóór ouderknopen.

Verwijder waarden achterwaarts en ken waarden voorwaarts toe
  1. Lees de volgorde achterwaarts, zonder de wortel. Herzie voor elke kindknoop de boog van de ouderknoop naar die kindknoop. Verwijder waarden zonder ondersteuning uit het domein van de ouderknoop.
  2. Als een domein leeg raakt, meld dan dat er geen oplossing is.
  3. Lees de volgorde voorwaarts. Kies een willekeurige overgebleven waarde voor de wortel en geef daarna elke kindknoop een waarde die verenigbaar is met de toegekende waarde van de ouderknoop.

De nakomelingen van de kindknoop zijn al verwerkt wanneer de ouderknoop wordt herzien. Een overgebleven waarde van de ouderknoop heeft dus ondersteuning in elke kindknoop en elke waarde van een kindknoop heeft al ondersteuning verder naar beneden. Verschillende kindtakken zijn niet door verbindingen met elkaar verbonden, zodat die ondersteunende waarden onafhankelijk kunnen worden gekozen. Daarom hoeft de voorwaartse doorloop niet terug te keren.

Volg de workshopboom

Leg C=1 vast in het workshoprooster en verwijder 1 uit de domeinen van de andere workshops. De resterende graaf is het pad B–A–D–E, met domeinen {2,3} en constraints A<B,A≠D,D≠E.

Kies wortel A en volgorde A, B, D, E. De achterwaartse doorloop herziet D→E en daarna A→D, zonder wijzigingen. Ten slotte verwijdert A→B de waarde 3 uit A omdat B geen grotere waarde heeft. Voorwaarts waarden toekennen geeft A=2,B=3,D=3,E=2. Als je C=1 terugplaatst, krijg je het volledige rooster.

Voor n variabelen met maximale domeingrootte d herziet de achterwaartse doorloop n−1 bogen met elk maximaal O(d2) kosten, wat O(nd2) tijd oplevert. De garantie hangt af van de afwezigheid van cycli. Een cyclus kan afzonderlijke kindtakken verbinden en de onafhankelijkheid tenietdoen die deze lokale keuzes veilig maakte.

Belangrijkste punten

  • Niet-verbonden componenten kunnen onafhankelijk worden opgelost en gecombineerd.
  • De boommethode dwingt eerst unaire beperkingen af en ordent ouderknopen vóór kindknopen.
  • De achterwaartse doorloop herziet bogen van ouderknoop naar kindknoop en verwijdert waarden uit het domein van de ouderknoop.
  • De voorwaartse doorloop kiest verenigbare waarden zonder terug te keren.
  • De gebruikelijke tijdsgrens voor een CSP met boomstructuur is O(nd2).

5.2 Herleid problemen met een bijna-boomstructuur tot bomen

Een graaf met enkele cycli kan toch voldoende op een boom lijken om efficiënt te worden opgelost. Conditioneren op een cyclusdoorbrekende knopenverzameling kent eerst waarden toe aan geselecteerde variabelen; boomdecompositie groepeert variabelen in overlappende delen. Beide geven de resterende afstemming een boomstructuur.

Conditioneer op een cyclusdoorbrekende knopenverzameling

Een cyclusdoorbrekende knopenverzameling is een verzameling variabelen waarvan de verwijdering een boom of bos overlaat. Controleer elke resterende cyclus, niet alleen de duidelijkst zichtbare. Voor de kaart van Australië laat het verwijderen van SA het pad WA–NT–Q–NSW–V plus de geïsoleerde knoop T over. Voor de workshopgraaf laat het verwijderen van C het pad B–A–D–E over.

Voor elke waardetoekenning aan de cyclusdoorbrekende knopenverzameling die aan de constraints binnen die verzameling voldoet:

  1. Verwijder onverenigbare waarden uit de resterende domeinen.
  2. Los elke resterende boom op door achterwaarts waarden te verwijderen en voorwaarts waarden toe te kennen.
  3. Als alle bomen een oplossing hebben, combineer hun waardetoekenningen dan met de waarden van de knopenverzameling. Probeer anders een andere waardetoekenning aan die verzameling.

In het workshopprobleem laat C=1 een oplosbare boom over. Bij C=2 moeten A en B uit {1,3} komen en dwingt A<B de waarden A=1,B=3 af. D moet zowel van A als van C verschillen, wat D=3 geeft. E kan geen 1 zijn en moet van C en D verschillen, waardoor geen waarde overblijft. Bij C=3 moeten A en B gelijk zijn aan 1 en 2; D moet dan 2 zijn, waardoor opnieuw geen waarde voor E overblijft.

Bij een cyclusdoorbrekende knopenverzameling van grootte c zijn er maximaal dc waardetoekenningen, elk gevolgd door een boomprobleem met kosten O((n−c)d2). Het totaal is O(dc(n−c)d2). Een kleine c maakt dit bruikbaar; de kosten blijven exponentieel in c. Het vinden van een kleinste cyclusdoorbrekende knopenverzameling is NP-moeilijk, maar ook een geldige verzameling die niet de kleinste is, geeft een correcte procedure.

Verbind overlappende zakken

Een boomdecompositie rangschikt verzamelingen variabelen, zakken genoemd, in een boom. Die moet aan drie voorwaarden voldoen:

  • Elke variabele komt in een zak voor.
  • Het variabelenbereik van elke constraint past binnen minstens één zak.
  • De zakken die een bepaalde variabele bevatten, vormen een samenhangend deel van de zakkenboom.

De derde regel is de lopende-intersectie-eigenschap. Als X aan beide uiteinden van een pad van zakken voorkomt, moet X op het hele pad voorkomen. Anders kunnen ver uit elkaar liggende zakken inconsistente waarden voor X kiezen zonder een tussenliggende controle op overeenstemming.

De lokaal geldige waardetoekenningen van elke zak worden waarden van een megavariabele. Aangrenzende zakken moeten overeenkomen op gedeelde variabelen. De resulterende boom stemt de lokale oplossingen op elkaar af. Voor een driehoek X–Y–Z–X plus verbinding Z–W dekken de zakken {X,Y,Z} en {Z,W} elke verbinding en komen ze overeen op Z.

De boombreedte van de decompositie is de grootste zakgrootte min 1. De boombreedte van een graaf is het minimum over geldige decomposities. Voor breedte w is de gebruikelijke CSP-grens O(ndw+1). Een vaste begrensde breedte houdt de exponent onder controle.

Verwijder waardesymmetrie

Als kleurnamen geen bijzondere betekenis hebben, blijft de geldigheid behouden als je rood, groen en blauw verwisselt. De zes oplossingen voor het Australische vasteland zijn zes hernoemingen van één patroon. Door de volgorde NT vóór SA vóór WA vast te leggen in de kleurvolgorde rood, groen, blauw, behoud je één vertegenwoordiger. Zo'n symmetriedoorbrekende constraint is alleen geldig als de hernoeming de oorspronkelijke regels behoudt. Een regel die vereist dat een bepaalde regio rood is, maakt die kleur bijzonder en verandert welke verwisselingen symmetrieën blijven.

Belangrijkste punten

  • Een cyclusdoorbrekende knopenverzameling moet elke cyclus doorbreken.
  • Conditioneren probeert waardetoekenningen aan de cyclusdoorbrekende knopenverzameling en lost het resterende bos op.
  • De kosten van conditioneren zijn exponentieel in de grootte van de cyclusdoorbrekende knopenverzameling.
  • Boomdecomposities dekken variabelen en constraints en voldoen aan de lopende-intersectie-eigenschap.
  • Boombreedte is de maximale zakgrootte min één, voor de graaf geminimaliseerd over decomposities.
  • Doorbreek waardesymmetrie alleen voor hernoemingen die de oorspronkelijke constraints behouden.

Constraintvervullingsproblemen: voorbeelden

5 Walkthroughs

1

Bouw en controleer een CSP-model

13 stappen
Modelleer roosters en toewijzingen, onderzoek variabelenbereiken van constraints en test of het model de werkelijke regels behoudt.
  1. 1
    IntroductieZet een taak om in keuzes

    Een oplosser heeft een precieze beschrijving nodig van wat kan worden gekozen en welke combinaties werken. Die beschrijving bestaat uit een verzameling variabelen met waardedomeinen en constraints die elk een variabelenbereik hebben. Elke fout daarin werkt door in elk zoekproces. Bouw een klein rooster en vergelijk dat vervolgens met toewijzings- en puzzelmodellen. Het doel is de beslissingen en hun afhankelijkheden zichtbaar te maken voordat je het probleem probeert op te lossen.

  2. 2
    UitlegBenoem elke beslissing

    Laat A en B tijdvakken voor workshops zijn, elk in {1,2,3}. A moet voorafgaan aan B, dus schrijf je A<B. De variabelen zijn de tijdvakkeuzes van de workshops; de getallen zijn waarden.

    Het variabelenbereik van de constraint bestaat uit A en B. De constraintrelatie staat de paren (1,2),(1,3),(2,3) toe. Een oplosser kan die tupellijst of de volgorderegel gebruiken om een kandidaat te testen.

  3. 3
    VoorbeeldControleer een mogelijke waardetoekenning

    Met alleen A=2 is de waardetoekenning gedeeltelijk en consistent. De keuze B=1 maakt haar volledig, maar schendt de volgorderegel. De keuze B=3 geeft daarentegen een volledige, consistente waardetoekenning.

    Dit zijn afzonderlijke controles: elke variabele heeft een domeinwaarde nodig en aan elke constraint moet worden voldaan. Een gedeeltelijke waardetoekenning kan de huidige controles doorstaan en toch geen mogelijke voltooiing toelaten.

  4. 4
    UitdagingKan de gedeeltelijke keuze worden voltooid?

    Drie variabelen X, Y en Z hebben domein {1,2} en constraints X≠Y,Y≠Z,X≠Z. Aan X is 1 toegekend. Kan deze consistente gedeeltelijke waardetoekenning worden uitgebreid tot een volledige waardetoekenning?

    ---reveal---

    Nee. X alleen schendt geen constraint. Als je de waardetoekenning voltooit, moeten Y en Z allebei 2 zijn, wat hun ongelijkheid schendt. Huidige consistentie en mogelijke voltooiing zijn verschillende eisen.

  5. 5
    VerbandLees afhankelijkheden af uit de graaf

    Een binaire constraintgraaf plaatst één knoop bij elke variabele en een verbinding bij elk paar met een constraint. De driehoek uit de opgave laat drie keuzes zien die elkaar beïnvloeden. Een geïsoleerde variabele heeft geen binaire afhankelijkheid van een andere variabele.

    Deze graaf ondersteunt latere methoden: het verwijderen van waarden volgt verbindingen en niet-verbonden componenten kunnen onafhankelijk worden opgelost. Een constraint van hogere orde vereist dat het volledige variabelenbereik wordt weergegeven, bijvoorbeeld met een afzonderlijke constraintknoop.

  6. 6
    UitlegKoppel de regel aan het variabelenbereik

    Een unaire regel beperkt één domein: E≠1 verwijdert het vroegste tijdvak voor Ethiek. Een binaire regel verbindt twee variabelen: A<B ordent workshops. Een regel van hogere orde zoals X+Y+Z=10 verbindt drie keuzes.

    Een globale constraint geeft een benoemde regel over een groep met een variabel aantal leden. Alldiff vereist dat elke waarde in het variabelenbereik verschilt van elke andere waarde.

  7. 7
    VoorbeeldWaarom Alldiff behouden?

    Drie rapportvariabelen staan elk beoordelaars 1 en 2 toe. Elk paar kan verschillende beoordelaars krijgen, maar drie rapporten kunnen geen drie verschillende beoordelaars uit een verzameling van twee gebruiken.

    Alldiff maakt dit tekort op groepsniveau zichtbaar. De vorm met paarsgewijze ongelijkheden heeft dezelfde oplossingen, maar afzonderlijke controles van paren kunnen de tegenspraak missen. De representatie beïnvloedt welke inferentie een oplosser kan uitvoeren.

  8. 8
    UitdagingEis of voorkeur?

    Een ruimteplan moet ervoor zorgen dat bijeenkomsten binnen de capaciteit blijven. Een organisator geeft de voorkeur aan een ruimte dicht bij de ingang, maar er is een geschikte ruimte verder weg beschikbaar. Moet de keuze voor de verder gelegen ruimte het plan onhaalbaar maken?

    ---reveal---

    Nee. Capaciteit is een harde eis, terwijl de locatie een zachte voorkeur is. De verder gelegen ruimte kan voorkeurskosten krijgen zonder het plan ongeldig te maken. Voor haalbaarheid moet nog steeds aan elke harde regel worden voldaan.

  9. 9
    VoorbeeldModelleer de workshopdag

    Gebruik variabelen A–E voor Python voor beginners, Python voor gevorderden, Statistiek, Databases en Ethiek. Elke variabele krijgt tijdvak 1, 2 of 3.

    Gezamenlijke deelnemers geven A≠C,A≠D,C≠D,B≠C,C≠E,D≠E. De beginnersworkshop gaat vooraf aan de gevorderdenworkshop, dus A<B. Ethiek kan niet in tijdvak 1, dus E≠1. Elke regel verbindt precies de beslissingen waarop die betrekking heeft.

  10. 10
    VoorbeeldControleer het volledige rooster

    Probeer A=2,B=3,C=1,D=3,E=2. De zes paren met gezamenlijke deelnemers verschillen. De beginnersworkshop is vóór de gevorderdenworkshop en Ethiek is niet in de ochtend. Elke workshop heeft een toegestaan tijdvak, dus is dit een oplossing.

    B en D delen tijdvak 3. Dat is toegestaan omdat geen constraint ze verbindt. Een extra regel die vereist dat elke workshop verschilt, zou dit geldige rooster afwijzen.

  11. 11
    UitlegSchrijf niet-overlapping correct op

    Als taak X 20 minuten duurt en taak Y 35, staat hun gedeelde machine beide volgorden toe:

    SX+20≤SYofSY+35≤SX.

    Elk alternatief vergelijkt één eindtijd met de andere begintijd. Met “en” zouden beide taken met een positieve duur aan elkaar vooraf moeten gaan. Gebruik alleen een enkele voorrangsregel als de taakvolgorde werkelijk vastligt.

  12. 12
    UitdagingBouw een toewijzingsmodel

    Drie rapporten hebben drie verschillende beoordelaars nodig. Beoordelaar 2 heeft een belangenconflict met rapport A. Welke variabelen, domeinen en constraints geven de taak weer?

    ---reveal---

    Gebruik één variabele per rapport met beoordelaars 1–3 als waarden. Verwijder 2 uit het domein van A en pas Alldiff toe op alle drie de rapporten. Dit zijn een unaire geschiktheidsbeperking en een globale regel die verschillende waarden vereist; het model geeft elk rapport precies één beoordelaar.

  13. 13
    SamenvattingControleer het model voordat je zoekt

    Bepaal welke beslissingen nodig zijn, noem hun toegestane waarden en schrijf de werkelijke eisen ervoor op. Controleer een geldig en een ongeldig geval. Harde regels bepalen de haalbaarheid; voorkeurskosten sturen de optimalisatie. De keuze van variabelen moet deze regels gemakkelijk uit te drukken maken.

2

Volg en verbeter backtracking

14 stappen
Volg recursieve keuzes, pas ordening van variabelen en waarden toe en gebruik conflictverklaringen om herhaald mislukt werk te voorkomen.

Sla deze les op om elke Walkthrough stap voor stap te volgen.

  1. 1
    IntroductieBouw een oplossing op, één keuze tegelijk
  2. 2
    KernpuntEén volgende variabele is genoeg
  3. 3
    VoorbeeldBegin het zoeken met een vaste volgorde
  4. 4
    VoorbeeldHerken het doodlopende zoekpad
  5. 5
    UitdagingWelke aanroep probeert een andere waarde?
  6. 6
    UitlegKies de variabele met de grootste kans op mislukking
  7. 7
    VoorbeeldLaat domeinen de workshopvolgorde bepalen
  8. 8
    KernpuntHoud opties open voor de waarde
  9. 9
    UitdagingKies een waarde na de variabele
  10. 10
    VoorbeeldSla een niet-gerelateerde beslissing over
  11. 11
    UitlegVoer oorzaken terug door het zoekproces
  12. 12
    VoorbeeldLeer een mislukte combinatie
  13. 13
    UitdagingBreng ordening en leren met elkaar in overeenstemming
  14. 14
    SamenvattingOnderscheid de verbeteringen van het zoeken
3

Volg het verwijderen van waarden van één beslissing tot een groepsconflict

17 stappen
Volg voorwaartse controle, AC-3, MAC en sterkere propagatie, inclusief de beperkingen van elk inferentieniveau.

Sla deze les op om elke Walkthrough stap voor stap te volgen.

  1. 1
    IntroductieVolg wat een domeinwijziging inhoudt
  2. 2
    UitlegVerwijder waarden bij directe buren
  3. 3
    VoorbeeldBekijk de gemiste wisselwerking
  4. 4
    UitdagingHerstel precies de juiste waarden
  5. 5
    UitlegOndersteuning wordt van begin- naar eindknoop gecontroleerd
  6. 6
    VoorbeeldBegin een keten van gevolgen
  7. 7
    VoorbeeldVoltooi de boogconsistente afsluiting
  8. 8
    TipZet bogen die ondersteuning kunnen verliezen in de wachtrij
  9. 9
    UitdagingWat betekent een afsluiting met niet-lege domeinen?
  10. 10
    VerbandHandhaaf consistentie tijdens het zoeken
  11. 11
    UitlegControleer een paar ten opzichte van een derde variabele
  12. 12
    KernpuntWaarom sterke consistentie belangrijk is
  13. 13
    VoorbeeldReserveer een paar waarden
  14. 14
    VoorbeeldScherp numerieke grenzen in beide richtingen aan
  15. 15
    UitdagingOntdek een tekort in een groep
  16. 16
    UitdagingKies de inferentie die de mislukking verklaart
  17. 17
    SamenvattingLees elke garantie nauwkeurig
4

Herstel een bord en ontsnap aan een plateau

11 stappen
Voer de minimaleconflictenheuristiek uit, volg een zijwaartse stap en kies een methode die het vereiste bewijs over haalbaarheid levert.

Sla deze les op om elke Walkthrough stap voor stap te volgen.

  1. 1
    IntroductieHerstel een volledige kandidaat
  2. 2
    UitlegKies een variabele in een geschonden constraint
  3. 3
    VoorbeeldZoek aanvallen op het bord
  4. 4
    VoorbeeldBeoordeel de mogelijke rijen van één dame
  5. 5
    UitdagingNegeer de constante achtergrond
  6. 6
    VoorbeeldBereik een toestand zonder verbeterende stap
  7. 7
    VoorbeeldGebruik een zijwaartse stap om herstel mogelijk te maken
  8. 8
    TipStem de ontsnappingsmethode af op de hindernis
  9. 9
    UitdagingKies een oplosser om onoplosbaarheid vast te stellen
  10. 10
    VerbandHerstel en beperk de verstoring
  11. 11
    SamenvattingBeoordeel het resultaat van herstel
5

Los bomen op en beheers de resterende cycli

15 stappen
Volg het oplossen van componenten, boomdoorlopen, pogingen met cyclusdoorbrekende knopenverzamelingen en de eisen aan een geldige boomdecompositie.

Sla deze les op om elke Walkthrough stap voor stap te volgen.

  1. 1
    IntroductieGebruik de graaf om het werk te verminderen
  2. 2
    UitlegLos onafhankelijke componenten afzonderlijk op
  3. 3
    UitlegStel de boomvolgorde vast
  4. 4
    VoorbeeldVerwijder achterwaarts waarden uit de workshopboom
  5. 5
    VoorbeeldKen de overgebleven waarden voorwaarts toe
  6. 6
    UitdagingHerken een omgekeerde boog
  7. 7
    UitlegDoorbreek elke cyclus met een knopenverzameling
  8. 8
    VoorbeeldProbeer de cyclusdoorbrekende knopenverzameling van de workshops
  9. 9
    KernpuntKleine cyclusdoorbrekende knopenverzamelingen beperken de exponent
  10. 10
    UitlegVervang cycli door overlappende zakken
  11. 11
    UitdagingControleer het pad van zakken
  12. 12
    VerbandLees de kosten af uit de zakgrootte
  13. 13
    VerbandVerwijder equivalente hernoemingen van kleuren
  14. 14
    UitdagingCombineer een cyclusdoorbrekende knopenverzameling met de boomgarantie
  15. 15
    SamenvattingControleer de structurele voorwaarde

Constraintvervullingsproblemen: oefenvragen

40 Oefenvragen in 4 sets

Set 1: Volg propagatie en onderzoek mislukt zoeken10 Oefenvragen

Vraag 1 van 10

Variabelen P, Q en R hebben domeinen DP=DQ={1,2} en DR={1}. De regels zijn P≠Q en Q≠R. Wat gebeurt er als de gedeeltelijke waardetoekenning P=1 wordt uitgebreid?
  1. Q moet 2 zijn, dus R = 1 werkt
  2. Q moet 1 zijn, wat botst met P
  3. Q en R moeten allebei 2 zijn
  4. P moet 2 zijn omdat R gelijk is aan 1
Toon antwoordVerberg antwoord
Antwoord: A
P = 1 dwingt Q = 2 af en R = 1 verschilt dan van Q, dus kan deze gedeeltelijke waardetoekenning worden uitgebreid tot een oplossing. Consistentie alleen laat in het algemeen open of uitbreiding mogelijk is, maar de gegeven keten staat deze voltooiing toe. Vereisen dat P van R verschilt, zou een verbinding tussen beide verzinnen.

Vraag 2 van 10

Laat voor X<Y gelden: DX={2,5} en DY={3,4}. Wat gebeurt er als de boog X→Y wordt herzien?
  1. Y verliest 3; X blijft onveranderd
  2. X verliest 2; Y blijft onveranderd
  3. X verliest 5; Y blijft onveranderd
  4. Y verliest 4; X blijft onveranderd
Toon antwoordVerberg antwoord
Antwoord: C
De waarde 2 heeft ondersteuning in Y, maar 5 heeft daar geen grotere waarde. Daarom verwijdert herziening 5 uit X. Een boog herziet het domein van de beginknoop. Als je in plaats daarvan Y verandert, keer je de richting van de ondersteuningstest om en moet je de omgekeerde boog herzien.

Vraag 3 van 10

Vier variabelen hebben elk drie waarden. Een zoekmethode vertakt over elke variabele zonder waarde en elke waarde tot volledige waardetoekenningen zijn bereikt. Met welke factor vermindert de keuze van één variabele per niveau het aantal bladeren voordat constraints waarden uitsluiten?
  1. 4
  2. 12
  3. 81
  4. 24
Toon antwoordVerberg antwoord
Antwoord: D
Elke uiteindelijke waardetoekenning verschijnt eenmaal voor elke ordening van de vier variabelen, wat 4! = 24 kopieën geeft. Eén variabele per niveau kiezen verwijdert die herhaalde volgorden. De 81 mogelijke waardecombinaties blijven mogelijke bladeren, dus is 81 het aantal waardetoekenningen en niet de reductiefactor.

Vraag 4 van 10

De volgorde van waardetoekenning is A, B, C, D, E, F. F heeft geen toegestane waarde en de conflictverzameling is {A,C}. Waarheen keert eenvoudig terugspringen terug?
  1. A
  2. C
  3. D
  4. E
Toon antwoordVerberg antwoord
Antwoord: B
C is de variabele in de conflictverzameling die het laatst een waarde kreeg, dus keert terugspringen daarnaar terug. E is de chronologische voorganger, maar maakt geen deel uit van de vastgelegde oorzaak van deze mislukking. Helemaal terugkeren naar A zou de kans overslaan om de tak te herstellen door C te veranderen.

Vraag 5 van 10

Laat DU=DV=DW={2,5,8}, met U<V en V<W. Welke domeinen blijven over nadat AC-3 klaar is?
  1. DU={2,5},DV={5},DW={5,8}
  2. DU={2},DV={5},DW={8}
  3. DU={2,5},DV={5,8},DW={2,5,8}
  4. DU={2},DV={2,5},DW={5,8}
Toon antwoordVerberg antwoord
Antwoord: B
U < V verwijdert V = 2 en V < W verwijdert V = 8, zodat V = 5 overblijft. Het gewijzigde middelste domein dwingt daarna U = 2 en W = 8 af. Als 5 in U of W blijft staan, stopt de propagatie te vroeg: die waarden verliezen hun benodigde ondersteuning zodra het domein van V nog maar één waarde bevat.

Vraag 6 van 10

Drie verschillende toegangscodes voldoen aan Alldiff⁡(H,J,K), met DH=DJ={2,8} en DK={2,5,8}. Wat dwingt globale propagatie voor K af?
  1. 5
  2. 2
  3. 8
  4. 2 of 8
Toon antwoordVerberg antwoord
Antwoord: A
H en J moeten samen 2 en 8 gebruiken, dus moet K 5 gebruiken. Paarsgewijze boogcontroles laten elke waarde van K afzonderlijk ondersteund, maar het gezamenlijke paar reserveert beide waarden samen. Als K = 2 of 8 wordt toegestaan, blijven er te weinig verschillende waarden over voor H en J.

Vraag 7 van 10

Een herstelproces kiest variabele T. De mogelijke waarden hebben lokale aantallen schendingen 1, 3 en 2, terwijl vier geschonden constraints geen betrekking hebben op T. Wat zijn de totale aantallen schendingen van de drie resulterende toestanden?
  1. 1, 3, 2
  2. 4, 4, 4
  3. 5, 7, 6
  4. 4, 12, 8
Toon antwoordVerberg antwoord
Antwoord: C
De vier niet-gerelateerde schendingen blijven onveranderd ongeacht welke waarde van T wordt gekozen, dus tel je vier op bij elk lokaal aantal. De totalen zijn 5, 7 en 6, met dezelfde beste kandidaat als bij de lokale scores. Vermenigvuldigen met vier zou niet-gerelateerde schendingen behandelen als herhaalde kopieën van elk lokaal conflict.

Vraag 8 van 10

Een oplosser beweegt herhaaldelijk tussen twee waardetoekenningen die elk één constraint schenden. Welke wijziging ontmoedigt rechtstreeks de onmiddellijke terugkeer naar de net verlaten waardetoekenning?
  1. Kies steeds dezelfde variabele in een geschonden constraint
  2. Sta alleen stappen met dezelfde score toe
  3. Herstart met dezelfde beginwaardetoekenning
  4. Houd een korte taboelijst met recente toestanden bij
Toon antwoordVerberg antwoord
Antwoord: D
Een taboelijst verbiedt tijdelijk recente toestanden of stappen en blokkeert daarmee rechtstreeks de onmiddellijke terugkeer die de cyclus veroorzaakt. Zijwaartse stappen alleen staan nog steeds heen en weer bewegen met dezelfde score toe. Herstarten met dezelfde toestand geeft ook geen nieuw startgebied om te verkennen.

Vraag 9 van 10

Een gewortelde boom is het pad R–S–T–W, met volgorde R, S, T, W en constraints R<S,S<T,T<W. De domeinen zijn DR={1,2,3},DS={2,3,4},DT={3,4},DW={4}. Welke domeinen blijven over na de achterwaartse doorloop?
  1. DR={1},DS={2},DT={3},DW={4}
  2. DR={1,2},DS={2,3},DT={3},DW={4}
  3. DR={1},DS={2,3},DT={3,4},DW={4}
  4. DR={1,2,3},DS={2},DT={3},DW={4}
Toon antwoordVerberg antwoord
Antwoord: A
Herzie eerst T→W, zodat T = 3 overblijft. Daarna laat S→T de waarde S = 2 over en laat R→S de waarde R = 1 over. Als 2 in R of 3 in S blijft staan, stopt de propagatie te vroeg; elke ouderknoop moet worden herzien nadat het domein van de kindknoop de nakomelingen weerspiegelt.

Vraag 10 van 10

Zakken {A,B,C}, {C,D} en {A,D} vormen een pad dat cyclus A–B–C–D–A dekt. De eindzakken blijven vast. Wat is de kleinste wijziging aan de middelste zak die de decompositie geldig maakt, en welke breedte ontstaat?
  1. Vervang C door A; breedte 2
  2. Voeg A toe aan de middelste zak; breedte 2
  3. Verwijder D uit de middelste zak; breedte 2
  4. Voeg een aparte eindzak {A} toe; breedte 2
Toon antwoordVerberg antwoord
Antwoord: B
A komt in beide eindzakken voor en moet dus ook in de middelste zak voorkomen om aan de lopende-intersectie-eigenschap te voldoen. Toevoeging van A geeft {A, C, D}, met behoud van de dekking van alle verbindingen en verbonden voorkomens. Een grootste zakgrootte van drie geeft breedte twee; C vervangen door A zou de dekking van verbinding C–D verliezen.
Set 2: Modelleer keuzes en volg de basisalgoritmen10 Oefenvragen

Sla deze les op om elk antwoord te zien en elke set te oefenen.

Vraag 1 van 10

Drie bezorgtaken J, K en L nemen elk een waarde uit {1,2} aan. De enige constraint is J≠K. Hoe moet de waardetoekenning J=1,K=2 worden ingedeeld?
  1. Volledig en consistent
  2. Gedeeltelijk en consistent
  3. Gedeeltelijk en inconsistent
  4. Volledig en inconsistent
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 2 van 10

Vier sensorkanalen moeten allemaal verschillende frequenties gebruiken. Hoeveel paarsgewijze ongelijkheden drukken dezelfde eis uit als Alldiff op deze vier variabelen?
  1. 4
  2. 8
  3. 12
  4. 6
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 3 van 10

Tests U en V hebben hetzelfde apparaat respectievelijk 12 en 18 minuten nodig. Hun niet-negatieve begintijden zijn SU en SV. Welke constraint staat beide volgorden toe en voorkomt overlap?
  1. SU+12≤SV of SV+18≤SU
  2. SU+12≤SV en SV+18≤SU
  3. SU+18≤SV of SV+12≤SU
  4. SU+12≤SV of SV+12≤SU
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 4 van 10

Een CSP-oplosser die diepte-eerst zoekt, probeert P=2, onderzoekt elk consistent vervolg en stelt vast dat ze allemaal mislukken. P heeft ook de niet-geprobeerde waarde 4. Wat moet de oplosser nu doen?
  1. Behoud P = 2 en probeer kindknopen opnieuw
  2. Maak P ongedaan en meld een mislukking
  3. Maak P = 2 ongedaan en probeer P = 4
  4. Maak alles ongedaan en begin opnieuw
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 5 van 10

Variabelen zonder waarde hebben domeinen DH={1,4}, DJ={2} en DK={1,2}. H heeft vier aangrenzende variabelen zonder waarde, J heeft er één en K heeft er drie. Welke variabele komt als volgende bij gebruik van MRV met de graadheuristiek bij gelijke stand?
  1. J
  2. H
  3. K
  4. H of K
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 6 van 10

Laat DM={1,2,3,4} en DN={2,3,4}, met M<N. Welk domein laat voorwaartse controle voor N over na de waardetoekenning M=3?
  1. {2,4}
  2. {3,4}
  3. {4}
  4. {2,3}
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 7 van 10

Voor X+Y+Z=7 bevat een hulpvariabele U alle toegestane drietallen en is die met X, Y en Z verbonden door constraints die componenten gelijkstellen. Als U=(1,4,2), welke waarden zijn dan vereist?
  1. X=4,Y=2,Z=1
  2. X=1,Y=2,Z=4
  3. X=1,Y=4,Z=2
  4. X=2,Y=4,Z=1
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 8 van 10

Een volledige waardetoekenning heeft vier geschonden constraints. Een gekozen variabele R is bij één daarvan betrokken. Mogelijke waarden a, b en c geven voor R respectievelijk 2, 0 en 1 conflicten. Welke waarde kiest de minimaleconflictenheuristiek?
  1. a
  2. c
  3. a of c
  4. b
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 9 van 10

Een binaire constraintgraaf heeft componenten {U,V} en {W,Z} zonder verbinding ertussen. Elke component heeft een oplossing. Hoe kan een oplossing van het volledige CSP worden gevormd?
  1. Gebruik alleen de oplossing van één component
  2. Combineer één oplossing van elke component
  3. Vereis gelijke waarden tussen de componenten
  4. Geef beide componenten dezelfde waarden
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 10 van 10

Een graaf heeft verbindingen P–Q, Q–R, R–S, S–P, R–T, T–U en U–R. Op één variabele wordt geconditioneerd om een acyclische graaf over te houden. Welke cyclusdoorbrekende knopenverzameling met één variabele werkt?
  1. R
  2. P
  3. T
  4. Q
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Set 3: Combineer beslissingen, inferentie en herstel10 Oefenvragen

Sla deze les op om elk antwoord te zien en elke set te oefenen.

Vraag 1 van 10

Verwerken duurt 16 minuten, gevolgd door controleren gedurende 24 minuten en daarna inpakken gedurende 10 minuten. Alle begintijden zijn niet-negatieve gehele aantallen minuten, wachttijd is toegestaan en inpakken moet uiterlijk op minuut 80 klaar zijn. Wat zijn in die volgorde de scherpste begintijdintervallen?
  1. [0,64], [16,56], [40,70]
  2. [0,30], [16,40], [40,70]
  3. [0,30], [16,46], [40,70]
  4. [0,40], [16,56], [40,80]
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 2 van 10

Variabelen zonder waarde hebben DA=DB={1,2} en DC={1,2,3}. De regels zijn A≠B en A<C. Gebruik MRV, de graadheuristiek bij gelijke stand en LCV. Welke variabele en waarde worden gekozen?
  1. B = 1
  2. A = 2
  3. C = 3
  4. A = 1
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 3 van 10

De volgorde van waardetoekenning is L, M, N, P, Q. Q mislukt met conflictverzameling {L,N} en springt naar N, waarvan de huidige conflictverzameling {M} is. Daarna put N zijn waarden uit zonder nieuwe variabelen die aan het conflict bijdragen. Waarheen keert conflictgestuurd terugspringen vervolgens terug?
  1. M
  2. L
  3. P
  4. Q
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 4 van 10

Laat DA=DB=DC={1,2,3}, met A≠B,A≠C,B≠C. Voorwaartse controle volgt op A=1 en daarna op B=2. Als B ongedaan wordt gemaakt terwijl A een waarde houdt, welke domeinen moeten B en C dan hebben voordat de volgende waarde van B wordt geprobeerd?
  1. DB={1,2,3},DC={1,2,3}
  2. DB={2,3},DC={2,3}
  3. DB={2,3},DC={3}
  4. DB={2},DC={2,3}
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 5 van 10

Een binair CSP heeft domeinen DP={1,2}, DQ={1,2} en DR={2,3} met P≠Q,Q<R,P=R. Wat gebeurt er als AC-3 volledig wordt uitgevoerd?
  1. Het laat P = 1, Q = 2, R = 3 over
  2. Het vindt een leeg domein
  3. Het laat elk domein onveranderd
  4. Het laat P = 2, Q = 1, R = 2 over
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 6 van 10

Twee gehele grootheden voldoen aan U+V=68, met U∈[0,30] en V∈[0,50]. Een nieuwe capaciteitsregel verlaagt het maximum van V tot 42. Wat zijn na grenspropagatie de scherpste intervallen?
  1. U∈[26,30], V∈[38,42]
  2. U∈[18,30], V∈[38,42]
  3. U∈[26,30], V∈[26,42]
  4. U∈[26,38], V∈[30,42]
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 7 van 10

Een volledige waardetoekenning voldoet aan elke bestaande planningsregel. Een nieuwe beschikbaarheidsconstraint veroorzaakt conflicten. De organisator vereist onder de haalbare aanpassingen die met de minste gewijzigde waardetoekenningen. Wat moet het hersteldoel bevatten?
  1. Alleen het aantal geschonden constraints
  2. Kosten voor elke gewijzigde waardetoekenning
  3. Alleen de domeingrootte van elke variabele
  4. Een vaste volgorde om variabelen te kiezen
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 8 van 10

Constraints a, b en c hebben gewichten 4, 2 en 1. Drie mogelijke stappen laten respectievelijk de schendingen {a}, {b,c} en {c} over. Welke gewichten ontstaan nadat je het resultaat met het laagste gewicht kiest en het gewicht van elke nog geschonden constraint met 1 verhoogt?
  1. 5, 2, 1
  2. 4, 3, 2
  3. 4, 2, 2
  4. 5, 3, 2
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 9 van 10

Een CSP heeft 24 variabelen met elk twee mogelijke waarden, verdeeld over zes onafhankelijke groepen van vier. Hoeveel volledige waardetoekenningen aan groepen onderzoeken afzonderlijke uitputtende zoekprocessen maximaal om de groepen op te lossen?
  1. 16
  2. 64
  3. 96
  4. 256
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 10 van 10

Vier variabelen met elk twee mogelijke waarden hebben de regels A=B,B≠C,C=D,A≠D. Hoeveel volledige waardetoekenningen voldoen aan alle vier de regels?
  1. 2
  2. 0
  3. 4
  4. 8
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Set 4: Pas de methoden toe op nieuwe constraintpatronen10 Oefenvragen

Sla deze les op om elk antwoord te zien en elke set te oefenen.

Vraag 1 van 10

Een graaf heeft verbindingen A–B, B–C, C–A, C–D, D–E en E–C. Twee voorgestelde zakken {A,B,C} en {C,D,E} zijn door één verbinding verbonden. Is deze decompositie bij maximaal vijf waarden per variabele geldig, en welke breedte en gebruikelijke grens geeft ze?
  1. Ongeldig; de twee voorkomens van C verhinderen een boomdecompositie
  2. Geldig, breedte 2, met grens O(n53)
  3. Geldig, breedte 2, met grens O(n52)
  4. Geldig, breedte 3, met grens O(n53)
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 2 van 10

Een rooster moet elke vereiste dienst bezetten en moet bij voorkeur late diensten voor één medewerker vermijden. De voorkeur van de medewerker is de enige zachte constraint. Wat maakt een rooster haalbaar?
  1. Het minimaliseert alleen late diensten
  2. Het voldoet aan de meeste harde regels
  3. Het heeft geen voorkeurskosten
  4. Het voldoet aan elke harde regel
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 3 van 10

Een model voor 5 dames gebruikt rijvariabelen Q1–Q5, één per kolom. Een lerende stelt de kandidaat (1,3,5,2,4) voor en zegt dat nog een tweede constraint nodig is die één dame per kolom vereist. Wat is de juiste beoordeling?
  1. De kandidaat is geldig; de kolommen zijn al afgedwongen
  2. De kandidaat is ongeldig; kolommen 1 en 3 vallen aan
  3. De kandidaat is ongeldig; kolommen 2 en 5 vallen aan
  4. De kandidaat is geldig; rijongelijkheden dwingen kolommen af
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 4 van 10

Een backtrackingoplosser voor eindige domeinen heeft elke tak onderzocht en een mislukking gemeld. Een oplosser met de minimaleconflictenheuristiek is na 2.000 stappen zonder succes gestopt. Welke conclusie is voor elke uitvoering gerechtvaardigd?
  1. Beide stellen onoplosbaarheid vast doordat ze geen oplossing vonden
  2. Beide laten haalbaarheid open doordat ze een mislukking meldden
  3. Backtracking stelt onoplosbaarheid vast; lokaal zoeken laat die open
  4. Lokaal zoeken stelt onoplosbaarheid vast; backtracking laat die open
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 5 van 10

X en Y hebben elk twee toegestane waarden en Z heeft er drie; geen van de variabelen heeft al een waarde. X heeft één aangrenzende variabele zonder waarde en Y heeft er twee. De mogelijke waarden van Y verwijderen respectievelijk 3 en 1 waarden uit aangrenzende domeinen. Wat wordt gekozen met MRV, de graadheuristiek en LCV?
  1. De eerste waarde van X
  2. De tweede waarde van Y
  3. De eerste waarde van Y
  4. De tweede waarde van Z
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 6 van 10

Variabelen P, Q en R hebben domein {1,2} en constraints P≠R,Q≠R. U is onafhankelijk. Een tak met P=1,Q=2,U=1 mislukt. Welke beperking voor Q kan in een latere tak met P=1,U=2 worden gerechtvaardigd door van die mislukking te leren?
  1. Wijs Q = 2 af zolang P = 1
  2. Wijs Q = 1 af zolang P = 1
  3. Wijs Q = 2 in elke tak af
  4. Sta beide waarden van Q toe na wijziging van U
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 7 van 10

Vóór een beslissing hebben Y en Z nog geen waarde, hebben ze elk domein {2,6} en moeten ze verschillen. Een waardetoekenning aan X verwijdert via de constraints X–Y en X–Z de waarde 6 uit beide domeinen. Wat meldt gewone voorwaartse controle onmiddellijk?
  1. Een leeg domein omdat Y en Z moeten verschillen
  2. Geen verwijdering omdat Y en Z geen waarde hebben
  3. Een oplossing omdat alle resterende waarden vastliggen
  4. Nog geen leeg domein; Y en Z behouden beide 2
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 8 van 10

Laat DA={1,2,3}, DB={2,3} en DC={2}, met A<B en B≠C. Wat zijn de uiteindelijke AC-3-domeinen?
  1. DA={1},DB={3},DC={2}
  2. DA={1,2},DB={2,3},DC={2}
  3. DA={1,2},DB={3},DC={2}
  4. DA={1,2,3},DB={3},DC={2}
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 9 van 10

Vier variabelen moeten allemaal verschillen. Hun domeinen zijn DJ=DK={1,4}, DL={1,4,7} en DM={4,7,9}. Wat dwingt volledige Alldiff-propagatie af?
  1. L=1,M=7
  2. L=7,M=9
  3. L=7,M∈{4,9}
  4. L∈{1,7},M=9
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 10 van 10

Een plan heeft 6 schendingen. De beschikbare stappen die één variabele wijzigen, leiden tot scores 6, 7 en 8. De stap met score 6 bereikt een toestand met een stap naar score 4. Welk zoekgedrag kan score 4 bereiken zonder eerst het aantal schendingen te verhogen?
  1. Sta een zijwaartse stap toe, dan een verbetering
  2. Vereis een strikte daling bij elke afzonderlijke stap
  3. Sta een slechtere stap toe, dan een verbetering
  4. Verander constraintgewichten maar behoud de toestand
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Kom je niet uit je eigen opgave? Huiswerkhulp

Kernbegrippen

73 Kernbegrippen, elk met een definitie

A

AC-3
AC-3 is een algoritme met een wachtrij dat herhaaldelijk gerichte bogen herziet en aangrenzende variabelen die door domeinverkleiningen worden beïnvloed opnieuw controleert.
Nadat X waarden verliest, worden inkomende bogen vanuit de andere aangrenzende variabelen in de wachtrij gezet omdat hun ondersteunende waarden mogelijk zijn verdwenen.
Achterwaartse boomdoorloop
Een achterwaartse boomdoorloop verwerkt kindknopen vóór ouderknopen en herziet bogen van ouderknoop naar kindknoop, waarbij waarden zonder ondersteuning uit de ouderknoop worden verwijderd.
De wortel wordt pas ten opzichte van een kindknoop gecontroleerd nadat de mogelijke waarden van die kindknoop de nakomelingen weerspiegelen.
Alldiff
Alldiff is een globale constraint die vereist dat alle variabelen in het variabelenbereik paarsgewijs verschillende waarden uit hun domeinen aannemen.
Bij drie rapporten die met Alldiff worden toegewezen, kan dezelfde beoordelaar niet meer dan één van die rapporten krijgen.

B

Binaire constraint
Een binaire constraint beperkt de toegestane waardecombinaties voor twee variabelen, bijvoorbeeld hun volgorde of de vraag of hun waarden verschillen.
Twee tests die een technicus delen, hebben een binaire regel nodig die voorkomt dat hun uitvoeringstijden overlappen.
Boogconsistentie
Boogconsistentie vereist dat elke waarde in de beginknoop van een gerichte binaire boog een verenigbare waarde in het domein van de eindknoop heeft.
Een begintijd wordt verwijderd als de opvolgende taak geen resterende tijd heeft die laat genoeg is om aan de voorrangsregel te voldoen.
Boogconsistentie handhaven
Boogconsistentie handhaven, of MAC, dwingt na elke beslissing binnen zoeken met backtracking boogconsistentie af en herstelt domeinen bij het ongedaan maken.
De gevolgen van een beslissing kunnen zich door verschillende sessies zonder waarde verspreiden voordat de volgende variabele wordt gekozen.
Boogherziening
Een boogherziening verwijdert waarden uit het domein van de beginknoop die onder de betreffende binaire relatie geen ondersteuning hebben in het huidige domein van de eindknoop.
Herziening van X→Y verandert het domein van X; de omgekeerde richting moet afzonderlijk worden gecontroleerd.
Boombreedte
De boombreedte van een graaf is de kleinst mogelijke grootste zakgrootte min één over alle geldige boomdecomposities van die graaf.
Een decompositie met zakken van maximaal drie variabelen laat zien dat de boombreedte van de graaf hoogstens twee is.
Boomdecompositie
Een boomdecompositie rangschikt overlappende zakken met variabelen in een boom, dekt daarbij alle variabelen en constraints en zorgt dat de voorkomens van elke variabele verbonden blijven.
Twee zakken die één variabele delen, kunnen hun lokale oplossingen afstemmen door overeen te komen over de waarde van die variabele.

C

Chronologische backtracking
Chronologische backtracking keert vanaf een doodlopend zoekpad terug naar de variabele die het laatst een waarde kreeg, ongeacht de oorzaak van de mislukking.
Bij het kleuren van een kaart kan een oplosser de kleur van een onafhankelijke regio opnieuw bekijken voordat die terugkeert naar de keuze die een conflict veroorzaakte.
Commutativiteit
Commutativiteit van CSP-waardetoekenningen betekent dat dezelfde waarden in verschillende volgorden aan variabelen toekennen dezelfde uiteindelijke toestand oplevert.
Eerst A de waarde 1 en daarna B de waarde 3 geven, levert hetzelfde volledige paar op als eerst de waarde van B en daarna die van A kiezen.
Conditioneren op een cyclusdoorbrekende knopenverzameling
Conditioneren op een cyclusdoorbrekende knopenverzameling probeert waardetoekenningen aan die verzameling, verkleint de resterende domeinen en lost voor elke poging de resulterende boom of het resulterende bos op.
Als het voltooien van een boom mislukt, probeert de oplosser een andere waardetoekenning aan de knopenverzameling in plaats van het hele CSP direct af te wijzen.
Conflictgestuurd terugspringen
Conflictgestuurd terugspringen voegt conflictverklaringen van verschillende mislukte niveaus samen om een eerdere verantwoordelijke beslissing aan te wijzen.
Een oorzaak die onder een onafhankelijke keuze is ontdekt, kan worden meegevoerd naar eerdere niveaus totdat het zoeken een relevante variabele bereikt.
Conflictverzameling
Een conflictverzameling wijst eerdere variabelen aan waarvan de toegekende waarden hebben bijgedragen aan het uitsluiten van de mogelijke keuzes van een mislukte variabele.
Als drie kleuren van aangrenzende regio's alle kleuren voor een regio uitsluiten, verklaren die eerdere aangrenzende regio's het lege domein.
Consistente waardetoekenning
Een consistente waardetoekenning schendt geen constraint op de toegekende waarden, al kan het nog steeds onmogelijk zijn die waardetoekenning uit te breiden tot een volledige oplossing.
Twee gekleurde regio's kunnen verenigbaar zijn, ook als hun keuzes een ongekleurde regio zonder beschikbare kleur achterlaten.
Constraint van hogere orde
Een constraint van hogere orde beperkt een combinatie van waarden van minstens drie variabelen binnen dezelfde relatie.
Een regel die vereist dat drie taakduren samen tien uur zijn, verbindt alle drie de duurvariabelen.
Constraintgraaf
Een constraintgraaf geeft variabelen weer als knopen en verbindt twee knopen als hun variabelen een binaire constraint delen.
In een graaf voor het kleuren van een kaart laat een geïsoleerde eilandknoop zien dat de kleur onafhankelijk van de verbonden regio's op het vasteland kan worden gekozen.
Constraintrelatie
Een constraintrelatie is de verzameling toegestane waardecombinaties voor de variabelen in het variabelenbereik van een constraint, uitgedrukt als tupels of als een regel.
De relatie voor een voorrangsregel kan toegestane tijdvakparen opsommen, zoals (1,2) en (1,3).
Constraints leren
Constraints leren legt logische gevolgen van mislukte zoekpogingen vast als beperkingen of opgeslagen verboden combinaties om te voorkomen dat ze opnieuw worden ontdekt.
Een latere tak kan een geleerde onmogelijke kleurcombinatie afwijzen, ook nadat niet-gerelateerde keuzes zijn veranderd.
Constraintvervullingsprobleem
Een constraintvervullingsprobleem kent waarden uit domeinen toe aan variabelen en vereist daarbij dat aan elke constraint wordt voldaan.
Een CSP voor een rooster kiest voor elke workshop een tijdvak en dwingt daarbij regels voor aanwezigheid en beschikbaarheid van trainers af.
Constraintweging
Constraintweging verhoogt de kosten van constraints die geschonden blijven en verandert zo de scores waarmee latere herstelstappen worden gekozen.
Een conflict dat herhaaldelijk onopgelost blijft, wordt duurder, waardoor latere stappen zich op het oplossen ervan richten.
CSP met een boomstructuur
Een CSP met een boomstructuur is een binair CSP met een acyclische constraintgraaf, waardoor achterwaarts waarden verwijderen gevolgd door voorwaarts waarden toekennen mogelijk is.
Zodra één workshopvariabele is vastgelegd, vormt de resterende workshopgraaf het pad B–A–D–E, dat met boomdoorlopen kan worden opgelost.
Cyclusdoorbrekende knopenverzameling
Een cyclusdoorbrekende knopenverzameling is een verzameling variabelen waarvan de verwijdering, samen met de bijbehorende verbindingen, een boom of een bos zonder cycli overlaat.
Het verwijderen van de gedeelde knoop van twee driehoeken doorbreekt beide cycli en laat twee afzonderlijke verbindingen over.

D

Disjunctieve constraint
Een disjunctieve constraint vereist dat aan minstens één alternatieve relatie wordt voldaan, zoals een van twee mogelijke volgorden zonder overlap.
Twee taken die één machine gebruiken, kunnen in de volgorde X vóór Y of Y vóór X worden uitgevoerd, zolang hun uitvoeringsintervallen niet overlappen.
Domein
Een domein is de verzameling waarden die een variabele mag aannemen; propagatie kan waarden verwijderen die onverenigbaar zijn met de huidige beperkingen.
Een sessie heeft aanvankelijk drie mogelijke tijdvakken, maar door de aankomsttijd van de trainer valt het vroegste tijdvak af.

F

Formulering met volledige kandidaatoplossingen
Een formulering met volledige kandidaatoplossingen houdt tijdens lokaal zoeken voor elke variabele een waarde aan en staat daarbij tijdelijke schendingen van constraints toe.
Een herstelalgoritme begint met een volledig rooster, ook als een nieuwe beschikbaarheidsregel ervoor zorgt dat twee sessies conflicteren.

G

Gefactoriseerd model
Een gefactoriseerd model geeft een toestand weer met afzonderlijke variabelen en waarden, zodat een oplosser constraints tussen keuzes kan onderzoeken.
De rij van één dame kan veranderen zonder de beschrijving van elk veld op het schaakbord opnieuw op te bouwen.
Gerichte boogconsistentie
Gerichte boogconsistentie vereist dat elke variabele boogconsistent is met elke aangrenzende variabele waarmee die een constraint deelt en die later in een ordening voorkomt.
In een boomvolgorde met ouderknopen vóór kindknopen moeten overgebleven waarden van de ouderknoop ondersteuning hebben in het domein van elke kindknoop.
Gesimuleerd afkoelen
Gesimuleerd afkoelen accepteert soms stappen bij lokaal zoeken met een slechtere score, met een acceptatiekans die afneemt als de temperatuur daalt.
Vroege slechtere stappen kunnen aan een lokaal minimum ontsnappen; latere beslissingen bij een lagere temperatuur bevorderen het bereiken van stabielere, betere toestanden.
Globale constraint
Een globale constraint is een benoemde relatie over een groep met een variabel aantal leden, vaak met een gespecialiseerde methode om domeinen te verkleinen.
Met Alldiff kan een oplosser herkennen dat drie cellen niet allemaal kunnen verschillen als er maar twee cijfers over zijn.
Graadheuristiek
De graadheuristiek geeft de voorkeur aan een variabele met meer constraints op variabelen zonder waarde, meestal om te kiezen bij even grote domeinen.
Twee regio's hebben nog twee kleuren; de regio met meer ongekleurde buren wint de keuze op basis van de graadheuristiek.
Grensconsistentie
Grensconsistentie vereist dat elk eindpunt van het domein van een variabele voor elke constraint waarbij die variabele betrokken is, een uitbreiding heeft die aan de constraint voldoet.
Een interval kan ondersteunde eindpunten hebben, ook als sommige tussenliggende waarden een constraint zouden schenden.
Grenspropagatie
Grenspropagatie scherpt met behulp van constraints de eindpunten van numerieke domeinen aan, zonder alle waarden in een groot interval op te sommen.
Als twee bussen een groep passagiers verdelen, dwingt de maximale capaciteit van de ene bus een ondergrens af voor het aantal passagiers in de andere bus.

H

Harde constraint
Een harde constraint is een verplichte eis waaraan elke haalbare waardetoekenning moet voldoen, ongeacht de voorkeurskosten.
Een capaciteitslimiet van een ruimte blijft verplicht, ook als schending ervan het rooster handiger zou maken.
Herstellogboek
Een herstellogboek legt vast welke domeinwaarden door zoekbeslissingen zijn verwijderd, zodat de oplosser tijdens backtracking de juiste waarden kan herstellen.
Als een latere beslissing ongedaan wordt gemaakt, worden de daardoor verwijderde waarden hersteld en blijven de verwijderingen door een eerdere waardetoekenning behouden.
Heuristiek van de minste resterende waarden
De heuristiek van de minste resterende waarden kiest een variabele zonder waarde met de minste toegestane waarden onder de huidige beperkingen.
Een sessie met één resterend tijdvak wordt gekozen vóór een sessie die nog drie verschillende tijdvakken kan gebruiken.

K

k-consistentie
k-consistentie vereist dat elke consistente waardetoekenning aan willekeurige k − 1 variabelen consistent kan worden uitgebreid naar een willekeurige extra variabele.
Op niveau drie moet een verenigbaar paar voor elke derde variabele een waarde overlaten die met beide overeenkomt.
Knoopconsistentie
Knoopconsistentie betekent dat elke waarde die in het domein van een variabele overblijft, voldoet aan alle unaire constraints op die variabele.
Nadat een verbod op de ochtend is toegepast, bevat het knoopconsistente domein van de sessie alleen het middaguur en de middag.
Kritieke constraintratio
Een kritieke constraintratio markeert in veel families van willekeurige CSP's een overgangsgebied tussen overwegend oplosbare en overwegend onoplosbare gevallen.
Gevallen dicht bij deze overgang vereisen vaak meer zoekwerk dan gevallen met weinig beperkende constraints of duidelijk onhaalbare gevallen.

L

Leeg domein
Een leeg domein ontstaat als door het verwijderen van waarden geen beschikbare waarde voor een variabele overblijft, wat een mislukking onder de huidige beperkingen vaststelt.
Een sessie verliest het laatste verenigbare tijdvak nadat een aangrenzende sessie een waarde krijgt, dus stopt de tak.
Lokaal minimum
Een lokaal minimum is een waardetoekenning met schendingen waarbij geen enkele wijziging van één variabele de gekozen conflictscore verlaagt.
Op een damebord kan één aanval overblijven, ook al heeft elke directe wijziging een gelijke of slechtere score.
Lopende-intersectie-eigenschap
De lopende-intersectie-eigenschap vereist dat elke zak op een pad tussen twee voorkomens van een variabele die variabele ook bevat.
Als X in beide eindzakken voorkomt maar ontbreekt in de middelste zak, is de voorgestelde decompositie ongeldig.

M

Minimaleconflictenheuristiek
De minimaleconflictenheuristiek herstelt een volledige waardetoekenning door een variabele in een geschonden constraint te kiezen en die een waarde met de minste schendingen te geven.
Een dame wordt verplaatst naar een rij met de minste aanvallen van de andere dames; bij gelijke scores wordt willekeurig gekozen.
Minst beperkende waarde
De minst beperkende waarde is de mogelijke waarde die de minste keuzes verwijdert uit aangrenzende domeinen van variabelen zonder waarde en daarom eerst wordt geprobeerd.
Een ruimtekeuze die de enige geschikte ruimte voor een andere bijeenkomst beschikbaar houdt, wordt geprobeerd vóór een keuze die die ruimte wegneemt.

N

Naakt paar
Een naakt paar bestaat uit twee variabelen binnen één variabelenbereik van Alldiff die tot dezelfde twee waarden zijn beperkt en die waarden voor het paar reserveren.
Twee cellen in een rij die beperkt zijn tot 4 en 7, laten een Sudokuoplosser beide cijfers uit elke andere cel in die rij verwijderen.

O

Onafhankelijke component
Een onafhankelijke component is een samenhangend deel van een constraintgraaf zonder constraint die de variabelen ervan met een andere component verbindt.
De geïsoleerde knoop van Tasmanië kan na het vasteland worden gekleurd zonder een extra verbinding met het vasteland te controleren.
Ondersteunende waarde
Een ondersteunende waarde is een waarde in een aangrenzend domein die samen met een bepaalde waarde van de beginknoop aan de verbindende binaire constraint voldoet.
Bij X<Y ondersteunt Y gelijk aan 4 de waarde X gelijk aan 3, terwijl Y gelijk aan 2 dat niet doet.
Online herstel
Online herstel gaat uit van een bestaande waardetoekenning en werkt die bij als eisen veranderen, met als doel weer een haalbaar plan te krijgen.
Als een technicus niet meer beschikbaar is, kan de oplosser het huidige rooster herstellen in plaats van een nieuw rooster te maken.
Oplossing
Een oplossing is een waardetoekenning die elke variabele een waarde uit het domein geeft en tegelijkertijd aan elke constraint voldoet.
Een volledig ingevuld Sudokurooster is alleen een oplossing als elke rij, kolom en elk blok aan de regels voldoet en elk gegeven cijfer klopt.
Optimalisatieprobleem met constraints
Een optimalisatieprobleem met constraints zoekt een haalbare waardetoekenning met de beste doelwaarde, zoals minimale totale voorkeurskosten.
Een roosteroptimalisator kan elke vereiste dienst bezetten en tegelijk de kosten van ongewenste werktijden minimaliseren.

P

Padconsistentie
Padconsistentie vereist dat elke consistente waardetoekenning aan een paar variabelen in een binair CSP verenigbaar kan worden uitgebreid naar een willekeurige derde variabele.
Twee verschillende kleuren op een driehoek met twee kleuren laten geen verenigbare kleur over voor de derde regio.
Plateau
Een plateau is een samenhangend gebied van waardetoekenningen met dezelfde score bij lokaal zoeken, waar mogelijk geen strikt verbeterende stappen beschikbaar zijn.
Verschillende damezetten kunnen één aanval behouden voordat een andere opstelling een zet zonder aanvallen mogelijk maakt.
Principe van vroeg falen
Het principe van vroeg falen geeft de voorkeur aan een vroege beslissing die waarschijnlijk een doodlopend zoekpad onthult, zodat het zoeken geen lang vervolg opbouwt dat toch zal mislukken.
MRV test vroeg een bijna uitgeput domein van een sessie terwijl veel andere planningskeuzes nog geen waarde hebben.

S

Sterke k-consistentie
Sterke k-consistentie betekent dat een CSP aan elk consistentieniveau van 1 tot en met k voldoet, inclusief alle kleinere uitbreidingseisen.
Door sterke n-consistentie kan aan de variabelen van een CSP met n variabelen en niet-lege domeinen in elke volgorde zonder terugkeren een waarde worden toegekend.
Symmetriedoorbrekende constraint
Een symmetriedoorbrekende constraint behoudt vertegenwoordigers van equivalente oplossingen door keuzes te beperken die alleen door een geldige symmetrie verschillen.
Een kleurvolgorde vastleggen op een kliek van drie regio's verwijdert herhaalde permutaties van kleurnamen als de kleuren onderling verwisselbaar zijn.

T

Taboezoeken
Taboezoeken verbiedt tijdelijk recente toestanden of stappen en gebruikt kortetermijngeheugen om herhaalde cycli bij lokaal zoeken te ontmoedigen.
Een oplosser voorkomt dat een sessie direct wordt teruggeplaatst in het vorige tijdvak als daardoor hetzelfde conflict zou terugkeren.
Terugspringen
Terugspringen keert vanaf een mislukte variabele terug naar het lid van de conflictverzameling dat het laatst een waarde kreeg en slaat niet-gerelateerde beslissingen over.
Bij een mislukte kleuring op het vasteland kan de oplosser het opnieuw bekijken van een eiland zonder constraintverbindingen overslaan.
Toewijzingsprobleem
Een toewijzingsprobleem koppelt entiteiten zoals mensen, taken of ruimten aan elkaar en houdt daarbij rekening met geschiktheid en beperkte hulpbronnen.
Een model voor rapportbeoordeling kiest voor elk rapport één geschikte beoordelaar en kan verbieden dat dezelfde beoordelaar meermaals wordt ingezet.

U

Unaire constraint
Een unaire constraint beperkt de waarden van één variabele en kan worden afgedwongen door niet-toegestane waarden uit het domein te verwijderen.
De regel dat een sessie niet vóór het middaguur kan beginnen, verwijdert ochtendkeuzes voordat er zoekbeslissingen worden genomen.

V

Variabele
Een variabele benoemt een beslissing waarvan de waarde moet worden gekozen als onderdeel van een oplossing voor een constraintvervullingsprobleem.
In een model voor ruimtetoewijzing kan elke bijeenkomst een variabele zijn waarvan de waarde de toegewezen ruimte aangeeft.
Variabele in een geschonden constraint
Een variabele in een geschonden constraint is betrokken bij minstens één geschonden constraint in de huidige volledige waardetoekenning die lokaal zoeken gebruikt.
Beide bijeenkomsten in een dubbel geboekte ruimte zijn betrokken bij een geschonden constraint, ook als maar één ervan hoeft te worden verplaatst om het conflict op te lossen.
Variabelenbereik van een constraint
Het variabelenbereik van een constraint is de verzameling variabelen waarvan de gezamenlijke waarden worden beperkt door de toegestane relatie van die constraint.
De regel dat sessie A voorafgaat aan sessie B heeft een variabelenbereik met A en B, ongeacht hun domeinen.
Verboden combinatie
Een verboden combinatie is een specifieke combinatie van waardetoekenningen die niet kan worden uitgebreid tot een waardetoekenning die aan het CSP voldoet en daarom kan worden verboden.
Twee eerder gekozen regiokleuren kunnen samen een driehoek dwingen om slechts twee kleuren te gebruiken, waardoor hun combinatie een verboden combinatie is.
Volledige zoekmethode
Een volledige zoekmethode vindt een oplossing als die bestaat en kan onoplosbaarheid vaststellen door alle noodzakelijke eindige mogelijkheden uit te putten.
Nadat elke tak met eindige domeinen is mislukt, kan uitputtende backtracking melden dat het rooster onhaalbaar is.
Voorrangsconstraint
Een voorrangsconstraint vereist dat een taak eindigt voordat een andere begint en legt zo een verband tussen de begintijd en duur van de eerste taak en de volgende begintijd.
Een voorbereidingstaak van 20 minuten die op minuut 5 begint, maakt minuut 25 de vroegste begintijd voor de analyse.
Voorwaartse boomdoorloop
Een voorwaartse boomdoorloop kiest een overgebleven waarde voor de wortel en geeft daarna elke kindknoop een waarde die verenigbaar is met de toegekende waarde van de ouderknoop.
Afzonderlijke kindtakken kunnen na afloop van het achterwaarts verwijderen van waarden onafhankelijk hun ondersteunende waarden kiezen.
Voorwaartse controle
Voorwaartse controle verwijdert waarden uit de domeinen van aangrenzende variabelen zonder waarde als ze conflicteren met de gekozen waarde van de variabele die net een waarde kreeg.
Als een test tijdvak 2 krijgt, wordt tijdvak 2 verwijderd uit het domein van een andere test die dezelfde technicus gebruikt.

W

Waardesymmetrie
Waardesymmetrie ontstaat als het hernoemen van onderling verwisselbare domeinwaarden de oorspronkelijke constraints behoudt en oplossingen omzet in oplossingen.
Het hernoemen van drie kaartkleuren levert equivalente kleuringen op als geen regel één kleur een bijzondere rol geeft.
Werkplaatsplanning
Werkplaatsplanning kent begintijden aan taken toe en voldoet daarbij aan volgorde-eisen en de beperkingen van gedeelde machines of mensen.
Een laboratoriumplan moet voorbereiding en analyse op volgorde plaatsen en voorkomen dat twee analyses tegelijkertijd één instrument gebruiken.
Willekeurige herstart
Een willekeurige herstart begint lokaal zoeken vanuit een nieuw gekozen volledige waardetoekenning nadat de huidige poging onvoldoende voortgang heeft geboekt.
Na veel stappen op een plateau begint de oplosser met een ander volledig bord om een ander gebied te verkennen.

Z

Zachte constraint
Een zachte constraint drukt een voorkeur uit waarvan een schending kosten oplevert die worden gebruikt om verder haalbare waardetoekenningen te vergelijken.
Een voorkeur voor de middag kan worden geschonden als plaatsing in de ochtend nodig is om aan elke harde regel te voldoen.
Zijwaartse stap
Een zijwaartse stap verandert een waardetoekenning terwijl de score gelijk blijft en kan zo toegang bieden tot een latere verbetering.
Door één dame te verplaatsen wordt een diagonale aanval ingeruild voor een rijaanval, waarna een andere dame het bord kan oplossen.
Zoeken met backtracking
Zoeken met backtracking is diepte-eerst zoeken waarbij steeds één variabele een waarde krijgt en keuzes ongedaan worden gemaakt als hun vervolgen mislukken.
Als geen tijdvak werkt voor de laatste sessie, keert de oplosser terug naar een eerdere sessie en probeert een ander tijdvak.

Over deze les

Door StudeliFout melden

Maak je eigen Studiemateriaal

Maak van je aantekeningen, slides en documenten Leermodules, Oefenvragen, Flashcards en 6 andere tools.

Aan de slag