Exercise No

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

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

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

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

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

Algorithms Tirgul 1

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

Microsoft Word - tutorial Dynamic Programming _Jun_-05.doc

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

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

Microsoft Word - Questions Booklet Spring 2009

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

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

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

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

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

שעור 6

שיעור 1

PowerPoint Presentation

Microsoft Word - ExamA_Final_Solution.docx

Microsoft Word - hedva 806-pitronot-2011.doc

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

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

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

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

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

Tutorial 11

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

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

1 בגרות עח יולי 18 מועד קיץ ב שאלון x b 2 2 y x 6x שיעור ה- א x לכן, של קדקוד הפרבולה, ו-, מתקבל על ידי הנוסחה a. C(3, 9) ובהתאם, y. (3, 9) 2 C

rizufim answers

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

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

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

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

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

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

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

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

Microsoft Word - 38

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

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

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

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

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

Microsoft Word - Sol_Moedb10-1-2,4

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

Microsoft Word - עבודת פסח לכיתה י 5 יחל.doc

Slide 1

Microsoft Word B

PowerPoint Presentation

מקביליות

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

PRESENTATION NAME

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

Microsoft Word - SDAROT 806 PITRONOT.doc

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

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

תרגול 1

<4D F736F F D20F4FAF8E5EF20EEE5F2E320E020F1EEF1E8F820E120FAF9F2E3>

Slide 1

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

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

<4D F736F F D20FAF8E2E5EC20E0ECE2E1F8E420EEF2E5F8E D F9E0ECE5FA2E646F63>

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

<4D F736F F D20F4F2E5ECE5FA20EEE5EEF6E0E5FA20312E646F63>

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

Programming

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

<4D F736F F D20EEF9E5E5E0E5FA20E3E9F4F8F0F6E9E0ECE9E5FA2E646F63>

Microsoft Word - 28

HaredimZ2.indb

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

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

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

PowerPoint Presentation

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

Slide 1

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

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

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

PowerPoint Presentation

Microsoft Word - c_SimA_MoedB2005.doc

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

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

מתמטיקה לכיתה ט פונקציה ריבועית

א"ודח ב2 גרבימ הרש 1 רפסמ האצרה סקוטס טפשמו בחרמב םיווק םילרגטניא 13 בחרמב ינש גוסמ יוק לרגטניא L יהי :ידי לע ירטמרפ ןפואב ראותמה בחרמב קלח םוקע (x(t)

תרגול 1

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

תרגיל 5-1

תכנות מונחה עצמים א' – תש"ע

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

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

פסגות ע"ש ברוך ונגר בית ספר על יסודי מקיף ומכללה עבודת קיץ לבוגרי כיתה ז' קבוצת מיצוי " שכונה מערבית, רח' הפסגה 17 כרמיאל דוא"ל:

Microsoft PowerPoint - T-10.ppt [Compatibility Mode]

. m most לכל אורך השאלה, במקרה של כוח חיכוך: = 0.01 [kg]; μ א. נתון: = 0.1 k f k = μ k N = μ k mg a = μ k g תור ראשון: לאחר שג'וני גלגל את הגולה הראשו

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

טעימה מסדנת 4 החלקים: קסמים מדהימים 3 מייסד בית הספר: יוני לחמי פלאפון:

Microsoft Word - 01 difernziali razionalit

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

תמליל:

