שאלת מבחן באלגוריתמים - האוניברסיטה הפתוחה 2020 - זרימה ברשתות
במסגרת הפקה של סרט קולנוע עלינו ללהק שחקנים מבין השחקנים , ולבחור משקיעים מבין המשקיעים . ידוע לנו השכר המדויק של שחקן (לכל ), וסכום ההשקעה המדויק של משקיע (לכל ). עבור כל זוג של שחקן-משקיע ידוע לנו האם הם בקשר של "נאמנות": שחקן ישתתף בסרט רק אם כל המשקיעים להם הוא נאמן ישתתפו במימון, ובדומה, משקיע ישקיע בסרט רק אם כל השחקנים להם הוא נאמן ילוהקו למשחק. (מעבר לכך אין אילוצים נוספים, ובפרט, איננו מחויבים ללהק מספר מסוים של שחקנים, או לגייס מספר מסוים של משקיעים). בחירה חוקית של שחקנים ומשקיעים הינה בחירה שמקיימת את אילוצי הנאמנות. בבעיית ההפקה מחפשים בחירה חוקית כך שיתקבל רווח מרבי, כשהרווח הינו סך כל המימון מן המשקיעים פחות סך כל המשכורות לשחקנים.
בשאלה זו נפתור את בעיית ההפקה בעזרת בנייה של רשת זרימה, כך שהזרימה המרבית ברשת תגדיר את הפתרון האופטימלי לבעיית ההפקה. מעבר לקדקודי המקור והיעד, יהיו ברשת קדקוד יחיד לכל שחקן, וקדקוד יחיד לכל משקיע. המפתח לפתרון נכון הינו התשובה לשאלה הבאה: אילו צלעות/קיבול ות יש להגדיר בין קדקודי-משקיעים לבין קדקודי-שחקנים ברשת, כך שזרימה מרבית תגדיר (בפרט) פתרון חוקי לבעיית ההפקה. ענו על 3 הסעיפים הבאים. שימו לב: סעיף (ג) מופיע בעמוד הבא. (הנכם רשאים להניח שהרווח המרבי חיובי ממש. אין צורך לנתח יעילות).
(א) מהן הצלעות ברשת ומהן הקיבולות שלהן?
(ב) מדוע זרימה מרבית ברשת מגדירה בחירה חוקית של שחקנים ומשקיעים?
(ג) הוכיחו שזרימה מרבית ברשת מגדירה בחירה אופטימלית של שחקנים ומשקיעים.
בשאלה זו נפתור את בעיית ההפקה בעזרת בנייה של רשת זרימה, כך שהזרימה המרבית ברשת תגדיר את הפתרון האופטימלי לבעיית ההפקה. מעבר לקדקודי המקור והיעד, יהיו ברשת קדקוד יחיד לכל שחקן, וקדקוד יחיד לכל משקיע. המפתח לפתרון נכון הינו התשובה לשאלה הבאה: אילו צלעות/קיבול ות יש להגדיר בין קדקודי-משקיעים לבין קדקודי-שחקנים ברשת, כך שזרימה מרבית תגדיר (בפרט) פתרון חוקי לבעיית ההפקה. ענו על 3 הסעיפים הבאים. שימו לב: סעיף (ג) מופיע בעמוד הבא. (הנכם רשאים להניח שהרווח המרבי חיובי ממש. אין צורך לנתח יעילות).
(א) מהן הצלעות ברשת ומהן הקיבולות שלהן?
(ב) מדוע זרימה מרבית ברשת מגדירה בחירה חוקית של שחקנים ומשקיעים?
(ג) הוכיחו שזרימה מרבית ברשת מגדירה בחירה אופטימלית של שחקנים ומשקיעים.
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
האוניברסיטה הפתוחהמועד ב2020סמסטר א
★★★★★
זרימה ברשתותרדוקציההוכחת נכונות
ניתן למדל את בעיית מקסום הרווח כבעיית חתך מינימלי ברשת זרימה. חשבו כיצד לייצג את הרווחים והעלויות כקיבולים של צלעות שייחתכו, ואת האילוצים כצלעות שלא ניתן לחתוך.
נבנה רשת זרימה באופן הבא, אשר פתרון בעיית הזרימה המרבית בה יפתור את בעיית ההפקה.
(א) בניית הרשת: צלעות וקיבולות
הרשת תכלול את הרכיבים הבאים:
1. קודקודים: קודקוד מקור וקודקוד בור . לכל שחקן (עבור ) נוסיף קודקוד . לכל משקיע (עבור ) נוסיף קודקוד .
2. צלעות רווח (מהמקור): לכל משקיע , נוסיף צלע עם קיבול . צלעות אלו מייצגות את ההשקעה הפוטנציאלית של כל משקיע.
3. צלעות עלות (אל הבור): לכל שחקן , נוסיף צלע עם קיבול . צלעות אלו מייצגות את השכר שיש לשלם לכל שחקן אם ילוהק.
4. צלעות אילוצים (בין שחקנים למשקיעים): צלעות אלו יאכפו את אילוצי הנאמנות. הקיבול שלהן יהיה אינסופי () כדי למנוע מצב שבו בחירה אינה חוקית.
* אם שחקן נאמן למשקיע , נוסיף צלע עם קיבול . צלע זו מבטיחה שאם נבחר בשחקן , נהיה חייבים לבחור גם במשקיע .
* אם משקיע נאמן לשחקן , נוסיף צלע עם קיבול . צלע זו מבטיחה שאם נבחר במשקיע , נהיה חייבים לבחור גם בשחקן .
(ב) מדוע זרימה מרבית מגדירה בחירה חוקית
לפי משפט זרימה-מרבית חתך-מינימלי, ערך הזרימה המרבית ברשת שווה לקיבול של החתך המינימלי המפריד בין ל-. יהי חתך מינימלי כלשהו ברשת, כאשר ו-. החתך מגדיר בחירה של שחקנים ומשקיעים באופן הבא:
* שחקן נבחר אם ורק אם הקודקוד המתאים לו, , נמצא בקבוצה .
* משקיע נבחר אם ורק אם הקודקוד המתאים לו, , נמצא בקבוצה .
כדי שהבחירה תהיה חוקית, עליה לקיים את כל אילוצי הנאמנות. נראה שבניית הרשת שלנו מבטיחה זאת. קיבול החתך המינימלי חייב להיות סופי (בהינתן שהרווח המרבי חיובי, סך ההשקעות סופי). חתך בעל קיבול סופי אינו יכול לחצות צלע עם קיבול אינסופי. לכן:
* אם שחקן נאמן למשקיע , קיימת צלע עם קיבול . אם נבחר ב- (כלומר ), לא ייתכן ש- לא ייבחר (כלומר ), כי אז החתך יחצה את הצלע האינסופית. מכאן שאם , בהכרח גם . האילוץ מתקיים.
* באופן דומה, אם משקיע נאמן לשחקן , קיימת צלע עם קיבול . אם נבחר ב- (כלומר ), לא ייתכן ש- לא ייבחר (כלומר ). מכאן שאם , בהכרח גם . האילוץ מתקיים.
לסיכום, כל חתך סופי ברשת (ובפרט חתך מינימלי) מגדיר בחירה חוקית של שחקנים ומשקיעים. (ג) הוכחה שהבחירה היא אופטימלית
נראה כי הבחירה המוגדרת על ידי חתך מינימלי משיאה את הרווח. יהי חתך כלשהו המגדיר בחירה חוקית. הרווח של בחירה זו הוא סך ההשקעות מהמשקיעים שנבחרו פחות סך המשכורות לשחקנים שנבחרו:קיבול החתך , המסומן , הוא סכום הקיבולים של הצלעות כך ש- ו-. מכיוון שהחתך מגדיר בחירה חוקית, הוא אינו חוצה צלעות עם קיבול אינסופי. הצלעות היחידות שנחתכות הן:
1. צלעות עבורן ו-. אלו הם המשקיעים שלא נבחרו.
2. צלעות עבורן ו-. אלו הם השחקנים שנבחרו.
לכן, קיבול החתך הוא:נסמן את סך ההשקעות הפוטנציאליות ב-. נשים לב כי . נציב זאת בנוסחת הרווח:קיבלנו את הקשר הישיר בין הרווח לקיבול החתך:מכיוון ש- הוא ערך קבוע שאינו תלוי בבחירה, מקסום הרווח שקול למינמום קיבול החתך . אלגוריתם למציאת זרימה מרבית מוצא למעשה חתך מינימלי, אשר כפי שהראנו מגדיר בחירה חוקית. לכן, הבחירה המוגדרת על ידי החתך המינימלי היא בחירה אופטימלית המשיאה את הרווח.
(א) בניית הרשת: צלעות וקיבולות
הרשת תכלול את הרכיבים הבאים:
1. קודקודים: קודקוד מקור וקודקוד בור . לכל שחקן (עבור ) נוסיף קודקוד . לכל משקיע (עבור ) נוסיף קודקוד .
2. צלעות רווח (מהמקור): לכל משקיע , נוסיף צלע עם קיבול . צלעות אלו מייצגות את ההשקעה הפוטנציאלית של כל משקיע.
3. צלעות עלות (אל הבור): לכל שחקן , נוסיף צלע עם קיבול . צלעות אלו מייצגות את השכר שיש לשלם לכל שחקן אם ילוהק.
4. צלעות אילוצים (בין שחקנים למשקיעים): צלעות אלו יאכפו את אילוצי הנאמנות. הקיבול שלהן יהיה אינסופי () כדי למנוע מצב שבו בחירה אינה חוקית.
* אם שחקן נאמן למשקיע , נוסיף צלע עם קיבול . צלע זו מבטיחה שאם נבחר בשחקן , נהיה חייבים לבחור גם במשקיע .
* אם משקיע נאמן לשחקן , נוסיף צלע עם קיבול . צלע זו מבטיחה שאם נבחר במשקיע , נהיה חייבים לבחור גם בשחקן .
(ב) מדוע זרימה מרבית מגדירה בחירה חוקית
לפי משפט זרימה-מרבית חתך-מינימלי, ערך הזרימה המרבית ברשת שווה לקיבול של החתך המינימלי המפריד בין ל-. יהי חתך מינימלי כלשהו ברשת, כאשר ו-. החתך מגדיר בחירה של שחקנים ומשקיעים באופן הבא:
* שחקן נבחר אם ורק אם הקודקוד המתאים לו, , נמצא בקבוצה .
* משקיע נבחר אם ורק אם הקודקוד המתאים לו, , נמצא בקבוצה .
כדי שהבחירה תהיה חוקית, עליה לקיים את כל אילוצי הנאמנות. נראה שבניית הרשת שלנו מבטיחה זאת. קיבול החתך המינימלי חייב להיות סופי (בהינתן שהרווח המרבי חיובי, סך ההשקעות סופי). חתך בעל קיבול סופי אינו יכול לחצות צלע עם קיבול אינסופי. לכן:
* אם שחקן נאמן למשקיע , קיימת צלע עם קיבול . אם נבחר ב- (כלומר ), לא ייתכן ש- לא ייבחר (כלומר ), כי אז החתך יחצה את הצלע האינסופית. מכאן שאם , בהכרח גם . האילוץ מתקיים.
* באופן דומה, אם משקיע נאמן לשחקן , קיימת צלע עם קיבול . אם נבחר ב- (כלומר ), לא ייתכן ש- לא ייבחר (כלומר ). מכאן שאם , בהכרח גם . האילוץ מתקיים.
לסיכום, כל חתך סופי ברשת (ובפרט חתך מינימלי) מגדיר בחירה חוקית של שחקנים ומשקיעים. (ג) הוכחה שהבחירה היא אופטימלית
נראה כי הבחירה המוגדרת על ידי חתך מינימלי משיאה את הרווח. יהי חתך כלשהו המגדיר בחירה חוקית. הרווח של בחירה זו הוא סך ההשקעות מהמשקיעים שנבחרו פחות סך המשכורות לשחקנים שנבחרו:קיבול החתך , המסומן , הוא סכום הקיבולים של הצלעות כך ש- ו-. מכיוון שהחתך מגדיר בחירה חוקית, הוא אינו חוצה צלעות עם קיבול אינסופי. הצלעות היחידות שנחתכות הן:
1. צלעות עבורן ו-. אלו הם המשקיעים שלא נבחרו.
2. צלעות עבורן ו-. אלו הם השחקנים שנבחרו.
לכן, קיבול החתך הוא:נסמן את סך ההשקעות הפוטנציאליות ב-. נשים לב כי . נציב זאת בנוסחת הרווח:קיבלנו את הקשר הישיר בין הרווח לקיבול החתך:מכיוון ש- הוא ערך קבוע שאינו תלוי בבחירה, מקסום הרווח שקול למינמום קיבול החתך . אלגוריתם למציאת זרימה מרבית מוצא למעשה חתך מינימלי, אשר כפי שהראנו מגדיר בחירה חוקית. לכן, הבחירה המוגדרת על ידי החתך המינימלי היא בחירה אופטימלית המשיאה את הרווח.