Presentation is loading. Please wait.

Presentation is loading. Please wait.

Nash Equilibrium in Ad Hoc Networks

Similar presentations


Presentation on theme: "Nash Equilibrium in Ad Hoc Networks"— Presentation transcript:

1 Nash Equilibrium in Ad Hoc Networks
שלום! אני ויטלי. השותף שלי הוא ארסני. את הפרויקט שלנו- עשינו בהנחייתו של ד"ר מיכאל סגל. נושא הפרוייקט- Nash Equilibrium in Ad Hoc Networks Designed by: Aharonov Arseniy, Pisarev Vitaliy Supervised by: Dr. Segal Michael

2 Theoretical Framework Algorithm Results Future Work
Outline Ad Hoc The Problem Theoretical Framework Algorithm Results Future Work אני לא אסביר שוב את טיבן של רשתות אד הוק. אני אציג את הבעיה ואת המסגרת התיאורטית. ארסני ידבר על האלגוריתם והתוצאות. ראשית, אני הולך לדבר בהרחבה על הבעיה שמעסיקה אותנו. אחר כך אני אדון במסגרת התיאורטית שהשתמשנו כדי להגדיר את הבעיה היטב ולבסוף כמה מילים על הרקע התיאורטי של האלגוריתם שכתבנו. ארסני ימחיש את האלגוריתם ויציג רק קמצוץ מהתוצאות שקיבלו.

3 No fixed wire-line backbone No access points
Ad Hoc No fixed wire-line backbone No access points Only wireless hosts in plane Each host is a “router” Each host is a relay Applications Widespread emergence (not only military) אני אפנה את תשמת לבכם ל bullet האחרון. בדרך כלל נהוג לדבר על רשתות אד הוק שמיוצגות ע"י ישות אחת, כמו צבא או ממשלה. אנחנו מדברים על מקרה כבד וכללי יותר.

4 Theoretical Framework Algorithm Results Future Work
Progress Ad Hoc The Problem Theoretical Framework Algorithm Results Future Work הבעיה.

5 General assumption doesn’t work
What’s the Catch? General assumption doesn’t work Different controlling entities No centralized control No cooperation Topology Control Strongly connected network Efficient communication ביישומים אזרחיים, הטרמינלים ברשת מיוצגים ע"י ישויות שונות. כל ישות פועלת רק לטובתה. ולא לטובת הרשת כולה. אין שום יחידת בקרה שיכולה לכפות עליה מדיניות מסוימת. בגלל זה ההנחה שכל הטרמינלים משתפים פעולה אחד עם השני לא עובדת. הבעיה מתבטאת בכל שכבות הרשת. אנחנו מתייחסים לתופעה ב Topology Control בשכבת ה- DLC. זאת השכבה שבה הטרמינלים קובעים את רדיוסי השידור שלהם. מה שאנחנו מחפשים- זה ליצור רשת קשירה חזק עם תקשורת יעילה. במצב זה אנחנו נאלצים להתיר הנחה סמויה- ההנחה כי בבניית הרשת ולאחר מכן, הטרמינלים השונים משתפים פעולה אחד עם השני. ברשתות אזרחיות בעיית המפתח היא חוסר שיתוף פעולה. במילים אחרות- אנוכיות. האנוכיות מתבטאת בכל שכבות התקשורת. אנחנו מתמקדים בתופעה הזאת בשכבת ה- DLC (שכבה 2), השכבה שבה כל טרמינל בוחר את רדיוס השידור שלו ליצרית הרשת. כל קודקוד רוצה למזער את הרדיוס שלו, והוא בחיי לא יגדיל אותו כדי לעזור לקודקוד אחר. אנחנו בעצם נמצאים בתחום Topology Control, ששם מחליטים איזה רדיוס צריך להיות לכל אחד כדי שלרשת תהיה תכונה מסויימת. מטרת הפרויקט שלנו היא לבנות רשת קשירה חזק על המטרה הזו, והבעיה שעולה ממנה אני הולך לדבר. Assumption in current solutions: nodes cooperate in routing and packet forwarding in military and government networks and this is not valid in internet-like networks

