תכנות דינאמי Flashcards

1
Q

מהם השלבים לפתרון בעיה באמצעות תכנון דינאמי?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

על איזה מבנה פועל אלגוריתם בלמן-שכבות?

מה האלגוריתם עושה?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

מהו אוסף תת הבעיות של אלגוריתם בלמן-שכבות?

מהי נוסחת הרקורסיה?

A

אוסף תת הבעיות:

עבור כל קודקוד v, נמצא את המסלול הקל ביותר מs (=קודקוד ההתחלה) לv.

נשים לב שעבור t (=קודקוד הסיום), זאת בדיוק הבעיה שאנו מנסים לפתור.

נוסחת הרקורסיה: בתמונה.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

מהו זמן הריצה של אלגוריתם בלמן-שכבות?

A

(O(E+V

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

מהו מיון טופולוגי בגרף מכוון חסר מעגלים?

A

זהו מיון של קודקודי הגרף כך ש:

אם יש צלע מקודקוד u לקודקוד v, אזי ברשימת הקודקודים הממויינת, u יופיע לפני v.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

באיזה סוג אלגוריתם נשתמש כדי למצוא תת מחרוזת משותפת ארוכה ביותר (תמ”א) לשתי מחרוזות?

A

אלגוריתם דינאמי.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

מהו אוסף תתי הבעיות של בעיית תת מחרוזת משותפת ארוכה ביותר לשתי המחרוזות:

X = x1, x2, … , xn

Y = y1, y2, … , ym

?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

מהי נוסחת הרקורסיה של בעיית תת מחרוזת משותפת ארוכה ביותר לשתי המחרוזות:

X = x1, x2, … , xn

Y = y1, y2, … , ym

?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

איך נשחזר מהטבלה את הפתרון של בעיית תת מחרוזת משותפת ארוכה ביותר לשתי המחרוזות:

X = x1, x2, … , xn

Y = y1, y2, … , ym

?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

מהו זמן הריצה של האלגוריתם למציאת תת מחרוזת משותפת ארוכה ביותר לשתי המחרוזות:

X = x1, x2, … , xn

Y = y1, y2, … , ym

?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

איך נוכיח את נכונות האלגוריתם למציאת תת מחרוזת משותפת ארוכה ביותר לשתי המחרוזות:

X = x1, x2, … , xn

Y = y1, y2, … , ym

?

מהי טענת האינדוקציה?

מהו בסיס האינדוקציה?

מהו צעד האינדוקציה?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

בשאלה שבתמונה:

  1. מה תהיה החלוקה לתתי בעיות?
  2. מה תהיה נוסחת הרקורסיה.
  3. איך נמלא את הטבלה ונחלץ ממנה את הפתרון?
A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

יהי גרף מכוון עם פונקציית משקל על הצלעות.

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

A

נשתמש באלגוריתם פלוייד-וורשל.

האלגוריתם מחזיר טבלה כך שבתא הi,j כתוב משקל המסלול הקל ביותר מi לj.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

מהו זמן הריצה של אלגוריתם פלוייד-וורשל?

A

O(|V|3)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

איך נמצא את המרחק המינימלי בין קודקוד v בגרף לכל שאר הקודקודים בגרף?

A

נשתמש באלגוריתם בלמן פורד או באלגוריתם דייקסטרה.

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

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

יתר על כן, אם הגרף מכיל מעגל שסכום משקלי קשתותיו שלילי (מה שגורם לכך שאין תשובה מוגדרת לשאלת המסלולים הקצרים) הוא מסוגל לזהות זאת ולהתריע על כך.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

מה זמן הריצה של בלמן-פורד?

A

O(|V||E|)

17
Q

מה זמן הריצה של דייקסטרה?

A

O(|E| + |V|log|V|)

18
Q

באיזה סוג בעיה נבחר להשתמש בפתרון דינאמי על פני פתרון חמדני?

A

אם, כדי לפתור את הבעיה, יש צורך בחשיבה קדימה, כי למשל בחירת הפתרון החמדני בהתחלה “תדפוק” את מוצלחות הפתרון בהמשך -

נשתמש בפתרון דינאמי.