Microsoft Word - tutorial Dynamic Programming _Jun_-05.doc

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

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

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

Microsoft Word - ExamA_Final_Solution.docx

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

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

Microsoft Word - Questions Booklet Spring 2009

מקביליות

מקביליות

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

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

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

Algorithms Tirgul 1

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

שיעור 1

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

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

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

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

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

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

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

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

PRESENTATION NAME

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

Tutorial 11

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

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

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

PowerPoint Presentation

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

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

Microsoft Word - SDAROT 806 PITRONOT.doc

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

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

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

Microsoft Word - Sol_Moedb10-1-2,4

מקביליות

Slide 1

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

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

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

שעור 6

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

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

מטלת מנחה (ממ"ן) 11 הקורס: חשבון אינפיניטסימלי II חומר הלימוד למטלה: יחידות 2,1 4 מספר השאלות: 7 משקל המטלה: נקודות סמסטר: ב 2007 מו

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

Microsoft Word - c_SimA_MoedB2005.doc

<4D F736F F D20F4FAF8E5EF20EEE5F2E320E020F1EEF1E8F820E120FAF9F2E3>

PowerPoint Presentation

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

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

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

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

תרגול 1

Slide 1

. [1,3] ו = 0 f(3) f(1) = עמוד 1 מתוך 6 דר' ז. אולחא מס' הקורס 9711 חדו''א הנ מכונות 1 f ( x) = ( x 1)( x 2)( x 3) c= f c = c (1,3), c תשובות I 1) פונ

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

Microsoft Word B

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

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

Microsoft Word - c_SimA_MoedA2006.doc

234114

Microsoft Word - 01 difernziali razionalit

תרגול 1

תרגיל בית מספר 1#

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

Microsoft Word - hedva 806-pitronot-2011.doc

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

תרגיל בית מספר 1#

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

שאלהIgal : מערכים דו מימדיים רקורסיה:

תיק משימטיקה מגרף הנגזרת לגרף הפונקציה להנגשה פרטנית נא לפנות: כל הזכויות שמורות

ע 003 מרץ 10 מועד מיוחד פתרונות עפר

פתרון מוצע לבחינת מה"ט ב_שפת c מועד ב אביב תשע"ט, אפריל 2019 מחברת: גב' זהבה לביא, מכללת אורט רחובות שאלה מספר 1 מוגדרת מחרוזת המורכבת מהספרות 0 עד 9.

Data Structure Assignment no.3 תאריך הגשה: p.m. 11/09/16, 23:59 את העבודה יש להגיש בזוגות במערכת ההגשות.submission system על העבודה להיות מוגשות כקובץ

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

תרגיל בית מספר 1#

<4D F736F F D20FAF8E2E5EC20E0ECE2E1F8E420EEF2E5F8E D F9E0ECE5FA2E646F63>

עבודה במתמטיקה לכיתה י' 5 יח"ל פסח תשע"ה אפריל 5105 קשה בלימודים, קל במבחנים, קל בחיים עבודה במתמטיקה לכיתה י' 5 יח"ל פסח תשע"ה יש לפתור את כל השאלות

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

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

Microsoft Word - 28

תוכן העניינים: פרק צמצומים ומימושים של פונקציות בוליאניות... 2 צמצומים של פונקציות באמצעות מפת קרנו:...2 שאלות:... 2 תשובות סופיות:... 4 צמצום

משוואות דיפרנציאליות מסדר ראשון

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

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

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

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

סדנת תכנות ב C/C++

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

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

1 תבניות טקסט מהי תבנית טקסט? שימוש ב- Characters Meta שימוש ב- Expression Grouping שימוש ב- Quantifiers תת תבניות הפונקציה preg_match הפונקציה preg_m

Slide 1

Microsoft Word - solutions.doc

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

<4D F736F F D20EEF9E5E5E0E5FA20E3E9F4F8F0F6E9E0ECE9E5FA2E646F63>

regular_expression_examples

ex1-bash

MathType Commands 6 for Word

תמליל:

