דפי עזר למבחן בקומבינטוריקה למדעי המחשב

Transcription

דפי עזר למבחן בקומבינטוריקה למדעי המחשב
‫דפי עזר למבחן בקומבינטוריקה למדעי המחשב‬
‫חלק א'‪ :‬קומבינטוריקה‪.‬‬
‫עקרון החיבור והכפל‬
‫• עקרון החיבור‪ :‬אם אפשר לבחור "משהו" אחד שנסמנו ב־‪ A‬ב־ ‪ nA‬אופנים‪ ,‬ו"משהו" אחר שנסמנו ב־‪ B‬ב־ ‪ nB‬אופנים‪,‬‬
‫אזי לבחירת אחד מן השניים )או ‪ A‬או ‪ ,(B‬אבל לא שניהם‪ ,‬יש ‪ nA + nB‬אופנים‪.‬‬
‫• עקרון הכפל‪ :‬אם אפשר לבחור את האיבר ‪ A‬ב־ ‪ nA‬אופנים‪ ,‬ולאחר כל בחירה כזו אפשר לבחור את האיבר ‪ B‬ב־ ‪nB‬‬
‫אופנים‪ ,‬אזי לבחירת שניהם בסדר הנ"ל )‪ A‬ולאחריו ‪ (B‬יש ‪ nA nB‬אפשרויות‪.‬‬
‫בחירת ‪ k‬מתוך ‪ n‬איברים‬
‫צירופים ־ סדר לא חשוב חליפות ־ סדר חשוב‬
‫בלי חזרות‬
‫עם חזרות‬
‫!‪n‬‬
‫!‪(n−k)!k‬‬
‫=‬
‫‪n+k−1‬‬
‫‪k‬‬
‫‪n‬‬
‫‪k‬‬
‫!‪n‬‬
‫!)‪(n−k‬‬
‫= ‪Cnk‬‬
‫= ‪CCnk‬‬
‫= ‪Pnk‬‬
‫‪P Pnk = nk‬‬
‫תמורות )סידור ‪ n‬איברים(‬
‫• בלי חזרות‪.n! :‬‬
‫• עם חזרות כאשר נתונים ‪ q1‬איברים מסוג ‪ q2 ,1‬איברים מסוג ‪ qt ,... ,2‬איברים מסוג ‪:t‬‬
‫הבעיות הבאות הן שקולות‬
‫• בחירה של ‪ k‬מתוך ‪ n‬סוגים עם חזרות כאשר הסדר לא חשוב‪.‬‬
‫• חלוקת ‪ k‬כדורים זהים ל ‪ n‬תאים שונים‪.‬‬
‫• מספר הפתרונות של המשוואה ‪ x1 + x2 + ... + xn = k‬כאשר ‪ xi‬טבעיים )כולל אפס(‪.‬‬
‫עקרון שובך היונים המוכלל‬
‫בכל חלוקה של ‪ n‬יונים ל־ ‪ m‬תאים‪ ,‬קיים תא שבו לפחות‬
‫‪n‬‬
‫‪m‬‬
‫יונים‪.‬‬
‫בינום ניוטון‬
‫‪i n−i‬‬
‫• לכל ‪ x‬ו־ ‪ y‬ולכל ‪ n‬חיובי שלם מתקיים‪:‬‬
‫‬
‫‪Pn‬‬
‫• מקרה פרטי חשוב‪.(1 + x)n = i=0 ni xi :‬‬
‫‪xy‬‬
‫‬
‫‪Pn‬‬
‫‪n‬‬
‫‪i=0 i‬‬
‫‪n‬‬
‫= )‪.(x + y‬‬
‫!) ‪2 +...+qt‬‬
‫‪. (qq11+q‬‬
‫! ‪! q2 ! ... qt‬‬
‫סכום של סדרות‬
‫• סדרה חשבונית‪:‬‬
‫‪an = a1 + (n − 1) · d‬‬
‫‪n‬‬
‫‪P‬‬
‫= ‪Sn‬‬
‫) ‪ai = n·(a12+an‬‬
‫‪i=1‬‬
‫• סדרה הנדסית‪:‬‬
‫‪an = a1 · q n−1‬‬
‫‪n‬‬
‫‪P‬‬
‫‪n‬‬
‫‪−1‬‬
‫= ‪Sn‬‬
‫‪ai = a1 · qq−1‬‬
‫‪i=1‬‬
‫עיקרון ההכלה וההפרדה‬
‫נתונים ‪ n‬איברים ונתונות ‪ t‬תכונות ‪ .P1 , P2 , ..., Pt :‬הגדרנו‪:‬‬
‫• ) ‪ - W (Pi1 , Pi2 , ..., Pir‬מספר האיברים המקיימים כל אחת מהתכונות ‪.Pi1 , Pi2 , ..., Pir‬‬
‫• ‪.W (0) = n‬‬
‫• ) ‪W (Pi1 , Pi2 , ..., Pir‬‬
‫‪P‬‬
‫‪1≤i1 <i2 <...<ir ≤t‬‬
‫= )‪.W (r‬‬
‫‪r‬‬
‫‪Pt‬‬
‫)‪r=0 (−1‬‬
‫= )‪.E(0‬‬
‫משפט‪) :‬עקרון ההכלה וההפרדה( מספר איברים שלא מקיימים אף תכונה‪W (r) :‬‬
‫‬
‫‪Pt‬‬
‫‪r‬‬
‫‪.E(m) = r=m (−1)r−m m‬‬
‫משפט‪) :‬הרחבה( מספר איברים בעלי ‪ m‬תכונות בדיוק הינו )‪W (r‬‬
‫פתרון משוואות נסיגה ־ שיטת משוואה אופיינית‬
‫עבור נוסחת נסיגה‬
‫‪Sn = aSn−1 + bSn−2‬‬
‫נגדיר את המשוואה האופיינית להיות‪:‬‬
‫‪b 6= 0‬‬
‫‪x2 − ax − b = 0,‬‬
‫‪ .1‬אם למשוואה האופיינית שני שורשים שונים ‪ ,r1 , r2‬אזי הפתרון של נוסחת הנסיגה הנ"ל הוא‬
‫‪Sn = c1 r1n + c2 r2n‬‬
‫כאשר ‪ c1 , c2‬קבועים הנקבעים ע"י ‪.S0 , S1‬‬
‫‪ .2‬אם למשוואה אופיינית שורש אחד ‪ r‬אזי‬
‫‪Sn = c1 rn + c2 nrn−1‬‬
‫כאשר ‪ c1 , c2‬קבועים הנקבעים ע"י ‪.S0 , S1‬‬
‫פונקציות יוצרות‬
‫א‪= 1 + x + x2 + . . . + xm .‬‬
‫ב‪.‬‬
‫ג‪.‬‬
‫ד‪.‬‬
‫ה‪.‬‬
‫ו‪.‬‬
‫‪1‬‬
‫‪1−x‬‬
‫‪m+1‬‬
‫‪1−x‬‬
‫‪1−x‬‬
‫‪= 1 + x + x2 + . . .‬‬
‫‬
‫‪Pn‬‬
‫‪(1 + x)n = r=0 nr xr‬‬
‫‬
‫‪Pn‬‬
‫‪(1 − xm )n = r=0 (−1)r nr xrm‬‬
‫∞‪P‬‬
‫‪P∞ n+r−1 r‬‬
‫‪1‬‬
‫‪r r‬‬
‫‪x‬‬
‫= ‪r=0 CCn x‬‬
‫‪r=0‬‬
‫‪r‬‬
‫= ‪(1−x)n‬‬
‫‪P‬‬
‫‪P‬‬
‫‪P∞ Pr‬‬
‫∞‬
‫∞‬
‫אם ‪ f (x) = i=0 ai xi‬ו־ ‪ g(x) = i=0 bi xi‬אזי ‪h(x) = f (x) · g(x) = r=0 ( i=0 ar−i bi ) xr‬‬
‫חלק ב'‪ :‬תורת הגרפים‪.‬‬
‫הגדרות‬
‫• גרף לא מכוון )‪ G(V, E‬הינו מבנה המורכב מקבוצת הצמתים }‪ ,V = {v1 , v2 , . . .‬וקבוצת קשתות‪,E = {e1 , e2 , . . .} ,‬‬
‫כאשר כל קשת היא זוג לא סדור של צמתים מ־ ‪ .V‬קשת }‪ e = {u, v‬תסומן ב־ ‪ .u e v‬במקרה בו יש בגרף קשתות‬
‫מקבילות‪ ,‬כל קשת תסומן ע"י מזהה ייחודי‪.‬‬
‫‪e‬‬
‫• בגרף מכוון כל קשת היא זוג סדור של צמתים‪ .‬נסמן ‪ u −→ v‬ונאמר שהקשת ‪ e‬מכוונת מצומת ‪ u‬לצומת ‪ v‬או יוצאת‬
‫מצומת ‪ u‬ונכנסת לצומת ‪.v‬‬
‫• גרף התשתית של גרף מכוון הוא הגרף הבלתי מכוון המתקבל בהסרת הסדר בין הצמתים בכל קשת )"הסרת כיווני‬
‫הקשתות"(‪.‬‬
‫• גרף )‪ G(V, E‬הוא סופי אם | ‪ |V‬ו־ |‪ |E‬הם סופיים‪ .‬אחרת הוא ייקרא גרף אינסופי‪.‬‬
‫• קשת ששני צמתי הקצה שלה הם אותו צומת תיקרא לולאה עצמית או חוג עצמי‪.‬‬
‫• בגרף לא מכוון‪ ,‬שתי קשתות ששני צמתי הקצה שלהן זהים הן קשתות מקבילות‪ .‬בגרף מכוון נבדיל בין קשתות מקבילות‬
‫‪e2‬‬
‫‪e2‬‬
‫‪e1‬‬
‫‪e1‬‬
‫→‪ (u −‬לבין קשתות אנטי־מקבילות )‪v‬‬
‫)‪v‬‬
‫→‪ u −‬ו־ ‪u‬‬
‫→‪ u −‬ו־ ‪v‬‬
‫→‪.(v −‬‬
‫• גרף פשוט הינו גרף ללא לולאות עצמיות וללא קשתות מקבילות‪.‬‬
‫• גרף ייקרא מלא אם הוא גרף פשוט שיש בו קשת מכל צומת לכל צומת אחר‪ .‬אם יש בו ‪ n‬צמתים הוא נקרא גם‬
‫קליקה מסדר ‪ n‬ומסומן ‪.Kn‬‬
‫• הדרגה )‪ d(v‬של צומת ‪ v‬בגרף בלתי מכוון הוא סך כל מספר הפעמים בהן מופיע הצומת כקצה של קשת בגרף )בפרט‪,‬‬
‫לולאה עצמית תורמת ‪ 2‬לדרגת הצומת(‪ .‬בגרף מכוון מבחינים בין דרגת היציאה )‪ dout (v‬ו־ דרגת הכניסה )‪ din (v‬של‬
‫צומת ‪ v‬שהם מספר הקשתות היוצאות )ובהתאמה הנכנסות( מהצומת‪.‬‬
‫• מסלול )‪ (Path‬בגרף הינו סדרת צמתים וקשתות מהצורה הבאה‪:‬‬
‫‪e2‬‬
‫‪el‬‬
‫‪v1‬‬
‫‪v2 · · · vl−1‬‬
‫‪vl‬‬
‫‪e1‬‬
‫‪. v0‬‬
‫ניתן גם להתייחס למסלול כאל סדרת קשתות או כאל סדרת צמתים‪.‬‬
‫• מעגל הוא מסלול שצומת ההתחלה שלו זהה לצומת הסיום‪.‬‬
‫• מסלול פשוט הוא מסלול )לא מעגלי( בו אין צומת המופיע יותר מפעם אחת‪.‬‬
‫• מעגל פשוט הוא מעגל בו אין צומת המופיע יותר מפעם אחת למעט צומת ההתחלה המופיע פעם אחת נוספת בתור‬
‫צומת הסיום‪.‬‬
‫• מסלול )מעגל( המילטוני הוא מסלול )מעגל( פשוט שעובר בכל צומת בגרף בדיוק פעם אחת‪.‬‬
‫• גרף יקרא המילטוני)מעגלי( אם קיים בו מסלול )מעגל( המילטוני‪.‬‬
‫• מסלול )מעגל( אוילרי בגרף סופי וקשיר הוא מסלול )מעגל( אשר עובר בכל קשת בגרף פעם אחת בדיוק‪.‬‬
‫• גרף סופי וקשיר יקרא אוילרי )מעגלי( אם קיים בו מסלול)מעגל( אוילרי‪.‬‬
‫• גרף בלתי מכוון ייקרא קשיר אם מכל צומת יש מסלול לכל צומת בגרף‪ .‬גרף מכוון בו תנאי זה מתקיים ייקרא‬
‫קשיר היטב‪.‬‬
‫• גרף ) ‪ G0 (V 0 , E 0‬הוא תת־גרף של גרף )‪ G(V, E‬אם ‪ V 0 ⊆ V‬ו־ ‪ .E 0 ⊆ E‬תת־הגרף המושרה על־ידי קבוצת צמתים‬
‫‪ V 0‬הוא תת־הגרף ) ‪ G0 (V 0 , E 0‬בו ‪ E 0‬היא קבוצת כל הקשתות אשר שני קצותיהן ב־ ‪.V 0‬‬
‫• רכיב קשיר הוא קבוצה מקסימאלית של צמתים ‪ V 0‬המשרה גרף קשיר‪ ,‬כלומר קבוצת צמתים אשר הגדלתה תשרה‬
‫גרף בלתי־קשיר‪ .‬לעיתים נתייחס לתת־הגרף המושרה על־ידי ‪ V 0‬כאל רכיב קשיר‪.‬‬
‫• גרף לא מכוון הוא יער אם הוא חסר מעגלים )פשוטים(‪.‬‬
‫• גרף לא מכוון הוא עץ אם הוא קשיר וחסר מעגלים )פשוטים(‪.‬‬
‫‪0‬‬
‫• עץ ) ‪ T (V 0 , E 0‬נקרא עץ פורש של גרף )‪ G(V, E‬אם הוא תת־גרף של ‪ G‬ו־ ‪.V = V‬‬
‫• בהנתן גרף מכוון )‪ ,G(V, E‬צומת ‪ v‬הוא שורש של ‪ G‬אם קיים מסלול מ־‪ v‬לכל צומת בגרף‪.‬‬
‫• גרף מכוון ייקרא עץ מכוון אם יש לו שורש וגרף התשתית שלו הוא עץ‪.‬‬
‫למה ‪1.1‬‬
‫הצמתים שדרגתם אי־זוגית הוא זוגי‪.‬‬
‫בגרף סופי לא מכוון )‪ G = (V, E‬מספר‪P‬‬
‫הלמה נובעת מהזהות |‪. v∈V d(v) = 2|E‬‬
‫משפט ‪1.1‬‬
‫גרף סופי‪ ,‬לא־מכוון וקשיר הוא גרף אוילרי אם ורק אם שני צמתים בדיוק הם בעלי דרגה אי־זוגית או כל הצמתים הם בעלי‬
‫דרגה זוגית‪ .‬במקרה השני‪ ,‬כל מסלול הוא מעגל אוילר‪ ,‬ובמקרה הראשון ־ כל מסלול אוילר אינו מעגל‪.‬‬
‫משפט ‪1.2‬‬
‫גרף סופי‪ ,‬מכוון וקשיר היטב הוא גרף אוילרי אם ורק אם ואחד התנאים הבאים מתקיים‪:‬‬
‫‪ .1‬לכל צומת ‪) dout (v) = din (v) ,v‬במקרה זה הגרף הוא אוילרי מעגלי(‪.‬‬
‫‪ .2‬קיים צומת ‪ a‬עבורו ‪ dout (a) = din (a) + 1‬וקיים צומת אחר ‪ b‬עבורו )‪ ,dout (b) + 1 = din (b‬כאשר לכל צומת אחר‬
‫‪ v‬מתקיים )‪) dout (v) = din (v‬במקרה זה הגרף הוא אוילרי לא מעגלי וכל מסלול אוילר מתחיל ב־‪ a‬ומסתיים ב־‪.(b‬‬
‫משפט ‪2.1‬‬
‫יהיה )‪ G = (V, E‬גרף בלתי מכוון סופי או אינסופי‪ .‬התנאים הבאים הם שקולים‪:‬‬
‫א' ‪ G‬הוא עץ‪.‬‬
‫ב' ‪ G‬חסר מעגלים פשוטים‪ ,‬וכל הוספה של קשת ל־‪ E‬תיצור מעגל פשוט‪.‬‬
‫ג' לכל שני צמתים ב־‪) G‬לאו דווקא שונים( קיים מסלול פשוט יחיד שמחבר ביניהם‪.‬‬
‫ד' ‪ G‬קשיר‪ ,‬אבל הסרת כל קשת מ־ ‪ E‬תקלקל את קשירות ‪.G‬‬
‫משפט ‪2.2‬‬
‫יהיה )‪ G = (V, E‬גרף סופי לא מכוון‪ .|V | = n ,‬שלושת התנאים הבאים הם שקולים‬
‫א' ‪ G‬הוא עץ‪.‬‬
‫ב' ‪ G‬חסר מעגלים פשוטים ויש לו ‪ n − 1‬קשתות‪.‬‬
‫ג' ‪ G‬קשיר ויש לו ‪ n − 1‬קשתות‪.‬‬
‫משפט ‪) 2.4‬קיילי(‬
‫מספר העצים הלא מכוונים הפורשים ‪ n‬צמתים מסומנים )שונים( הוא‬
‫‪n−2‬‬
‫‪ .n‬זהו גם מספר העצים הפורשים של ‪.Kn‬‬
‫משפט ‪2.5‬‬
‫יהיה )‪ G = (V, E‬גרף מכוון‪ .‬חמשת התנאים הבאים הם שקולים‪:‬‬
‫א' ‪ G‬הוא עץ מכוון‪.‬‬
‫ב' ל־‪ G‬יש שורש‪ ,‬ולכל צומת ב־‪ G‬קיים מסלול יחיד מהשורש אליו‪.‬‬
‫ג' ל־‪ G‬יש שורש ‪ r‬עבורו מתקיים ‪ ,din (r) = 0‬ולכל צומת אחר ‪ v‬בגרף‪ ,‬מתקיים ‪ .din (v) = 1‬תנאי זה נקרא "תנאי‬
‫הדרגות עבור ‪."r‬‬
‫ד' ל־‪ G‬יש שורש ‪ ,r‬אבל הסרת כל קשת מ־ ‪ E‬תקלקל את שורשיות ‪.r‬‬
‫ה' גרף התשתית של ‪ G‬הוא קשיר ול־‪ G‬קיים צומת יחיד ‪ r‬עבורו מתקיים תנאי הדרגות‪.‬‬
‫משפט ‪2.6‬‬
‫גרף סופי מכוון ‪ G‬הוא עץ מכוון אם ורק אם גרף התשתית שלו חסר מעגלים פשוטים‪ ,‬וקיים צומת יחיד ‪ r‬עבורו מתקיים‬
‫תנאי הדרגות‪.‬‬
‫עצים ‪σ‬־מצביים‬
‫עץ ‪σ‬־מצבי הוא עץ מכוון שבו לכל צומת מתקיים‪ :‬כל הקשת היוצאת ממנו מסומנת בסימון יחיד מהקבוצה }‪{0, 1, . . . , σ − 1‬‬
‫ואין שתי קשתות עם סימון זהה‪.‬‬
‫מספרי קטלן‬
‫• נוסחה סגורה‪:‬‬
‫‬
‫‪2n‬‬
‫‪n‬‬
‫‪1‬‬
‫‪n+1‬‬
‫= ‪.Cn‬‬
‫• נוסחה רקורסיבית‪Ci Cn−i :‬‬
‫‪Pn‬‬
‫‪i=0‬‬
‫= ‪.C0 = 1 ,Cn+1‬‬
‫• לכל הבעיות הבאות הפתרון הוא מספר קטלן ‪:Cn‬‬
‫– מספר סדרות מאוזנות של ‪ n‬זוגות סוגריים‬
‫– מספר מסלולי הצעדי שריג החוקיים מ־ )‪ (0, 0‬ל־ )‪ (n, n‬שלא יורדים מתחת לאלכסון הראשי‬
‫– מספר דרכים להכניס ולהוציא ‪ n‬איברים זהים למחסנית‬
‫– מספר העצים הבינאריים )‪2‬־מצביים( בני ‪ n‬צמתים‬
‫– מספר חלוקות של מצולע קמור בן ‪ n‬צלעות למשולשים בקוים ישרים )לא נחתכים( המחברים את קודקודי‬
‫המצולע‪.‬‬