אלגוריתמים - Algorithms
Transcription
אלגוריתמים - Algorithms
אלגוריתמים תרגיל בית 5 להגשה עד 18בינואר הנחיה כללית :בכל שאלה בה אתם מציגים אלגוריתם ,יש להוכיח נכונות ולנתח את זמן הריצה .ניתן להסתמך על טענות שהוכחו בכיתה. .1נתונה רשת זרימה ) G = (V, Eמ s-ל t-עם קיבולים שלמים .ידוע כי הקשת e∗ ∈ Eהינה הקשת היחידה בעלת קיבול אי־זוגי ,וכן כי ערך הזרימה המקסימלית אי־זוגי אף הוא .הוכיחו או הפריכו :הקשת ∗ eרוויה בכל זרימה מקסימלית. .2נתונה רשת זרימה ) G = (V, Eמ s-ל t-עם קיבולים שלמים ונתונה זרימה מקסימלית בה f : E → Zשחושבה ע"י אלגוריתם .FordFulkersonתארו אלגוריתם יעיל לעדכון fבמקרים הבאים: )א( מגדילים ב 1-את הקיבול של קשת מסוימת .e∗ ∈ E )ב( מקטינים ב 1-את הקיבול של קשת מסוימת .e∗ ∈ E .3נתונה רשת זרימה ) G = (V, Eמ s-ל t-ונתונה קשת .e ∈ E )א( תארו אלגוריתם יעיל הבודק האם קיים חתך ) (s, tמקיבול מינימלי כך ש־ eחוצה אותו. )ב( תארו אלגוריתם יעיל הבודק האם eחוצה כל חתך ) (s, tמקיבול מינימלי. Sל k -חלקים זרים כאשר 1 .1 < k < n .4נסמן } S = {1, 2, . . . , nותהיינה } {A1 , . . . , Ak } , {B1 , . . . , Bkשתי חלוקות של תארו אלגוריתם יעיל לחישוב תת־קבוצה T ⊂ Sבת kאיברים החותכת את כל 2kהקבוצות )אם קיימת כזו(; כלומר, לכל 1 ≤ i ≤ nמתקיים ∅ =.Bi ∩ T 6= ∅ ,Ai ∩ T 6 .5נתונות mמכונות ו n-משימות .עבור כל משימה iנתונה רשימה } Li ⊆ {1, . . . , mשל מכונות המסוגלות לבצעה, P ונסמן את סך ארכי הרשימות ב .N = ni=1 |Li |-עבור השמה של המשימות למכונות )קרי :כל משימה משוייכת למכונה אחת בדיוק( ,נגדיר את העומס Wjשל מכונה jלהיות מספר המשימות שעליה לבצע ונגדיר את העומס הכללי .W = max {Wj }mתארו אלגוריתם יעיל למציאת השמה הממזערת את העומס הכללי. כj=1 - .6נתון גרף לא מכוון ) .G = (V, Eתארו אלגוריתם יעיל המכוון את קשתות הגרף כך שלכל צומת דרגת יציאה לפחות 3 )או מודיע שלא ניתן לעשות זאת(. .7נתונים גרף קשיר ולא מכוון ) ,G = (V, Eפונקצית משקל ,w : E → Rקשת ,e ∈ Eומספר שלם .k > 0תארו אלגוריתם יעיל ככל האפשר שיקבע האם ניתן להסיר מן הגרף לכל היותר kקשתות ,כך שהקשת eתהיה שייכת לעץ פורש מינימלי של הגרף שיתקבל. רמז :מומלץ להשתמש באלגוריתם שראינו באחד מהתירגולים בנושא זרימה. .8שי ואילן מחליטים לפרוש בשיא מחיי האקדמיה ולנסות להפיק סרט קולנוע .בידם רשימה } A = {a1 , a2 , ..., an של שחקנים אשר מוכנים להשתתף בסרט .שחקן aiדורש שכר piעבור השתתפותו בסרט .בנוסף ,ישנה קבוצה } B = {b1 , b2 , ..., bmשל משקיעים המעוניינים להשקיע בסרט .משקיע bjמוכן להשקיע בסרט מימון בשווי ,qjאבל רק בתנאי שכל השחקנים האהובים עליו ישתתפו בסרט .נסמן ב Aj ⊆ A-את קבוצת השחקנים האהובים על משקיע .bjתארו אלגוריתם ליהוק יעיל שימצא בחירת שחקנים ומשקיעים המניבה רווח הפקה )קרי :סך המימון שהתקבל פחות עלויות השכר לשחקנים שהועסקו( מירבי. רמז :הגדירו רשת זרימה והרהרו במשמעות קיבול החתך המינימלי. 1במילים אחרותBi = S , Sk i=1 = Ai Sk i=1 ולכל .Ai ∩ Aj = Bi ∩ Bj = ∅ ,1 ≤ i < j ≤ k