6 What’s the Catch? (Cont.)
If a node “thinks” it can reduce its radius – it will act on it How can a Node be sure that he is the only one “that smart”? rB=2 A possibility to deviate! Instability B בואו נסתכל על תסריט כזה: שלוש טרמינלים A,B ו –C. המעגלים הכתומים זה איזורי השידור שלהם. המספרים- המרחקים הפיסיים ביניהם והחיצים- ערוצי התקשורת. מנקודת מבט של C, הוא יכול להקטין את הרדיוס שלו ועדיין להגיע ל- B דרך A. לא הגבלת הכלליות- A יכול להקטין את הרדיוס שלו משיקולים סימטריים. >בלגן< עם הם עושים זאת ביחד, התחנה היחידה שנשארת קשירה חזק היא תחנה B. מסקנות... שלט: אם לקודקודים יש חופש לשנות את הרדיוסים שלהם, במקרה הטוב זה גורם לאי יציבות. מה זה אנוכיות- התבוננות של העולם מנקודת מבט של תועלת אישית בלבד. אז נסתכל על הרשת מנקודת מבט של כל קדקוד בנפרד: קודקוד A רואה שהוא לא צריך להחזיק רדיוס כזה גדול- הרשת תהיה קשירה חזק גם אם יהיה לו רדיוס 1. בלי הגבלת הכלליות- זה נכון גם לגבי קדקוד C. למה שאני יטחן אם מישהו אחר יעשה זאת במקומי?! הם שניהם מקטינים את הרדיוס ורשת קורסת כליל. 2 2 A C 1

7 No deviations – no problems
What to do?... No deviations – no problems Nash Equilibrium B הפתרון: נציע לקודקודים טופולוגיה כזאת שהם לא יוכלו להקטין את הרדיוסים שלהם בלי שהם ינתקו את עצמם. בואו נסתכל על מקרה בו ההשמה ההתחלתית היא כזאת. >קליק<. C- אין לו כבר מה להקטין. ו A- כבר לא יכול לעבור דרך C ולכן נאלץ להישאר עם רדיוס 2. באופן כללי, נרצה למצוא השמת רדיוסים שבה אף קודקוד לא יכול להרוויח ע"י הקטנת הרדיוס שלו- ופעולה כזו תגרום לניתוקו מקודקודים כלשהם. השמה כזאת נקראת Nash Equilibrium. הבעיה נבעה מכך שהקודקודים היו אנוכיים- כל אחד חשב שהוא יכול לרכב על השני ואף אחד לא הביא בחשבון שהשני גם הולך לשנות את ההחלטה שלו. אם היו משתפים פעולה- היו יכולים להסכים שאחד מהם יטחן קצת בשביל השני. היות וזה בלתי אפשרי- אנחנו מעוניינים בהשמת רדיוסים התחלתית שבה לאף קודקוד לא יהיה מניע לשנות את בחירת הרדיוס שלו, אפילו אם יובטח לו מצב שבו הרדיוסים של כל הקודקודים האחרים מוקפאים, כלומר אין מצב שהוא ועוד מישהו אחר משנים תרדיוס- רק הוא. להשמת רדיוסים כזאת קוראים שיווי משקל נאש ולזה ותמיד נשאף להגיע אליו. הבעיה לא מסתיימת כאן! 2 A C 1

8 Equilibriums can have varying costs NP optimization problem
What’s the Catch II? Equilibriums can have varying costs NP optimization problem Best heuristic provides 2*Optimum Our goal – a better result שיווי משקל נאש מבטיח יציבות ולא מבטיח תקשורת יעילה. מחיר של רשת מוגדר כסכום הרדיוסים של כל הטרמינלים. עבור כל פרישה יכולים להיות הרב מצבי שוו"מ, וכפי שכולכם כבר בטח ניחשתם- למצוא את הכי זול זו בעיה NP שלמה.. 5 3 2 4 5 2 =9 3 2 =7

9 Progress Ad Hoc The Problem Theoretical Framework Algorithm Results Future Work

