‫תכן לוגי מתקדם –תשע"ב ‪ -‬פתרון‬

‫משך הבוחן ‪ 1.5‬שעות‪.‬‬
‫המבחן בחומר סגור‬
‫על כל התשובות להיות מנומקות‪ .‬תשובה לא מנומקת לא תקבל ניקוד !‬
‫בהצלחה‪,‬‬
‫בעיה ‪(35%) 1‬‬
‫האם קבוצת המחלקים של ‪ 24‬ושתי הפעולות )‪GCD(Greatest common divider) , LCM(least common multiplier‬‬
‫מהווים אלגברה בולאנית?‬
‫תזכורת – אקסיומות אלגברה בולאנית‪:‬‬

‫;‪Identities : a ∨ 0 = a, a ⋅1 = a‬‬
‫;‪Commutative laws : a ∨ b = b ∨ a, a ⋅ b = b ⋅ a‬‬
‫; ) ‪Distributive laws : a ∨ ( b ⋅ c ) = ( a ∨ b ) ⋅ ( a ∨ c ) , a ⋅ ( b ∨ c ) = ( a ⋅ b ) ∨ ( a ⋅ c‬‬
‫‪Complements : a ∨ a = 1, a ⋅ a = 0.‬‬
‫פתרון‪:‬‬

‫קבוצת המחלקים של ‪ 24‬היא }‪d 24 = {1, 2,3, 4, 6,8,12, 24‬‬
‫נבחר את פועלת ה‪ GCD‬להיות פעולת מינימום )כלומר ‪ (AND‬ואת ה ‪ LCM‬להיות פעולת מקסימום )כלומר ‪.(OR‬‬
‫לדוגמא‬

‫‪gcd(12, 4) = 4 → 12 ∧ 4 = 4‬‬
‫‪lcm(2,3) = 6 → 2 ∨ 3 = 6‬‬

‫האם קיים איבר שמתאים לתפקיד ה‪ ?"1"-‬כלומר איבר שמקיים ‪ a ⋅ "1" = a‬עבור כל ‪ a‬בקבוצת המחלקים שלנו?‬
‫אנחנו מחפשים איבר שהמחלק המשותף שלו עם כל איבר אחר בסט הוא האיבר האחר‪ ,‬נשים לב ש‪ 24-‬מקיים‬
‫את זה! ‪ gcd(a, 24) = a | ∀a ∈ d 24‬מפני שכל האיברים בסט מחלקים את ‪.24‬‬
‫האם קיים איבר שמתאים לתפקיד ה‪ ?"0"-‬כלומר איבר שמקיים ‪ a ∨ "0" = a‬עבור כל ‪ a‬בקבוצת המחלקים‬
‫שלנו? אנחנו מחפשים איבר שהכפולה המשותפת המינימלית שלו עם כל איבר אחר בסט הוא האיבר האחר‪,‬‬
‫נשים לב ש‪ 1-‬מקיים את זה מפני ש ‪ lcm(a,1) = a‬מפני ש‪ 1-‬מחלק את כל האיברים בסט‪.‬‬
‫האקסיומה השניה‪ ,‬קומוטטיביות מתקיימת מעצם הגדרת הפעולות‪ GCD) .‬ו‪ LCM -‬הן פעולות‬
‫קומוטטיביות(‪.‬‬
‫כדי להראות שזו אכן אלגברה ליניארית חובה להראות שכל האקסיומות מתקיימות‪.‬‬
‫כדי להראות שזו לא אלגברה ליניארית מספיק להראות דוגמא נגדית אחת‪.‬‬
‫נחפש איבר שאין לו משלים‪ ,‬כלומר איבר ‪ a‬מתוך הסט שעבורו לא קיים בסט ‪ a‬שעבורו מתקיים‬
‫"‪a ∨ a = "1", a ⋅ a = "0‬‬
‫נזכור שאלצנו נדרש ‪a ∨ a = 24, a ⋅ a = 1 :‬‬

‫דוגמא אפשרית‪ :‬ניקח את האיבר ‪.2‬‬
‫האיבר היחיד שמקיים ‪ 2 ∨ b = 24‬הוא ‪ ,b=24‬אולם ‪ 2 ∧ 24 = 2 ≠ 1‬ולכן ל‪ 2-‬אין איבר משלים בסט‪ ,‬ולכן‬
‫זוהי אינה אלגברה בוליאנית‪.‬‬

‫בעיה ‪(35%) 2‬‬
‫נתון סט פונקציות‬

‫}‬

‫‪a‬‬

