Корисник:КибоБибо/ДисјунктивнаНормалнаФорма(ДНФ)

Дисјунктивна нормална форма (ДНФ) је стандардизовани начин представљања логичких формула у Буловој алгебри. Формула је у ДНФ ако је написана као дисјункција (логичко „или”) коњункција (логичко „и”) литерала. ДНФ се користи у логици и рачунарству, посебно у анализи и оптимизацији логичких функција, те је врло важан у теорији аутоматизованог решавања логичких проблема.

Дефиниција

уреди

Формула у дисјунктивној нормалној форми је дисјункција (ОР) једног или више коњункција (АНД), где су чланови тих коњункција литерали. Литерали су једноставни изрази који могу бити:

Дакле, ДНФ се може описати као:

(𝐿1∧𝐿2∧…∧𝐿𝑛)∨(𝐿𝑛+1∧𝐿𝑛+2∧…∧𝐿𝑚)∨…

Где су 𝐿1,𝐿2,…,𝐿𝑛 литерали (пропозиције или негације).

Основна својства ДНФ

уреди
  • Дисјунктивност: Формула је дисјункција између два или више израза. Свака од тих дисјункција је коњункција (АНД) литерала.
  • Коњункција унутар дисјункције: Унутар дисјункције, сваки израз је коњункција (АНД) једног или више литерала. На пример, (п∧q)∨(¬п∧р)∨(q∧¬р).
  • Једноставност: ДНФ омогућава јасно представљање логичких израза који се могу лако евалуирати, јер се формула може проверити као тачна ако је било која коњункција тачна.

Правила за ДНФ

уреди

За формулу да би била у ДНФ, потребно је применити неколико основних закона и правила логике:

  1. ¬(А∧Б)≡¬А∨¬Б,
  2. ¬(А∨Б)≡¬А∧¬Б.
  • Дистрибутивност: Да би се добила ДНФ, често је потребно применити дистрибутивна правила логичких операција, као што су:
  1. А∧(Б∨Ц)≡(А∧Б)∨(А∧Ц),
  2. (А∨Б)∧(Ц∨Д)≡(А∧Ц)∨(А∧Д)∨(Б∧Ц)∨(Б∧Д).
  • Двострука негација: Формула са двоструком негацијом може бити поједностављена, је𠬬А≡А.

Примери ДНФ

уреди
  1. Једноставан пример: Размотримо формулу п ∨ q. Ово је већ ДНФ, јер је то дисјункција између литерала 𝑝 и 𝑞.
  2. Сложени пример: Размотримо формулу (п∧q)∨(¬р∧с). Овај израз је у ДНФ јер је то дисјункција између две коњункције:
  • (п∧q),
  • (¬р∧с).

Формула са негацијама: Ако имамо формулу ¬(п∧q)∨р, прво примењујемо Де Морганове законе на ¬(п∧q), што даје ¬п∨¬q, па добијамо:

(¬п∨¬q)∨р

Овај израз је такође у ДНФ.

Претварање у ДНФ

уреди

Процес претварања логичке формуле у ДНФ обухвата неколико кључних корака:

  1. Разоткривање негација: Примена Де Морганових закона како би се негације преместиле на литерале. На пример, ¬(п∧q) постаје ¬п∨¬q.
  2. Примена дистрибутивности: Када је потребно, користите дистрибутивност да бисте трансформисали формулу у дисјунктивни облик. На пример, (п∨q)∧р постаје (п∧р)∨(q∧р).
  3. Елиминација контрадикција: Ако постоје контрадикције попут п∧¬п, оне се уклањају јер су увек лажне.
  4. Поновно разматрање формуле: Ако је потребно, итерирајте кроз ове кораке док формула не буде у исправном ДНФ облику.

Предности и мане ДНФ

уреди

Предности:

  • Једноставно разумевање: Формула у ДНФ је интуитивна и једноставна за тумачење. Довољно је проверити све коњункције у дисјункцији; ако је било која коњункција тачна, цела формула је тачна.
  • Лако за евалуацију: Формуле у ДНФ је лако евалуирати. Свака коњункција у дисјункцији представља услов који треба бити задовољен, а евалуација може бити ефикасна.

Мане:

  • Експоненцијални раст: За сложене изразе, ДНФ може постати врло обимна. Број коњункција може расти експоненцијално у зависности од броја варијабли у изразу.
  • Није увек минимална: ДНФ није увек минимални облик Булове функције. На пример, може постојати другачији облик (као што је коњунктивна нормална форма, ЦНФ) који је краћи или једноставнији.

Примена ДНФ

уреди
  1. Аутоматско доказивање теорема: ДНФ је користан у логици за аутоматско доказивање теорема, јер омогућава систематску претрагу свих могућности за доказивање исказа.
  2. Оптимизација Булових функција: ДНФ се користи за анализу и минимизацију Булових функција. Иако ДНФ није увек најефикаснији начин за представљање Булових функција, омогућава лакше разумевање структуре функције.
  3. Рачунарски алгоритми: У области рачунарства, ДНФ се користи у алгоритмима за решавање проблема у логичких формама и у оптимизацији у електронским склоповима.

Закључак

уреди

Дисјунктивна нормална форма је основни алат у логици и рачунарству за представљање и анализу логичких израза. Иако може бити врло обимна за сложене функције, њена једноставност и јасноћа чине је корисном у многим апликацијама, укључујући аутоматизовано решавање логичких проблема и оптимизацију Булових функција.