שאלת מבחן באלגוריתמים - האוניברסיטה הפתוחה 2020 - תכנון דינמי
נתונה רשימה של תיבות מלבניות: לכל נתון האורך , הרוחב והגובה של התיבה מספר . כל הרוחבים שונים, כל האורכים שונים וכל הגבהים שונים.
ברצוננו לבנות מגדל בגובה מרבי באמצעות הנחה של תיבות זו מעל זו. המגדל נחשב יציב כאשר תיבה מונחת רק מעל תיבה שמקיימת וגם (כלומר, כשמימדי הבסיס של התיבה התחתונה גדולים מאלו של העליונה).
הציגו אלגוריתם תכנון-דינמי לבניית מגדל יציב בגובה מרבי, לרבות ניסוח של נוסחת נסיגה מתאימה. האלגוריתם נדרש לרוץ בזמן . (בהקשר זה פעולות חיבור, חיסור והשוואה של מימדים נחשבות פעולות אלמנטריות, שמתבצעות בזמן .)
ברצוננו לבנות מגדל בגובה מרבי באמצעות הנחה של תיבות זו מעל זו. המגדל נחשב יציב כאשר תיבה מונחת רק מעל תיבה שמקיימת וגם (כלומר, כשמימדי הבסיס של התיבה התחתונה גדולים מאלו של העליונה).
הציגו אלגוריתם תכנון-דינמי לבניית מגדל יציב בגובה מרבי, לרבות ניסוח של נוסחת נסיגה מתאימה. האלגוריתם נדרש לרוץ בזמן . (בהקשר זה פעולות חיבור, חיסור והשוואה של מימדים נחשבות פעולות אלמנטריות, שמתבצעות בזמן .)
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
האוניברסיטה הפתוחהמועד 85 · 2020 · סמסטר א
★★★★★
תכנון דינמינוסחת נסיגהסיבוכיות
התנאי להנחת תיבה מעל חברתה כולל שני אי-שוויונות שצריכים להתקיים בו-זמנית. חשבו איזה סידור מקדים של התיבות יאפשר לכם להפסיק לבדוק את אחד מהם, ומה נשאר לבדוק אחריו.
מיון מקדים. נמיין את התיבות לפי רוחב עולה, . המיון חד-משמעי כי כל הרוחבים שונים. מעתה האינדקסים נתונים בסדר זה.
תת-הבעיה. לכל נגדיר
נוסחת הנסיגה.
הנמקה: תיבה יכולה להיות מונחת ישירות מעל אם ורק אם וגם . אחרי המיון שקול ל-, ולכן נותר לבדוק רק את . הקבוצה מטפלת במקרה שבו לא ניתן להניח דבר מעל , ואז המגדל הוא התיבה בלבד.
הפלט. .
האלגוריתם.
1. מיין את התיבות לפי עולה.
2. לכל : אתחל ו-; לכל , אם וגם , עדכן ו-.
3. יהי . החזר ; לשחזור המגדל עצמו עקוב אחר החל מ-.
נכונות. באינדוקציה על בסדר הממוין. עבור , כל מגדל יציב שבסיסו הוא או התיבה לבדה (גובה ), או שמעליה מונחת תיבה המקיימת ו- — ואז שאר המגדל הוא מגדל יציב שבסיסו , שגובהו המרבי הוא לפי הנחת האינדוקציה (). לכן המקסימום על פני כל האפשרויות הוא בדיוק אגף ימין של הנסיגה. שימו לב שהיחס "ניתן להניח מעל" הוא סדר חלקי חסר מעגלים (שני הרכיבים יורדים ממש), ולכן כל תיבה מופיעה במגדל לכל היותר פעם אחת.
זמן ריצה. המיון ; הלולאה הכפולה מבצעת עבודה לכל זוג , כלומר ; שחזור המגדל . סה"כ כנדרש.
תת-הבעיה. לכל נגדיר
נוסחת הנסיגה.
הנמקה: תיבה יכולה להיות מונחת ישירות מעל אם ורק אם וגם . אחרי המיון שקול ל-, ולכן נותר לבדוק רק את . הקבוצה מטפלת במקרה שבו לא ניתן להניח דבר מעל , ואז המגדל הוא התיבה בלבד.
הפלט. .
האלגוריתם.
1. מיין את התיבות לפי עולה.
2. לכל : אתחל ו-; לכל , אם וגם , עדכן ו-.
3. יהי . החזר ; לשחזור המגדל עצמו עקוב אחר החל מ-.
נכונות. באינדוקציה על בסדר הממוין. עבור , כל מגדל יציב שבסיסו הוא או התיבה לבדה (גובה ), או שמעליה מונחת תיבה המקיימת ו- — ואז שאר המגדל הוא מגדל יציב שבסיסו , שגובהו המרבי הוא לפי הנחת האינדוקציה (). לכן המקסימום על פני כל האפשרויות הוא בדיוק אגף ימין של הנסיגה. שימו לב שהיחס "ניתן להניח מעל" הוא סדר חלקי חסר מעגלים (שני הרכיבים יורדים ממש), ולכן כל תיבה מופיעה במגדל לכל היותר פעם אחת.
זמן ריצה. המיון ; הלולאה הכפולה מבצעת עבודה לכל זוג , כלומר ; שחזור המגדל . סה"כ כנדרש.