assignment 6 7 sem b - bgudesign of algorithms – assignment 6 2017 sem b ( , )=0 :( , ) עלצב...

13
Design of Algorithms – Assignment 6 2017 sem B Course material is updated periodically, please be sure to read the latest updates on the course website: https://www.cs.bgu.ac.il/~algo172 ש אלה1 סעיף א טענה: קימת זרימה איכותית ברשת הזרימה = (, , , , ) קימת זרימה ברשת הזרימה = ( , ̃, ̃, ̃ ) בה כל הקשתות היוצאות מ- ̃ רוויות. הוכחה: תהא: × → ℝ זרימה איכותית ב- . נגדיר פונקציה חדשה : × →ℝ באופן הבא: לכל(, ) ∈ נגדיר (, ) = (, ) − (, ) וגם (, ) = − (, ) , לכל נגדיר (̃, ) = ∑ (, ) (,)∈ , (, ̃ )= ∑ (, ) (,)∈ , (, ̃) = (̃, ) ו- ( ̃ , ) = − (, ̃ ) , (, ) = || וגם (, ) = − (, ) , לכל שאר זוגות הקדקודים, ∈ : (, ) = 0 . עתה נראה כי היא זרימה חוקית ב- המרווה את כל ה ק שתות היוצאות מ- ̃ . אילוצי קיבול תהא . נחלק למקרים לפי סוג הצלע:o אם = (, ) ∈ אז הרי (, ) ≤ (, ) − (, ) = ̃(, ) , o אם = (̃, ) אז (̃, ) = ∑ (, ) = ̃(, ) , o אם = (, ̃ ) אז גם כן (, ̃ ) = ̃(, ) , o אם = (, ) אז הרי (, ) = || ≤ ∞ = ̃(, ) , o אם הינה ההופכית של אחת מן הנ"ל אז () < 0 = ̃() , o ולכל שאר זוגות הקדקודים הן הזרימה והן הקיבולת̃ הן אפס. אנטי- סימטריות נובע מידית מאופן הגדרת הזרימה , שימור זרימה יהא. נראה כי (, ) =0 . נחלק למקרים:o אם= אז: (, ) = (, ) ∈−{} + (, ) + (, ̃) + (, ̃ )= ((, ) − (, )) ∈−{} (,)∈ ((, ) − (, )) ∈−{} (,)∈ (, ) − (̃, ) + (, ̃ )= (, ) ∈−{} (,)∈ (, ) ∈−{} (,)∈ (, ) ∈−{} (,)∈ + (, ) ∈−{} (,)∈ − || − (, ) ∈−{} (,)∈ + (, ) ∈−{} (,)∈ = (, ) ∈−{} (,)∈ + (, ) ∈−{} (,)∈ − || = (, ) ∈−{} − || = || − || = 0

Upload: others

Post on 18-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Assignment 6 7 sem B - BGUDesign of Algorithms – Assignment 6 2017 sem B ( , )=0 :( , ) עלצב לשמל ( )= ו ( )= יכ ןייצמ יהשלכ תשק לע [ , ] ןו מס ה רשאכ:הניה

Design of Algorithms – Assignment 6 2017 sem B

Course material is updated periodically, please be sure to read the latest updates on the course

website: https://www.cs.bgu.ac.il/~algo172

1אלה ש סעיף א

𝑁איכותית ברשת הזרימה קימת זרימה :טענה = (𝐺, 𝑐, 𝑑, 𝑠, 𝑡) ⇔ קימת זרימה ברשת הזרימה

𝑁 = (�̃�, �̃�, �̃�, �̃�) בה כל הקשתות היוצאות מ- �̃� .רוויות

:הוכחה

:𝑓תהא 𝑉 × 𝑉 → ℝ זרימה איכותית ב-𝑁 . נגדיר פונקציה חדשה𝑓: �̃� × �̃� → ℝ :באופן הבא

לכל(𝑢, 𝑣) ∈ 𝐸 נגדיר𝑓(𝑢, 𝑣) = 𝑓(𝑢, 𝑣) − 𝑑(𝑢, 𝑣) וגם𝑓(𝑣, 𝑢) = −𝑓(𝑢, 𝑣),

לכל𝑣 ∈ 𝑉 נגדיר𝑓(�̃�, 𝑣) = ∑ 𝑑(𝑢, 𝑣)

(𝑢,𝑣)∈𝐸𝑢∈𝑉

,𝑓(𝑣, �̃�) = ∑ 𝑑(𝑣, 𝑢)

(𝑣,𝑢)∈𝐸𝑢∈𝑉

,𝑓(𝑣, �̃�) =

−𝑓(�̃�, 𝑣) ו-𝑓(�̃�, 𝑣) = −𝑓(𝑣, �̃�),

𝑓(𝑡, 𝑠) = |𝑓| וגם𝑓(𝑠, 𝑡) = −𝑓(𝑡, 𝑠),

לכל שאר זוגות הקדקודים𝑢, 𝑣 ∈ �̃� :𝑓(𝑢, 𝑣) = 0.

.�̃�-שתות היוצאות מ קהמרווה את כל ה 𝑁-היא זרימה חוקית ב 𝑓עתה נראה כי

תהא –אילוצי קיבול𝑒 ∈ �̃�למקרים לפי סוג הצלע: . נחלק

o אם𝑒 = (𝑢, 𝑣) ∈ 𝐸 אז הרי𝑓(𝑢, 𝑣) ≤ 𝑐(𝑢, 𝑣) − 𝑑(𝑢, 𝑣) = �̃�(𝑢, 𝑣),

o אם𝑒 = (�̃�, 𝑣) אז𝑓(�̃�, 𝑣) = ∑ 𝑑(𝑢, 𝑣)𝑢∈𝑉

= �̃�(𝑠, 𝑣),

o אם𝑒 = (𝑣, �̃�) אז גם כן𝑓(𝑣, �̃�) = �̃�(𝑣, 𝑡),

o אם𝑒 = (𝑡, 𝑠) אז הרי𝑓(𝑡, 𝑠) = |𝑓| ≤ ∞ = �̃�(𝑡, 𝑠),

o אם𝑒 הינה ההופכית של אחת מן הנ"ל אז𝑓(𝑒) < 0 = �̃�(𝑒),

o ולכל שאר זוגות הקדקודים הן הזרימה𝑓 והן הקיבולת�̃� .הן אפס

נובע מידית מאופן הגדרת הזרימה –סימטריות -אנטי𝑓,

יהא –שימור זרימה𝑢 ∈ 𝑉 .נראה כי ∑ 𝑓(𝑢, 𝑣)𝑣∈𝑉

= למקרים:נחלק . 0

o אם𝑢 = 𝑠 אז:

∑ 𝑓(𝑠, 𝑣)

𝑣∈𝑉

= ∑ 𝑓(𝑠, 𝑣)

𝑣∈𝑉−{𝑡}

+ 𝑓(𝑠, 𝑡) + 𝑓(𝑠, �̃�) + 𝑓(𝑠, �̃�) =

∑ (𝑓(𝑠, 𝑣) − 𝑑(𝑠, 𝑣))

𝑣∈𝑉−{𝑡}

(𝑠,𝑣)∈𝐸

− ∑ (𝑓(𝑣, 𝑠) − 𝑑(𝑣, 𝑠))

𝑣∈𝑉−{𝑡}

(𝑣,𝑠)∈𝐸

− 𝑓(𝑡, 𝑠) − 𝑓(�̃�, 𝑠) + 𝑓(𝑠, �̃�) =

∑ 𝑓(𝑠, 𝑣)

𝑣∈𝑉−{𝑡}

(𝑠,𝑣)∈𝐸

− ∑ 𝑑(𝑠, 𝑣)

𝑣∈𝑉−{𝑡}

(𝑠,𝑣)∈𝐸

− ∑ 𝑓(𝑣, 𝑠)

𝑣∈𝑉−{𝑡}

(𝑣,𝑠)∈𝐸

+ ∑ 𝑑(𝑣, 𝑠)

𝑣∈𝑉−{𝑡}

(𝑣,𝑠)∈𝐸

− |𝑓| − ∑ 𝑑(𝑣, 𝑠)

𝑣∈𝑉−{𝑡}

(𝑣,𝑠)∈𝐸

+ ∑ 𝑑(𝑠, 𝑣)

𝑣∈𝑉−{𝑡}

(𝑠,𝑣)∈𝐸

= ∑ 𝑓(𝑠, 𝑣)

𝑣∈𝑉−{𝑡}

(𝑠,𝑣)∈𝐸

+ ∑ 𝑓(𝑠, 𝑣)

𝑣∈𝑉−{𝑡}

(𝑣,𝑠)∈𝐸

− |𝑓| = ∑ 𝑓(𝑠, 𝑣)

𝑣∈𝑉−{𝑡}

− |𝑓| = |𝑓| − |𝑓| = 0

Page 2: Assignment 6 7 sem B - BGUDesign of Algorithms – Assignment 6 2017 sem B ( , )=0 :( , ) עלצב לשמל ( )= ו ( )= יכ ןייצמ יהשלכ תשק לע [ , ] ןו מס ה רשאכ:הניה

Design of Algorithms – Assignment 6 2017 sem B

o אם𝑣 = 𝑡 :אז

∑ 𝑓(𝑡, 𝑣)

𝑣∈𝑉

= ∑ 𝑓(𝑡, 𝑣)

𝑣∈𝑉−{𝑠}

+ 𝑓(𝑡, 𝑠) + 𝑓(𝑡, �̃�) + 𝑓(𝑡, �̃�)

= ∑ (𝑓(𝑡, 𝑣) − 𝑑(𝑡, 𝑣))

𝑣∈𝑉−{𝑠}

(𝑡,𝑣)∈𝐸

− ∑ (𝑓(𝑣, 𝑡) − 𝑑(𝑣, 𝑡))

𝑣∈𝑉−{𝑠}

(𝑣,𝑡)∈𝐸

+ 𝑓(𝑡, 𝑠) − 𝑓(�̃�, 𝑡) + 𝑓(𝑡, �̃�)

= ∑ 𝑓(𝑡, 𝑣)

𝑣∈𝑉−{𝑠}

(𝑡,𝑣)∈𝐸

− ∑ 𝑑(𝑡, 𝑣)

𝑣∈𝑉−{𝑠}

(𝑡,𝑣)∈𝐸

− ∑ 𝑓(𝑣, 𝑡)

