אלגברת מיתוג(או אלגברה בוליאנית) הוא תחום באלגברה המשתמש בערכי משתנים של אמת(1) ושקר(0) עליהם אנחנו יכולים לבצע כמה פעולות.
הפעולות שאנו יכולים לבצע הן:
OR(+,∣)0+0=00+1=11+0=11+1=1AND(⋅,&)0⋅0=00⋅1=01⋅0=01⋅1=1NOT(′,)0′=11′=0
כל פעולה כזו מיוצגת על ידי שער לוגי:
כל אחד משני הערכים 0 ו-1.
משתנה שיכול לקבל אחד משני הערכים 0 או 1 כאשר x=0⟺x=1 ו-x=1⟺x=0.
צירוף סופי של משתני מיתוג, קבועי מיתוג ופעולות מיתוג הוא ביטוי מיתוג והוא מוגדר באופן אינדוקטיבי כך:
- כל משתנה מיתוג או קבוע מיתוג הינו ביטוי מיתוג
- אם T1,T2 הינם ביטויי מיתוג, כך גם T1+T2,T1⋅T2,(T1)′.
- צירוף סימנים שאינו מתגבל כך איננו ביטוי מיתוג.
נניח הביטוי x+y⋅z⋅y יראה כך:
סדר הפעולות:
- לפני הסוגריים
- בהעדר סוגריים:
- קדימות ראשונה: שלילה NOT
- קדימות שניה: AND
- קדימות שלישית: OR
ערך (האמת) של ביטוי מיתוג T תחת השמת ערכי אמת (אמיתי או שקרי) הערך שמקבל הביטוי כאשר מציבים לכל משתנה מיתוג בו את ערך האמת שלו בהשמה.
A′+C+B′C+AC′
נחשב את הביטוי הנתון כאשר A=0,B=0,C=1.
יהיו T1,T2 ביטויי מיתוג. השוויון T1=T2 הינו זהות מיתוג אם תחת כל השמה מקבלים T1,T2 ערכים שווים.
זהויות:
- x=x
- x⋅y=y⋅x
לא זהוית:
- x=y
- x⋅y=y+x
ההוכחה מתבעצת ע"י בדיקת כל הצירופים האפשריים של המשתנים. כלומר, כתיבת טבלת האמת.
בזהות מיתוג ניתן להחליף כל משתנה בביטוי מיתוג.
למשל נחליף את x ב-(w+zq) כך
xy=yx⟹(w+zq)y=y(w+zq)
זהויות מיתוג
עקרון הדואליות
בכל זהות, אם נחליף AND↔OR נבצע גם 1↔0 נקבל זהות חדשה דואלית.
אם מתקיימת הזהות:
P(x,y,…,0,1,AND,OR,NOT)=Q(x,y,…,0,1,AND,OR,NOT)
אזי מתקיימת גם הזהות:
P(x,y,…,1,0,OR,AND,NOT)=Q(x,y,…,1,0,OR,AND,NOT)
מספיק להוכיח תכונה אחת מכל זוג דואלי והתכונה השנייה נובעת מעיקרון הדואליות.
זהויות מיתוג בסיסיות
- אדישות: x+x=xx⋅x=x
- ערכים אדישים ושולטים:
- 1 שולט ב-OR. כלומר: x+1=1.
- 0 שולט ב-AND, כלומר: x⋅0=0.
- 0 אדיש ב-OR. כלומר, x+0=x.
- 1 אדיש ב-AND. כלומר: x⋅1=x.
- חילוף (קומוטטיביות): x+y=y+xx⋅y=y⋅x
- קיבוץ (אסוציטיביות): (x+y)+z=x+(y+z)(x⋅y)⋅z=x⋅(y⋅z)
- השלמה: x+x′=1x⋅x′=0
הוכחה: (1)
0+0=0,1+1=1,0⋅0=0,1⋅1=1
אין עוד אפשרויות ולכן זה מתקיים.
∎
זה נקרא הוכחה בשיטת אינדוקציה שלמה.
משפט (6 - פילוג (דיסטריבודיטיביות))
כמו באלגברה רגילה מתקיים: x(y+z)=xy+xz.
אך בניגוד לאלגברה רגילה:
x+(y⋅z)=(x+y)⋅(x+z)
זה הדבר היחיד שאינו טריוויאלי פה ולכן חשוב לזכור אותו.
ניתן להוכיח באינדוקציה שלמה אך לא הספקתי לכתוב את זה.
משפט (הזהויות הבסיסיות חלק ב')
7. חוק הבליעה: x+xy=xx(x+y)=x ובנוסף מתקיים גם x+x′y=x+yx(x′+y)=xy.
8. חוק ההסכמה: xy+x′z+yz=xy+x′z.
הוכחת (7) תעשה באמצעות אינדוקציה שלמה וגם על מסך זהויות קודמות:
x+xy=x⋅1+xy=x(1+y)=x
x(x+y)=(x+0)(x+y)=x+0⋅y=x
x+x′y=(x+x′)⋅(x+y)=1⋅(x+y)=x+y
x(x′+y)=xx′+xy=0+xy=xy
∎
הוכחה (8):
====xy+x′z+yzxy+x′z+yz⋅1xy+x′z+yz(x+x′)xy+x′z+yzx+yzx′xy+x′zלפי ערכים אדישיםלפי השלמהלפי פילוגלפי בליעה פעמיים
∎
אין באלגברת מיתוג פעולות הופכיות ל-AND/OR. בכך אסור לצמצם!
למשל, עבור A+B=A+C לא מתקיים B=C.
נסתכל על דוגמה נגדית בדמות A=1,B=0,C=1 ואז 1+0=1+1 לא גורר 0=1.
דה מורגן
(x+y)′=x′⋅y′
(xy)′=x′+y′
ההוכחה נעשית באמצעות אינודקציה שלמה כך:
x0011y0101x′1100y′1010x+y0111(x+y)′1000x′y′1000
(x+y′z)′=(x+(y′z))′=x′(y′z)′=x′((y′)z)′=x′((y′)′+z′)=x′(y+z′)
דה-מורגן המוכלל
P(x,y,…,0,1,AND,OR)′=P(x′,y′,…,1,0,OR,AND)
ההוכחה מתבצעת באינודקציה על כמות המספרים.
(x′+y+z)′=(x′)′y′z′=xy′z′
נשים לב כי פעולות NOT אינן מושפעות מחוקי דה-מורגן.
סיכום הזהויות
x+x=xx+0=xx+1=1x+y=y+x(x+y)+z=x+(y+z)x+x′=1x(y+z)=xy+xzx(x+y)=xx(x′+y)=xy(x+y)′=x′⋅y′x⋅x=xx⋅0=0x⋅1=xx⋅y=y⋅x(x⋅y)z=x(y⋅z)x⋅x′=0x+(y⋅z)=(x+y)(x+z)x+xy=xx+x′y=x+yxy+x′z+yz=xy+x′z(x′)′=x(xy)′=x′+y′אדישות.1ערכים אדישים.2ושולטיםחילוף.3קיבוץ.4השלמה.5פילוג.6בליעה(ראשון).7בליעה(שני).8קונצנזוס.9היפוך עצמי.10דה-מורגן.11
====(x+y)[x′(y′+z′)]′+x′y′+x′z′(x+y)(x+yz)+x′y′+x′z′x+yz+x′y′+x′z′x+y′+z′+y1 מוכלל11+106+18שלוש פעמים 2+5
בשימוש בדה מורגן המוכלל:
[(x+y)′z′]′=(x′y′)′+z=x+y+z
בשימוש בדה מורגן הבסיסי(נתייחס ל-x+y כביטוי אחד ולא משהו מורכב):
[(x+y)′z′]′=(x+y)+z
פונקציות מיתוג
פונקציית מיתוג של n משתנים הינה כלל התאמה בין 2n הצירופים השונים של המשתנים x1,…,xn לבין הקבוצה {0,1}.
f:n{0,1}×{0,1}×⋯×{0,1}→{0,1}f(x1,…,xn)
ניתן לתאר פונקצית מיתוג באמצעות טבלת אמת:
x1,…,xn0,0,…,00,0,…,1⋮1,1,…,1f(x1,…,xn)f(0,0,…,0)f(0,0,…,1)⋮f(1,1,…,1)
מספר הפונקציות = מספר הווקטורים בגודל 2n = מספר תת הקבוצות האפשריות של 2n שורות.
לכן, מספר הפונקציות האפשריות הינו 22n כאשר n הוא מספר המשתנים.
X1,X20,00,11,01,1000000NOR10001X1′X201002X1′11003X1X2′00104X2′10105XOR01106NAND11107AND00018XNOR10019X20101AX1′+X21101BX10011CX1+X2′1011DOR0111E11111F
צורות ייצוג לפונקציות
נוכל לייצג פונקציה באמצעות טבלת אמת כמו שראינו. אך נוכל גם להציג את אותה הפונקציה וכל פונקציה אחרת באמצעות כמה צורות שונות אותן נראה עוד שניה.
ביטוי מיתוג
f(x,y)=x′+y
X0011Y0101f(x,y)1101
ביטוי מיתוג הוא כמו ההצגה הרגילה שאנו מכירים לפונקציות מאינפי או חדווא, אך פה אנו נשתמש באלגברה בוליאנית במקום אלגברה רגילה המוגדרת על F.
נשים לב שאלגברה בוליאנית לא מוגדרת על שדה, אפילו לא Z2 שכן ב-Z2 מתקיים 1+1=0 ובבוליאנית מתקיים:
1+1=1
צורות קנוניות
ישנם ∞ ביטויי מיתוג לכל פונקציה. אנו נרצה משהו אחיד שבעזרתו נוכל להציג את הפונקציה ולהשוות בין פונקציות שונות.
תחילה, ננסה להגדיר ביטוי "המתאר" את מיקום האחדים בפונקציה. נגדיר ביטוי המקבל את הערך 1 עבור צירוף משתנים של שורה מסויימת. ערך ביטוי יהיה 1 אם אחת מהמכפלות בו יהיה 1. לכן, נדרש לרשום את סכום המכפלות
בצורה הקנונית סכום מכפלות יש לרשום את סכום המכפלות(minterm) המתאימות לשורות בטבלת האמת בהן הפונקציה מקבלת ערך 1.
צורה קנונית אינה מתימרת להיות מיטבית. יתרונה בכך שהיא "סטנדרטית" וקל להגיע אליה מכל צורת ביטוי נתונה.
לעיתים זה נוח למטרות מימוש ותמיד מאפשר השוואה קלה בין ביטויים כדי לבדוק אם הם זהים זה לזה.
Decimal code01234567x,y,z000001010011100101110111f(x,y,z)10001000
עבור טבלת האמת הנ"ל נקבל כי:
f(x,y,z)=x′y′z′+xy′z′
f(x,y,z)=∑(0,4)
Decimal code01234567x,y,z000001010011100101110111f(x,y,z)10110011
עבור טבלת האמת הבאה נקבל את הפונקציה:
f(x,y,z)=∑(0,2,3,6,7)
באופן דומה, ניתן להגדיר ביטוי המתאר את מיקום האפסים בפונקציה. נתחיל בהגדרת ביטוי המקבל 0 עבור צרוף משתנים של שורה מסויימת בלבד.
ביטוי המקבל ערך 0 רק עבור צרוף המשתנים xyz=001 יהא (x+y+z′).
מספיק שאחד הסכומים במכפלת הסכומים ישווה ל-0 בכדי שכל הביטוי ישתווה ל-0.
הגדרה 7 (
maxterm)
סכום של n ליטרלים המתאימים לכל n המשתנים השונים.
הגדרה 8 (
maxterm כפונקציה)
מקבל את הערך 0 אך ורק עבור צירוף יחיד של ערכי משתני כניסה.
Decimal code01234567x,y,z000001010011100101110111f(x,y,z)10110011
הפונקציה המתוארת ע"י טבלת האמת הנ"ל תהא:
f(x,y,z)=(x+y+z′)(x′+y+z)(x′+y+z′)=∏(1,4,5)
הקשרים בין הצורות הקנוניות השונות
קל לעבור בין הייצוגים:
f(x,y,z)=∑(0,2,3,6,7)=x′y′z′+x′yz′+x′yz+xyz′+xyz=∏(1,4,5)=(x+y+z′)(x′+y+z)(x′+y+z′)
f(xyz)=f′′(xyz)=(x+y+z′)(x′+y+z)(x′+y+z′)
f(x,y,z)=x′y′z+xy′z′+xy′z
העברת ביטוי מיתוג לצורה קנונית מבלי טבלת אמת
נתון ביטוי f בצורת סכום מכפלות(שאינו קנוני)
- בדוק כל מכפלה בביטוי: אם היא מינטרם, עבור למכפלה הבאה.
- אחרת:
- הרחבה: כפול את המכפלה ב-(xi+xi′) עבור כל משתנה xi החסר במכפלה.
- פתח סוגריים ובטל מכפלות חוזרות.
f(x,y,z)=x′y+z′+xyz=x′y(z+z′)+z′(x+x′)(y+y′)+xyz=x′yz+x′yz′+z′xy+z′x′y+z′xy′+z′x′y′+xyz=x′yz+x′yz′+xyz′+xy′z′+x′y′z′+xyz=x′y′z′+x′yz′+x′yz+xy′z′+xyz′+xyz=∑(0,2,3,4,6,7)=∏(1,5)=(x+y+z′)(x′+y+z′)
ניתן בנוסף לקחת את התצורה שקיבלנו: f(x,y,z)=x′y+z′+xyz ולבנות ממנה טבלת אמת:
xyz000001010011100101110111f(x,y,z)10111011
g(x,y,z)=x′(y′+z)=(x′+yy′+zz′)(y′+z+xx′)=(x′+y+z)(x′+y+z′)(x′+y′+z)(x′+y′+z′)(y′+z+x)(y′+z+x′)=(x′+y+z)(x′+y+z′)(x′+y′+z)(x′+y′+z′)(x+y′+z)=(x+y′+z)(x′+y+z)(x′+y+z′)(x′+y′+z)(x′+y′+z′)=∏(2,4,5,6,7)=∑(0,1,3)=x′y′z′+x′y′z+x′yz
צורות ייצוג לפונקציות
- טבלת אמת
- ביטוי מיתוג - f(x,y)=x′+y
- צורה קנונית של סכום מכפלות - f(x,y)=x′y′+x′y+xy
- צורה מקוצרת של סכום מכפלות - f(x,y)=∑(0,1,3)
- צורה קנונית של מכפלת סכומים - f(x,y)=(x′+y)
- צורה מקוצרת של מכפלת סכומים - f(x,y)=∏(2)
משפט הפיתוח של Shannon−Bool
f=xf(x=1)+x′f(x=0)
בהרחבה:
f(x1,x2,…,xn)=x1f(1,x2,…,xn)+x1′f(0,x2,…,xn)
או: f(x1,…,xn)=(x1+f(0,x2,…,xn))(x1′+f(1,x2,…,xn))
ההוכחה היא באינדוקציה שלמה על x1.
השוויונות מתקיימים בהצבת x1=0 ובהצבת x1=1.
f(x1,x2,…,xn)=x1f(1,x2,…,xn)+x1′f(0,x2,…,xn)
באמצעות המשפט נקבל:
f(x1,…,xn)=x1[x2f(1,1,x3,…,xn)+x2′f(1,0,x3,…,xn)]+x1′[x2f(0,1,x3,…,xn)+x2′f(0,0,x3,…,xn)]=x1x2f(1,1,x3,…,xn)+x1x2′f(1,0,x3,…,xn)+x1′x2f(0,1,x33,…,xn)+x1′x2′f(0,0,x3,…,xn)=⋯=x1x2…xnf(1,…,1)+⋯+x1′x2′…xn′f(0,0,…,0)
- קיבלנו את הצורה הקנונית של סכום המכפלות (מכיוון שאם f עם קבועים תהיה 1 אזי זה לא יתאפס)
- לכל פונקציה יש צורה קנונית
כל פונקציה ניתנת לרישום בצורה הקנונית
f(x1,…,xn)=a0x1′x2′…xn′+⋯+a2n−1x1x2…xn
הוכחה: באמצעות הפיתוח של שאנון.
עבור משתנה אחד נקבל ממשפט הפיתוח: f(x)=a0x′+a1x.
סה"כ יש 22=4 פונקציות והן:
- פונקציית הזהות
- הפונקציה הקבועה 1
- הפונקציה הקבועה 0
- הפונקציה NOT
הפונקציה XOR
חיבור מודולו 2: שארית החיבור לאחר החלוקה ב-2
x0011y0101x⊕y0110
(y=1∧x=0)∨(y=0∧x=1)⟺x⊕y=1
A⊕B=B⊕AA⊕(B⊕C)=(A⊕B)⊕CA(B⊕C)=(AB)⊕(AC)A=B⟺A⊕B=0A⊕0=AA⊕A=0A⊕1=A′A⊕A′=1
יהיו A,B,C,D ביטוי מיתוג שונים. האם תמיד מתקיים ש: A⊕B⊕C⊕D=A⊕B⊕C⊕D
ברור שכן
האם תמיד מתקיים ש: A⊕B⊕C⊕D=A⊕B⊕C⊕D? התשובה היא כן, שכן אם נסתכל על המשוואה בזוגות ונבצע טבלת אמת על A,B:
A0011B0101A⊕B1001A⊕B1001
ביטוי מינימלי של פונקציה
נרצה כעת לקחת כל פונקציית מיתוג ולמצוא ביטוי שקול בצורת סכום מכפלות כך ש:
- מספר המכפלות יהיה מינימלי
- מבין הביטויים המקיימים את 1, מצא את הביטוי בעל מספר ליטרלים מינימלי.
הערה (למה שנרצה לעשות את זה)
כשאנו נבנה את החומרה של המחשב אנו נדרש לחומרים, והחומרים האלו עולים כסף. לכן, על מנת לצמצם את כמות הכסף שנצטרך להוציא וכדי שהמחשב שלנו יוכל להיות מהיר יותר, נרצה להשתמש במינימום האפשרי של רכיבים ומשתנים.
בקורס זה אין אנו נלמד שיטה איך להגיע למינימלי, אך נראה כלים אשר יקרבו אותנו לכך.
תהי פונקציה קנונית: f(x,y,z)=x′yz′+x′y′z′+xy′z′+x′yz+xyz+xy′z. נרצה למצוא לה ביטוי מינימלי ונעשה זאת כך:
נוכל תחילה לצמצם איברים:
f(x,y,z)=x′z′1(y+y′)+xy′z′+x′yz+xyz+xy′z
f(x,y,z)=z′(x′+xy′)+x′yz+xyz+xy′z=z′(x′+y′)+x′yz+xyz+xy′z
f(x,y,z)=x′z′+y′z′+x′yz+xyz+xy′z
כעת, לאחר שפיקנו את שלושת הגורמים הראשונים נוכל להמשיך ולפרק את שאר הגורמים:
f(x,y,z)=x′z′+y′z′+yz+xz
מ-6 איברים קיבלנו 4 מכפלות. כעת, כמות הליטרלים הוא 8 ולא כמו מה שהיה לנו קודם.
ניתן לעשות גם מינימיזציות אחרות ולקבל יצורים שונים ומשונים כגון: f(x,y,z)=x′z′+xy′+yz
קיבלנו פה 3 מכפלות עם 6 ליטרלים ולא 8.
הגדרה 10 (ביטוי בלתי ניתן לצמצום)
סכום מכפלות שמחיקת מכפלה או ליטרל ממנו יוצרת ביטוי שאיננו שקול לביטוי המקורי.
- ביטוי בלתי ניתן לצמצום אינו בהכרח מינימלי. (כמו שראינו בדוגמה ממקודם)
- ביטוי מינימלי אינו בהכרח יחיד
מערכת פעולות שלמה
הגדרה 11 (מערכת פעולות שלמה)
קבוצה של אופרטורים וקבועים נקראת שלמה אם ניתן לתאר באמצעותה כל פונקצית מיתוג.
הקבוצה {⋅,+,′}. בנוסף, לפי דה-מורגן נקבל כי גם {+,′},{⋅,′} הן שלמות.
כל קבוצה המממשת {⋅,′} או {+,′} הינה שלמה.
האופרטור NOR מהווה קבוצה שלמה. נראה זאת:
NOR(x,y)=(x+y)′
NOR(x,x)=(x+x)′=x′
NOR(NOR(x,y),NOR(x,y))=(NOR(x,y))′=(x+y)′′=x+y
לפי המשפט, זוהי מערכת פעולות שלמה.
באופן דומה גם NAND מהווה קבוצה שלמה.
הגדרה 12 (אופרטור אוניברסלי)
אופרטור יקרא אוניברסלי אם ניתן לממש באמצעותו בלבד מערכת פעולות שלמה
איך מראים שמערכת פעולות S אינה שלמה? מראים פונקציה שלא ניתן לממש באמצעותה. איך נעשה זאת?
-
מראים ע"י בדיקה של כל אפשרויות הרכבת הפונקציות מ-S שפונקציה מסוימת אינה ניתנת לתיאור(למשל NOT או AND)
-
מוצאים תכונה P שכל הרבה של פונקציות מ-S מקיימת אך קיימת פונקציה שאינה מקיימת תכונה זו(למשל ליניאריות)
-
מוכיחים שמספר האפשרויות להרכבת פונקציות מ-S קטן ממספר הפונקציות האפשריות(שיקולי ספירה)
{XOR},{XOR,AND},{XOR,1},…
האם הפונקציה f(x,y,z)=xy′+xz′+y′z′ היא מערכת פעולות שלמה?
F(0,0,0)=1F(1,1,1)=0
נשים לב כי: F(x,x,x)=x′
במצב זה אנו לא נצליח ליצור OR או AND. אך אם נשתמש בקבוע 1 או 0 נוכל ליצור:
F(x,y,1)=xy′⟹F(x,y′,1)=xyF(0,y,z)=y′z′=(y+z)′=NOR
ואז זו תהיה בהחלט מערכת שלמה. אבל זוהי לא מערכת פעולות שלמה לבדה, היינו צריכים להוסיף את הקבוע 0 או הקבוע 1.
את זה נראה כעת:
מערכת פעולות חצי-שלמה
הגדרה 13 (מערכת פעולות חצי שלמה)
מערכת פעולות תקרא חצי שלמה אם כדי שהיא תהיה שלמה נדרש להוסיף אליה את הקבוע 1 או הקבוע 0 או את שניהם.
המערכת שראינו בתרגיל הנ"ל הוא מערכת פעולות חצי שלמה. בלי הקבועים היא לא תוכל להיות שלמה אך עם אחד מהקבועים היא בהחלט תוכל להיות שלמה.
מפת קרנו
מפת קרנו היא שיטה לרישום טבלת אמת של פונקציית מיתוג והיא מקלה על מציאת ביטוי מינימלי של הפונקציה.
שיטה זו טובה למספר קטן של משתנים: 3 עד 5.
סדר העמודות במפת קרנו מאורגן לפי גוד Gray.
N=101N=200011110N=3000001011010100111101100
נסתכל על טבלת אמת:
Decimal code01234567x,y,z000001010011100101110111f(x,y,z)00101011
ונעביר אותה למפת קרנו:
\begin{array}{c|c|c|c|c|c|c|c|}
& 00 & 01 & 11 & 10 \\
0 &\hline 0 & 1 & 1 & 1 \\
1 & 0 & 0 & 1 & 0
\end{array} \implies \begin{array}{|c|c|c|c|}
\hline 0 & 2 & 6 & 4 \\
\hline 1 & 3 & 7 & 5 \\
\hline
\end{array}
אם יש לנו 4 משתנים: f(w,x,y,z) אזי זו תהיה טבלת קרנו שלה:
yz╲wx00011110000132014576111213151410891110
אם נקבל את הפונקציה f=∑(4,5,8,12,13,14,15) אזי נכניס אחדים במקומות המתאימים:
yz╲wx00011110000111111111101
זוהי המפת קרנו שנקבל לפונקציה זו.
שתי משבצות במפת קרנו תקראנה שכנות אם ייצוגן (הבינארי) נבדל בסיבית אחת בלבד.
כאשר המפה מייצגת טבלת אמת של n משתנים, לכל משבצת n שכנים.
z╲xy010001012311671045
במפת קרנו של שלושה משתנים, לכל משבצת שלושה שכנים.
צמצום פונקציות בעזרת מפת קרנו
צמצום פונקציות מבוסס על הזהות:
שתי משבצות שכנות המסומנות ב-1, המתאימות לשני מינטרמים הנבדלים בליטרל אחד, ניתנות לליכוד למכפלה של n−1 הליטרלים המשותפים.
z╲xy010001111110
ממפת קרנו ולפי הזהות יתקבל:
x′yz+xyz=yz
נתונה הפונקציה f(x,y,z)=∑(2,6,7) וננסה למצוא עבורה ביטוי מינימלי.
באמצעות חוקי האלגברה:
f=x′yz′+xyz′+xyz↓A+A=A=x′yz′+xyz′+xyz′+xyz=yz′(x′+x)+xy(z′+z)=yz′+xy
באמצעות מפת קרנו:
z╲xy0100011111110
ניתן לשכפל, ראינו זאת. לכן נוכל להשתמש באחד בשורה הראשונה במקום השלישי פעם אחד עם הבחור שמתחתיו ופעם אחת עם הבחור שלידו. אזי נקבל:
f=yz′+xy
קובייה m מימדית(במפת קרנו של n משתנים) ≡ אוסף מקסימלי של 2m משבצות שכולן זהות בייצוגן הבינארי ב-n−m מקומות.
נסתכל עבור n=4:
yz╲wx00011110001101111111101111
f(w,x,y,z)=∑(2,3,5,7,9,11,12,13,14,15)=w′x′y+xz+wx′
זהו פתרון לא כל כך טוב!
מטרת המינימיזציה היא כיסוי ה-1-ים במפה ע"י מינימום קוביות גדולות ככל האפשר.
יש עוד מה ללמוד בנושא של מפת קרנו - אך זה לא יהיה בקורס הזה.
צירופי ברירה - Don't Care
לפעמים ערך פונקציה איננו מוגדר עבור ערכים מסויימים של משתנים. למשל:
- צירופי כניסה מסוימים לא ייתכנו
- ערך היציאה עבור צירופי כניסה כאלה אינו מעניין
צירופי כניסות כאלה יקראו צירופי ברירה(באנגלית Don't Care Combinations) והיציאה עבורם תסומן ב-∅.
∅ יכול לציין 0 או 1 ולכן פונקציה עם K צירופי ברירה היא למעשה קבוצה של פונקציות בעוצמה 2k.
לצורך מנימיזציה נבחר את הפונקציה מהקבוצה הנ"ל את זו הנותנת את הביטוי הפשוט ביותר(מינימלי)
צמצם את הפונקציה f שהקלט שלה הוא ספרה עשרונית בקוד BCD והפלט הוא f=1 אם הספרה מתחלקת ב-3 ללא שארית.
נקצה 4 משתני כניסה w,x,y,z לציון הספרה. צירופי הכניסה 10 עד 15 אינם חוקיים. ערך הפלט יהיה 1 עבור הקלטים: 0,3,6,9:
f=∑(0,3,6,9)+∅∑(10,11,12,13,14,15)
נבנה מפת קרנו לצורך מנימיזציה:
yz╲wx00011110001101111∅∅∅∅101∅∅
כעת, נוכל לבחור את ה-∅ כמה שאנחנו רוצים ואז נקבל:
fmin=w′x′y′z′+x′yz+xyz′+wz=∑(0,3,6,9,11,13,14,15)
דוגמה (דוגמה שנייה לצירופי ברירה)
צמצם את הפונקציה (מרובת היציאות) המתרגמת ספרת BCD לקוד Excess-3, f(A)=A+3.
פתרון: נסמן את ארבע הכניסות w,x,y,z ואת ארבע הפונקציות f1,f2,f3,f4 ונקבל את טבלת האמת הבאה:
| ספרה | wxyz | f1f2f3f4 |
|---|
| 0 | 0000 | 0011 |
| 1 | 0001 | 0100 |
| 2 | 0010 | 0101 |
| 3 | 0011 | 0110 |
| 4 | 0100 | 0111 |
| 5 | 0101 | 1000 |
| 6 | 0110 | 1001 |
| 7 | 0111 | 1010 |
| 8 | 1000 | 1011 |
| 9 | 1001 | 1100 |
הצירופים 10 עד 15 (מ-1010 עד 1111) אינם חוקיים בקוד BCD ולכן יהוו צירופי ברירה (Don't Care) שיסומנו ב-∅. נבנה מפות קרנו עבור כל אחת מהפונקציות לצורך מינימיזציה:
עבור f1:
yz╲wx00011110000111111∅∅∅∅1011∅∅
עבור f2:
yz╲wx000111100011101111∅∅∅∅101∅∅
עבור f3:
yz╲wx000111100011011111∅∅∅∅101∅∅
עבור f4:
yz╲wx000111100011011111∅∅∅∅101∅∅
לאחר צמצום הפונקציות מהמפות, נקבל את הביטויים המינימליים הבאים:
f1f2f3f4=w+xz+xy=x′z+x′y+xy′z′=y′z′+yz=z′