Раздел 8 Логическое программирование Экспертный анализ

Физика
Лабораторные работы
Курс электрических цепей
Полупроводниковая электроника
Курс лекций и задач
Потенциал электpостатического поля
Пpимеpы использования теоpемы Гаусса
Закон Ома
Закон Ампеpа
Феppомагнетизм
Электротехника и электроника
Резонанс напряжений
Методы расчета сложных цепей
Трехфазные цепи
Цепи со взаимной индуктивностью
Несинусоидальные токи
Математика
Вычислительная математика
Векторная алгебра
Графика
Начертательная геометрия
Сборочные чертежи
Инженерная графика
Построение лекальных кривых
Геометрические построения
Позиционные задачи
Информатика
Электронная коммутация
Модернизация компьютера
Архитектура компьютера
Маршрутизация
Экспертные системы
Компьютерная безопасность
Требования к защите компьютерной информации
Проектирование системы защиты
Авторизация
Категорирование прав доступа
Диспетчер доступа
Антивирусная защита
Атомная энергетика
Атомные батареи
Физика атомного реактора
Атомные электростанции
Испытания атомного оружия
Воспоминания участников
атомного проекта

Еще в конце 1970-х годов стала отчетливо просматриваться тенденция к использованию в исследованиях в области искусственного интеллекта "формальных" методов, т.е. основанных на аппарате математической логики.

  • Под автоматическим формированием суждений (automated reasoning) понимается поведение некоторой компьютерной программы, которая строит логический вывод на основании определенных законов. Так, нельзя отнести к классу программ автоматического формирования суждений программу, которая моделирует подбрасывание монетки, чтобы определить, следует ли одна формула из набора других.
  • Ниже приведены все синтаксические правила, которые используются для конструирования правильно построенных формул (ППФ) в исчислении высказываний.
  • Для этого нужно анализировать пропозициональные символы в форме предикатов и аргументов, кванторов и квантифщированных переменных. Логика предикатов предоставляет нам набор синтаксических правил, позволяющих выполнить такой анализ, набор семантических правил, с помощью которых интерпретируются эти выражения, и теорию доказательств, которая позволяет вывести правильные формулы, используя синтаксические правила дедукции.
  • PROLOG — это не совсем обычный язык программирования, в котором программа состоит в основном из логических формул, а процесс выполнения программы представляет собой доказательство теоремы определенного вида. В языке PROLOG используется "интерпретация фраз Хорна для решения проблем" (см. [Kowalski, 1979, р. 88-89]). Фундаментальный метод доказательства теорем, на котором базируется PROLOG, называется опровержением резолюций
  • Мощность резолюции обеспечивается тем, что в ней суммируется множество других правил. Это станет очевидно после того, как обычные правила будут представлены в конъюнктивной нормальной форме.
  • Резолюция представляет собой правило вывода, с помощью которого можно вывести новую ППФ (правильно построенную формулу) из старой. Однако в приведенном выше описании логической системы ничего не говорилось о том, как выполнить доказательство. В этом разделе мы обратим основное внимание на стратегические аспекты доказательства теорем.
  • Система PLANNER моделировала состояние некоторой области рассуждений в терминах ассоциативной базы данных, которая содержала как утверждения, так и теоремы, функционирующие как процедуры. Утверждения представляли собой списки типа "предикат-аргумент", подобные тем, что используются в LISP
  • Также было показано, что если записать это выражение таким образом, чтобы слева от оператора ":-" стоял единственный позитивный литерал, а справа — негативные литералы, то получится выражение, представляющее фразу Хорна в синтаксисе языка логического программирования PROLOG:
  • В языке PROLOG такое упорядочение называется правилом поиска слева направо.
  • Определенные факты (основные атомы — ground atoms) нужно разместить в базе данных раньше, чем правила, которые в качестве цели имеют соответствующие предикаты. Таким образом будут минимизированы издержки обращения к правилам. Например, утверждение
  • Имеет ли смысл выразить следующие цитаты с помощью логики предикатов?

    I) Каждый студент использует какой-нибудь компьютер, и по крайней мере один компьютер используется каждым студентом. (Используйте только предикаты СТУДЕНТ, КОМПЬЮТЕР и ИСПОЛЬЗУЕТ.)

    II) Каждый год некоторые студенты-мужчины проваливают каждый экзамен, но каждый студент-женщина сдает какой-нибудь экзамен. (Используйте только предикаты СТУДЕНТ, МУЖЧИНА, ЖЕНЩИНА, СДАЕТ, ЭКЗАМЕН, ГОД.)

    Ill) Каждый мужчина любит какую-нибудь женщину, которая любит другого мужчину. (Используйте только предикаты МУЖЧИНА, ЖЕНЩИНА, ЛЮБИТ и = .)

    IV) Не существует двух философов, которые любили бы одну и ту же книгу. (Используйте только предикаты ФИЛОСОФ, КНИГА, ЛЮБИТ и = .)

    2. Выразите предложения упр. 1 в форме фразы.

    3. Имеет ли смысл выразить следующие цитаты с помощью логики предикатов? Покажите, в чем состоит сложность такого преобразования в каждом конкретном случае.

    I) Ни один человек не является островом. (Джон Донн (John Donne))

    II) Человек, который живет где-нибудь, живет везде. (Тацит)

    III) Прошлое — это иная страна. В нем все происходит по-другому. (Л. П. Хартли (L. P. Hartley))

    4. Следующая формула утверждает, что кто-то бреет себя сам или парикмахер бреет кого-то:

    бреет) X, X), бреет (парикмахер, X) <—

    I) Используя обратную стратегию, покажите, что из этой формулы следует

    бреет (парикмахер, парикмахер) <-

    II) То же самое покажите с помощью прямой стратегии.

    III) Как вы понимаете в том же контексте следующую фразу:

    <- бреет(У, Y), бреет (парикмахер, У)

    IV) Покажите, что следующие фразы противоречивы. Для этого достаточно показать, что из них следует пустая фраза:

    бреет(Х, X), бреет (парикмахер, X)

    <-<- бреет(У, Y), бреет (парикмахер, Y)

  • Примеры решения типовых задач математика, физика, электротехника