𝑣∈𝑉−{𝑠}

(𝑣,𝑡)∈𝐸

+ ∑ 𝑑(𝑣, 𝑡)

𝑣∈𝑉−{𝑠}

(𝑣,𝑡)∈𝐸

+ |𝑓|

− ∑ 𝑑(𝑣, 𝑡)

𝑣∈𝑉−{𝑠}

(𝑣,𝑡)∈𝐸

+ ∑ 𝑑(𝑡, 𝑣)

𝑣∈𝑉−{𝑠}

(𝑡,𝑣)∈𝐸

= ∑ 𝑓(𝑡, 𝑣)

𝑣∈𝑉−{𝑠}

(𝑡,𝑣)∈𝐸

+ ∑ 𝑓(𝑡, 𝑣)

𝑣∈𝑉−{𝑠}

(𝑣,𝑡)∈𝐸

+ |𝑓|

= ∑ 𝑓(𝑡, 𝑣)

𝑣∈𝑉−{𝑠}

+ |𝑓| = −|𝑓| + |𝑓| = 0

o אם –אחרת𝑢 ≠ 𝑠, 𝑡 – :אז

∑ 𝑓(𝑢, 𝑣)

𝑣∈𝑉

= ∑ 𝑓(𝑢, 𝑣)

𝑣∈𝑉

+ 𝑓(𝑢, �̃�) + 𝑓(𝑢, �̃�)

= ∑ (𝑓(𝑢, 𝑣) − 𝑑(𝑢, 𝑣))𝑣∈𝑉

(𝑢,𝑣)∈𝐸

− ∑ (𝑓(𝑣, 𝑢) − 𝑑(𝑣, 𝑢))𝑣∈𝑉

(𝑣,𝑡)∈𝐸

− 𝑓(�̃�, 𝑢) + 𝑓(𝑢, �̃�)

= ∑ 𝑓(𝑢, 𝑣)𝑣∈𝑉

(𝑢,𝑣)∈𝐸

− ∑ 𝑑(𝑢, 𝑣)𝑣∈𝑉

(𝑢,𝑣)∈𝐸

− ∑ 𝑓(𝑣, 𝑢)𝑣∈𝑉

(𝑣,𝑢)∈𝐸

+ ∑ 𝑑(𝑣, 𝑢)𝑣∈𝑉

(𝑣,𝑢)∈𝐸

− ∑ 𝑑(𝑣, 𝑢)𝑣∈𝑉

(𝑣,𝑢)∈𝐸

+ ∑ 𝑑(𝑢, 𝑣)𝑣∈𝑉

(𝑢,𝑣)∈𝐸

= ∑ 𝑓(𝑢, 𝑣)𝑣∈𝑉

(𝑢,𝑣)∈𝐸

+ ∑ 𝑓(𝑢, 𝑣)𝑣∈𝑉

(𝑣,𝑢)∈𝐸

= ∑ 𝑓(𝑢, 𝑣)

𝑣∈𝑉

= 0

,�̃�). נשים לב שבכל הקשתות מהצורה 𝑁זרימה חוקית ברשת 𝑓לכן 𝑣) הזרימה הינה

𝑓(�̃�, 𝑣) = ∑ 𝑑(𝑢, 𝑣)𝑢∈𝑉

= �̃�(𝑠, 𝑣) ולכן𝑓 זרימה ב-𝑁 המרווה את כל הקשתות היוצאות מ-�̃�.

:𝑓 תהא �̃� × �̃� → ℝ זרימה ב-𝑁 המרווה את כל הקשתות היוצאות מ-�̃�. נגדיר פונקציה חדשה

𝑓: 𝑉 × 𝑉 → ℝ :באופן הבא

לכל(𝑢, 𝑣) ∈ 𝐸 נגדיר𝑓(𝑢, 𝑣) = 𝑓(𝑢, 𝑣) + 𝑑(𝑢, 𝑣) וגם𝑓(𝑣, 𝑢) = −𝑓(𝑢, 𝑣),

לכל שאר זוגות הקדקודים𝑢, 𝑣 ∈ 𝑉 :𝑓(𝑢, 𝑣) = 0.

הן רוויות. �̃�-נראה תחילה כי גם כל הקשתות הנכנסות ל הן רוויות. �̃�-נתון שכל הקשתות היוצאות מ

נתבונן בשני החתכים:

𝑆1 = {�̃�}, 𝑇1 = �̃� − {�̃�}

ו-𝑆2 = �̃� − {�̃�}, 𝑇2 = {�̃�}

|𝑓|נשים לב כי = ∑ 𝑓(�̃�, 𝑣)𝑣∈𝑉

= ∑ �̃�(�̃�, 𝑣)𝑣∈𝑉

= �̃�(𝑆1, 𝑇1)כן -, ועל(𝑆1, 𝑇1) חתך בעל קיבולת

,𝑆2)מזערית. נתבונן בחתך 𝑇2):

Page 3: Assignment 6 7 sem B - BGUDesign of Algorithms – Assignment 6 2017 sem B ( , )=0 :( , ) עלצב לשמל ( )= ו ( )= יכ ןייצמ יהשלכ תשק לע [ , ] ןו מס ה רשאכ:הניה

Design of Algorithms – Assignment 6 2017 sem B

�̃�(𝑆2, 𝑇2) = ∑ �̃�(𝑢, �̃�)

𝑢∈𝑉

= ∑ ∑ 𝑑(𝑢, 𝑣)

𝑣∈𝑉𝑢∈𝑉

= ∑ ∑ 𝑑(𝑢, 𝑣)

𝑢∈𝑉𝑣∈𝑉

= ∑ �̃�(�̃�, 𝑣)

𝑣∈𝑉

= �̃�(𝑆1, 𝑇1)

,𝑆2)לכן גם 𝑇2) כן: -חתך בעל קיבולת מזערית. על∑ 𝑓(𝑢, �̃�)𝑢∈𝑉

= |𝑓| = �̃�(𝑆2, 𝑇2) = ∑ �̃�(𝑢, �̃�)𝑢∈𝑉

.

,𝑓(𝑢נשים לב שבהכרח לכל קשת �̃�) = �̃�(𝑢, �̃�) שכן אילו היתה לפחות קשת אחת שעבורה ,

𝑓(𝑢, �̃�) < �̃�(𝑢, �̃�) אז לא היה שויון בסכום ,∑ 𝑓(𝑢, �̃�)𝑢∈𝑉

= ∑ �̃�(𝑢, �̃�)𝑢∈𝑉

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

יהיו –אילוצי קיבול𝑢, 𝑣 ∈ 𝑉:נחלק למקרים .

o אם(𝑢, 𝑣) ∈ 𝐸 אז הרי:

𝑓(𝑢, 𝑣) = 𝑓(𝑢, 𝑣) + 𝑑(𝑢, 𝑣) ≤ �̃�(𝑢, 𝑣) + 𝑑(𝑢, 𝑣) =

𝑐(𝑢, 𝑣) − 𝑑(𝑢, 𝑣) + 𝑑(𝑢, 𝑣) = 𝑐(𝑢, 𝑣)

o ולכל שאר זוגות הקדקודים הן הזרימה𝑓 והן הקיבולת𝑐 .הן אפס

נובע מידית מאופן הגדרת הזרימה –סימטריות -אנטי𝑓,

יהא –שימור זרימה𝑢 ∈ 𝑉 − {𝑠, 𝑡}:אזי .

∑ 𝑓(𝑢, 𝑣)

𝑣∈𝑉

= ∑ 𝑓(𝑢, 𝑣)

𝑓(𝑢,𝑣)≥𝑑(𝑢,𝑣)𝑣∈𝑉

+ ∑ 𝑓(𝑣, 𝑢)

𝑓(𝑣,𝑢)≥𝑑(𝑣,𝑢)𝑣∈𝑉

= ∑ 𝑓(𝑢, 𝑣)

�̃�(𝑢,𝑣)>0𝑣∈𝑉

+ ∑ 𝑑(𝑢, 𝑣)

𝑓(𝑢,𝑣)≥𝑑(𝑢,𝑣)𝑣∈𝑉

+ ∑ 𝑓(𝑣, 𝑢)

�̃�(𝑣,𝑢)>0𝑣∈𝑉

+ ∑ 𝑑(𝑣, 𝑢)

𝑓(𝑣,𝑢)≥𝑑(𝑣,𝑢)𝑣∈𝑉

= ∑ 𝑓(𝑢, 𝑣)

�̃�(𝑢,𝑣)>0𝑣∈𝑉

+ �̃�(𝑢, �̃�) + ∑ 𝑓(𝑣, 𝑢)

�̃�(𝑣,𝑢)>0𝑣∈𝑉

+ �̃�(�̃�, 𝑢)

= ∑ 𝑓(𝑢, 𝑣)

�̃�(𝑢,𝑣)>0𝑣∈𝑉

+ 𝑓(𝑢, �̃�) + ∑ 𝑓(𝑣, 𝑢)

�̃�(𝑣,𝑢)>0𝑣∈𝑉

+ 𝑓(�̃�, 𝑢) = ∑ 𝑓(𝑢, 𝑣)

�̃�(𝑢,𝑣)>0𝑣∈𝑉

+ ∑ 𝑓(𝑣, 𝑢)

�̃�(𝑣,𝑢)>0𝑣∈𝑉

= ∑ 𝑓(𝑢, 𝑣)

𝑣∈𝑉

= 0

יהיו –אילוצי איכות𝑢, 𝑣 ∈ 𝑉:נחלק למקרים .

o אם(𝑢, 𝑣) ∈ 𝐸 אז𝑓(𝑢, 𝑣) ≥ ,𝑓(𝑢 ולכן 0 𝑣) = 𝑓(𝑢, 𝑣) + 𝑑(𝑢, 𝑣) ≥ 𝑑(𝑢, 𝑣),

o ולכל שאר זוגות הקדקודים הזרימה𝑓 היא אפס והאיכות𝑑 היא−∞.

זרימה איכותית, כנדרש. 𝑓לכן

בסעיף

הזרימה האיכותית הבאה:נתבונן ברשת

Page 4: Assignment 6 7 sem B - BGUDesign of Algorithms – Assignment 6 2017 sem B ( , )=0 :( , ) עלצב לשמל ( )= ו ( )= יכ ןייצמ יהשלכ תשק לע [ , ] ןו מס ה רשאכ:הניה

