Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Задача о поиске кратчайшего путиНа рис. 6 показан пример поведения конкурирующих процессов. Дана карта городов с расстояниями между ними, задача состоит в том, чтобы найти кратчайший маршрут из стартового города s в целевой город t. В качестве оценки стоимости остатка маршрута из города X до цели мы будем использовать расстояние по прямой расст(X, t) от X до t. Таким образом, f(X) = g(X) + h(X) = g(X) + расст(X, t) Мы можем считать, что в данном примере процесс поиска с предпочтением состоит из двух процессов. Каждый процесс прокладывает свой путь — один из двух альтернативных путей: Процесс 1 проходит через а, Процесс 2 — через е. Вначале Процесс 1 более активен, поскольку значение f вдоль выбранного им пути меньше, чем вдоль второго пути. Когда Процесс 1 достигает города с, а Процесс 2 все еще находится в е, ситуация меняется: f(c) = g(c) + h(c) = 6 + 4 = 10 f(e) = g(e) + h(e) = 2 + 7 = 9 Поскольку f(e) < f(c), Процесс 2 переходит к f, а Процесс 1 ждет. Однако f(f) = 7 + 4 = 11 f(c) = 10 f(c) < f(f) Поэтому Процесс 2 останавливается, а Процессу 1 дается разрешение продолжать движение, но только до d, так как f(d) = 12 > 11. Происходит активация процесса 2, после чего он, уже не прерываясь, доходит до цели t. Рисунок 6. Поиск кратчайшего маршрута из s в t (а) Карта со связями между городами; связи помечены своими длинами; в квадратиках указаны расстояния по прямой до цели t. (b) Порядок, в котором при поиске с предпочтением происходит обход городов. Эвристические оценки основаны на расстояниях по прямой. Пунктирной линией показано переключение активности между альтернативными путями. Эта линия задает тот порядок, в котором вершины принимаются для продолжения пути, а не тот порядок, в котором они порождаются. 1.4.3. А-алгоритм и А*-алгоритм Опр. 1. Информированный поиск с оценочной функцией f(u)=g(u)+h(u), где h(u) — эвристика вершины u, называется А-алгоритмом. Опр. 2. А-алгоритм с эвристической функцией h(u)≤h*(u) для любой u называется A*-алгоритмом. Итак, эвристический поиск действует следующим образом. В каждый момент имеется несколько путей-кандидатов в решение. Концевая вершина каждого пути оценивается согласно функции f, и для продолжения выбирается путь, оканчивающийся вершиной с минимальной f-оценкой. Покажем, что поиск в ширину есть частный случай A-алгоритма. Поиск в ширину — это неинформированный поиск, следовательно, h(u)≡0 для любой u. Смысл g(u) — расстояние, пройденное от s до u. Следовательно, g(u) — это уровень или количество ребер от вершины s до вершины u. Как известно, поиск в ширину всегда находит минимальный путь, так как просматривает большое количество вершин пространства состояний. Это наводит на мысль, что использование «малых» эвристик будет давать минимальные решения с просмотром большого количества вершин, в то время как использование «больших» эвристик будет очень сильно фокусировать поиск без всяких гарантий, что поиск «не пройдет мимо» целевой вершины. Дадим точные определения. Опр. 3. Пусть A1 и A2 — два варианта A*-алгоритма, использование эвристические функции h1 и h2. Назовем A2 более информированным, чем A1, если для всех нецелевых вершин h2(u)≥h1(u) и для всех целевых h1(u)=h2(u)≡0. Теорема 1. Если A1 и A2 — варианты A* — алгоритма, и A2 более информирован, чем A1, то A2 просмотрит вершин не больше чем A1. Теорема 2. Если A1 является A* — алгоритмом с h(u)≤h*(u) для всех вершин, то A1 находит минимальное решение. Не будем рассматривать строгое доказательство этих теорем, но дадим неформальное доказательство того, что «большие» эвристики сильно фокусируют поиск в направлении целевой вершины. Пусть у нас имеется A-алгоритм с эвристикой h(u)>>g(u). Пусть на каком-то шаге имеются два пути-кандидата, оканчивающимися вершинами u1 и u2, причем вершина u1 более «продвинута» в направлении целевой вершины (рис. 7): Рисунок 7. Фокусировка дерева поиска с помощью «большой эвристики» Так как u1 лежит дальше от начала поиска, то g(u1)>g(u2). Соответственно, оценка расстояния от вершины u1 до t меньше соответствующей оценки для u2: h(u1)<h(u2). Так как h — «большая» эвристика, то она сильно убывает в направлении целевой вершины, т.е.: h(u2)-h(u1)>>g(u1)-g(u2) Таким образом получаем, что g(u2)+h(u2)>>g(u1)+h(u1), то есть более «продвинутые» пути всегда будут иметь меньшие f-оценки, и А-алгоритм никогда не вернется к пути, оканчивающемуся вершиной, близкой к началу поиска.
|