Основы современных компьютерных технологий

                


Пролог и логическое программирование - часть 5


  • ГОТОВ(Х1) if ПРОВЕРЕН(Х1) and ЗАПРАВЛЕН(Х1).
  • ВЗЛЕТЕЛ(Х2) if ГОТОВ(Х2) and ДАНО_РАЗР(Х2) and (НЕ_НАХ_ВЗП(Х2).
  • НАХ_ВЗП(Х3) if ГОТОВ(ХЗ) and ДAHO_PA3P(X3) and not (ВЗЛЕТЕЛ(ХЗ).
  • ВЫП_РЕЙС(Х4) if (ВЗЛЕТЕЛ(Х4).
  • ПРОВЕРЕН(ЯК-42)
  • ЗАПРАВЛЕН(ЯК-42)
  • ПРОВЕРЕН(ТУ-134)
  • ЗАПРАВЛЕН(ИЛ-62)
  • ДАНО_РАЗР(ЯК-42)
  • НЕ_НАХ_ВЗП(ЯК-42).
  • Предложения 1-4 являются утверждениями Пролога, предложения 5-10 - факты. Переменные в каждом утверждении являются локальными - их область действия одно утверждение.

  • Представим утверждения в форме дизъюнктов:
  • ГОТОВ(Х1) ¬ ? ПРОВЕРЕН(Х1) ¬? ЗАПРАВЛЕН (X1).
  • ВЗЛЕТЕЛ(Х2) ¬ ? ГОТОВ(Х2) ¬ ? ДАНО_РАЗР(Х2) ¬ ? НЕ_НАХ_ВЗП(Х2).
  • НАХ_ВЗП(ХЗ) ¬ ? ГОТОВ(ХЗ) ¬ ? ДАНО_РАЗР(ХЗ) ¬ ? ВЗЛЕТЕЛ(ХЗ)
  • ВЫП_РЕЙС(Х4) ¬ ? ВЗЛЕТЕЛ(Х4)
  • ПРОВЕРЕН(ЯК-42)
  • ЗАПРАВЛЕН(ЯК-42)
  • ПРОВЕРЕН(ТУ-134)
  • ЗАПРАВЛЕН(ИЛ-62)
  • ДАНО_РАЗР(ЯК-42)
  • НЕ_НАХ_ВЗП(ЯК-42)
  • Запрос: ? ¬ ВЫП_РЕЙС(Z). Доказательство запроса приведено ниже.

    Запрос Правило Подстановка
    ?¬ВЫП_РЕЙС(Z) 4 Z=X4
    ?¬ВЗЛЕТЕЛ(Х4) 2 Х4=Х2
    ?¬ ГОТОВ(Х2) ? ¬ ДАНО РАЗР(Х2) ? ¬ НЕ_НАХ_ВЗП(Х2) 1 Х2=Х1
    ? ¬ ПРОВЕРЕН(Х1) ? ¬ ЗАПРАВЛЕН(Х1) ? ¬ ДАНО_РАЗР(Х1) ? ¬ НЕ_НАХ_ВЗП(Х1) 5 Х1=ЯК-42
    ? ¬ЗАПРАВЛЕН(ЯК-42) ? ¬ ДАНО РАЗР(ЯК-42) ? ¬ НЕ_НАХ_ВЗП(ЯК-42) 6  
    7 ¬ДАНО РАЗР(ЯК-42) ? ¬ НЕ_НАХ_ВЗП(ЯК-42) 9  
    ? ¬ НЕ_НАХ_ВЗП(ЯК-42) 10  
    ?    

    307

    В результате доказательства мы вывели логически пустой дизъюнкт D, следовательно, цель допускается. Композиция подстановок Z=X4=X2=X1 =ЯК-42 на наш запрос дает ответ 7=ЯК-42. Любая другая подстановка, например, Х1 =ТУ-134, приводит в тупик.

    308

    304 :: 305 :: 306 :: 307 :: 308 :: Содержание




    Содержание  Назад  Вперед