Design of Algorithms – Assignment 6 2017 sem B

מּון ,𝑑]כאשר הס 𝑐] על קשת𝑒 כלשהי מציין כי𝑑(𝑒) = 𝑑 ו-𝑐(𝑒) = 𝑐 למשל, בצלע .(𝑠, 𝑣) :𝑑(𝑠, 𝑣) = 0

,𝑐(𝑠-ו 𝑣) = הזרימה האיכותית )היחידה( הינה:. 1

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

המקסימום תהא:

זוהי זרימת המקסימום היחידה, ומהוכחת אלגוריתם דיניץ הוא ימצא זרימת מקסימום כאשר הוא מתחיל

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

,𝑢)הגודל הֵמרבי עבור זרימה רגילה, אבל בצלע 𝑤) :היא אינה מקימת את אילוץ האיכות𝑓(𝑢, 𝑤) = 0 < 1 =

𝑑(𝑢, 𝑤)שים לב ששורש הבעיה נעוץ בכך שלא התחשבנו בדרישת האיכות נכן אינה זרימה איכותית. -, ועל

ג'. בעת בניית הרשת השיורית. נתקן זאת בסעיף

גסעיף

נוי היחיד יהיה באופן הגדרת הקיבולת השיורית. במקום להגדיר קיבולת שיורית, נגדיר קיבולת שיורית הש

להיות: איכותית

𝑐𝑓(𝑢, 𝑣) = {

𝑐(𝑢, 𝑣) − 𝑓(𝑢, 𝑣) (𝑢, 𝑣) ∈ 𝐸

𝑓(𝑣, 𝑢) − 𝑑(𝑣, 𝑢) (𝑣, 𝑢) ∈ 𝐸

0 אחרת

נוי. ,𝑢)-מהות השנוי היא שבמידה ו שאר האלגוריתם יישאר ללא ש 𝑣) ∉ 𝐸 אך(𝑣, 𝑢) ∈ 𝐸 נוכל להזרים עוד

,𝑢)בצלע 𝑣) זרימה שלא תחרוג מ-𝑑(𝑣, 𝑢) אילו הינו מזרימים ב .-(𝑢, 𝑣) זרימה הגדולה מ-𝑑(𝑣, 𝑢) אז הינו

,𝑣)-מורידים את הזרימה ב 𝑢) ביותר מאשר𝑑(𝑣, 𝑢) ,ואז הזרימה לא היתה מקימת את אילוץ האיכות. כך ,

,𝑣)בצלע כאשר אנו מקפידים שלא נוכל להוריד את הזרימה 𝑢) ב-𝑑(𝑣, 𝑢) או יותר, אנו מודאים שהזרימה

תקיים את אילוץ האיכות.

ו והטענה שבכל שלב לא השתנ וזמן מציאת זרימה חוסמת כן, נשים לב שזמן בנית הרשת השיורית-כמו

, ולכן זמן הריצה של האלגוריתם עודנו עדין מתקימת 1-גדל לפחות ב 𝑡-ל 𝑠-המרחק ברשת השיורית מ

𝑂(|𝑉|2|𝐸|) .

Page 5: Assignment 6 7 sem B - BGUDesign of Algorithms – Assignment 6 2017 sem B ( , )=0 :( , ) עלצב לשמל ( )= ו ( )= יכ ןייצמ יהשלכ תשק לע [ , ] ןו מס ה רשאכ:הניה

Design of Algorithms – Assignment 6 2017 sem B

2שאלה סעיף א

,𝐺⟩בהינתן מופע 𝑑⟩ לבעיתevenVC העד יהיה קבוצה𝑈 ⊆ 𝑉 ,אשר כ𝐺 = (𝑉, 𝐸). אלגוריתם הו דּוא יבדוק

|𝑈| קשיר, 𝐺 תחילה כי ≤ 𝑑 וגם𝑑 מכן, האלגוריתם יעבור על כל הקשתות -. לאחרזוגיהוא(𝑢, 𝑣) ∈ 𝐸 ועבור כל

𝑢אחת יבדוק האם מתקים ∈ 𝑈 או𝑣 ∈ 𝑈 .מהגדרת . האלגוריתם יקבל אם כל הבדיקות עברו. אחרת, ידחה

𝑈קיימת ⇔הבעיה קיים עד שיגרום לאלגוריתם הו דוא לקבל ⊆ 𝑉 כך ש-|𝑈| ≤ 𝑑 וגם לכל צלע(𝑢, 𝑣) ∈ 𝐸

𝑢מתקים ∈ 𝑈 או𝑣 ∈ 𝑈 ⇔ קיים כסוי בקדקודים של𝑈 בגודל𝑑 ,𝐺⟩ ⇔זוגי 𝑑אשר כ ≤ 𝑑⟩ ∈ evenVC הבדיקה .

|𝑂(|𝑉. סך הזמן שלהן הינו 𝑂(|𝐸|)והבדיקה השניה 𝑂(|𝑉|)הראשונה לוקחת + |𝐸|) לינארי ובפרט ,

העד פולינומיאלי.גודל כן, גודל העד קטן מגודל הקלט ולכן -כמו פולינומיאלי.

evenVCלכן ∈ 𝑁𝑃 עתה נראה כי .evenVC ∈ 𝑁𝑃𝐻 וזאת באמצעות רדוקציה ,conVC ≤𝑃 evenVC . בהינתן

𝐺⟩ פעומ = (𝑉, 𝐸), 𝑑⟩ לבעיתconVC, תחילה נבדוק האם הגרף𝐺 קשיר או לא. אם לא, נחזיר�̃� = 𝐺 ו-�̃� = 𝑑 .

�̃�זוגי נגדיר 𝑑אם אחרת, = 𝐺 ו-�̃� = 𝑑 ,חדשים נוסיף שני קדקודים. אחרת𝑥, 𝑦 וקשתות מכל הקדקודים

�̃�. באופן פורמלי, 𝑦-ל 𝑥-וגם מ 𝑥-המקוריים ל = 𝑉 ∪ {𝑥, 𝑦} ,�̃� = 𝐸 ∪ {(𝑣, 𝑥) | 𝑣 ∈ 𝑉 ∪ {𝑦} } ,�̃� = (�̃�, �̃�) ונגדיר

�̃� = 𝑑 + |𝑂(|𝑉. זמן בנית הגרף הינו 1 + |𝐸|) וגודל הגרף החדש הינו מאותו סדר הגודל של הגרף המקורי

𝑂(|�̃�| + |�̃�|) = 𝑂(|𝑉| + |𝐸|) . בדיקת הקשירות לוקחת גם היא𝑂(|𝑉| + |𝐸|) באמצעות ,𝐵𝐹𝑆 . ,כלומר

הרדוקציה פולינומיאלית. עתה נראה את נכונותה.

,�̃�⟩ :טענה �̃�⟩ ∈ evenVC ⇔ ⟨𝐺, 𝑑⟩ ∈ conVC .

:הוכחה

,𝐺⟩-נניח ש 𝑑⟩ ∈ conVC . נשים לב שמכיון ש-𝐺 קשיר אז גם�̃� .כלומר קיים כסוי בקדקודים קשיר

𝑈 ⊆ 𝑉 של𝐺 וגודלו|𝑈| ≤ 𝑑 . אם𝑑 זוגי אז באופן מידי⟨�̃�, �̃�⟩ ∈ evenVC נניח כי –. אחרת𝑑 אי-

𝑈זוגי. נסמן: = 𝑈 ∪ {𝑥}. נראה כי𝑈 כסוי בקדקודים של�̃� תהא .𝑒 ∈ �̃� . אם𝑒 = (𝑢, 𝑣) ∈ 𝐸 אז

𝑢כסוי מתקים 𝑈-היות ו ∈ 𝑈 או𝑣 ∈ 𝑈 ולכן𝑢 ∈ 𝑈 או𝑣 ∈ 𝑈 אחרת, אם .𝑒 = (𝑣, 𝑥) באשר𝑣 ∈

𝑉 ∪ {𝑦} אז הרי𝑥 ∈ 𝑈 . לכן𝑈 כסוי בקדקודים של�̃�כן, -. כמו|𝑈| = |𝑈| + 1 ≤ 𝑑 + לכן , כנדרש.1

⟨�̃�, �̃�⟩ ∈ evenVC.

,�̃�⟩יהא �̃�⟩ ∈ evenVC . נשים לב שמכיון ש-�̃� קשיר אז גם𝐺 .מכיון ש קשיר-⟨�̃�, �̃�⟩ ∈ evenVC קיים

𝑈 כסוי בקדקודים ⊆ �̃� של�̃� כך ש-|𝑈| ≤ �̃� .אם במקור 𝑑 זוגי אז �̃� = 𝑑 וגם�̃� = 𝐺אז באופן ,

,𝐺⟩ מידי 𝑑⟩ ∈ conVC . ,אחרת𝑑 זוגי ואז -אי�̃� = 𝑑 + ,𝑥)מכסה את 𝑈נשים לב שבפרט . 1 𝑦) ולכן

𝑥 ∈ 𝑈 או𝑦 ∈ 𝑈 :נגדיר .𝑈 = 𝑈 ∩ 𝑉. נראה כי𝑈 כסוי בקדקודים של𝐺 תהא .(𝑢, 𝑣) ∈ 𝐸 . אז𝑢 ∈ 𝑈

𝑣או ∈ 𝑈 ולכן𝑢 ∈ 𝑈 או𝑣 ∈ 𝑈. ,משמע 𝑈 כסוי בקדקודים של𝐺בודאות כן, -. כמו|𝑈| < |𝑈| כי𝑥 ∈

𝑈 או𝑦 ∈ 𝑈 בעוד ש ,-𝑥, 𝑦 ∉ 𝑈 . :גודלו|𝑈| ≤ |𝑈| − 1 ≤ 𝑑 + 1 − 1 = 𝑑 כנדרש. לכן ,⟨𝐺, 𝑑⟩ ∈

conVC.

conVC רדוקציה הראנו קשה,-𝑁𝑃 היא conVC -ש הנחנו ≤𝑃 evenVC ולכן, מהמשפט שראינו בכיתה, נובע ,

evenVCכן, קודם ראינו כי -כמו קשה.-𝑁𝑃 היא evenVCשגם ∈ 𝑁𝑃 ולכן ,evenVC היא𝑁𝑃-.שלמה

בסעיף