10 Modeling the Problem Game Theory Genetic Algorithms
Players - the terminals Strategies - choice of radii Goal - Strongly Connected Network בשביל להגדיר את הביעה שלנו היטב השתמשנו במושגים מתורת המשחקים. זאת עשינו כי מדובר בתחום שעושה ניתוח לבדיוק סוג המצב שתיארנו, כלומר אינטראקציות בין הרבה ישויות אנוכיות שלא משתפות פעולה. לא אפרט יותר מפאת חסר זמן. מה שיותר חשוב הוא הגישה שלנו לפתרון הבעיה: כמו שאמרתי, אנחנו עומדים לפני בעיית אופטימיזציה שאין לה פתרון דטרמיניסטי יעיל. במקרים כאלה ניתן להשתמש בתהליך הסתברותי לפתרון. אחד הכלים הכי חזקים התומכים בגישה של אופטימיזציה עם גורם הסתברותי הוא אלגוריתמים גנטיים. לאלגוריתמים אלה יש קונספט מאוד פשוט: נמצא הבה מאוד פתרונות לא אופטימלים- ובעזרתם כל הזמן ננסה לייצר משהו יותר טוב. בואו נראה איך זה עובד. Genetic Algorithms Evolution Random factor

11 Population of chromosomes - sub-optimal solutions Fitness function
Mimic Evolution Population of chromosomes - sub-optimal solutions Fitness function Evolution cycles Mutation Reproduction via Crossover Natural Selection – the surviving of the strongest דבר ראשון- אנחנו מייצרים אוכלוסיה התחלתית של פתרונות שנקראים כרומוזומים. לאחר מכן אנחנו מפעילים עליהם את הפעולות גנטיות האלגוריתם הגנטי כולל שיטה להעריך פתרון, כלומר לתת לו ערך מספרי שיציין עד כמה הוא טוב או גרוע יותר מאחרים. מוטציה- כרומוזומים מסוימים,כלומר פתרונות מסוימים- עוברים שינוי אקראי בתכונות שלהם. לאחר מכן נבחרים זוגות מצוינים וכל זוג מחליף מקטעי תכונות שלמים, תוך יצירת זוג כרומוזומים צאצאים עם תכונות מעורבות של ההורים. זה הכול. תהליך הברירה הטבעית עובד באופן הבא: ברגע שהגדרנו היטב שיטה להעריך כל כרומוזום נקבע איזשהו Threshold לפיו מתבצעת החלטה האם הכרומוזום ישתתף בדור הבא או יסיים את קיומו בשלב הנכחי. התהליכים האלה מופעלים באופן מחזורי עד להתכנסות ( שארסני ידבר עליה) ובסוף הכרומוזום עם פונקצית הקשירות הכי טובה נלקח להיות הפלט של האלגוריתם. לפעמים יש צורך לזרז את תהליך ההתכנסות. אנחנו בחרנו בשיטה שלוקחת את אחד הכרומוזומים ומשפרת אותו באופן מלאכותי וע"י כך יוצרת פתרון הרבה יותר טוב מאחרים כבר בשלבים המוקדמים. כך אנחנו מבטיחים קיום של לפחות פריט חזק אחד.

12 Formal Problem Definition
Input: N terminals in plain Goal: assign radii r={r1,…,rN} that satisfies Induced graph (G) is strongly connected r is a Nash Equilibrium The cost C(r)=iriα is minimized לפני שארסני יציג את האלגוריתם, אני אסכם ואגדיר את הבעיה ומטרתה באופן פורמלי ומפורש. הקלט שלנו הוא N נקודות במישור האוקלידי. המטרה: למצוא וקטור רדיוסים אשר יענה על האילוצים האלה: הגרף המושרה יהיה קשיר חזק. אף קודקוד לא יוכל לשנות את הרדיוס שלו, אפילו אם ידע מראש את הבחירות של כל הקדקודים האחרים- כלומר המערכת במצב שיווי משקל נאש. והדרישה שהביאה אותנו לכאן- המחיר הכולל של הרשת צריך להיות מינימלי.

13 Theoretical Framework Algorithm Results Future Work
Progress Ad Hoc The Problem Theoretical Framework Algorithm Results Future Work ארסני ידבר עכשיו על האלגוריתם שכתבנו והמימוש שלו.

