מבני נתונים ואלגוריתמים - מחברת קורס/אלגוריתמים/תכנון דינאמי/תרגילים/תכנון פרוייקטים/שאלה
קפיצה לניווט
קפיצה לחיפוש
בבעיית "תכנון הפרוייקטים" יש פרוייקטים ו עובדות. צריך להחליט כמה עובדות יש להקצות לכל אחד מהפרוייקטים.
לכל פרוייקט ומספר עובדות , הוא מספר המייצג את איכות ביצוע הפרוייקט הi אם ישבצו לו עובדות. הנח:
- פונקציה לא שלילית (אין איכות שלילית).
- מונוטונית לא-יורדת ב (הוספת עובדות לפרוייקט אינה מורידה מאיכותו).
- ניתן להקצות 0 עובדות לפרוייקט.
- כל עובדת מוקצת לפרוייקט אחד בדיוק.
לכל פרוייקט יש "חשיבות" לא-שלילית . אנו רוצים למקסם את סך האיכויות המשוקללות. במילים אחרות, אנו רוצים למקסם את .
אנא הצע אלגוריתם יעיל לפתרון הבעיה, כלומר אלגוריתם שימצא את הסכום הנ"ל המקסימלי וכן ידפיס את אופן הקצאת העובדות לכל פרוייקט. הנח שתבנית:קוד בשורה ותבנית:קוד בשורה הן פונקציות נתונות לך, שעלות קריאה להן היא .