,𝐺⟩בהינתן מופע 𝑑⟩ לבעיתevenDegVC העד יהיה קבוצה𝑈 ⊆ 𝑉 ,אשר כ𝐺 = (𝑉, 𝐸) אלגוריתם הו דּוא יבדוק .

|𝑈|דרגת כל קדקוד היא זוגית. אחרי זה הוא יבדוק כי קשיר וש 𝐺-תחילה ש ≤ 𝑑מכן, האלגוריתם יעבור -. לאחר

,𝑢)על כל הקשתות 𝑣) ∈ 𝐸 ועבור כל אחת יבדוק האם מתקים𝑢 ∈ 𝑈 או𝑣 ∈ 𝑈 האלגוריתם יקבל אם כל .

רגת כל קדקוד ד ⇔הבדיקות עברו. אחרת, ידחה. מהגדרת הבעיה קיים עד שיגרום לאלגוריתם הו דוא לקבל

𝑈היא זוגית וגם קיימת ⊆ 𝑉 כך ש-|𝑈| ≤ 𝑑 וגם לכל צלע(𝑢, 𝑣) ∈ 𝐸 מתקים𝑢 ∈ 𝑈 או𝑣 ∈ 𝑈 ⇔ דרגת כל קדקוד

𝑑בגודל 𝑈קיים כסוי בקדקודים של היא זוגית וגם ≥ ⇔ ⟨𝐺, 𝑑⟩ ∈ evenDegVC . ותהראשונ ותהבדיקשתי

|𝑂(|𝑉. סך הזמן שלהן הינו 𝑂(|𝐸|)והבדיקה השניה 𝑂(|𝑉|)ת ולוקח + |𝐸|).כן, -כמו , לינארי ובפרט פולינומיאלי

גודל העד קטן מגודל הקלט ולכן העד פולינומיאלי.

Page 6: Assignment 6 7 sem B - BGUDesign of Algorithms – Assignment 6 2017 sem B ( , )=0 :( , ) עלצב לשמל ( )= ו ( )= יכ ןייצמ יהשלכ תשק לע [ , ] ןו מס ה רשאכ:הניה

Design of Algorithms – Assignment 6 2017 sem B

evenDegVCלכן ∈ 𝑁𝑃 עתה נראה כי .evenDegVC ∈ 𝑁𝑃𝐻 וזאת באמצעות רדוקציה ,conVC ≤𝑃 evenDegVC .

: 1נראה שני רעיונות לרדוקציה

𝐺⟩ פעומבהינתן -רדוקציה א' = (𝑉, 𝐸), 𝑑⟩ לבעיתconVC, נבדוק תחילה האם הגרף קשיר. אם לא, נחזיר

,𝐺⟩את 𝑑⟩ ,נחזיר זוגית. אם לא, -נבדוק האם קיים קדקוד בדרגה אי. אחרת⟨𝐺, 𝑑⟩ ,ניצור קדקוד חדש . אחרת

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

𝑉∗ = 𝑉 ∪ {𝑥, 𝑦, 𝑧},

𝐸∗ = 𝐸 ∪ {(𝑣, 𝑥) | 𝑣 ∈ 𝑉 ∧ זוגית − {דרגת 𝑣 אי ∪ {(𝑥, 𝑦), (𝑦, 𝑧), (𝑥, 𝑧)},

ו-𝐺∗ = (𝑉∗, 𝐸∗).

, אם נתבונן בגרף:2לדוגמא

אז הרדוקציה שלנו תבנה את הגרף:

|𝑂(|𝑉הינו |∗𝐸|זמן בנית ו 𝑂(|𝑉|)הינו |∗𝑉|זמן בנית + |𝐸|) הגרף. זמן בנית 𝐺∗ הינו𝑂(|𝑉| + |𝐸|) הינו וגודלו

|∗𝑂(|𝑉מאותו סדר הגודל של הגרף המקורי + |𝐸∗|) = 𝑂(|𝑉| + |𝐸|) . בדיקה האם יש קדקוד הובדיקת הקשירות

|𝑂(|𝑉 ןת גם הולוקחזוגית -בדרגה אי + |𝐸|) באמצעות ,𝐵𝐹𝑆 . כלומר, הרדוקציה פולינומיאלית. עתה נראה את

נכונותה.

,∗𝐺⟩ :טענה 𝑑 + 2⟩ ∈ evenDegVC ⇔ ⟨𝐺, 𝑑⟩ ∈ conVC.

:הוכחה

,𝐺⟩-נניח ש 𝑑⟩ ∈ conVC כלומר קיים כסוי בקדקודים .𝑈 ⊆ 𝑉 של𝐺 וגודלו|𝑈| ≤ 𝑑 . נשים לב ש-𝐺

,𝐺⟩זוגית, אז -. אם אין לו אף קדקוד בדרגה איקשיר 𝑑⟩ ∈ evenDegVC,ש הרי . אחרת-𝑥 מחובר לכל

מחוברים לכל שאר 𝑧-ו 𝑦. לכן גם קשיר ∗𝐺זוגית, ויש לפחות אחד כזה, ולכן -בדרגה אי 𝑉קדקודי

𝑣יש דרגה זוגית לכל קדקוד. יהא ∗𝐺-תחילה, נראה כי ב קשיר. ∗𝐺קדקודי הגרף, ולכן ∈ 𝑉 אם .

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

Page 7: Assignment 6 7 sem B - BGUDesign of Algorithms – Assignment 6 2017 sem B ( , )=0 :( , ) עלצב לשמל ( )= ו ( )= יכ ןייצמ יהשלכ תשק לע [ , ] ןו מס ה רשאכ:הניה

Design of Algorithms – Assignment 6 2017 sem B

זוגית, נוספה -אי 𝐺-לא תשתנה. אם דרגתו ב ∗𝐺-זוגית, לא נוסיף לו צלעות ולכן דרגתו ב 𝐺-דרגתו ב

,𝑣)לו הצלע 𝑥) ב ולכן דרגתו-𝐺∗ תהיה זוגית. ל-𝑦 ּול-𝑧 יש שתי צלעות כל אחד, ולכן דרגת כל אחד

2-הינו זוגי )ושווה ל 𝐺-כן, סכום הדרגות של כל הקדקודים ב -זוגית. כמו ⋅ |𝐸| כזכור לנו( ולכן בהכרח ,

גרף שבו דרגת ∗𝐺כלומר, זוגית. 𝑥זוגית. לכן הדרגה של -ישנה כמות זוגית של קדקודים בדרגה אי

∗𝑈. נגדיר: כל קדקוד הינה זוגית = 𝑈 ∪ {𝑥, 𝑦} נראה כי .𝑈∗ מכסה את𝐺∗ תהא .𝑒 ∈ 𝐸∗ אם .𝑒 =

(𝑢, 𝑣) ∈ 𝐸 אז𝑢 ∈ 𝑈 או𝑣 ∈ 𝑈 ולכן𝑢 ∈ 𝑈∗ או𝑣 ∈ 𝑈∗ אם .𝑒 = (𝑣, 𝑥) ∈ 𝐸 אז הרי𝑥 ∈ 𝑈∗ אם .

𝑒 = (𝑥, 𝑦) או𝑒 = (𝑥, 𝑧) אז𝑥 ∈ 𝑈∗ האפשרות שנותרה הינה ש –. אחרת-𝑒 = (𝑦, 𝑧) – ובמקרה

𝑦זה הרי ∈ 𝑈∗ ,כלומר .𝑈∗ מכסה את𝐺∗כן, -. כמו|𝑈∗| = |𝑈| + 2 ≤ 𝑑 + ,∗𝐺⟩. לכן 2 𝑑 + 2⟩ ∈

evenDegVC.

,∗𝐺⟩יהא 𝑑 + 2⟩ ∈ evenDegVC . היות ו-𝐺∗ קשיר אז גם𝐺 .לכן קיים כסוי בקדקודים קשיר𝑈∗ ⊆ 𝑉∗

|∗𝑈|וגודלו ∗𝐺של ≤ 𝑑 + הינו גרף בדרגה זוגית. תחילה, נשים לב כי לפחות שנים ∗𝐺כן, -. כמו2

,𝑥מבין 𝑦, 𝑧 ב נמצא-𝑈∗ זאת מכיון שאחרת, אילו היה ב .-𝑈∗ לכל היותר אחד מהם, אז קדקודי𝑈∗ לא

,𝑥)היו מכסים את הקשתות 𝑦), (𝑦, 𝑧), (𝑥, 𝑧) :נגדיר .𝑈 = 𝑈∗ ∩ 𝑉 ,כלומר .𝑥, 𝑦, 𝑧 ∉ 𝑈 ולכן𝑈 ⊆ 𝑉 .

,𝑥כן, לפחות אחד מבין -כמו 𝑦, 𝑧 היה ב-𝑈∗ ועתה איננו ב-𝑈 ולכן ,|𝑈| = |𝑈∗| − 2 ≤ 𝑑 ,כלומר .

|𝑈| ≤ 𝑑 נראה כי .𝑈 מכסה את𝐺 תהא .(𝑢, 𝑣) ∈ 𝐸 אז .(𝑢, 𝑣) ∈ 𝐸∗ לכן .𝑢 ∈ 𝑈∗ או𝑣 ∈ 𝑈∗כמו .-

,𝑢)כן, 𝑣) ∈ 𝐸 ולכן𝑢, 𝑣 ∈ 𝑉 ולכן𝑢 ∈ 𝑈∗ ∩ 𝑉 או𝑣 ∈ 𝑈∗ ∩ 𝑉 כלומר, עבור הקשת .(𝑢, 𝑣) ∈ 𝐸

𝑢מתקים ∈ 𝑈 או𝑣 ∈ 𝑈 לכן .⟨𝐺, 𝑑⟩ ∈ conVC.

𝐺⟩ פעומבהינתן -רדוקציה ב' = (𝑉, 𝐸), 𝑑⟩ לבעיתconVC, בו שני הקדקודים למשושה, צלענהפוך כל

בקצוות יהיו המקוריים מהצלע וארבעת הקדקודים באמצע חדשים.

כך למשל הצלע:

: תהפוך ל

באופן פורמלי:

𝑉∗ = 𝑉 ∪ {𝑎𝑢,𝑣, 𝑏𝑢,𝑣, 𝑐𝑢,𝑣, 𝑑𝑢,𝑣 | (𝑢, 𝑣) ∈ 𝐸},

