TwiddleLab / Искусственный интеллект / Поиск, игры и планы
Планирование: от цели к шагам
Что ты узнаешь
- У каждого действия есть предусловия (что должно быть верно сначала) и эффекты (что оно делает верным).
- План это список действий, где предусловия каждого выполнены, когда оно запускается, а цель верна в конце.
- Планировщик может искать планы, например с конца: какое действие даёт цель и что нужно этому действию?
- Лишние ходы делают план длиннее, но не неверным. Планировщики ищут короткие планы.
Как идёт урок
Скажи роботу «приготовь завтрак», и ему нужно много шагов в правильном порядке. Сколько для миски хлопьев с молоком?
У робота одна рука. Миска и хлопья в закрытом шкафу, молоко в закрытом холодильнике. Ставка.
Напиши план робота. Запусти и посмотри, где он застрянет.
Нажимай на действия, чтобы добавить их. Нажми на шаг в плане, чтобы убрать его.
Планировщик сам находит порядок. Он начинает с цели.
Пройди по шагам: условия каждого действия становятся новыми целями.
У частей планирования есть названия.
То, что должно быть верно до действия, это его предусловие. То, что действие меняет, это его эффект. План это список действий, который доходит до цели, а планировщик это программа, которая такой список ищет.
Дай каждому действию его предусловия.
Перетащи каждое условие на действие, которому оно нужно.
Каждое предусловие это то, чего само действие сделать не может: нельзя взять молоко занятой рукой или из закрытого холодильника. Эти правила это всё, что планировщик знает о кухне.
Этот план работает, но занимает 13 шагов. Сократи его до 9.
Нажми на шаг, чтобы вычеркнуть его. Запусти, чтобы проверить.
Шаги 2 и 3 берут хлопья и сразу кладут обратно; шаги 11 и 12 кладут молоко обратно и снова берут. Каждая пара оставляет кухню ровно такой, какой она была, поэтому если убрать обе, план всё равно работает.
План может быть и программой. Где будет коробка хлопьев, когда эта программа закончится?
Каждый if проверяет предусловие, прежде чем робот действует.
hand_free равно true, поэтому робот берёт миску; потом он держит миску, поэтому ставит её на стол. fridge_open равно false: пропуск. Теперь рука снова свободна, поэтому он берёт хлопья и всё ещё держит их в конце.
Два плана для одного завтрака. Какой работает?
Запусти оба. Потом нажми на план, которому доверяешь.
Чтобы открыть холодильник, нужна свободная рука. План A в этот момент всё ещё держит хлопья, поэтому останавливается. План B открывает холодильник в самом начале, пока рука свободна, и кладёт хлопья обратно, прежде чем взять молоко.
Новая цель: чашка чая. Спланируй за 8 шагов.
Чашка на столе. Одно действие нужно дважды.
Предыдущий урок: Монте-Карло: случайные партии · Следующий урок: Головоломки с ограничениями · Часть курса: Поиск, игры и планы
Уроки интерактивные и работают на JavaScript. Включи его, чтобы играть.