------

ARIEL
Arnes Rimelig Interaktive Evolusjons-Laboratorium


---------



Bakgrunn

ARIEL er basert på "The Wall Following Robot" slik den er beskrevet på side 59-69 i Nils J. Nilson - "Artificial Intelligence: A New Synthesis".

ARIEL er en Java applet som ved hjelp av genetisk programmering forsøker å avle fram en robot som klarer å gå langt veggen i en rutenettverden. Roboten har åtte sensorer som kan "føle" hva som er i naborutene (vegg eller ikke).

Robotens "intelligens" er representert ved enkle funksjonelle programmer. Disse programmene kan sees på som trær der hver node representerer en av: De boolske funksjonene IF AND OR NOT, sensorfunksjonene n s e w ne nw se sw, konstantene TRUE FALSE, samt handlingene north south east west.

Til å begynne med får alle robotene et tilfeldig program. Ved hjelp av "naturlig" utvalg, kryssing og mutasjon utvikles nye generasjoner roboter som (forhåpentligvis) blir bedre og bedre tilpasset jobben (som er å gå langt veggen) etter hvert som utviklingen går sin gang.

Ved oppstart kan en del parametre stilles inn. Disse er nærmere beskrevet under appleten. Du kan følge utviklingen av robotene ved å se på dugeligheten for det beste individet i hver generasjon og dugelighetsfordelingen for hver generasjon.

Etter hvert som nye generasjoner utvikles, vil kurvene oppdateres. Samtidig vil en liste over de beste robotene pr generasjon fylles ut. Fra denne listen er det mulig å velge en robot som så slippes visuelt inn i en ruteverden så en kan se med egne øyne hvordan den klarer seg. Det er videre mulig å redigere denne rutenettverden for å se hvordan roboten takler andre omgivelser. Som en siste finesse er det lagt inn mulighet for å se det funksjonelle programmet som representerer den valgte roboten.

Nærmere beskrivelse?

Kommer muligens senere.


Appleten:

Parametre

  • Populasjonsstørrelse Antall roboter i hver generasjon
  • Løp pr individ Hvor mange ulike simuleringen som skal kjøres pr robot for å avgjøre dens dugelighet.
  • Maks ant. generasjoner Det største antall generasjoner som skal utvikles før vi gir opp (det er ikke alle parametre som fører fram til et 100% dugelig individ hurtig nok).
  • Turneringsstørrelse Når individer velges ut (f eks for parring), velges et antall tilfeldige roboter, og den beste av disse benyttes. Dette kalles turnering. Parameteret turneringsstørrelse bestemmer hvor mange som velges ut i hver turnering.
  • Antall overløp Etter at et 100% dugelig individ er utviklet, kan det være ønskelig å se om det er mulig å utvikle en like god robot, men med et kortere program. Ved å sette antall overløp >= 1, vil utviklingen fortsette det angitte antall generasjoner for å prøve å finne et kortest mulig program.
  • % Overlevelse angir hvor stor prosentandel av robotene som går over fra en generasjon til den neste uten modifikasjoner.
  • % Formering angir hvor stor prosentandel av robotene som genereres i en ny generasjon ved hjelp av formering (som avkom fra to foreldreroboter).
  • % Mutasjon kan IKKE spesifiseres direkte, men er beregnet ved formelen 100 - %overlevelse - %formering. Med andre ord: Dersom summen av de overstående parametre er mindre enn 100, vil de restrerende prosent bli generert ved hjelp av mutasjon.
  • Tilfeldighetsfrø Frø til tilfeldige-tall-generatoren. Ulike tilfeldighetsfrø gir ulike tilfeldige tall.
  • Maks programdypde Er IKKE implementert ennå, men er planlagt (kanskje) for å begrense minneforbruket. Nå kan programmene bli så store de bare vil, noe som kan føre til at maskina går tom for minne midt i utviklingen. Dersom programmet plutselig stopper opp midt i genereringen av en ny generasjon, så er det trolig ikke mer minne. Sorry, men jeg har ikke hatt tid til å ta imot slike feil på en skikkelig måte (ennå).
  • Rutenettverden Her kan du velge hvilken rutenettverden robotene skal trenes opp i. Jeg anbefaler at du benytter standardverdenen til å begynne med, og heller eksperimenterer med andre verdener senere (en gang du har veldig god tid).

  • ----------


    Mer skolearbeid       Tilbake til Mitt Arnested

    ----------