русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Скулемовские стандартные формы.


Дата добавления: 2013-12-23; просмотров: 3539; Нарушение авторских прав


История вопроса

Автоматизация доказательства в логике предикатов.

Поиск общей разрешающей процедуры для проверки общезначимости формул начал Лейбниц в XVII веке, затем был продолжен в начале XX века до тех пор, пока в 1936 году Черч и Тьюринг независимо не доказали, что не существует никакой общей разрешающей процедуры, никакого алгоритма, проверяющего общезначимость формул в логике предикатов первого порядка.

Тем не менее, существуют алгоритмы поиска доказательства, которые могут подтвердить, что формула общезначима, если она на самом деле общезначима (для необщезначимых формул эти алгоритмы, вообще говоря, не заканчивают свою работу).

Очень важный подход к автоматическому доказательству теорем был дан Эрбраном в 1930 году. По определению общезначимая формула есть формула, которая истинна при всех интерпретациях. Эрбран разработал алгоритм нахождения интерпретации, которая опровергает данную формулу. Однако, если данная формула действительно общезначима, то никакой интерпретации не существует и алгоритм заканчивает работу за конечное число шагов. Метод Эрбрана служит основой для большинства современных автоматических алгоритмов поиска доказательства.

Гилмор в 1959 году одним из первых реализовал процедуру Эрбрана. Его программа была предназначена для обнаружения противоречивости отрицания данной формулы, так как формула общезначима тогда и только тогда, когда ее отрицание противоречиво. Однако, программа Гилмора оказалась неэффективной и в 1960 году метод Гилмора был улучшен Девисом и Патнемом. Однако их улучшение оказалось недостаточным, так как многие общезначимые формулы логики предикатов все еще не могли быть доказаны на ЭВМ за разумное время.

Главный шаг вперед сделал Робинсон в 1965 году, который ввел так называемый метод резолюций, который оказался много эффективней, чем любая описанная ранее процедура. После введения метода резолюций был предложен ряд стратегий для увеличения его эффективности. Такими стратегиями являются семантическая резолюция, лок-резолюция, линейная резолюция, стратегия предпочтения единичных и стратегия поддержки.



Процедуры доказательства по Эрбрану или методу резолюций на самом деле являются процедурами опровержения, то есть вместо доказательства общезначимости формулы доказывается, что ее отрицание противоречиво. Кроме того, эти процедуры опровержения применяются к некоторой стандартной форме, которая была введена Девисом и Патнемом. По существу они использовали следующие идеи:

1. Формула логики предикатов может быть сведена к ПНФ, в которой матрица не содержит никаких кванторов, а префикс есть последовательность кванторов.

2. Поскольку матрица не содержит кванторов, она может быть сведена к конъюнктивной нормальной форме.

3. Сохраняя противоречивость формулы, в ней можно исключить кванторы существования путем использования скулемовских функций.

Алгоритм преобразования формулы в ПНФ известен. При помощи законов эквивалентных преобразований логики высказываний можно свести матрицу к КНФ.

Алгоритм преобразования формул в ДНФ и КНФ.

Шаг 1. Используем законы законы 1 и 2 исчисления высказываний для того, чтобы исключить логические связки импликации и эквивалентности.

Шаг 2. Многократно используем закон двойного отрицания, и законы де Моргана, чтобы внести знак отрицания внутрь формулы.

Шаг 3. Несколько раз используем дистрибутивные законы и другие законы, чтобы получить НФ.