14 Representation of a Chromosome
Our Algorithm Representation of a Chromosome Initial population contains N chromosomes Initial assignment r(0) ensures cliques Iterative stages (evolution cycles) C 2 A B C A כמו שוויטלי כבר הסביר – אנחנו ממשים אלגוריתם גנטי. כרומוזומים אצלנו בעצם מהווים השמות רדיוסים של הטרמינלים ברשת אד-חוק. רדיוס של קודקוד מאפיין את הקישוריות שלו/ באלגוריתם שלנו האוכלוסייה מתחילה בגודל N ככמות הקודקודים ברשת. בהתחלה כל הכרומוסומים זהים, כאשר לכל קודקוד יש את הרדיוס המכסימלי האפשרי. כלומר אני מקבלים קליקה. האלגוריתם כולו רץ בשלבים. כאשר כל שלב מהווה שלב אבולוציוני. ובכל שלב כזה מתבצעים התהליכים הגנטיים שוויטלי דיבר עליהם ואני אפרט אותם וממשום באלגוריתם שלנו. 1 1 3 2 1 3 B

15 The Algorithm - Mutation
Randomly chosen candidates Random mutation הפעולה הראשונה היא מוטציה. רנדומאלית בוחרים כרומוזום למוטאציה הפילוג לפיו יבחרו המועמדים למוטאציה יכול לשמש כפרמטר של האלגוריתם כעט בחרנו בפילוג בינומי במועמד באופן אקראי נבחר קודקוד אשר בו תתבצע המוטציה שתגרום לקביעת רדיוס חדש עבור אותו הקודקוד זה אלול לשנות את קישוריות שלו לקודקודים האחרים ואף לנתק בגרף. 2 5 7 9 1 7 3 1 2 1 4 2 4 6 1 5 8

16 The Algorithm - Crossover
Exchange one third of genetic information Population growth בניגוד למוטציה תהליך זה גורם לגידול האוכלוסייה. כלומר ההורים לא נמחקים. 2 5 7 9 1 7 3 1 2 1 1 4 2 6 3 5 2 2 1 5 5 8 1 1

17 Spotting Strongly Connected Components (SCCs)
The Algorithm - Fixing Invalid chromosomes Spotting Strongly Connected Components (SCCs) SCC2 תהליכים שהסברתי לפני זה (מוטציה ו-crossover) יכולים לפגוע בתכונת ה-String Connectivity ולצור בעצם פתרונות לא ואלידיים. אנחנו מחפשים מרכיבים קשורים חזק. ואז בין כל שני מרכיבים אנחנו לוקחים קודקוד מכל אחד ומשלימים את הצלעות החסרות ביניהם על ידי הגדלת הרדיוס. ובזאת אנו מקבלים פתרון מתוקן תקף. כמובן שיש אלטרנטיבה – והיא פשוט מחיקה של הפתרונות כאלה. שימו לב אנחנו לא עושים שם בחירה אופטימאלית כאן כי במלה שני הכרומוזומים האלה לא מהווים פטרונות אופטימאליים אנחנו עושים את המינימום של המינים כדי לייצר פטרונות וואלידיים – אנחנו לא רוצים לייצר כאן פתרונות יקרים לתיקון הכרומוזומים SCC1 SCC3

18 The Algorithm - Acceleration
Convergence catalyst A heuristic satisfying one or more of the constraints Strong connectivity (mandatory) Proximity to Nash Equilibrium Minimum cost אנחנו בעצם כבר תיארנו את כל הפעולות הגינטיות שאנחנו מבצעים בכל שלב אוולוציה אבל קיימת כאן איזו בעיה שאנו מנסים לפטור אלגוריתמים גינטיים מבוססים תהליכים אקראים אשר בסוף מביאים לפטרון אופטימאלי אבל הם איטיים. ואנחנו מעוניינים להכניס לתהליך זה איזה משהוא שיזרז את התהליך ההתכנסות לכן אנחנו משתמשים בתת-אלגוריתם שהוא בעצם זרז תפקיד הזרז באלגוריתם לייצר פיתרון עם ערך כשירות טוב ביחס לאחרים. בחירת הזרז מאוד חשובה וצריכה להיות נבונה כדי באמת להשיג את המטרה וגם לא להרוס את התוצאות של האלגוריתם לדוגמא יוריסטיקה מבוססת MST נותנת קוסט אופטימאלי – טוב בהתחלה אבל מפריע בסוף (מהווה פתרון ביניים לפתרון שלנו)

