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

матлогика - шпора

.pdf
Скачиваний:
13
Добавлен:
29.05.2015
Размер:
1.44 Mб
Скачать

38. Минимальная нормальная форма, минимальное и трансверсальные покрытия в логике высказываний.

Опытный логик должен уметь опр-ть три вещи: 1)минимальную нормальную форму 2)минимальное покрытие 3)трансверсальное покрытие

Нахождение точных МНФ по известной СДНФ подробно рассматривалось в логике Буля. Если минимизировать СДНФ из 6 конституент одним из известных способов то получим МНФ: A , B , C , D ; A , B , D, E ; B, C, D, E .

Минимальное покрытие-покрытие с наименьшим числом тербов:

В нашем примере (смотри предыдущий вопрос) это заключение C1 = A ; E , в C1

входят два решающих высказывания, связанных с правдивостью кассира (А),

(E).

Все остальные заключения (B, C, D) являются вторичными и могут выступать в качестве результатирующих заключений вместе с A и E.

Трансверсальное покрытие должно включать все имеющиеся тербы. В нашем примере(смотри вопрос 37)

1)A ; B, C, D, E - отображает наиболее полную картину

2)A , B ; C, D, E - заключение C 4 ( A B)

3)A , B , C1 ; D, E - C5

4)A , B , C , D , E

Возьмем, для примера, C5 : оно имеет 3 исхода истинного значения при совместном действии всех 5 факторов.

1)A , B , C =1 и D, E =0

2)A , B , C =0 и D, E =1

3)A , B , C =1 и D, E =1

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

39. Доказательство логических высказываний с помощью метода резолюций.

Этот метод является полу конструктивным методом доказательства истинности логических клауз, в которых исполняются так называемый признак резолюций. Он соответствует аксиоме отношения порядка и вместе с тем образует эффективную конструктивную структуру. Его суть сводится к тому, что 2 посылочных дизъюнкции с противоположными тербами всегда можно склеить в один дизъюнкт, в котором противоположных тербов не будет: x A, y A x y ,

где х, у – произвольные тербы или дизъюнкты, А и A - противоположные тербы. При последующем применении принципа резолюций происходит постепенное

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

-не обязательно использовать все посылки, число которых может быть избыточным, а главное - получить 0.

ПРИМЕР: A B,C A,b C A

Док-во. начнем с приведения ее в нормальное коньюктивное противоречие:

A B,C A, B C , A 0

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

записывать номера использованных при склеивании дизъюнктов:

1 A B

2 C A

3 B C

4 A

5 A C (1;3)

6B(1;4)

7A B (2;3)

8C(2;4)

9A(;5)

10 C (3;6)

11 B (3;8)

12 C (4;5)

13 B (4;7)

14 0(4;9)

Получили 0 – истинность доказана.

40. Логика предикатов.

Предикат - функциональное высказывание. Высказывание – предикатная константа.

Логика предикатов - это расширение логики высказываний за счет использования предикатов в роли логических функций. Эти функции отличаются от функций в логике Буля.

Булева функция - однородна, т.е. для нее область определения функции и область определения аргумента у нее одна и та же. Это логическая область. (0 или 1, ложь либо истина).

Предикатная логическая функция неоднородна. Для нее область значений функции логическая, область определения аргумента - предметная.

ПРИМЕР:

P1 = «Петя читает Пушкина»

P2 = «Рома читает Пушкина» Pn = «Ваня читает Пушкина»

Вместо P1 , P2 , Pn можно ввести предикат P (x) , где х ={Петя, Ваня…}, а P (x) =«Х

читает Пушкина» Изменим:

P1 = «Петя читает Пушкина»

P2 = «Рома читает Достоевского» Pn = «Ваня читает Островского»

Тогда Двуместный предикат: P (x, y) = «Х читает У»

Введем 3-х местный предикат: P(x, y, z), который означает, что ―x есть сумма y

и z‖

 

P(x, y, z)=0

(x y+z)

P(x, y, z)=1

(x=y+z)

Пусть x=5, тогда 3-х местный предикат превратится в 2-х местный.

P(5, y, z)= P (y, z)=‖5 есть сумма y и z‖

Пусть x=5 и y=3 -одноместный

P(5, 3, z)= P (z)=‖5 есть сумма 3 и z‖ z=2, 0-местный предикат или константа ‖5 есть сумма 3 и 2‖

Если бы мы приняли z=1, то P(5, 3, 1)=0, таким образом при замещении предикатом xi предикатной переменной величиной ai происходит превращение

n-местного предиката в n-1-местный предикат, если принимать конкретное значение xi всем, то получим предикатную константу P( a1 , a2 ,…, ai ,…, an )-

предикатная константа, к которой применимы все лог-их высказываний.

41. Минимизация логических выражений методом Куайна (Квайна).

Если лог-ая ф-ия имеет 4 и более перем-х то минимизация с помощью склеивания оказывается недостаточной(появляются лишние импликанты, которые можно исключить из окончательного результата минимизации с помощью склеивания). Пусть дана функция 4-х переем-х, которая имеет единичное значение на следующих наборах:

ƒ(2,5,6,7,10,12,13,14)=1

Таблица истинности:

x1

x2

x3

x4

y

 

0

