Göm menyn

TDDD92 AI-projekt

Slutrapport


Detta gäller 2018. Vi kommer att uppdatera instruktionerna men de stora dragen kommer att vara enligt det som redan står här.

Detta är ett förtydligande av instruktionerna för slutrapporten i TDDD92. Ni får gärna ställa frågor under rapportskrivandet om något är oklart.

Slutrapporten ska skrivas gruppvis och ska bestå av följande delar:

  • En inledande beskrivning av arbetet på gruppnivå
  • En individuell beskrivning av arbetet för varje gruppmedlem

Precis som i den individuella rapporten förväntar vi oss inte nödvändigtvis en traditionell vetenskaplig rapport med mål, syfte, problemställning, metod med mera. Man behöver inte heller beskriva allmänna egenskaper hos StarCraft, eller det allmänna syftet med grupparbetet i TDDD92, då detta kan antas vara känt av läsaren. (Det går så klart bra att beskriva specifika delar av StarCraft som man vill koppla sina resonemang till!)

I gruppdelen av rapporten förväntar vi oss följande information:

  • (Kurskod, årtal, gruppmedlemmar med namn och LiU-ID)
  • En beskrivning av det mål gruppen har satt upp.  Vi förutsätter att läsaren redan känner till det generella målet med kursen! Det vi vill veta är: Vad har gruppen valt att fokusera på av alla de möjligheter som finns inom kursen (hur har man profilerat sin AI), vad har man valt att hoppa över och inte fokusera på, och varför har man gjort dessa val?
  • En mycket kortfattad punktlista på de AI-tekniker ni har valt att implementera. Detta kan vara på formen “Applicerat FOO-learning tillsammans med XYZ-search för att bestämma var och hur ABC ska utföras”. Var och en får mer utrymme att beskriva detta i den individuella delen, så håll det översiktligt.
  • En konceptuell beskrivning av den övergripande strukturen hos agenten som har utvecklats. Detta handlar alltså inte alls om kod, funktioner, klasser och källkodsfiler, utan vi vill förstå på en hög nivå hur allt är tänkt att fungera, hur de olika funktionaliteterna (AI och andra) är integrerade, och hur agenten egentligen tar sina beslut. Några exempel på frågor som kan besvaras av rapporten: Hur “drivs” agerandet framåt så att agenten faktiskt gör något? Hur och av vem används / anropas de olika individuella funktionaliteterna? Hur är alla funktionaliteter “kopplade” till varandra, hur interagerar de? Var tas olika beslut? Hur och var skapas, hanteras och används olika sorters information? Diagram är mycket välkomna som en del i förklaringarna. När man har läst beskrivningen ska man förstå, på en abstrakt nivå, att “det är SÅ agenten jobbar när den gör det jag ser i demonstrationen”. En direkt koppling till olika funktioner, klasser och filer är inte nödvändig.
  • Slutsatser kring resultatet.  Detta gäller alltså helheten, medan de enskilda teknikerna snarare kan utvärderas i de individuella delarna av rapporten. Exempel på frågor att dra slutsatser om: Vad har vår agent för styrkor och svagheter? Varifrån kommer dessa styrkor och svagheter? Vad hade kunnat krävas för att slå den inbyggda motståndaren på nästa svårighetsnivå? Hur gick det i turneringen och varför (styrkor och svagheter)? Vad hade gruppen gjort annorlunda om man påbörjade projektet idag med de kunskaper man har fått? Tänk på att motivera slutsatserna.

För den individuella delen av rapporten har vi ett riktmärke på 1-2 sidor givet att man använder 2 kolumner. Här vill vi inte se information om hur de allmänna teknikerna fungerar, såsom Q-Learning eller Bayesian Networks, eftersom detta redan har diskuterats i den första rapporten. Istället ligger fokus på följande information:

  • (Namn, LiU-ID)
  • Vilken eller vilka AI-tekniker har du implementerat och applicerat (teknikens namn + referens(er))? Vilket StarCraft-relaterat problem ska detta lösa? Var kortfattad; påminn läsaren om vad du skulle göra och varför, men referera till den tidigare individuella rapporten för detaljer. Ett undantag är så klart om du har gjort större ändringar i din inriktning jämfört med den ursprungliga rapporten. I så fall behöver du ge mer information här, och detta avsnitt räknas då inte in i riktmärket på 1-2 sidor.
  • Hur har du applicerat dessa tekniker i StarCraft?  Här kan du t.ex. beskriva hur du har modellerat problemet för att den valda tekniken ska lösa relevanta problem i StarCraft-världen (till exempel val eller utveckling av features, variabler, nätstrukturer för BN, tillståndsrymder, rewardfunktioner, heuristiker, fältstyrkor, med mera). Om du har undersökt andra alternativ för hur du kunde ha applicerat algoritmen bör det också framgå, speciellt om du faktiskt har utvärderat de olika alternativen. Om du har fått delar av modelleringen från en StarCraft-artikel, istället för att välja och utveckla den själv utifrån en generell funktionalitet (såsom A* som är mycket generell), ska detta framgå tydligt.
  • En beskrivning av koppling till andra tekniker i implementationen, eller eventuellt ett uttalande att den teknik du har gjort är helt fristående. Är din implementationen (alternativt dess in/utdata) mer eller mindre tätt kopplad till andra tekniker eller andra gruppmedlemmars arbete, och i så fall hur? En övergripande beskrivning finns i gruppdelen, men här kan man ge något fler detaljer, främst för att se hur detta har påverkat arbetet (ytterligare krav som ställs för att integrationen ska fungera, och/eller förenklingar genom att man delar på implementerad funktionalitet).
  • En beskrivning och utvärdering av resultatet.  Detta är en mycket viktig del, som kan handla om jämförelser mellan olika tekniker eller om resultatet när man applicerade en specifik teknik. Vad blev resultatet när du applicerade din teknik i StarCraft? Blev det bättre eller sämre när din funktionalitet aktiverades? Hur mycket, på vilket sätt, varför? Vissa kanske också har delresultat att rapportera: Gör man på sätt A blir resultatet X, gör man på sätt B blir resultatet Y. Varför blev det så?
  • Individuella slutsatser kring utvärderingen:  Hur svårt var det att applicera en viss teknik? Gick det som du förväntade dig?
  • Slutligen, en kort beskrivning / sammanfattning av vad du har gjort i den gemensamma implementationen och ungefär hur stor del av tiden du har lagt på den aspekten av agenten.

Tyngdpunkten ska vara på det du själv har gjort inom dessa områden (modellering, utvärdering, eventuell algoritmutveckling, med mera). Ju mer du har fått från en artikel, desto större tyngd behöver läggas på andra områden. Har man till exempel fått både algoritm och modellering från en StarCraft-specifik artikel behöver man lägga extra mycket arbete på utvärderingen.

Deadline för rapporten är söndag 190120, precis innan vårterminen startar. Vi kommer inte att läsa rapporter förrän då.

Om någon gruppmedlem inte är färdig: Lämna ändå in rapporten i sitt existerande skick och indikera vad som inte är färdigt, så att vi kan examinera resten av gruppen.

Nästa inlämningstillfälle blir i omtentaperioden i april.


Sidansvarig: Jonas Kvarnström
Senast uppdaterad: 2019-11-05