Логическое программирование нейросети 3


Процедура «мать*:

Процедура «отец*:

отец (X, Y): мужчина(Х), родитель (X, Y)

Процедура "брат":

брат (X,Y): мужчина (X), родитель (Р, X), родитель (Р, Y), XOY

Процедура «сестра»:

сестра (X, Y): женщина (X), родитель (Р, X), родитель (Р, Y),

Процедура «дядя»:

дядя (X, Y): брат (X, Р), родитель (Р, Y)

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

дядя (X, Y), тогда решение (вывод) заключается в нахождении всех пар переменных (имен объектов)

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





Содержание раздела