L14-Revision-4print

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

שיעור 1

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

Microsoft Word - tutorial Dynamic Programming _Jun_-05.doc

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

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

Microsoft Word - ExamA_Final_Solution.docx

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

Algorithms Tirgul 1

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

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

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

מקביליות

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

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

מקביליות

מצגת של PowerPoint

Microsoft Word - SDAROT 806 PITRONOT.doc

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

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

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

Microsoft Word - Questions Booklet Spring 2009

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

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

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

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

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

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

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

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

שעור 6

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

234114

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

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

<4D F736F F D20F4F2E5ECE5FA20EEE5EEF6E0E5FA20312E646F63>

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

פייתון

תרגול 1

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

מצגת של PowerPoint

PRESENTATION NAME

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

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

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

Tutorial 11

PowerPoint Presentation

תרגול 1

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

Slide 1

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

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

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

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

עמוד 1 מתוך 5 יוחאי אלדור, סטטיסטיקאי סטטיסטיקה תיאורית + לוחות שכיחות בדידים/רציפים בגדול מקצוע הסטטיסטיקה נחלק ל- 2 תחומים עיקריים- סטט

<4D F736F F D20EEF9E5E5E0E5FA20E3E9F4F8F0F6E9E0ECE9E5FA2E646F63>

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

Slide 1

אוניברסיטת תל אביב - בית הספר למדעי המחשב מבוא מורחב למדעי המחשב, אביב 2019 תרגיל בית מספר - 2 להגשה עד 02/04/2019 בשעה 23:55 קיראו בעיון את הנחיות הע

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

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

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

