Download presentation
Presentation is loading. Please wait.
1
מגיש : שמעון מנור 032389470
2
למה אנו צריכים אלגוריתמים לויסות תנועה? תנועת המכוניות תמיד זורמת מאזור בעל צפיפות תנועה נמוכה לגבוהה... חוקי מרפי ומאחר ואיש לא מעוניין לבלות את זמנו בפקק, יש צורך בצמתים שידעו לווסת את התנועה ולגרום לעומס מינימאלי. בנוסף לא נרצה מערכת מסובכת מדי (בד"כ גם יקרה מדי), אלא מערכת שיכולה באמצעים פשוטים יחסית לתת סטטיסטית תוצאות טובות.
3
מה נעשה בפרויקט? חלק א של הפרויקט כלל כתיבת האלגוריתם לצומת מציאותית בודדת. חלק ב של הפרויקט טיפל ברשת צמתים ע"י שימוש באלגוריתם מבוזר עם תקשורת מינימאלית. האלגוריתם בפרויקט זה מבוסס על: – מסקנות מפרויקט שבוצע ע"י בני צ'רניבסקי לגבי מדיניות מועדפת בצומת. – רעיונות מקורס ברובוטיקה רב סוכנית. – ניסוי וטעייה...
4
למה הכוונה בצומת מציאותית? לרוב אין אפשרות לשרת את כל הנתיבים בו זמנית. – מחייב להגדיר קבוצות נתיבים שאפשר לשרת בו זמנית. זמן התחלת נסיעה וסיום נסיעה של כל מכונית (גם הטובות שבהן ) שונה מאפס ויש להתחשב בו – yellow time penalty.
5
איך נעשה הפרויקט? זהו פרויקט בתוכנה. מהגדרת נושא הפרויקט הכי טבעי היה להשתמש בשפה מונחת עצמים. השפה בה השתמשתי היא 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
6
תיאור כללי של העצמים בפרויקט: מקור: – זה מקור של מכוניות. – המכוניות מגיעות בהתפלגות פואסונית. – הגדרות כלליות:. לאיזה צומת ואיזה נתיב הוא מחובר. סיכוי בחירה בנתיב היציאה. איסוף סטטיסטיקה.
7
תיאור כללי של העצמים בפרויקט: כביש: –זמן השהיה בכביש. –המכוניות שכרגע נעות על הכביש. –הגדרות כלליות: צומת ונתיב אליו הוא מחובר. מכונית: –הכיוון אליו רוצה המכונית לפנות בצומת הקרובה.
8
תיאור כללי של העצמים בפרויקט: צומת: – נתיבים. – רמזורים. – מערכת לאיסוף סטטיסטיקה. – הגדרות כלליות: נתיבים שאפשר לשרת בו זמנית. עדיפויות לנתיבים או לקבוצת נתיבים. זמן ירוק מקסימאלי. ועוד.
9
תיאור כללי של העצמים בפרויקט: רשת צמתים: – צמתים. – כבישים. – מקורות. – חיבוריות ביניהם.
10
האלגוריתם: כל צומת היא גוף עצמאי שמריץ את האלגוריתם. מדיניות האלגוריתם: – אין שירות לקבוצות ריקות. – מימוש זמן ירוק מקסימאלי (מניעת הרעבה,הוגנות). – התחשבות בזמן המתנה בצומת (מניעת הרעבה,הוגנות).
11
האלגוריתם: אופציה למתן עדיפויות לנתיבים,קבוצות. – פוגע בהוגנות אולם לפעמים צריך להגדיר נתיבים עדיפים. Look ahead - אופציה שמאפשרת לצומת לחזות את העומס הצפוי עוד זמן מסוים,ע"י השתמשות בכבישים. – מאפשר יצירת גל ירוק. – הימנעות מ \ צמצום yellow time penalty. מינימום תקשורת: – התקשורת היחידה שישנה היא בין כביש לצומת במצב של look ahead.
12
משתנים והשפעתם: maximal_green_time –קובע תקרה לזמן שירות לנתיב מסוים כאשר ישנם עוד נתיבים שממתינים לשירות. –ערך זה נועד למתן הוגנות ומניעת הרעבה בלבד,מאחר וכל עוד אנו מאפשרים תנועה מקסימאלית דרך הצומת אנו באופטימום מבחינת ניצול הצומת. car_start_time –משך הזמן הדרוש למכונית לעבור מעצירה לנסיעה ולהפך. –ככל שזמן זה יותר ארוך ה"עונש" שנשלם עבור מעבר בין נתיבים הוא גדול יותר.
13
משתנים והשפעתם: look ahead time –משתנה זה קובע את אופק הזמן,שצומת מסוגלת לחזות בו את העומסים הצפויים על הנתיבים. –ע"י כך יכולה הצומת לחזות שתוך זמן מסוים יוצר עומס על נתיב מסוים ולתת לנתיב זה ירוק מראש. –ניסויית הערך האופטימאלי הוא ~yellow light penalty lanes_priority –ניתן להגדיר עדיפות לנתיב מסוים, עדיפות זו תשפיע על התנהגות האלגוריתם. groups_priority –ניתן להגדיר עדיפות לקבוצה מסוימת, עדיפות זו תשפיע על התנהגות האלגוריתם.
14
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).
15
תוצאות מהדמיות – צומת זיו
16
צומת בודדת: כמודל נבחרה צומת זיו,איור סכמתי מצורף בהמשך. במהלך מספר פעמים הגעתי לצומת וביצעתי מדידות של זמני השירות של הרמזורים בצומת. בנוסף הערכתי את העומס בכל נתיב – – כצפוי ישנם נתיבים עמוסים יותר ועמוסים פחות. את העומסים תרגמתי ל מתאימה בהסתברות הפואסונית.
17
בדיקת האלגוריתם: בוצעו מספר ריצות על הצומת, כל ריצה היא של כ 10000 יחידות זמן. – ריצה בתצורת רמזור טיפש על פי זמני הרמזור כפי שנמדדו בצומת זיו. – ריצה ע"י האלגוריתם ללא מתן עדיפות. – ריצה ע"י האלגוריתם עם מתן עדיפות לקבוצות.
18
תוצאות הסימולציות: האלגוריתם ללא עדיפויות אל מול רמזור טיפש - זמני שירות זהים לשל זיו. – ניתן לראות בבירור יתרון לאלגוריתם המוצג,זמני ההמתנה קטנים ב 500%~, והאורך הממוצע של תור קטן ב 500% ~. – יתכן שבכוונון עדין של זמני השרות אפשר להגיע להפרשים יותר קטנים, אולם ברגע שהמקדמים של ההסתברות הפואסונית משתנים (שעות היום,תאונה בכביש מקביל),הכוונונים הללו לא עובדים בעוד האלגוריתם מתמודד אתם יפה.
19
תוצאות מהדמיות- רשת צמתים יצירת גל ירוק ע"י look ahead
20
יצירת גל ירוק ע"י look ahead בהדמיה הבאה יצרתי רשת צמתים שנתיב מרכזי חוצה אותן. רציתי לבדוק האם אפשרות ה look ahead יוצרת גל ירוק. ואכן כפי שניתן לראות אנו מקבלים גל ירוק לנתיב המרכזי וחוסכים למכוניות שנעות עליו את זמני העצירה ותחילת התנועה בכך רמזור. בנוסף העומס מתפזר בצורה יותר אחידה.
21
אבל... העדפה של הנתיב המרכזי יוצרת פגיעה בנתיבים הצדדים.
22
time 210 32320320 with look ahead1.10.945.834.220.799.275.872.18 without look ahead2.121.753.987.175.086.775.810.76 length 210 32320320 with look ahead0.770.291.83.30.542.94.480.69 without look ahead1.140.712.185.082.232.124.370.21
23
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
24
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
25
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
26
תוצאות מהדמיות- צומת חורב כאדם שחולף מדי יום על פני הפקקים בצומת חורב הבחנתי בחוסר תיאום בין צומת 0 לצומת 1 ורציתי לראות האם האלגוריתם שלי יצליח להימנע מחוסר תיאום זה.
27
ואכן גם כאן קיבלתי גל ירוק עם מסקנות זהות למסקנות של הגל הירוק.
28
תוצאות מהדמיות או אין ארוחות חינם.... מהדמיות שביצעתי ניתן לראות כי מתן עדיפות לנתיב כלשהו מטיב עם הנתיב המסוים אולם מרע לכל יתר הנתיבים, וזאת מאחר שההתחשבות בעומס בכל נתיב בנקודת הזמן המיידית + היא אופטימאלית וכל ניסיון להטות את הנתונים הללו פוגע בזמני שירות. השארתי את האופציה הזו באלגוריתם מאחר ולפעמים במציאות יש צורך להגדיר נתיב מועדף גם במחיר של פגיעה ביתר הנתיבים : –נתיב חירום. –נתיב תחבורה ציבורית.
29
מדיניות לא מוצלחת אחד האלגוריתמים שבחנתי היה אלגוריתם חמדן – בכל נקודת זמן הוא בחר את הקבוצה הארוכה ביותר תוך מתן זמן ירוק מינימאלי. – אלגוריתם זה הוכח כמוצלח רק כאשר ה yellow light penalty הוא 0. עבור כל ערך שונה מאפס הוא הראה ביצועים יותר גרועים מהאלגוריתם הנוכחי. – מסקנתי מהנושא היא שמאחר ועל כל החלפה אנו משלמים בענישה של זמן עצירה וזמן התחלה כדי לממש אלגוריתם חמדן מוצלח,יש צורך לשקלל גם את הענישה.
30
מה לא דימיתי בפרויקט? פקקים הנובעים מבני אדם: – מישהו שעצר רגע לקנות פלאפל. – נהגי מוניות שחונים בנתיב של הכביש. פקקים הנובעים מכבישים קצרים.
31
סיכום: ראינו כי שימוש באלגוריתם זמן אמת,מקצר מאד את זמני ההמתנה הממוצעים ואורך התור הממוצע בצומת. לאלגוריתם שכזה יש יכולת לחלק עומסים בצומת גם עבור מצבים שאינם רגילים,או מצבים משתנים לאורך שעות היום( ושאליהם ניתן לעשות אופטימיזציה לזמני הרמזור הטיפש). ע"י תקשורת מינימאלית ניתן לממש look ahead שמאשר יצירת גלים ירוקים בנתיבים שנבחר.
32
סיכום במהלך העבודה השוויתי אלגוריתם טיפש שלא משרת טורים ריקים לאלגוריתם הרגיל. – אלגוריתם זה מציג ביצועים טובים בהרבה משל אלגוריתם טיפש,ועבור צומת שהתנהגותה נחזית הוא יכול להגיע לביצועים כמו של האלגוריתם המוצג. – אולם שינוי של הלחצים בצומת גורם להרעה מיידית בביצועיו. – יתרונו העיקרי הוא בקלות המימוש שלו – פס דריכה בצומת.
33
ומכאן לאן? היה מעניין לבדוק: – פקקים הנובעים מכבישים קצרים. – מכונית שמצהירה מה היעד ומנותבת בהתאם. – שימוש באלגוריתמי ניתוב ברשתות תוך שינויים קלים, כי אם שתי "חבילות" מתנגשות אי אפשר לשדר מחדש....
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.