𝐸∗ = {(𝑢, 𝑎𝑢,𝑣), (𝑎𝑢,𝑣, 𝑏𝑢,𝑣), (𝑏𝑢,𝑣, 𝑣), (𝑣, 𝑑𝑢,𝑣), (𝑑𝑢,𝑣 , 𝑐𝑢,𝑣), (𝑐𝑢,𝑣, 𝑢) |(𝑢, 𝑣) ∈ 𝐸},

𝐺∗ = (𝑉∗, 𝐸∗),

ו-𝑑∗ = 𝑑 + 2|𝐸|.

|𝑂(|𝑉הינו |∗𝑉|זמן בנית + |𝐸|) נית ב זמן ו|𝐸∗| הינו𝑂(|𝐸|) .זמן בנית הגרף אז𝐺∗ הינו𝑂(|𝑉| + |𝐸|) ,כלומר .

הרדוקציה פולינומיאלית. עתה נראה את נכונותה.

,∗𝐺⟩ :טענה 𝑑∗⟩ ∈ evenDegVC ⇔ ⟨𝐺, 𝑑⟩ ∈ conVC.

:הוכחה

,𝐺⟩-נניח ש 𝑑⟩ ∈ conVC . נשים לב שאם𝐺 קשיר אז גם𝐺∗ .כלומר קיים כסוי בקדקודים קשיר𝑈 ⊆ 𝑉

|𝑈|וגודלו 𝐺של ≤ 𝑑 תחילה, נראה כי ב .-𝐺∗ .לכל קדקוד חדש יש דרגה זוגית לכל קדקוד𝑎𝑢,𝑣 וכך(

Page 8: Assignment 6 7 sem B - BGUDesign of Algorithms – Assignment 6 2017 sem B ( , )=0 :( , ) עלצב לשמל ( )= ו ( )= יכ ןייצמ יהשלכ תשק לע [ , ] ןו מס ה רשאכ:הניה

Design of Algorithms – Assignment 6 2017 sem B

𝑢יהא שנוגעות בו ולכן דרגתו זוגית. ( שיצרנו יש שתי קשתות𝑑𝑢,𝑣-ו 𝑏𝑢,𝑣 ,𝑐𝑢,𝑣גם ∈ 𝑉 על כל קשת .

(𝑢, 𝑣) עתה משושה. כלומר, יהיה קיים𝑣 לא יהיה שכן של𝑢 השכנים של .𝑢 יהיו𝑎𝑢,𝑣 ו-𝑐𝑢,𝑣 לכן .

כן, דרגתו זוגית. -תהיה כמות כפולה של שכנים מאשר היו לו קודם. על 𝑢-ל

∗𝑈נגדיר: = 𝑈 ∪ {𝑎𝑢,𝑣 , 𝑐𝑢,𝑣 | (𝑢, 𝑣) ∈ 𝐸 ∧ 𝑣 ∈ 𝑈} ∪ {𝑏𝑢,𝑣 , 𝑑𝑢,𝑣 | (𝑢, 𝑣) ∈ 𝐸 ∧ 𝑢 ∈ 𝑈} נראה כי .

𝑈∗ מכסה את𝐺∗ תהא .(𝑢, 𝑣) ∈ 𝐸 . לכן𝑢 ∈ 𝑈∗ או𝑣 ∈ 𝑈∗ . נראה כי כל שש הקשתות החדשות

𝑢. נניח, ללא הגבלת הכלליות, כי ∗𝑈-מכוסות בידי איברים מ ∈ 𝑈 אז .𝑢, 𝑏𝑢,𝑣 , 𝑑𝑢,𝑣 ∈ 𝑈∗ הקשת .

(𝑢, 𝑎𝑢,𝑣) והקשת(𝑐𝑢,𝑣, 𝑢) ידי -מכוסות על𝑢 הקשתות ,(𝑎𝑢,𝑣 , 𝑏𝑢,𝑣) ו-(𝑏𝑢,𝑣, 𝑣) ידי -מכוסות על𝑏𝑢,𝑣

,𝑣)והקשתות 𝑑𝑢,𝑣) ו-(𝑑𝑢,𝑣, 𝑐𝑢,𝑣) ידי -מכוסות על𝑑𝑢,𝑣. ,כלומר𝑈∗ מכסה את𝐺∗ .נשים לב

,𝑢)כל קשת של 𝑣) .כן,-עלהוספנו שתי צמתים |𝑈∗| = |𝑈| + 2|𝐸| ≤ 𝑑 + 2|𝐸| = 𝑑∗ .

,∗𝐺⟩לכן 𝑑∗⟩ ∈ evenDegVC.

,∗𝐺⟩יהא 𝑑∗⟩ ∈ evenDegVC . נשים לב שהיות ו-𝐺∗ קשיר אז גם𝐺 .לכן קיים כסוי בקדקודים קשיר

𝑈∗ ⊆ 𝑉∗ של𝐺∗ וגודלו|𝑈∗| ≤ 𝑑∗כן, -. כמו𝐺∗ .ידי -כל משושה יכוסה עלהינו גרף בדרגה זוגית

𝑎𝑢,𝑣 לפחות שניים מביןשנשים לב קדקודים. 3לפחות , 𝑏𝑢,𝑣 , 𝑐𝑢,𝑣 , 𝑑𝑢,𝑣 ב יםנמצא-𝑈∗ זאת מכיון .

קשתותהלא היו מכסים את ∗𝑈לכל היותר אחד מהם, אז קדקודי ∗𝑈-שאחרת, אילו היה ב

(𝑎𝑢,𝑣, 𝑏𝑢,𝑣), (𝑑𝑢,𝑣, 𝑐𝑢,𝑣) .ב -כמו אילו יש בדיוק שניים, כי ∗𝑈-כן, ניתן להניח, ללא הגבלת הכלליות, ש

לכן אחד ועדין כל קשתות המשושה היו מכוסות. 𝑣-או ב 𝑢-היה קדקוד שלישי היה ניתן להחליפו ב

,𝑢מהקדקודים 𝑣 .נגדיר: נמצא בכסוי𝑈 = 𝑈∗ ∩ 𝑉 .קשת , על כל מהאבחנה(𝑢, 𝑣) ∈ 𝐸 ב יש-𝑈∗

|𝑈| קדקוד אחד מקורי, ולכן: = |𝑈∗| − 2|𝐸| ≤ 𝑑∗ − 2|𝐸| = 𝑑. תהא(𝑢, 𝑣) ∈ 𝐸 היות ו .-𝑈∗ מכסה

,𝑢)אז הוא בפרט מכסה את ∗𝐸את 𝑎𝑢,𝑣) ולכן𝑢 ∈ 𝑈∗ או𝑎𝑢,𝑣 ∈ 𝑈∗ אם .𝑢 ∈ 𝑈∗ אז𝑢 ∈ 𝑈 .וגמרנו

,𝑐𝑢,𝑣)מכסה גם את ∗𝑈אחרת, 𝑢) ולכן𝑐𝑢,𝑣 ∈ 𝑈∗ מן האבחנה שבכל משושה ב .-𝑈∗ יש בדיוק שני

𝑣קדקודים חדשים ואחד מקורי, נובע כי ∈ 𝑈∗ לכן .𝑣 ∈ 𝑈.ר, ל כלומ , כנדרש-𝐺 יש כסוי בגודל𝑑 ≥ .

,𝐺⟩לכן 𝑑⟩ ∈ conVC.

conVC רדוקציה הראנו קשה,-𝑁𝑃 היא conVC -ש הנחנו ≤𝑃 evenDegVC ולכן, מהמשפט שראינו בכיתה, נובע ,

evenDegVCכן, קודם ראינו כי -קשה. כמו-𝑁𝑃 היא evenDegVCשגם ∈ 𝑁𝑃 ולכן ,evenDegVC היא𝑁𝑃-.שלמה

Page 9: Assignment 6 7 sem B - BGUDesign of Algorithms – Assignment 6 2017 sem B ( , )=0 :( , ) עלצב לשמל ( )= ו ( )= יכ ןייצמ יהשלכ תשק לע [ , ] ןו מס ה רשאכ:הניה

Design of Algorithms – Assignment 6 2017 sem B

3שאלה א סעיף

𝑈קבוצה -היא הרי תת 3תחילה, נבחין כי קליקה בגודל ⊆ 𝑉 בגודל|𝑈| = , שבה בין כל זוג קדקודים יש צלע. 3

𝑈הקבוצות -עלינו לעבור על כל תתי –כלומר, בכדי לבדוק האם קימת קליקה ⊆ 𝑉 בגודל|𝑈| = ולבדוק 3

יש צלע. 𝑈-שעבור כל שני קדקודים מ

𝑈הקבוצות -עבור על כל תתי .1 ⊆ 𝑉 בגודל|𝑈| = 3

𝑈עבור כל .1.1 = {𝑥, 𝑦, 𝑧} שכזו בדוק האם(𝑥, 𝑦), (𝑦, 𝑧), (𝑥, 𝑧) ∈ 𝐸

"3"יש קליקה בגודל אם כן, החזר .1.1.1

"3"אין קליקה בגודל החזר .2

הקבוצות האפשריות, ובאף אחת מהן לא -רק לאחר שנעבור על כל תתי "3"אין קליקה בגודל כלומר, אנו נחזיר

הקבוצה לבין עצמם. -תהיינה קימות כל שלוש הצלעות בין הקדקודים בתת

𝑉של 3הקבוצות בגודל -נשים לב שהיות ואנו עוברים על כל תתימהו זמן הריצה?

)ישנן |𝑉|3

) ∈ 𝑂(|𝑉|3) עבור כל אחת אנו מבצעים לו. כא𝑂(1) פעולות. כלומר, זמן הריצה הינו𝑂(|𝑉|3) ,

.כנדרש

ב סעיף

6נראה רדוקציה − 𝐶𝑙𝑖𝑞𝑢𝑒 ≤𝑃 3 − 𝐶𝑙𝑖𝑞𝑢𝑒פעו. בהינתן מ 𝐺 = (𝑉, 𝐸) 6לבעית − 𝐶𝑙𝑖𝑞𝑢𝑒, נבנה גרף חדש

באופן הבא:

�̃� = {𝑥𝑢,𝑣 | (𝑢, 𝑣) ∈ 𝐸},