פקולטה לחינוך מנהל סטודנטים Beit Berl College الكلية االكاديمية بيت بيرل 20/06/2016 י"ד/סיון/תשע"ו ייעוץ וירטואלי הרכבת מערכת )רישום לקורסים( באמצעות

יחידה 8: שיקוף, הרחבה וכיווץ של פרבולות שיעור 1. שיקוף בציר x תלמידים התבקשו לשרטט פרבולה שכל הערכים שלה שליליים. y יואב ש רטט כך: y תומר אמר: אי-אפשר

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

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

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

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

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

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

צירים סמויים - דגם סוס SOSS צירים 4 CS55555 CS5552 CS5554 CS55505 מק"ט דגם 34.93mm 28.58mm 25.40mm 19.05mm מידה A 26.99mm 22.23mm 18.2

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

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

Microsoft Word - 01 difernziali razionalit

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

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

הוספת קישור לאתר אינטרנט תוכן ממשק בדיקת מטלות...3 איחוד אתרי קורסים...5 סל מחזור... 7 חידושים בפעילויות...8 תצורת קורס: כפתורים... 9 פורומים...10 שיפ

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

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

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

regular_expression_examples

תרגול מס' 1

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

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

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

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

מבוא ללוגיקה ולתורת הקבוצות

<4D F736F F D20FAF8E2E5EC20E0ECE2E1F8E420EEF2E5F8E D F9E0ECE5FA2E646F63>

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

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

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

<4D F736F F D20F4E9E6E9F7E420FAF8E2E5ED20ECF2E1F8E9FA20E4E2E4E420F1E5F4E9FA20496C616E2E646F63>

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

! 1! משוואות מסדר ראשו! (הפרדת משתני*, הומוגנית, לינארית) xyy = 1 x y xy 2 = 2xy 2 מצא את הפתרו' הכללי: x y y = 3 א) y ג) ב) ד) y tan x = y (1 ( x+ y

67865 כלים מתמטיים 7 בינואר 2014 מרצה: מיכאל בן אור מתרגל: צור לוריא איני לוקחת אחריות על מה שכתוב כאן, so tread lightly אין המרצה קשור לסיכום זה בשום

Microsoft Word - 28

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

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

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

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

תמליל:

מבני נתונים Data Structures הרצאת חזרה הרצאת חזרה ארז פטרנק Geiger & Wajc, 22 X

הקורס תוכנית מבני נתונים בסיסיים וסימונים אסימפטוטיים מערכים ורשימות מקושרות עצים ועצי חיפוש AVL עצי עצי 2-3 עצי הרחבה?..2.3.4.5 דרגות.6 רשימות דילוגים סיבוכיות משוערכת cs, Technion 2.7.8.9...2.3.4 טבלאות ערבול אחזקת קבוצות זרות מיון מיון טיפול במחרוזות גרפים איסוף אשפה הרצאת חזרה קושי? קופסאות שחורות?

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

חלק ראשון חזרה על נושאי הקורס cs, Technion 4

מבני נתונים ומימושים שלהם Insert(x) Find(x) Remove(x) O(n) O(log n) O(n) מילון: מערכים O() O(n) רשימות O(n) O(h) עצי חיפוש בינאריים עצי AVL O(log n) עצי +B בפרט עצי 2-3 רשימות דילוגים *O() טבלאות ערבול **O( x ) Trie *עבור טבלאות ערבול כל החסמים הם בהנחת קלט סביר. **עבור Trie מדובר על מחרוזות, x ו- אורך המחרוזת.x cs, Technion 5

מבני נתונים ומימושים שלהם Makeset(i) Union(p, q) Find(i) O(n) O() :Union-Find מערכים O() רשימות O(n) O() O log n משוערך O() O() O(h) רשימות + מערכים, עם איחוד לפי גודל עצים הפוכים O() O(log n) עצים הפוכים עם איחוד לפי גודל O(log n) משוערך עצים הפוכים עם איחוד לפי גודל וכיווץ מסלולים cs, Technion 6

מבני נתונים ומימושים שלהם ערימת מינימום (תור עדיפויות): Init(x,, x 3 ), FindMin( ), Insert(x), DelMin( ), DecKey(p, x). מימושים: עץ כמעט שלם המקיים את כלל הערימה, מיוצג באמצעות: מערך עץ ב- 2 המימושים הנ"ל סיבוכיות הפעולות היא: Init(x,,x 3 ) FindMin( ) O(n) O() Insert(x) DelMin( ) O(log n) DecKey(p,x) cs, Technion 7

מבני נתונים ומימושים שלהם עץ סיומות\עץ סיומות מוכלל: ) 3.Init(s,,s למבנה זה לא הגדרנו פעולות נוספות, אך צייננו אלגוריתם "קופסא שחורה" שבונה 3 את המבנה בזמן ( 7 )O 78 s והצגנו שימושים רבים למבנה זה, רובן נסובו סביב בעיות שקשורות לתתי מחרוזות: מציאת תת מחרוזת. מציאת מספר מופעי תת מחרוזת. מציאת תת מחרוזת משותפת ארוכה ביותר. q q q cs, Technion 8

מבני נתונים ומימושים שלהם Exists(i, j) O() Neighbors(i) O(n) גרפים: מטריצת סמיכויות O(deg (i)) רשימת סמיכויות ((i) O(deg בנוסף, ראינו כיצד להשתמש בייצוגים אלו לגרפים ובמבני נתונים אחרים בכדי לפתור בעיות בסיסיות בגרפים, כגון: q מיון טופולוגי. q חישוב עץ פורש מינימום. q חישוב מסלול ארוך ביותר בגרף מכוון ללא מעגלים (בתרגול). cs, Technion 9

שמורות מבנה Invariants במהלך לפעולה הקורס ראינו כיצד הבטחת קיום תכונות מסוימות של מבנים בין (שמורות) הועילו לנו במימוש פעולות המבנים, ואף פעולות נוספות. פעולה אחת הדוגמאות הראשונות של שמורה שראינו היא שמורת עץ החיפוש הבינארי: בעץ חיפוש בינארי לכל צומת יש לכל היותר 2 בנים, ולכל צומת עם מפתח x כל הצמתים בתת העץ השמאלי של הצומת קטנים מ- x ואלו בימני גדולים מ- x. x שמורה זו אפשרה חיפוש יעיל. < x > x למעשה, כל התכונות שדרשנו מהמבנים שלנו היו שמורות של המבנים. בעת תיאור שמורה, היה עלינו להסביר איך משתמשים בשמורה וכיצד מתחזקים אותה. בשקפים הבאים נזכיר כמה דוגמאות בולטות שחזרו על עצמן במהלך הקורס. cs, Technion

שמורות מבנה איזון מבנים במהלך הקורס מימשנו מבנים רבים באמצעות עצים. במימושים אלו פעולות בסיסיות דרשו: לרוב סיור מהשורש לצומת (או מצומת לשורש). זמן ()O רמה לכל במסלול. h הוא סה"כ O(h) כאשר זמן, גובה העץ. בהמשך, ראינו כיצד להבטיח כי גובה העץ יהיה חסום (n h, = O(log מבלי לפגוע בזמן הריצה בכל רמה של הפעולות הבסיסיות. ע"י דוגמאות לאיזון מבנים: במימושי מילונים למיניהם באמצעות (עצי עצים רשימות,B+,AVL דילוגים).. ב- Find Union ממומש באמצעות עצים הפוכים..2 cs, Technion

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

מידע נוסף בצמתים דוגמאות במילונים מבוססי עצים: שמירת מספר הצמתים\עלים בתת\י העץ בכדי:..Select(k) למצוא את האיבר ה- k בגודלו במילון q.rank(x) למצוא את מספרו הסידורי של איבר x במילון: q 7 4 2 3 4 7 5 2 8 סכום האיברים עץ בתת כדי לחשב סכום האיברים עד לאיבר מסוים..2 סכום האיברים הזוגיים בתת העץ כדי לחשב סכומים אלו בכל העץ (בתרגול).3 cs, Technion 3

מידע נוסף בצמתים דוגמאות (המשך) בעצי סיומות (גם מוכללים),s,s A סיומות בעץ מוכלל של שתי מחרוזות הוא האם פנימי צומת לכל סימון. מייצג תת מחרוזת של s, של s, A או של שתיהן, בכדי: xa,2 bxa$ b $ $ A a,2 2,2 a$ $ $ A 2 52 2 עץ סיומות מוכלל של המחרוזות ba ו- xabxa עם המידע הנ"ל $ מציאת תת מחרוזת משותפת ארוכה ביותר. q - שמירת c C המיקום תת של הראשון המחרוזת המסלול ע"י המיוצגת.2 ועד מהשורש v, למטרת: מציאת מופע ראשון של מחרוזת בטקסט. q דחיסת q אינפורמציה. cs, Technion 4

מידע נוסף בצמתים עדכון\חישוב נשים לב שלרוב תיארנו מידע כך שלכל נוסף צומת v המידע של ניתן היה v לחישוב לפי המידע שבבניו, ובזמן שתלוי בניו. במספר רק עובדה זו אפשרה לנו:.Postorder לחשב את המידע הנוסף לכל הצמתים ע"י סיור. לעדכן את המידע הנוסף ביעילות לאחר עדכוני המבנה (הכנסה\הוצאה וכו')..2 הצמתים עבורם השתנה המידע הנוסף נמצאים על מסלול החיפוש. עדכון המידע הנוסף מתבצע מתחתית מסלול העדכון כלפי מעלה. מבטיח זה דבר צומת כל עדכון שבזמן במסלול התיקון, המידע אחד בכל הנוסף מבניו תקין. cs, Technion 5

בעיות בסיסיות במהלך הקורס במספר דננו בעיות בסיסיות, ביניהן: בעית המיון:.QuickSort.HeapSort חסמים תחתונים למיון...2.3 אלגוריתמים יעילים בהם למקרים ידוע מידע נוסף על הקלט..4 מציאת האיבר ה- k בגודלו במערך: לינארי בזמן בממוצע הסתברותי.. Select (חציון החציונים). לינארי בזמן במקרה הגרוע, באמצעות אלגוריתם.2 cs, Technion 6

סיבוכיות בתחילת מושג על חזרנו הקורס הסיבוכיות האסימפטוטית, מושג את לפרמל בכדי היעילות (בזמן ובמקום) של פתרונות לבעיות. תזכורת להגדרה הנפוצה בקורס: תהיינא פונקציות חיוביות. נאמר כי f n = O(g n ) f n,g(n).f n c g(n) מתקיים n K n אם קיימים קבועים ו- < n K כך שלכל < c למה הגדרות כאלו מעניינות אותנו? תשובה: הן מאפשרות להתעלם מקבועים וגם נותנות הבטחות על קלטים ההולכים וגדלים. cs, Technion 7

סיבוכיות (המשך) בהמשך הקורס דיברנו על סיבוכיות מעבר לסיבוכיות המקרה הגרוע. על: דיברנו סיבוכיות בממוצע על הקלט ממוצע על פני כל הקלטים האפשריים.. גובה עצי חיפוש בינאריים. טבלאות ערבול (פיזור אחיד). - סיבוכיות בממוצע הסתברותי ממוצע על פני הרנדומיות של האלגוריתם..2 רשימות דילוגים. טבלאות ערבול (ערבול אוניברסלי). אלגוריתמי מיון\מציאת חציון רנדומיים. 3. סיבוכיות משוערכת סיבוכיות המקרה הגרוע של סדרת פעולות. מערכים דינמיים וטבלאות ערבול (בתירגולים). מימושי.Union Find cs, Technion 8

סיבוכיות משוערכת שיטות הוכחה שראינו. שיטת הצבירה הוכחת חסם באופן על סך ישיר זמן הריצה. 2. שיטת התשלומים בפעולה ה- i נקצה. a 7 ההפרש בין המחיר המעשי t 7 ומה שאנו משלמים a 7 נצבר בבנק. אם חשבון הבנק לא נכנס לחוב, הרי שמה ששילמנו הוא חסם על עלות הפעולות. 3. שיטת הפוטנציאל T הגדרת ערך מספרי של מבנה הנתונים בשלב ה- i, הפוטנציאל φ. 7 הגדרת המחיר המשוערך להיות.a 7 = t 7 + φ 7 φ 7R T אם סוכמים על פני m פעולות מקבלים 78 a 7 = 78 t 7 + φ T φ K. הרעיון: נרצה להתייחס לפוטנציאל שקטן הרבה במהלך פעולות יקרות ולא גדל יותר מדי במהלך פעולות זולות. cs, Technion 9

חלק שני תרגילים cs, Technion 2

חיפוש כל האיברים ב- Union-Find מועד א חורף מבנה נתון (UF) 29-2 Union-Find ממוספרים:,n.,2, איברים רצף ע"י בשלב ידוע של לא כלשהו אשר ממומש אלה מחולקים פעולות זה מריצים את האלגוריתם הבא:.Union ע"י לקבוצות עצים זרות הפוכים. איברי המבנה כלשהן, אשר התקבלו for(int i = ; i n; i++) { Find(i) } כאשר פעולת Find מבצעת הוכיחו כי האלגוריתם הנ"ל כיווץ מסלולים. רץ בזמן O(n) במקרה הגרוע. איברים p 2 2 7 9 cs, Technion 2 4 5 3 23 5 2 קבוצות n n

חיפוש כל האיברים ב- Union-Find (המשך) אבחנות: אם בנוסף לכיווץ המסלולים היה נתון כי מתבצע איחוד גודל: לפי cs, Technion 22 משורש איבר כל מרחק. הוא קבוצתו.O(log n) O(n log n).2 אנחנו וזאת זמן על הסיבוכיות המשוערכת של כיוון ופעולות לבצע שניתן ריצת האלגוריתם. היותר לכל במימוש UF פעולות לכן זה היא להראות ניתן.O(log n) n פעולות Union רק Find פחות מ- 2n פעולות זמן לכן ובפרט הריצה מקלות הכולל Find פעולות על עוקבות, Union-Find מאתחול המבנה. פעולות כל של זמן הריצה של האלגוריתם הנ"ל היא מתבקשים ללא תלות להראות חסם באופן האיחודים. יותר הדוק המבנה של for(int i = ; i n; i++) { Find(i) } שמשנות ניתן מאתחולו להניח הן את של חסם המבנה, שהתבצעו,O(n log n).o(n log n) עבור O(n) האלגוריתם הנ"ל,

חיפוש כל האיברים ב- Union-Find (המשך) החסם, את שנוכיח לפני ניזכר בפעולת איחודים עם חיפוש וננסה הפוך, בעץ לקבל אינטואיציה נכון. זה למה חסם 3 23 5 i 9 9 4 5 Find(i) 9 9 4 5 3 23 5 i נגדיר שני מושגים שיעזרו לנו בהוכחה: קשת שורש: קשת בין בן של שורש לשורש. קשת פנימית: קשת שאינה קשת שורש. cs, Technion 23

חיפוש כל האיברים ב- Union-Find (המשך) הוכחה בשיטת הצבירה: הפעולה Find(i) מורכבת מפעולות שעלותן לינארית באורך קבוצת i. כלומר העלות הכוללת לינארית במספר הקשתות בהן המסלול מ -i לשורש נבקר בסיורים. צומת לכל במהלך נבקר Find(i) בקשת שורש אחת. i. קשת פנימית מופיעה כחלק ממסלול חיפוש בדיוק פעם אחת..2.O(n) 2n = O(n) נבקר לכן בלכל היותר קשתות במהלך האלגוריתם ריצתו וזמן 3 23 5 i 9 9 4 5 Find(i) 9 9 4 5 3 23 5 i cs, Technion 24

חיפוש כל האיברים ב- Union-Find (המשך) או לקשת הוכחה באמצעות שיטת החיובים: בתוכנית התשלומים, נשלם מראש (בפעולות יצירה ואיחוד) על ה- find : נקצה לכל צומת וקשת בעצים ההפוכים. 2 כיוון שמדובר ביער, מספר הקשתות קטן מ- n. זמן משוערך לכל makeset() או union() הוא לכל היותר 4: 2 לצומת שנוצרת, ו- 2 לפעולה עצמה. סה כ ()O. נראה שתשלום זה ישלם על כלל הפעולות מבלי להיכנס לחוב. מכאן זמן הריצה הכולל הוא.O(n) 3 23 5 i 9 9 4 5 Find(i) 9 9 4 5 2 23 3 2 5 2 i 2 cs, Technion 25

חיפוש כל האיברים ב- Union-Find (המשך) במהלך פעולת Find(i) הגוררת עליה במעלה מסלול קשתות: k באורך cs, Technion 26 בכדי המחיר המעשי הוא לשלם מחיר זה:. 2k כל k הקשתות הפנימיות ישלמו את 2 ה- שקיבלו i הצומת הוכחה שהבנק ישלם את נכנס לא 2 ה- הנותרים. כל קשת צומת לכל לחוב: פנימית מופיעה נבצע i Find(i) דוגמא: יהיה פעולה בכל לכן פעם אחת בדיוק לנו מספיק בחיפוש פעם אחת. בבנק כסף 9 r 4 5 3 2 23 2 5 2 i 2 Find(v K ) (ואז הופכת לשלם על הפעולה. בפעולה הראשונה. לקשת שורש).

חיפוש כל האיברים ב- Union-Find (המשך) הוכחה בשיטת הפוטנציאל: הפוטנציאל יהיה פעמיים מספר הקשתות הפנימיות. נבחין:. φ K 2n. φ 3 = ב-(.2(k i הפעולה ה- :Find(i) עבור מסלול חיפוש באורך k קשתות: מחיר הפעולה המעשי הוא.t 7 = 2k k קשתות פנימיות מוחלפות בקשתות שורש והפוטנציאל יורד = 2 k.a 7 = t 7 + φ 7 φ 7R = 2k 2 מכאן נקבל 3 n הפעולות ונקבל:. 2n 78 a 7 = 78 t 7 + φ 3 φ K 3 על פני נסכום 3 78 נעביר אגפים. 4n 2n + φ K t 7 ונקבל cs, Technion 27

נקודות לקחת מהוכחת הפוטנציאל: כפי שצייננו קודם, דרך מבטיחה להגדיר פוטנציאל שיעזור להוכיח חסמים על הסיבוכיות המשוערכת של פעולה היא ע"י בחירת פוטנציאל להיות ערך מספרי של מבנה הנתונים שלא גדל יותר מדי בפעולות הקלות וצונח בפעולות היקרות. במקרה הזה לקחנו את מספר הקשתות הפנימיות. במהלך הקורס ראינו מספר דוגמאות נוספות: בMultiPop מספר האיברים במחסנית. - במונה הבינארי מספר ה- םי- במונה. - במערכים דינאמיים (בתרגול) מרחק מספר האיברים ממחצית גודל המערך. - cs, Technion 28

מילון נוסף למספרים מועד א אביב + 2 תוספת סעיף א דרוש מבנה נתונים, אשר מחזיק מספרים שלמים חיוביים הנתונים ותומך בפעולות הבאות: בבסיס בינארי,.O().O(log x) אתחול מבנה ריק. Init() הכנס את המספר x למבנה. Insert(x) Z נמצא במבנה. x החזר האם Find(x) Delete(x) מחק את המספר x מהמבנה. רמז: שימו לב שהסיבוכיות הנדרשת לכל פעולה אינה תלויה במספר האיברים במבנה. cs, Technion 29

מילון נוסף למספרים פתרון סעיף א ב-( x log A x + = O(log,x כדי לייצג מספר שלם להשתמש די ביטים. במלים אחרות, די ב-( x O(log אותיות מעל הא"ב {,} = Σ. נשתמש ב- Trie של המספרים מיוצגים כמחרוזות בינאריות מה- MSB ל- LSB. פעולות הכנסה, הוצאה וחיפוש של מחרוזת בTrie s לוקחות $ $ זמן. בפתרוננו מספר מיוצג כמחרוזת בינארית x O( s ) באורך עומד זה (x.o(log מכאן שפתרון בדרישות התרגיל. נקודות לקחת מפתרון זה: ייצוג הנתונים יכול להיות חלק גדול מפתרון בעיה. $ $ במקרה זה, ברגע שחשבנו לייצג כל מספר ע"י מחרוזת שהיא הייצוג הבינארי שלו, התרגיל נפתר כמעט מיידית. cs, Technion 3

מילון נוסף למספרים.x T`a סעיף נוסף הוסיפו למבנה מסעיף א' את הפונקציונליות הבאה: Max() מחזיר את המספר הגדול ביותר במבנה, סיבוכיות זמן: ) T`a O(log x במקרה הגרוע. תארו אילו שינויים לעשות יש למימוש שהצעתם לתמוך כדי בסעיף א בפעולה. ניסיון ראשון: בתרגול ראינו כיצד למצוא את שתלוי רק באורכה בכל צומת המחרוזת הגדולה ביותר לקסיקוגרפית בTrie יש לפנות בקשת שמייצגת אות גדולה ביותר. בזמן לצערנו, לא את מחרוזת זו אנו מבקשים. למשל, המחרוזת גדולה לקסיקוגרפית מהמחרוזת, אבל זה אינו הסדר בין המספרים שמחרוזות אלו מייצגים:. A = 3 < 6 = A cs, Technion 3

מילון נוסף למספרים ניסיון שני פתרון לסעיף הנוסף: אבחנה: בין שני מספרים, מספר "ארוך יותר" (בעל יותר ספרות) הוא גדול בין מספרים מאותו אורך, המספר הגדול יותר לקסיקוגרפית הוא הגדול יותר. יותר. 6 5 רעיון פתרון: נשמור בכל צומת את גובהו. שימוש במידע הנוסף: נתחיל מהשורש ועד שנגיע לעלה: נפנה לבן הגבוה יותר. במקרה של שוויון בגבהי הבנים, $ 4 3 2 $. נמשיך בקשת שמייצגת ריצה: זמן ) T`a.O(log x $ $ cs, Technion 32

מילון נוסף למספרים 6 עדכון המידע הנוסף בהכנסות\הוצאות: בעת הכנסה או הוצאה של מספר מהמבנה, ייתכן וגבהי צמתים השתנו. צמתים אלו נמצאים במסלול החיפוש. 5 גובה צומת הוא המקסימלי מבין גבהי בניו, ועוד. מכאן שגבהי הצמתים ניתנים לעדכון ב-( O( בכל רמה. סה"כ x) O(log אחרי הכנסת\הוצאת.x $ 4 $ נקודות לקחת מפתרון זה: 3 2 עוד דוגמה לתועלת הוספת מידע נוסף בצמתים. בעת הגדרת מידע נוסף, יש: לתאר מפורשות את המידע הנוסף בכל צומת. $ $ להסביר כיצד להשתמש במידע הנוסף. לתאר כיצד לעדכן את המידע הנוסף. cs, Technion 33

מילון נוסף למספרים סעיף ב הוסיפו למבנה מהסעיף הקודם את הפעולה הבאה:.x m (mod 2 i ) המקיימים x החזר את מספר האיברים CountMod(m,d) m,d מספרים שלמים. סיבוכיות זמן: O(d) במקרה הגרוע. 4 2 $ $ 2 $ $ פתרון לסעיף ב נחזיק Trie נוסף של המספרים, מיוצגים מה- LSB ל- MSB. בכל צומת נשמור מידע נוסף מספר העלים בתת העץ. שימוש במידע הנוסף: בכדי לענות על :CountMod(m,d) נבדוק כמה מחרוזות מתחילות ב- d הביטים ה- LSB של m. זמן:.O(d) cs, Technion 34

מילון נוסף למספרים פתרון לסעיף ב (המשך) עדכון המידע הנוסף בהכנסות\הוצאות: זהה לאופן בו עדכננו את גבהי הצמתים בסעיף הקודם, ומכאן זמן (x.o(log ההבדל היחיד הוא בנוסחה לפיה מעדכנים את המידע הנוסף בצמתים על מסלול החיפוש: מספר העלים בתת העץ של צומת הוא סכום מספר העלים בתתי העצים של בניו. נקודות לקחת מפתרון זה: ושימוש נכון ייצוג שוב, נוסף במידע בצמתים מאפשר פתרון שאלה נוספת. הוספת מבנה למבנה נוסף בו השתמשתם עשויה כה עד להקל על הפתרון. cs, Technion 35