ДНФ
Версия от 21:36, 10 октября 2010; 192.168.0.2 (обсуждение)
Канонические формы логических формул
Любая логическая формула задает некоторую булеву функцию. Но для всякой булевой функции можно привести бесконечно много формул ее представляющих. Одной из задач алгебры логики является построение канонических форм(т.е формул построенных по определенному правилу).
Определение: |
Если логическая формула выражена через отрицание, конъюнкцию и дизъюнкцию переменных, то такая форма представления называется нормальной. |
Определение: |
Формулу называют элементарной конъюнкцией, если она является конъюнкцией одного или нескольких термов. |
Определение: |
Формула называется дизъюктивной нормальной формой (ДНФ) , если она является дизъюнкцией неповторяемых элементарных конъюнкций. |
Определение: |
Формула | от n переменных называется совершенно дизъюктивной нормальной формой (СДНФ) , если является ДНФ, в которой каждая элементарная конъюнкция есть конъюнкция переменных , ,..., , причем на -ом месте этой конъюнкции стоит -ый терм.
Теорема об СДНФ
Теорема: |
Для любой булевой функции , не равной тождественному нулю, существует СДНФ, ее задающая. |
Доказательство: |
Для любой булевой функции выполняется следующее соотношение
Данное соотношение легко проверить подстановкой всевозможных значений (0 и 1). Эта формула позволяет выносить за знак функции. Последовательно вынося , ,.., за знак , получаем следующую формулу :
Т.к применение данного соотношения к каждой из переменных увеличивает количество дизъюнктивных членов в два раза, то для функции от переменных мы имеем дизъюнктивных членов. Каждый из них соответствует значению функции на одном из возможных наборов значений n переменных. Если на некотором наборе , то весь соответствующий дизъюнктивный член также равен 0 и из представления данной функции его можно исключить. Если же , то в соответствующем дизъюннктивном члене само значение функции можно опустить. В результате для произвольной функции была построена СДНФ. |
Алгоритм построения СДНФ по таблице истинности
- В таблице истинности отмечаем те наборы переменных, на которых значение функции равно 1.
- Для каждого отмеченного набора записываем конъюнкцию всех переменных по следующему правилу : если значение некоторой переменной есть 1, то в конъюнкцию включаем саму переменную, иначе ее отрицание.
- Все полученные конъюнкции связываем операциями дизъюнкции.