Добавил:
Rumpelstilzchen2018@yandex.ru Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2-й семестр / Методичка Дзержинский

.pdf
Скачиваний:
226
Добавлен:
25.12.2020
Размер:
1.09 Mб
Скачать

высказывания.

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

Метод резолюции

Метод резолюции – наиболее эффективный способ алгоритмического доказательства как в логике высказываний так и в логике предикатов именно этот метод построения доказательств составляет основу языка программирования ПРОЛОГ

Мы знаем что любую формулу не являющуюся тавтологией можно представить в виде КНФ.

Определение. Латерал – это произвольный атом или его отрицание. Дизъюнкция конечного множества литералов называется дизъюнктом Пустой дизъюнкт – это дизъюнкт который не содержит ни одного

литерала и является всегда неподтверждённым.

Удобнее формулировать сложное высказывание, представленное в виде КНФ как множество дизъюнктов . А каждый дизъюнкт представлять как множество литералов. ТО есть КНФ это конъюнкция конечного множества дизъюнктов , а дизъюнкт – это дизъюнкция конечного множества литералов.

Пример (Av¬Bv¬C) ^(BvD)^( ¬Av¬D) S={{{A, ┐B, ┐C},{B,D},{┐A, ┐D}}

Напомним свойства операций v и ^: Склеивание дизъюнкций

(XvD)*( ¬XvD)=(X*¬X)vD=0vD=D

Поглощение

D1*(D1vD2)=(D1v0)*( D1vD2)= D1v(0*D2)=D1v0=D1

Обобщённое склеивание

(XvD1)*( ¬XvD2)=(XvD1)*( ¬XvD2)*(D1vD2)

Доказательство этого

(XvD1)*( ¬XvD2)=(XvD1)*(XvD1vD2)*( ¬XvD2)*( ¬XvD2vD1)=(XvD1)*( ¬XvD2)*(XvD1vD2)( ¬XvD2vD1)=

=(XvD1)*( ¬XvD2)*(D1vD2)

XvD1

D1vD2

¬XvD2

Пусть С1 и С2 – дизъюнкты, такие что C1 ={L}υA a C2={¬L}υB

31

Мы можем считать, что дизъюнкты С1 и С2 вступают в противоречие, так как С1 содержит литерал L a C2 – литерал - ¬L.Устранение причины противоречия приводит к дизъюнкту D=AυB, который разрешает конфликт. Своим названием метод резолюции обязан этому разрешению (от англ. Resolve

– разрешать)

Дадим формальное определение резолюции

Опр Пусть С1 и С2 дизъюнкты, L- такой литерал, что L ϵ C1 и ¬L ϵ C2, тогда резольвентой дизъюнктов С1 и С2 называется дизъюнкт

D={C1\{L}}υ{C2\{¬L}

D={AυB}

Опр Пусть мн. S={C1,….Cn} – множество дизъюнктов. Резольвентой мн S наз множество R(S)=Sυ{D:D-резольвента дизъюнктов Ci,Cj 1≤i,j≤n}

Пример S={{A, ¬B, ¬C},{B,D},{¬A, ¬D}}

В итоге R(S)= {B,D},{¬A, ¬D},{A,D, ¬C},{B¬A},{¬B, ¬C, ¬D}

Мы можем продолжить применять этот метод последовательно получим множества

R0 (S)=S,R1(S)=R0(S) υR(S), R2(S)=R1(S) υR(R1S …Rn(S)= Rn-1(S) υR(Rn-

1(S))

А затем объединив все множества

R*(S)=

Заметим, что R*(S) конечно тогда и только тогда, когда S конечно

Содержательная подоплёка метода резолюции такова: если истинное означивание подтверждает дизъюнкты С1 и С2 , то оно также подтверждает их резольвенту D. Аналогично, если истинностное означивание подтверждает мн. S, то оно также подтверждает R(S).

Заметим, что резольвента D дизъюнктов

C1 и С2 содержит меньше

информации, чем сами дизъюнкты С1 и С2

 

 

Пример

S={{A,B},

{¬B}

 

Применим резолюцию: D={A} –резольвент не содержит никакой информации о литерале В

Опр. Пусть S – множество дизъюнктов. Резолюционным выводом из S

32

назовём такую конечную последовательность дизъюнктов С1,....Сn , что для каждого Ci i=1,…n

Либо Ci ϵ S, либо Ci ϵ R({Cj,Cк}) 1≤j, k≤I

Дизъюнкт C считается резолютивно выводимым из мн. дизъюнктов S, если существует резолютивный вывод из S, последний дизъюнкт которого – С=Cn. Очевидно что C ϵ R*(S). Этот факт обозначается так

S R С

Мн дизъюнктов S не подтверждаемо (или невыполнимо) тогда и только тогда,

Когда R*(S)= содержит пустой дизъюнкт

То есть если мы при применении метода резолюции к множеству S получим пустой дизъюнкт, то множество S будет неподтверждаемым .

Так как правило резолюции – это выводимое правило логики высказываний, то можно использовать теорему дедукции, по которой

{SυK} ⱶ ¬ L ↔ S ⱶ (К→L)

{Sυ¬B} ⱶ □ ↔ S ⱶ (¬B →□)

{Sυ¬B } ⱶ □ ↔ S ⱶ ¬¬B v □

S ⱶ B ↔ (Sυ ¬B) ⱶ □

Пример. Доказать, что высказывание ┐B резолютивно выводимо из мн

S={{A, ┐B},{¬A, ¬B, ¬C},{¬A, ¬B,C}}

Пример. Дано выск азывание

(CA ↔ (B→C))^(A↔B)^A(↔┐C))

Докажите что оно не подтверждаемо (или невыполнимо).

Исчисление предикатов

Опр. Пусть x1,x2,….xn – символы переменных произвольной природы.

33

Наборы переменных (x1,…,xn) принадлежат множеству S2, которое будем называть предметной областью, а переменные будем называть предметами. N- местным предикатом, определённым на предметной области S2, называют отображение S2 во множестве высказываний.

То есть это утверждение о предметных переменных обладающее свойством, что при фиксации значений всех переменных об этом утверждении можно сказать, истинно оно или ложно

P(x,y,z) = “ x2 + y2 ≤ z2; x,y,z ϵ R “- трёхместный предикат определённый

на R3

D(x1,x2) = “натуральное число x1 делится без остатка на натуральное число x2” – двухместный предикат определённый на множестве пор натуральных чисел D(6,3)=И D(5,2)=Л

Множеством истинности предиката наз:

P-1({И}) = {(x1,…,xn) ϵ S2/ P(x2,…,xn) = И}

Множеством ложности предиката наз:

P-1({Л}) = {(x1,…,xn) ϵ S2/ P(x2,…,xn) = Л}

Предикат P, определённый на S2 наз тождественно истинным, если P- 1({И}) = S2

Тождественно ложным. если P-1({Л}) = S2

Нетривиально выполнимым если P-1({И}) ≠ ø и P-1({Л}) ≠ ø

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

Утверждение. Множество n- местных предикатов, определённых на S2 образует булеву алгебру предикатов, т е для них справедливы все аксиомы булевых алгебр (свойства операций)

Фиксация значений переменных: пусть Р(x1,…,xn) n местный предикат, определённый на S2. Зафиксируем xi=a (1≤i≤n). Получим n-1 местный предикат.

Q(x1,…,xi-1, xi+1…,xn)≡P(x1,…, xi-1,a, xi+1,…,xn)

Определённый на мн S2ia значений переменных x1,…, xi-1, xi+1,…xn

Пример P(x,y,z) = x2 + y2 ≤ z2; x,y,z ϵ R3 зафиксируем z=2 получим “ x2 +

34

y2 ≤ 4” (x,y) ϵ R2

Навешивание кванторов:

Окр. Пусть P(x) – одноместный предикат. Поставим ему в соответствие высказывание, обозначаемое xP(x) (для любого x P(x)), которое истинно тогда и только тогда, когда P(x) тождественно истинный предикат.

О высказывании xP(x) говорят, что оно получено из предиката Р навешиванием квантора всеобщности из переменной х

Опр. Когда Р(х) – одноместный предикат. Поставим ему в соответствие высказывание, обозначаемое xP(x) (существует х Р(х)), которое ложно тогда и только тогда, когда Р(х) тождественно ложный предикат. О высказывании xP(x) говорят, что оно получено из предиката Р навешиванием квантора по переменной х.

Квантор всеобщности обобщает конъюнкцию, а квантор существования – дизъюнкцию в случае предикатов, определённых на бесконечных множествах.

Те играют роль бесконечности конъюнкций и дизъюнкций

Аесли Р(х) – одноместный предикат определённый на конечном множестве S2 = {a1;a2;a3;…;an)

Тогда справедливо :

xP(x) ≡ Р(a1)^P(a2)^…^P(an)

xP(x) ≡ Р(a1)vP(a2)v…vP(an)

Доказательство очевидно из определения кванторов и логических операций.

Замечания 1 Высказывание можно считать предикатами, не содержащими переменных, т е

0-местными предикатами

2 Кванторы можно рассматривать как отображения уменьшающиеся местность на 1

3 Формулы алгебры высказываний от n высказывательных переменных можно рассматривать как n-местные предикаты от этих переменных.

Пусть Р(х1,...,хn) – n-местный предикат, определённый на S2 зафиксируем в нем значения переменных x1, xi-1, xi+1,xn на полученной одноместный предикат Q(xi) навесим квантор всеобщности (или существования), получим высказывание. Сопоставления любому набору значений переменных x1,…, xi-1, xi+1,…,xn вполне определённого высказывания

35

– это предикат от n-1 переменных. Говорят, что это (N-1)-местный предикат получен из исходного предиката Р(х1,...,хn) навешиванием квантора всеобщности (или существования) по i- той переменной и обозначают

xi P(x2,…,xn)

Об i переменной говорят, что она связана квантором всеобщности.

Определим индуктивную формулу исчисления предикатов .

Определение Терма : 1) Всякая предметная переменная или предметная константа – терм

2) если f – функция и η1, η2,…, ηn – термы то f(η1,…, ηn) – терм

3)Выражение является термом только в том случае, если это следует из правил 1 и 2

