Задача #304
Автор:IOAI 2026 Organizing Team
Складність
Ваш найкращий результат
Н/Д
Ви навчаєте робота-доставника на міській карті, що складається з 8 × 8 клітинок. У кожному епізоді робот починає з вільної клітинки, дістається сховища, де розташований пакунок, забирає його, прямує до іншого сховища — пункту призначення — і доставляє його. Кожна карта містить шість сховищ і вісім заблокованих клітинок.
Мета полягає в тому, щоб навчитися поведінки робота з навмисно малої кількості експертних демонстрацій. Це задача клонування поведінки: ви навчаєте модель на прикладах спостереження/дії, а потім запускаєте її крок за кроком у нових епізодах.
Сховища індексуються як 0..5 і позначаються як A..F. Епізод успішно завершується, коли робот виконує допустиму дію dropoff у пункті призначення, несучи пакунок. Дозволено не більше 120 actions.
| ID | Дія |
|---|---|
| 0 | південь |
| 1 | північ |
| 2 | схід |
| 3 | захід |
| 4 | забрати пакунок (pickup) |
| 5 | доставити пакунок (dropoff) |
Рух у стіну або за межі карти не змінює положення робота, але витрачає один крок. pickup виконується успішно лише у сховищі пакунка, коли робот ще не несе пакунок. dropoff виконується успішно лише в пункті призначення, коли робот несе пакунок. Недопустимий pickup або dropoff не змінює state і витрачає один крок.
Кожне навчальне спостереження містить:
grid: тензор float32 форми (6, 8, 8);vector: 13 нормалізованих числових значень;action_mask: шість булевих значень, що вказують на допустимі actions;state: (row, column, package_field, destination).Канали тензора grid представляють:
vector містить у такому порядку: нормалізовані рядок і стовпець робота, поле пакунка, пункт призначення, індикатор перенесення, рядок і стовпець поточної цілі, різниці відносно цілі, а потім чотири індикатори заблокованого руху в порядку південь, північ, схід, захід.
Публічний набір даних містить:
Пакет платформи використовує JSON і безпечні масиви NumPy замість Python pickle-файлів. Точні назви та код завантаження дивіться у starter_kit.py. Завантажуйте файли NumPy з allow_pickle=False.
Кожен layout_id є спільним для чотирьох епізодів. Унікальним ключем завжди є:
(layout_id, episode_seed)Навчіть детерміновану модель, яка прогнозує наступну дію за поточним спостереженням. Запустіть модель на повних епізодах і згенеруйте одну послідовність дій для кожного тестового сценарію.
Ви можете використовувати надані демонстрації для навчання. Вам не дозволено отримувати експертні мітки для перевірочних або тестових наборів, а також створювати додаткові експертні демонстрації шляхом пошуку, планування чи за допомогою іншої експертної моделі. Рішення, засновані на правилах або явно жорстко закодовані, можуть бути перевірені Науковим комітетом. Організатори можуть запросити notebook або вихідний код, використаний для створення подання.
Надішліть ZIP-архів із назвою predictions.zip, що містить рівно один файл у корені: predictions.json.
Файл має містити JSON-масив із рівно 1,600 об’єктів, по одному для кожного тестового епізоду:
[ {"layout_id":"test_0000","episode_seed":300000,"actions":[1,1,2,4,0,5]}]Вимоги:
(layout_id, episode_seed), а не за порядком рядків;actions має бути JSON-списком цілих чисел — не булевих значень — від 0 до 5;Недопустимі архіви або неповні подання відхиляються.
Метрика — частка успішних епізодів:
SR = successful deliveries / evaluated episodesscore = 100 × SRЧасткові бали не нараховуються за досягнення пакунка, наближення до цілі або використання меншої кількості кроків.
Для рейтингової таблиці платформи тестові карти поділяються детерміновано:
Під час змагання відображається частковий бал, тоді як фінальна рейтингова таблиця використовує повний набір. Належність до двох підмножин не включено до публічних даних. Середня кількість кроків і недопустимі спроби pickup/dropoff можуть відображатися в журналах оцінювача, але не впливають на бал.
Адаптовано з «Академія роботизованої доставки: підготовча програма» (IOAI 2026, Home Task 2). Безпечне представлення даних, правила перевірки, поділ рейтингової таблиці та оцінювач є адаптаціями для платформи MLCompete.