3. Условия задачи:
а) Описание начального условия решения задачи.
б) Описание требуемого результата решения задачи.
а) Характеристика способов генерации.
Процедура генерации является отличительным (видовым) признаком класса «слепых» методов поиска. В отношении процедуры генерации различают слепые методы поиска: по лучу, в глубину и в ширину.
Характеристика метода поиска по лучу:
1) Для очередного si формируется множество применимых операторов Fi.
2) Если Fi, то выбирается одно fjFi, иначе si является терминальным состоянием. Если имеются терминальные состояния, то следует ввести в алгоритм механизма возврата. Обычно, следует вернуться назад, выбрать иное fjFi-1 для si-1 не порождающие терминальное si (более подробно об обходе терминальных состояний будет сказано ниже).
3) Состояние si раскрывается si fj = si+1 (далее результат генерации или раскрытие состояния будем именовать «фронтом»).
4) Если выполняется условие: si+1 sjtSt, то задача решена (выполняется одно из условий решения первой задачи), иначе переход к п.1 применительно для очередного состояния si+1.
Алгоритмы поиска в методе в глубину:
1) Для одной siSi формируется множество применимых операторов Fi.
2) Если Fi=, то si является терминальным состоянием, (при наличии терминальных состояний, используют иную sjSi или поступают так же, как в методе поиска по лучу).
3) Состояние si раскрывается si Fi=Si+1.
4) Если выполняется условие: si+1 Si+1, sjtSt, то задача решена (выполняется одно из условий решения первой задачи), иначе переход к п.1., но применительно для очередного фронта состояний Si+1.
В методе в ширину реализуется следующий алгоритм поиска:
1) Для всех siSi формируется множество применимых операторов Fi.
2) Если для всех siSi, Fi=, то решения не существует, иначе п.3.
3) Si раскрывается: Si Fi = Si+1.
4) Если выполняется условие: si Si+1, sjtSt, то задача решена (выполняется одно из условий решения первой задачи), иначе переход к п.1. применительно для очередного фронта состояний Si+1.
Для осуществления поиска необходим комплекс действий. Комплекс действий определяют процедуры генерации, проверки, планирования.
Для осуществления поиска: 1. So = {S1,S2…Sn}
Задать начальное состояние с которого начинается поиск.
2. St = {S1,S2…Sm}
Множество целевых состояний. m - мощность множества.
Пересечение множеств So и St не должно быть пустым.
3. F = {f1,f2…fk}
Множество операторов.
4. Sc ={S1,S2…Si}
Множество текущих состояний. Sc . (в некоторых случаях выполнение данного условия необязательно).
б) Используя «слепые» методы поиска возможно получить следующие результаты решения задачи:
Определение количества требуемых состояний при прохождении заданного числа итераций.
Поиск целевого состояния (при заданном начальном состоянии) любым методом поиска.
4) Выбор методов генерации.
Выбор той или иной процедуры генерации зависит:
1. От условия решения задачи: найти все siSt, найти одну siSt, найти заданное количество siSt, найти одну или несколько указанных siSt;
2. От отношения Sи подмножества St, от отношения Sи подмножества So, от отношения подмножества Soи подмножества St.
При условии, что поиск осуществляется на дереве оригинальных состояний глубиной n, и количество дочерних состояний m у всякого родителя одинаково, то вероятность нахождения одного состояния будет иметь следующий вид:
1) Для поиска по лучу: Р= 1/ mi n– b.
2) Для поиска в глубину: Р= 1/ mi n– b m.
3) Для поиска в ширину: Р= 1/ mi n-b.
где b-число итераций.
Исходя из сказанного выше, генерация в ширину обладает наибольшей вероятностью нахождения единственного состояния в указанных условиях (необходимое состояние будет достигнуто за наименьшее число итераций).
Однако с увеличением числа элементов в последовательности значение вероятностей выравнивается.