Программирование - это просто
Advertisement
Главная arrow Искусственный интеллект arrow Общие идеи искусственного интеллекта arrow Создаем искусственный интеллект. Урок 4. Эвристический поиск
19.04.2024 г.
Главное меню
Главная
Интернет магазин
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика и информатика
1С:Предприятие
Уроки C#
Уроки Delphi
Уроки программирования
Web-программирование
Дизайн и графика
Компьютер для блондинок
Исходники
Статьи
Платный раздел
Рассказы про компьютеры
Хитрости и секреты
Системный подход
Размышления
Наука для чайников
Друзья сайта
Excel-это не сложно
Все о финансах
.
Создаем искусственный интеллект. Урок 4. Эвристический поиск Печать E-mail
Автор megabax   
16.04.2010 г.
unit AIObj

Создаем искусственный интеллект. Урок 4. Поиск решений задач в пространстве состояний.

Эвристический поиск.

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

В алгоритмах эвристического поиска список открытых вершин упорядочивается по возрастанию некоторой оценочной функции, формируемой на основе эвристических правил. Оценочная функция может включать две составляющие, одна из которых называется эвристической и характеризует близость текущей и целевой вершин. Чем меньше значение эвристической составляющей оценочной функции, тем ближе рассматриваемая вершина к целевой вершине. В зависимости от способа формирования оценочной функции выделяют следующие алгоритмы эвристического поиска: алгоритм «подъема на гору», алгоритм глобального учета соответствия цели, А-алгоритм.

1. Алгоритм «подъема на гору». Алгоритм осуществляется целенаправленный поиск в направлении наибольшего убывания эвристической оценочной функции Эверистический поиск в пространстве состояний. Данная функция обеспечивает оценку (прогноз) стоимости кратчайшего пути от текущей вершины n до ближайшей целевой вершины, т.е. является мерой стоимости оставшегося пути. Чем меньше значение Создаем искусственный интеллект. Урок 4. Поиск решений задач в пространстве состояний. ,тем более «перспективен» путь, на котором находится вершина.

Подобный алгоритм используется при поиске экстремумов функции. Известно, что положение экстремума функции многих переменных определяется направлением вектора градиента функции. Поэтому поиск экстремума осуществляют в направлении наибольшего возрастания (убывания) функции, т.е. в направлении, совпадающем (или противоположном) с направлением градиента. Поиск максимума функции в этом случае напоминает восхождение на пик по наиболее крутому маршруту. Поэтому рассматриваемый алгоритм и называют алгоритмом «подъема на гору» (hill climbing).

На очередном шаге алгоритма для каждой из дочерних вершин Создаем искусственный интеллект. Урок 4. Поиск решений задач в пространстве состояний.  вершины вычисляется значение оценочной функции Алгоритм «подъема на гору», и для продолжения пути выбирается вершина с наименьшим значением Создаем искусственный интеллект. Урок 4. Поиск решений задач в пространстве состояний. . Процедура поиска терпит неудачу, если для всех дочерних вершин Создаем искусственный интеллект. Урок 4. Поиск решений задач в пространстве состояний.

Procedure Hill_Climbing;
Begin
    n := ’начальная вершина’;
    While n <> ’целевая вершина’ Do Begin
    Раскрыть вершину n для всех дочерних вершин вычислить оценки ;
    Выбрать дочернюю вершину с минимальным значением ;
    If Then Выход(НЕУДАЧА);
        n := ;
    End;
    Выход(НЕУДАЧА);
End.

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

Создаем искусственный интеллект. Урок 4. Поиск решений задач в пространстве состояний. ,

где - координаты целевой вершины; - координаты текущей вершины.

Данная оценка соответствует расстоянию от вершины n до целевой вершины. При поиске пути в лабиринте, изображенном на рисунке Графы состояний,а, последовательность раскрываемых вершин будет следующей: A, B, L, G. Поиск пути в лабиринте, показанном на рисунке Графы состояний,б, завершится неудачей. При этом последовательность раскрытых вершин будет следующей: A, B. Оценочная функция Искуственный интеллект в вершине В получит значение 3. Дальнейшие шаги оказываются безуспешными, так как ĥ(F)=3 и ĥ(C)=4, а для продолжения поиска необходимо, чтобы выполнялось условие Создаем искусственный интеллект. Урок 4. Поиск решений задач в пространстве состояний.

Таким образом, хотя данный алгоритм обеспечивает ускорение поиска, он не гарантирует достижение целевой вершины. Преждевременное завершение алгоритма происходит в следующих случаях: если в процессе поиска встречаются локальные минимумы оценочной функции ĥ(n); если для группы соседних вершин оценки ĥ(n) равны между собой (проблема «плато»).

2. Глобальный учет соответствия цели. Этот алгоритм поиска решения задачи похож на предыдущий. Здесь также оценивается «перспективность» того или иного пути с помощью эвристической оценочной функции ĥ(n). Отличие состоит в том, что на каждом этапе выполняется не локальное сравнение всех вершин-кандидатов, находящихся в списке OPEN. Для этого список открытых вершин сортируется в порядке возрастания значений ĥ(n).Наилучшая вершина для продолжения пути будет находиться на первом месте в списке OPEN. Поэтому данный алгоритм называют также алгоритмом выбора первой наилучшей вершины (Best-First).

Глобальный учет соответствия цели

 

 а)                                   б)

Рисунок – Графы состояний.

Процедура поиска, основанная на данном алгоритме, похожа на процедуру Optimal_Search. Отличие состоит в том, что вместо функции стоимости ĝ(n) применяется эвристическая функция ĥ(n), т.е. учитываются только предстоящие затраты:

Procedure Best_First_Search;
Begin
    Поместить начальную вершину в список OPEN;
    CLOSED := ’пустой список’;
    While OPEN <> ’пустой список’ Do Begin
        n := first(OPEN);   
        If n = ’целевая вершина’ Then Выход(УСПЕХ);
        Переместить n из списка OPEN в CLOSED;
        Раскрыть вершину n, для каждой дочерней вершины вычислить Глобальный учет соответствия цели;
        Поместить дочерние вершины, которых нет в списке OPEN и
        CLOSED, в список OPEN, связав с каждой вершиной указатель
        на вершину n;
        Упорядочить список OPEN по возрастанию значения Создаем искусственный интеллект. Урок 4. Поиск решений задач в пространстве состояний. ;
    End;
    Выход(НЕУДАЧА);
End.

Если данную процедуру применить к задаче поиска пути в лабиринте, изображенном на рисунке Графы состояний,а, то результат будет таким же, как и в случае алгоритма подъема в гору. Если процедура Best_First_Search применить к лабиринту, представленному на рисунке Графы состояний,б, то состояние списка открытых вершин будет следующим:

 (S(6)) → (A(5)) → (B(3)C(4)) → (F(3)C(4)) → (C(4)) → (D(3)E(4)) → (K(2)E(4)) → (G(0)E(4)).

Таким образом, алгоритм позволяет успешно справляться с проблемой локальных минимумов. Однако при этом снижается эффективность самого процесса поиска. Эффективность процесса поиска будет оставаться высокой, если оценка стоимости кратчайшего пути ĥ(n) из вершины n в целевую вершину будет как можно ближе к реальной стоимости ĥ(n).

Последнее обновление ( 27.07.2010 г. )
 
« След.
 
© 2024 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги