CMD + K

Introduksjon til kunstig intelligensSøkeproblemer og uinformert søkBegreper & formler24
16 min lesing

Søkeproblemer og uinformert søk

Formuler et problem i seks deler, fra starttilstand til handlingskostnad, og la en algoritme lete etter en løsning. Spor bredde-først-søk, uniform-kostnad-søk, dybde-først-søk og iterativ fordypning med frontier og nådd-mengde, og sammenlign dem på fullstendighet, optimalitet og kompleksitet.

Læringsmål
  • 01Formaliser en oppgave som søkeproblem med tilstandsrom, starttilstand, måltest, handlinger, overgangsmodell og handlingskostnad
  • 02Spor BFS, UCS og DFS med minne på en graf og oppgi ekspansjonsrekkefølge, funnet sti og stikostnad
  • 03Spor DLS og IDS og avgjør om søket gir en løsning, cutoff eller failure
  • 04Forklar forskjellen på trelikt søk og grafsøk, og hvorfor BFS tester mål ved generering mens UCS tester ved uttak
  • 05Sammenlign de uinformerte søkene i fullstendighet, optimalitet, tid og minne
  • 06Regn ut hvor mange noder BFS og IDS genererer for gitte og
0 av 18 aktiviteter
Kjerneidé

Et sykkelbud med kart, men uten GPS, planlegger turen ved å prøve ut ruter i hodet før det tråkker i vei. Søkealgoritmer gjør det samme: de bygger et tre av mulige handlingsrekkefølger og leter i det til de finner en som når målet. Uinformert søk vet ingenting om hvor målet ligger, så rekkefølgen algoritmen prøver rutene i, avgjør alt: hvor raskt den finner en løsning, om den finner den billigste, og hvor mye den må huske.

Steg 1 av 7

Et søkeproblem i seks deler

Konsept

Et sykkelbud starter ved lageret, skal levere to pakker og avslutte ved kontoret. Før en algoritme kan hjelpe, må oppgaven gjøres om til et søkeproblem. Det har seks deler:

  • et tilstandsrom (state space), alle tilstandene verden kan være i: her krysset budet står i og hvilke pakker som er levert;
  • en starttilstand: ved lageret, ingen pakker levert;
  • en måltest som sier om en tilstand er et mål: begge pakkene levert og budet ved kontoret;
  • handlingene som er lov i hver tilstand: sykle til et nabokryss, eller levere en pakke ved riktig adresse;
  • en overgangsmodell (transition model) som sier hvilken tilstand en handling fører til;
  • en handlingskostnad (action cost) for hvert steg, her minutter.

Måltesten kan sjekke én bestemt tilstand, en liste av tilstander eller en egenskap som mange tilstander har.

Laster interaktiv figur …
Figur 2.1Sykkelbudet som søkeproblem. Med disse seks delene kan en søkealgoritme løse oppgaven uten å vite noe mer om byen.

En løsning er en sekvens av handlinger fra starttilstanden til en måltilstand. Kostnaden til en sti, stikostnaden (path cost), er summen av handlingskostnadene langs den. Begge begrepene står under handlingskostnad og stikostnad, og formelen er ƒstikostnad:

En løsning er optimal når ingen annen løsning har lavere stikostnad.

RegneeksempelFormuler et 2 × 3-glidebrett som søkeproblem og tell tilstandene.

Steg 1. En tilstand er plasseringen av brikkene 1–5 og det tomme feltet i de seks rutene. Starttilstanden kan være 4 1 2 / 5 _ 3.

Steg 2. Handlingene flytter det tomme feltet opp, ned, til venstre eller til høyre, når det ikke står ved kanten. Overgangsmodellen bytter det tomme feltet med brikken i den retningen, og hver handling koster 1.

Steg 3. Måltesten sjekker om brettet er 1 2 3 / 4 5 _.

Steg 4. Det er måter å plassere fem brikker og ett tomt felt på. Bare halvparten, 360, kan nås fra en gitt start, fordi hvert trekk bevarer om antallet brikkepar i feil innbyrdes rekkefølge er et partall eller et oddetall. Søket kan derfor møte høyst 360 tilstander. Starten har fire par i feil rekkefølge og målet ingen, begge partall, så målet kan nås, fem trekk unna.

Konsept

Formuleringen er en abstraksjon. Været, hvilken sykkel budet bruker og nøyaktig hvor i gata det står, er utelatt. En abstraksjon er god når hver abstrakt løsning kan gjøres om til en konkret, og når den er så enkel som mulig uten å miste noe som påvirker svaret. Fjerner vi for mye, finner algoritmen planer som ikke virker; tar vi med for mye, blir tilstandsrommet unødvendig stort. Har byen 15 kryss og budet 3 pakker, er det tilstander. Tar vi også med hvilken av 4 sykler budet bruker, blir det 480, uten at en eneste rute blir bedre.

Glidebrettet er et leketøysproblem: lite, presist og likt for alle, og derfor godt egnet til å teste og sammenligne algoritmer. Budet er nærmere et praktisk problem, der svaret faktisk skal brukes og modellen aldri blir helt riktig. Andre eksempler er å velge rekkefølgen en brøytebil tar gatene i, å finne de færreste redigeringene som gjør én DNA-streng om til en annen, eller å finne trekkene en lagerrobot trenger for å hente en pall bakerst i en hylle. Praktiske problemer har som regel langt flere tilstander, og kostnadene må anslås, men formuleringen i seks deler er den samme.

Øving 1 av 2

I sykkelbud-problemet står budet i kryss og sykler langs gater. Hvilken setning beskriver overgangsmodellen?

Øving 2 av 2

En ruteplanlegger skal finne den billigste rekkefølgen av ferjeturer for en bilist som skal fra fastlandet til en øy ytterst i skjærgården. Hvilken opplysning bør utelates fra tilstanden?

Mine notater

Skriv egne notater for dette kapittelet. De lagres automatisk og dukker opp i «Mine notater»-oversikten paa fag-siden.

Laster…