הטכניון מכון טכנולוגי לישראל אלגוריתמים (3447) סמסטר חורף 006/007 הפקולטה למדעי המחשב תכנון דינאמי תרגיל תת מחרוזת משותפת ארוכה ביותר תת-מחרוזת z k שקיימת סדרה עולה ממש,... z = z של מחרוזת נתונה x m,...,, k... x X = x מעל א"ב של אינדקסים כך שלכל =,,...,k. x = z היא תת-מחרוזת משותפת של סימון: עבור מחרוזת נתונה X ו- Y אם היא תת-מחרוזת של X, Σ היא מחרוזת כך מתקיים כי וגם תת-מחרוזת של.Y מאורך X : X, את הרישא הבאה של 0 m, X נסמן ב-, m (עבור = 0... x X = x נקבל רישא ריקה). x יהיו X ו- Y שתי מחרוזות מעל א"ב Σ מאורך m ו- n בהתאמה. מהו אורך תת-המחרוזת המשותפת הארוכה ביותר של X ו- Y? טענה: תהא z k..., z = z תת-המחרוזת המשותפת הארוכה ביותר של X אם., x m = y n אזי k ו- z = x = y k m n X m ו-.Y n ו- Y הנתונים. אזי: היא תת-מחרוזת משותפת ארוכה ביותר של : x. אם m y n.y ו- X m אם א. zk x m אזי היא תת-מחרוזת משותפת ארוכה ביותר של.Y n ו- X אם ב. zk y n אזי היא תת-מחרוזת משותפת ארוכה ביותר של הוכחה: נוכיח כל מקרה בנפרד. : מקרה נניח בשלילה כי k x m. z אזי ניתן יהיה לשרשר לסוף את האיבר x m X ובכך נקבל מחרוזת משותפת של,( x m = y n ארוכה ביותר. ברור כי z z z k =... k ו- Y אשר יותר ארוכה מ- היא מחרוזת משותפת של X m ב, ו- (כי סתירה לכך ש-,Y n כל שנותר להראות הוא שהיא גם ארוכה ביותר. נניח בשלילה שלא, אזי קיימת מחרוזת משותפת ארוכה ביותר של X m ו- Y n שנסמנה W, אשר אורכה גדול ממש מ-. k על-ידי שרשור האיבר (כי ( x m = y n ל-,W נקבל מחרוזת משותפת ל- X ו- Y באורך גדול ממש מ- k סתירה. x m

מ ) k x m X m מקרה א.. (מקרה.ב דומה): ו- Y, כי. z נותר להראות כי תת-מחרוזת ארוכה m X ו- W,, Y אשר אורכה גדול ממש תת-מחרוזת משותפת של ביותר. נניח בשלילה כי קיימת תת-מחרוזת משותפת של X מ-. k אזי W גם מחרוזת משותפת של ו- Y (ארוכה יותר מ- ( סתירה..ש.ל.) 0 m ו-,Y X, נסמן ב- ( את אורך המחרוזת המשותפת הארוכה ביותר של,. )c לפי עובדה זו והטענה שהוכחנו ) 0. אם = 0 או = 0, אזי ברור כי = 0 ו- n קודם, ניתן לקבל את נוסחת הנסיגה הבאה: 0 = 0 or = 0, ) =, ), > 0, x = y max{, ),, )}, > 0, x y אם נחשב פונקציה זו באופן רקורסיבי, סיבוכיות הזמן תהיה אקספוננציאלית, זאת משום שיהיו ( m ) ( n ) ערכים של הפונקציה אשר יחושבו מספר פעמים. c ניתן לחשב את הפונקציה ביעילות בעזרת מטריצה (מספור האינדקסים,m. )c ניתן למלא את ערכי מטריצה זו שורה מתחיל מאפס), כאשר הערך שמעניין אותנו הוא (n אחר שורה, ובאופן זה נקבל אלגוריתם יעיל לפתרון הבעיה כי יש O(mn) תאים במטריצה כאשר () for = to m do: c (,0) 0 () for = to n do: c ( 0, ) 0 (3) for = to m do: (4) for = to n do:.o() (5) f x = y then c (, ), ) (6) else c (, ) max{, ),, )} זמן החישוב של כל תא הוא Y ו- X נעיר כי ניתן בזמן של (n O ( m למצוא את תת-המחרוזת המשותפת הארוכה ביותר של בעזרת המטריצה. c, ). n, n) הסבר: מתחילים מהתא., ) =, במידה ו- ( בשלב שבו נמצאים בתא במידה ומתבצע מעבר כזה, עוברים לתא מתקיים,. במידה ) =, ) אם, ) אם אין אפשרות כזו אז עוברים לתא ה -, ) =, ), ), ה- ). x = y וגם תנאי זה לא מתקיים, עוברים לתא (ומתקיים מהגדרת האלגוריתם). עוצרים כאשר מגיעים לתא ( )c,0 או,0) עבור, כלשהם.

