Лабораторная работа №1

Реализация механизма обратного вывода в рамках учебного проекта оболочки ЭС.

Зададим в нотации Бэкуса-Наура язык абстрактного эксперта :

<ПРЕДЛОЖЕНИЕ> :: = <ПРАВИЛО>| < ЦЕЛЬ><ОКОНЧАНИЕ ПРЕДЛОЖЕНИЯ>

<ПРАВИЛО> ::= <(ЗАГОЛОВОК ПРАВИЛА)> < РАЗДЕЛИТЕЛЬ ВЫТЕКАЕТ ЕСЛИ > <(УСЛОВИЕ)>

<(УСЛОВИЕ)> ::= <(ВЫРАЖЕНИЕ)> | <(ВЫРАЖЕНИЕ)> <РАЗДЕЛИТЕЛЬ И> <(УСЛОВИЕ)>

<ВЫРАЖЕНИЕ> ::= <АТРИБУТ> <ЗНАЧЕНИЕ>

<АТРИБУТ> ::= < ЛЕКСЕМА > <ЗНАЧЕНИЕ> | <ЛЕКСЕМА>

<ОКОНЧАНИЕ ПРЕДЛОЖЕНИЯ>::= .

<РАЗДЕЛИТЕЛЬ ВЫТЕКАЕТ ЕСЛИ > ::= >

<РАЗДЕЛИТЕЛЬ И>::= &

Необходимо реализовать механизм обратного вывода на основе опровержения резолюций при следующих допущениях :

  1. Цель может быт одна.
  2. Количество атрибутов может быть ограничено 10.
  3. Количество правил может быть ограничено 100.
  4. Количество условий может быть ограничено 100.

Пример внешнего вида модуля приведен на рис. 1

Рис 1 .

 

На рисунке представлен двухоконный интерфейс модуля обратного вывода

Правило вводится в виде заголовка и условия. Разделитель > между заголовком и условиями. Условия задаются через & . Правило завершается .

Пример : На(Х, Z ) > На( X , B )&На( B , Z ).

Факт представляют собой констатацию выполнения отношения между обьектами.

Принципы функционирования МОВ .

  1. Правила проверяются сверху вниз.
  2. Когда подцель соответствует заголовку правила далее должно быть согласовано тело правила, которое теперь образует новое множество подцелей для согласования.
  3. Целевое утверждение считается согласованным (унифицированным) когда соответствующий факт найден для каждой оконечности(листа) целевого утверждения.

Порядок выполнения работы .

Для выполнения используется Visual C ++6.0

  1. Создать структуры и классы для реализации Могут быть созданы следующие классы : правил, фактов, целей, механизма вывода и др.
  2. Разработать функции ввода правил и фактов.
  3. Разработать структуры и классы для реализации механизма обратного вывода, включая хранение связанных переменных, “точки” возврата.