Искусственный интеллект: его истоки и проблемы


Искусственный интеллект: его истоки и проблемы - стр. 15


Планирование по ряду причин является сложной проблемой, не малую роль в этом играет размер пространства возможных последовательностей шагов. Даже очень простой робот способен породить огромное число различных комбинаций элементарных движений. Представьте себе, к примеру, робота, который может передвигаться вперед, назад, влево и вправо, и вообразите, сколькими различными путями он может двигаться по комнате. Представьте также, что в комнате есть препятствия, и что робот должен выбирать путь вокруг них некоторым оптимальным образом. Для написания программы, которая могла бы разумно определить лучший путь из всех вариантов, и не была бы при этом перегружена огромным их числом, потребуются сложные методы для представления пространственного знания и управления перебором в пространстве альтернатив.

Одним из методов, применяемых человеческими существами при планировании, является иерархическая декомпозиция задачи (hierarchical problem decomposition). Планируя путешествие в Лондон, вы, скорее всего, займетесь отдельно проблемами организации перелета, поездки до аэропорта, самого полета и поиска подходящего вида транспорта в Лондоне, хотя все они являются частью большого общего плана. Каждая из этих задач может сама быть разбита на такие подзадачи, как, например, покупка карты города, преодоление лабиринта линий метро и поиск подходящей пивной. Такой подход не только эффективно ограничивает размер пространства поиска, но и позволяет сохранять часто используемые маршруты для дальнейшего применения.

В то время как люди разрабатывают планы безо всяких усилий, создание компьютерной программы, которая бы занималась тем же - сложная проблема. Казалось бы, такая простая вещь, как разбиение задачи на независимые подзадачи, на самом деле требует изощренных эвристик и обширного знания об области планирования. Не менее сложная проблема - определить, какие планы следует сохранить, и как их обобщить для использования в будущем.

Робот, слепо выполняющий последовательности действий, не реагируя на изменения в своем окружении, или неспособный обнаруживать и исправлять ошибки в своем собственном плане, едва ли может считаться разумным. Зачастую от робота требуют сформировать план, основанный на недостаточной информации, и откорректировать свое поведение по мере его выполнения. Робот может не располагать адекватными сенсорами для того, чтобы обнаружить все препятствия на проектируемом пути. Такой робот должен начать двигаться по комнате, основываясь на "воспринимаемых" им данных, и корректировать свой путь по мере того, как выявляются другие препятствия. Организация планов, позволяющая реагировать на изменение условий окружающей среды, - основная проблема планирования [Lewis и Luger, 2000].

Наконец, робототехника была одной из областей исследований ИИ, породившей множество концепций, лежащих в основе агентно-ориентированного принятия решений (см. подраздел 1.1.4). Исследователи, потерпевшие неудачу при решении проблем, связанных с большими пространствами представлений и разработкой алгоритмов поиска для традиционного планирования, переформулировали задачу в терминах взаимодействия полуавтономных агентов [Agre и Chapman, 1987], [Brooks, 1991a]. Каждый агент отвечает за свою часть задания, и общее решение возникает в результате их скоординированных действий. Элементы алгоритмов планирования будут представлены в главах 6, 7 и 14.

Исследования в области планирования сегодня вышли за пределы робототехники, теперь они включают также координацию любых сложных систем задач и целей. Современные планировщики применяются в агентских средах [Nilsson, 1994], а также для управления ускорителями частиц [Klein и др., 1999, 2000].

1.2.7. Языки и среды ИИ

Одним из наиболее важных побочных продуктов исследований ИИ стали достижения в сфере языков программирования и средах разработки программного обеспечения. По множеству причин, включая размеры многих прикладных программ ИИ, важность методологии "создания прототипов", тенденцию алгоритмов поиска порождать чересчур большие пространства и трудности в предсказании поведения эвристических программ, программистам искусственного интеллекта пришлось разработать мощную систему методологий программирования.

Средства программирования включают такие методы структурирования знаний, как объектно-ориентированное программирование и каркасы экспертных систем (они обсуждаются в части III). Высокоуровневые языки, такие как LISP и PROLOG (см. часть IV), которые обеспечивают модульную разработку, помогают управиться с размерами и сложностью программ. Пакеты средств трассировки позволяют программистам реконструировать выполнение сложного алгоритма и разобраться в сложных структурах эвристического перебора. Без подобных инструментов и методик вряд ли удалось бы построить многие известные системы ИИ.

Многие из этих методик сегодня являются стандартными методами разработки программного обеспечения и мало соотносятся с основами теории ИИ. Другие же, такие как объектно-ориентированное программирование, имеют значительный теоретический и практический интерес. Наконец, многие алгоритмы ИИ сейчас реализуются на таких традиционных для вычислительной техники языках, как C++ и Java.




Начало  Назад  Вперед



Книжный магазин