Алгоритм преобразования формулы (K1x1)…(Knxn) (M), где каждое (Kixi), i = 1,…,n, есть или ("xi) или ($xi), и M есть КНФ в скулемовскую нормальную форму (СНФ) приведен ниже.

Алгоритм преобразования ПНФ в ССФ.

Шаг 1. Представим формулу в ПНФ (K1x1)…(Knxn) (M), где M есть КНФ. Пусть Kr есть квантор существования в префиксе (K1x1)…(Knxn), 1<=r<=n.

Шаг 2. Если никакой квантор всеобщности не стоит левее Kr – выберем новую константу c, отличную от других констант, входящих в M, заменим все xr в M на c и вычеркнем Krxr из префикса. Если K1,…Ki – список всех кванторов всеобщности, встречающихся в префиксе левее Kr, 1< i<r, выберем новый i –местный функциональный символ f, отличный от других функциональных символов, заменим все xr в M на f(x1, x2,…xi) и вычеркнем Krxr из префикса.

Шаг 3. Применим шаг 2 для всех кванторов существования в префиксе. Последняя из полученных формул есть скулемовская стандартная форма формулы. Константы и функции, используемые для замены переменных квантора существования, называются скулемовскими функциями.

Пример 8. Получить ССФ для формулы ($x)("y)("z)($u)("v)($w) (P(x, y, z, u, v, w).

В этой формуле левее ($x) нет никаких кванторов всеобщности, левее ($u) стоят ("y) и ("z), а левее ($w) стоят ("y), ("z) и ("v). Следовательно, мы заменим переменную x на константу a, переменную u - на двухместную f(y, z), переменную w - на трехместную функцию g(y, z, v). Таким образом, мы получаем следующую стандартную форму написанной выше формулы:

("y)("z)("v)(P(a, y, z, f(y, z), g(y, z, v)).

Определение 22: Дизъюнктом называется дизъюнкция литералов. Дизъюнкт, содержащий r литералов, называется r- литеральным дизъюнктом. Однолитеральный дизъюнкт называется единичным дизъюнктом. Если дизъюнкт не содержит никаких литералов, то он называется пустым дизъюнктом- я . Так как пустой дизъюнкт не содержит литер, которые могли бы быть истинными при любых интерпретациях, то пустой дизъюнкт всегда ложен.

Определение 23: Множество дизъюнктов S есть конъюнкция всех дизъюнктов из S , где каждая переменная в S считается управляемой квантором всеобщности.

Вследствие последнего определения, ССФ может быть представлена множеством дизъюнктов.

Пример 9. Получить скулемовскую стандартную форму формулы

("x) (P(x) Ù ("y)(Ø ("z)Q(z, y)® ($u)R(u, y))) и представить её в виде множества дизъюнктов.

1. Исключим связки импликации:

("x) (P(x) Ù ("y)(Ø Ø("z)Q(x, y)Ú ($u)R(u, x, y))).

2. Удалим бесполезные кванторы:

("x) (P(x) Ù ("y)(Ø ØQ(z, y)Ú ($u)R(u, y))).

3. Применим правило двойного отрицания:

("x) (P(x) Ù ("y)(Q(z, y)Ú ($u)R(u, y))).

4. Переместим кванторы в начало формулы:

("x)("y)($u) (P(x) Ù (Q(z, y)Ú R(u, y))),

("x)("y)($u) (P(x) Ù (Q(z, y)Ú R(u, y))).

Получим ПНФ.

("x)("y)($u)(P(x) Ù (Q(z, y)Ú R(u, y))), у которой матрица находится в КНФ.

Избавимся от кванторов существования в префиксе:

Так как перед ($u) есть ("x),("y) то переменная u заменяется двухместной функцией f(x, y). Таким образом, мы получаем следующую стандартную форму:

("x)("y)(P(x) Ù (Q(z, y) Ú R(f(x, y), y))).

Получим ССФ.

Отбросим кванторы всеобщности и заменим конъюкцию на перечисление:

{P(x), (Q(z, y) Ú R(f(x, y), y))}.

Получим множество из двух дизъюнктов.

Пример 10. Получить скулемовскую стандартную форму формулы

("x)($y)($z)(( Ø P(x, y) Ù Q(x, z)) Ú R(x, y, z) Ù (Ø Q(x, z) Ù P(x, y))).

Сначала сведем матрицу к КНФ:

((Ø P(x, y) Ú R(x, y, z ))Ù (Q(x, z) Ú R(x, y, z)) Ù (Ø Q(x, z) Ù P(x, y))).

Затем избавимся от кванторов существования в префиксе:

Так как перед ($y)($z) есть ("x), то переменные y, z заменяются соответственно одноместными функциями f(x), g(x). Таким образом, мы получаем следующую стандартную форму:

("x)(((Ø P(x, f(x)) Ú R(x, f(x), g(x)))Ù (Q(x, g(x)) Ú R(x, f(x), g(x)) Ù (ØQ(x, g(x)) Ù P(x, f(x)))).

Представим полученную ССФ в виде множества дизъюнктов:

{ШP(x, f(x))Ъ R(x, f(x), g(x)), Q(x, g(x)) Ъ R(x, f(x), g(x)), ØQ(x, g(x)) Ù P(x, f(x))}.

Теорема 3. Пусть S – множество дизъюнктов, которые представляют ССФ формулы F. Тогда F противоречива в том и только в том случае, когда S противоречиво.

На основании теорем 2 и 3 можно сделать вывод, что формула G является логическим следствием формулы F тогда, когда противоречива конъюнкция множества S и формулы ШG, то есть противоречива формула S1 Щ S2 Щ …Sn Щ ШG. Таким образом, если в множество S добавить негативный литерал ШG и доказать, что полученное множество противоречиво, то тем самым можно доказать выводимость G из множества S.



<== предыдущая лекция | следующая лекция ==>
Предваренные (пренексные) нормальные формы исчисления предикатов. | Метод резолюций в исчислении высказываний.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.006 сек.