Ukesrapport 13/11

Publisert november 13, 2009 av christophcarlson
Kategorier: Uncategorized

Hva har blitt gjort denne uken?

Regler

Vi har lagt til en del nye regler for å få taktikkutvelgesesprosessen til å bli mer effektiv. Tidligere har reglene stort sett fjernet taktikker med så dårlige trekk at de faktisk ikke er gjennomførbare. Nå har vi begynt å lage regler for trekk som bare er å anse som dumme/meningsløse, men ikke nødvendigvis umulige å gjennomføre.

isRetreating()

Denne metoden sjekker om en fiende går bort ifra fienden. Det finnes svært få gode grunner til å trekke seg lenger inn i sitt eget herskedømme i dette spillet. Derfor har vi valgt å utelukke alle taktikker hvor en unit beveger seg fra en provins som er f.eks 2 trekk ifra nærmeste fiende til en provins som er 3 trekk ifra nærmeste fiende. Dette ble implementert ved at man for hver move-operasjon foretar et bredde-først-søk fra provinsen som uniten står på og et bredde-først-søk fra provinsen som uniten skal bevege seg til. For at man kun skal kjøre bredde-først-søket én gang per provins blir de lagret i et HashMap. Den sjekker altså først om provinsen finnes i HashMapet, og hvis den ikke finnes der foretar den bredde-først-søket.

UseLessSupportRule

Denne metoden laget vi for å hindre at en unit støttet en unit hvis den ikke var i nærheten av (adjacent) til minst 2 units, mtp at den da ikke er truet.

StupidHoldsRule

En metode som ble laget for å forhindre at units holder posisjonen sin hvis de er lengre unna enn 2 trekk ifra en fiende. Det finnes anledninger hvor dette kan være lurt. Derfor vi lagt inn en liste med unntak, kalt chokeHoldPoints.

Random-pruning

Til tross for at disse nye reglene er lagt til er AIen fortsatt ikke kjapp nok. Vi har eksperimentert litt med å beskjære litt tilfeldige taktikker. For at ikke operasjoner skal bli tapt for alltid har vi valgt å beskjære flere og flere grener, jo lengre ned i treet vi kommer. Hvis man har 10 units, vil treet bli 10 grener dypt. På 5. nivå vil taktikken ha 40% sjanse for å overleve, på 6. nivået 50% sjanse osv.

Alt i en alt har vi hatt en grei fremgang denne uken. Jeg gir oss terningkast 4+.

Treghet og ulumske aktiviteter

Publisert november 5, 2009 av christophcarlson
Kategorier: Uncategorized

Noen ganger har createTacticTree endt opp med 0 taktikker. Det vil si at 0 taktikker har kommet gjennom nåløyet. Vi mistenkte at dette skyldtes en bug med reglene våre. Så da gikk jeg og Mathias gjennom et gitt scenario, og skrev ut hver taktikk som brøt en regel og hvilken regel den brøt. Listene så slik ut:

F mid (supp) eng (115) - F bul(sc) -> con(656) - A spa -> wal(99) - A mar -> bur(128) - A hol (supp) bel -> ruh(571) - A bel -> ruh(199) - broke TreeUselessSupportRule
F mid (supp) eng (115) - F bul(sc) -> con(656) - A spa -> wal(99) - A mar -> bur(128) - A hol (supp) bel -> ruh(571) - A bel -> ruh(199) - broke TreeUselessSupportRule
F mid (supp) spa (115) - F bul(sc) -> con(656) - A spa -> wal(99) - A mar -> bur(128) - A hol (supp) bel -> ruh(571) - A bel -> ruh(199) - broke TreeIllegalSupportRule

etc..

Etter å ha gått gjennom en haug med scenarioer har vi kun funnet én bug: Det finnes ingen regel som sjekker at alle convoiene convoier i convoi-kjeder hvor mer enn 1 flåte må convoie. Vi fant derimot ut noe urovekkende. Det er mange potensielle moves som er borte per unit. En metode kalt “removeWorthlessOperations()” fjerner alle operasjoner med dårlig potensiell verdi, noe som gjør at vi stort sett sitter igjen med mange convoier og supporter, men få moves. Dette gjør at det tidvis oppstår situasjoner hvor det faktisk ikke finnes noen taktikker som består alle reglene. Dette må utbedres.

Hva har blitt gjort til nå?

Publisert november 3, 2009 av christophcarlson
Kategorier: Uncategorized

Tags: ,

Skriving/tenking/annet

  • Laget skisse på 20 sider i INFOMEVI300
  • Laget en månedsplan for året (som ikke akkurat har blitt fulgt til punkt og prikke)
  • Begynt å (b)logge
  • Veiledningsmøter med Weiqin
  • Bestilt boken “The cognitive structure of Emotions”, hvor OCC-modellen beskrives i detalj
  • Lest en del artikler om tidligere studier av agenter med følelser

Koding

  • Jeg og Mathias er godt i gang med utbytting av trerepresentasjon av taktikker istedenfor å bruke enorme ressurser på å klone taktikker.
  • Aleksander holder på å hjelpe oss med å få agenten til å kjøre på egen tråd istedenfor egen prossess.
  • Begynt på et eget loggervindu som skal holde rede på følelsene under testing og debugging
  • Semesteroppgaven for forrige semester som fungerer som en fin prototype på den endelige versjonen

Til slutt en liten blomst fra lesesalen for å minne meg selv på at livet er en dans på roser.
022

Hello world!

Publisert november 3, 2009 av christophcarlson
Kategorier: Uncategorized

Dette kommer til å fungere som arbeidsloggen min for masteroppgaven i Informasjonsvitenskap 2009/2010. Her kommer jeg til å legge inn progresjonsrapporter hver uke. Dette skal, ifølge min veileder, hjelpe meg å huske ting jeg har gjort når jeg endelig begynner på selve skrivingen av oppgaven. I tillegg vil det kanskje fungere som et spark bak.

En liten introduksjon er kanskje på sin plass. Navnet mitt er Christoph. Jeg er 24 år gammel og holder på med andre året på masterprogrammet i Informasjonsvitenskap ved Universitetet i Bergen. I tillegg til datamaskiner og programmering er jeg også interessert i trening, Mixed Martial Arts, mat(laging) og populærkulturelle fenomener som tv-serier og filmer. Takk for meg. Det var alt jeg hadde.


Follow

Get every new post delivered to your Inbox.