0

0

0

0

0

1

0

0

0

0

1

0

1

0

0

1

2

1

1

0

0

0

3

0

0

1

0

0

4

1

0

1

0

1

5

0

1

1

0

1

6

1

1

1

0

1

7

0

0

0

1

0

8

1

0

0

1

0

9

0

1

0

1

1

10

1

1

0

1

0

11

0

0

1

1

1

12

1

0

1

1

1

13

0

1

1

1

1

14

1

1

1

1

0

15

=( x4 /\ x2

/\ x1 )\/( x3 /\ x2 /\ x1 )\/ ( x4 /\ x3 /\ x1 )\/

( x3 /\ x2 /\ x1 )\/( x4 /\ x3 /\ x2 )\/( x3 /\ x2 /\ x1 )\/ ( x4 /\ x2 /\ x1 )\/ ( x4 /\ x3 /\ x2 )\/ ( x4 /\ x3 /\ x1 )=

( x2 /\ x1 )\/( x2 /\ x1 )\/( x4 /\ x3 /\ x1 )\/( x3 /\ x2 /\ x1 )\/ ( x4 /\ x3 /\ x2 )\/ ( x4 /\ x3 /\ x2 )\/ ( x4 /\ x3 /\ x1 )=

( x2 /\ x1 )\/ ( x4 /\ x3 /\ x1 )\/ ( x3 /\ x2 /\ x1 )\/ ( x4 /\ x3 /\ x2 )\/ ( x4 /\ x3 /\ x2 )\/ ( x4 /\ x3 /\ x1 ).

Метод Куайна: необходимо выбрать минимум строк, кот-е перекрывают все столбцы.

x4 x3 x2 x1

0010

0101

0110

0111

1010

1100

1101

1110

~ ~ 1 0

1

 

1

 

1

 

 

1

0 1 ~ 1

 

1

 

1

 

 

 

 

~ 1 0 1

 

1

 

 

 

 

1

 

0 1 1 ~

 

 

1

1

 

 

 

 

1 1 0 ~

 

 

 

 

 

1

1

 

1 1 ~ 0

 

 

 

 

 

1

 

1

=( x2 /\ x1 )\/ ( x4 /\ x3 /\ x1 )\/ ( x4 /\ x3 /\ x2 ).

Проверка:

 

 

 

 

 

 

 

 

 

 

 

 

( x2 /\ x1 ) \/

( x4 /\ x3 /\ x1 )

\/

 

 

=

 

. Проверка верна!

 

 

 

 

 

 

 

 

 

 

 

 

 

( x4 /\ x3 /\ x2 )

 

 

 

 

 

 

 

42. Минимизация логических выражений в логике Буля путем склеивания в СДНФ и СКНФ. Показать, в чем различие склеивания в этих двух формах.

Законы склеивания:

(a b) (a b ) a

yМДНФ (минимизированная дизъюнктивная нормированная форма)=

(x3 x2 x1 ) (x3 x1 ) (x2 x1 )

yМКНФ (минимизированная конъюнктивная нормированная форма)=

(x3 x2 x1 ) (x3 x1 ) (x 2 x1 )

В процессе минимизации некоторые аргументы пропадают. Импликанты получаются в результате склейки смежных констит-в отличных друг от друга всего одним тербом (переменной). В СДНФ склеиваются закрашенные смежные области, а в СКНФ - незакрашенные.

43. Асимптотические представления и анализ алгоритмов.

Очень часто для сравнения величин достаточно знать их приближенные значения. Для примера приведем гармонический ряд Hn=1+1/2+1/3+…+1/n=Σ1/k.

Hn→∞ очень медленно и всегда больше любого заданного числа. Точное значение можно вычислить только для конечного n.

H≈ln(n)+γ+1/2n-1/12n^2+1/120n^3-1/252n^4+… , где γ=0.5772156 – постоянная Эйлера

Из этого следует, что Hn близко к ln(n) при больших n.

Для анализа алгоритмов по времени выполнения используют обозначение O(f(n)), введенное в 1892 году П.Бахманом, которое позволяет заменять знак ―≈‖ на ―=‖. Такое обозначение можно использовать всегда, когда n - целое и точное значение f(n) неизвестно.

Hn = ln(n)+y+O(1/n)

12 + 22 + 32 + … + n2 = (1/3)n(n+1/2)(n+1)=(1/3)n3 + (1/2)n2 + (1/6)n

1 + 22 + 32 + … + n2 = O(n3) или более точно (1/3)n3 + O(n2)

Таким образом, O помогает в работе с асимптотическими числами, т.к. позволяет кратко записать основной момент, отбросив незначительную информацию.

С некоторой осторожностью с этим символом можно оперировать по обычным арифметическим правилам.

Есть важное различие в односторонности равенства с символом О.

О(n2)=(1/2)n2 + n не имеет смысла, т.к. левая часть несет меньше смысла, чем правая.

Символ О часто используется для оценки времени выполнения алгоритма или количества итераций.

С символом О можно проводить операции:

f(n) = O(fn)

c*O(fn)=O(fn), где с = const

O(fn)+O(fn)=O(fn)

O(O(fn))=O(fn)

O(fn)*O(gn)=O(fn*gn)=fn*O(gn)