Naloga #304
Avtor:IOAI 2026 Organizing Team
Težavnost
Vaš najboljši rezultat
N/A
Učite dostavnega robota na mestnem zemljevidu, sestavljenem iz 8 × 8 celic. V vsaki epizodi robot začne v prosti celici, doseže skladišče, kjer je paket, ga prevzame, odpotuje do drugega skladišča — cilja — in ga dostavi. Vsak zemljevid vsebuje šest skladišč in osem blokiranih celic.
Cilj je naučiti vedenje robota iz namerno majhnega števila strokovnih demonstracij. To je problem kloniranja vedenja: model naučite na primerih opazovanje/dejanje, nato pa ga korak za korakom izvajate v novih epizodah.
Skladišča so indeksirana z 0..5 in označena z A..F. Epizoda se uspešno konča, ko robot na cilju med prenašanjem paketa izvede veljavno dejanje dropoff. Dovoljenih je največ 120 actions.
| ID | Dejanje |
|---|---|
| 0 | jug |
| 1 | sever |
| 2 | vzhod |
| 3 | zahod |
| 4 | prevzem paketa (pickup) |
| 5 | dostava paketa (dropoff) |
Premik v steno ali zunaj zemljevida ne spremeni položaja robota, vendar porabi en korak. pickup uspe le v skladišču paketa, ko robot paketa še ne prenaša. dropoff uspe le na cilju, ko robot prenaša paket. Neveljaven pickup ali dropoff ne spremeni state in porabi en korak.
Vsako učno opazovanje vsebuje:
grid: tenzor float32 oblike (6, 8, 8);vector: 13 normaliziranih številskih vrednosti;action_mask: šest logičnih vrednosti, ki označujejo veljavne actions;state: (row, column, package_field, destination).Kanali tenzorja grid predstavljajo:
vector po vrsti vsebuje: normalizirano vrstico in stolpec robota, polje paketa, cilj, indikator prenašanja, vrstico in stolpec trenutnega cilja, razlike glede na cilj, nato pa štiri indikatorje blokiranega premikanja v vrstnem redu jug, sever, vzhod, zahod.
Javna podatkovna množica vsebuje:
Paket platforme uporablja JSON in varne matrike NumPy namesto datotek Python pickle. Za natančna imena in kodo za nalaganje glejte starter_kit.py. Datoteke NumPy naložite z allow_pickle=False.
Vsak layout_id si delijo štiri epizode. Enolični ključ je vedno:
(layout_id, episode_seed)Naučite determinističen model, ki iz trenutnega opazovanja napove naslednje dejanje. Zaženite model skozi celotne epizode in ustvarite eno zaporedje dejanj za vsak testni scenarij.
Predložene demonstracije lahko uporabite za učenje. Ne smete pridobivati strokovnih oznak za validacijske ali testne množice niti ustvarjati dodatnih strokovnih demonstracij z iskanjem, načrtovanjem ali drugim strokovnim modelom. Rešitve, ki temeljijo na pravilih ali so izrecno trdo kodirane, lahko pregleda Znanstveni odbor. Organizatorji lahko zahtevajo notebook ali izvorno kodo, uporabljeno za ustvarjanje oddaje.
Oddajte arhiv ZIP z imenom predictions.zip, ki v korenu vsebuje natanko eno datoteko: predictions.json.
Datoteka mora vsebovati polje JSON z natanko 1,600 objekti, po enim za vsako testno epizodo:
[ {"layout_id":"test_0000","episode_seed":300000,"actions":[1,1,2,4,0,5]}]Zahteve:
(layout_id, episode_seed), ne po vrstnem redu vrstic;actions mora biti seznam JSON celih števil — ne logičnih vrednosti — med 0 in 5;Neveljavni arhivi ali nepopolne oddaje so zavrnjeni.
Metrika je stopnja uspešnosti epizod:
SR = successful deliveries / evaluated episodesscore = 100 × SRDelne točke se ne dodelijo za dosego paketa, približanje cilju ali uporabo manjšega števila korakov.
Za lestvico platforme se testni zemljevidi deterministično razdelijo:
Med tekmovanjem je prikazan delni rezultat, končna lestvica pa uporablja celotno množico. Pripadnost obema podmnožicama ni vključena v javne podatke. Povprečno število korakov in neveljavni poskusi pickup/dropoff se lahko pojavijo v dnevnikih ocenjevalnika, vendar ne vplivajo na rezultat.
Prirejeno po „Akademija robotske dostave: pripravljalni program“ (IOAI 2026, Home Task 2). Varna predstavitev podatkov, pravila validacije, razdelitev lestvice in ocenjevalnik so prilagoditve za platformo MLCompete.