, ( n, m ), p k m ו- n, n m תרגיל נתונה פיסת בד בגודל כאשר מספרים טבעיים לכל מספרים טבעיים. נתונות מידות k. לכל מידה נתון רווח מכירה m ו- n כאשר, k k. (לכל מידה שאינה נתונה, הרווח הוא 0.) המטרה היא לגזור את הבד כך שסך הרווח שיתקבל מגזרי הבד יהיה מרבי. בכל גזירה מותר לגזור פיסת בד לשניים, לאורכה או לרוחבה, כך שמתקבלים שני מלבנים שמידות כל אחד מהם הן מספרים טבעיים. לא ניתן לסובב את פיסת הבד או המלבנים שהתקבלו. מספר הגזירות אינו מוגבל. הציעו אלגוריתם אשר מוצא את הרווח ( nm( n m) ) המרבי שניתן לקבל מפיסת הבד הנתונה. על האלגוריתם לעבוד בזמן של O. 'c הרווח המקסימלי מפיסת בד בגודל שנגזרה ל- או יותר פיסות. (, ). הרווח ממכירת פיסת בד (לא גזורה) בגודל )p, ), )c הרווח המקסימלי מפיסת בד בגודל (גזורה או לא). ) פתרון: נגדיר: l l. c (, ) = max{ c'(, ), p(, אבחנה : לכל ו- מתקיים: {( c' (, ) אבחנה : אם א. מתקבל כאשר חוצים את פיסת הבד ע"י חתך אנכי ל- פיסות בד. c' (, ) =,, אזי 0 < l < ו- ( כך ש- c' (, אם ב. ( מתקבל כאשר חוצים את פיסת הבד ע"י חתך אופקי ל- פיסות בד. c' (, ) = ) ) אזי 0 < l < כך ש- ( ו- m m n n l l טענה : p(, ),, ) = max max{ ) )} max{,, } הוכחה: מיידית מההגדרות ומאבחנות ו-. (, בה התא ה- ( מייצג רווח C n m,n )c ביעילות נשתמש במטריצה על מנת לחשב את (m אפשרי מפיסת בד בגודל. 3

. for = to m do:. for = to n do: 3.,) 0 4. for = to k do: 5. n,m ) p 6. for = to m do: 7. for = to n do: 8. for l= to - 9.,) max{,), )-)} 0. for l= to -.,) max{,),,,-}. return n,m). O nm n m סיבוכיות: ניתן לראות כי סיבוכיות האלגוריתם היא ( ( )) הוכחת נכונות: נובעת מנכונות הטענה הבאה:., ) =, טענה : עם סיום הלולאה בשורות 0- מתקיים ( הוכחה: באינדוקציה על. c,) = p( n, m ) ( בסיס: =. מאחר ולא ניתן לחתוך פיסת בד בגודל אז אם קיים,( n אחרת = 0,). עפ"י האתחול,) מאותחל בהתאם ולא משתנה, m כך ש- (,) = ) בהמשך., ( ברגע ) ונסתכל על התא ה-, ' '< כך ש- ( ', ') לכל C ( ', ') = ', צעד: נניח כי (' חישוב ערכו. עפ"י טענה מתקיים כי., ) = max{ p(, ),max{ ) )},max{,, }} לכן עפ"י הנחת האינדוקציה מתקיים כי., ) = max{ p(, ),max{ ) )},max{,, }} 8-9,, ) = p(, ) נשים לב כי לאחר האתחול לכן לאחר שורות ולאחר שורות מ. מתקיים כי מתקיים כי.ש.ל. 0-, ) = max{ p(, ),max{ ) )}}, ) = max{ p(, ),max{ ) )},max{,, }}, בהתאמה. זאת משום ש(לדוגמא) ו- / ו-.3 4 הערה: בשורות 8 ו- 0 מספיק לרוץ עם l עד / לא משנה אם חותכים פיסת בד של 9 3 ל- פיסות 3 4 ו- 5 3, או ל- פיסות 5 3 שימו לב שלייצוג הקלט יש צורך ב- ((n O (log( m הקלט ב- N ביטים (בהנחה ש- k קבוע). כלומר, אם נייצג את גודל זמן הריצה אקספוננציאלי ב-. N למעשה, האלגוריתם אינו פולינומיאלי אלא פסאודו-פולינומיאלי. 4