�̃� = {(𝑥𝑢,𝑣, 𝑥𝑤,𝑡) |,𝑢 ארבעה קדקודים שונים וגם 𝑣, 𝑤, 𝑡 ∈ 𝑉

,𝑢} הינה קליקה בגודל 4 𝑣, 𝑤, 𝑡}},

ו-�̃� = (�̃�, �̃�).

�̃� תי. לצורך בניהוכך גם גודל 𝑂(|𝑉|2)הינו תו יאנו עוברים על כל זוגות הקדקודים ולכן זמן בני �̃� תילצורך בני

ואם כן יוצרים את ,זמן 𝑂(1)-, מודאים האם היא קליקה או לא ב 𝑉של 4הקבוצות בגודל -אנו עוברים על כל תתי

)שכן בדומה לסעיף א': בנייתה, זמן וכך גם 𝑂(|𝑉|4)לכל היותר הוא �̃�הצלע. כלומר, גודל |𝑉|4

) ∈ 𝑂(|𝑉|4) זמן .

|𝑂(|�̃�וגודלו הינו 𝑂(|𝑉|4)הינו �̃�בנית הגרף + |�̃�|) = 𝑂(|𝑉|4) רצה בזמן . כלומר, הרדוקציה𝑂(|𝑉|4)כנדרש , .

עתה נראה את נכונותה.

�̃� :טענה ∈ 3 − 𝐶𝑙𝑖𝑞𝑢𝑒 ⇔ 𝐺 ∈ 6 − 𝐶𝑙𝑖𝑞𝑢𝑒 .

:הוכחה

𝐺-נניח ש ∈ 6 − 𝐶𝑙𝑖𝑞𝑢𝑒 כלומר קיימת .𝑈 ⊆ 𝑉 נסמנה: 6קליקה בגודל .𝑈 = {𝑢, 𝑣, 𝑤, 𝑡, 𝑦, 𝑧} נשים .

,𝑢}קבוצה של קליקה הינה בעצמה קליקה, ולכן -לב שכל תת 𝑣, 𝑤, 𝑡} ,היא קליקה{𝑢, 𝑣, 𝑦, 𝑧} היא

,𝑤}-קליקה ו 𝑡, 𝑦, 𝑧} כן, בגרף -היא קליקה. כמו�̃� קימים הקדקודים𝑥𝑢,𝑣 , 𝑥𝑤,𝑡 , 𝑥𝑦,𝑧,. מהגדרת כן,-על

�̃�, כי נובע (𝑥𝑢,𝑣 , 𝑥𝑤,𝑡), (𝑥𝑢,𝑣 , 𝑥𝑦,𝑧), (𝑥𝑤,𝑡 , 𝑥𝑦,𝑧) ∈ �̃� :נגדיר .𝑈 = {𝑥𝑢,𝑣 , 𝑥𝑤,𝑡 , 𝑥𝑦,𝑧} ישנן צלעות בין .

�̃�. לכן 3וגודלה �̃�-קליקה ב 𝑈כל זוג קדקודים ולכן ∈ 3 − 𝐶𝑙𝑖𝑞𝑢𝑒.

�̃� נניח כי ∈ 3 − 𝐶𝑙𝑖𝑞𝑢𝑒 לכן קיימת .𝑈 ⊆ �̃� נסמנה: 3קליקה בגודל .𝑈 = {𝑥𝑢,𝑣 , 𝑥𝑤,𝑡 , 𝑥𝑦,𝑧}היות .

𝑥𝑢,𝑣)קליקה מתקים 𝑈-ו , 𝑥𝑤,𝑡), (𝑥𝑢,𝑣 , 𝑥𝑦,𝑧), (𝑥𝑤,𝑡 , 𝑥𝑦,𝑧) ∈ �̃� מהגדרת .�̃� נובע כי{𝑢, 𝑣, 𝑤, 𝑡} ,

{𝑢, 𝑣, 𝑦, 𝑧} ו-{𝑤, 𝑡, 𝑦, 𝑧} כל אחת, על שלושה קדקודים קליקה ןה𝑥𝑢,𝑣 , 𝑥𝑤,𝑡 , 𝑥𝑦,𝑧 לכן .השונים זה מזה

,𝑢הקדקודים 𝑣, 𝑤, 𝑡, 𝑦, 𝑧 .נשים לב כי שונים זה מזה𝑈 = {𝑢, 𝑣, 𝑤, 𝑡, 𝑦, 𝑧} היא קליקה, וזאת משום

, מתוך אחת מהקליקות 𝐸-שלכל שני קדקודים בה קימת צלע ביניהם ב

{𝑢, 𝑣, 𝑤, 𝑡}, {𝑢, 𝑣, 𝑦, 𝑧}, {𝑤, 𝑡, 𝑦, 𝑧} לכן .𝑈 ⊆ 𝑉 היא קליקה ב-𝐺 לכן 6בגודל .𝐺 ∈ 6 − 𝐶𝑙𝑖𝑞𝑢𝑒.

ג סעיף

6לא קיים אלגוריתם עבור נשים לב שלהוכיח שאם − 𝐶𝑙𝑖𝑞𝑢𝑒 הרץ בזמן𝑂(|𝑉|5)אזי לא קיים אלגוריתם עבור ,

3 − 𝐶𝑙𝑖𝑞𝑢𝑒 הרץ בזמן𝑂(|𝑉|2.5) 3קיים אלגוריתם עבור שקול ללהראות שאם − 𝐶𝑙𝑖𝑞𝑢𝑒 הרץ בזמן

𝑂(|𝑉|2.5) 6אלגוריתם עבור אז קיים − 𝐶𝑙𝑖𝑞𝑢𝑒 הרץ בזמן𝑂(|𝑉|5). .נראה זאת

Page 10: Assignment 6 7 sem B - BGUDesign of Algorithms – Assignment 6 2017 sem B ( , )=0 :( , ) עלצב לשמל ( )= ו ( )= יכ ןייצמ יהשלכ תשק לע [ , ] ןו מס ה רשאכ:הניה

Design of Algorithms – Assignment 6 2017 sem B

3קיים אלגוריתם עבור אם :טענה − 𝐶𝑙𝑖𝑞𝑢𝑒 הרץ בזמן𝑂(|𝑉|2.5) 6אלגוריתם עבור אז קיים − 𝐶𝑙𝑖𝑞𝑢𝑒 הרץ

.𝑂(|𝑉|5)בזמן

:הוכחה

3עבור ,𝐵, שנסמנו אלגוריתםנניח שקיים − 𝐶𝑙𝑖𝑞𝑢𝑒 הרץ בזמן𝑂(|𝑉|2.5) נבנה אלגוריתם, נקרא לו .

𝐴 6, עבור − 𝐶𝑙𝑖𝑞𝑢𝑒 . :האלגוריתם יפעל באופן הבא

o פע ובהינתן מ 𝐺 = (𝑉, 𝐸) 6לבעית − 𝐶𝑙𝑖𝑞𝑢𝑒, את הגרף נבנה�̃� .כמתואר ברדוקציה

o נריץ את אלגוריתם𝐵 על�̃� .ונענה כמוהו

𝐵מובטחת לנו עקב נכונות הרדקוציה מסעיף ב' ונכונות האלגוריתם 𝐴נשים לב שנכונות האלגוריתם

3עבור בעית − 𝐶𝑙𝑖𝑞𝑢𝑒 . ,כלומר𝐴 עונה כן על𝐺 ⇔ 𝐵 עונה כן על�̃� ⇔ ימת ב יק-�̃� קליקה

3בגודל 6קליקה בגודל 𝐺-קימת ב ⇔ ≥ ≤ 𝐺 ∈ 6 − 𝐶𝑙𝑖𝑞𝑢𝑒 ⇔ .

�̃�כפי שהראינו בסעיף ב', זמן בנית . 𝐴נותר לודא הוא את זמן הריצה של אלגוריתם כלומר, כל ש