Если Р-предикат, а ηi – термы, то Р(η1,..., ηn) – элементарная формула или

атом.

Определение формулы 1) Всякая элементарная формула является формулой

2)Если А и В – формулы и х-предметная переменная, то каждое из выражений А о В

xА(x); xА(x); ┐А (где о- логическая операция) является формулой.

3) Выражение является формулой в том и только в том случае если это следует из правил 1 и 2

В выражении xА(x) формула А(х) называется областью действия квантора x

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

В пределе всякая формула без свободных переменных (замкнутая формула) является высказыванием, которое истинно или ложно, а всякая формула со свободными переменными задаёт некоторое отношение в предметной области. Это отношение может быть истинно или ложно в зависимости от значений свободных переменных.

Каждая формула F(P,…,Pm,x1,…,xn) в исчислении предикатов задаёт оператор, перерабатывающий систему предикатов Р1,...,Рm в предикат Pa от аргументов x1,…,xn, где все эти перемен в формуле являются свободными. Две

36

формулы, которые задают один и тот же предикат будем называть эквивалентными или равносильными.

Основы равносильности содержащие кванторы:

Закон де Моргана для кванторов (двойственность)

¬(xР(x)) ≡ x ¬(Р(x))

¬(xР(x)) ≡ x ¬(Р(x))

