אלגוריתמים
תרגיל בית 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עלילה זמנית :משהו עם בחורה יפה ,אומנויות לחימה ובסוף יש גורילה.
© Copyright 2025