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