Cum de a aduce formula la forma CNF

Cred că pur și simplu nu înțeleg ce CNF.

Deci, să avem o funcție booleană f. Aceasta depinde de n variabile x1, x2. xn. Variabilele pot fi de 2 ^ n permutări diferite. În unele substituții funcția returnează 1 la celălalt - 0. Ne dorim cumva codifice o formulă boolean.

Există două metode obișnuite de a face acest lucru. Primul - pentru a descrie toate permutările, dând 1 - DNF. Al doilea - pentru a descrie toate permutările care dau 0 - CNF. Avem nevoie de un al doilea.

Să ne uităm la CNF. Această combinație de disjunctii, cum ar fi aceasta:
(Nu x1 sau x2) și (x1 sau nu x2 sau x3).
Ceea ce este scris între paranteze poate fi rescrisă un pic mai clar:
(X1 = 0 sau x2 = 1) și (x1 = 1 0 sau x2 = sau x3 = 1).
Acum, puteți utiliza logica, = matematice), și încă o dată rescrie:
(Nu (x1 = 1 și x2 = 0)) și (nu (x1 = 0 și x2 = 1 și x3 = 0)).
Ce face din urmă formula? Această caracteristică permite unității dacă substituția nu conține un model (x1 = 1 și x2 = 0) sau (x1 = 0 și x2 = x3 = 1 și 0).

Total, prin fiecare substituție, care caracteristică oferă 0, scrie o astfel de substituție în modelele zapereschennye, și apoi doar le scrie în CNF, așa cum am descris mai sus.

Răspunsul tău la întrebarea

Conectați-vă pentru a posta un raspuns

  • București
  • Full-time
  • de la 60 000 la 100 000 de ruble.

Conectați-vă

Pentru a pune o întrebare și să obțină un răspuns expert.