Самостоятельная работа № 1
Задача: составить базу знаний семья по приведенной ниже схеме (для простоты примем, что в семье только мужчины). Составить факты, правила родственных отношений и поставить вопросы к системе.
По приведенной схеме составим факты:
отец("Лев","Андрей").
отец("Лев","Петр").
отец("Андрей","Алексей").
отец("Петр","Михаил").
отец("Петр","Дмитрий").
Теперь по той же схеме можно составить правила:
сын(x,y):-отец(y,x).
дедушка(x,y):-отец(x,z),отец(z,y).
внук(x,y):-дедушка(y,x).
брат(x,y):-отец(z,x),отец(z,y),не(равно (x,y)).
дядя(x,y):-брат(x,z),отец(z,y).
племянник(x,y):-дядя(y,x).
кузен(x,y):-сын(x,z),дядя(x,y).
Теперь можно составить и вопросы системе
?отец("Лев","Андрей"). -> машина даст ответ ДА или НЕТ
?внук("Алексей","Лев"). -> машина даст ответ ДА или НЕТ
?сын("Дмитрий","Андрей"). -> машина даст ответ ДА или НЕТ
?отец("Петр",x). -> система даст ответ на вопрос кто сын у Петра
?сын(y,"Петр"). -> система даст ответ кто отец у Петра
Вот так будет выглядеть программа:
А вот так будут выглядеть все ответы системы: