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

Slides:



Advertisements
Similar presentations
ממיבחניםC שאלות ++.
Advertisements

1 Formal Specifications for Complex Systems (236368) Tutorial #4 Refinement in Z: data refinement; operations refinement; their combinations.
חיפוש בינה מלאכותית אבי רוזנפלד. סוגי חיפוש כלליים UNINFORMED SEARCH -- חיפושים לא מיודעים במרחי מצבים – BFS – DFS INFORMED SEARCH – חיפושים מיודעים –
©Silberschatz, Korth and Sudarshan4.1Database System Concepts סכימה לדוגמא.
מטרות בבניית התנורמטרות בבניית התנור שהתנור יהיה כמה שיותר קרוב לעיגול, אך שיהיה נוח לבנות אותו. לא נאבד את החום בפינות התנור לא לאבד חום בדפנות התנור.
סמינר ברובוטיקה רב סוכנית THE DYNAMICS OF COLLECTIVE SORTING ROBOT-LIKE ANTS AND ANTS-LIKE ROBOTS ROBOT-LIKE ANTS AND ANTS-LIKE ROBOTS J.L. Deneubourg,
Presentation by Dudu Yanay and Elior Malul 1.  מה משותף לכל אלגוריתם המשתמש ב -Bucket Elimination: ◦ נתון מודל הסתברותי ורשת ביסיאנית מתאימה. ◦ נתונה.
Operating Systems, 112 Practical Session 4, Scheduling.
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
משטר דינמי המשך – © Dima Elenbogen :55 חידה שכדאי לעבור עליה: 2011/ho/WCFiles/%D7%97%D7%99%D7%93%D7%94%20%D7%A2%D7%9D%20%D7%91%D7%95%D7%A0%D7%95%D7%A1.doc.
Inverse kinematics (Craig ch.4) ב"ה. Pieper’s solution נתבונן ברובוט עם 6 מפרקי סיבוב כאשר שלושת הצירים של המפרקים האחרונים נחתכים. נקודת החיתוך נתונה.
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
שאלות חזרה לבחינה. שאלה דיסקים אופטיים מסוג WORM (write-once-read-many) משמשים חברות לצורך איחסון כמויות גדולות של מידע באופן קבוע ומבלי שניתן לשנותו.
מטרות הפרויקט הבנת בעיית העקיבה לימוד בעיית העקיבה החד ממדית לימוד השימוש במסנן קלמן לפתרונה שימוש בלוגיקה עמומה לשיפור הפתרון לימוד בעיית העקיבה הדו.
מה החומר למבחן ? כל החומר שנלמד בהרצאות ובתרגולים. לגבי backtracking: לא תידרשו לממש אלגוריתם, אך כן להבין או להשלים מימוש נתון. אחת משאלות המבחן מבוססת.
עבודה סמינריונית Prelude to Ukkonen algorithm ON-LINE CONSTRUCTION OF SUFFIX TREES מגישים : עיד מוחמד טיבי פיראס.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
Map-Reduce Input: a collection of scientific articles on different topics, each marked with a field of science –Mathematics, Computer Science, Biology,
1 Data Structures, CS, TAU, Splay Tree Splay Tree  מימוש של עץ חיפוש בינארי  מטרה לדאוג ל- Amortized Time  פעולה בודדת יכולה לקחת O(N)  אבל כל רצף.
1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations.
בהסתברות לפחות למצא בעיה במודל PAC עבור בהסתברות ε הפונקציה f טועה מודל ONLINE 1. אחרי כל טעות הפונקציה משתפרת 2. מספר הטעיות קטן.
מסדי נתונים תשס " ג 1 תכנון סכמות – אלגוריתם פירוק לתבניות בצורת BCNF מסדי נתונים.
תורת היחסות 100 שנים למהפכה.
ממשק המשתמש שימושיות או בעצם תכליפאניות?. ISO9241 Web usability is the extent to which a web site enables users, in a given context of use, to achieve.
משטר סטטי שערים לוגיים Wired Drives – © Dima Elenbogen 2009, Moshe Malka :29.
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
מנפה שגיאות - DEBUGGER מבוא למדעי המחשב (234114) רועי מלמד
Questions are the Answer Penick&all H ISTORY R ELATIOINSHIPS A PPLICATION S PECULATION E XPLANATION.
ערכים עצמיים בשיטות נומריות. משוואה אופינית X מציין וקטור עצמי מציינת ערך עצמי תואם לוקטור.
מבני בקרה לולאות. שאלה #1 שאלה ב' – תכתוב תוכנה הכותבת את תפריט הבאה Type 1 to find the area of a circle Type 2 to find the circumference of a circle.
כוחות משיכה בין מולקולריים כוחות חלשים כוחות וון דר וולס (Van der Vaals) בנוסף לכוחות החזקים שקיימים בקשרים הכימיים המחזיקים אטומים ביחד קיימים גם כוחות.
טיב פני שטח (טפ"ש) טיב פני שטח- רמת החלקות של המשטח.
הקדמה. תנועת גל בחומר. קריסת הגל. משוואת ברגר (Burgers’ equation) ופתרונה. גלי הלם. סיכום.
אלכסנדר ברנגולץ דואר אלקטרוני: אלכסנדר ברנגולץ דואר אלקטרוני: פעולות מורפולוגיות.
1 Data Structures, CS, TAU, Perfect Hashing בעיה: נתונה קבוצה S של n מפתחות מתחום U השוואה ל- Hash : * טבלה קבועה (Hash רגיל - דינאמי) * רוצים זמן קבוע.
משטר דינמי – © Dima Elenbogen :14. הגדרת cd ו -pd cd - הזמן שעובר בין הרגע שראשון אותות הכניסה יוצא מתחום לוגי עד אשר אות המוצא יוצא מתחום.
מערכים עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר int grade1, grade2, …, grade20; int grade1, grade2, …, grade20;
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א מודל הלמידה מדוגמאות Learning.
עקרון ההכלה וההדחה.
מערכות הפעלה ( אביב 2006) חגית עטיה © 1 סיכום הקורס.
Bus Project Yaniv Stern Rachel Stahl Instructor: Ari Todtfeld.
מבוא למדעי המחשב, סמסטר א ', תשע " א תרגול מס ' 1 נושאים  הכרת הקורס  פסאודו - קוד / אלגוריתם 1.
Markov Decision Processes (MDP) תומר באום Based on ch. 14 in “Probabilistic Robotics” By Thrun et al. ב"הב"ה.
עצים בינאריים - תזכורת דרגת צומת שורש עלה צומת פנימי מרחק בין 2 צמתים
1 Spring Semester 2007, Dept. of Computer Science, Technion Internet Networking recitation #3 Internet Control Message Protocol (ICMP)
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
ניתוח בחינת הבגרות במכניקה ומעבר..... מכניקה – שאלה 3.
Safari On-line books. מה זה ספארי ספארי זו ספריה וירטואלית בנושא מחשבים היא כוללת יותר מ כותרים כל הספרים הם בטקסט מלא ניתן לחפש ספר בנושא מסוים.
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
Practice session 3 תחביר ממשי ( קונקרטי ) ותחביר מופשט ( אבסטרקטי ) שיטות חישוב : Applicative & Normal Evaluation Partial Evaluation.
1 מבוא למדעי המחשב הרצאה 21: Queue, Iterator & Iterable.
Operating Systems Practical Session 3, Scheduling 1.
Practice session 3.  תחביר ממשי ( קונקרטי ) ותחביר מופשט ( אבסטרקטי )  שיטות חישוב : Applicative & Normal Evaluation.
שיאון שחוריMilOSS-il מוטיבציה  python זה קל ו C זה מהיר. למה לא לשלב?  יש כבר קוד קיים ב C. אנחנו רוצים להשתמש בו, ולבסס מעליו קוד חדש ב python.
Data Structures Hanoch Levi and Uri Zwick March 2011 Lecture 3 Dynamic Sets / Dictionaries Binary Search Trees.
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site:
Ad Hoc Network Lifetime Optimization
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
Formal Specifications for Complex Systems (236368) Tutorial #1
תקשורת ומחשוב תרגול 1 IP, Classes and Masks.
SQL בסיסי – הגדרה אינדוקטיבית
פרוקטוז, C6H12O6 , חד-סוכר מיוחד
ממשקים - interfaces איך לאפשר "הורשה מרובה".
מופעי הירח הכינה: ליאת סופר.
בחירת חומר גלם כתב: עמרי שרון.
Shell Scripts בסביבת UNIX
תוכנה 1 תרגול 13 – סיכום.
A* and AO* Search Algorithm
Practical Session 3, Scheduling
Presentation transcript:

מגיש : שמעון מנור

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

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

למה הכוונה בצומת מציאותית? לרוב אין אפשרות לשרת את כל הנתיבים בו זמנית. – מחייב להגדיר קבוצות נתיבים שאפשר לשרת בו זמנית. זמן התחלת נסיעה וסיום נסיעה של כל מכונית (גם הטובות שבהן ) שונה מאפס ויש להתחשב בו – yellow time penalty.

איך נעשה הפרויקט? זהו פרויקט בתוכנה. מהגדרת נושא הפרויקט הכי טבעי היה להשתמש בשפה מונחת עצמים. השפה בה השתמשתי היא C++. C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg. - Bjarne Stroustrup

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

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

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

תיאור כללי של העצמים בפרויקט: רשת צמתים: – צמתים. – כבישים. – מקורות. – חיבוריות ביניהם.

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

האלגוריתם: אופציה למתן עדיפויות לנתיבים,קבוצות. – פוגע בהוגנות אולם לפעמים צריך להגדיר נתיבים עדיפים. Look ahead - אופציה שמאפשרת לצומת לחזות את העומס הצפוי עוד זמן מסוים,ע"י השתמשות בכבישים. – מאפשר יצירת גל ירוק. – הימנעות מ \ צמצום yellow time penalty. מינימום תקשורת: – התקשורת היחידה שישנה היא בין כביש לצומת במצב של look ahead.

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

משתנים והשפעתם: look ahead time –משתנה זה קובע את אופק הזמן,שצומת מסוגלת לחזות בו את העומסים הצפויים על הנתיבים. –ע"י כך יכולה הצומת לחזות שתוך זמן מסוים יוצר עומס על נתיב מסוים ולתת לנתיב זה ירוק מראש. –ניסויית הערך האופטימאלי הוא ~yellow light penalty lanes_priority –ניתן להגדיר עדיפות לנתיב מסוים, עדיפות זו תשפיע על התנהגות האלגוריתם. groups_priority –ניתן להגדיר עדיפות לקבוצה מסוימת, עדיפות זו תשפיע על התנהגות האלגוריתם.

For each group do: Group value =0; For each lane in the selected group do: Lane value=0; Get the lane wait time, – Compare to the group max wait time and update if needed. Get the lane length, –If the policy is WITH_LOOKAHEAD add the look a head value to the lane length. –If the policy is WITH_LANE_PRIORITY multiply the lane value with its priority. –This will be the new lane value. –Add the new lane value to the group value. Add to the group value the group max wait time. If the policy is WITH_GROUP_PRIORITY multiply the group value with the group priority. Compare the calculated group priority with the chosen group, If the calculated value is higher make the current group to be the chosen group. (If the values are the same we don’t change groups).

תוצאות מהדמיות – צומת זיו

צומת בודדת: כמודל נבחרה צומת זיו,איור סכמתי מצורף בהמשך. במהלך מספר פעמים הגעתי לצומת וביצעתי מדידות של זמני השירות של הרמזורים בצומת. בנוסף הערכתי את העומס בכל נתיב – – כצפוי ישנם נתיבים עמוסים יותר ועמוסים פחות. את העומסים תרגמתי ל מתאימה בהסתברות הפואסונית.

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

תוצאות הסימולציות: האלגוריתם ללא עדיפויות אל מול רמזור טיפש - זמני שירות זהים לשל זיו. – ניתן לראות בבירור יתרון לאלגוריתם המוצג,זמני ההמתנה קטנים ב 500%~, והאורך הממוצע של תור קטן ב 500% ~. – יתכן שבכוונון עדין של זמני השרות אפשר להגיע להפרשים יותר קטנים, אולם ברגע שהמקדמים של ההסתברות הפואסונית משתנים (שעות היום,תאונה בכביש מקביל),הכוונונים הללו לא עובדים בעוד האלגוריתם מתמודד אתם יפה.

תוצאות מהדמיות- רשת צמתים יצירת גל ירוק ע"י look ahead

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

אבל... העדפה של הנתיב המרכזי יוצרת פגיעה בנתיבים הצדדים.

time with look ahead without look ahead length with look ahead without look ahead

junction num: 1. current served group is 3. current group is the following lanes: 3 current time is:22 lane[0]: 0 cars lane[1]: 0 cars lane[2]: 0 cars lane[3]: 0 cars junction num: 1. current served group is 2. current group is the following lanes: 2 current time is:23 lane[0]: 0 cars lane[1]: 0 cars lane[2]: 0 cars lane[3]: 0 cars junction num: 1. current served group is 2. current group is the following lanes: 2 current time is:24 lane[0]: 0 cars lane[1]: 0 cars lane[2]: 1 cars lane[3]: 0 cars junction num: 1. current served group is 2. current group is the following lanes: 2 current time is:25 lane[0]: 0 cars lane[1]: 0 cars lane[2]: 1 cars lane[3]: 0 cars Junction 1

current served group is 0. current group is the following lanes: 0 current time is:1 lane[0]: 0 cars lane[1]: 0 cars lane[2]: 1 cars lane[3]: 0 cars junction num: 0. current served group is 2. current group is the following lanes: 2 current time is:2 lane[0]: 0 cars lane[1]: 0 cars lane[2]: 2 cars lane[3]: 0 cars junction num: 0. current served group is 2. current group is the following lanes: 2 current time is:3 lane[0]: 0 cars lane[1]: 0 cars lane[2]: 2 cars lane[3]: 0 cars junction num: 0. current served group is 2. current group is the following lanes: 2 current time is:4 lane[0]: 0 cars lane[1]: 0 cars lane[2]: 1 cars lane[3]: 1 cars Junction 1

junction num: 2. current served group is 3. current group is the following lanes: 3 current time is:29 lane[0]: 0 cars lane[1]: 0 cars lane[2]: 0 cars lane[3]: 0 cars junction num: 2. current served group is 2. current group is the following lanes: 2 current time is:30 lane[0]: 0 cars lane[1]: 0 cars lane[2]: 0 cars lane[3]: 0 cars junction num: 2. current served group is 2. current group is the following lanes: 2 current time is:31 lane[0]: 0 cars lane[1]: 0 cars lane[2]: 0 cars lane[3]: 0 cars junction num: 2. current served group is 2. current group is the following lanes: 2 current time is:32 lane[0]: 0 cars lane[1]: 0 cars lane[2]: 1 cars lane[3]: 1 cars Junction 2

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

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

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

מדיניות לא מוצלחת אחד האלגוריתמים שבחנתי היה אלגוריתם חמדן – בכל נקודת זמן הוא בחר את הקבוצה הארוכה ביותר תוך מתן זמן ירוק מינימאלי. – אלגוריתם זה הוכח כמוצלח רק כאשר ה yellow light penalty הוא 0. עבור כל ערך שונה מאפס הוא הראה ביצועים יותר גרועים מהאלגוריתם הנוכחי. – מסקנתי מהנושא היא שמאחר ועל כל החלפה אנו משלמים בענישה של זמן עצירה וזמן התחלה כדי לממש אלגוריתם חמדן מוצלח,יש צורך לשקלל גם את הענישה.

מה לא דימיתי בפרויקט? פקקים הנובעים מבני אדם: – מישהו שעצר רגע לקנות פלאפל. – נהגי מוניות שחונים בנתיב של הכביש. פקקים הנובעים מכבישים קצרים.

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

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

ומכאן לאן? היה מעניין לבדוק: – פקקים הנובעים מכבישים קצרים. – מכונית שמצהירה מה היעד ומנותבת בהתאם. – שימוש באלגוריתמי ניתוב ברשתות תוך שינויים קלים, כי אם שתי "חבילות" מתנגשות אי אפשר לשדר מחדש....