Navigation

1170days since
inlämning

Recent site activity

Delmål

Måndag 2 mars 2009

Att göra:

  • Val av plattform
  • Övergripande design av implementering
  • Litteratursökning, undersökning av tidigare studier (Karl Sims och de där andra snubbarna)
  • Installation konfiguration av plattform

Gjort:

  • Plattform: Vi har valt att göra implementationen i Java, med biblioteken Phys2D http://www.cokeandcode.com/phys2d/ och Processing http://processing.org/.
  • Design: Efter val av plattform har vi satt oss ner och laborerat med de olika leder och krafter som finns tillgängliga i Phys2D-biblioteket. Vi har ännu inte kommit så långt att vi vågar oss på att skapa en övergripande design, då vi fortfarande inte riktigt har fått en bra översikt på hur vi på ett vettigt sätt kan återskapa en "naturliknande" led.
  • Litteratur: Karl Sims http://www.karlsims.com/papers/siggraph94.pdf
    • Utgår från sensor- och effektorsystem genom ett neuralt nät för att generera rörelse
    • Fokuserar både på formen och rörelsen med GA
  • Litteratur: Nicolas Lassabe http://www.springerlink.com/content/r335278793587407/
    • Introducerar ett eco-system med fokus på hur individer interagerar med varandra (växt, insekt, varelse). Använder morfologi baserad på Karl Sims grafer.
    • Sensor- och effektorsystem.
  • Litteratur: Hugo de Garis (http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.54.9276)
    • Rör en ödla Lizzy som med fyra ben och två antenner rör sig i en 3D-miljö.
    • Förklarar hur Garis med hjälp av binära strängar kan få ut ett rörelsemönster för en led (från -1 till +1)
    • Olika "neuroner" i genomet kodar för hur olika leder skall röra sig.
    • Ödlan rör sig i en fix cykel. Rörelsemönstret är genetiskt framtaget, men vänster framben rör sig alltid först.
  • Fått igång Processing med phys2d

Reflektioner och frågor:

Försök i artiklarna bygger på sensor-effektor system. Vi har hittills utgått från att vi ska generera en rörelsesekvens som loopas. Vad blir skillnaden? Vad är bättre? Vad är sämre? Funderationer kring effektiviteten av en loopsekvens har uppstått. Den första rörelsen från Initialtillståndet kan skillja sig från den kontinuerliga rörelsen, vad har det för konsekvenser?

De initiala försöken på att bygga djurkroppen har visat att det inte är helt trivialt hur kroppen ska byggas och vilka leder som ska användas. Fortfarande har vi inte helt klart för oss hur genotyp och fenotyp ska kodas.

Måndag 9 mars 2009

Att göra:

  • Läsa artiklar
  • Design av implementation
  • Beslut om inriktning av projekt

Gjort:

  • Litteratur: Fler artiklar har lästs av Hugo de Garis.
  • Rapport: Börjat skriva i rapport
    • Beskrivit Karl Sims arbete i litteraturstudien
    • Börjat skissa på metodbeskrivning
  • Implementation: Systemdesign
    • Main - Systemet styrs av denna klass. Anropar GA för att få nya generationer av populationen och genomför simuleringar
    • GA - Klassen hanterar allt som rör genetisk algoritmen
    • Creature - Representerar varelsen i systemet. Innehåller en hjärna/Brain
    • Brain - Det neurala nätverket som genererar output till varelsens effektorer
  • Implementation: Beslutat att involvera ett neuralt nätverk för att simulera en sensor-effektorsystem
    • Vi har valt att implementera en typ av Hopfield nät http://en.wikipedia.org/wiki/Hopfield_net där varje nod har anslutningar till alla andra noder och till sig själv. Detta nät kommer att bli en så kallad "black box" som vars funktionalitet vi inte kommer att ha någon direkt koll över. Eftersom systemet behåller information om föregående tillstånd kommer ett simulerat minne att finnas i systemet.
    • Nätets funktionalitet beror i största del av dess vikter, dessa vikter utgörs av en matris som även kommer att representera varelsens kromosomer som vi utvecklar genom genetiska algoritmer. Antalet noder nätet ska bestå av är inte helt bestämt.
  • Implementation: Genetiska Algoritmer
    • Vi har valt att implementera en enkel genetisk algoritm som använder sig av tournament selection. Crossover-rate används för att bestämma hur stor andel som ska bestå av kloning. Mutation-rate används för att bestämma hur ofta vikter ska muteras.
    • Utifrån en population med individer med redan untvärderad fitness ska en ny population skapas.

Reflektioner och frågor

Varelsens kropp kommer förmodligen bli en mask istället för att minska komplexiteten. Beroende på tidsåtgång för implementering kan det lätt skapas mer komplexa varelser i och med den objektorienterade arkitekturen av systemet.

Måndag 16 mars 2009

Att göra:

  • Neuralt nätverk ska vara klart
  • Input och Output varelsens sensorer och effektorer behöver och genererar ska vara bestämt
  • Första tester på hela systemet bör vara inledda
  • "Det här är en bajsmacka vi har brett själva", Andreas
Gjort:
  • Neuralt nät klart
  • Input och Output bestämt
  • Hela systemet fungerar i stort
  • Bajsmackan konsumerad
  • Systemet kan i stort konfigureras från kommandoraden
  • Simuleringar kan spelas in

Fredag 20 mars 2009

Att göra: 

  • Göra testkörningar
  • Skriva klart rapporten
  • Förbereda presentation