Основы построения и функционирования интеллектуальных информационных систем. Былкин В.Д - 109 стр.

UptoLike

109
find_rule: =curr_ule
END;
curr_con: =
curr_con^.next END;
curr_rule: =curr_rule^.next
END
END;
Осуществление заключения
Следующий модуль представляет собой процедуру для осуществления заключения, когда
машина вывода находит связь между предпосылкой одного правила и заключением другого
Процедура CONCLUDE на основе целых значений коэффициента доверия д) рассматриваемых
правил устанавливает коэффициент доверия заключения и выводит заключение на экран дисплея.
PROCEDURE conclude(curr_rule:rule_ptr;prem_cerl:integer); VAR
Curr_con:: con_ptr;
cert:integer;
BEGIN
curr_con :=curr_rule. con;
WHILE (curr_con<>NIL) DO BEGIN
add_object(curr_con^. object
t
curr_con^ .value); cert:=(prem_cert*
curr_con^.cert) DIV 100;
add_cf(curr_con^.object,cur_con^.value,cert); curr_con: = curr_con^.next END
END;
Результирующие факты
Следующий модуль является сердцем машины вывода программы. Процедура PURSUE
обрабатывает полученное имя объекта, пытаясь применять правила , для присвоения ему значения.
Если ни одно из правил не позволяет сделать вывод об объекте, то его значение запрашивается у
пользователя.
Для фиксации текущего правила, рассматриваемого в данный момент, процедура использует
указатель правил. Работа начинается с просмотра списка объектов для проверки наличия искомого
объекта. Если объект не найден, то в вершине списка создается новый узел.
       find_rule: =curr_ule
END;
       curr_con: =
curr_con^.next END;
curr_rule: =curr_rule^.next
END
END;

                                      Осуществление заключения

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

         PROCEDURE conclude(curr_rule:rule_ptr;prem_cerl:integer); VAR
Curr_con:: con_ptr;
cert:integer;
 BEGIN
curr_con :=curr_rule. con;
       WHILE (curr_con<>NIL) DO BEGIN
              add_object(curr_con^. object t curr_con^ .value); cert:=(prem_cert*
              curr_con^.cert) DIV 100;
        add_cf(curr_con^.object,cur_con^.value,cert); curr_con: = curr_con^.next END
          END;

                                         Результирующие факты

       Следующий модуль является сердцем машины вывода программы. Процедура PURSUE
обрабатывает полученное имя объекта, пытаясь применять правила , для присвоения ему значения.
Если ни одно из правил не позволяет сделать вывод об объекте, то его значение запрашивается у
пользователя.
       Для фиксации текущего правила, рассматриваемого в данный момент, процедура использует
указатель правил. Работа начинается с просмотра списка объектов для проверки наличия искомого
объекта. Если объект не найден, то в вершине списка создается новый узел.




                                                        109