Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций ДМ.doc
Скачиваний:
44
Добавлен:
16.11.2019
Размер:
3.29 Mб
Скачать

2.3.2 Законы алгебры логики

  1. Законы коммутативности:

a b = b a, a b = b a.

  1. Законы ассоциативности:

a  (b с) = (а b) с, a  (b с) = (а b) с.

  1. Законы дистрибутивности:

a  (b с) = (а b) (а с), a  (b с) = (а b) (а с).

  1. Законы идемпотентности:

а = a а, a = а a.

  1. Законы нуля и единицы:

a   а = 0, а 1 = а, a   а = 1, а  0 = а.

  1. Законы де Моргана:

 (a b) =a   b,  (a b) = a   b.

  1. Законы поглощения:

a  (а b) = а, a  (a b) = а.

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

(а   b)  (а b) = а, (а   b)  (а b) = а.

  1. Закон двойного отрицания:

  а = а.

Не все законы независимы друг от друга. Так, например, закон идемпотентности можно получить из закона поглощения с использованием законы дистрибутивности:

а = a  (а b) = (a а)  (а b) = (a  (а b))  (a  (а b)) = а а.

Закон поглощения может быть выведен из закона нуля и единицы:

a  (а b) = (a  1)  (а b) = a  (1 b) = a  1 = а.

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

a а = (a а)  1 = (а а)  ( а а) = а ( а а) = а  0 = а.

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

a  (а b) = (a  0)  (а b) = a  (0 b) = a  0 = а.

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

2.3.3 Разложения функций по переменным

Разложение Шеннона

Введем следующие обозначения:

х0 = х; х1 = х.

Пусть - параметр, равный 0 или 1.

Тогда: х = 1, если х = ;

х = 0, если х .

Теорема Шеннона: всякая логическая функция F (х1, … ,хn) может быть представлена в виде:

F (х1, … , хm, хm+1, … , хn) = x11 xmm F (1, … , m, хm+1, … , хn), (2.1)

где m n, а дизъюнкция берется по всем 2m наборам значений переменных х1, … , хm.

Это равенство называется разложением по переменным х1, … , хm.

{Пример: n = 4, m = 2.

Разложение будет иметь вид:

F (х1, х2 , х3 , х4) =х1 х2 F (0, 0 , х3 , х4)   х1 х2 F (0, 1 , х3 , х4) 

х1 х2 F (1, 0 , х3 , х4)  х1 х2 F (1, 1 , х3 , х4).

Доказательство.

Производим подстановкой в обе части (2.1) произвольного набора (1, … , m, m+1, …, n) всех n переменных.

Т.к. х = 1 только тогда, когда х = , то среди 2 m конъюнкций x11 xmm правой части (2.1) в единицу обратится только одна, в которой 1 = 1, … , m = m. Все остальные конъюнкции равны 0. Поэтому получим:

F (1, … , n) = 11 mm F (1, … , m, m+1, … , n) = F (1, … , n).

Особое значение на практике имеет случай, когда m = n, т.е. разложение функции n переменных по n переменным:

F (х1, … ,хn) = x11 xnn.

Т.е. все переменные в правой части (2.1) получают фиксированное значение и функции в конъюнкциях правой части становятся равными 0 или 1. Т.о. дизъюнкция берется по всем наборам (1, … , n), на которых F = 1. Такое разложение называется СДНФ – совершенной дизъюнктивной формой функции F. СДНФ содержит ровно столько конъюнкций, сколько единиц в таблице истинности для F. Каждому единичному набору (1, … , n) соответствует конъюнкция всех переменных, в которой хi взято с отрицанием, если i = 0, и без отрицания, если i = 1. Такие конъюнкции называются конституентами единицы.}

Двойственное разложение Шеннона

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

  , 0  1,  хх,   , 1  0, х   х.

Т.о. F (х1, … ,хn) = x11 xnn = = x11 …  xnn

СДНФ СКНФ

и тем самым получим СКНФ – совершенную конъюктивную нормальную форму функции F. СКНФ содержит ровно столько дизъюнкций, сколько нулей в таблице истинности для F. Каждому нулевому набору (1, … , n) соответствует дизъюнкция всех переменных, в которой хi взято без отрицания, если i = 0, и с отрицанием, если i = 1. Такие дизъюнкции называются конституентами нуля.

Переход от табличной формы представления /логической функции к аналитической

Всякую логическую функцию можно представить в виде СДНФ и СКНФ. Причем у каждой булевой функции может быть только по одной СДНФ и СКНФ.

Таблица 2.10 – Функция 3-х переменных

х1 х2 х3

F

конституента 1

конституента 0

0 0 0

0

х1 х2 х3

0 0 1

1

х1 х2 х3

0 1 0

1

х1 х2 х3

0 1 1

0

х1   х2  х3

1 0 0

0

х1 х2 х3

1 0 1

1

х1 х2 х3

1 1 0

1

х1 х2 х3

1 1 1

0

х1 х2   х3

Отсюда переходим к аналитическим выражениям логической функции:

СДНФ: F =х1 х2 х3   х1 х2 х3 х1 х2 х3 х1 х2 х3,

СКНФ: F = (х1 х2 х3) (х1   х2  х3) ( х1 х2 х3) ( х1 х2   х3).

Примечание: функция, для которой не существует СДНФ – константа 0, функция, для которой не существует СКНФ – константа 1.