‫תכן לוגי מתקדם‬

‫תרגול כתה מספר ‪6‬‬

‫תזכורת‪:‬‬

‫תזכורת משבוע שעבר‪:‬‬
‫‪ .6‬כתוב את הפונקציות הבאות באמצעות ‪:Xor form‬‬
‫תזכורת‪:‬‬

‫‪x⊕ y‬‬

‫‪y‬‬

‫‪x‬‬

‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬

‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬

‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬

1 ⊕1 = 0
x⊕0 = x
x ⊕1 = x
x⊕x = 0
x⊕ x =1
x0 ⊕ x1 = x0 ⊕ x1
x ⊕ ( y ⊕ z ) = ( y ⊕ x) ⊕ z

x0 ~ x1 = x0 x1 + x0 x1
x~0=x
x ~1= x
x ~ x =1
x~ x=0
x0 ~ x1 = x0 ~ x1 = x ⊕ y
x + y = x ⊕ y ⊕ xy .‫א‬

x ( y ⊕ z ) = xy ⊕ xz .‫ב‬

‫= ‪x0 | x1 ∨ x0 ~ x1‬‬
‫= ‪= x0 x1 ∨ x0 ⊕ x1‬‬
‫= )‪= ( x0 x1 ⊕ 1) ∨ ( x0 ⊕ x1 ⊕ 1‬‬
‫= )‪x0 x1 ⊕ 1 ⊕ x0 ⊕ x1 ⊕ 1 ⊕ ( x0 x1 ⊕ 1)( x0 ⊕ x1 ⊕ 1‬‬

‫ג‪.‬‬

‫= )‪x0 x1 ⊕ x0 ⊕ x1 ⊕ ( x0 x1 ⊕ 1)( x0 ⊕ x1 ⊕ 1‬‬
‫‪x0 x1 ⊕ x0 ⊕ x1 ⊕ x0 x1 ⊕ x0 x1 ⊕ x0 x1 ⊕ x0 ⊕ x1 ⊕ 1 = 0 ⊕ 1 = 1‬‬

‫אלגוריתם להעברת ביטוי לצורת ‪:XOR‬‬
‫א‪ .‬לרשום את הביטוי בצורת הקנונית )‪(SOP‬‬
‫ב‪ .‬באמצעות ‪ x + y = x ⊕ y ⊕ xy‬להעביר כל ‪ +‬לביטוי של ‪.XOR‬‬

‫ג‪x ⊕ 1 = x .‬‬

‫פונקציות ליניאיות‪:‬‬
‫פונקציה ליניארית ניתנת לייצוג באופן הבא‬

‫הערה‪ :‬יש ‪ 2n+1‬פונקציות ליניאריות ב‪ n-‬משתנים‪.‬‬
‫פונקציות ליניאריות במשתנה אחד‪:‬‬
‫יש ‪ 21+1 = 4‬פונקציות ליניאריות במשתנה אחד והן‪:‬‬

‫פונקציות ליניאריות בשני משתנים‪:‬‬
‫יש ‪ 22 +1 = 8‬פונקציות ליניאריות בשני משתנים והן‪:‬‬

‫הערה‪ :‬ראיתם בהרצאה כי אם יש כמות אי זוגית של מקדמים ‪ ai ≠ 0, i > 0‬אזי הפונקציה‬
‫הליניארית היא דואלית עצמית ואם יש כמות זוגית אזי הפונקציה הליניארית היא אנטי דואלית‬
‫עצמית‪.‬‬
‫דוגמא‪ :‬נתונה הפונקציה ‪ , x1 ⊕ x2‬האם היא דואלית עצמית? האם אנטי דואלית עצמית?‬
‫תשובה‪ :‬הפונקציה אנטי דואלית עצמית מפני שיש כמות זוגית של מקדמים לפולינום‪.‬‬

‫תרגיל‪ :‬האם הפונקציה הבאה היא ליניארית?‬

‫‪x + y = x ⊕ y ⊕ xy‬‬
‫לא‪ ,‬בתצורה הקסורית של הפונקציה יש לנו איבר ממעלה שניה ולכן זו אינה פונקציה ליניארית‪.‬‬
‫האם הפונקציה הבאה היא ליניארית?‬

‫= ‪xy + xz + wxz = ( xy + xz ) + wxz = ( xy ⊕ xz ⊕ xyz ) + wxz‬‬
‫= ‪= xy ⊕ xz ⊕ xyz ⊕ wxz ⊕ ( xy ⊕ xz ⊕ xy z ) wxz‬‬
‫= ‪= xy ⊕ xz ⊕ xyz ⊕ wxz ⊕ xywxz ⊕ xzwxz ⊕ xyzwxz‬‬
‫= ‪xy ⊕ xz ⊕ xyz ⊕ wxz ⊕ 0 ⊕ 0 ⊕ 0‬‬
‫= ‪= xy ⊕ xz ⊕ xyz ⊕ wxz‬‬
‫= ‪= xy ⊕ x( z ⊕ 1) ⊕ xy ( z ⊕ 1) ⊕ w( x ⊕ 1) z‬‬
‫= ‪= xy ⊕ xz ⊕ x ⊕ xyz ⊕ xy ⊕ wxz ⊕ wz‬‬
‫‪= xz ⊕ x ⊕ xyz ⊕ ⊕ wxz ⊕ wz‬‬

.1-‫ בתצורה הקסורית יש לנו איברים ממעלה הגדולה מ‬,‫לא‬
?‫האם הפונקציה הבאה היא ליניארית‬

f = ab ' c + a ' b ' c '+ abc '+ a ' bc
:‫פתרון‬
:'‫שיטה א‬

f = ab ' c + a ' b ' c '+ abc '+ a ' bc =
= a (b ' c + bc ') + a '(b ' c '+ bc) = a (b ⊕ c) + a '(b ⊕ c ⊕ 1) = a ⊕ b ⊕ c ⊕ 1
.‫ולכן הפונקציה היא ליניארית‬
:'‫שיטה ב‬

f = (ab ' c + a ' b ' c ') + (abc '+ a ' bc) =
= (ab ' c ⊕ a ' b ' c '⊕ 0) + (abc '⊕ a ' bc ⊕ 0) =
= ab ' c ⊕ a ' b ' c '⊕ abc '⊕ a ' bc ⊕ (ab ' c ⊕ a ' b ' c ')(abc '⊕ a ' bc) =
= a(b ⊕ 1)c ⊕ (a ⊕ 1)(b ⊕ 1)(c ⊕ 1) ⊕ ab(c ⊕ 1) ⊕ (a ⊕ 1)bc ⊕ 0 ⊕ 0 ⊕ 0 ⊕ 0
= abc ⊕ ac ⊕ (a ⊕ 1)(bc ⊕ b ⊕ c ⊕ 1) ⊕ abc ⊕ ab ⊕ abc ⊕ bc
= ac ⊕ abc ⊕ ab ⊕ ac ⊕ a ⊕ bc ⊕ b ⊕ c ⊕ 1 ⊕ ab ⊕ abc ⊕ bc
a ⊕ b ⊕ c ⊕1
.‫ולכן הפונקציה היא ליניארית‬

:‫משפחות של פונקציות לוגיות‬

‫סט אוניברסאלי )משפחה שלמה(‪:‬‬
‫סט של פעולות לוגיות ממנו ניתן להרכיב )ללא מעגלים( כל פעולה באמצעות מערכת צירופית ייקרא‬
‫סט אוניברסאלי‪.‬‬
‫משפט פוסט‪:‬‬
‫סט יקרא אוניברסאלי אם עבור כל אחד מהתנאים)של משפחות של פונקציות לוגיות שראינו בסעיף‬
‫הקודם( יש בסט פעולה שהתנאי לא מתקיים עבורה ‪.‬‬
‫האם ‪ AND, OR‬מהווים סט אוניברסאלי? נסתכל בטבלה ונראה כי לא!‬
‫האם ‪ AND, OR, NOT‬מהווים סט אוניברסאלי? כן!‬
‫דוגמאות לסטים אוניברסלים‪:‬‬

:Kronecker Product ‫הגדרה‬

:‫דוגמא‬

1 2 
 0 1
A=
,
B
=

 −1 5 
3 4 


0 1 0 2
 −1 5 −2 10 

A⊗ B = 
0 3 0 4


 −3 15 −4 20 

:‫ כה אמר שנון‬:‫תזכורת‬

f = xi f 0 ⊕ xi f1 = (1 ⊕ xi ) f 0 ⊕ xi f1 = f 0 ⊕ xi f 0 ⊕ xi f1 = f 0 ⊕ xi ( f 0 ⊕ f1 )

Reed Muller Expansion :‫הגדרה‬

n=2 ‫דוגמא עבור‬
:‫באופן כללי‬

:‫דוגמא‬

f ( x1 x2 ) = x1 x2 + x1 ' x2 ' = x1 ⊕ x2 ⊕ 1
1 
 1 0  1 0   0 
f ( x1 x2 ) = [1 x1 ] ⊗ [1 x2 ]  
=
⊗

 1 1  1 1   0 
 
1 
1 0 0 0  1 
1 1 0 0  0 
  =
= [1 x2 x1 x1 x2 ] 
1 0 1 0  0 

 
1 1 1 1  1 
1 
0 
= [1 ⊕ x2 ⊕ x1 ⊕ x1 x2 , x2 ⊕ x1 x2 , x1 ⊕ x1 x2 , x1 x2 ]   =
0 
 
1 
= 1 ⊕ x2 ⊕ x1 ⊕ x1 x2 ⊕ x1 x2 = 1 ⊕ x2 ⊕ x1
:n=3 ‫עבור‬

 1
f ( x1 x2 ) = [1 x1 ] ⊗ [1 x2 ] ⊗ [1 x3 ]  
 1


1


1 0  1

[1 x1 ] ⊗ [1 x3 x2 x 2 x3 ] 

 1 1  1


1

 f (0) 
 f (1) 


 f (2) 


0  1 0  1 0    f (3) 


=

1  1 1  1 1    f (4) 


 f (5) 
 f (6) 


 f (7) 
 f (0) 
 f (1) 


0 0 0    f (2) 


1 0 0    f (3) 

=
0 1 0    f (4) 


1 1 1    f (5) 
 f (6) 


 f (7) 

1
1

1

1
= [1 x3 x2 x 2 x3 x1 x1 x3 x1 x2 x1x 2 x3 ] 
1

1
1

1

‫והעמודות שלה הן‬,‫נקראת מטריצת ריד מולר‬

0 0 0 0 0 0 0   f (0) 
1 0 0 0 0 0 0   f (1) 
0 1 0 0 0 0 0   f (2) 


1 1 1 0 0 0 0   f (3) 
0 0 0 1 0 0 0   f (4) 


1 0 0 1 1 0 0   f (5) 
0 1 0 1 0 1 0   f (6) 


1 1 1 1 1 1 1   f (7) 

‫המטריצה הלא סינגולרית‬
.‫פונקציות ריד מולר‬

:‫ספקטרום ריד מולר מוגדר‬

:‫ולכן‬

1
1

1

1
1

1
1

1

0
1
0
1
0
1
0
1

0
0
1
1
0
0
1
1

0
0
0
1
0
0
0
1

0
0
0
0
1
1
1
1

0
0
0
0
0
1
0
1

0
0
0
0
0
0
1
1

0
0 
0

0
0

0
0

1 

:‫דוגמא לפירוק ריד מולר‬
(‫ )מגיעים לטבלת אמת של הפונקציה‬:'‫שלב א‬

f ( x1 , x2 , x3 ) = ( x1 + x2 x3 )( x1 x2 + x1 x2 ) = x1 x2 + 0 + x1 x2 x3 + x1 x2 x3 =
= x1 x2 ( x3 + x3 ) + x1 x2 x3 + x1 x2 x3 = x1 x2 x3 + x1 x2 x3 + x1 x2 x3 + x1 x2 x3 =
= x1 x2 x3 + x1 x2 x3 + x1 x2 x3 = ∑ (3,6, 7) = [0, 0, 0,1, 0, 0,1,1]
:‫ טבלת אמת נראית כך‬:‫תזכורת‬
X3
0
0
0
0
1
1
1
1

X2
0
0
1
1
0
0
1
1

X1
0
1
0
1
0
1
0
1

f
F(0)
F(1)
F(2)
F(3)
F(4)
F(5)
F(6)
F(7)

:‫ דרך א‬-(S ‫שלב ב')חישוב‬

‫= ‪f ( x1 , x2 , x3 ) = x1 x2 x3 + x1 x2 x3 + x1 x2 x3 = ( x1 x2 x3 ⊕ x1 x2 x3 ⊕ 0) + x1 x2 x3‬‬
‫= ‪= x1 x2 x3 ⊕ x1 x2 x3 ⊕ x1 x2 x3 = x1 x2 x3 ⊕ x1 x2 ( x3 ⊕ 1) ⊕ ( x1 ⊕ 1) x2 x3‬‬
‫‪x1 x2 x3 ⊕ x1 x2 x3 ⊕ x1 x2 ⊕ x1 x2 x3 ⊕ x2 x3 = x1 x2 ⊕ x1 x2 x3 ⊕ x2 x3‬‬
‫תזכורת‪f ( x1 , x2 , x3 ) = X (3) S f , rm :‬‬
‫ולכן ‪f ( x1 , x2 , x3 ) = X (3) S f , rm = [1 x3 x2 x 2 x3 x1 x1 x3 x1 x2 x1x 2 x3 ]S‬‬
‫מכאן ש‪S = [0, 0, 0,1, 0, 0,1,1] :‬‬
‫דרך ב‪ :‬אלגוריתם מהיר עבור ‪:RM‬‬

‫מבוסס על היחס הרקורסיבי‪:‬‬

‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬

‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬

‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬

‫שיטה ג'‪:transeunt triangle -‬‬
‫זהו משולש של אחדות ואפסים כאשר בתחתיתו ישנו את וקטור האמת של הפונקציה‪.‬‬
‫כל שורה נוצרת מקסור של שני איברים סמוכים בשורה מתחתיה‪.‬‬

‫על השוק השמאלי אנחנו מקבלים את וקטור הספקטרום‪.‬‬

‫שלב ג'‪f = X (3) S :‬‬
‫ריד מולר עם פולריות‪:‬‬
‫‪ FPRM‬של פונקציה ‪ f‬עם וקטור פולריות‬

‫נתון על ידי‬

‫)הערה‪ :‬ריד מולר עם פולריות שלילית‪ ,‬התקבל מפירוק שנון‪ ,‬באופן דומה לאופן שהראינו עבור‬
‫הפולריות הרגילה‪-‬‬

‫הביטוי המטרי ציוני עבור משתנה אחד הוא‬

‫והמטריצה‬

‫היא מטריצת ריד מולר הבסיסטית עבור פולריות שלילית‪.‬‬

‫תרגיל‪:‬‬
‫נתון וקטור האמת של פונקציה‬
‫מצא ספקטרום ריד מולר עבור וקטור פולריות שהוא שלילי עבור כל המשתנים‪ ,‬כלומר‪(1,1,1) :‬‬

‫‪ 0 1 0 1 0 1 ‬‬
‫‪S f = R(3) F =  ‬‬
‫‪⊗‬‬
‫‪⊗‬‬
‫= ‪F‬‬
‫‪ 1 1 1 1 1 1 ‬‬
‫‪‬‬
‫‪ 0 0 0 1 ‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫= ‪ 0 1 ⊗  0 0 1 1  F‬‬
‫‪ 1 1  0 1 0 1 ‬‬
‫‪‬‬
‫‪‬‬
‫‪ ‬‬
‫‪1 1 1 1 ‬‬
‫‪‬‬
‫‪1 0 ‬‬
‫‪1 1 ‬‬
‫‪1 0 ‬‬
‫‪ ‬‬
‫‪1 1 ‬‬
‫‪= [1 0 0 1 0 1 0 1]T‬‬
‫‪1 0 ‬‬
‫‪ ‬‬
‫‪1 1 ‬‬
‫‪1 1 ‬‬
‫‪ ‬‬
‫‪1 1 ‬‬

‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬

‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬

‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬

‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬

‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬

‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬

‫‪0‬‬
‫‪0‬‬
‫‪‬‬
‫‪0‬‬
‫‪‬‬
‫‪0‬‬
‫‪=‬‬
‫‪0‬‬
‫‪‬‬
‫‪0‬‬
‫‪0‬‬
‫‪‬‬
‫‪1‬‬

‫] ‪X 111 (3) = [1 x1 ] ⊗ [1 x2 ] ⊗ [1 x3 ] = [1 x1 ] ⊗ [1 x3 x2 x2 x3 ] = [1 x3 x2 x2 x3 x1 x1 x3 x1 x2 x1 x2 x3‬‬

‫ולכן‬

:‫תרגיל‬
: (010) ‫ עם וקטור הפולריות‬f ‫ של הפונקציה הבאה‬RM ‫מצא ביטוי‬

:‫פתרון‬

1 0  0 1 1
RM 010 (3) = 
⊗
⊗
1 1  1 1 1
0 0
0 0

 0 0 1 0  1 0

 
1 0  0 0 1 1  1 1
=
=
⊗
1 1  1 0 1 0  0 0

 
1 1 1 1   0 0
1 0

1 1

0
=
1 

0
0

1

1
S = R010 (3) F = 
0

0
1

1

1
1
1
1
1
1
1
1

0
1
0
1
0
1
0
1

0
0
0
1
0
0
0
1

0
0
0
0
0
0
1
1

1
1
1
1
1
1
1
1

0
0
0
0
0
0
0
1

0
1
0
1
0
1
0
1

0
0 
0
 :RM ‫ראשית נמצא את מטריצת‬
0
0

1
0

1 

0
0
0
0
1
1
1
1

0
0
0
0
0
0
1
1

0
0
0
0
0
0
0
1

0
0
0
0
1
1
1
1

0  1 
0  0 
0  0 
 
0  1 
= [0 1 1 0 1 1 0 1]
0  0 
 
1  1 
0  1 
 
1  1 

f=X 010 (3)S = x3 ⊕ x2 ⊕ x1 ⊕ x1 x3 ⊕ x1 x2 x3

:‫הערות‬
:‫מטריצות ריד מולר עבור שני משתנים ופולריות קבועה‬

‫ספקטרום ריד מולר עבור שני משתנים ופולריות קבועה‪:‬‬