תרגיל 3 קבוצה בלתי-תלויה מקסימום בעצים בהינתן גרף לא מכוון E) G = ( V, קבוצת צמתים V ' V נקראת קבוצה בלתי-תלויה. ( u, ) E כך ש- u, V ' אם לא קיימים (Independent Set) הציעו אלגוריתם שבהינתן עץ לא-מכוון (E T = ( V, מוצא קבוצה בלתי-תלויה מקסימום ב- T. פתרון: אלגוריתם חמדן (בוחר את כל העלים מגלח אותם וממשיך איטרטיבית). הציעו אלגוריתם לפתירת הבעיה הממושקלת בה לכל צומת יש רווח, ) ( w, ויש למצוא קבוצה בלתי-תלויה בעלת רווח מקסימום. שימו לב שהגירסא הלא ממושקלת הינה מקרה פרטי בו לכל צומת רווח של יחידה אחת. בעיה זו הינה דוגמא יפה המראה כי במקרים מסוימים האלגוריתם החמדן מספיק לגירסא הלא ממושקלת אך על מנת לפתור את הבעיה הממושקלת יש צורך להשתמש בתכנות דינאמי. פתרון: נכוון את קשתות T כך שיתקבל עץ מכוון (למשל ע"י הרצת DFS או BFS החל מצומת ונגדיר את הערכים הבאים לכל צומת : V ( r V () S משקל קבוצה בלתי-תלויה בעלת רווח מקסימום אשר מכילה את הצומת בתת-העץ שמושרש ב-. S () משקל קבוצה בלתי-תלויה בעלת רווח מקסימום אשר לא מכילה את הצומת העץ שמושרש ב-. עבור עלה. S ( ) = ו- 0 S ( ) = w( ) נחשב את הערכים הנ"ל עבור צומת, בהנחה שחושבו כבר לכל בניו של S ( ) = w( ) S ( u), בתת- chldren(), כך: S ( ) = u chldren( ) u chldren( ) max{ S ( u), S ( u)} גודל הקבוצה הבלתי תלויה מקסימום הוא כמובן {(r (. max{ S ( r), S. S ( r) > S ( r) שייך לקבוצה אם r לכל צומת אחר באופן הבא: אם u ב-( u S ( בחישוב שהוא בן של צומת נחליט האם u בקבוצה אז. S () חלק מהקבוצה הבלתי תלויה מקסימום u לא בקבוצה. אחרת, נחליט בהתאם לשימוש ב- (u) S או סיבוכיות: לאחר כיוון העץ (O(V ) ) הערכים הנ"ל. הזמן שיש להשקיע בכל צומת הוא יש לטייל עליו בסדר עבור גרפים כלליים לא ידוע אלגוריתם פולינומיאלי לבעיה. pre-order ולחשב לכל צומת את )d )O. לאחר חישוב הערכים ניתן לטייל על )) 5

העץ בסדר post-order על מנת למצוא את אברי הקבוצה. שוב הזמן שיש להשקיע בכל צומת הוא.O(V ) לכן סה"כ הזמן הוא )O, )d )) להלן דוגמה לחישוב קבוצה בלתי תלויה בגודל מקסימום בעץ כלומר המקרה הלא ממושקל שבו w ( ) = לכל צומת. לצד כל צומת מגדירים את הקבוצה הבלתי תלויה. מסומנים הערכים. S הצמתים הלבנים ( ), S ( ) שימו לב שהפתרון תואם לפתרון החמדני. להלן דוגמא למקרה הממושקל שבו האלגוריתם החמדן לא מייצר קבוצה בלתי-תלוייה בעלת רווח מקסימום. לעומתו, האלגוריתם המשתמש בתיכנות דינאמי מוצא פיתרון אופטימאלי. המשקל של הצומת רשום בתוכו. 0 0, 0 0,, 0, 0, 0, 0 0 0, 0 6

תרגיל 4 בעיית תרמיל הגב (Knapsack) נתון תרמיל שלו קיבולת משקל אפשרית נתונים משקל n ונתונים W עצמים,a,a,K an באופן שלכל עצם a w ורווח. בעיית תרמיל הגב היא בעיית בחירת תת-קבוצה של עצמים לאריזה p בתרמיל באופן שהרווח הכולל עבורם יהיה מקסימלי תוך שאיננו מפרים את אילוץ המשקל. פתרון: a, { בלבד a,..., a} את הרווח המקסימלי כאשר בוחרים עצמים מתוך הקבוצה )F, נסמן ב- (w כך שסכום משקליהם לא יעלה על ברור ש בנוסף: הסבר: F(, w), F(, w) = max{ F(, w), p. w. F(0, w ) = 0 > w F(, w w )}, otherwse w אם משקל העצם ה- גדול מ- w אחרת, הוא אינו יכול להיות חלק מהפתרון האופטימלי. יש לבחור את הטובה מבין שתי האפשרויות: () הרווח המקסימלי כאשר העצם ה- אינו חלק מהפתרון האופטימלי, ו-( ) הרווח המקסימלי כאשר העצם ה- חלק מהפתרון האופטימלי. ( n ) ( W ) סיבוכיות: נממש בעזרת מטריצה (נתעניין כמובן בתא ה- ( n,w בסיבוכיות 3. O(nW ) לדוגמה, נתונה המטריצה שתחושב עבור 4 פריטים במשקל 5,4,6,3 ורווח 0,40,30,50, בהתאמה. ותרמיל בגודל 0. שאלה: לאחר חישוב המטריצה, כיצד נמצא את הפתרון האופטימלי (פריטים ו- 4 בדוגמה)? 3 גם במקרה זה מדובר באלגוריתם פסאודו-פולינומיאלי. 7

תרגיל 5 בעיית הסוכן הנוסע -TSP) (Traelng Salesman Problem אחת הבעיות המפורסמות ביותר במדעי המחשב היא בעיית הסוכן הנוסע: נתונה רשת של n ערים {n,...,, { וביניהן כבישים כך כ- d מייצג את המרחק בין עיר לעיר. סוכן-נוסע רוצה לצאת מעיר, לבקר בכל שאר הערים בכל עיר פעם אחת בדיוק, ולחזור לעיר ממנה יצא. באיזה סדר עליו לבקר בערים כך שהמרחק שייסע יהיה קטן ככל האפשר? פתרון נאיבי יהיה לבדוק את כל ( n )! לא ידוע פתרון פולינומיאלי לבעיה) המבוסס על תכנון דינאמי. האפשרויות. נראה פתרון יעיל יותר (אך לא פולינומיאלי,A )c את מחיר המסלול הקל ביותר מ- ל- k אשר עובר דרך כל הצמתים בקבוצה נסמן ב- (k. A {,3,..., n} הפתרון האופטימלי יהיה: } mn{ c ({,3,..., n} \ { k}, k) d k n c ( A, k) mn{ A \ { }, ) dk,a )c יעשה עפ"י הנוסחה הבאה: } חישוב (k = A k סיבוכיות: יש לחשב ערכים, חישוב כל ערך מתבצע ב- O(n) לכן סה"כ O( n n ) O( n n ) טוב יותר מהפתרון הנאיבי. 8