Ganske meta om NM i AI.

Min lille flørt med øvingsoppgaven til NM i AI har kommet til en uromantisk slutt.

Ganske meta om NM i AI.
Med en veldig enkel visuell fremstilling av de ulike forsøkene ble det lettere å tenke litt selv også om problemet.

Prokrastineringen min er over. For jeg har automatisert den. Det er ganske meta, eller.

For et par dager siden skrev jeg om Grocery Bot på LinkedIn, og hvordan jeg fant stor glede i å angripe oppgaven ved hjelp av rimelig søkte analogier og kreativ bruk av corporate sjargong. Det er en øvingsoppgave i regi av NM i AI, der en flokk roboter skal plukke varer i en butikk og levere dem til lastebiler som kommer og går. Da sto jeg på 1810 poeng og plass 108 på øvingstavla. I dag står jeg på 2025 og plass 59. Fortsatt er det bare rolig jogg, jeg har ikke svettet skikkelig ennå.

Det som hjalp, var ganske kjedelig. Fem av tjue roboter hadde stått i et hjørne hele spillet, fordi de var for langt unna til at noen ga dem en jobb. Planleggeren kunne bare flytte én vare om gangen mellom robotene, og satt fast. Og hver robot fant sin egen vei som om den var alene i butikken.

Det største grepet var å skrive en kopi av spillet i programmeringsspråket Rust. Den gir nøyaktig samme resultat som oppgavens server, bare 15 ganger raskere enn før. Det betyr at en ny idé kan prøves på 300 spill mens jeg jobber med noe annet, og at jeg fort ser om den virker eller bare var flaks.

Resten går nå av seg selv. Hver natt kl. 00:02 spiller boten sine 50 forsøk, og velger selv banen der en ny rekord er mest sannsynlig. Rekorden er det beste spillet man har hatt, så bare det å spille mange nok ganger er verdt anslagsvis 40 til 50 poeng ut november. Da havner jeg rundt 2070 og omtrent plass 45.

For å komme inn blant de 30 beste trengs det altså nye ideer. Robotene planlegger omtrent like godt som de beste lagene, men de står i veien for hverandre. Hvis de kunne gå rett gjennom hverandre, ville jeg tatt nesten hele avstanden opp til topp 10.

Dyp læring på grafikkort og andre ting som spiser hele PC-en gidder jeg ikke for en øvingsoppgave. Jeg er ute etter enkle regler som kan testes.

Så derfor spør jeg isteden etter ideer fra folk som har jobbet på lager, kjørt truck eller stått i kø på Ikea på en lørdag, for dette er erfaringer jeg mangler.

Når to roboter møtes i en gang som bare har plass til én, hvem bør vike?

Når en robot er ferdig ved lastebilen og en annen står og venter i den eneste utgangen, hvordan unngår man at de stenger hverandre inne?

Og hvor bør de robotene som ikke har noe å gjøre, stå og vente?

Én setning holder. Det koster meg ingenting å sjekke den ut av saken, og jeg forteller gjerne hvordan det gikk.

Det eneste jeg vet ganske sikkert så langt, er at regler som sender noen en omvei, taper.

Som hjelp til å kunne tenke litt selv ba jeg AI om å visualisere nåværende rekord-runs for meg på denne måten: