Presentation is loading. Please wait.

Presentation is loading. Please wait.

צביעת גרפים: הגדרה: G=(V,E) גרף בלתי מכוון. צביעת G ב-K צבעים 1<K<|V|. f: V {1,…,k} היא פונקציה כך שלכל (u,v)E מתקיים f(u)f(v). גרף שיש.

Similar presentations


Presentation on theme: "צביעת גרפים: הגדרה: G=(V,E) גרף בלתי מכוון. צביעת G ב-K צבעים 1<K<|V|. f: V {1,…,k} היא פונקציה כך שלכל (u,v)E מתקיים f(u)f(v). גרף שיש."— Presentation transcript:

1 צביעת גרפים: הגדרה: G=(V,E) גרף בלתי מכוון. צביעת G ב-K צבעים 1<K<|V|. f: V {1,…,k} היא פונקציה כך שלכל (u,v)E מתקיים f(u)f(v). גרף שיש לו לו צביעה ב-K צבעים נקרא: K צביע. דרגה של צומת = מספר הקשתות שנוגעות בצומת.

2 הדרגה המקסימלית של הגרף הנ"ל היא 4.
דרגה מקסימלית של G: G = maxvV{deg(V)} דוגמה: הדרגה המקסימלית של הגרף הנ"ל היא 4. תמיד מתקיים: G <|V|-1 (במקרה ויש קדקוד המחובר לכל הקדקודים האחרים).

3 טענה: כל G כנ"ל הוא G +1 צביע. הוכחה: נראה אלגוריתם לצביעת G: COLOR(G) S V While (s  ) pick up some v of s color v (legally) S S-{v}

4 ל-G יש צביעה מתאימה אםם האלגוריתם לא נתקע.
האלגוריתם נתקע אם בשורה 4 אין צבע פנוי עבור v. אבל אם ל-v יש n שכנים, n < G ולכן G +1-n > 0 כלומר תמיד יש לפחות צבע פנוי אחד עבור v לכן האלגוריתם לא יתקע.

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

6 הוכחה: נתאר אלגוריתם לצביעת G: בחר צומת כלשהי וצבע באדום. בחר שכן של הצומת וצבע אותו בצבע נגדי. סיים כשכל הצמתים צבועים. (צובעים את הצומת בצבע מסוים ואת כל שכניו בצבע השני ואת השכנים של השכנים בצבע הראשון וכן הלאה). האלגוריתם נתקע אםם יש צומת שיש לו שני שכנים הצבועים בשני צבעים שונים.

7 זה קורה אםם יש בגרף מסלול סגור (מעגל) שאורכו אי-זוגי.
אלגוריתם לבדיקה אם גרף הוא 2 צביע: 2-COLOR(G) BFS(G) For each (u,v)E //של הגרף המקורי if(d(u) = d(v))//מס' השכבה return FALSE return TRUE

8 סיבוכיות: |V|+|E| = BFS לכן הסיבוכיות הכללית: O(|V|+|E|) הגדרה: G כנ"ל נקרא דו צדדי, אם קיימת חלוקה :V1V2 V= (יחוד של קבוצות זרות), כך שכל קשת של G מחברת צומת מ- V1 עם צומת מ-V2. גרף הוא דו-צדדי אםם הוא 2 צביע. (נוכל להגדיר שכל קדקודי V1 יהיו צבועים בצבע וקדקודי V2 בצבע אחר וזה 2 צביע).

9 בעיית 3-color: בהינתן גרף G כנ"ל האם הוא 3 צביע? פתרון נאיבי: בדיקת כל הצביעות האפשריות של G ב-3 צבעים. סיבוכיות: O( ) טענה: 3_color  NPC

10 הוכחה: א) 3_color  NPC בהינתן צביעת G ב-3 צבעים, יש לעבור על כל קשת ולבדוק שהיא מחברת צמתים בצבעים שונים. ב) 3_color  NP_hard sat_cnf <p color קלט ל-3-sat_cnf: נוסחה לוגית במבנה cnf. בנית קלט ל- 3_color : V: שלושה צמתים T,R,F.

11 לכל משתנה יש 2 צמתים(למשתנה ולשלילתו).
לכל פסוקית יתווספו 5 משתנים. E: T,R,F מחוברים בקליק. כל משתנה ושלילתו ו-R מחוברים בקליק. לכל פסוקית יותאם המבנה(X Y Z) x y T z

12 הערה: x,y,z חייבים להיות צבועים רק ב-T או ב-F מאחר וכל משתנה ושלילתו מחובר בקליק ל-R.
דוגמה:

