תכנות דינמי, עקרונות בסיסיים

מחשבים
טוען ...

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

תמצית השיטה

התכנות הדינאמיות מורכבות בקביעת הפתרון האופטימאלי לבעיה n-dimensional, המחלקת אותה לשלבים נפרדים. כל אחד מהם הוא תת-מסך ביחס למשתנה אחד.

היתרון העיקרי של גישה זו הואלשקול כי מפתחים עוסקים משימות מיטוב חד מימדי של subasks במקום הבעיה n- מימדי, ואת הפתרון של המשימה העיקרית היא הולכת "מלמטה למעלה".

זה רצוי להשתמש דינמיתכנות באותם מקרים שבהם קשרי המשנה קשורים זה בזה, כלומר. יש מודולים משותפים. האלגוריתם מספק פתרון לכל אחת מחמשות המשנה פעם אחת, והתשובות נשמרות בטבלה מיוחדת. זה מאפשר לא לחשב את התשובה שוב כאשר נתקלים subtask דומה.

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

השיטה משפרת את הביצועים של משימות נפתרות על ידי חיפוש וריאציות או recouts.

בניית האלגוריתם של הבעיה

תכנות דינמי מניחבניית אלגוריתם לבעיות שבהן המשימה מחולקת לשתי משימות משנה או יותר, כך שהפתרון שלה יכול להיווצר מהפתרון האופטימלי של כל מטלות המשנה הכלולות בו. יתר על כן, זה הופך להיות הכרחי כדי לכתוב יחס הישנות ולחשב את הערך האופטימלי של הפרמטר עבור הבעיה כולה.

לפעמים, בשלב השלישי, אתה צריך לזכור גם קצת מידע עזר על ההתקדמות של כל subtask. זה נקרא הפוך.

יישום השיטה

תכנות דינמי משמש כאשר יש שתי תכונות אופייניות:

  • אופטימליות עבור subasks;
  • נוכחות של חפיפות משנה חופפות בבעיה.

פתרון בעיית האופטימיזציה בשיטהתכנות דינמי, אתה קודם צריך לתאר את המבנה של הפתרון. הבעיה היא אופטימלית אם הפתרון של הבעיה מורכב מן הפתרונות האופטימליים של subasks שלה. במקרה זה, מומלץ להשתמש בתכנות דינמי.

המאפיין השני של הבעיה, חיוני עבור נתוןשיטה, מספר קטן של מטלות משנה. הפתרון הרקורסיבי של הבעיה משתמש באותן חפיפות משנה חופפות, שמספרן תלוי בגודל המידע המקורי. התשובה מאוחסנת בטבלה מיוחדת, התוכנית חוסכת זמן, תוך שימוש בנתונים אלה.

השימוש דינמיתכנות, כאשר, על היתרונות של הבעיה, החלטות צריך להיעשות בשלבים. לדוגמה, לשקול דוגמה פשוטה של ​​המשימה של החלפת ותיקון ציוד. נניח, על היציקה של מפעל לייצור הצמיגים, הצמיגים נעשים בו זמנית בשתי צורות שונות. אם אחד מהטפסים נכשל, יש לפרק את המכונה. ברור שלפעמים עדיף להחליף את הצורה השנייה כדי לא לפרק את המכונה במקרה, וצורה זו לא תהיה יעילה בשלב הבא. יתר על כן, קל יותר להחליף הן טפסים עובד לפני שהם מתחילים להיכשל. שיטת התכנות הדינמית קובעת את האסטרטגיה הטובה ביותר בשאלה של החלפת טפסים אלה, תוך התחשבות בכל הגורמים: היתרון של המשך פעולת הטפסים, ההפסד ממכונות סרק, עלות הצמיגים שנדחו ועוד.

טוען ...
טוען ...