Oppgave #304
Forfatter:IOAI 2026 Organizing Team
Vanskelighetsgrad
Din beste poengsum
N/A
Dere trener en leveringsrobot på et bykart som består av 8 × 8 celler. I hver episode starter roboten i en ledig celle, når depotet der pakken befinner seg, plukker den opp, beveger seg til et annet depot — målet — og leverer den. Hvert kart inneholder seks depoter og åtte blokkerte celler.
Målet er å lære robotens atferd fra et bevisst lite antall ekspertdemonstrasjoner. Dette er et problem innen atferdskloning: Dere trener en modell på observasjons-/handlingseksempler og kjører den deretter trinn for trinn i nye episoder.
Depotene er indeksert med 0..5 og merket med A..F. En episode avsluttes vellykket når roboten utfører en gyldig dropoff-handling ved målet mens den bærer pakken. Det er tillatt med maksimalt 120 actions.
| ID | Handling |
|---|---|
| 0 | sør |
| 1 | nord |
| 2 | øst |
| 3 | vest |
| 4 | plukk opp pakken (pickup) |
| 5 | lever pakken (dropoff) |
En bevegelse inn i en vegg eller utenfor kartet endrer ikke robotens posisjon, men bruker ett trinn. pickup lykkes bare ved pakkedepotet når roboten ikke allerede bærer pakken. dropoff lykkes bare ved målet når roboten bærer pakken. En ugyldig pickup eller dropoff endrer ikke state og bruker ett trinn.
Hver treningsobservasjon inneholder:
grid: en float32-tensor med formen (6, 8, 8);vector: 13 normaliserte numeriske verdier;action_mask: seks boolske verdier som angir gyldige actions;state: (row, column, package_field, destination).Kanalene i grid-tensoren representerer:
vector inneholder, i rekkefølge: robotens normaliserte rad og kolonne, pakkefeltet, målet, bæreindikatoren, raden og kolonnen til det gjeldende målet, forskjellene i forhold til målet, etterfulgt av fire indikatorer for blokkert bevegelse i rekkefølgen sør, nord, øst, vest.
Det offentlige datasettet inneholder:
Plattformpakken bruker JSON og sikre NumPy-arrayer i stedet for Python-picklefiler. Se starter_kit.py for de nøyaktige navnene og innlastingskoden. Last inn NumPy-filer med allow_pickle=False.
Hver layout_id deles av fire episoder. Den unike nøkkelen er alltid:
(layout_id, episode_seed)Tren en deterministisk modell som forutsier neste handling fra den gjeldende observasjonen. Kjør modellen gjennom hele episoder, og generer én handlingssekvens for hvert testscenario.
Dere kan bruke de oppgitte demonstrasjonene til trening. Dere har ikke lov til å skaffe ekspertetiketter for validerings- eller testsettene, og dere kan heller ikke generere flere ekspertdemonstrasjoner gjennom søk, planlegging eller en annen ekspertmodell. Regelbaserte eller uttrykkelig hardkodede løsninger kan bli gjennomgått av Den Vitenskapelige Komiteen. Arrangørene kan be om notebooken eller kildekoden som ble brukt til å generere innsendelsen.
Send inn et ZIP-arkiv med navnet predictions.zip, som inneholder nøyaktig én fil i roten: predictions.json.
Filen må inneholde en JSON-array med nøyaktig 1,600 objekter, ett for hver testepisode:
[ {"layout_id":"test_0000","episode_seed":300000,"actions":[1,1,2,4,0,5]}]Krav:
(layout_id, episode_seed), ikke etter radrekkefølge;actions må være en JSON-liste med heltall — ikke boolske verdier — mellom 0 og 5;Ugyldige arkiver eller ufullstendige innsendelser blir avvist.
Metrikken er suksessraten for episoder:
SR = successful deliveries / evaluated episodesscore = 100 × SRDet gis ingen delpoeng for å nå pakken, komme nærmere målet eller bruke færre trinn.
For plattformens resultatliste deles testkartene deterministisk:
Under konkurransen vises delpoengsummen, mens den endelige resultatlisten bruker hele settet. Tilhørighet til de to delmengdene er ikke inkludert i de offentlige dataene. Gjennomsnittlig antall trinn og ugyldige pickup-/dropoff-forsøk kan vises i evaluatorloggene, men de påvirker ikke poengsummen.
Tilpasset fra «Akademiet for robotlevering: forberedelsesprogram» (IOAI 2026, Home Task 2). Den sikre datarepresentasjonen, valideringsreglene, oppdelingen av resultatlisten og evaluatoren er tilpasninger for MLCompete-plattformen.