Formă canonică (algebră booleană)

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Forma canonică sau forma normală a unei funcții booleene este un model de reprezentare a unei expresii booleene care poate fi obținută din analiza propriului tabel de adevăr .

Având o funcție booleană, există două tipuri de forme canonice:

  • prima formă canonică sau formă disjunctivă , numită și SOP ( suma produselor , suma produselor), construită ca sume de produse fundamentale, adică prin termeni care includ toate variabilele funcției, în formă adevărată sau negată, numite mintermini , corespunzătoare valori de ieșire ale funcției egale cu 1. Poate fi scris în general pentru n variabile:

unde este reprezintă minterms (de asemenea, notat cu ), adică produsele fundamentale, e reprezintă valoarea de ieșire a funcției la primul rând. De exemplu, cu trei variabile A, B, C:

  • a doua formă canonică sau formă conjunctivă , numită și POS ( produsul sumelor , produsul sumelor), construit din produse din sume fundamentale, adică din termeni care includ toate variabilele funcției, în formă adevărată sau negată, numite maxtermini , corespunzând valorilor de ieșire ale funcției egale cu 0. De asemenea, poate fi generalizat la n variabile:

unde este reprezintă maxtermini (indicat și cu ), adică sumele fundamentale, ed reprezintă valoarea de ieșire a funcției la primul rând. De exemplu, cu trei variabile A, B, C:

Utilizarea tabelului adevărului:

număr ABC Intermini Maxtermini
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111

Prima formă canonică

Prima formă canonică , SOP, poate fi obținută direct din tabelul de adevăr al unei funcții. De exemplu, luați în considerare o funcție de trei variabile a cărui tabel de adevăr este de exemplu:

LA B. C.
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 1

Trebuie să luăm în considerare valorile funcției egale cu 1, deci al treilea, al patrulea, al șaptelea și al optulea rând, care corespunde valorilor variabilelor luate în formă adevărată și negată:

O altă modalitate este utilizarea teoremei lui Shannon .

Luăm doar funcția derivată din dezvoltarea teoremei lui Shannon și înlocuim valorile ca cu valoarea reală pe care funcția o asumă în tabelul adevărului. În acest caz, am avea:

Dacă cazurile în care funcția ia valoarea 1 de două ori, nu există nicio problemă, deoarece unul dintre cele trei zerouri ale funcției găsite devine unul și, prin urmare, rămâne termenul pentru care funcția rezultă 1.

În cazul în care nu dorim să folosim Teorema lui Shannon, luați rândurile tabelului în care funcția își asumă 1 ca valoare și mergeți pentru a vedea dacă variabilele sunt naturale sau completate (natural când de exemplu A = 1 sau B = 1 și completat când de exemplu A = 0 sau B = 0) și apoi scrieți folosind formularea A dacă este naturală sau A 'dacă este completată.

Exemplu

LA B.
0 1 1

A = 0, B = 1

În acest caz, dacă funcția își asumă valoarea 1 de mai multe ori, va fi suficient să adăugați celălalt minterm printr-o sumă, folosind întotdeauna procedura de mai sus pentru a o obține.

A doua formă canonică

A doua formă canonică se obține prin analiza tabelului adevărului, dar într-un mod dual în ceea ce privește metoda adoptată în prima formă canonică.

Din tabelul adevărului luăm apoi rândurile în care funcția ia valoarea 0, verificăm dacă variabilele sunt naturale sau completate , apoi scriem funcția adunând împreună variabilele folosind formularea dacă natural e dacă este completat (spre deosebire de cel folosit în prima formă canonică); dacă funcția ia valoarea 0 de mai multe ori, termenele minere trebuie împărțite la un produs. De exemplu:

LA B.
0 0 0
0 1 1
1 0 0
1 1 0

Unde este determinat de primul rând, este determinată de a treia linie e este determinată de ultima linie.

Alte caracteristici

În această formă, o clauză acționează ca o constrângere asupra valorilor posibile pe care le pot avea variabilele care o compun. De exemplu, clauza (A OR ~ B OR C) este satisfăcută de toate atribuțiile FALSE-TRUE posibile, cu excepția A = C = FALSE și B = TRUE. Mai mult, o formulă în CNF poate fi văzută ca un sistem de constrângeri în spațiul atribuirilor binare ale variabilelor sale. Pentru a extinde acest concept este util să remarcăm existența unui alt tip de "sistem de constrângeri", cum ar fi sistemele de inegalități liniare pe variabile reale sau întregi care identifică o regiune fezabilă (și, prin urmare, atribuiri admisibile) în programarea liniară și întreaga programare liniară. . Regiunea fezabilă a unei formule CNF conține exact acele valori care fac formula evaluabilă ca ADEVĂRATĂ.

Elemente conexe