Problème #304
Auteur:IOAI 2026 Organizing Team
Difficulté
Votre meilleur score
N/D
Vous entraînez un robot de livraison sur une carte urbaine composée de 8 × 8 cellules. Dans chaque épisode, le robot part d’une cellule libre, atteint le dépôt où se trouve le colis, le récupère, se rend à un autre dépôt — la destination — et l’y livre. Chaque carte contient six dépôts et huit cellules bloquées.
L’objectif est d’apprendre le comportement du robot à partir d’un nombre volontairement restreint de démonstrations d’expert. Il s’agit d’un problème de clonage comportemental : vous entraînez un modèle sur des exemples observation/action, puis vous l’exécutez pas à pas sur de nouveaux épisodes.
Les dépôts sont indexés de 0..5 et étiquetés de A..F. Un épisode se termine avec succès lorsque le robot exécute une action dropoff valide à la destination tout en transportant le colis. Au plus 120 actions sont autorisées.
| ID | Action |
|---|---|
| 0 | sud |
| 1 | nord |
| 2 | est |
| 3 | ouest |
| 4 | récupérer le colis (pickup) |
| 5 | livrer le colis (dropoff) |
Un déplacement contre un mur ou hors de la carte ne modifie pas la position du robot, mais consomme une étape. pickup ne réussit qu’au dépôt du colis, lorsque le robot ne transporte pas déjà le colis. dropoff ne réussit qu’à la destination, lorsque le robot transporte le colis. Un pickup ou un dropoff invalide ne modifie pas le state et consomme une étape.
Chaque observation d’entraînement contient :
grid : un tenseur float32 de forme (6, 8, 8) ;vector : 13 valeurs numériques normalisées ;action_mask : six valeurs booléennes indiquant les actions valides ;state : (row, column, package_field, destination).Les canaux du tenseur grid représentent :
Le vector contient, dans l’ordre : la ligne et la colonne normalisées du robot, le champ du colis, la destination, l’indicateur de transport, la ligne et la colonne de la cible actuelle, les écarts par rapport à la cible, puis quatre indicateurs de déplacement bloqué dans l’ordre sud, nord, est, ouest.
Le jeu de données public contient :
Le paquet de la plateforme utilise JSON et des tableaux NumPy sûrs plutôt que des fichiers pickle Python. Consultez starter_kit.py pour connaître les noms exacts et le code de chargement. Chargez les fichiers NumPy avec allow_pickle=False.
Chaque layout_id est partagé par quatre épisodes. La clé unique est toujours :
(layout_id, episode_seed)Entraînez un modèle déterministe qui prédit la prochaine action à partir de l’observation actuelle. Exécutez le modèle sur des épisodes complets et générez une séquence d’actions pour chaque scénario de test.
Vous pouvez utiliser les démonstrations fournies pour l’entraînement. Vous n’êtes pas autorisés à obtenir des étiquettes d’expert pour les jeux de validation ou de test, ni à générer des démonstrations d’expert supplémentaires au moyen d’une recherche, d’une planification ou d’un autre modèle expert. Les solutions fondées sur des règles ou explicitement codées en dur peuvent être examinées par le Comité scientifique. Les organisateurs peuvent demander le notebook ou le code source utilisé pour générer la soumission.
Soumettez une archive ZIP nommée predictions.zip, contenant exactement un fichier à sa racine : predictions.json.
Le fichier doit contenir un tableau JSON comprenant exactement 1,600 objets, un pour chaque épisode de test :
[ {"layout_id":"test_0000","episode_seed":300000,"actions":[1,1,2,4,0,5]}]Exigences :
(layout_id, episode_seed), et non selon l’ordre des lignes ;actions doit être une liste JSON d’entiers — et non de valeurs booléennes — compris entre 0 et 5 ;Les archives invalides ou les soumissions incomplètes sont rejetées.
La métrique est le taux de réussite des épisodes :
SR = successful deliveries / evaluated episodesscore = 100 × SRAucun point partiel n’est accordé pour avoir atteint le colis, s’être rapproché de la cible ou avoir utilisé moins d’étapes.
Pour le classement de la plateforme, les cartes de test sont réparties de manière déterministe :
Pendant la compétition, le score partiel est affiché, tandis que le classement final utilise l’ensemble complet. L’appartenance aux deux sous-ensembles n’est pas incluse dans les données publiques. Le nombre moyen d’étapes et les tentatives invalides de pickup/dropoff peuvent apparaître dans les journaux de l’évaluateur, mais n’affectent pas le score.
Adapté de « Académie de livraison robotisée : programme préparatoire » (IOAI 2026, Home Task 2). La représentation sûre des données, les règles de validation, la répartition du classement et l’évaluateur sont des adaptations destinées à la plateforme MLCompete.