Variabler, domener og begrensninger
Et institutt skal legge eksamen i fem emner over tre dager: Algoritmer, Databaser, Etikk, Logikk og Planlegging. Noen studenter tar flere av emnene og kan ikke ha to eksamener samme dag. Etikk er forkurs for Databaser, og instituttet vil ha etikkeksamenen først. Den store salen er opptatt dag 1, og Algoritmer trenger den.
Et søkeproblem fra kapittel 2 behandler en tilstand som en svart boks: algoritmen vet bare hvilke handlinger som finnes, og om målet er nådd. Et begrensningsproblem (constraint satisfaction problem, CSP) åpner boksen. Tilstanden er en samling variabler med verdier, og målet er gitt av eksplisitte regler. Formelt er problemet en ƒCSP-trippel:
- er variablene, her med én eksamen hver.
- er domenene. Et domene (domain) er mengden verdier en variabel kan få, her dagene .
- er mengden begrensninger. En begrensning (constraint) har et omfang, altså variablene den gjelder, og en relasjon som sier hvilke kombinasjoner av verdier som er lov, for eksempel .
En tilordning (assignment) gir verdier til noen eller alle variablene. Den er konsistent når den ikke bryter noen begrensning, og komplett når alle variablene har fått en verdi. En løsning er en tilordning som er både konsistent og komplett. Delvise tilordninger er like viktige: søket i kapittel 10 bygger dem opp én variabel om gangen.
Sjekk deg selvEr tilordningen , , konsistent, og er den komplett?Vis svarSkjul svar
Nei til begge. og bryter , så den er ikke konsistent. Logikk og Planlegging mangler verdi, så den er heller ikke komplett.
Hvor mange komplette tilordninger finnes? Hver av de variablene kan få hver av de verdiene, så ƒantall komplette tilordninger er . For eksamensplanen er det , regnet med de fulle domenene før er brukt. Det er overkommelig her, men med 30 emner og 10 dager er det planer. Formuleringen lønner seg fordi begrensningene lar oss forkaste store deler av rommet uten å se på planene én og én.
Det finnes en gevinst til. Fordi tilstanden har en fast struktur, kan de samme algoritmene løse alle problemer som er skrevet på denne formen: timeplaner, vaktlister, kartfarging og puslespill. Vi trenger ingen problemspesifikk heuristikk av typen fra kapittel 3. Heuristikkene i kapittel 10 leser bare domenene og grafen.
RegneeksempelFormuler bemanningen av tre skranker på et bibliotek som et CSP, og tell de komplette tilordningene og løsningene.Vis løsningSkjul løsning
Steg 1. Variabler. Én variabel per skranke: for utlån, informasjon og retur.
Steg 2. Domener. Fire ansatte kan stå i skranke, så hvert domene er .
Steg 3. Begrensninger. Én person kan bare stå ett sted: , som betyr , og . Liv har ikke opplæring i utlån: .
Steg 4. Tell. Uten begrensninger er det komplette tilordninger. Med begrensningene er det løsninger: tre valg for utlån (alle unntatt Liv), tre for informasjon (alle unntatt den i utlånet) og to for retur.
Et konferansesenter skal legge fire møter på tidspunktene kl. 9, 11 og 13. To møter med felles deltakere kan ikke gå samtidig. Hvilken formulering som CSP er riktig?
En festival fordeler fem frivillige på vakter, med én variabel per frivillig. Tre av dem har domenet {1, 2, 3, 4}, de to andre {1, 2, 3}. Hvor mange komplette tilordninger finnes?