You are on page 1of 1

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

‫שימו לב‪ :‬כאשר אתם מציגים אלגוריתם מקרב‪ ,‬יש להוכיח נכונות ולספק זמן ריצה‪ .‬שימו לב שהוכחת נכונות לאלגוריתם מקרב כוללת הוכחה‬
‫של חוקיות הפתרון והוכחה שהוא מקרב כפי שנדרש‪.‬‬

‫(אלגוריתמי קירוב) אתם מחליטים לצאת לחופשה מהלימודים ולנסוע לאתר סקי‪ .‬באתר אתם יכולים לשכור מגלשיים במחיר של שקל‬ ‫‪.1‬‬
‫ליום‪ ,‬או לקנות מגלשיים תמורת תשלום חד פעמי של ‪ 20‬שקלים‪ .‬אתם מעוניינים למזער את המחיר שתשלמו‪ ,‬אך אינכם יודעים כמה‬
‫ימים תשארו‪.‬‬
‫בעקבות השבוע הראשון בנושא "אלגוריתמי קירוב" בקורס החלטתם לפעול לפי האסטרטגיה הבאה‪ :‬לשכור מגלשיים בעשרים הימים‬
‫הראשונים‪ ,‬ובסוף היום ה‪ ,20-‬אם עדיין נשארה בכם חדוות הגלישה – לקנות אותם‪.‬‬

‫מחיר אופטימלי הוא המחיר שהייתם משלמים לו ידעתם מראש כמה ימים תשארו‪ .‬הראו שהאסטרטגיה שלכם נותנת ‪-2‬קירוב‬ ‫א‪.‬‬
‫למחיר האופטימלי‪ ,‬עבור כל מספר ימים שהחלטתם להשאר‪.‬‬
‫חברכם החליט לשכור מגלשיים בעשרת הימים הראשונים לשהותו‪ ,‬ולקנות אותם בסוף היום העשירי‪ .‬האם האלגוריתם שלו הוא‬ ‫ב‪.‬‬
‫𝒄‪-‬מקרב למחיר האופטימלי‪ ,‬עבור 𝒄 כלשהו? אם כן‪ ,‬עבור איזה 𝒄?‬
‫נשארתם באתר הסקי ‪ 50‬ימים יחד עם חברכם‪ .‬מי מכם שילם פחות? האם בהכרח זה מעיד על כך שהקירוב שלו טוב יותר?‬ ‫ג‪.‬‬
‫הסבירו בקצרה מדוע‪.‬‬

‫(אלגוריתמי קירוב) בעיות ‪MAX-CUT‬‬ ‫‪.2‬‬