Practical Session No. 14 Union/Find & MST זמן ריצה: רצף של m פעולות, Makeset, Union, Find ש- n מתוכן הן פעולות Makeset ניתן לביצוע באמצעות יער של קבוצות זרות, עם איחוד לפי דרגה, וכיווץ מסלולים בזמן: α(m, n)( n, m עבור כל ערכים ריאליים של α(m, n) 4 כאשר:,O(m α(m, n)) היא הפונקציה ההפוכה לפונקציית אקרמן(, ולכן בכל שימוש מעשי ניתן להתייחס לזה כאל: O(m) שאלה מס' 1:

3 1 1 P = 4

2 O(1) if there is a pointer to the last element in the list. 2

ניתן לפתור שאלה זו גם בעזרת מימוש של union find באמצעות עצים מושרשים, עם איחוד לפי דרגה, וכיווץ מסלולים בזמן: ((n,o(m α(m, כאשר: 4 (n α(m, עבור כל ערכים ריאליים של α(m, )(n,n m היא הפונקציה ההפוכה לפונקציית אקרמן(, ולכן בכל שימוש מעשי ניתן להתייחס לזה כאל:.O(m)

שאלה 2: אי-זוגי( ומשתתפים בו שני HEX הוא משחק לוח שמנוהל ע"ג לוח של שחקנים- שחור ולבן. בכל צעד השחקן שזה תורו, בוחר באחד המשושים הפנויים ומניח עליו אבן בצבע שלו. מטרתו של השחקן השחור היא ליצור רצף של אבנים שחורות בין הקצה הימני התחתון של הלוח והקצה השמאלי העליון שלו, ומטרת השחקן הלבן ליצור רצף אבנים לבנות בין שני הקצוות האחרים. הצע אלגוריתם לניהול המשחק. פתרון: K ( משושים K K לוח המשחק יהיה מטריצה Board בגודל.K K Board[i,j] מסמן את מצבו של המשושה בשורה ועמודה : אם הוא פנוי, אם יש עליו אבן שחורה ו- 1 אם יש עליו אבן לבנה. במהלך המשחק ננהל קבוצות של משושים ונאחד בין רצפים של משושים עם אבנים באותו צבע. המשושה שמתאים ל-[ Board[i,j ייוצג ע"י האיבר.<i,j> בהתחלה, כל משושה מהווה קבוצה נפרדת. כאשר שחקן בצבע X הניח אבן בצבע שלו על Board[i,j] נאחד את הקבוצה של <i,j> עם כל הקבוצות של המשושים הסמוכים אשר עליהם יש אבנים בצבע X )לפני האיחוד נבדוק לגבי כל משושה סמוך שעליו יש אבן בצבע X אם הוא כבר שייך לקבוצה של <i,j> ואם לא, נאחד בין הקבוצות(. בנוסף, נוסיף עבור כל אחד מארבע קצותיו של הלוח "משושה דמה" )שניים שחורים ושניים לבנים( וכאשר שחקן בצבע X מניח אבן על משושה שנמצא באחד מהקצוות שהוא צריך לחבר )ימין-עליון ושמאל-תחתון עבור X=white וימין-תחתון ושמאל-עליון,)X=black נאחד את הקבוצה של המשושה שעליו הונחה האבן גם עם "משושה הדמה" המתאים. בכדי לבדוק אם שחקן בצבע X ניצח יש לבדוק האם שני משושי-הדמה שלו נמצאים באותה קבוצה. 1 0 j i מספר פעולות ה- makeset הוא כגודל הלוח ועוד ארבע משושי-דמה. על כל משושה מניחים פעם אחת לכל היותר אבן צבועה, ואז מכיוון שלכל משושה יש לכל היותר ששה שכנים, מבוצע מספר קבוע של בדיקות find ו- union )כולל הבדיקה האם שני משושי-הדמה הם באותה קבוצה(. בסה"כ, ) 2 O(K פעולות MakeSet, Union, Find וזמן הריצה הכללי לניהול המשחק יהיה: logk) O(K 2 logk 2 =( O(K 2 אם נממש את מבנה הנתונים באמצעות רשימות מקושרות עם איחוד לפי דרגה, ו-( O(k 2 α(k 2, k 2 )) = O(k 2 אם נממש את מבנה נתונים באמצעות עצים מושרשים עם איחוד לפי דרגה וכיווץ מסלולים.

MST Minimum Spanning Tree (MST) Given a weighted, connected, undirected graph: A spanning tree is a sub-graph that is a tree and connects all the vertices of the original graph together. A minimum spanning tree (MST) is a spanning tree with weight less than or equal to the weight of every other spanning tree. Known algorithms: Prim and Kruskal

Kruskal The algorithm starts with V different trees (each tree consists of one of the vertices in V). At each step unions two trees by adding the edge with minimal weight that doesn't creates a cycle. MST-Kruskal(G, w) A Ø for each vertex v V(G) Make-Set(v) sort the edges in E(G) by non-decreasing weight w for each edge (u,v) E(G) in order by non-decreasing weight if Find-Set(u) Find-Set(v) A A {(u,v)} Union(u,v) return A Complexity: Assuming that the optimized union-find is used the runtime is (ElogE) = O(ElogV). Prim The algorithm starts with a tree T={r} (tree consisting of a single vertex) and extends it until it spans all the vertices in V(G). At each step the minimal weight edge of all the edges connecting T to the vertices that have not been covered by T yet is added to T. key[u] =min{w(u,v): (u,v) E(G) and v T} MST-Prim (G, w, r) Q V(G) for each v Q key[v] key[r] 0 π[r] NIL while Q Ø

v Extract-Min(Q) for each u Adj[v] if u Q and w(v,u) < key[u] π[u] v key[u] w(v,u) decreasekey (Q, u) Complexity: Using a binary heap the runtime is O(VlogV + ElogV) = O(ElogV). שאלה 3 E ' נתון גרף (E G =,V) לא מכוון וקשיר עם משקלות חיוביים על הצלעות. רוצים למצוא קבוצת צלעות שמכילה צלע אחת מינימאלי. לפחות מכל מעגל ב- G ואשר משקלה פתרון: נמצא עץ פורש מקסימאלי ) T T = (V, E ואז נחזיר את.E = E\E T ראשית, נראה שאכן E מכילה קשת אחת לכל מעגל. זה נכון משום ש- T לא מכיל מעגלים, כלומר בכל מעגל של G יש לפחות צלע אחת שאינה נמצאת ב- T, כלומר היא נמצאת ב-= E.E\E T כעת נראה ש- E ממשקל מינימאלי. נסמן משקל ע"י.wt נתבונן באיזושהי קבוצת צלעות אחרת, E, אשר מכילה צלע אחת לפחות מכל מעגל של G. בגלל ש- E מכילה צלע אחת לפחות מכל מעגל של G, ברור שבקבוצה ''E \E אין מעגלים, כלומר הצלעות ב- E\E הן יער ואפשר להשלים אותן לעץ T ומקבלים ש - ) wt(e wt(t ) + wt(e ) wt(t) + )הערה: E ו- T לא מכילים צלעות משותפות אבל ייתכן שב- E ו- T יש צלעות משותפות ולכן משקלם הכללי עשוי להיות יותר גדול(. כעת, מכיוון ש- T הוא עץ פורש מקסימאלי, הרי ש- wt(t).wt(t ) לכן מקבלים ש- ) wt(e wt(e ) כנדרש. שאלה 4 יש לתכנן רשת תקשורת עבור n ערים, כאשר מחיר קו בין עיר u ועיר v הוא המרחק בין שתי הערים )בקו אווירי(. יש לתכנן רשת תקשורת כך שמחירה יהיה מינימאלי תוך התחשבות בתנאים הבאים: חלק מהערים כבר מחוברות ביניהן ע"י קווי תקשורת ולכן ניתן לחסוך בהקמת הרשת החדשה ע"י שימוש בתשתיות קיימות.

בחלק מן הערים )שאינן מחוברות לתשתיות קיימות( קמו ארגוני ירוקים שמתנגדים לחיבור קווי תקשורת ואנחנו מעוניינים לחבר את אותן ערים למספר קטן ככל האפשר של קווי תקשורת, כלומר למזער את מספרם של קווי התקשורת ברשת אשר מחוברים לאיזושהי עיר "ירוקה". הצע אלגוריתם למציאת רשת בעלות מינימאלית. פתרון: רדוקציה לבעיית :MST נייצג את הערים וקווי התקשורת ע"י גרף (E G =,V) כאשר נעניק לכל זוג ערים משקל עבור הצלע שמחברת אותם באופן הבא: כל קווי התקשורת הקיימים יקבלו משקל. 0 כל קווי התקשורת האחרים אשר אינם מקושרים לעיר שבה יש ארגוני-ירוקים יקבלו את המשקל של עלות הקמתם. לבסוף, נסמן ב- X את המרחק המקסימאלי של שתי ערים כלשהן. עבור קווי התקשורת שקשורות לעיר או ערים שבהן יש ארגוני ירוקים, נעניק לצלע משקל שהוא המרחק בין שתי הערים +.X על הרשת שנוצרה נחשב.MST נבחן את התנהגותו של האלגוריתם של קרוסקל לחישוב MST על הגרף שהגדרנו. בסדר המיון של הצלעות, יופיעו בהתחלה כל הצלעות שמייצגות קווי-תקשורת קיימים, אח"כ כאלו המייצגות קוי-תקשורת לערים "לא-ירוקות" ולבסוף צלעות המייצגות קווי-תקשורת לערים "ירוקות". לכן, בהתחלה הוא יבחר קווי תקשורת קיימים והוא יעבור לבחור צלעות שיש להן משקל גדול מ- 0 רק לאחר שימצה את האפשרות לבחור צלעות במשקל 0. לאחר מכן, יבחר מתוך הצלעות שמייצגות קוי-תקשרות של ערים "לא-ירוקות" ויעבור לבחור קווים לערים ירוקות רק לאחר שימצה את האפשרות לצלעות אחרות. שאלה 5 מפקד של רשת ריגול צריך למסור הודעה לכל N הפעילים בקבוצה, ההודעה כמובן צריכה להשאר סודית. לכל שני פעילים i,j הנמצאים בקשר יש הסתברות ידועה < 1 (j < P(i, 0 שאם i מעביר את ההודעה ל- j ההודעה תתגלה. המטרה של המפקד היא לתכנן את רשת העברת ההודעה כך המידע יגיע לכל הפעילים תוך מזעור הסתברות גלוי ההודעה. מה יעשה? פתרון: נבנה גרף על כל הפעילים, כאשר יש צלע בין כל שני פעילים הנמצאים בקשר. אנחנו רוצים שההודעה תגיע לכל הפעילים ולכן מחפשים תת-גרף בו יש מסלול מהצומת s, המייצג את המפקד לכל הפעילים, כלומר, תת-גרף קשיר. בתת-גרף האופטימאלי עבורנו לא יופיע מעגל, מכיוון שלו היה מעגל היה ניתן לזרוק צלע במעגל בלי לפגוע בקשירות ותוך הפחתת הסיכון להתגלות, ולפיכך לא היה אופטימאלי. ולכן אנחנו מחפשים עץ פורס בגרף עבורו ההסתברות לגילוי ההודעה מינימאלי.

ההסתברות לאי גילוי ההודעה עבור צלע בודדת הוא ((j P(i, 1) ולכן ההסתברות הכללית לאי גילוי ההודעה עבור תת-עץ כלשהוא T הוא: ((j P(i, 1) על פני כל,i) (j T כלומר אנחנו מחפשים עץ T עבורו ((j P(i, 1) על פני כל,i) (j T הוא מקסימלי. נשתמש בכך ש log)( היא פונקציה מונוטונית עולה ולכן מחפשים T כך ש j))) log( (1 P(i, מקסימלי. אבל: j)) log( (1 P(i, j))) = log(1 P(i, ולכן שקול למציאת עץ פורש מקסימלי בגרף שלנו כאשר משקל צלע log(1 P(i, j)) הוא (i, j) או לחלופין למציאת MST כאשר משקל צלע (j,i) הוא ((j. log(1 P(i, j))( log(1 P(i, הוא מספר חיובי(. שאלה 6 האם אפשר לפתור הבעיה הקודמת ללא הפונקציה log()? פתרון: למעשה אפשר להריץ MST כאשר משקל צלע (i,j) הוא P(i,j(!! בריצת prim על הגרף תחת כל אחת משני המישקולים השונים אותה הצלע תבחר בכל שלב! כאשר P(i,j( מינימלי בכל שלב אם"ם -log(1-p(i,j)) מינימלי. )כלומר הפתרון הקודם רק מסביר למה זה עובד (. שאלה ממבחן נתון גרף G עם משקולות חיוביים ושונים. תהא w פונקצית המשקל כך ש- w(e)>1 לכל e. סמנו נכון / לא נכון לגבי כל אחד מהמשפטים הבאים: נגדיר פונקצית משקל חדשה: 1/w(e(.w (e) = w(e) טענה: העץ הפורש המינימאלי עפ"י w זהה בקבוצת צלעותיו לעץ הפורש המינימאלי עפ"י 'w. נכון/לא נכון עץ מכפלה פורש מינימלי הוא עץ פורש של G שמכפלת משקלות צלעותיו מינימלית. טענה: עץ מכפלה פורש מינימלי זהה בקבוצת צלעותיו לעץ הפורש המינימאלי. נכון/לא נכון.1.2 נתון גרף קשיר ולא מכוון,G=(V,E( וידוע שכל המשקלות על הקשתות שונים זה מזה ורק לשתי קשתות יש אותו המשקל. תארו בקצרה אלגוריתם הבודק אם ל- G קיים MST )עץ פורש מינימלי( יחיד. נתחו זמן ריצה ונמקו.

פתרון:. 1 נכון. 2 נכון נמיין את צלעות G עפ"י משקלן בזמן.O( E log E ( תהי S1 הסדרה שהתקבלה. נסרוק את הסדרה S1 בזמן O( E ( ונמצא את זוג הצלעות עם אותו המשקל. ניצור סדרה נוספת S2 הזהה ל- S1 פרט לכך שזוג הצלעות עם אותו המשקל מופיעות בה בסדר הפוך. נריץ את האלגוריתם למציאת עפ"מ של קרוסקל פעמיים, פעם על S1 ופעם על S2. יהיו T1 ו- T2 העצים שהתקבלו, בהתאמה. אם T1 מכיל את אחד מבני הזוג בלבד ואלו T2 מכיל את השני, אזי קיימים שני,MST אחרת קיים עץ יחיד. במהלך ריצת האלגוריתם למציאת,MST נשים לב מה קורה אם זוג הצלעות עם אותו המשקל, כך שנוכל לקבוע מיד בגמר הריצה האם T2 שונה מ- T1 או לא. שאלה ממבחן )מועד א 2002( חברת הבניה "מבנים בע"מ" רוצה לשמור את נתוני משכורות העובדים ולבצע מספר פעולות עליהם. החברה מעסיקה כבר n עובדים. הציעו מבנה נתונים בגודל,O(n) התומך בפעולות הבאות בזמנים הנתונים. פעולה תיאור זמן O(n) אתחול המבנה. employees היא רשימה לא ממוינת של n העובדים והמשכורות שלהם. median_key3 הוא השלישון של משכורות העובדים ידוע ונתון מראש ומשתנה ביחד עם העדכונים. Init(employees, median_key3) O(logn) למבנה הנתונים. k הוספת עובד בעל משכורת Insert(k) O(logn) O(logn) הוצאת עובד בעל משכורת מינימאלית. אם יש יותר מאחד, אז יש להוציא אחד מהם. הוצאת עובד בעל משכורת מקסימאלית. אם יש יותר מאחד, אז יש להוציא אחד מהם. Remove_Min() Remove_Max() (1)O הדפסת המשכורת הממוצעת של העובדים בחברה Average() O(1) הדפסת השלישון של משכורת העובדים בחברה )ראו הגדרה בהמשך( Median3()

n 3 הגדרה: ה- השלישון שווה לערך המופיע במקום ה- לאחר מיון האיברים, כלומר האיבר n 3 בגודלו. עבור 7=n והערכים: 1,2,,,2,15,15,7 השלישון הוא, השלישון הוא 7 עבור 6=n והערכים: 7,,,2,1,1,2 השלישון הוא 7 עבור 6=n והערכים: 7,7,7,,,2,5 דוגמה: הערות: 1. פתרון שבו 7 מתוך, הפעולות ירוצו בזמן הנדרש יקנה 70% מהנקודות 2. כתיבת "לא יודע/יודעת" במקום קשקושים, תקנה 20% מהנקודות פתרון: הפתרון כולל 4 ערימות, מקושרות ביניהן. ערימה H1 היא ערימת מינימום שתחזיק את כל האיברים. ערימה H2 היא ערימת מקסימום שתחזיק את כל האיברים. n 3 האיברים הקטנים ביותר. n 3 האיברים הגדולים ביותר. n ערימה H3 היא ערימת מקסימום שתחזיק את ערימה H4 היא ערימת מינימום שתחזיק את כל איבר יופיע, אם כן, בשלוש ערימות:,H1 H2 ואחת מבין,H3. H4 כל המופעים יהיו מחוברים במצביעים הדדיים. כמו כן נשמור שני משתנים: - n מספר העובדים )האיברים(, ו- - sum סכום כל המשכורות. Init נבנה את 4 הערימות, עם הקשרים ביניהן, ונחשב סכום המשכורות. ב- H3 יהיו n 3 שווה ל- median_key. ב- איברים: כל האיברים שקטנים מ- median_key3, ומספר איברים שערכם O(n) יהיו שאר האיברים. סה"כ זמן: H4. O(1) ב- sum / n נדפיס Average()

Median3() על פי הבנייה, החציון ישב תמיד בשורש ערימה H3. נוכל להדפיסו ב-.O(1) ו- H2. ל- H1 k את האיבר נכניס ב- k. sum ב- 1 ואת n נגדיל את Insert(k) מקרה :1 Median3() : k נכניס את k ל- H4. ייתfן ויש צורך להעביר איבר מ- H4 ל- H3 )במקרה ו- 1 = ). n mod 3 האיבר שיש להעביר, שנסמנו k, הוא האיבר המינימלי ב- H4 והוא נמצא בשורש של H4. נוציא את k מ- H4, ונכניס אותו ל- H3. אגב, k יכנס לשורש של H3 והוא יהיה השלישון החדש של מבנה הנתונים. מקרה 2: Median() : k < מקרה זה דומה למקרה 1. גם הפעם יש צורך בתיקון אם שלישון השתנה, כלומר = 1 3. n mod נעשה זאת ע"י הוצאת האיבר הגדול ביותר ב- H3 )אגב זהו השלישון, שנמצא בשורש(, והכנסתו ל- H4. Remove_Min() הוצאת האיבר המינימלי. נמצא אותו ב-( O(1 בשורש של H2, ובעזרת המצביעים נוכל להוציא אותו מן הערימות האחרות )בדומה ל- / extract_max extract_minשל ערימה( ב-( O(logn. במידת הצורך יש להעביר איבר אחד בין הערימות ל- Insert. בדומה ו- H4 H3 שנוציא את האיבר מהשורש של H1. רק זהה ל-() Remove_Min, Remove_Max() במידת הצורך יש להעביר איבר אחד בין הערימות H3 ו- H4 בדומה ל- Insert. min max median H1 min-heap size: n H2 max-heap size: n H3 max-heap size: n 3 H4 min-heap size: n n 3