תכנון דינאמי בתרגול זה נדון בבעיית הכפלת סדרת מטריצות (16.1.(CLR ראשית נראה דוגמא:. A, A, A, A נסמן את גודל המטריצות בסדרה ע"י סדרת גדלים, כאשר 4 i 1

מסמכים קשורים
תכנון אלגוריתמים, אביב 1021, תרגול מס' 4 תכנון דינאמי תכנון דינאמי בתרגול זה נדון בבעיית הכפלת סדרת מטריצות (16.1.(CLR ראשית נראה דוגמא: דוגמא: תהינה

Microsoft Word - tutorial Dynamic Programming _Jun_-05.doc

פקולטה: מחלקה: שם הקורס: קוד הקורס: מדעי הטבע מדעי המחשב ומתמטיקה מתמטיקה בדידה תאריך בחינה: _ 07/07/2015 משך הבחינה: 3 שעות סמ' _ב' מועד

תכנון אלגוריתמים עבודת בית 4: תכנון אלגוריתמים תאריך הגשה: 02: , בצהריים,תא מספר 66 בקומת כניסה של בניין 003 מתרגל אחראי: אורי 0

תכנות דינמי פרק 6, סעיפים 1-6, ב- Kleinberg/Tardos סכום חלקי מרחק עריכה הרעיון: במקום להרחיב פתרון חלקי יחיד בכל צעד, נרחיב כמה פתרונות אפשריים וניקח

תאריך פרסום: תאריך הגשה: מבנה נתונים תרגיל 5 )תיאורטי( מרצה ומתרגל אחראים: צחי רוזן, דינה סבטליצקי נהלי הגשת עבודה: -את העבודה יש לה

תרגול מס' 7 – חזרה על MST ואלגוריתם Dijkstra

Microsoft Word - ExamA_Final_Solution.docx

<4D F736F F D20F4F2E5ECE5FA20EEE5EEF6E0E5FA20312E646F63>

הטכניון מכון טכנולוגי לישראל אלגוריתמים 1 )443432( סמסטר חורף הפקולטה למדעי המחשב תרגול 9 מסלולים קלים ביותר תרגיל APSP - 1 עד כה דנו באלגור

<4D F736F F D20FAF8E2E5EC20E0ECE2E1F8E420EEF2E5F8E D F9E0ECE5FA2E646F63>

דף נגזרות ואינטגרלים לשאלון 608 כללים למציאת נגזרת של פונקציה: n 1. y' n x n, y הנגזרת x.1 נכפול בחזקה )נרשום אותה משמאל ל- (. x א. נחסר אחד מהחזקה. ב

מבנים בדידים וקומבינטוריקה סמסטר אביב תשע"ט מספרי רמזי תרגול 11 הגדרה: (t R = R(s, הוא המספר הטבעי הקטן ביותר כך שבכל צביעה של צלעות הגרף וכחול(, קיים

מקביליות

Tutorial 11

מספר זהות: סמסטר ב' מועד א' תאריך: 11102/4// שעה: 9:22 משך הבחינה: 3 שעות חומר עזר: אין מותר השימוש במחשבון פשוט בחינה בקורס: מבני נתונים מרצה: הדר בי

áñéñ åîéîã (ñéåí)

Algorithms Tirgul 1

פתרון וחקירת מערכות של משוואות לינאריות שאלות: 1( מצא אילו מהמערכות הבאות הן מערכות שקולות: 2x+ y= 4 x+ y= 3 x y = 0 2x+ y = 3 x+ 10y= 11 א. 2x 2y= 0

Microsoft Word - 28

מקביליות

. שאלה 1: ה אי x] T : R 4[ x] R 4[ אופרטור ליניארי מוגדר על-ידי T( ax bx cx d) bx ax cx c )13 נק'( א( מצאו את הערכים העצמיים, המרחבים העצמיים

PRESENTATION NAME

מועד: א בחינה סופית במתמטיקה דיסקרטית משך הבחינה: 2 1 שעות מרצה: פרופ' תאופיק מנסור תאריך: סמסטר: א תשע"ח m 2 הוראות לנבחן: )1( הבחינה מו

תורת החישוביות תרגול הכנה לוגיקה ותורת הקבוצות מה יש כאן? בקורס תורת החישוביות נניח ידע בסיסי בתורת הקבוצות ובלוגיקה, והכרות עם מושגים בסיסיים כמו א"ב

מבוא למדעי המחשב

מבוא לתכנות ב- JAVA תרגול 7

שיעור מס' 6 – סבולות ואפיצויות

מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. ב

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

תרגול 1

PowerPoint Presentation

אנליזה מתקדמת

Microsoft Word - Sol_Moedb10-1-2,4

<4D F736F F D20EEF9E5E5E0E5FA20E3E9F4F8F0F6E9E0ECE9E5FA2E646F63>

Microsoft Word - solutions.doc

מבוא למדעי המחשב - חובלים

<4D F736F F D20E7F9E1E5F0E0E5FA20F4E9F0F0F1E9FA2E646F63>

תרגול 1

מבוא למדעי המחשב

תרגול מרובעים- מקבילית נתונה מקבילית בעלת היקף בגודל 33 ס"מ, כמו כן אחת מצלעות המקבילית שווה ל- 8 ס"מ. מהו גודלה של שאר צלעות המקבילית בס"מ?.1 8 נתונה

מתמטיקה של מערכות

Microsoft Word - SDAROT 806 PITRONOT.doc

Microsoft Word - hedva 806-pitronot-2011.doc

Microsoft Word - Questions Booklet Spring 2009

מבחן 7002 פרטים כלליים מועד הבחינה: בכל זמן מספר השאלון: 1 משך הבחינה: 3 שעות חומר עזר בשימוש: הכל )ספרים ומחברות( המלצות: קרא המלצות לפני הבחינה ובדי

שאלה 2. תכנות ב - CShell

Untitled

פתרון 2000 א. טבלת מעקב אחר ביצוע האלגוריתם הנתון עבור הערכים : פלט num = 37, sif = 7 r האם ספרת האחדות של sif שווה ל- num num 37 sif 7 שורה (1)-(2) (

מבחן סוף סמסטר מועד ב 28/10/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, גדי אלכסנדרוביץ הוראות: א. בטופס המבחן 6 עמודים (כולל דף זה) ו

תרגול 1

תאריך הבחינה 30

Slide 1

שיעור 1

שעור 6

<4D F736F F D20F9E9F2E5F820F1E9EEF0E920E7ECE5F7E4>

Limit

מקביליות

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

מספר מחברת: עמוד 1 מתוך 11 ת"ז: תשע"א מועד ב סמסטר א' תאריך: 00:11 שעה: 0 שעות הבחינה: משך כל חומר עזר אסור בשימוש בחינה בקורס: מבוא למדעי ה

אוניברסיטת חיפה החוג למדעי המחשב.5.6 מבוא למדעי המחשב סמסטר א' תשע"ז בחינה סופית מועד א', מרצה: שולי וינטנר מתרגלים: סמאח אידריס, ראמי עילבו

תוכן העניינים

שחזור מבחן יסודות הביטוח – מועד 12/2016

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 313, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן שאלה מספר

Microsoft Word - 38

Slide 1

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

תרגיל 9 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד 1. תהי L השפה בעלת סימן פונקצייה דו מקומי G, סימן פונקציה חד מקומי T, סימן יחס תלת מקומי.c, d וקבועים L

לדרך... מה נלמד? תרגילים חיבור מספרים מכוונים נלמד את כללי החיבור של מספרים מכוונים. )תשובות לתרגילים בפרק זה-בעמ' (.Ⅰ

ex1-bash

שם כיף עם ג'ף מאגר פעילויות חלק א' חוברת של פעילויות מתמטיות: העשרה, העמקה, משחקים ואתגרים כיתה

Microsoft Word - אלגברה מעורב 2.doc

הגנה - שקפי תרגול

MathType Commands 6 for Word

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

2019 שאלות מומלצות לתרגול מס' דיפרנציאביליות של פונקציה סקלרית )המשך(. כלל השרשרת. S = ( x, y, z) z = x + 3y על המשטח מצאו נקודה בה מישור משיק

הגשה תוך שבוע בשעת התרגול

Disclaimer מסמך זה הינו סיכום און-ליין של השיעור ולא עבר עריכה כלל. מצאת טעות? שלח/י לי מייל ואתקן: 07/05/2009 קורס: מערכות ה

Microsoft Word - vaidya.doc

עב 001 ינואר 12 מועד חורף פתרונות עפר

תוכן העניינים

מהוא לתכנות ב- JAVA מעבדה 3

Microsoft Word - ex04ans.docx

Microsoft Word - 01 difernziali razionalit

Microsoft Word B

kefel 1-34

סז 002 נואר 07 מועד חורף פתרונות עפר

מוזיקה סינטטית

מבוא לאנליזה נומרית na191 Assignment 2 solution - Finding Roots of Nonlinear Equations y cos(x) שאלה 1 היכן נחתכים הגרפים של? y x 3 1 ושל ממש פתרונות

אי שוויונים ממעלה ראשונה לארבע יחידות

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

Microsoft Word - c_SimA_MoedA2006.doc

פתרונות לדף מס' 5

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

שבוע 4 סינטקס של HACK ASSEMBLY ניתן להשתמש בשלושה אוגרים בלבד:,A,D,M כולם בעלי 16 ביטים. M אינו אוגר ישיר- הוא מסמן את האוגר של ה RAM שאנחנו מצביעים ע

<4D F736F F D20F4F8F720E7F9E9E1E420EBEEE5FAE9FA203120E9E5ECE E646F63>

חשבון אינפיניטסימלי מתקדם 1

בגרות עז יולי 17 מועד קיץ ב שאלון ,000 א. ניתוח הנתונים מחירה של ספה הוא שקלים, והיא התייקרה ב-. 25% כאשר המחיר מתייקר ב- המחיר החדש הוא פי,

Microsoft Word - בעיות הסתברות 1.doc

עבודת קיץ לתלמידים כיתה ט' העולים לכיתה י (רמה 4-5 יחידות)

תמליל:

תכנון דינאמי בתרגול זה נדון בבעיית הכפלת סדרת מטריצות (6..(CLR ראשית נראה דוגמא:. A, A, A, A נסמן את גודל המטריצות בסדרה ע"י סדרת גדלים, כאשר 5 5 p p A דוגמא: תהינה ארבע מטריצות:,5,} {,, = P, כלומר היא בגודל.p p בדרך הנאיבית היא בסיבוכיות של מכפלת הגדלים, כלומר p A p xp, A p xp הכפלה של שתי מטריצות למשל: היא בסיבוכיות של = **, והתוצאה היא מטריצה בגודל.. p p +, p p p והמטריצה המתקבלת היא בגודל + (( A A ) ( A A )) = ( A (( A A ) A )) A A + A A במקרה הכללי: היא בסיבוכיות הכפלת מטריצות היא אסוציאטיבית:, כלומר סדר הכפלים אינו משנה את התוצאה. לעומת זאת סדר הכפלים משנה את מספר הכפלים לחישוב: אם נכפיל את המטריצות כך: ) A ( A A ) ( A ה"עלות" תהיה לזוג המטריצות השמאליות, ו - = *5* למכפלה. A A = **5, ועלות A A ( ) הכפלת שתי התוצאות = **. סך הכול 5 חישובים. אם נכפיל את המטריצות כך: ) A, A (( A A ) רק עלות המכפלה תהיה ( ) זו גבוהה בהרבה מהכפלת הסדרה כולה לפי סדר ההכפלות הקודם. { A, A..., A n הניתנות להכפלה, כלומר, לכל < n מימד העמודות של A שווה למימד } נגדיר פורמאלית את הבעיה: מופע: סדרת מטריצות השורות של + A. שנסמנו ב- U. { A, A..., A n פתרון חוקי: סדר הכפלה של המטריצות } U. להיות מספר הפעולות הנדרש להכפלת המטריצות על פי הסדר cost( עלות הפתרון: עבור פתרון U נגדיר את ) U יש למצוא: סדר הכפלה של המטריצות עם עלות מינימום. נשים לב שפתרון לבעיה הינו הצבת סוגריים על סדרת המטריצות, שכן הסוגריים מגדירים סדר הכפלה. הפתרון הנאיבי הוא לנסות את כל האפשרויות להצבת סוגריים על הסדרה. בכמה אופנים ניתן להכניס סוגריים מאוזנים בצורה מלאה במחרוזת באורך n? התשובה היא מספר ק ט ל ן )Catalan( של n שהוא אקספוננציאלי ב- n. ליתר דיוק, ).5 )Ώ n n/ הוא חסם תחתון אקספוננציאלי למספר הזה. נראה כי קיים פתרון יעיל בהרבה. Course materal s updated perodcally, please be sure to read the latest updates on the course webste. Practcal sessons and classes may nclude addtonal materal not lsted above.

פתרון על ידי תכנון דינמי הגדרת תתי הבעיות ו OPT נסמן ב-[ Sol[, את קבוצת כל הפתרונות החוקיים עבור תת הבעיה של הכפלת סדרת המטריצות } A},, A עבור n. כלומר, Sol[, ] = {U A,, A פתרון חוקי להכפלת U} נסמן ב-[ את מספר פעולות הכפל המינימאלי הדרוש להכפלת סדרת המטריצות. כלומר, { A,..., A } OPT[, ] = mn {cost(u)} U Sol[,], כלומר מספר פעולות הכפל המינימאלי בהכפלת כל סדרת המטריצות..OPT[, ]= { A,..., A }=}A OPT[, n], OPT[, אנו מחפשים את למשל, אם } A טענה: )מבנה של פתרון אופטימאלי( אז, OPT[, ] = mn { OPT[, k] + OPT[ k +, ] + p k p k p }, =, הוכחת נכונות הנוסחא אינטואיציה: הנוסחה מחלקת את קבוצת הפתרונות לפי הכפל האחרון בסדרה, כלומר לפי הסוגריים החיצוניים ביותר. A A... A ) ( A A... במכפלה ) A A ( ) ( + k k + k + עבור = ישנה סדרה של מטריצה יחידה } A}, ולכן הפתרון היחיד הוא המטריצה צורך לבצע כפל מטריצות(. ועלות החישוב היא )אין כלל נתבונן עכשיו במקרה של. < ההוכחה נסמכת על הטענה הבאה אשר נובעת בצורה פשוטה מההגדרות )הוכחת הטענה מושארת לקורא החרוץ(. טענה עבור, k < הפתרונות ב-[ Sol[, כך שהכפל האחרון הוא בין תוצאת מכפלת הסדרה } k {A,, A לתוצאת מכפלת הסדרה } {A k+,, A הם בדיוק כל הפתרונות מהצורה ) (U ) (U כאשר k] U Sol[, וכן.U Sol[k +, ] נשים לב כי כל פתרון ב-[ Sol[, מקיים את הטענה לעיל לאיזה, k < לפי מיקום הכפל האחרון בו. לכן נסיק כי מהטענה נובע: OPT[, ] = mn {cost(u)} U Sol[,] {{הכפל האחרון ב- U הוא בין הסדרות } k {A, A ו-{ = mn { mn { cost(u) {A k+,, A k< U Sol[,] = mn { mn {cost((u ) (U ))}} k< U Sol[,k], U Sol[k+,] = mn { mn {cost(u ) + cost(u ) + p p k p }} k< U Sol[,k], U Sol[k+,] = mn { mn {cost(u )} + mn {cost(u )} + p p k p }} k< U Sol[,k] U Sol[k+,] = mn {OPT[, k] + OPT[k +, ] + p p k p } k< הערה: הוכחנו רק את הנוסחא ולא את "האלגוריתם". שימו לב שעד כה לא תיארנו אלגוריתם. Course materal s updated perodcally, please be sure to read the latest updates on the course webste. Practcal sessons and classes may nclude addtonal materal not lsted above.

Recursve-Matrx-Chan(,) f then return else = m for k return m to do q Recursve-Matrx-Chan(,k) + אלגוריתמים מבוססי תכנון דינאמי לבעיית המטריצות Recursve-Matrx-Chan(k+, )+ p p p f q m then m q.opt[, ] k נתחיל מאלגוריתם רקורסיבי לחישוב A,..., A n המחיר המינימאלי של הכפלת המטריצות יתקבל ע"י ההפעלה.Recursve-Matrx-Chan(,n) הבעיה באלגוריתם הנ"ל היא שנחשב מספר גדול של חישובים חופפים נתבונן לדוגמא בעץ הקריאות הרקורסיבי שראינו קודם: ב- n הוא לפחות אקספוננציאלי }פתרון נוסחת המבנה: מקרה בסיס T() OPT[, זמן הריצה הנדרש לחישוב [ }T ( n) + n k = ( T ( k) + T ( n k) + ) ועבור <n: פתרון רקורסיבי כזה הוא לא הכי טוב שניתן להשיג. זה הזמן לשים לב לכך שכמה זוגות ערכים מופיעים בעץ פעמים רבות. כלומר, מספר תתי הבעיות הקטנות שהאלגוריתם שלנו פוגש במהלך הפתרון הוא קטן יחסית: n. + n = ( n ) הוא n המקיים, מספר האפשרויות לבחור זוג על מנת להימנע מחישוב חוזר של תתי בעיות, נשמור במבנה נתונים כל פתרון שנחשב לתת בעיה. במקרה שלנו, נבנה.[, [ אזי ערך הפתרון מאוכסן בטבלה במקום ה- OPT[, טבלה בגודל nn כך שאם חישבנו כבר את [ Course materal s updated perodcally, please be sure to read the latest updates on the course webste. Practcal sessons and classes may nclude addtonal materal not lsted above.

שיפור זמן ריצה על ידי שיטת הפתקאות (memozaton) בזמן ריצת האלגוריתם הרקורסיבי, לפני כל קריאה רקורסיבית נבדוק האם תת הבעיה הזו כבר חושבה )על פי הערך בטבלה בעלת ערך שונה מ- (, אם הערך חושב נשתמש בו ונחסוך קריאה רקורסיבית מיותרת )במחיר של חיפוש במבנה הנתונים(, אם הערך לא חושב, נחשב אותו ונאכסן את התוצאה במבנה הנתונים לשימוש עתידי. שיטה זו נקראת שיטת התזכור -.memozaton Memozed-Matrx-Chan(n) for do for to n do m[, ] return Lookup-Chan(,n) to n Lookup-Chan(,) f m[, ] then return else f else = m[, ] return m[, ] then m[, ] for k to do q Lookup-Chan(,k) + Lookup-Chan(k+, )+ p p p f q m[, ] then m[, ] q k ניתן לראות כי זמן החישוב של הפרוצדורה הוא ).O(n Course materal s updated perodcally, please be sure to read the latest updates on the course webste. Practcal sessons and classes may nclude addtonal materal not lsted above.

אלגוריתם איטראטיבי במקום לחשב את הפתרון בצורה רקורסיבית, נחשב את הפתרון "מלמטה למעלה" בצורה איטראטיבית. החישוב לתת בעיה באורך משתמש רק בתוצאות החישובים לתתי הבעיות באורך וכן הלאה. ז"א הנתונים הנדרשים לחישוב תת בעיה באורך l הם פתרונות עבור תתי בעיות באורך קטן מ- l אשר כבר חושבו ונמצאים בטבלה. זו בעצם בניית הטבלה מהאלכסון הראשי ומעלה. השגרה משתמשת בטבלת עזר n] m[ n, לאחסון העלויות ובטבלת עזר n] s[ n, שבה נרשמים האינדקסים k שעבורם התקבלה עלות אופטימאלית בעת חישוב [,m[, כלומר זהו הערך שמפצלים בו את המכפלה A.. כדי לקבל הצבת סוגריים אופטימאלית. A Matrx-Chan-Order(n) for to n do m[, ] for l to n do for to n l do + l m[, ] for k to do q m[, k] + m[k +, ] + p p k p f q < m[, ] then m[, ] q s[, ] k בקטע קוד הזה אנחנו מחפשים ומכניסים ל -[ s[, את הערך שמפצלים בו את המכפלה A,, A כדי לקבל הצבת סוגריים אופטימאלית ע"י בדיקת הערכים k =,, ומציאת המינימום. Course materal s updated perodcally, please be sure to read the latest updates on the course webste. Practcal sessons and classes may nclude addtonal materal not lsted above. 5

דוגמת ריצה : A, A, A, A 5 5 לדוגמא, במקרה של המטריצות שלנו שלב = : l ++p*p*p = * * = K = + + p*p*p = * * 5 = K = + +p*p*p = *5* = K= שלב = : l k= ++p*p*p = +**5 = 5 k= K= ++p*p*p = +** = 5 k= K= שלב = : l k= 5 k= K= +5+p*p*p= 5+** = 5 k= 5 k= K= ערך הפתרון האופטימאלי נמצא ב [,]: k= 5 k= K= 5 k= 5 k= K= Course materal s updated perodcally, please be sure to read the latest updates on the course webste. Practcal sessons and classes may nclude addtonal materal not lsted above. 6

. A, A, A 5, A5 מכיוון שהגדרנו את m[,] עבור בלבד, האיור הבא מדגים תהליך זה על המטריצות אנו משתמשים רק במשולש הנמצא מעל האלכסון הראשי של הטבלה. באיור הבא, הטבלאות מסובבות כך שהאלכסון הראשי הוא בכיוון האופקי. העלות המינימאלית m[,] של חישוב תת המכפלה תימצא בתא שבנקודת החיתוך בין הקו היוצא מ - A.. A A לכיוון צפון-מזרח, והקו היוצא מ- A לכיוון צפון-מערב. כל שורה אופקית בטבלה מכילה תאים עבור סדרות מטריצות באותו האורך. השגרה Matrx-Chan-Order(n) מחשבת את השורות מלמטה למעלה ובכל שורה משמאל לימין. ערך התא m[,] מחושב תוך שימוש במכפלות p p p עבור k =, +,, ובכל ערכי התאים הנמצאים מדרום-מערב ומדרום-מזרח ל.m[,]- k 5 5 5 A A A A m s הוכחת נכונות של האלגוריתם האיטראטיבי יש לוודא כי בעת חישוב תא m[,] כל התאים בהם תלוי החישוב של תא זה חושבו כבר ואלו מכילים ערכי פתרונות אופטימאליים עבור תתי-הבעיות אותן הם מייצגים. יש להוכיח את שתי הטענות הבאות: טענה )ניתן להראות באינדוקציה(: בעת חישוב התא ה- m[,] כל התאים בשורה ה- מהעמודה ה- ועד העמודה ה-( - ) וכל התאים בעמודה ה- מהשורה ה-( + ) ועד השורה ה- כבר חושבו על מבנה הנתונים )במקרה זה מטריצה(. טענה )הטענה שמנסחת את הנוסחה הרקורסיבית(: התא m[,] אכן שווה ל- OPT(,) לאחר החישוב. כלומר יש להראות )באינדוקציה( שערך התא שווה לערך שמחושב על ידי הנוסחא שהוגדרה קודם,, = OPT[, ] = mn { OPT[, k] + OPT[ k +, ] + p pk p }, k ניתוח זמן מילוי הטבלה: ישנם ) ( On תאים בטבלה. n תאי האלכסון מאותחלים בזמן קבוע לכל תא. On ( ) זוגות של תאים שכבר חושבו, ובמקרה הכללי כל תא [ [, מצריך בדיקה של סה"כ זמן מילוי הטבלה: פעולות לכל תא..O( n) וכמה מקום צריך? Course materal s updated perodcally, please be sure to read the latest updates on the course webste. Practcal sessons and classes may nclude addtonal materal not lsted above. 7

שחזור: כיצד למצוא סדרת הכפלות אופטימאלית ולא רק עלות בזמן מילוי הטבלה, שמרנו ב -s עבור כל תא גם את ה- k שממנו הגענו לתוכן התא. כלומר, את הערך k שמגדיר כיצד לחלק את בעיית ההכפלה בצורה אופטימאלית. בעזרת ערכים אלו נוכל ע"י הליכה "אחורה" { A,..., A } מהתא [n,] ו"איסוף" ה- k -ים לשחזר את הצבת הסוגריים. Recursve Mul Restore (, ) f ( = ) return A k s[, ] return (Recursve Mul Restore (, k)) (Recursve Mul Restore (k +, )) שחזור סדר הכפלה עם עלות מינימלית עבור } n {A,, A יתקבל בהפעלת n). Recursve Mul Restore(, דוגמת ריצה במקרה של המטריצות שלנו נסתכל על התא ז"א : A, A, A, A 5 5 [,]. כיוון ש- = k ההכפלה האחרונה בסדרה היא בין תת הסדרה { A } ותת הסדרה } A,{ A, A, ) A. A ( A A כעת נביט בתא ] [, k = } A.{ A, A, בתא זה, משמע סדר ההכפלות הוא על מנת למצוא את ההצבה האופטימאלית של הסוגריים בתוך )) A, A ( A ( A ובזאת סיימנו את השחזור. הוכחת נכונות של אלגוריתם השחזור נכונות האלגוריתם נובעת מנוסחת המבנה ומהטענה עליה מבוססת נכונות נוסחת המבנה. תזכורת: עבור, k < הפתרונות ב-[ Sol[, כך שהכפל האחרון הוא בין תוצאת מכפלת הסדרה } k {A,, A לתוצאת מכפלת הסדרה } {A k+,, A הם בדיוק כל הפתרונות מהצורה ) (U ) (U כאשר k] U Sol[, וכן.U Sol[k +, ] בהתבסס על נכונות האלגוריתם האיטראטיבי, תא [ s[, מכיל את האינדקס k עבורו מתקבל המינימום של נוסחת המבנה. כלומר, את הערך k שמגדיר כיצד לחלק את בעיית ההכפלה } A {,...,A בצורה אופטימאלית. לפי הטענה הפתרון הוא מהצורה ) (U ) (U כאשר k] U Sol[, וכן ].U Sol[k +, ניתן להוכיח באינדוקציה כי האלגוריתם הרקורסיבי מחזיר U, U כנ"ל מינימליים, ומכאן נובעת נכונות האלגוריתם אשר אכן מחזיר ).(U ) (U ניתוח זמן האלגוריתם מבצע מס' קבוע של פעולות בתוך כל קריאה רקורסיבית. גודל עץ הרקורסיה הוא,O(n) וניתן להוכיח זאת באינדוקציה O()( T(n) = T(k) + T(n k) + לאיזה k < n כאשר O().(T() = לסיכום: בהינתן בעיה שאתם שוקלים לפתור אותה )חושדים או יודעים שפתרונה הוא( ע"י תכנון דינאמי, אלה השלבים שמרכיבים את הפתרון: הגדרת מספר פולינומי של תתי בעיות באופן מילולי והגדרת.OPT ניסוח נוסחת המבנה, כולל מקרי בסיס ומיקום הפתרון לבעיה המקורית. הוכחת נכונות של נוסחת המבנה. מימוש האלגוריתם איטראטיבי/רקורסיבי למציאת ערך הפתרון האופטימאלי )בד"כ נבקש איטרטיבי(. הוכחת נכונות של האלגוריתם: האלגוריתם פועל בהתאם לנוסחת המבנה. o בכל שלב בריצת האלגוריתם, כל ערך לו האלגוריתם זקוק, חושב באחד מהשלבים הקודמים. o תכנון אלגוריתם לשחזור פתרון אופטימלי מתוך ערכי OPT שחושבו, והוכחת הנכונות שלו. ניתוח זמן ריצה. Course materal s updated perodcally, please be sure to read the latest updates on the course webste. Practcal sessons and classes may nclude addtonal materal not lsted above. 8