Problema #304
Autor:IOAI 2026 Organizing Team
Dificultad
Tu mejor puntuación
N/D
Están entrenando un robot de reparto en un mapa urbano compuesto por 8 × 8 celdas. En cada episodio, el robot parte de una celda libre, llega al depósito donde se encuentra el paquete, lo recoge, se desplaza a otro depósito —el destino— y lo entrega. Cada mapa contiene seis depósitos y ocho celdas bloqueadas.
El objetivo es aprender el comportamiento del robot a partir de un número deliberadamente pequeño de demostraciones de expertos. Este es un problema de clonación de comportamiento: entrenan un modelo con ejemplos de observación/acción y luego lo ejecutan paso a paso en episodios nuevos.
Los depósitos están indexados con 0..5 y etiquetados con A..F. Un episodio termina correctamente cuando el robot ejecuta una acción dropoff válida en el destino mientras transporta el paquete. Se permiten como máximo 120 actions.
| ID | Acción |
|---|---|
| 0 | sur |
| 1 | norte |
| 2 | este |
| 3 | oeste |
| 4 | recoger el paquete (pickup) |
| 5 | entregar el paquete (dropoff) |
Moverse contra una pared o fuera del mapa no cambia la posición del robot, pero consume un paso. pickup solo tiene éxito en el depósito del paquete cuando el robot aún no lo está transportando. dropoff solo tiene éxito en el destino cuando el robot está transportando el paquete. Un pickup o dropoff no válido no cambia el state y consume un paso.
Cada observación de entrenamiento contiene:
grid: un tensor float32 con forma (6, 8, 8);vector: 13 valores numéricos normalizados;action_mask: seis valores booleanos que indican las actions válidas;state: (row, column, package_field, destination).Los canales del tensor grid representan:
El vector contiene, en este orden: la fila y la columna normalizadas del robot, el campo del paquete, el destino, el indicador de transporte, la fila y la columna del objetivo actual, las diferencias respecto al objetivo y, a continuación, cuatro indicadores de movimiento bloqueado en el orden sur, norte, este, oeste.
El conjunto de datos público contiene:
El paquete de la plataforma utiliza JSON y matrices NumPy seguras en lugar de archivos pickle de Python. Consulten starter_kit.py para conocer los nombres exactos y el código de carga. Carguen los archivos NumPy con allow_pickle=False.
Cada layout_id se comparte entre cuatro episodios. La clave única siempre es:
(layout_id, episode_seed)Entrenen un modelo determinista que prediga la siguiente acción a partir de la observación actual. Ejecuten el modelo a lo largo de episodios completos y generen una secuencia de acciones para cada escenario de prueba.
Pueden utilizar las demostraciones proporcionadas para el entrenamiento. No tienen permitido obtener etiquetas de expertos para los conjuntos de validación o prueba, ni generar demostraciones de expertos adicionales mediante búsqueda, planificación u otro modelo experto. Las soluciones basadas en reglas o explícitamente codificadas de forma rígida pueden ser revisadas por el Comité Científico. Los organizadores pueden solicitar el cuaderno o el código fuente utilizado para generar el envío.
Envíen un archivo ZIP llamado predictions.zip que contenga exactamente un archivo en su raíz: predictions.json.
El archivo debe contener una matriz JSON con exactamente 1,600 objetos, uno por cada episodio de prueba:
[ {"layout_id":"test_0000","episode_seed":300000,"actions":[1,1,2,4,0,5]}]Requisitos:
(layout_id, episode_seed), no por el orden de las filas;actions debe ser una lista JSON de números enteros —no valores booleanos— entre 0 y 5;Los archivos no válidos o los envíos incompletos se rechazan.
La métrica es la tasa de éxito de los episodios:
SR = successful deliveries / evaluated episodesscore = 100 × SRNo se otorga puntuación parcial por alcanzar el paquete, acercarse al objetivo o utilizar menos pasos.
Para la clasificación de la plataforma, los mapas de prueba se dividen de forma determinista:
Durante la competición se muestra la puntuación parcial, mientras que la clasificación final utiliza el conjunto completo. La pertenencia a los dos subconjuntos no se incluye en los datos públicos. El número medio de pasos y los intentos no válidos de pickup/dropoff pueden aparecer en los registros del evaluador, pero no afectan a la puntuación.
Adaptado de «Academia de entregas robotizadas: programa preparatorio» (IOAI 2026, Home Task 2). La representación segura de los datos, las reglas de validación, la división de la clasificación y el evaluador son adaptaciones para la plataforma MLCompete.