Коммутация одноименных кванторов

xуР(х,у) ≡ ухР(х,у)

xуР(х,у) ≡ ухР(х,у)

Дистрибутивные законы для кванторов

x(Р(x)^Q(x)) ≡ xР(x) ^xQ(x)

x(Р(x)vQ(x)) ≡ xР(x) vxQ(x)

Законы ограничения действ для кванторов

x(Р(x) v Q(у)) ≡ xР(x) v Q(у) x(Р(x)^Q(у)) ≡ xР(x) ^Q(у)

*

уxР(х,у)→ хуР(х,у) ≡ И

ПРИМЕР.

D(x1,x2) = “Натуральное число х1 делится (без остатка) на натуральное число х2”

Навесим последовательно на его переменные кванторы

1)x1x2D(x1x2) ≡ Л

2)x2х1D(x1x2) ≡ л

3)x1x2D(x1x2) ≡ И

4)x2x1D(x1x2) ≡ и

5)x1x2D(x1x2) ≡ И

6)x2x1D(x1x2) ≡ и

7)x1x2D(x1x2) ≡ Л

8)x2x1D(x1x2) ≡ и

Разные кванторы вообще говоря не коммутируют

Другой способ позволяющий получать предложения состоит в

37

подстановке констант на место свободных вхождений переменных. В общем случае, мы имеем следующее определение подстановки