19 Chromosome evaluation (F – fitness function)
Natural Selection Chromosome evaluation (F – fitness function) Threshold (thr)– average fitness If F>thr – chromosome is deleted The population size is kept in range [N,2N] ברירה טבעית, או- הישרדות החזקים. בכדי לבצע זאת אנחנו מבצעים הערכה של הפתרונות על ידי Fitness פונקציה שלנו. לאחר מכן אנחנו מחשבים ערך threshold שהוא בעצם ממוצע של ערכי ה-fitness ואחר כך כל הכרומוסומים שעוברים את ה-thr נמחקים. באותו הזמן אנחנו מנסים להחזיק את הגודל של האוכלוסייה בגבולות היגוניים. מצד אחד כדי למנוע "פיצוץ האוכלוסין" ומצד שני למנוע את הדילול של בריכת הגנים.

20 Max = A Evaluation C(r) _ 2*C(MST) Fitness function: F(r)=αA+(1-α)
α – weighting coefficient A – approximation factor עכשיו נדבר איך אנחנו מבצעים הערכת הכרומוזום. ככה נראית פונקצית ההערכה. בעצם ניתן לראות שהפונקציה הזו היא שיכלול של שני גורמים כאשר alpha הוא מקדם השקלול – מספר בין 0 ל -1 והוא יכול לשמש כפרמטר שלהלגוריתם. הגורם הראשון הוא Approximation Factor שאני תכף אסביר אותו. והגורם השני הוא בעצם יחס בין משקל הכרומוזום ומשקל העץ הפורס המינימאלי. Approximation Factor: זה מזז אשר מראה עד כמה הכרומוזום הזה קרוב לNASH. כדי לחשב אותו אנחנו לוקחים קודקוד ומתחילים להקטין לו את הרדיוס עד לרגע כשהוא מעבד הקישוריות החזקה. ואז מחשבים את היחס בין הרדיוס התחלתי לבין הרדיוס הזה. אחר כך אנחנו מחזירים את הרדיוס ההתחלתי שלו ועושים את אותו התהליך עם קודקודים האחרים בסוף אנחנו בוחרים ביחס המרבי והוא מהווה את ה Approximation Factor. rcurrent rcritical r1 r2 r3 r4 Max = A

21 Output: the chromosome with the best fitness
Stopping Conditions Static Maximal number of generations Dynamic History of deviations Convergence of deviation fluctuations Whichever comes first Output: the chromosome with the best fitness וכך רץ האלגוריתם שלנו עד לסיומו. כדי שהתהליך יסתיים אנחנו מגדירים את תנאי העצירה באופן הבא. תנאי האצירה מורכבים משני חלקים: הסטאטי והדינאמי. תנאי העצירה הסטטי בעצם מגדיר את כמות המרבית של שלבי האבולוציה כדי להבטיח את סיומו של האלגוריתם בחלק הדינאמי: בשביל כל דור אנחנו מחשבים את הסטייה של ערכיי פונקצית הכשירות (fitness function) אנחנו מנהלים רישום סטיות מספר קבוע של דורות אחורה ברגע שהתנודות של הסטייה נכנסים כולם לתחום מסוים אנחנו מסיימים את ריצת האלגוריתם.

22 C++ using Visual Studio v.6 LEDA package for graph manipulation
Implementation C++ using Visual Studio v.6 LEDA package for graph manipulation Random Number Generation library for GNU Project LEDA – Library of Efficient Data Types and Algorithm

23 Progress Ad Hoc The Problem Theoretical Framework Algorithm Results Future Work

24 Results - Approximation Factor
כאן אנו נציג לכם גרפים עבור כרומוזום הכי טוב בכל דור. בדוגמה זו הסתיים אחרי 19 דורות. ניתן ליראות התנהגות אופיינית של אלגוריתם גנטי, כלומר בהתחלה יש ערכים מאוד לא טובים. בשלב מסויים יש נפילה תלולה שבדרך כלל מביאה להתכנסות

25 Results – Best Fitness ניתן לראות התנהגות דומה גם עבור Fitness function.

26 Results – Visual Output

27 Progress Ad Hoc The Problem Theoretical Framework Algorithm Results Future Work

28 Future Work Distributed implementation Dynamic topology support

29 Thank You!


Download ppt "Nash Equilibrium in Ad Hoc Networks"

Similar presentations


Ads by Google