Professional Documents
Culture Documents
Test Sol
Test Sol
Test Sol
מרצה :ד"ר יוליה קמפנר ,ד"ר לאוניד קוגל ,מר אור כדראוי
האם אפשר למצוא את הסיבוכיות של הפונקציות הבאות ע"י משפט האב ? א 10( .נקודות)
𝑛 5𝑛2
5( .iנקודות) 𝑛𝑔𝑜𝑙 𝑇(𝑛) = 9𝑇 ( 3) +
5𝑛2
= )𝑛(𝑓 , 𝑛log𝑏 𝑎 = 𝑛log3 9 = 𝑛2
𝑛 log
5𝑛2
)≠ 𝛰(𝑛2−𝜀 ) ∀ 𝜀 > 0 (𝑐𝑎𝑠𝑒 1
𝑛 log
𝜀𝑛
.אין חסם עליון כאשר ∞ → 𝑛 לביטוי , 𝜀>0 נימוק :לכל
𝑛 log
5𝑛2
𝑛 log
לכן ,∀𝜀 > 0 ,לא קיים 𝐶 > 0כך שלכל 𝑛 > 𝑛0מתקיים 𝜀≤ 𝐶𝑛2−
5𝑛2
)≠ 𝜃(𝑛2 log 𝑘 𝑛) 𝑓𝑜𝑟 𝑘 ≥ 0 (𝑐𝑎𝑠𝑒 2
𝑛 log
5𝑛2
)≠ Ω(𝑛2+𝜀 ) ∀ 𝜀 < 0 (𝑐𝑎𝑠𝑒 3
𝑛 log
𝑛
𝑛𝑔𝑜𝑙𝑛 𝑇(𝑛) = 8𝑇 (2) + 5( .iiנקודות)
R O u c y h e
2
1 1 1 2 3
1 1
u c y h e
R O
2 2
1 2 3
1 1 1 1
y h e
R O u c
2 2 3
3
1 1 1 1 1 2
e
R O u c y h
4
2 2 3 3
1 1 1 1 1 2
e
R O u c y h
4 6
10
4 6
לבן ימני ונקבל את ו1- לבן שמאלי 0 נסמן בקשתות העץ הסופי:
קידוד האותיות:
000111100101001110110111100
ג 10( .נקודות)
באלגוריתם KMPלמציאת תת מחרוזת בתוך מחרוזת נתונה ,השתמשנו במערך עזר
שמטרתו הייתה לסמן אינדקסים של תחיליות תת המחרוזת .למערך זה קראנו .
האם קיימת מחרוזת Pשעבורה במערך , מופיע המספר 3בדיוק שלוש פעמים ברצף?
אם לא – נמקו מדוע ,אם כן -תנו דוגמא למחרוזת .P
שעבורה במערך π בשאלה ,נתבקשתם למצא האם קיימת מחרוזת P
יופיע:
נתון מערך של מספרים שונים ומספר xשאינו מופיע במערך .עליכם לבנות אלגוריתם יעיל
שמחזיר כמות המינימלית של המספרים שחייבים להוסיף למערך כדי להפוך את החציון שלו ל – x
:עבור המערך 10,15,3,8,11,4ומספר x=7אנו חייבים להוסיף לפחות שני מספרים לדוגמא
(למשל 5ו )7 -כך ש 7 -יהיה החציון.
נמקו נכונות וחשבו את הסיבוכיות של האלגוריתם שבניתם.
בסעיפים הבאים עליכם לבנות אלגוריתם יעיל ,מבוסס תכנון דינאמי ,למציאת תת הסדרה המבוקשת:
כולל מקרי בסיס ,והסבירו בקצרה מדוע היא נכונה. נסחו את נוסחת נסיגה עבור ) S (i
פונקציית הע זר מאתרת ושומרת את הסכום של תת סידרה עולה ממש עם
סכום מקסימאלי המסתיימת באיבר ] . A[iנוסחת הנסיגה היא :
ב .תארו נוסחה למציאת ערך (סכום מקסימלי של תת-הסדרה) של פתרון אופטימאלי.
ערך הפתרון האופטימאלי הוא המקסימום על כל המערך :S
ג .בנו אלגוריתם איטראטיבי (לא רקורסיבי) למציאת ערך פתרון אופטימאלי .על האלגוריתם
להשתמש במערך Sלאחסון הערכים של הפונקציה Sשהגדרתם בסעיף א.
האלגוריתם ( Find_max_sum_sub_sequeneceבהמשך)
ד .מהי הסיבוכיות של האלגוריתם שבניתם בסעיף הקודם? נמקו.
)2
באלג' יש 2לולאות ,forאחת בתוך השניה .לכן הסיבוכיות היא 𝑛(𝛰
ה .תנו דוגמא (מלאו טבלה) לעבודת האלגוריתם שבניתם עבור המערך:
שאלה 25 ( .4נקודות )
א 12( .נקודות)
נתון גרף קשיר לא מכוון עם פונקציית משקל על צלעות כך שכל משקלים הם שונים.
לגבי גרף זה ,הוכיחו (תנו הסבר קצר) או הפריכו (תנו דוגמא נגדית) את המשפטים הבאים:
.1כל עץ פורש מינימלי מכיל את הצלע עם המשקל המינימאלי
הוכחה :תהי 𝑒 הצלע בעלת המשקל המינימלי בגרף .נניח ,בשלילה ,כי
קיים עפ"מ Tשאינו מכיל את 𝑒 .אם נוסיף 𝑒 לעפ"מ Tנקבל מעגל 𝐶
נוריד מ C -צלע 𝑓 שונה מ 𝑒-ונקבל 𝑒 , 𝑇1 = 𝑇 − 𝑓 +אז
)𝑇(𝑤 < )𝑒(𝑤 𝑤(𝑇1) = 𝑤(𝑇 − 𝑓 + 𝑒) = 𝑤(𝑇) − 𝑤(𝑓) +
כי )𝑒(𝑤 > )𝑓(𝑤
בסתירה לכך ש 𝑇 הוא עפ"מ.
.2אף עפ"מ לא מכיל את הצלע עם המשקל המקסימלי.
דוגמא מפריכה:
1 6
7
2 5
G 4
3
1
7
2 5
T 4
.3אם עפ"מ מכיל את הצלע עם המשקל המקסימלי אז הצלע הזו היא גשר בגרף.
הוכחה :תהי 𝑒 הצלע בעלת המשקל המקסימלי בגרף שמוכלת גם
בעפ"מ .נניח ,בשלילה ,כי 𝑒 אינה משמשת כגשר בגרף .כלומר𝑒 ,
שייכת למעגל 𝐶 בגרף .המעגל 𝐶 נפרש בעפ"מ ע"י הצלעות 𝑇 ∩ 𝐶 .
מתכונת המינימליות של העפ"מ נקבל ש-
אם בגרף אין מעגלים שלילים ,לאחר n-1 לפי הטענה הנ"ל,
איטרציות של האלגוריתם ,חושב המסלול הקל ביותר מ s-לכל
קודקוד vשיש אליו מסלול .לכן ,לא יהיה מצב שידרוש פעולת Relax
נוספת .ולכן לא יהיה שינוי במערך המרחקים.
מאידך ,אם יש מעגל שלילי ,אז בקודקודים שלאחר מעגל שלילי
יתקיים בהכרח בשלב ה n-האי-שיוויון )𝑣 𝑑[𝑣] > 𝑑[𝑢] + 𝑤(𝑢,ותידרש
פעולת Relaxנוספת שתשנה את מערך המרחקים
לכן ,בדיקה האם יש או אין צורך לעשות שינוי במערך המרחקים
בפעם ה n-נותנת אינדיקציה לקיום או אי-קיום של מעגל שלילי
בגרף שניתן להגיע אליו מ.s-
.2מצאו את המשקל ואת המסלול הקל ביותר מקדקוד sלקדקוד vבגרף הבא:
המסלול הקל ביותר הוא (s,d,b,a,f,v) :ומשקלו 17
3 10
c
a b -8
-7
10 1
-8 t
S
7 -2
1
d 10 f 2
13 V
בהצלחה!