Составители:
Рубрика:
49
  В Турбо-Прологе эта  задача  решается  конструированием правил, не 
содержащих в себе данных, т.  е.  правил  нулевой арности.  Задача,  таким  
образом,  сводится  к написанию сокращенного варианта запроса. Пояснить  
только  что  сказанное можно на следующем примере. Представим себе не-
кую гипотетическую семью: Фрэнк и Мэри являются мужем и женой. Их сы-
на зовут  Сэмом, а дочку - Дебби. Ниже приведен небольшой диалог, касаю-
щийся этой семьи. 
  Вопрос: Кем приходятся друг другу Дебби и Сэм ? 
  Ответ : Дебби - сестра Сэма. 
  Вопрос: Из чего Вы это заключили ? 
Ответ : У Дебби и Сэма одни и те же родители, Дебби -  девочка. Та-
ким образом, Дебби - сестра 
Сэма. 
  Второй из вопросов является  разговорной  формулировкой правила,  
которое будет использоваться для ответа на запрос. Это правило можно пе-
рефразировать таким образом: 
  Дебби - сестра Сэма,  если 
  Дебби - существо женского пола, 
  и родители Дебби есть родители Сэма. 
  Фраза  включает в себя условие "если" (if), который логически связыва-
ет оба 
утверждения. Утверждение, предшествующее "если" называется за-
ключением или логическим следствием, а утверждение, следующее за "если" 
- допущением  или предпосылкой. 
  Предикатные выражения являются теми блоками, из которых в  Проло-
ге  строятся  правила.  Факты, описывающие отношения между Фрэнком, 
Мэри, Сэмом и Дебби можно сформулировать  при помощи таких утвержде-
ний Турбо-Пролога: 
male("Frank").    /* Фрэнк - 
мужского пола */  
male("Sam").      /* Сэм - мужского пола    */  
female("Mary").   /* Мэри - женского пола */  
female("Debbie"). /* Дебби - женского пола */  
parents("Sam","Frank","Mary"). /* Родители Сэма есть 
 Фрэнк и Мери */  
parents("Debbie","Frank","Mary"). 
/* Родители Дебби есть Фрэнк и Мери */ 
  Имея  в наличии эти утверждения, необходимо лишь ввести правило, 
задающее отношение брат-сестра: 
  sister(Sister,Brother) if female(Sister),  
     parents(Sister,Father,Mother), 
parents(Brother,Father,Mother). 
  Отметим,  что в формулировке правила нет
 никаких данных о конкрет-
ной семье; объекты Sister, Brother, Father и Mother являются  переменными.
  Двойное   использование   предиката parents  устанавливает  логиче-
скую  связь  между переменными Sister и Brother. Наличие предиката female 
позволяет выбрать ребенка женского пола.  Три  предиката  предпосылки  
правила вполне достаточны для получения нужного заключения. Программа 
      В Турбо-Прологе эта задача решается конструированием правил, не
содержащих в себе данных, т. е. правил нулевой арности. Задача, таким
образом, сводится к написанию сокращенного варианта запроса. Пояснить
только что сказанное можно на следующем примере. Представим себе не-
кую гипотетическую семью: Фрэнк и Мэри являются мужем и женой. Их сы-
на зовут Сэмом, а дочку - Дебби. Ниже приведен небольшой диалог, касаю-
щийся этой семьи.
      Вопрос: Кем приходятся друг другу Дебби и Сэм ?
      Ответ : Дебби - сестра Сэма.
      Вопрос: Из чего Вы это заключили ?
      Ответ : У Дебби и Сэма одни и те же родители, Дебби - девочка. Та-
ким образом, Дебби - сестра Сэма.
      Второй из вопросов является разговорной формулировкой правила,
которое будет использоваться для ответа на запрос. Это правило можно пе-
рефразировать таким образом:
      Дебби - сестра Сэма, если
            Дебби - существо женского пола,
            и родители Дебби есть родители Сэма.
      Фраза включает в себя условие "если" (if), который логически связыва-
ет оба утверждения. Утверждение, предшествующее "если" называется за-
ключением или логическим следствием, а утверждение, следующее за "если"
- допущением или предпосылкой.
      Предикатные выражения являются теми блоками, из которых в Проло-
ге строятся правила. Факты, описывающие отношения между Фрэнком,
Мэри, Сэмом и Дебби можно сформулировать при помощи таких утвержде-
ний Турбо-Пролога:
      male("Frank"). /* Фрэнк - мужского пола */
      male("Sam").       /* Сэм - мужского пола */
      female("Mary"). /* Мэри - женского пола */
      female("Debbie"). /* Дебби - женского пола */
      parents("Sam","Frank","Mary"). /* Родители Сэма есть
                                            Фрэнк и Мери */
      parents("Debbie","Frank","Mary").
            /* Родители Дебби есть Фрэнк и Мери */
      Имея в наличии эти утверждения, необходимо лишь ввести правило,
задающее отношение брат-сестра:
            sister(Sister,Brother) if female(Sister),
                         parents(Sister,Father,Mother),
                         parents(Brother,Father,Mother).
      Отметим, что в формулировке правила нет никаких данных о конкрет-
ной семье; объекты Sister, Brother, Father и Mother являются переменными.
      Двойное использование предиката parents устанавливает логиче-
скую связь между переменными Sister и Brother. Наличие предиката female
позволяет выбрать ребенка женского пола. Три предиката предпосылки
правила вполне достаточны для получения нужного заключения. Программа
                                                                         49
Страницы
- « первая
- ‹ предыдущая
- …
- 47
- 48
- 49
- 50
- 51
- …
- следующая ›
- последняя »
