I Emne: G høgskolen i oslo Emnekode:!;_unstiQ intelliqens lv 145A Gruppe(r) : Dato: 23.04.04 Tillatte Antall sider (inkl. Antall oppgaver: hjelpemidler: forsiden): 5 3 Inoen Faglig veileder: Eva Vihovde Eksamenstid: KI.O900-1200 Antall vedlegg: O I Kandida'en må selv kontrollere at oppgavesettet er fullstendig. Ved eventuelle uklarheter i oppgaveteksten skal du redegjøre for de forutsetninger du legger til grunn for løsningen. Avdeling for ingeniørutdanning. Cort Adelersgate 30. 0254 Oslo. tlf: 22453200. faks: 22 4532 OSiu@hio.no
Oppgave 1 Nedenfor ser du et kart over provinsene i Sør-Afrika. Provinsene er i forskjellige grånyanser, mens nabolanden er hvite (dvs Lesotho og Swaziland er ikke en provinser i Sør-Afrika men naboland i likhet med Namibia, Botswana og Zimbabwe). Videre skal du se bort fra det lille avgrensede landområde i KwaZulu-Natal. a) Tegn opp en graf som viser hvilke provinser som grenser til hverandre. La hver node representeren provins og la kantene representeren naborelasjon dvs grenser mellom provinsene. Bruk forbokstavene på provinsene, eventuelt to bokstaver hvis navnet består av to ord. b) Avgjør om det er mulig å finne en reiserute gjennom landet der alle grensene mellom provinsene krysses en og bare en gang. Begrunn svaret. c) Anta nå at Limpopo har blitt erobret av Botswana og ikke lenger er en provins i Sør- Afrika. Vil det nå være mulig å finne en reiserute gjennom landet der alle grensene mellom provinsene krysses en og bare en gang? Begrunn svaret. Hint: Grafteoriens far, Leonhard Euler, studerte dette problemet på "Broene i Kønigsberg" 2
Oppgave 2 Nedenfor finner du en algoritme skrevet i pseudokode. Algoritmen bruker variabelen X for tilstanden som evalueres, og listene apen og Ciosed. 1 < Starttilstanden legges på Open > while ( <flere tilstander på Open > ) { X = <første tilstand på apen >; jf ( < X er lik måltilstanden> ) { < legg X til CIosed> return true; } < generer etterfølgerne til X >", for ( < hver etterfølger E til X» { if ( < E verken er på apen eller CIosed> ) < legg E til forrest på apen > ) }. < legg X pa CIosed> a) Hva heter algoritmen? Skriv opp rekkefølgen tilstandene i grafen nedenfor blir evaluert i etter denne algoritmen. b) Hvilken forandring av algoritmen må du gjøre hvis tilstandene skal evalueres i en annen rekkefølge? Hva heter algoritmen du da får? Skriv opp rekkefølgene tilstandene i grafen blir evaluert i etter denne algoritmen. 3
Oppgave 3 I denne oppgaven skal vi se på det såkalte "Dronning-problemet". Spørsmålet er om det er mulig å plassere 8 dronninger på et sjakkbrett slik at ingen kan slå hverandre? I denne oppgaven skal vi imidlertid redusere problemet til et 4x4 sjakkbrett med 4 dronninger. Dronningen kan slå alle brikker som står på samme horisontale, vertikale og diagonale linje/rad. De grå rutene i eksempelet under viser hvilke plasser som dronningen kan slå andre brikker på hvis den er plassert i det øvre venstre hjørnet. De hvite rutene kan den imidlertid ikke nå, og disse vil i denne sammenheng regnes som ledige. Vi starter med starttilstanden som er et tomt brett Og plasserer så dronningene, en etter en, på de ledige plassene, dvs. på plasser der de ikke kan bli slått av dronninger som allerede befinner seg på brettet. a) Hvor mange etterfølgere har starttilstanden? Når vi skal analysere problemet er det ønskelig å beskjære tilstandsrommet, dvs redusere antall tilstander uten at det reduserer våre muligheter til å finne en løsning. Vis hvordan antall etterfølgere til starttilstanden kan reduseres til 3. I hver av de 3 neste deloppgavene skal vi ta for oss hver av starttilstandens 3 etterfølgere og generere (dvs tegne opp) subgrafene. Dybden i grafene er begrenset av eventuelle måltilstander (dvs tilstander der alle 4 dronninger er plassert slik at ingen kan slå hverandre) eller av tilstander der det ikke er mulig å plassere flere dronninger på brettet og som følgelig ikke har noen etterfølgere. På hvert nivå i grafen bør du undersøke om det er mulig å beskjære grafen ytterligere, dvs redusere antall etterfølgere uten at mulighetene for å finne en løsning reduseres. Begrunn i så fall beskjæringen. Eventuelle måltilstander skal merkes "mål". b) Tegn opp subgrafen under tilstanden 4
c) Tegn opp subgrafen under tilstanden d) Tegn opp subgrafen under tilstanden Hele grafen består nå av starttilstanden pluss de 3 subgrafene du har tegnet under punktene b, c og d. I de neste deloppgavene skal du betrakte grafen som helhet. e) Er grafen et tre? Begrunn svaret. f) Er løsningen på problemet en sti eller en tilstand? (I denne forbindelse kan det være lurt å vurdere følgende problemstillinger: Har lengden på løsningsstien noen betydning? Har rekkefølgen av tilstandene på løsningsstien noen betydning?) Begrunn svaret. g) Hvilken søkeretning, datadrevet eller måldrevet, er brukt her og hvorfor er den valgt? h) Hva blir grafens gjennomsnittlige forgreningsgrad når du tar hensyn til beskjæringer av tilstandsrommet du har foretatt? i) Foreslå en heuristisk evalueringsfunksjon som kan lede søket i en gunstig retning, og forklar hvordan den skal brukes. Hvilken verdi er best/dårligst? j) Vil vi kunne nå måltilstanden hvis vi bruker "Hill-climbing"-algoritmen sammen med den evalueringsfunksjonen du foreslo under punkt i). Begrunn svaret. k) Hvilken kjent algoritme vil du foreslå for å løse problemet når du tar i bruk evalueringsfunksjonen du foreslo under punkt i)? Begrunn svaret. SLUTT 5