‫{‬

‫‪F = bc d + a bcd + a cd + abc d + a bd + a bcd ,‬‬

‫‪ .1‬האם הסט מהווה סט אוניברסאלי?‬
‫‪ .2‬האם ניתן לממש בעזרתו את הקבועים ‪ 0‬ו‪? 1 -‬‬
‫‪ .3‬האם ניתן לממש בעזרתו את הפונקציה ‪g(x,y,z)= x xor y xor z‬‬
‫פתרון‪:‬‬
‫‪.1‬ראשית נעשה מינימיזציה לפונקציה הראשונה ונקבל‪:‬‬

‫‪linear‬‬

‫‪iso‬‬

‫‪sd‬‬

‫‪P1‬‬

‫‪P0‬‬

‫‪function‬‬

‫‪+‬‬

‫‪-‬‬

‫‪+‬‬

‫‪-‬‬

‫‪-‬‬

‫’‪f1=a‬‬

‫‪-‬‬

‫‪-‬‬

‫‪-‬‬

‫‪-‬‬

‫‪+‬‬

‫‪f2=a’c+c’d‬‬

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

‫‪f 2 (a, b, c, d ) = ac + cd = ac + cd = ac & cd = (a + c)(c + d ) = ac + ad + cd ≠ f 2‬‬
‫בדיקת ליניאריות עבור הפונקציה השניה‪:‬‬

‫‪a ' c + c ' d = a ' c ⊕ c ' d ⊕ a ' cc ' d = a ' c ⊕ c ' d = (a ⊕ 1)c ⊕ (c ⊕ 1)d = ac ⊕ c ⊕ cd ⊕ d‬‬

‫זהו אינו פולינום ולכן הפונקציה אינה ליניארית‪.‬‬
‫מהטבלה רואים שזהו סט אוניברסאלי‪.‬‬
‫‪ .2‬מכיוון שזהו סט אוניברסאלי ברור שניתן לממש באמצעותו גם את הקבועים ‪ 0‬ו‪ .1-‬אפשר לעשות זאת‬
‫למשל כך‪:‬‬
‫את ‪ 0‬נממש כך‪f 2 (a, a, a, a) = a ' a + a ' a = 0 :‬‬

‫את ‪ 1‬נממש כך‪f1 (0) = 0 ' = 1 :‬‬

‫‪ .3‬מכיוון שזהו סט אוניברסאלי אזי ניתן לממש באמצעותו גם פונקציה את הפונקציה‬
‫‪g(x,y,z)= x xor y xor z‬‬
‫למשל כך‪:‬‬

‫נממש את ‪ f ( z , y ) = x ⊕ y‬באופן הבא‪:‬‬
‫‪f 2 ( x, 0, y, x) = x ' y + y ' x = x ⊕ y‬‬
‫נממש את ‪ g(x,y,z)= x xor y xor z‬באופן הבא‪:‬‬
‫‪f ( x, f ( y, z )) = x ⊕ ( y ⊕ z ) = x ⊕ y ⊕ z‬‬
‫בעיה ‪(35%) 3‬‬
‫עבור כל אחת מהטענות הבאות קבע האם היא נכונה או לא‪ .‬הוכח נכונות או תן דוגמא נגדית‪.‬‬
‫‪ .1‬אם ‪ p‬הוא מספר ראשוני‪ ,‬אזי כל המחלקים שלו והפעולות ‪ GCD‬ו‪ LCM -‬הם בהכרח אלגברה בולאנית‪.‬‬
‫פתרון‪ :‬נכון‬
‫אם ‪ p‬הוא מספר ראשוני‪ ,‬אזי קבוצת המחלקים שלו היא }‪. {1, p‬‬
‫תזכורת – אקסיומות אלגברה בולאנית‪:‬‬

‫;‪Identities : a ∨ 0 = a, a ⋅1 = a‬‬
‫;‪Commutative laws : a ∨ b = b ∨ a, a ⋅ b = b ⋅ a‬‬
‫; ) ‪Distributive laws : a ∨ ( b ⋅ c ) = ( a ∨ b ) ⋅ ( a ∨ c ) , a ⋅ ( b ∨ c ) = ( a ⋅ b ) ∨ ( a ⋅ c‬‬
‫‪Complements : a ∨ a = 1, a ⋅ a = 0.‬‬
‫נבחר את פועלת ה‪ GCD‬להיות פעולת מינימום )כלומר ‪ (AND‬ואת ה ‪ LCM‬להיות פעולת מקסימום )כלומר‬
‫‪.(OR‬‬
‫נקבל את טבלאות הכפל והחיבור הבאות‪:‬‬
‫‪AND‬‬
‫‪1‬‬
‫‪p‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪p‬‬
‫‪1‬‬
‫‪p‬‬

‫‪p‬‬
‫‪p‬‬
‫‪p‬‬

‫‪1‬‬
‫‪1‬‬
‫‪p‬‬

‫‪OR‬‬
‫‪1‬‬
‫‪p‬‬

‫מהטבלה רואים כי ‪) "0" = 1‬איבר היחידה ביחס לפעולת ‪ (OR‬וכי ‪) "1" = p‬איבר היחידה ביחס‬
‫לפעולת‪.(AND‬‬
‫קומוטטיביות חייבת להתקיים מעצם הגדרת הפעולות‪.‬‬

‫נשים לב כי אם נכתוב מחדש את טבלאות הכפל‪ ,‬לפי ההשמות ‪ "1" = p , "0" = 1‬שקיבלנו נקבל ‪:‬‬
‫"‪"1‬‬
‫"‪"0‬‬
‫"‪"1‬‬

‫"‪"0‬‬
‫"‪"0‬‬
‫"‪"0‬‬

‫‪AND‬‬
‫"‪"0‬‬
‫"‪"1‬‬

‫"‪"1‬‬
‫"‪"1‬‬
‫"‪"1‬‬

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

‫‪OR‬‬
‫"‪"0‬‬
‫"‪"1‬‬

‫אלו הן הטבלאות המוכרות של הפעולות הבינאריות ‪ OR‬ו‪ AND-‬וידוע שהן מהוות אלגברה בוליאנית‪) .‬כלומר‬
‫ניתן מכאן להראות שהן מקיימות את שאר האקסיומות(‪.‬‬
‫‪n‬‬
‫‪ .2‬כל פונקציה סימטרית התלויה ממש ב‪ n -‬משתנים ובעלת משקל ‪ 2 / 2‬היא ‪.self-dual‬‬
‫תשובה‪ :‬לא נכון‬

‫דוגמא נגדית‪ :‬ניקח את הפונקציה ' ‪. f (a, b) = a ' b + ab‬‬
‫הפונקציה היא סימטרית מפני ש )‪f (b, a ) = b ' a + ba ' = f (a, b‬‬
‫זוהי הפונקציה ‪, f (a, b) = a ' b + ab ' = a ⊕ b‬‬
‫נשים לב כי ‪ n=2‬וכי משקל הפונקציה הוא ‪ 2 n / 2 = 4 / 2 = 2‬כנדרש‪.‬‬
‫נבדוק האם הפונקציה היא ‪:self-dual‬‬

‫) ‪f ( a , b ) = a ⊕ b = a ⊕ b = a ⊕ b ≠ f ( a, b‬‬
‫הפונקציה אינה ‪.self-dual‬‬
‫‪ .3‬כל פונקציה ליניארית התלויה ממש בשלושה משתנים או יותר היא דואלית לעצמה‪.‬‬
‫תשובה‪ :‬לא נכון‬
‫דוגמא נגדית‪:‬‬
‫ניקח את הפונקציה הליניארית ‪f (a, b, c, d ) = a ⊕ b ⊕ c ⊕ d‬‬

‫אשר תלויה ממש ב‪ 4-‬משתנים )יותר משלושה משתנים(‬
‫נבדוק האם הפונקציה היא ‪:self-dual‬‬
‫) ‪f ( a , b, c , d ) = a ⊕ b ⊕ c ⊕ d = a ⊕ b ⊕ c ⊕ d = a ⊕ b ⊕ c ⊕ d ≠ f ( a , b, c , d‬‬
‫הפונקציה אינה ‪.self-dual‬‬
‫‪ .4‬כל פונקציה מונוטונית התלויה ממש ב‪ 10 -‬משתנים והמקיימת ‪ f (1010101010) = 1‬היא בעלת משקל‬
‫של לפחות ‪. 25 + 1‬‬
‫תשובה‪ :‬לא נכון‪.‬‬
‫דוגמא נגדית‪:‬‬

‫ניקח את הפונקציה ‪f ( x0 , x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9 ) = x0 x1 x2 x3 x4 x5 x6 x7 x8 x9‬‬
‫זוהי פונקציה מונוטונית התלויה ממש ב‪ 10-‬משתנים ומקיימת ‪ f (1010101010) = 1‬אולם משקלה‬
‫הוא ‪.1‬‬
‫‪ .5‬כל פונקציה איזוטונית שמציבים במקום המשתנים שלה ביטויים שהם בעצמם פונקציות לינאריות היא‬
‫איזוטונית במשתני פונקציות אלו‪.‬‬
‫תשובה‪ :‬לא נכון‬
‫דוגמא נגדית‪:‬‬
‫ניקח את הפונקציה האיזוטונית ‪f i (a) = a‬‬

‫ניקח את הפונקציה הליניארית ‪f l (b) = 1 ⊕ b‬‬
‫עתה נבדוק אם הדרישה מתקיימת‪:‬‬
‫‪f i ( f l (b)) = fi (1 ⊕ b) = 1 ⊕ b = b‬‬
‫הפונקציה שקיבלנו אינה איזוטונית ב‪.b-‬‬