‫בתרגול ראינו אלגוריתם ‪-2‬מקרב לבעיית ‪ .MAX-CUT‬עבור הדוגמה שהצגנו‪ ,‬האלגוריתם מחזיר פתרון אופטימלי‪ .‬הראו דוגמה‬ ‫א‪.‬‬
‫לגרף עבורו אלגוריתם הקירוב מחזיר פתרון שאינו אופטימלי‪ .‬שימו לב‪ :‬סדר בחירת הקודקודים יכול להשפיע על התוצאה‪.‬‬
‫בבעיית ‪ MAX-𝑘-CUT‬נתון גרף )𝐸 ‪ ,𝐺 = (𝑉,‬ונדרש להחזיר 𝑘‪-‬חתך בגודל מקסימלי‪-𝑘 .‬חתך הוא חלוקה של 𝑉 ל 𝑘 קבוצות‬ ‫ב‪.‬‬
‫זרות‪ ,𝑉1 , … , 𝑉𝑘 ,‬המכסות את הגרף כולו‪ .‬גודלו של החתך מוגדר כמספר הצלעות החוצות קבוצות שונות‪ ,‬כלומר‬
‫|} 𝑗𝑉 ∈ 𝑦 ‪|{(𝑥, 𝑦) ∈ 𝐸: ∃𝑖, 𝑗 𝑠. 𝑡. 𝑖 ≠ 𝑗, 𝑥 ∈ 𝑉𝑖 ,‬‬
‫‪1‬‬
‫‪-(1 +‬מקרב עבור בעיית ‪ . MAX-𝑘-CUT‬הוכיחו נכונות וחשבו זמן ריצה‪.‬‬ ‫הראו אלגוריתם )‬
‫‪𝑘−1‬‬

‫(אלגוריתמי קירוב) בגרף לא מכוון )𝐸 ‪ 𝐺 = (𝑉,‬קבוצת קודקודים 𝑉 ⊆ 𝑆 תקרא בלתי תלויה אם בין כל שני קודקודים בקבוצה אין‬ ‫‪.3‬‬
‫צלע‪ ,‬כלומר 𝐸 ∉ }𝑣 ‪.∀𝑢, 𝑣 ∈ 𝑆 {𝑢,‬‬
‫בהנתן גרף לא מכוון )𝐸 ‪ 𝐺 = (𝑉,‬בו דרגת כל קודקוד נמוכה או שווה ל‪ ,𝑑 -‬הציעו אלגוריתם )‪-(𝑑 + 1‬מקרב לבעיית מציאת קבוצה‬
‫‪1‬‬
‫מגודלה של הקבוצה הבלתי‬ ‫בלתי תלויה מקסימלית בגרף (כלומר‪ ,‬הציעו אלגוריתם אשר מחזיר קבוצה שגודלה הוא לכל הפחות‬
‫‪𝑑+1‬‬
‫תלויה המקסימלית בגרף)‪ .‬הוכיחו נכונות וחשבו זמן ריצה‪.‬‬

‫)אלגוריתמי קירוב) בבעיית התרמיל השלם נתונים 𝑛 פריטים המתוארים כזוגות ) 𝑛𝑤 ‪ (𝑣1 , 𝑤1 ), … , (𝑣𝑛 ,‬של ערך ומשקל‪ .‬כמו כן נתון‬ ‫‪.4‬‬
‫𝑖𝑣‬ ‫𝑗𝑣‬
‫‪.‬‬ ‫=‬ ‫משקל כולל ‪ .𝑊 ∈ ℕ‬ניתן להניח שלכל 𝑖 מתקיים 𝑊 ≤ ‪ wi‬ושלא קיימים ‪ i ≠ j‬עבורם‬
‫𝑖𝑤‬ ‫𝑗𝑤‬
‫הפלט עבור הבעיה הוא קבוצת איברים שמשקלם לא עובר את 𝑊 ושערכם הכולל מקסימלי‪ .‬באופן פורמלי‪ ,‬מבין כל קבוצות הקודקודים‬
‫]𝑛[ ∈ 𝐼 המקיימות 𝑊 ≤ 𝑖𝑤 𝐼∈𝑖∑ נרצה להחזיר אחת עבורה 𝑖𝑣 𝐼∈𝑖∑ מקסימלי‪ .‬הציעו אלגוריתם ‪-2‬מקרב לפתרון הבעיה‪.‬‬
‫רמז‪ :‬הסתכלו על פתרון הבעיה השברית שראינו בכתה והשתמשו בו כחסם לפתרון האופטימלי של הבעיה השלמה‪.‬‬

‫)אלגוריתמי קירוב) בבעיית האריזה נתונים 𝑛 פריטים שמשקליהם 𝑛𝑎 ‪ 𝑎1 , … ,‬ק"ג (‪ .)0 < 𝑎𝑖 ≤ 1‬המטרה היא לארוז את כלל‬ ‫‪.5‬‬
‫הפריטים במספר מינימלי של אריזות‪ ,‬כאשר מגבלת המשקל של כל אריזה היא ‪ 1‬ק"ג ואי אפשר לחלק פריט ליותר מאריזה אחת‪ .‬הציעו‬
‫אלגוריתם ‪-2‬מקרב לפתרון הבעיה‪.‬‬

You might also like