Uploaded by sweet.one

алгебра высказываний

Видим, что каждая из функций ϕi(x, y) зависит от двух переменных.
Выделим аргументы, от которых зависит каждая из функций, образующих
суперпозицию.
Аргументы внешней функции ϕ8:
Аргументы вложенных функций первого уровня:
Аргументами вложенных функций второго уровня ϕ9 , ϕ3 являются
независимые переменные.
Для каждой из функций, входящих в суперпозицию, запишем
соответствующее выражение:
ϕ9 (c,b)= c ~ b
ϕ3 (b, a) = b
ϕ4 (a, ϕ9 (c,b)) =
ϕ1 (c, ϕ3 (b, a) )= c ˄ b
= (
Порядок выполнения операций:
) ↓ (c ˄ b)
Таблица значений
A B C C ~ B ( C ~ B ) → A C ˄B ( C ~ B ) → A ↓ ( C B )
0 0 0
1
1
0
0
0 0 1
0
0
0
1
0 1 0
0
0
0
1
0 1 1
1
1
1
0
1 0 0
1
0
0
1
1 0 1
0
0
0
1
1 1 0
0
0
0
1
1 1 1
1
0
1
0
Запишем в виде вектор-строки значения заданной булевой функции:
ϕ(a, b, c) = (0 1 1 0 11 1 0).
Для нахождения СКНФ нужно из таблицы истинности выделить лишь те
строки, результат которых равен 0. Для данной функции набор строк будет
следующим:
A B C C~B (C~B)→A CB (C~B)→A↓(CB)
0 0 0
1
1
0
0
0 1 1
1
1
1
0
1 1 1
1
0
1
0
Далее, для каждой строки выписываем дизъюнкцию всех переменных по
следующему алгоритму: если значение переменной в данной строке равно 0, то
в дизъюнкцию записываем саму переменную, а если равно 1, то - отрицание
этой переменной. После этого все дизъюнкции связываем в конъюнкцию.
В результате, совершенная конъюнктивно-нормальная форма (СКНФ) нашей
функции равна:
(A∨B∨C)(A∨B∨C)(A∨B∨C)
2) Для нахождения СДНФ нужно из таблицы истинности выделить лишь те
строки, результат которых равен 1. Для данной функции набор строк будет
следующим:
A B C C ~ B ( C ~ B ) → A C ˄B ( C ~ B ) → A ↓ ( C B )
0 0 1
0
0
0
1
0 1 0
0
0
0
1
1 0 0
1
0
0
1
1 0 1
0
0
0
1
1 1 0
0
0
0
1
Далее, для каждой строки выписываем конъюнкцию всех переменных по
следующему алгоритму: если значение переменной в данной строке равно 1, то
в конъюнкцию записываем саму переменную, а если равно 0, то - отрицание
этой переменной. После этого все конъюнкции связываем в дизъюнкцию.
В результате, совершенная дизъюнктивно-нормальная форма (СДНФ) нашей
функции равна:
ABC∨ABC∨ABC∨ABC∨ABC
ABC∨ABC∨ABC∨ABC∨ABC
= (А⊕1)(В⊕1)С ⊕ (А⊕1)В(С⊕1) ⊕ А(В⊕1)(С⊕1) ⊕ А(В⊕1)С⊕ АВ(С
⊕1) =
=
АВС⊕АС⊕ВС⊕С⊕АВС⊕АВ⊕ВС⊕В⊕АВС⊕АС⊕АВ⊕А⊕АВС⊕АС⊕АВС⊕
АВ=
C ⊕ B ⊕ A ⊕ AC ⊕ AB ⊕ ABC
Составим таблицу истинности для полученной СПНФ и проверим
правильность составления полинома
Минимизация ДНФ
a
\ bc 00 01 11 10
0
0 1 0 1
1
1 1 0 1
Выделим на карте Карно прямоугольные области из единиц наибольшей
площади, являющиеся степенями двойки и выпишем соответствующие
им конъюнкции:
Область 1:
Область 2:
Область 3:
Объединим их с помощью операции ИЛИ и получим минимизированную
ДНФ:
Минимизация КНФ
a
\ bc 00 01 11 10
0
0 1 0 1
1
1 1 0 1
Выделим на карте Карно прямоугольные области из нулей наибольшей
площади, являющиеся степенями двойки и выпишем соответствующие
им дизъюнкции:
Область2:
Объединим их с помощью операции И и получим минимизированную
КНФ:
̅̅̅̅
(b ∨ c̅) ˄ ( a ∨ b ∨ c)
5) Получить представление заданной функции в виде сокращенной БДР.
По сокращенной БДР записать представление функции:
‒ с помощью оператора IF-THEN-ELSE (ITE-представление);
‒ в виде ДНФ (максимально упростить найденную ДНФ, если это возможно);
‒ в виде КНФ (максимально упростить найденную КНФ, если это возможно).
Выберем порядок расположения переменных по уровням: a, b, c.
Построим полную БДР, соответствующую выбранному порядку:
Удаляем избыточные узлы (в данном случае такой узел один):
Из несколькиходинаковых подграфов оставляем только один:
Убираем избыточные узлы, соответствующие 0 и 1, и получаем
минимальную БДР:
По сокращенной БДР получим представление заданной функции в виде
ДНФ. Для этого нужно найти все пути из вершины первого уровня в вершину
1 и по каждому из них записать элементарную конъюнкцию. В нашем случае
таких путей четыре (каждый путь выделен цветом на сокращенной БДР;
ниже записана соответствующая элементарная конъюнкция).
Упростим найденную ДНФ, используя законы булевой алгебры.
ABC∨ABC∨ABC∨AB
ABC∨ABC∨ABC
заменяем на
BC(A∨A)∨ABC
(дистрибутивность:
=
ABC∨ABC
BC(A∨A)
(BC(A∨A)∨ABC)∨AB
A∨A
заменяем на
(закон инверсии:
1
A∨A
=
1
)
BC1∨ABC∨AB
BC1
заменяем на
BC
(правило операции с константой)
BC∨ABC∨AB
BC∨ABC∨AB
заменяем на
B(AC∨A)∨BC
(дистрибутивность:
ABC∨AB
=
B(AC∨A)
B(AC∨A)∨BC
заменяем на
AC∨A
(A∨A)(A∨C)
(дистрибутивность:
AC∨A
=
B((A∨A)(A∨C))∨BC
A∨A
заменяем на
1
(закон инверсии:
A∨A
=
1
)
B(1(A∨C))∨BC
1(A∨C)
заменяем на
A∨C
(правило операции с константой)
B(A∨C)∨BC
B(A∨C)
заменяем на
BA∨BC
(дистрибутивность)
BA∨BC∨BC
Получили минимизированную ДНФ
По сокращенной БДР найдем КНФ функции.
(A∨A)(A∨C)
)
)
)
Упростим выражение
̅̅̅ ∨ ̅))=
(a ∨ b ∨ c)(a ∨̅̅̅
b ∨ ̅)(
c a̅ ∨ b̅ ∨ ̅)
c = (a ∨ b ∨ c)(a ∨ (̅̅̅
b ∨ ̅c ))( a̅ ∨ (b
c
=(a ∨ b ∨ c)( a a̅ ∨ (̅̅̅
b ∨ ̅)
c ) =
=(a ∨ b ∨ c)( 0∨ ̅̅̅
b ∨ ̅c ) =(a ∨ b ∨ c)( ̅̅̅
b ∨ ̅c )
Получили минимизированную КНФ: (a ∨ b ∨ c)( ̅̅̅
b ∨ ̅c )
Задание 2. Булева функция f(a, b, c, d) задана своими значениями. Используя
метод Куайна-Мак-Класки, найти минимальную ДНФ этой функции
Чтобы упростить функцию с помощью метода Мак-Класки, необходимо
построить таблицу истинности:
a b c d F(a,b,c,d)
0 0 0 0
0
0 0 0 1
0
0 0 1 0
0
0 0 1 1
1
0 1 0 0
0
0 1 0 1
0
0 1 1 0
0
0 1 1 1
1
1 0 0 0
1
1 0 0 1
1
1 0 1 0
1
1 0 1 1
0
1 1 0 0
1
1 1 0 1
1
1 1 1 0
1
1 1 1 1
1
После этого построим таблицу в которую запишем те строки (минтермы),
результат которых равен 1:
a b c d
0 0 1 1 1
0 1 1 1 1
1 0 0 0 1
1 0 0 1 1
1 0 1 0 1
1 1 0 0 1
1 1 0 1 1
1 1 1 0 1
1 1 1 1 1
Теперь будем проводить операцию склеивания. Если два минтерма отличаются
лишь одним символом, то заменяем этот символ на "-". Термы, которые
невозможно склеить, отметим символом "*". Склеивание производим до тех
пор, пока это возможно:
Минтерм
ы
1000
Импликанты 1-го уровн
я
0011
0111
0011
1001
1010
1100
0111
1111
=> 0-11
10010-0
1-00
=> -111
1000 => 100-
Импликанты 2-го уровн
я
10011010-0
11-0
0-11*
1-01
=> 1-0-
1-0-*
1--0*
=> 1--0
11--*
1-00 => 1-0-
1001
0111
1101
1110
1000
1010
1000
1100
1111
1001
1101
1010
1110
1100
1101
1100
1110
1101
1111
1110
1111
=> 10-0
=> 1-00
=> 1-01
1-10
11011-0
1-01
1-00
1-10
110-
-111*
11-1
111-
11111-0
11-1
=> 1--0
=> 11--
=> 11--
=> 1-10
=> 110-
=> 11-0
=> 11-1
=> 111-
Далее, из тех импликант, которые помечены звездочкой, построим таблицу
простых импликант:
0011 0111 1000 1001 1010 1100 1101 1110 1111
0-11
X
-111
X
X
X
1-0-
X
1--0
X
X
X
X
11--
X
X
X
X
X
X
X
Теперь найдем дизъюнктивное ядро. Для этого необходимо найти те столбцы, в
которых присутствует только один символ "X". Вычеркиваем эти столбцы.
Строки, которые пересекаются с этими столбцами в данной ячейке с символом
"X", также вычеркиваем. Если в этих строках имеются еще символы "X", то
вычеркиваем и эти столбцы:
0011 0111 1000 1001 1010 1100 1101 1110 1111
0-11
-111
X
X
X
X
1-0-
X
1--0
X
11--
X
X
X
X
X
X
X
X
X
X
Вычеркнутые импликанты составят наше дизъюнктивное ядро:
0-11
1-01--0
Из оставшихся импликант и минтермов построим упрощенную таблицу
простых импликант:
1111
-111
X
11--
X
Из таблицы видно, что все оставшиеся минтермы можно покрыть следующими
импликантами:
11--111
Складываем эти импликанты с импликантами дизъюнктивного ядра:
0-11∨1-0-∨1--0∨11-0-11∨1-0-∨1--0∨-111
Из всех вариантов необходимо выбрать тот, где наименьшее число переменных,
а при их равенстве - наименьшее число отрицаний:
0-11∨1-0-∨1--0∨11--
Теперь, заменяя 1 на соответствующую переменную, а 0 - на отрицание этой
переменной (символ "-" вообще в расчет не берем, просто игнорируя его),
получаем упрощенную функцию:
ACD∨AC∨AD∨AB
а) Задан трехместный предикат P(x,y,z) = {х∙у ≥ z}.
Подберем предметные области в соответствии с заданием.
Пусть Mx = {2,3,4}, My = {3,4,5}, Mz = {4,14}.
Проверим, что на выбранных предметных областях предикат выполним хотя
бы в половине случаев. Для этого вычислим все возможные (в заданных
предметных областях) значения заданного предиката
Все возможные наборы, на которых нужно вычислить значения предиката,
получаются как элементы прямого произведения (Mx) × (My) × ( Mz).
Mx×My×Mz = {(2,3,4), (2,3,14), (2,4,4), (2,4,14), (2,5,4), (2,5,14), (3,3,4),
(3,3,14), (3,4,4), (3,4,14), (3,5,4), (3,5,14), (4,3,4), (4,3,14), (4,4,4), (4,4,14),
(4,5,4), (4,5,14)}
P(2,3,4) = И, т.к. 2∙3 ≥ 4 – истинное утверждение.
Аналогичным образом получаем:
P(2,3,14) = Л,
P(2,4,4) = И,
P(2,4,14) = Л,
P(2,5,4) = И,
P(2,5,14) = Л,
P(3,3,4) = И,
P(3,3,14) = Л,
P(3,4,4) = И,
P(3,4,14) = Л,
P(3,5,4) = И,
P(3,5,14) = И,
P(4,3,4) = И,
P(4,3,14) = Л,
P(4,4,4) = И,
P(4,4,14) = И,
P(4,5,4) = И,
P(4,5,14) = И.
Требование о том, чтобы на выбранных предметных областях предикат был
выполним хотя бы в половине случаев, соблюдается, значит, предметные
области подобраны правильно.
б) Путем фиксации значения одной из предметных переменных получим из
P(x,y,z) выполнимый двухместный предикат. Зафиксируем, например,
предметную переменную z и присвоим ей значение 4. Получим двухместный
предикат P(x,y,4). Проверим, что он выполним. Например, P(2,4,4) = И.
Значит, двухместный предикат P(x,y,4) выполним.
Получить из P(x,y,z) тождественно ложный двухместный предикат на
заданных предметных областях невозможно, т.к. не получится зафиксировать
одну из переменных таким образом, чтобы полученный двухместный
предикат принимал только значение ЛОЖЬ.
Найденные значения истинности предиката P(x,y,z) показывают,что для
любого хЄ{2,3,4} существуют такие y и z ,что предикат становится
истинным.
Аналогично, для любого у Є{3,4,5} существуют такие х и z ,что предикат
становится истинным.
И для любого z Є{4,14} существуют такие х и у ,что предикат становится
истинным.
В) Путем фиксации значений двух предметных переменных получим из
P(x,y,z) тождественно истинный, а затем тождественно ложный одноместный
предикат.
Пусть х = 2, z = 4. Тогда P(2,у,4) – тождественно истинный одноместный
предикат, т.к. при всех возможных значениях переменной у он принимает
значение ИСТИНА:
P(2,3,4) = И, P(2,4,4) = И, P(2,5,4) = И.
Пусть y = 3, z = 14. Тогда P(x,3,14) – тождественно ложный одноместный
предикат, т.к. при всех возможных значениях переменной x он принимает
значение ЛОЖЬ:
P(2,3,14) = Л, P(3,3,14) = Л, P(4,3,14) = Л.
Г) Путем фиксации значений всех предметных переменных получим из
P(x,y,z) сначала ложное, а затем истинное высказывание (нульместные
предикаты):
Пусть х=2, у=3, z = 14. Тогда P(2,3,14) =Л.
Пусть х=4, у=5, z = 14. Тогда P(4,5,14) = И.
Д) Проверим истинность высказываний
и
, полученных из P(x,y,z) путем связывания всех
предметных переменных кванторами. Здесь все предметные переменные
принимают значения из своих предметных областей.
Найдем значение выражения (а это нульместный предикат, т.к. все
предметные переменные в нем связаны кванторами) методом конкретизации.
∀x∃𝑦∀𝑧P(x,y,z) = ∀x(∃𝑦(∀𝑧P(x,y,z))) = [избавляемся от квантора общности] =
= ∀x(∃𝑦(P(x,y,4) ˄ P(x,y,14))) [избавляемся от квантора существования] =
= ∀x ((P(x,3,4) ˄ P(x,3,14)∨ (P(x,4,4) ˄P(x,4,14) ∨(P(x,5,4) ˄ P(x,5,14)) =
= [избавляемся от квантора общности] =
= (P(2,3,4) ˄ P(2,3,14)∨ (P(2,4,4) ˄P(2,4,14) ∨(P(2,5,4) ˄ P(2,5,14)) ˄ (P(3,3,4) ˄
P(3,3,14)∨ (P(3,4,4) ˄P(3,4,14) ∨(P(3,5,4) ˄ P(3,5,14)) ˄ (P(4,3,4) ˄ P(4,3,14)∨
(P(4,4,4) ˄P(4,4,14) ∨(P(4,5,4) ˄ P(4,5,14)) =
= (И ˄ Л ∨ И ˄ Л ∨ И ˄ Л) ˄ (И ˄ Л∨ И ˄Л ∨ И ˄ Л) ˄ (И ˄ Л ∨ И ˄ И ∨ И ˄ И)
= (Л ∨ Л ∨ Л) ˄ (Л∨ Л ∨ Л ) ˄ (Л ∨ И ∨ И) = Л ˄ Л ˄ И = Л
Высказывание ∀x∃𝑦∀𝑧P(x,y,z) – ложное
Проверим истинность высказывания
.
∃z∀x∀y P(x,y,z) = ∃z(∀x(∀y P(x,y,z) )) = [избавляемся от квантора общности] =
= ∃z(∀x ( P(x,3,z) ˄ P(x,4,z) ˄ P(x,5,z) ) =
[избавляемся от квантора общности] =
= ∃z ( ( P(2,3,z) ˄ P(2,4,z) ˄ P(2,5,z)) ˄ ( P(3,3,z) ˄ P(3,4,z) ˄ P(3,5,z)) ˄
( P(4,3,z) ˄ P(4,4,z) ˄ P(4,5,z)))=
[избавляемся от квантора существования] =
=( P(2,3,4) ˄ P(2,4,4) ˄ P(2,5,4)) ˄ ( P(3,3,4) ˄ P(3,4,4) ˄ P(3,5,4)) ˄
( P(4,3,4) ˄ P(4,4,4) ˄ P(4,5,4)) ∨ ( P(2,3,14) ˄ P(2,4,14) ˄ P(2,5,14)) ˄ (
P(3,3,14) ˄ P(3,4,14) ˄ P(3,5,14)) ˄ ( P(4,3,14) ˄ P(4,4,14) ˄ P(4,5,14)) =
= (И ˄ И˄ И˄ И˄ И˄ И˄ И˄ И˄ И) ∨ (Л˄Л ˄Л˄Л˄Л˄ И˄Л˄ И˄ И)=
=И ∨ Л=И
Получили, что высказывание ∃z∀x∀y P(x,y,z) - истинное
Этот же результат можно получить путем следующих рассуждений.
∃z∀x∀y P(x,y,z) – означает, что существует такое z , что при всех х и у
двухместный предикат Р(х,у) обращается в верное высказывание.
Т.к. z Є{4,14},то из двух чисел достаточно найти одно такое, при которых
P(x,y,z) будет истинным при всех х и у.
Проверяя истинность двухместного предиката при фиксированном z=4,
видим, что Р (х, у, 4) – тождественно истинное .
Таким образом, высказывание ∃z∀x∀y P(x,y,z) – истинное.