# Тренування Mountain Car [OpenAI Gym](http://gym.openai.com) створений таким чином, що всі середовища мають однаковий API - тобто однакові методи `reset`, `step` і `render`, а також однакові абстракції **простору дій** і **простору спостережень**. Таким чином, можна адаптувати одні й ті ж алгоритми навчання з підкріпленням до різних середовищ із мінімальними змінами в коді. ## Середовище Mountain Car [Середовище Mountain Car](https://gym.openai.com/envs/MountainCar-v0/) містить автомобіль, який застряг у долині: Мета полягає в тому, щоб вибратися з долини та захопити прапор, виконуючи на кожному кроці одну з наступних дій: | Значення | Значення дії | |---|---| | 0 | Прискорення вліво | | 1 | Не прискорюватися | | 2 | Прискорення вправо | Основна складність цієї задачі полягає в тому, що двигун автомобіля недостатньо потужний, щоб піднятися на гору за один раз. Тому єдиний спосіб досягти успіху — це розгойдуватися вперед-назад, щоб набрати імпульс. Простір спостережень складається лише з двох значень: | № | Спостереження | Мін | Макс | |-----|--------------|-----|-----| | 0 | Позиція автомобіля | -1.2| 0.6 | | 1 | Швидкість автомобіля | -0.07 | 0.07 | Система винагород для Mountain Car досить складна: * Винагорода 0 надається, якщо агент досяг прапора (позиція = 0.5) на вершині гори. * Винагорода -1 надається, якщо позиція агента менша за 0.5. Епізод завершується, якщо позиція автомобіля перевищує 0.5, або якщо довжина епізоду перевищує 200. ## Інструкції Адаптуйте наш алгоритм навчання з підкріпленням для вирішення задачі Mountain Car. Почніть із наявного коду [notebook.ipynb](../../../../8-Reinforcement/2-Gym/notebook.ipynb), замініть середовище, змініть функції дискретизації станів і спробуйте змусити існуючий алгоритм навчатися з мінімальними змінами в коді. Оптимізуйте результат, налаштовуючи гіперпараметри. > **Примітка**: Для досягнення збіжності алгоритму, ймовірно, знадобиться налаштування гіперпараметрів. ## Критерії оцінювання | Критерій | Відмінно | Задовільно | Потребує покращення | | -------- | --------- | -------- | ----------------- | | | Алгоритм Q-Learning успішно адаптований із прикладу CartPole з мінімальними змінами в коді, і здатний вирішити задачу захоплення прапора менш ніж за 200 кроків. | Новий алгоритм Q-Learning взято з Інтернету, але добре задокументований; або існуючий алгоритм адаптований, але не досягає бажаних результатів. | Студент не зміг успішно адаптувати жоден алгоритм, але зробив значні кроки до вирішення (реалізував дискретизацію станів, структуру даних Q-Table тощо). | --- **Відмова від відповідальності**: Цей документ було перекладено за допомогою сервісу автоматичного перекладу [Co-op Translator](https://github.com/Azure/co-op-translator). Хоча ми прагнемо до точності, зверніть увагу, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ мовою оригіналу слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли внаслідок використання цього перекладу.