Алгоритм нахождения наилучшего пути достижения поставленной цели

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

  • 1. но
  • 2. Если у вершины пет нераскрытых дочерних вершин, то переход в и. 8. Определить тип нераскрытых дочерних вершин, ?=?+1.
  • 3. Если нераскрытые дочерние вершины входят в две или более групп типа «И», то переход к п. 5а. Если нераскрытые дочерние вершины типа «ИЛИ», то переход к п. 56.
  • 4. Если нераскрытые дочерние вершины входят в одну группу типа «И», то переход к п. 6.
  • 5а. Определить группу вершин типа «И» па раскрытие в соответствии с эвристической функцией 11(1)=>т1п и перейти к п. 6.
  • 56. Определить вершину на раскрытие среди дочерних вершин типа «ИЛИ» в соответствии с эвристической функцией Ь(0=>тт и перейти к п. 7.
  • 6. Определить вершину на раскрытие среди дочерних вершин типа «И», образующих группу вершин типа «И», в соответствии с эвристической функцией: Ь(1)=>тт.
  • 7. Если вершина не является заключительной, то переход к п. 10.
  • 8. Если вершина разрешима, то пометить ее как разрешимую и выполнить следующие условия:
    • а) если вершина входит в группу «И» и есть нераскрытые вершины в группе «И», то определить вершину на раскрытие в соответствии с эвристической функцией Ь(0=>гшп и переход к п. 10;
    • б) если вершина входит в группу «И» и все вершины в группе «И» раскрыты, то ?=?-1 (переход к ее родительской вершине);
    • в) если вершина является дочерней вершиной типа «ИЛИ», то 1=1-1 (переход к ее родительской вершине);
    • г) если ?=0, то СТОП — вершина 0-го уровня разрешима и наилучший путь достижения цели найден; в противном случае переход к п. 8.
  • 9. Если вершина неразрешима, то пометить ее как неразрешимую и выполнить следующие действия:
    • а) если вершина входит в группу «И», то пометить, что данная группа вершин неразрешима и ?=?-1, и если есть нераскрытые группы вершин типа «И», то переход к п. 10;
    • б) если вершина является дочерней вершиной типа «ИЛИ», то 1=1—1, и если есть нераскрытые дочерние вершины, то переход к п. 10;
    • в) если 1=0, то СТОП — вершина 0-го уровня неразрешима.
  • 10. Переход к п. 2.

Базовыми операциями в разработанном алгоритме эвристического поиска являются две: вычисление эвристической функции для дочерних вершин и выбор вершины для раскрытия в соответствии со значением эвристической функции. Поэтому теоретическая оценка сложности разработанного алгоритма равна О(п'), т.е. алгоритм является квадратичным от исходных данных (количества вершин в И/ИЛИ-графе «цель—подцель»).

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

 
Посмотреть оригинал