Aufgabe #304
Autor:IOAI 2026 Organizing Team
Schwierigkeit
Dein bestes Ergebnis
N/V
Sie trainieren einen Lieferroboter auf einer städtischen Karte, die aus 8 × 8 Zellen besteht. In jeder Episode startet der Roboter auf einer freien Zelle, erreicht das Depot, in dem sich das Paket befindet, nimmt es auf, fährt zu einem anderen Depot – dem Ziel – und liefert es dort ab. Jede Karte enthält sechs Depots und acht blockierte Zellen.
Ziel ist es, das Verhalten des Roboters aus einer absichtlich kleinen Anzahl von Expertendemonstrationen zu erlernen. Dies ist eine Aufgabe des Verhaltensklonens: Sie trainieren ein Modell anhand von Beobachtungs-/Aktionsbeispielen und führen es anschließend Schritt für Schritt in neuen Episoden aus.
Die Depots sind mit 0..5 indiziert und mit A..F beschriftet. Eine Episode endet erfolgreich, wenn der Roboter am Ziel eine gültige Aktion dropoff ausführt, während er das Paket trägt. Es sind höchstens 120 actions erlaubt.
| ID | Aktion |
|---|---|
| 0 | Süden |
| 1 | Norden |
| 2 | Osten |
| 3 | Westen |
| 4 | Paket aufnehmen (pickup) |
| 5 | Paket abliefern (dropoff) |
Eine Bewegung in eine Wand oder aus der Karte hinaus ändert die Position des Roboters nicht, verbraucht aber einen Schritt. pickup ist nur am Paketdepot erfolgreich, wenn der Roboter das Paket noch nicht trägt. dropoff ist nur am Ziel erfolgreich, wenn der Roboter das Paket trägt. Ein ungültiges pickup oder dropoff ändert den state nicht und verbraucht einen Schritt.
Jede Trainingsbeobachtung enthält:
grid: einen float32-Tensor der Form (6, 8, 8);vector: 13 normalisierte numerische Werte;action_mask: sechs boolesche Werte, welche die gültigen actions angeben;state: (row, column, package_field, destination).Die Kanäle des Tensors grid stellen Folgendes dar:
Der vector enthält in dieser Reihenfolge: die normalisierte Zeile und Spalte des Roboters, das Paketfeld, das Ziel, den Trageindikator, die Zeile und Spalte des aktuellen Ziels, die Differenzen relativ zum Ziel und anschließend vier Indikatoren für blockierte Bewegungen in der Reihenfolge Süden, Norden, Osten, Westen.
Der öffentliche Datensatz enthält:
Das Plattformpaket verwendet JSON und sichere NumPy-Arrays anstelle von Python-Pickle-Dateien. Die genauen Namen und den Ladecode finden Sie in starter_kit.py. Laden Sie NumPy-Dateien mit allow_pickle=False.
Jede layout_id wird von vier Episoden gemeinsam verwendet. Der eindeutige Schlüssel ist immer:
(layout_id, episode_seed)Trainieren Sie ein deterministisches Modell, das aus der aktuellen Beobachtung die nächste Aktion vorhersagt. Führen Sie das Modell über vollständige Episoden aus und erzeugen Sie für jedes Testszenario eine Aktionssequenz.
Sie dürfen die bereitgestellten Demonstrationen zum Training verwenden. Sie dürfen weder Expertenlabels für die Validierungs- oder Testdatensätze beziehen noch zusätzliche Expertendemonstrationen durch Suche, Planung oder ein anderes Expertenmodell erzeugen. Regelbasierte oder ausdrücklich fest codierte Lösungen können vom Wissenschaftlichen Komitee überprüft werden. Die Organisatoren können das Notebook oder den Quellcode anfordern, mit dem die Einreichung erzeugt wurde.
Reichen Sie ein ZIP-Archiv namens predictions.zip ein, das in seinem Stammverzeichnis genau eine Datei enthält: predictions.json.
Die Datei muss ein JSON-Array mit genau 1,600 Objekten enthalten, eines für jede Testepisode:
[ {"layout_id":"test_0000","episode_seed":300000,"actions":[1,1,2,4,0,5]}]Anforderungen:
(layout_id, episode_seed) und nicht anhand der Zeilenreihenfolge zugeordnet;actions muss eine JSON-Liste von Ganzzahlen – keine booleschen Werte – zwischen 0 und 5 sein;Ungültige Archive oder unvollständige Einreichungen werden abgelehnt.
Die Metrik ist die Erfolgsrate der Episoden:
SR = successful deliveries / evaluated episodesscore = 100 × SRFür das Erreichen des Pakets, die Annäherung an das Ziel oder die Verwendung weniger Schritte wird keine Teilpunktzahl vergeben.
Für die Bestenliste der Plattform werden die Testkarten deterministisch aufgeteilt:
Während des Wettbewerbs wird die Teilpunktzahl angezeigt, während für die endgültige Bestenliste der vollständige Satz verwendet wird. Die Zugehörigkeit zu den beiden Teilmengen ist nicht in den öffentlichen Daten enthalten. Die durchschnittliche Schrittzahl und ungültige pickup-/dropoff-Versuche können in den Auswertungsprotokollen erscheinen, wirken sich jedoch nicht auf die Punktzahl aus.
Adaptiert nach „Akademie für Roboterlieferungen: Vorbereitungsprogramm“ (IOAI 2026, Home Task 2). Die sichere Datendarstellung, die Validierungsregeln, die Aufteilung der Bestenliste und die Auswertung sind Anpassungen für die Plattform MLCompete.