Интеллектуальное планирование — это одно из магистральных, основных направлений искусственного интеллекта, которое зародилось вместе с ним. Это было примерно в 60-е годы ХХ столетия, и с тех пор интерес исследователей к этой тематике, к этому направлению не угасает. Этот интерес можно объяснить двумя категориями причин. Причины первой категории можно условно назвать теоретико-философскими. В чем тут дело? Дело в том, что в ходе своей деятельности человек достаточно успешно планирует что-то для достижения своих целей. Поэтому, если мы хотим создать некую искусственную систему, интеллектуального агента, который своим поведением походил бы на человека, мы просто обязаны заниматься планированием. Наверное, даже можно по-другому сказать: не заниматься планированием мы в таком случае просто не можем. Причины другого рода лежат в практической плоскости и заключаются в том, что если мы хотим создавать искусственные системы, которые просто помогали бы человеку в решении каких-то повседневных задач, облегчали бы его труд (то есть мы хотим создавать роботов, которые помогали бы человеку убираться по дому, беспилотные автомобили, которые бы автоматически доставляли грузы, и так далее), то такие системы, для того чтобы они эффективно решали свои задачи, должны уметь планировать, и точка.
Эти причины, а также тот факт, что решение задачи планирования на машинах в общем случае не является тривиальной задачей, — это все обусловливает то обстоятельство, что планирование достаточно активно развивалось в последние пятьдесят лет, развивается сейчас и, я уверен, будет развиваться и дальше. Итак, с чего начинается планирование? Тут нужно сказать об одной важной вещи, без которой любое планирование лишено всякого смысла, — о цели. Действительно, если цели нет, то планировать бессмысленно. Поэтому неудивительно, что в искусственном интеллекте планирование рассматривается в контексте целенаправленного поведения. Причем цель обычно задается извне. Это тоже важный и тонкий момент, потому что есть все основания полагать, что тот же самый человек деятельность по планированию не сильно отделяет от деятельности по целеполаганию. То есть человек может сам себе ставить цели. Он вообще достаточно неплохо рассуждает о целях. Он может приоритизировать цели, он может генерировать какие-то новые, неизвестно откуда взявшиеся цели.
Искусственные системы обычно такого свойства лишены. Всегда считается, что цель интеллектуального агента задана извне. Иными словами, есть кто-то, кто эту цель жестко поставил, — человек, оператор и так далее. И планирование начинается в этот самый момент, когда цель поставлена. Здесь можно привести такой пример. Допустим, вы купили робот-пылесос, он теперь ваш новый друг, интеллектуальный помощник по уборке дома. Вы поставили его на зарядку, и он на зарядке в углу стоит. Цель у него одна, она жестко поставлена еще при проектировании, его цель — сделать ваш дом чистым (или, более конкретно, спланировать траекторию своего перемещения так, чтобы ни один квадратный сантиметр поверхности пола не остался неучтенным). Робот-пылесос ничего не знает о том, кто ему эту цель поставил. Он не рассуждает о том, а что можно еще сделать хорошего, откуда эта цель взялась и так далее. Планирование начинается, когда цель есть, и эта цель перед интеллектуальным агентом поставлена извне.
Итак, есть цель, есть интеллектуальный агент, он действует в какой-то окружающей среде, есть начальное состояние этой среды (это то, что агент наблюдает в данный момент времени), и есть действие. Действие — это то, что меняет окружающую среду, с помощью чего агент воздействует на мир вокруг него. И задача планирования состоит в том, чтобы подобрать такую последовательность действий, то есть выстроить их в такую цепочку, что начальное состояние перейдет в целевое, требуемое. Это и есть планирование. Причем здесь есть тоже один важный аспект: обычно при таком классическом подходе к планированию отделяется задача собственно планирования от задачи следования по построенному плану. То есть действование отделяется от планирования. И можно привести следующую аналогию, что же такое планирование в этом случае. Это наш робот-пылесос, который находится на зарядке, отдыхает в углу комнаты, и он пока никуда не едет, не включает никакие свои щетки, он просто думает о том, что ему нужно сделать, чтобы убрать квартиру.
«В чем же здесь сложность?» — спросите вы. Если мы сами себе цели не ставим, про цели не рассуждаем, вопрос следования по плану тоже вроде как пока не рассматриваем — так в чем же сложность? А сложность в том, что действий очень много. Вариантов бесчисленное множество, а способов их комбинаций в какие-то цепочки еще больше. То есть фактически перебрать даже в самых простых случаях все возможные действия на современных компьютерах невозможно: у нас не хватит времени, памяти и так далее. Это примерно то же самое, как простым перебором перебрать все ходы в шахматах. Нужно очень много ресурсов, у нас их просто нет. Что же делать? В искусственном интеллекте есть такой полууниверсальный ответ на этот вопрос. Два волшебных, магических слова, и это не «нейронные сети». Хотя нейронные сети — это тоже мощный инструмент решения каких-то сложных проблем, но в данном случае я говорю об эвристическом поиске.
Что такое эвристический поиск? Что такое просто поиск? Просто поиск — это как раз то, что было бы, если бы мы перебирали все возможные комбинации действий подряд. На это бы ушло, как мы знаем, очень много времени. Это непродуктивный способ решения задачи. Эвристика — это некоторое правило, которое позволяет нашему планировщику отсекать заведомо ненужные, непродуктивные действия и позволяет ему сосредоточиться на каком-то одном узком направлении, но очень быстро в нем продвинуться и достигнуть цели. Тут опять можно привести такой умозрительный пример. Скажем, мы находимся в центре некоторого круга, и весь круг заполнен нашими действиями. Фактически весь круг — это действия, альтернативы, цепочки и так далее. А цель находится где-то на окружности с внешней стороны.
То есть просто поиск — это полный перебор: мы бы шли во все стороны одновременно, исследовали бы все возможности. Это долго и неэффективно. Эвристический поиск — когда мы выбираем одно направление, то есть некий узкий сектор, и движемся в нем. Мы очень быстро доходим до границы круга и там достигаем цели. Этот способ применяется в искусственном интеллекте не только в планировании, для решения других задач, но в планировании особенно активно. Хороший вопрос здесь следующий: а откуда взять эти эвристики? Как мы знаем, в каком направлении двигаться? Тут тоже есть несколько вариантов ответа. Все их я не смогу рассказать в этом видео, есть целые книги, написанные о том, какие методы и алгоритмы планирования применяются, для каких задач, для каких постановок и так далее. Но несколько общих идей расскажу.
Основная идея, например, может заключаться в том, что нужно использовать свой опыт. Это логично. Например, если вы оказались в первый раз в гостях и вдруг именно вас попросили сходить в магазин купить печенье к чаю, то вы извлечете какой-то примерный план из своего опыта, как вы когда-то действовали. Вы должны выйти из квартиры, спуститься с девятого этажа на первый в лифте, выйти из подъезда, дойти до крупной улицы и так далее. Вряд ли вы будете ездить на лифте между девятым и пятым этажом в надежде, что там будет магазин. Это непродуктивное действие. Точно так же интеллектуальные системы, используя накопленную библиотеку планов и действий, могут отсекать заведомо ненужные, непродуктивные действия.
Другой способ более технический. Он связан с тем, каким образом в системах планирования представлены эти действия. Они представлены таким образом, что есть всегда негативные и позитивные эффекты. Причем позитивные и негативные эффекты не в смысле что-то хорошо, а что-то плохо, а в том смысле, что позитивный эффект — это когда что-то добавилось в описание мира, негативный эффект — когда что-то удалилось. Например, если робот взял в руки коробку, то позитивный эффект — у него в руках коробка, негативный — руки заняты, больше он ничего взять не может. Оказывается, что достаточно эффективно и быстро можно планировать без учета негативных эффектов. Фактически мы надеваем на нашего робота такие розовые очки, он совсем не думает о каких-то взаимосвязях, о каких-то ограничениях и очень быстро достигает цели. Этот план, конечно же, неосуществим в реальности, но его можно использовать как раз в качестве эвристики, то есть использовать в качестве того направления, вокруг которого нам нужно искать план настоящий.
В завершение хотелось бы сказать о том, какие методы планирования, на мой взгляд, являются наиболее актуальными, перспективными в настоящий момент. Первое — это, конечно же, те методы, которые как-то учитывают и вовлекают процесс целеполагания. Нам хочется не только того, чтобы цель была нежестко зафиксирована извне, но и чтобы в процессе деятельности интеллектуальный агент был способен к целеполаганию, был способен сам ставить цели. Второй момент — это, конечно же, сопряжение с процессом действования. То есть мы должны не просто планировать, но и уметь следовать по построенному плану и в случае возникновения каких-то внештатных, непредвиденных ситуаций уметь быстро и эффективно перепланировать. Это важно в первую очередь с практической точки зрения.
И наконец, планирование ведь можно рассматривать как такой многоуровневый, многослойный процесс. Даже тот же робот-пылесос должен планировать и свои действия, и свое перемещение, и работу режимов каких-то моторов, своих колес и так далее. То есть должны быть такие сквозные методы, которые умеют планировать на всех уровнях представления знаний. Мы должны спланировать сначала действие, потом перемещение, потом работу каких-то актуаторов и так далее. И должны это все связать в единую систему управления. Эта задача является, конечно же, весьма сложной, но именно из-за того, что эта задача не такая простая, методы планирования, я думаю, еще долго будут привлекать к себе внимание исследователей и в области искусственного интеллекта, и в области Computer Science в целом.
Константин Яковлев, кандидат физико-математических наук