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

UptoLike

123
Это правило определяет свойство объекта «иметь собаку» так: «Некто имеет собаку, еслион
имеет нечто, что является собакой».
По сути, выполнение программы на языке Пролог представляет собой доказательство
истинности некоторого логического утверждения в рамках данной совокупности фактов и
правил. Алгоритм этого доказательства, называемый алгоритмом логического вывода, полностью
определяет принципы выполнения программ на языке Пролог и представляет собой того второго
«кита», на котором стоит Пролог.
Выполнение пролог-программы всегда начинается с ввода так называемого запроса,
который представляет собой конструкцию вида
? - А, В,С.
Для выполнения некоторой совокупности подцелей, будь то запрос, или подцели, входящие
в правило, Пролог берѐт первую подцель и пытается доказать истинность этого утверждения (или,
как мы будем говорить, выполнить подцель). Для этого просматриваются все факты и правила,
составляющие программу, и ищется факт, сопоставимый с подцелью, или правило, заголовок
которого сопоставляется с ней. Если такой факт найден, то истинность утверждения считается
доказанной и берѐтся следующая подцель. Если найдено правило, то Пролог пытается по тем же
правилам доказать истинность всех подцелей данного правила. Если при поиске обнаружено, что
имеется несколько вариантов доказательства истинности подцели (т.е. есть несколько фактов или
правил, сопоставимых с ней), то Пролог автоматически отмечает так называемую точку возврата,
т. е. запоминает альтернативные варианты решения. Если в какой-то момент выполнения
программы очередная подцель не может быть выполнена, автоматически производится возврат к
последней отмеченной точке возврата и Пролог пытается найти другой вариант доказательства
(или, что то же самое, другой путь выполнения программы). Автоматический перебор возможных
вариантов решения является фундаментальным свойством языка Пролог, которое часто
оказывается крайне полезным. Кроме фактов и правил, определяемых программистом, в
программе можно использовать так называемые встроенные предикаты, выполняющие
всевозможные вспомогательные действия - вычисления, сравнение величин, ввод-вывод и др. Как
видим, вместо десятков разнообразных операторов, из которых конструируется программа в
процедурных языках, в языке Пролог имеется всего один вид оператора правило, что и
определяет лаконичность языка,
     Это правило определяет свойство объекта «иметь собаку» так: «Некто имеет собаку, еслион
     имеет нечто, что является собакой».
     По сути, выполнение программы на языке Пролог представляет собой доказательство
истинности некоторого логического утверждения в рамках данной совокупности фактов и
правил. Алгоритм этого доказательства, называемый алгоритмом логического вывода, полностью
определяет принципы выполнения программ на языке Пролог и представляет собой того второго
«кита», на котором стоит Пролог.
     Выполнение пролог-программы всегда начинается с ввода так называемого запроса,
который представляет собой конструкцию вида

                                           ? - А, В,С.

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




                                               123