![]() |
![]() |
Структура: условие – заключение.
Продукционная модель: if P then C
P ::= S|(P)|not P|S or P|S and P
S ::= Предложение типа 1
Общая структура базы знаний:
R1
if P1 then C1
R2
if P2 then C2
…
Rn
if Pn then Cn
Чтобы отследить цепочку рассуждений, используется специальная матрица BB , которая имеет размерность n x n , где n – число правил в базе знаний. 1 в матрице означает, что правила взаимосвязаны, а 0 – в любом другом случае.
Нам необходимы две структуры: структура логических условий (правил) LR и структура логических заключений LC .
Механизм прямого вывода заключается в следующем: мы идем по правилам и создаем множество всех целей новые правила.
Алгоритм :
Done := false ;
While not Done do
Begin
Done := True ;
I := 1;
For I := 1 to N do
Begin
Get_premise (st, i); // условие правила i
Compile_conc (st);
Compare (st, BB, Match);
If Match > 0.5 then
Begin
Get_conclusion (conc, i);
Compile_conclusion (conc);
Add_to_LC (i);
Done := False ;
End ;
End ;
End ;
Для ключевого слова 3 в компилируемых данных
Для ключевого слова в компилируемом условии
Процесс сходства ( matching ) делится на два этапа:
Найти сходные слова.
Если они найдены, продолжить компиляцию.
Рассмотрим отрезок [0;1].
1. Если LB1 = UB1 и LB2 = UB2, тогда M = 1, иначе М = 0.
2. Если LB1 ≠ UB1 и LB2 = UB2, тогда
2.1 Если условие не находится в области утверждения, то М = 0.
2.2 Характеристическая функция:
Тогда
3. Если LB1 = UB1 и LB2 ≠ UB2, тогда
3.1 если данные утверждения включены в отрезок условия, то М = 1, иначе М = 0
4. Если LB1 ≠ UB1 и LB2 ≠ UB2, тогда
4.1 Если отрезки не пересекаются, то М = 0
4.2 Если отрезок условий содержит отрезок данных, т.е. LB1 ≥ LB2 и UB2 ≥ UB1, то М = 1
4.3 Если отрезки пересекаются и отрезок данных выше, чем отрезок условий, т.е. UB1≥ UB2 и LB1 ≥ LB2, то М =
Как указывалось ранее, условие может включать ключевые слова НЕ, И, ИЛИ, т.е. условие состоит из нескольких частей, и вывод нужно делать отдельно. В этом случае результаты можно представить в виде следующих формул:
M (A) OR M (B) = MAX (M (A), M (B))
M (A) AND M (B) = MIN (M (A), M (B))
NOT ( M ( A )) = 1 – M ( A )
При выводе заключения коэффициент уверенности заменяется коэффициентом сходства М.
![]() |
![]() |