Математическая логика и теория алгоритмов. Для изучающих компьютерные науки
щей пролог-программой: clauses родитель (пат, джим). родитель (пам, боб), родитель (том, боб), родитель (том, лиз). родитель (боб, эии). родитель (боб, пат). (ЗЛО) (3.11) (3.12) (3.13) (3.14) (3.15) Отметим, что каждое предложение ПРОЛОГа заканчивается точкой. Кро ме операторов (3.10)-(3.14), считающихся клаузами, ПРОЛОГ-программа должна содержать описания в начале программы: domains имя = simbol predicates родитель (имя, имя) затем идут указанные клаузы. После ввода такой программы в ПРОЛОГ-систему этой системе можно за давать вопросы, касающиеся отношения родитель. Например, является ли Боб родителем Пата? Этот вопрос (цель) ставится следующим образом: goal ? - родитель (боб, пат). start. Система ответит: YES (да). Ответ ищется следующим образом. Вопрос преобразуется в дизъюнкт: -1родитель (боб, пат). (3.16) Далее из (3.14) и (3.16) бинарной резолюцией получаем пустой дизъюнкт =;>что и означает положительный ответ. Другим вопросом мог бы быть такой: ? - родитель (пам, лиз). Система ответит: No (нет). Этот ответ в данном случае требует особого пояснения. Для получения указанного ответа образуется дизъюнкт: —1родитель (пам, лиз). (3.17) Этот дизъюнкт ни с одним из дизъюнктов (3.10)-(3.15) не дает пустого дизъюнкта. По идеологии вопросно-ответных систем ЭВМ должна была бы ор ганизовать отрицание вопроса, т.е. дизъюнкт: родитель (пам, лиз). (3.18) По и этот дизъюнкт вместе с (3.10)-(3.15) не порождает пустого дизъюнк та. Следовательно, система должна была бы ответить: "недостаточно информа ции". По в реализации ПРОЛОГа этого не будет. Система рассмотрит только 83
Made with FlippingBook
RkJQdWJsaXNoZXIy MTY0OTYy