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