Download as pdf or txt
Download as pdf or txt
You are on page 1of 1

‫אלגוריתמים – תרגיל ‪10‬‬

‫‪( .1‬זרימה מקסימלית) יהי 𝑁 ∈ 𝑛 ותהי ]𝑛[ → ]𝑛[ ‪ 𝜋:‬תמורה (פונקציה חח"ע ועל מקבוצה לעצמה)‪ .‬בהנתן קבוצה‬
‫]𝑛[ × ]𝑛[ ⊆ 𝐴 נאמר שהתמורה 𝜋 היא חוקית ביחס ל‪ 𝐴-‬אם‪:‬‬
‫𝐴 ⊆ }𝑛 ‪{(𝑖, 𝜋(𝑖))|𝑖 = 1, … ,‬‬

‫‪ .1‬הציעו אלגוריתם יעיל אשר בהינתן הזוג )]𝑛[ × ]𝑛[ ⊆ 𝐴 ‪ (𝑛,‬מחזיר האם קיימת תמורה חוקית או לא‪ ,‬כלומר‬
‫האם קיימת תמורה 𝜋 כך שמתקיים 𝐴 ⊆ }𝑛 ‪.{(𝑖, 𝜋(𝑖))|𝑖 = 1, … ,‬‬
‫‪ .2‬הוכיחו את נכונות האלגוריתם לבעיית ההכרעה הנתונה‪.‬‬
‫‪ .3‬נתחו את זמן הריצה של האלגוריתם (שימו לב שזמן הריצה צריך להיות מבוטא כתלות בנתונים לבעיה‬
‫המקורית(‪.‬‬

‫‪( .2‬זרימה מקסימלית) למנהל המופעים יש צוות של 𝑛 זמרים ו‪ 𝑚-‬נגנים‪ .‬לכל זמר ולכל נגן יש רשימת ערים שהוא‬
‫מוכן להופיע בהן ביום העצמאות‪ .‬בכדי שהופעה תתקיים‪ ,‬יש צורך גם בזמר וגם בנגן‪ .‬מנהל המופעים רוצה למקסם‬
‫את מספר האירועים ביום העצמאות‪.‬‬
‫נתונות 𝑘 ערים }𝑘 ‪ ,{1, … ,‬וכמו כן לכל זמר }𝑛 ‪ 𝑖 ∈ {1, … ,‬ונגן }𝑚 ‪ 𝑗 ∈ {1, … ,‬נתונות רשימות הערים בהם הם‬
‫מוכנים להופיע‪ ,‬נסמנן ]𝑘[ ⊆ 𝑖𝑠 ו‪ 𝑝𝑗 ⊆ [𝑘]-‬בהתאמה‪ .‬הציעו אלגוריתם הממקסם את מספר הערים שיכולות‬
‫לקיים הופעות בו זמנית‪ ,‬ומחזיר כפלט את רשימת הערים הללו‪ .‬הוכיחו את נכונות האלגוריתם ונתחו את זמן הריצה‬
‫שלו‪.‬‬

‫‪( .3‬זרימה מקסימלית) מזכירות ביה"ס להנדסה מתכננת את תקופת המבחנים הקרבה‪ .‬לשם כך‪ ,‬לכל קורס בפקולטה על‬
‫המזכירות למצוא כיתה פנויה שיכולה להכיל את כמות הסטודנטים בקורס המתאים‪ ,‬ודודה לניהול הבחינה בקורס‪,‬‬
‫כאשר כל דודה יכולה לנהל בחינה אחת בזמן נתון‪ ,‬ולכל היותר ‪ 5‬בחינות בתקופת הבחינות‪ .‬אם כך‪ ,‬הקלט לבעיה‬
‫הוא‪:‬‬
‫𝑛𝑠 ‪ – 𝑆 = 𝑠1 , … . ,‬כאשר 𝑖𝑠 מייצג את כמות הסטודנטים בקורס ה‪,i-‬‬
‫𝑚𝑐 ‪ – 𝐶 = 𝑐1 , … . ,‬כאשר 𝑖𝑐 מייצג את כמות הנבחנים שהכיתה ה‪ i-‬יכולה להכיל‪,‬‬
‫𝑟𝑡 ‪ – 𝑇 = 𝑡1 , … . ,‬זמנים אפשריים לניהול בחינה‪,‬‬
‫𝑝𝑑 ‪ – 𝐷 = 𝑑1 , … . ,‬כאשר לכל דודה 𝑖𝑑 נתון 𝑇 ⊆ 𝑖𝑇 הזמנים בהם הדודה פנויה ויכולה לנהל בחינה‪ .‬בנוסף כל‬
‫דודה יכולה לנהל לכל היותר ‪ 5‬בחינות‪ ,‬אך בחינה אחת בכל זמן נתון‪.‬‬
‫הפלט לבעיה הוא רשימה של (כיתה‪ ,‬זמן‪ ,‬דודה) עבור כל קורס בפקולטה‪ .‬במידה ולא ניתן למצוא סידור כזה‪ ,‬עליכם‬
‫להחזיר כי לא קיים סידור אפשרי‪.‬‬
‫תארו אלגוריתם הפותר את הבעיה‪ ,‬הוכיחו את נכונותו ונתחו את זמן הריצה שלו‪.‬‬

‫(משפט השטף והחתך) הוכיחו או הפריכו את הטענות הבאות‪:‬‬ ‫‪.4‬‬


‫תהי 𝑁 רשת זרימה בה קיבולי כל הצלעות הם מספרים זוגיים‪ ,‬מלבד צלע יחידה )𝑣 ‪ (𝑢,‬בעלת קיבול (שלם)‬ ‫‪.1‬‬
‫אי‪-‬זוגי‪ .‬נתונה זרימה חוקית מקסימלית 𝑓 ב‪ 𝑁-‬שהשטף שלה הינו אי‪-‬זוגי‪ .‬אזי )𝑣 ‪ (𝑢,‬בהכרח רוויה (כלומר‪,‬‬
‫)𝑣 ‪.)𝑓(𝑢, 𝑣) = 𝑐(𝑢,‬‬
‫קיימת רשת זרימה 𝑁 המקיימת את התנאים הבאים‪:‬‬ ‫‪.2‬‬
‫(‪ )i‬כל הקיבולים בה הם ‪ 1‬או ‪.√2‬‬
‫(‪ (ii‬קיים ברשת מסלול בין המקור לבור שכל הצלעות בו בעלות קיבול ‪.√2‬‬
‫(‪ )iii‬שטף הזרימה המקסימלית ברשת זו הוא ‪.10‬‬

‫(חתך מינימלי) תהי )𝑡 ‪ 𝑁 = (𝑉, 𝐸, 𝑐, 𝑠,‬רשת זרימה‪ .‬יהיו ) ‪ (𝑆 ′ , 𝑇 ′‬ו‪ (𝑆 ′′ , 𝑇 ′′ )-‬שני חתכים מינימליים ברשת זו‪.‬‬ ‫‪.5‬‬
‫הוכיחו כי גם ) ‪ (𝑆 ′ ∩ 𝑆 ′′ , 𝑇 ′ ∪ 𝑇 ′′‬מהווה חתך מינימלי ברשת הנתונה‪.‬‬

‫(חתך מינימלי) תהי )𝑡 ‪ 𝑁 = (𝑉, 𝐸, 𝑐, 𝑠,‬רשת זרימה עם קיבולים טבעיים (כלומר‪ .)𝑐: 𝐸 → 𝑁 ,‬בהנתן אלגוריתם‬ ‫‪.6‬‬
‫שמוצא חתך מינימלי ברשת‪ ,‬תארו אלגוריתם המוצא חתך מינימלי ברשת בעל מספר קשתות מינימלי גם כן‪ .‬הוכיחו את‬
‫נכונות האלגוריתם ונתחו את זמן הריצה שלו‪ .‬רמז‪ :‬לפתרון השאלה אין צורך לשנות את מבנה הגרף‪ ,‬מספיק לשנות את‬
‫קיבולי הצלעות‪.‬‬

You might also like