𝑂(|�̃�|)כן, -זמן. כמו 𝑂(|𝑉|4)לוקח = 𝑂(|𝑉|2) אלגוריתם .𝐵 לוקח𝑂 (|�̃�|2.5

𝑂(|𝑉|5)זמן, שזה (

, כנדרש.𝑂(|𝑉|5)זמן הריצה הינו -זמן. לכן סך

Page 11: Assignment 6 7 sem B - BGUDesign of Algorithms – Assignment 6 2017 sem B ( , )=0 :( , ) עלצב לשמל ( )= ו ( )= יכ ןייצמ יהשלכ תשק לע [ , ] ןו מס ה רשאכ:הניה

Design of Algorithms – Assignment 6 2017 sem B

4שאלה סעיף א

נקודת המפתח כאן היא משמרת מספר הצבות. אינה 3𝑆𝐴𝑇-ל 𝑆𝐴𝑇-בכיתה מ שהרדוקציה שתוארה נראה

:בפסוק הבאלשים לב שעקב הוספת המשתנים החדשים, נוספו גם מספר רב של השמות. נתבונן

𝜑 = (𝑥1 ∨ 𝑥2 ∨ 𝑥3 ∨ 𝑥4)

ונבנה את הפסוק: 𝑦1 נוסיף משתנה חדשהשמות מספקות. ברדוקציה אנו 15יש לו

𝑓(𝜑) = (𝑥1 ∨ 𝑥2 ∨ 𝑦1) ∧ (𝑦1

∨ 𝑥3 ∨ 𝑥4)

, ולכן מספר ההשמות 𝑓(𝜑)ניתן להרחיב להשמה מספקת עבור 𝜑כפי שראינו בכיתה, כל השמה מספקת עבור

המספקות 𝜑. נבחין כי אחת השמות עבור 𝜑-גדול או שווה ממספר ההשמות המספקות ל 𝑓(𝜑)-המספקות ל

,𝑥1הינה 𝑥2, 𝑥3, 𝑥4 ← 𝑡𝑟𝑢𝑒ור . השמה זו ניתנת להרחבה לשתי השמות מספקות עב𝑓(𝜑) אחת בה ,

𝑦1 ← 𝑡𝑟𝑢𝑒 והשניה בה𝑦1 ← 𝑓𝑎𝑙𝑠𝑒 משמע, ל .-𝑓(𝜑) השמות מספקות. 16יש לפחות

בסעיף

𝜑נתבונן בפסוק = (𝑥1 ∨ 𝑥2) ↔ 𝑥3 :טבלת האמת שלו הינה .

לא מספקת. נעשה זאת בדרך הבאה: 𝜑, שמסתפק אם ורק אם 𝐶𝑁𝐹, שאינו בצורת 𝜏נבנה בתחילה פסוק

. נשים לב שבשביל שהפסוק יקבל ערך 𝑓𝑎𝑙𝑠𝑒מקבל ערך 𝜑נבנה פסוקית לכל אחת מן השורות שעבורן

𝑓𝑎𝑙𝑠𝑒 פסוק ה, די שאחת מהן תתקים. לכן𝜏 השקול ל"מתי𝜑 מקבל𝑓𝑎𝑙𝑠𝑒:הינו "

𝜏 = (𝑥1 ∧ 𝑥2 ∧ 𝑥3) ∨ (𝑥1 ∧ 𝑥2 ∧ 𝑥3) ∨ (𝑥1 ∧ 𝑥2 ∧ 𝑥3) ∨ (𝑥1 ∧ 𝑥2 ∧ 𝑥3)

. אז:𝜓". נסמנה: 𝑡𝑟𝑢𝑒מקבל 𝜑לכן שלילת הפסוק תהיה שקולה ל"מתי

𝜓 = (𝑥1 ∨ 𝑥2 ∨ �̅�3) ∧ (𝑥1 ∨ �̅�2 ∨ 𝑥3) ∧ (�̅�1 ∨ 𝑥2 ∨ 𝑥3) ∧ (�̅�1 ∨ �̅�2 ∨ 𝑥3)

,𝑥1משתמש אך ורק במשתנים , והוא אכן, כנדרש𝐶𝑁𝐹אכן מתקבל בצורת 𝜓מורגן, -עקב חוקי דה 𝑥2, 𝑥3.

גסעיף

𝜑בהינתן פסוקית = 𝑥1 ∨ 𝑥2 ∨ ⋯ ∨ 𝑥𝑡 נבנה את הפסוק

𝜓 = (𝑥1 ↔ 𝑦1 ) ∧ ((𝑦1 ∨ 𝑥2) ↔ 𝑦2) ∧ ⋯ ∧ ((𝑦𝑡−1 ∨ 𝑥𝑡) ↔ 𝑦𝑡) ∧ ( 𝑦𝑡 ).

,𝑎1תהי :טענה … , 𝑎𝑡 המספקת את שמהה𝜑יחידה שמה. אזי קיימת ה𝑏1, … , 𝑏𝑡 למשתנים 𝑦1, … , 𝑦𝑡 כך

,𝑎1-ש … , 𝑎𝑡 , 𝑏1, … , 𝑏𝑡 המספקת את שמהההיא𝜓.

:הוכחה

,𝑎1נשים לב שאם ההשמה … , 𝑎𝑡 מספקת את𝜑 אחד מבין לפחות אזי היא מספקת𝑥1, 𝑥2, … , 𝑥𝑡.

1יהי ≤ 𝑖 ≤ 𝑡 האינדקס כך ש-𝑥𝑖 כך ש המינימליהוא-𝑎𝑖 = 𝑡𝑟𝑢𝑒 אז .𝑎1, … , 𝑎𝑖−1 = 𝑓𝑎𝑙𝑠𝑒 .:נגדיר

𝑏1, … , 𝑏𝑖−1 = 𝑡𝑟𝑢𝑒 ו-𝑏𝑖 , … , 𝑏𝑡 = 𝑓𝑎𝑙𝑠𝑒 . לכל𝑗 < 𝑖 ההשמה תספק את((𝑦𝑗−1

∨ 𝑥𝑗) ↔ 𝑦𝑗כי (

𝑏𝑗−1 = 𝑏𝑗 = 𝑡𝑟𝑢𝑒 ו-𝑎𝑗 = 𝑓𝑎𝑙𝑠𝑒 ולכן מתקים((𝐹 ∨ 𝐹) ↔ 𝐹) . עבור𝑗 = 𝑖 מה תספק את ההש

𝝋 𝒙𝟑 𝒙𝟐 𝒙𝟏

true false false false

false true false false

false false true false

true true true false

false false false true

true true false true

false false true true

true true true true

Page 12: Assignment 6 7 sem B - BGUDesign of Algorithms – Assignment 6 2017 sem B ( , )=0 :( , ) עלצב לשמל ( )= ו ( )= יכ ןייצמ יהשלכ תשק לע [ , ] ןו מס ה רשאכ:הניה

Design of Algorithms – Assignment 6 2017 sem B

((𝑦𝑖−1

∨ 𝑥𝑖) ↔ 𝑦𝑖𝑏𝑖−1כי הרי ( = 𝑎𝑖 = 𝑡𝑟𝑢𝑒 ו-𝑏𝑖 = 𝑓𝑎𝑙𝑠𝑒 ואז אכן מתקים((𝐹 ∨ 𝑇) ↔ 𝑇) .

𝑗עבור > 𝑖 את תספק ההשמה ((𝑦𝑗−1

∨ 𝑥𝑗) ↔ 𝑦𝑗𝑏𝑗−1שכן ( = 𝑏𝑗 = 𝑓𝑎𝑙𝑠𝑒 מתקים ואכן(𝑇 ↔ 𝑇) .

,𝑎1נקבל כי ההשמה לכן … , 𝑎𝑡 , 𝑏1, … , 𝑏𝑡 תספק את ,𝜓.

𝑎𝑖-הוא האינדקס הקטן ביותר כך ש 𝑖-נזכור ש . 𝜓נראה כי זו ההשמה היחידה המספקת את = 𝑡𝑟𝑢𝑒

𝑦))ומכיון שההשמה מספקת את 𝑖−1

∨ 𝑥𝑖) ↔ 𝑦𝑖𝑏𝑖אזי ( = 𝑓𝑎𝑙𝑠𝑒 באופן דומה לכל .𝑗 > 𝑖 נקבל כי

𝑏𝑖+1, … , 𝑏𝑗 = 𝑓𝑎𝑙𝑠𝑒 אם .𝑖 > ,𝑎1אז 1 … , 𝑎𝑖−1 = 𝑓𝑎𝑙𝑠𝑒כיון ש . במקרה זה, מ-𝑥1 ↔ 𝑦1

מסתפק

𝑏1אזי = 𝑡𝑟𝑢𝑒 ובאופן אינדוקטיבי, היות ו ,-𝑎2, … , 𝑎𝑖−1 = 𝑓𝑎𝑙𝑠𝑒 נקבל כי𝑏2, … , 𝑏𝑖−1 = 𝑡𝑟𝑢𝑒 לכן .

,𝑏1ההשמה שהגדרנו עבור … , 𝑏𝑡 היא היחידה שתספק את𝜓.

,𝑎1אם :טענה … , 𝑎𝑡 , 𝑏1, … , 𝑏𝑡 מספקת את𝜓 אזי ,𝑎1, … , 𝑎𝑡 מספקת של שמהה𝜑

:הוכחה

,𝑎1תהי … , 𝑎𝑡 , 𝑏1, … , 𝑏𝑡 מספקת את השמה ה𝜓 . ההשמה מספקת את כל𝜓 . 1יהי ≤ 𝑖 ≤ 𝑡

𝑏𝑖-כך ש האינדקס המינימלי = 𝑓𝑎𝑙𝑠𝑒 אחד כזה, כי . בהכרח קיים(𝑦𝑡𝑖אם . מסתפק ( = אז 1

𝑏1 = 𝑓𝑎𝑙𝑠𝑒 והיות ו-(𝑥1 ↔ 𝑦1

𝑎1מסתפק אז ( = 𝑡𝑟𝑢𝑒 ולכן𝜑 אחרת, מסתפק .𝑖 > לכן. 1

𝑏1 =. . . = 𝑏𝑖−1 = 𝑡𝑟𝑢𝑒כן-. על 𝑎1 =. . . = 𝑎𝑖−1 = 𝑓𝑎𝑙𝑠𝑒 .נבחין שבכדי לספק את החלק

((𝑦𝑖−1

∨ 𝑥𝑖) ↔ 𝑦𝑖𝑎𝑖חייב להתקים ( = 𝑡𝑟𝑢𝑒 , ולכן ההשמה𝑎1, … , 𝑎𝑡 בהכרח תספק את𝜑 שכן ,

,𝑥1די לספק ולו אחד מבין המשתנים 𝜑בשביל לספק את … , 𝑥𝑡 .

דסעיף

עבור בעית 3𝐶𝑁𝐹בצורת 𝜓נמיר אותו לפסוק 𝑆𝐴𝑇עבור בעית משתנים 𝑛בעל 𝐶𝑁𝐹בצורת 𝜑בהינתן פסוק

3𝑆𝐴𝑇 :כך שהרדוקציה תהיה משמרת הצבות. נסמן ,𝜑 = 𝐶1 ∧ 𝐶2 ∧ … ∧ 𝐶𝑚 1אשר לכל כ ≤ 𝑖 ≤ 𝑚 :𝐶𝑖 היא

𝑙𝑖,1נראה מהצורה 𝐶𝑖נשים לב שכל . 𝜑-ית ב -𝑖-הפסוקית ה ∨ 𝑙𝑖,2 ∨ … ∨ 𝑙𝑖,𝑘𝑖 אשר כ

1לכל ≤ 𝑗 ≤ 𝑘𝑖 :𝑙𝑖,𝑗 ליטרל. כלומר, כל𝐶𝑖 כן, -נראה מהצורה של הפסוק בסעיף ג'. על

,𝑦𝑖,1נוסיף עבורו משתנים חדשים … , 𝑦𝑖,𝑘𝑖 , כמתואר בסעיף ג'. 𝐷𝑖וק וניצור את הפס

𝐷𝑖כלומר: = (𝑙𝑖,1 ↔ �̅�𝑖,1 ) ∧ ((�̅�𝑖,1 ∨ 𝑙𝑖,2) ↔ �̅�𝑖,2) ∧ ⋯ ∧ ((�̅�𝑖,𝑘𝑖−1 ∨ 𝑙𝑖,𝑘𝑖) ↔ �̅�𝑖,𝑘𝑖

) ∧ (𝑦𝑖,𝑘𝑖

עתה, נשים .(

1 עבור) 𝐷𝑖,𝑗לב שכל פסוקית ≤ 𝑗 ≤ 𝑘𝑖 של )𝐷𝑖 היא מהצורה(𝑎 ∨ 𝑏) ↔ 𝑐 להמרה של סעיף ב', ולכן ניתנת

𝐷𝑖,1, כפי שכבר ראינו. במקרי הקצה של הפסוקית הראשונה 3𝐶𝑁𝐹לפסוק שקול בצורת = 𝑙𝑖,1 ↔ �̅�𝑖,1 ולכן

𝑙𝑖,1)-ניתן לרשום אותה גם כ ∨ 𝑙𝑖,1) ↔ �̅�𝑖,1 ואז היא בדיוק מהצורה של סעיף ב', ומקרה הקצה השני של ,

𝐷𝑖,𝑘𝑖+1הפסוקית האחרונה = 𝑦𝑖,𝑘𝑖

, ולכן נותיר אותה כמו שהיא. כלומר, נבנה, כמתואר 3𝐶𝑁𝐹היא כבר בצורת

𝐸𝑖. נשרשר אותם ונגדיר: 𝐷𝑖,𝑗פסוק השקול ל 3𝐶𝑁𝐹בצורת 𝐸𝑖,𝑗בסעיף ב', פסוק =

𝑘𝑖

⋀ 𝐸𝑖,𝑗

𝑗=1

∧ 𝐷𝑖,𝑘𝑖+1 ניזכר כי(

𝐷𝑖,𝑘𝑖+1 = 𝑦𝑖,𝑘𝑖

. לכן 𝐶𝑖השקול לפסוקית 3𝐶𝑁𝐹ניזכר שכל זה היה רק כדי למצוא פסוק בצורת . (

𝜓נגדיר: =𝑚 ⋀ 𝐸𝑖

𝑖=1

.

מכן נוכיח נכונותה. ננתח -תחילה, ננתח את זמן הריצה של הרדוקציה ונראה שהיא אכן פולינומיאלית, ולאחר

ת, אנו מוסיפים משתנים ככמות הליטרלים בפסוקי 𝐷𝑖כאשר אנו בונים את . 𝐶𝑖את עלות ההמרה של פסוקית

𝑂(𝑛)ויש בו לכל היותר 𝑂(𝑛)עודנו 𝐷𝑖לכן גודל הפסוק . חדשים לכל היותר 3משתנים 𝑂(𝑛)-כלומר מדובר ב

, 𝑂(1)הוא 𝐷𝑖,𝑗כמתואר בסעיף ב'. גודל כל 3𝐶𝑁𝐹בצורת 𝐸𝑖,𝑗אנו בונים פסוק 𝐷𝑖,𝑗עבור כל פסוק . פסוקיות

𝐸𝑖לפסוק 𝐶𝑖כלומר, עלות ההמרה של פסוקית . 𝑂(𝑛)לוקחת 𝐸𝑖. לכן בניית 𝑂(1)לוקחת 𝐸𝑖,𝑗ולכן בניית כל

𝑂(𝑚זמן הריצה הינו -פסוקיות ולכן סך 𝑚. אנו מבצעים זאת עבור 𝑂(𝑛)הינה 3𝐶𝑁𝐹בצורת ⋅ 𝑛) שזה ,

. פולינומיאלי

𝑛כל פסוקית גודל הכלליות, שניתן להניח, ללא הגבלת 3 או לא עם שלילה אוללא שלילה או, כי כל משתנה יכול להופיע ≤

ומעלה פעמיםהפסוקית בודאות תסתפק ולכן ניתן למחוק אותה. אם יופיע יותר –להופיע. אם משתנה יופיע גם הוא וגם שלילתו 𝑘𝑖. לכן ואין זה ישנה את הפסוקית את ההופעות המיותרותניתן למחוק – רק המשתנה או רק שלילתו ≤ 𝑛 ולכן יתוספו לכל

משתנים חדשים על כל פסוקית. 𝑛היותר

Page 13: Assignment 6 7 sem B - BGUDesign of Algorithms – Assignment 6 2017 sem B ( , )=0 :( , ) עלצב לשמל ( )= ו ( )= יכ ןייצמ יהשלכ תשק לע [ , ] ןו מס ה רשאכ:הניה

Design of Algorithms – Assignment 6 2017 sem B

.𝜓-זהה לכמות ההשמות המספקות ל 𝜑-כמות ההשמות המספקות ל :טענה

:הוכחה

נשים .≥מכן נוכיח -ולאחר 𝜓-כמות ההשמות המספקות ל ≤ 𝜑-נוכיח שכמות ההשמות המספקות ל

𝜓 -ולכן כמות ההשמות המספקות ל 𝐸𝑖,𝑗בפסוק שקול 𝐷𝑖,𝑗לב כי ברדוקציה החלפנו כל =𝑚 ⋀ 𝐸𝑖

𝑖=1

שווה

𝜒-לכמות ההשמות המספקות ל =𝑚 ⋀ 𝐷𝑖

𝑖=1

.

רחיב אותה נראה שניתן לה .𝑠, נסמנה: . נתבונן באחת מהןתוהשמות מספק 𝑘 קימות 𝜑-נניח של

השמות מספקות. 𝑘לפחות 𝜒-נסיק כי ל .𝜒עבור ∗𝑠להשמה מספקת

𝑠 מספקת את𝜑 1לכן לכל ו ≤ 𝑖 ≤ 𝑚 :𝑠 מספקת את𝐶𝑖 ניתן להרחיב את ש. בסעיף ג' ראינו𝑠 עם

,𝑏𝑖,1השמות … , 𝑏𝑖,𝑘𝑖,𝑦𝑖,1משתנים ל … , 𝑦𝑖,𝑘𝑖

נאחד את . 𝐷𝑖ההשמה המורחבת תספק את כך ש

,𝑥1על המשתנים המשותפים 𝑠ההשמות המורחבות, ונשים לב שהיות וכולן מוגדרות כמו … , 𝑥𝑛

חּוד ההשמות אפשרי ואינו יוצר סתירה. נסמן את והיות והמשתנים החדשים ייחודיים לכל השמה, א

.𝜒מספקת את ∗𝑠ולכן 𝐷𝑖מספקת כל ∗𝑠כן, -. אם∗𝑠-ההשמה הנוצרת ב

,𝑠1שאם נשים לב 𝑠2 השמות שונות המספקות את𝜑 אז ההרחבות שלהן𝑠1𝑠2-ו ∗

הן השמות שונות ∗

.פי הסעיפים הקודמים(-)על 𝜒המספקות את

, ומזה 𝜑עבור 𝑠השמה מספקת שכזו ∗𝑠 נבנה מכל השמה. תומספק ותהשמ 𝑘ת וקימ 𝜒-נניח של

השמות מספקות. 𝑘לפחות 𝜑-נסיק כי ל

,𝑥1מוגדרת על כל המשתנים ∗𝑠נשים לב כי ההשמה … , 𝑥𝑛 , 𝑦1,1, … , 𝑦1,𝑘1, … , 𝑦𝑚,1, … , 𝑦𝑚,𝑘𝑚

. תהא

𝑠 ההשמה של𝑠∗ מצומצמת למשתנים𝑥1, … , 𝑥𝑛מספקת כל פי סעיף ג' חלק ב' ההשמה -. על𝐶𝑖 ולכן

𝜑מספקת את =𝑚 ⋀ 𝐶𝑖

𝑖=1

′∗𝑠. נשים לב שאין אף השמה נוספת ≠ 𝑠∗ ה לאותה ההשמה אשר מוביל𝑠 ,

′∗𝑠וגם להשמה ∗𝑠גם להשמה 𝑠היה ניתן להרחיב את –כי אילו היתה , בסתירה לכך שראינו בסעיף

.שניתן להרחיבה להשמה אחת בדיוקחלק א' ג'

נסיק את המסקנה נסיק כי: 𝜓-זהה למספר ההשמות המספקות ל 𝜑-היות ומספר ההשמות המספקות ל

𝜓: מסקנה ∈ 3𝑆𝐴𝑇 ⇔ 𝜑 ∈ 𝑆𝐴𝑇

כן נסכם כי הרדוקציה פולינומיאלית ומשמרת מספר השמות.-על

בונוס -ה סעיף

𝐴ניזכר ברעיון של הרדוקציה מבעיה כלשהי ∈ 𝑁𝑃 ל-𝑆𝐴𝑇 לוין: אנו יודעים כי -במשפט קוק𝐴 ∈ 𝑁𝑃 ולכן קיים

,𝑉(𝑥לה אלגוריתם ו דּוא 𝑦) כך ש-𝑥 ∈ 𝐴 ⇔ קיים עד𝑦 כך ש-𝑉(𝑥, 𝑦) = 𝑡𝑟𝑢𝑒 היות ו . בזמן פולינומיאלי-𝑦 לא

ידוע לנו, אנו נ י צג אותו באמצעות משתנים בוליאנים, כאשר כל משתנה בוליאני אומר האם התו שמספרו כך וכך

חד ערכית את העד. -השמה מסוימת של המשתנים הללו מגדירה בצורה חדשווה לתו מסוים. כלומר, 𝑦-ב

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

לכל חישוב קיימת השמה יחידה על המשתנים שתייצג אותו. בפרט, עבור ערכי. -החישוב נקבע באופן חד 𝑦ועד

𝑦עבור עד משמע, כן קיימת השמה יחידה על המשתנים שתייצג אותו. -גם 𝑦עד ו 𝑥של קלט היחיד החישוב

ערכי -הם מגדירים באופן חד , כפי שציינו,אחת שתספק את המשתנים הללו, שכןאך ורק השמה מסוים ישנה

. 𝑦את העד

𝐺⟩יהיו . 𝐶𝑙𝑖𝑞𝑢𝑒עתה נתמקד בבעית = (𝑉, 𝐸), 𝑘⟩ ∈ 𝐶𝑙𝑖𝑞𝑢𝑒 נניח שיש קליקה יחידה .𝑈 ⊆ 𝑉 בגודל|𝑈| ≥ 𝑘 .

כלומר, . בדיוק 𝑘שהינה קליקה בגודל 𝑉קבוצה של -העד הוא תת 𝐶𝑙𝑖𝑞𝑢𝑒ניזכר שבאלגוריתם הו דּוא עבור

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

,𝑓𝑐𝑙(𝐺ה בדיוק השמה אחת שתספק את ישנ 𝑘) אכן .𝑈 קיימת השמה יחידה ולכן היחיד העד הוא𝑠 המגדירה ,

,𝑓𝑐𝑙(𝐺מספקת את אשר ,𝑈חד ערכי את העד -באופן חד 𝑘).