Опр. Подстановочное множества или просто подстановка есть множество Θ = {U1/ƍ1, U2/ƍ2,…,Unƍm}

Где Ui и ƍi, 1≤i≤n, являются соответственно переменными и термами, причём равенство Ui=Uj влечёт ƍi=ƍj, 1≤i≤j≤m

Если ƭ есть какое-либо выражение (атом, терм или формула) то ƍΘ обозначает выражение, полученное путём подстановки на места свободных вхождений переменных U1,…,Un соответствующих термов

ƍ1,..., ƍm

Пустая подстановка обозначается символом Е={} Основной операцией на множестве подстанов. Является

композиция. Определение.

Пусть Θ {U1/S1,…,Um/Sn}

ψ = {ϑ1/t1,…, ϑn/tn) композицией Θ и ψ наз. Подстановка Θψ

={U1/S1ψ,…,Un/Snψ, ϑ1/t1,…, ϑn/tn } – ( {Ui/Siψ/Ui=Siψ} υ {ϑi/ti/ ϑi ϵ{U1,…,U,}} )

Другими словами, мы сначала применяем подстановку ψ к термам ƍ1,..., ƍm подстановки Θ, заменяя в этих термах переменную ϑi на терм ti, а затем дополняем полученную подстановку элементам и множества ψ. При этом мы отбрасываем элементы вида Ui/Siψ если терм Siψ совпадает с Ui и элементы вида ϑi/ti если ϑi содержится среди переменных U1,...,Un подстановки Θ.

Пример

Θ = {x/f(y), y/z}

Ψ= {x/a, y/b, z/y)

Θ Ψ = {x/f(y)Ψ, y/zΨ, x/a, y/b, z/y} – ({Ui/ƍi/Ui=ƍiΨ} υ { ϑi/ti/ϑi ϵ {Uj}}) =

{x/f(b), y/y, x/a, y/b, z/y} – ({y/y} υ {x/a, y/b, }) = {x/f(b), z/y}

Для произвольных подстановок Θ, Ψ, ϒ и для произвольных термов выполняется равенство : (св-во ассоциативности)

1

ΘЕ

=

ЕΘ

=

Θ

2

 

(tΘ)

 

 

Ψ=t(ΘΨ)

3 (Θ Ψ)) = Θ (Ψ ϒ)

 

 

 

 

 

Нормальные формы

В логике предикатов существуют две важные нормальные формы (т е формулы специального вида)

Предваренная нормальная форма(ПНФ) , Сколемовская нормальная