13 הסבר: תנאי 1 מטרתו לצבוע ב-3 צבעים. תנאי 2 אומר שכל משתנה ושלילתו צבועים בצבעים שונים. תנאי 3 מבטיח שלפחות אחד מהמשתנים בכל פסוקית יהיה צבוע ב-T. טענה: ל-G יש צביעה ב-3 צבעים הנוסחה הלוגית בעלת סיפוק.

14 הוכחה: ל-G יש צביעה ב-3 צבעים T,R,F צבועים בצבעים שונים(1) וגם כל משתנה ושלילתו צבועים ב-T וב-F(2) וגם בכל פסוקית יש משתנה אחד צבוע ב-T(ג) בכל פסוקית יש משתנה אחד לפחות עם ערך T כל פסוקית ניתנת לסיפוק הנוסחה ניתנת לסיפוק. יש פתרון ל-3_sat_cnf יש פתרון ל-3_color. 3_sat_cnfNP_hard 3_color  NP_hard.

15 אלגוריתמי קרוב אלגוריתמי קרוב- אלגוריתמים שיפתרו לנו בעיות עם סיבוכיות גבוהה בזמן פולינומיאלי. אלגוריתמים אלו לא יתנו את הפתרון האופטימלי אלא יש חסם מסוים על על הקרוב לפתרון(האופטימלי). נגדיר יחס קרוב: נסמן פתרון אופטימלי. C פתרון אלגוריתם קרוב.

16 בבעיית מקסימיזציה( : (0<C<
מגדיר פי כמה גדולה העלות של הפתרון האופטימלי מעלותו של הפתרון המקורב. בבעיית מינימיזציה( : (0< < C מגדיר פי כמה גדולה עלותו של הפתרון המקורב מעלותו של פתרון אופטימלי.

17 לעיתים נוח יותר להשתמש במדד של השגיאה היחסית:
נראה 2 דוגמאות לאלגוריתמי קרוב: VC TSP

18 אלגוריתם קרוב ל-VC: APPROX-VERTEX-COVER(G) C  E’ E[G] While E’   do let(u,v) be an arbitrary edge of E’ C C{u,v} remove from E’ every edge incident on either u or v Return C

19 אלגוריתם הקרוב יבחר את 1,2,3,4 (סה"כ 4 קדקודים).
דוגמה: אלגוריתם הקרוב יבחר את 1,2,3,4 (סה"כ 4 קדקודים). אלגוריתם אופטימלי: 2,3,4(סה"כ 3 קדקודים). בדוגמה ספציפית זו יחס הקרוב הוא:

20 משפט: האלגוריתם(approx vc) מבטיח לנו יחס קרוב של לכל היותר 2. (בעל חסם יחס 2). הוכחה: קבוצת הקדקודים המוחזרת ע"י האלגוריתם מהווה כיסוי מאחר והאלגוריתם מריץ לולאה עד אשר קבוצת הקשתות ריקה.

21 נשאר להוכיח כי החסם על מספר הקדקודים שהאלגוריתם מחזיר הוא פי 2 לכל היותר ממה שמחזיר האלגוריתם האופטימלי. נסמן ב-A את קבוצת הקשתות שנבחרו בשורה 4 של האלגוריתם. A אינה מכילה אף זוג קשתות שיש להן קדקודים משותפים שכן ברגע שנבחרה קשת בשורה 4, כל הקשתות האחרות הקשורות לקדקודי הקצה של קשת זו נמחקו מ-E’(בשורה 6).

22 כל ביצוע של שורה 5 מוסיף ל-A 2 קדקודים חדשים
כל ביצוע של שורה 5 מוסיף ל-A 2 קדקודים חדשים. אולם כדי לכסות את הקשתות ב-A, כל כיסוי קדקודים ובפרט הכיסוי האופטימלי חייב לכלול לפחות קדקוד קצה אחד של כל קשת ב-A. מאחר ש-A אינה מכילה אף זוג קשתות שיש להן קדקודי קצה משותפים, אף קדקוד בכיסוי אינו קשור ליותר מקשת אחת ב-A. לכן


Download ppt "צביעת גרפים: הגדרה: G=(V,E) גרף בלתי מכוון. צביעת G ב-K צבעים 1<K<|V|. f: V {1,…,k} היא פונקציה כך שלכל (u,v)E מתקיים f(u)f(v). גרף שיש."

Similar presentations


Ads by Google