Диз'юнктивна нормальна форма
Диз'юнкти́вна норма́льна фо́рма (ДНФ) в булевій логіці — нормальна форма в якій булева формула має вид диз'юнкції декількох кон'юнктів (де кон'юнктами називаються кон'юнкції декількох пропозиційних символів або їх заперечень).
Приклади
Наступні формули записані в ДНФ:
Наступні формули не є в ДНФ:
Проте ці формули еквівалентні наступним формулам записаним у диз'юнктивній нормальній формі:
Приведення булевої формули до ДНФ
Довільна булева формула може бути приведена до ДНФ за допомогою наступного алгоритму:
- Крок 1 : Усі логічні зв'язки виразити через кон'юнкцію, диз'юнкцію і заперечення.
- Крок 2 : Скасувати всі подвійні заперечення і використати, де можливо, закони де Моргана. Тобто замінити:
- на
- на
- на
- Крок 3 : Використати де можливо дистрибутивність кон'юнкції, тобто замінити:
- на
Втім, при цьому розмір булевої формули може зрости експоненціально. Так, наприклад, щоб записати наступну формулу буде потрібно 2n кон'юнктів:
КНФ цієї формули має вигляд:
Формальна граматика, що описує ДНФ
Наступна формальна граматика описує всі формули, приведені до ДНФ:
- <ДНФ> → <кон'юнкт>
- <ДНФ> → <ДНФ> ∨ <кон'юнкт>
- <кон'юнкт> → <літерал>
- <кон'юнкт> → (<кон'юнкт> ∧ <літерал>)
- <літерал> → <терм>
- <літерал> → ¬<терм>
де <терм> позначає довільну булеву змінну.
Див. також
Джерела
Shawn Hedman. A First Course in Logic. Oxford University Press 2004 ISBN 0-19-852980-5