Opgave #304
Forfatter:IOAI 2026 Organizing Team
Sværhedsgrad
Din bedste score
N/A
I træner en leveringsrobot på et bykort, der består af 8 × 8 felter. I hver episode starter robotten på et frit felt, når depotet, hvor pakken befinder sig, samler den op, bevæger sig til et andet depot — destinationen — og leverer den. Hvert kort indeholder seks depoter og otte blokerede felter.
Målet er at lære robottens adfærd ud fra et bevidst lille antal ekspertdemonstrationer. Dette er et problem inden for adfærdskloning: I træner en model på eksempler med observation/handling og kører den derefter trin for trin i nye episoder.
Depoterne er indekseret med 0..5 og mærket med A..F. En episode afsluttes med succes, når robotten udfører en gyldig dropoff-handling ved destinationen, mens den bærer pakken. Der er højst tilladt 120 actions.
| ID | Handling |
|---|---|
| 0 | syd |
| 1 | nord |
| 2 | øst |
| 3 | vest |
| 4 | saml pakken op (pickup) |
| 5 | lever pakken (dropoff) |
En bevægelse ind i en væg eller uden for kortet ændrer ikke robottens position, men bruger ét trin. pickup lykkes kun ved pakkens depot, når robotten ikke allerede bærer pakken. dropoff lykkes kun ved destinationen, når robotten bærer pakken. En ugyldig pickup eller dropoff ændrer ikke state og bruger ét trin.
Hver træningsobservation indeholder:
grid: en float32-tensor med formen (6, 8, 8);vector: 13 normaliserede numeriske værdier;action_mask: seks booleske værdier, der angiver de gyldige actions;state: (row, column, package_field, destination).Kanalerne i grid-tensoren repræsenterer:
vector indeholder i rækkefølge: robottens normaliserede række og kolonne, pakkefeltet, destinationen, bæreindikatoren, rækken og kolonnen for det aktuelle mål, forskellene i forhold til målet efterfulgt af fire indikatorer for blokeret bevægelse i rækkefølgen syd, nord, øst, vest.
Det offentlige datasæt indeholder:
Platformspakken bruger JSON og sikre NumPy-arrays i stedet for Python-picklefiler. Se starter_kit.py for de nøjagtige navne og indlæsningskoden. Indlæs NumPy-filer med allow_pickle=False.
Hver layout_id deles af fire episoder. Den unikke nøgle er altid:
(layout_id, episode_seed)Træn en deterministisk model, der forudsiger den næste handling ud fra den aktuelle observation. Kør modellen over hele episoder, og generér én handlingssekvens for hvert testscenarie.
I må bruge de leverede demonstrationer til træning. I må ikke skaffe ekspertetiketter til validerings- eller testsættene, og I må heller ikke generere yderligere ekspertdemonstrationer gennem søgning, planlægning eller en anden ekspertmodel. Regelbaserede eller udtrykkeligt hårdkodede løsninger kan blive gennemgået af Den Videnskabelige Komité. Arrangørerne kan anmode om den notebook eller kildekode, der blev brugt til at generere indsendelsen.
Indsend et ZIP-arkiv med navnet predictions.zip, som indeholder præcis én fil i roden: predictions.json.
Filen skal indeholde et JSON-array med præcis 1,600 objekter, ét for hver testepisode:
[ {"layout_id":"test_0000","episode_seed":300000,"actions":[1,1,2,4,0,5]}]Krav:
(layout_id, episode_seed), ikke efter rækkefølgen af rækker;actions skal være en JSON-liste af heltal — ikke booleske værdier — mellem 0 og 5;Ugyldige arkiver eller ufuldstændige indsendelser afvises.
Metrikken er episodernes succesrate:
SR = successful deliveries / evaluated episodesscore = 100 × SRDer gives ingen delpoint for at nå pakken, komme tættere på målet eller bruge færre trin.
Til platformens rangliste opdeles testkortene deterministisk:
Under konkurrencen vises delscoren, mens den endelige rangliste anvender hele sættet. Tilhørsforholdet til de to delmængder er ikke inkluderet i de offentlige data. Det gennemsnitlige antal trin og ugyldige pickup-/dropoff-forsøg kan fremgå af evaluatorens logfiler, men de påvirker ikke scoren.
Tilpasset fra „Akademiet for robotlevering: forberedelsesprogram“ (IOAI 2026, Home Task 2). Den sikre datarepræsentation, valideringsreglerne, ranglisteopdelingen og evaluatoren er tilpasninger til MLCompete-platformen.