38

форма (СНФ), каждая отличается типами кванторов входящих в предложение.

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

Сколемовская нормальная форма играет важную роль в логическом программировании.

ПНФ: Формула ƍ находится в Предваренной нормальной форме если она имеет вид

(Q1x1)(Q2x2),…,(Qnxn)Ϭ где Qi i=1…,n обозначает один из кванторов им а Ϭ – формула без кванторов.

Выражение (Q1x1),…,(Qnxn) называется префиксом формулы а Ϭ называется матрицей формулы

Пример

Следующие предложения находятся в ПНФ

(х)(у)[Q(x,y)vP(x,y)]

Чтобы привести формулу к ПНФ надо использовать эквивалентность логики высказываний и логики предикатов. Но надо ещё добавить два часто встречающихся случая

Что делать если:

(х)Р(х) ^ (х)G(х) это ≠↔ (х) (Р(х) ^ G(х))

для преобразования этого выражения надо сначала переименовать все вхождения переменной х в формулах (х)G(х). Это сделать важно так как х связанная переменная в этой формуле и её можно заменить на новую переменную которая не будет встречаться и в основной формуле и в формуле Р (например z) тогда

(х)Р(х) ^ (z)G(z) =↔ ((x)(z)[P(x)^G(z)]

Аналогично если

(х)Р(х) v (x)G(x) =↔ ((x)P(x)v ((z)G(z) =↔ =↔ (x)[P(x)v (z)G(z)] =↔ ((x)(z)[ P(x)vG(z)]

Алгоритм приведения формул к ПНФ

1 шаг избавляемся от символов ↔ и → с помощью формул х ~у ≡( ¬х v y)* (x v ¬y)

39

(A ↔ B) =↔ ((A→B)^( B→A) =↔( ┐А v B)^ (A v ┐B)

(A→B) =↔ ( ┐А v B)

2 шаг проносим отрицание вглубь формулы до элементарных. формул

(AvB) =↔ ┐А ^ ┐B

(A^B) =↔ ┐А v ┐B

┐(┐А) =↔ A

┐((x) А =↔ (x) ┐А ┐(x)А =↔ (x) ┐A

Шаг 3 Выносим кванторы наружу с помощью формул

(Здесь В не содержит свободных вхождений х)

(x) А(х) ^ (x) B(х) =↔(x) (А(х) ^ B(х))

(x) А(х) v (x) B(х) =↔(x) (А(х) v B(х)) (Qx) A(x) ^B =↔ (Qx)[A(x)^B(x)]

(Qx) A(x) vB =↔ (Qx)[A(x)vB(x)]

(Здесь В не содержит свободных вхождений х , (Qx) – это (x) или (x)

)

(x) А(х) v (x) B(х) =↔ (x) (z) [А(х) v B(z)] (x) А(х) ^ (x) B(х) =↔ (x) (z) [А(х) ^ B(z)]

Здесь В не содержит свободных вхождений х, переменная z не входит в В и не входит в А, и В(z) есть результат замены свободных вхождений х на z

Пример

(x) (у)[ (z) (P(x,z) ^ P(y,z)) → (u) R(x,y,u)] ↔

(x) (у)[ ┐ (z) (P(x,z) ^ P(y,z)) V (u) R(x,y,u)] ↔

(x) (у)[ (z) (┐ P(x,z) v ┐ P(y,z)) V (u) R(x,y,u)] ↔ (второй шаг делать не надо сразу третий)

(x) (у) (z) [ (┐ P(x,z) v ┐ P(y,z)) V (u) R(x,y,u)] ↔

(x) (у) (z) (u) [ (┐ P(x,z) v ┐ P(y,z)) V R(x,y,u)]

Окр: Предложение ƍ* наз универсальным если оно содержит только кванторы всеобщности и находится в ПНФ и выполняется тогда и только тогда

40

Соседние файлы в папке 2-й семестр