תרגול 3 תשעז

מתוך Math-Wiki
קפיצה אל: ניווט, חיפוש

חזרה לדף מערכי התרגול.

צורות נורמליות: CNF ,DNF

ישנן שתי "צורות נורמליות" להצגת כל פסוקית - DNF ו CNF.

תרגיל

יהי A פסוק ויהי C צורת CNF שלו ו-D צורת DNF שלו. הוכיחו או הפריכו: C\equiv D

פתרון: ברור שהוכחה....

כעת, אחרי שהבנו שאלו שתי צורות שונות לאותו פסוק, כלומר הן שקולות, נבין איך צרים צורות אלו.

DNF

ביטוי בצורת DNF מורכב מאוסף "פסוקיות" המחוברות ביניהן על ידי פעולות "או". כל פסוקית בעצמה מורכבת מאטומים המחוברים ביניהם על ידי פעולות "וגם". כל אטום הוא משתנה או שלילת משתנה.

בצורה סכמטית: D_1 \lor D_2 \lor \dots \lor D_n כאשר כל D_i מהצורה p_1\land p_2 \land \dots \land p_m וכל p_i שווה למשתנה x או לשלילתו \lnot x.

דוגמא: נמצא את צורת DNF של טבלת האמת הבאה:


f(x_1,x_2,x_3) x_3 x_2 x_1
0 0 0 0
0 0 0 1
1 0 1 0
1 1 0 0
0 0 1 1
1 1 0 1
0 1 1 0
0 1 1 1

נתמקד בשורות שערך האמת שלהן הוא 1 (שורות 3, 4, 6).

לשורה 3 נתאים את הפסוקית D_1=\lnot x_1 \land x_2 \land \lnot x_3

מה עשינו? החלפנו כל משתנה שערכו 0 בשלילה שלו, וכל משתנה שערכו 1 השארנו בלי לגעת.

מה יצא לנו מזה? שימו לב שרק הצבה של ערכי האמת של x_1,x_2,x_3 שמופיעים בשורה 3 תתן ערך אמת 1 ב D_1. כל הצבה אחרת (כלומר: הצבה של ערכי אמת של המשתנים בשורה אחרת) תתן 0 ב D_1.

באופן דומה נייצר D_2 עבור שורה 4 ו D_3 עבור שורה 6:

D_2=\lnot x_1 \land\lnot x_2 \land x_3, \quad D_3=x_1\land \lnot x_2 \land x_3

כעת ה DNF של טבלת האמת היא פשוט

D_1\or D_2 \or D_3=(\lnot x_1 \land x_2 \land \lnot x_3) \or (\lnot x_1 \land \lnot x_2 \land x_3) \or (x_1 \land \lnot x_2 \land x_3).

CNF

ביטוי בצורת CNF מורכב מאוסף "פסוקיות" המחוברות ביניהן על ידי פעולות "וגם". כל פסוקית בעצמה מורכבת מאטומים המחוברים ביניהם על ידי פעולות "או". כל אטום הוא משתנה או שלילת משתנה.

בצורה סכמטית: C_1 \land C_2 \land \dots \land C_n כאשר כל C_i מהצורה q_1\lor q_2 \lor \dots \lor q_m וכל q_i שווה למשתנה x או לשלילתו \lnot x.

נדגים על הדוגמא לעיל.

נתמקד בשורות שערך האמת שלהן הוא 0 (שורות 1, 2, 5, 7, 8)

לשורה 1 נתאים את הפסוקית C_1= x_1 \lor x_2 \lor  x_3

מה עשינו? כל משתנה שערכו 0 השארנו בלי לגעת, וכל משתנה שערכו 1 החלפנו בשלילתו.

מה יצא לנו מזה? שימו לב שרק הצבה של ערכי האמת של x_1,x_2,x_3 שמופיעים בשורה 1 תתן ערך אמת 0 ב C_1. כל הצבה אחרת (כלומר: הצבה של ערכי אמת של המשתנים בשורה אחרת) תתן 1 ב C_1.

באופן דומה נייצר C_2,C_3,C_4,C_5 עבור שורות 2 , 5, 7 ו-8:

C_2= x_1 \lor \lnot x_2 \lor \lnot x_3, C_3=\lnot x_1\lor \lnot x_2 \lor x_3

 C_4=x_1 \lor \lnot x_2 \lor \lnot x_3, C_5= \lnot x_1 \lor \lnot x_2 \lor \lnot x_3

כעת ה CNF של טבלת האמת היא פשוט

C_1  \land C_2 \land C_3 \land C_4 \land C_5


הרחבה על עניינים אלו (שלושת התרגולים הראשונים) ניתן למצוא פה 88-101 חשיבה מתמטית