ABA


"תכנות דינאמי - מישהו יכול להסביר?"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #15369 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 15369
הולנדי
חבר מתאריך 26.5.05
603 הודעות, דרג אמינות חבר זה
   18:19   14.06.09   
אל הפורום  
  תכנות דינאמי - מישהו יכול להסביר?  
 
מאוד קשה לי להבין את זה

קודם כל איך אני מצליח לבנות נוסחאות לדבר הזה?

ואיך פותרים שאלות בנושא זה


תודה

https://www.xchef.co.il | אתר
בישולים חברתי


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  כעקרון הרעיון מאוד דומה לרקורסיות Nokia 15.06.09 21:56 1
     זה לא מדוייק... תכנות דינמי (במושג של אלגוריתמים) ldan192  16.06.09 04:55 2
         אגב הנוסחא של תיכנות דינמי בנוייה באופן רקורסיבי הולנדי 17.06.09 19:14 3
  תכנות דינמי. Deuce  18.06.09 00:11 4

       
Nokia
חבר מתאריך 1.7.02
538 הודעות, דרג אמינות חבר זה
   21:56   15.06.09   
אל הפורום  
  1. כעקרון הרעיון מאוד דומה לרקורסיות  
בתגובה להודעה מספר 0
 
   אם תיקח בעיה כלשהי ותתן לה פיתרון רקורסיבי, אז לפעמים בבעיות האלה יוצא שבעץ רקורסיה אתה מחשב בהרבה מקומות שונים את אותו הדבר.

קח נגיד את פיבונצ'י: אם נניח מבקשים ממך למצוא את המס' פיבונצ'י הn-י אז הפתרון הרקורסיבי הרגיל יהיה:

אם N=1 או n=2 תחזיר 1
אחרת תחזיר
fib ( n - 1) + fib ( n-2 )

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

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

היתרון של תכנון דינמי הוא שבד"כ הוא מפחית את זמן הריצה אבל הוא מגדיל את סיבוכיות הזיכרון.

באופן כללי כדי לפתור בעיה בתכנון דינמי בד"כ תצטרך לנסח נוסחת נסיגה לבעיה (fib ( n ) = fib (n-1) + fib ( n-2 ) ) ופשוט לבנות את טבלת הערכים מההתחלה עד הערך שאתה צריך (במקום ללכת מהערך שאתה צריך למטה).


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   04:55   16.06.09   
אל הפורום  
  2. זה לא מדוייק... תכנות דינמי (במושג של אלגוריתמים)  
בתגובה להודעה מספר 1
 
הכוונה לרקורסיה אבל שניתן לפרוס על מערך כלשהו.
כלומר, לעדכן את התאים האפשריים ולפיהם להתקדם הלאה.
בדומה למה שלומדים בקומבינטוריקה...
רקורסיה זו רקורסיה וכבודה במקומה היא.


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
הולנדי
חבר מתאריך 26.5.05
603 הודעות, דרג אמינות חבר זה
   19:14   17.06.09   
אל הפורום  
  3. אגב הנוסחא של תיכנות דינמי בנוייה באופן רקורסיבי  
בתגובה להודעה מספר 2
 

https://www.xchef.co.il | אתר
בישולים חברתי


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Deuce 
חבר מתאריך 1.9.08
6225 הודעות, דרג אמינות חבר זה
   00:11   18.06.09   
אל הפורום  
  4. תכנות דינמי.  
בתגובה להודעה מספר 0
 
תכנות דינמי מתאפיין על ידי בעייה מוגדרת אותה אנו רוצים לפתור ואנו צריכים לחלק אותה לתתי בעיות. אנו נפתור את הבעייה מהקטן לגדול, נתחיל עם פתרון הבעיות הקטנות ודרכן ניצור פתרונות גדולים יותר עד שיוצר הפתרון לבעייה המקורית.

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

איך בונים נוסחאות? צריך לחשוב האמת.
 






                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net