You are on page 1of 79

‫אלגוריתמים מקורבים לפתרון‬

‫בעיית הספיקות המשוקללת המרבית‬
‫(‪)Max-W-SAT‬‬
‫עבודת סמינר לתואר ראשון‬
‫באוניברסיטה הפתוחה‬

‫מגיש‪ :‬יובל מדר‬
‫מנחה‪ :‬אלעזר בירנבוים‬

‫‪2‬‬

‫תוכן עניינים‬
‫פרק ‪( 1‬מבוא)‬
‫‪ - 1.1‬במה עוסק הסמינר?‬

‫עמ' ‪2‬‬

‫‪ - 1.2‬בעיות אופטימיזציה‬

‫עמ' ‪4‬‬

‫‪ - 1.3‬בעיית הספיקות‬

‫עמ' ‪7‬‬

‫פרק ‪( 2‬אלגוריתמים דטרמיניסטיים)‬
‫‪ - 2.1‬האלגוריתמים החמדנים של ג'ונסון‬

‫עמ' ‪9‬‬

‫‪ - 2.1.1‬האלגוריתם הראשון של ג'ונסון‬

‫עמ' ‪9‬‬

‫‪ - 2.1.2‬האלגוריתם השני של ג'ונסון‬

‫עמ' ‪14‬‬

‫‪ - 2.2‬חיפוש מקומי‬

‫עמ' ‪22‬‬

‫פרק ‪( 3‬אלגוריתמים אקראיים)‬
‫‪ - 3.1‬האלגוריתם ‪Random‬‬

‫עמ' ‪25‬‬

‫‪ - 3.2‬שיטת ההסתברויות המותנות‬

‫עמ' ‪26‬‬

‫‪ - 3.3‬האלגוריתם ‪GenRandom‬‬

‫עמ' ‪27‬‬

‫‪ - 3.4‬שיטת ‪GenApprox‬‬

‫עמ' ‪28‬‬

‫‪ - 3.4.1‬אלגוריתם ¾‪-‬קירוב‬

‫עמ' ‪30‬‬

‫‪ - 3.4.2‬אלגוריתם ‪Goemans-Williamson‬‬

‫עמ' ‪35‬‬

‫‪ - 3.5‬אלגוריתם ‪Yannakakis‬‬

‫עמ' ‪39‬‬

‫נספח (הוכחת הלמה מסעיף ‪)2.1.2‬‬

‫עמ' ‪64‬‬

‫ביבליוגרפיה‬

‫עמ' ‪70‬‬

3

‫‪4‬‬

‫‪1‬‬

‫מבוא‬

‫‪1.1‬‬

‫במה עוסק הסמינר?‬

‫בסמינר זה מנותחים מספר אלגוריתמי קירוב פולינומיים לבעיית הספיקות המשוקללת המרבית‪.‬‬
‫הפרק הראשון‬
‫הפרק הראשון בסמינר מהווה הקדמה לעבודה‪ ,‬ונוסף לעמודים אלה‪ ,‬מספק רקע בסיסי המסייע למעיין‬
‫בסמינר שאינו בקיא בתחום‪ .‬הקדמה זו מתייחסת למושגים וסימונים מקובלים בתחום המופיעים בהמשך‪,‬‬
‫ודנה באופן כללי בבעיות אופטימיזציה‪ ,‬במחלקות בעיות אופטימיזציה ובבעיית הספיקות המרבית‬
‫(המשוקללת והבלתי משוקללת) בפרט‪.‬‬
‫הפרק השני‬
‫הפרק השני בסמינר מחולק לשלושה חלקים ועוסק בשלושה אלגוריתמים דטרמיניסטיים לפתרון הבעיה‪:‬‬
‫שני האלגוריתמים שהוצגו על ידי ג'ונסון במאמר [‪ ]3‬משנת ‪ ,1974‬ואלגוריתם החיפוש המקומי‪.‬‬
‫האלגוריתם הראשון של ג'ונסון פועל על ידי בחירה סדרתית של ערכי המשתנים‪ ,‬כך שכל‬
‫בחירה מביאה לשיפור מקסימלי במשקל הפסוקיות המסופקות‪ .‬בסמינר מוכח שאלגוריתם זה פועל בזמן‬
‫לינארי‪ ,‬ומוכח שמדובר באלגוריתם ½‪-‬קירוב ו‪-½-‬קירוב בלבד‪.‬‬
‫האלגוריתם השני של ג'ונסון מחוכם יותר מהאלגוריתם הראשון‪ ,‬ומקטין פי ‪ 2‬את ערכה של‬
‫פסוקית עבור כל ליטרל חופשי אשר נותר בה‪( .‬כיוון שעבור חצי מהשמות ערכי האמת‪ ,‬יביא ליטרל זה‬
‫לסיפוק הפסוקית) בסמינר מוכח שאלגוריתם זה דורש גם הוא זמן ריצה לינארי‪ ,‬שמדובר באלגוריתם‬
‫‪-2/3‬קירוב‪ ,‬ו‪-2/3-‬קירוב בלבד‪( .‬ניתן לציין שעובדה זו חמקה מג'ונסון כאשר הציג את האלגוריתם‪.‬‬
‫ג'ונסון טען כי מדובר באלגוריתם ½‪-‬קירוב בלבד‪ ,‬כמו האלגוריתם הראשון) הוכחת ההערכה ההדוקה‬
‫לביצועי האלגוריתם מתבססת על ההוכחה המופיעה במאמר [‪ ]2‬משנת ‪ ,1997‬בו הוכחה טענה זו‬
‫לראשונה‪ 23 ,‬שנים לאחר שהאלגוריתם הוצג על ידי ג'ונסון‪.‬‬
‫אחרון בפרק זה הוא אלגוריתם החיפוש המקומי‪ .‬אלגוריתם זה כולל בחירת השמת ערכי אמת‬
‫שרירותית והחלפת ערכו של משתנה יחיד לשיפור משקל הפסוקיות המסופקות מדי איטרציה עד להגעה‬
‫לנקודת מקסימום מקומית‪ ,‬ממנה לא ניתן לשפר עוד את הפתרון על ידי החלפת ערכו של משתנה יחיד‪.‬‬
‫מוכח כי אלגוריתם זה הוא אלגוריתם ½‪-‬קירוב‪ ,‬כאלגוריתם הראשון של ג'ונסון‪.‬‬

‫‪5‬‬
‫הפרק השלישי‬
‫הפרק השלישי בסמינר עוסק במספר אלגוריתמים אקראיים לפתרון הבעיה המשיגים ביצועים טובים אף‬
‫יותר מאלה הדטרמיניסטיים‪ .‬בפרק מופיעה "שיטת ההסתברויות המותנות"‪ ,‬שיטה כללית לדה‪-‬‬
‫רנדומיזציה של אלגוריתמים אקראיים מסוימים ההופכת אותם לאלגוריתמים דטרמיניסטיים המבטיחים‬
‫ביצועים השווים לביצועיהם הממוצעים לפני ההמרה‪ .‬בפרק זה מוצגים חמישה אלגוריתמים‪ :‬שני‬
‫האלגוריתמים הפשוטים ‪ Random‬ו‪ GenRandom-‬אשר בוחרים את השמת ערכי האמת באקראי לפי‬
‫התפלגות נתונה‪ ,‬אלגוריתם ה‪-¾-‬קירוב של ‪ Goemans-Williamson‬אותו הציגו השניים במאמר [‪]8‬‬
‫משנת ‪ ,1994‬אלגוריתם ¾‪-‬קירוב פשוט נוסף המנצל את שיטתם של ‪ Goemans-Williamson‬באופן אחר‪,‬‬
‫והאלגוריתם של ‪ ,Yannakakis‬גם הוא אלגוריתם ¾‪-‬קירוב‪ ,‬אשר הופיע במאמר [‪ ,] 6‬גם הוא משנת ‪ .1994‬ניתן‬
‫להשתמש בשיטת ההסתברויות המותנות על מנת להפוך את כל האלגוריתמים הללו לדטרמיניסטיים‪.‬‬
‫האלגוריתם ‪ Random‬בוחר באקראי את ערכו של כל משתנה בהתפלגות אחידה‪ .‬בסמינר מודגם כי‬
‫שימוש בשיטת ההסתברויות המותנות עבור אלגוריתם זה מפיק את האלגוריתם השני של ג'ונסון‪ ,‬עובדה המציגה‬
‫דרך אינטואיטיבית יותר להתבונן באלגוריתם‪.‬‬
‫האלגוריתם ‪ GenRandom‬הוא הכללה מתבקשת של האלגוריתם ‪ – Random‬האלגוריתם מקבל‬
‫כקלט סדרת הסתברויות ובוחר עבור כל משתנה את ערך האמת המתאים לו באקראי לפי ההתפלגות שנקבעה‪.‬‬
‫אלגוריתם ‪ Goemans-Williamson‬מוצא בעיית תכנון לינארי המתאימה לבעיית הקלט‪ ,‬פותר אותה‬

‫(לבעיית התכנון הלינארי פתרון פולינומי)‪ ,‬ומסיק מהפתרון המתקבל סדרת הסתברויות עבור ‪GenRandom‬‬
‫אשר מבטיחה ¾‪-‬קירוב לכל הפחות‪ .‬בסמינר מתואר האלגוריתם‪ ,‬ומוכחים ביצועיו‪ .‬לצד אלגוריתם זה מופיע‬
‫אלגוריתם ¾‪-‬קירוב נוסף המנצל באופן שונה את פתרון בעיית התכנון הלינארי‪ ,‬ומשיג גם הוא ¾‪-‬קירוב‪.‬‬
‫האלגוריתם של ‪ Yannakakis‬נעזר בבניית סדרת רשתות זרימה ומציאת זרימה מקסימלית עבורן על‬
‫מנת להמיר את נוסחת הקלט בנוסחה שקולה עבורה קל למצוא השמה (אקראית) המבטיחה ¾‪-‬קירוב‪ .‬אלגוריתם זה‬
‫סבוך בהרבה מהאלגוריתם של ‪ Goemans‬ו‪ .Williamson-‬בסמינר מוסבר האלגוריתם‪ ,‬ומוכחים ביצועיו‬
‫באופן מלא‪.‬‬

6

‫‪7‬‬

‫‪1.2‬‬

‫בעיות אופטימיזציה‬

‫ראשית‪ ,‬תוגדר בעיית אופטימיזציה‪ ,‬והגדרה זו תודגם עבור בעיית הספיקות המשוקללת המרבית‪.‬‬
‫הגדרה (בעיית אופטימיזציה)‬
‫בעיית אופטימיזציה ‪ P‬היא רביעייה סדורה מהצורה‪:‬‬
‫‪P   I , sol ,  , type ‬‬
‫כאשר‪:‬‬
‫‪ - I )1‬קבוצת הקלטים לבעיה‪.‬‬
‫‪ - sol )2‬התאמה הנותנת לכל ‪ i  I‬את אוסף הפתרונות המתאימים ל‪. i -‬‬
‫‪ -  )3‬פונקצית המטרה‪ .‬עבור ‪ x  I‬ו‪   x, y  , y  sol  x  -‬הוא ערך הפתרון ‪. y‬‬
‫מטרת בעיית האופטימיזציה היא מציאת ‪ y  sol  x ‬עבורו ‪   x, y ‬אופטימלי‬
‫עבור כל ‪ x‬המתקבל כקלט‪.‬‬
‫סימונים‬
‫*‬
‫ערכה האופטימלי של ‪ y    x, y ‬מסומן ב‪.   x  -‬‬

‫בהמשך ייכתב לעתים ‪   y ‬ו‪  * -‬כאשר ‪ x‬ברור מההקשר‪.‬‬
‫כאשר גם ‪ y‬יהיה ברור מההקשר‪ ,‬ייכתב ‪ ‬במקום ‪.   x, y ‬‬
‫‪ - type )4‬סוג בעיית האופטימיזציה‪) Max / Min ( .‬‬
‫עבור ‪ Max-W-SAT‬מתקיים‪:‬‬
‫‪ I‬היא קבוצת נוסחאות בוליאניות בצורת ‪ CNF‬עם משקלים לפסוקיותיהן‪.‬‬
‫‪ sol‬מתאימה לכל נוסחה את השמות ערכי האמת האפשריות עבור כל המשתנים המופיעים בה‪.‬‬
‫‪   F, ‬היא סכום משקלי הפסוקיות המסופקות על ידי ההשמה ‪ ‬בנוסחה ‪. F‬‬
‫‪ type  Max‬כיוון ש‪ Max-W-SAT-‬היא בעיית מקסימיזציה‪.‬‬

‫‪8‬‬

‫הגדרה (מחלקת הסיבוכיות ‪) NPO‬‬
‫מחלקת הסיבוכיות ‪ NPO‬היא קבוצת כל בעיות האופטימיזציה המקיימות את התנאים הבאים‪:‬‬
‫‪)1‬ניתן להכריע בזמן פולינומי אם קלט נתון חוקי לבעיה‪.‬‬
‫‪)2‬בהינתן קלט ‪ x‬לבעיה‪ ,‬ו‪ y -‬כלשהו‪ ,‬ניתן להכריע בזמן פולינומי האם‬
‫‪. y  sol  x ‬‬
‫‪)3‬גדלי הפתרונות לבעיה חסומים פולינומית על ידי גודל הקלט‪( .‬כלומר‪ ,‬קיים‬
‫פולינום ‪ q‬כך שלכל ‪) y  q  x  : x  I , y  sol  x ‬‬
‫‪)4‬הפונקציה ‪   x, y ‬ניתנת לחישוב בזמן פולינומי‪( .‬הן ב‪ x -‬והן ב‪) y -‬‬
‫הקושי בפתרון בעיות ‪ NPO‬נעוץ בעובדה שמספר הפתרונות האפשריים לקלט ‪ x‬נתון עשוי להיות‬
‫‪qx‬‬
‫מעריכי ב‪( . q  x  -‬מסעיף ‪ 3‬נובע כי ‪ sol  x   c‬כאשר ‪ c‬הוא מספר האותיות בא"ב הקלט)‬

‫לכל בעיה השייכת ל‪ NPO -‬קיים אלגוריתם לא דטרמיניסטי פולינומי לפתרונה‪:‬‬
‫בהינתן קלט ‪ , x  I‬יש לבדוק באופן בלתי דטרמיניסטי את שייכותה של כל מחרוזת ‪ y‬מאורך‬
‫הקטן מ‪ q  x  -‬ל‪ , sol  x  -‬לחשב עבור אלה שכן את ‪(   x, y ‬בזמן פולינומי) ולהחזיר את‬
‫‪ y‬עבורו ‪   x, y ‬מקסימלי‪.‬‬
‫הגדרה (אלגוריתם קירוב; אלגוריתם ‪- ‬קירוב)‬
‫אלגוריתם ‪ A‬ייקרא אלגוריתם קירוב לבעיית אופטימיזציה ‪ P‬אם לכל ‪. A  x   sol  x  , x  I‬‬
‫אלגוריתם קירוב ‪ A‬ייקרא אלגוריתם ‪- ‬קירוב (עבור ‪ ) 0    1‬אם לכל ‪ x  I‬מתקיים‪:‬‬

‫‪  x, A  x     *  x ‬‬
‫הגדרה (מחלקת הסיבוכיות ‪) APX‬‬
‫מחלקת הסיבוכיות ‪ APX‬היא מחלקת כל בעיות ‪ NPO‬להן קיים אלגוריתם ‪- ‬קירוב פולינומי עבור‬
‫‪ 0    1‬כלשהו‪.‬‬

‫‪9‬‬
‫בהמשך יוצגו מספר אלגוריתמי ‪- ‬קירוב עבור ‪ Max-W-SAT‬אשר יראו שבעיה זו שייכת ל‪. APX -‬‬
‫(למשל‪ ,‬האלגוריתם הראשון של ג'ונסון‪ ,‬המוצג בסעיף ‪ ,2.1.1‬הוא אלגוריתם ½‪-‬קירוב‪ ,‬והאלגוריתם‬
‫‪3‬‬
‫השני של ג'ונסון‪ ,‬המוצג בסעיף ‪ ,2.1.2‬הוא אלגוריתם‬
‫‪4‬‬

‫‪-‬קירוב)‬

‫הגדרה ( ‪ - PTAS‬סכמת קירוב פולינומית)‬
‫אלגוריתם ‪ A‬ייקרא סכמת קירוב פולינומית (באנגלית‪Polynomial time approximation :‬‬
‫‪ ,scheme‬ובקיצור ‪ )PTAS‬לבעיה ‪ P‬אם לכל ‪ x  I‬ו‪ 0    1 -‬רציונלי‪ ,‬האלגוריתם‬
‫‪ B  x   A  x,  ‬הוא אלגוריתם ‪- ‬קירוב פולינומי‪.‬‬
‫הגדרה (מחלקת הסיבוכיות ‪) PTAS‬‬
‫מחלקת הסיבוכיות ‪ PTAS‬היא מחלקת כל בעיות ‪ NPO‬להן סכמת קירוב פולינומית‪.‬‬
‫מתקיים בבירור‪:‬‬
‫‪PTAS  APX  NPO‬‬
‫‪7‬‬
‫ב‪ ]7[-‬הוכח של‪ Max-W-SAT-‬אין אלגוריתם ‪- ‬קירוב פולינומי עבור‬
‫‪8‬‬
‫לכן‪ ,‬ההכלה הראשונה היא שוויון אם ורק אם ‪. P  NP‬‬

‫‪  ‬אלא אם כן ‪. P  NP‬‬

10

‫‪11‬‬

‫‪1.3‬‬

‫בעיית הספיקות‬

‫הגדרה (בעיית הספיקות)‬
‫בעיית הספיקות (באנגלית‪ Boolean Satisfiability problem :‬ובקיצור ‪ )SAT‬היא בעיית הכרעה‬
‫המקבלת נוסחת קלט‪ ,‬ומכריעה האם קיימת השמת ערכי אמת עבור משתניה עבורם הנוסחה מסופקת‪.‬‬
‫מקובל לכנות בשם זה גם את המקרה הפרטי בו נוסחת הקלט מתקבלת בצורת ‪( CNF‬נוסחה מהצורה‬
‫‪ F  Ci‬כאשר כל ‪ Ci‬הוא ביטוי מהצורה ‪ , ai‬וכל ‪ ai‬הוא ליטרל – משתנה ‪ ui‬או שלילתו ‪. ui‬‬
‫‪i‬‬

‫‪i‬‬

‫הביטויים ‪ Ci‬מכונים פסוקיות)‪ ,‬כיוון שנוח יותר להתמודד עם נוסחאות בעלות מבנה שכזה‪ ,‬וכיוון‬
‫שמקרה פרטי זה הוכח כקשה באותה המידה כמקרה הכללי‪.‬‬
‫כל נוסחה בוליאנית שקולה לנוסחה בצורת ‪: CNF‬‬
‫למשל‪ ,‬בהינתן נוסחה ‪ , F‬ניתן להתבונן באוסף השמות ערכי האמת שאינן מספקות אותה‬
‫ולבנות אוסף פסוקיות כך‪ :‬עבור כל השמה שאינה מספקת את ‪ , F‬תבנה פסוקית אשר מכילה‬
‫ליטרל ההפוך מערכו של המשתנה המתאים לו בהשמה‪( .‬אם בהשמה ‪ , ui  True‬הליטרל‬
‫יהיה ‪ ui‬ולהפך) כל פסוקית כזו תסופק אך ורק אם לא תתקבל ההשמה ממנה נבנתה‪ ,‬ולכן‬
‫הנוסחה שתתקבל מאיחוד פסוקיות אלה תסופק אך ורק עבור השמות אשר מספקות את הנוסחה‬
‫המקורית‪.‬‬
‫לכן‪ ,‬הנוסחאות שקולות‪ ,‬כרצוי‪.‬‬
‫בעיות אופטימיזציה נגזרות‬
‫הסמינר עוסק בשתי בעיות אופטימיזציה הנגזרות מבעיית הספיקות‪:‬‬
‫בעיית הספיקות המרבית ‪ -‬בהינתן נוסחת ‪ CNF‬המורכבת מ‪ m -‬פסוקיות‪ ,‬מציאת השמת‬
‫ערכי אמת עבורה יסופק מספר מקסימלי של פסוקיות‪( .‬הבעיה מכונה באנגלית ‪The maximal‬‬
‫‪ ,satisfiability problem‬ובקיצור‪ ,‬בעיית ‪)Max-SAT‬‬
‫בעיית הספיקות המשוקללת המרבית – בהינתן נוסחה ‪ CNF‬ומשקלים עבור פסוקיתיה‬
‫(המשמשים לתעדוף בין פסוקיות)‪ ,‬מציאת השמת ערכי אמת עבורה יסופקו פסוקיות שמשקלן‬
‫הכולל מקסימלי‪( .‬הבעיה מכונה באנגלית ‪The weighted maximal satisfiability‬‬
‫‪ problem‬ובקיצור‪ ,‬בעיית ‪)Max-W-SAT‬‬

‫‪12‬‬
‫חשיבות הבעיות‬
‫ראשית‪ ,‬בעיה זו הוכחה כבעיה ‪-NP‬שלמה בשנת ‪ 1971‬עם פרסום המאמר [‪ ]4‬על ידי סטיבן קוק‪ .‬על כן‪,‬‬
‫הבנה עמוקה יותר של בעיה זו עשויה לעזור בהבנתן של בעיות ‪-NP‬שלמות חשובות נוספות‪.‬‬
‫כמו גן‪ ,‬קיימים יישומים מעשיים רבים לבעיות הספיקות המקסימלית‪ ]1[ .‬מונה בין יישומים אלה בינה‬
‫מלאכותית‪ ,‬בחינת מידע השמור במערכות מומחה ומסדי נתונים‪ ,‬הסקה אינדוקטיבית ותכנון מעגלים‬
‫אסינכרוניים‪.‬‬
‫מאחר ומדובר כאמור בבעיה קשה עליה שקדו גדולי מדעני המחשב בארבעים השנים האחרונות‪ ,‬נראה‬
‫שחיפוש פתרון פולינומי לבעיה זו לא יניב תוצאות‪ .‬אחת הדרכים להתמודדות עם בעיות כאלה היא חיפוש‬
‫אלגוריתמי קירוב פולינומיים‪ .‬סמינר זה יעסוק בגישה זו להתמודדות עם הבעיה‪.‬‬
‫הנחות ביחס לקלט‬
‫לעתים מניחים את ההנחות הבאות לגבי הנוסחאות‪:‬‬
‫‪.1‬אף פסוקית לא מכילה ליטרל ושלילתו (פסוקית שמכילה ליטרל ושלילתו תסופק‬
‫על ידי כל הצבת ערכי אמת‪ ,‬ולכן היא חסרת חשיבות)‬
‫‪.2‬אף פסוקית אינה מכילה את אותו הליטרל פעמיים (הסרת הכפילויות לא תשפיע‬
‫על סיפוק הפסוקית)‬
‫הנחות אלה לא הופכות את הבעיה לקלה יותר‪ ,‬כיוון שניתן לגרום לכל נוסחה לקיים הנחות אלה לאחר‬
‫מעבר יחיד‪( .‬הסרת פסוקיות המכילות ליטרל ושלילתו‪ ,‬והוספת משקלן למשקל הפסוקיות המסופקות‪,‬‬
‫והסרת ליטרלים כפולים מכל פסוקית)‬
‫סימונים ומינוחים מקובלים‬
‫בהמשך הסמינר נשתמש בסימונים הבאים‪:‬‬
‫‪ F ‬תסמן את הנוסחה המתקבלת כקלט לבעיה‬
‫‪ V   ui |1  i  n ‬היא קבוצת המשתנים המופיעים ב‪F -‬‬
‫‪‬ליטרל – משתנה או שלילתו של משתנה‬
‫‪ m - C1 ,..., Cm ‬הפסוקיות המרכיבות את ‪F‬‬
‫‪‬משתנה‪/‬ליטרל חופשי – בהינתן קבוצת משתנים ‪ , V‬והשמת ערכי אמת ‪ ‬עבור‬
‫חלק ממשתני ‪ , V‬יכונו המשתנים להם לא נבחר ערך אמת משתנים חופשיים‪.‬‬
‫ליטרל ‪ l‬יכונה חופשי אם המשתנה המתאים לו חופשי‪.‬‬

‫‪13‬‬
‫•ליטרלים זרים – ליטרלים אשר מתאימים להם משתנים שונים‪.‬‬

‫‪14‬‬

‫‪2‬‬

‫אלגוריתמים דטרמיניסטיים‬

‫‪2.1‬‬

‫האלגוריתמים החמדנים של ג'ונסון‬

‫פרק זה דן בשני אלגוריתמים חמדנים שהוצעו על ידי ‪ D. S. Johnson‬בשנת ‪ 1974‬לפתרון בעיית‬
‫הספיקות המרבית במאמר [‪ .]3‬המאמר התייחס למקרה הלא משוקלל בלבד‪ ,‬אך הכללת אלגוריתמים אלה‬
‫למקרה המשוקלל טבעית‪.‬‬
‫‪k‬‬
‫האלגוריתם הראשון שהוצג הוא אלגוריתם‬
‫‪k 1‬‬

‫‪-‬קירוב‪ .‬כאשר ‪ k‬הוא אורך הפסוקית המינימלי‬

‫בנוסחה‪ .‬במאמרו הוכיח ג'ונסון הערכה זו‪ ,‬ואף הדגים שהיא הדוקה עבור ‪ . k  3‬עבור נוסחה כללית‪,‬‬
‫מדובר באלגוריתם ½‪-‬קירוב‪.‬‬
‫‪2k  1‬‬
‫האלגוריתם השני שהוצג הוא אלגוריתם ‪- k‬קירוב (שנית‪ ,‬כאשר ‪ k‬הוא אורך הפסוקית המינימלי‬
‫‪2‬‬
‫‪2‬‬
‫בנוסחה) ואלגוריתם‬
‫‪3‬‬

‫‪-‬קירוב במקרה הכללי‪ .‬במאמרו הוכיח ג'ונסון רק את ההערכה הראשונה‪ ,‬הדגים‬

‫שהיא הדוקה עבור ‪ k  3‬וטען כי ניתן לבנות דוגמאות דומות לכל ‪ . k  0‬עבור ‪ , k  2‬הערכה זו אכן‬
‫הדוקה‪ ,‬אך עבור ‪ k  1‬לא נמצאה הדוגמא אליה התייחס‪ ,‬עד שבשנת ‪ 1998‬הוכח במאמר [‪ ]2‬שהערכתו‬
‫‪2‬‬
‫של ג'ונסון אינה הדוקה ומדובר באלגוריתם‬
‫‪3‬‬

‫‪-‬קירוב לכל ‪ , k‬ולא רק ½‪-‬קירוב כפי שנגזר מהערכתו‬

‫של ג'ונסון‪ .‬דוגמאות המוכיחות כי ההערכה החדשה הדוקה נמצאות בשפע‪( .‬למשל‪ ,‬במאמר [ ‪ ]6‬משנת‬
‫‪)1994‬‬
‫שני האלגוריתמים דורשים זמן ריצה לינארי באורך נוסחת הקלט‪.‬‬
‫בסמינר זה יוצגו שני האלגוריתמים בגרסתם המשוקללת‪ .‬יוכח זמן ריצתם‪ ,‬ויאמדו ביצועיהם‪.‬‬

‫‪ 2.1.1‬האלגוריתם הראשון של ג'ונסון‬
‫האלגוריתם הראשון של ג'ונסון (יכונה להלן ‪ GreedyJohnson1‬או בקיצור ‪ )GJ1‬פועל על ידי בחירה‬
‫סדרתית של ערכי אמת עבור המשתנים כך שבכל בחירת ערך אמת למשתנה‪ ,‬ייבחר ערך האמת אשר‬

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

GreedyJohnson1
Input: A set F of m clauses C1 ,..., Cm representing a CNF formula, and the set of
variables V   u1 ,..., un  .
Each clause Ci includes a set of literals and a weight wi .
Output: An array of n truth values for each variable ui .
1( For i  1 to n :
1a( Set   ui    j | ui  C j  )The indices of all clauses including ui (
1b( Set   ui    j | ui  C j  )The indices of all clauses including ui (
2( For i  1 to n :
2a( Set W  ui  
2b( Set W  ui  

w j )The weight gained by setting ui True (

w j )The weight gained by setting u True (
i

j ui 

 

j ui

3( For i  1 to n :
3a(

If W  ui   W  ui  :
Set ui  True
Set l  ui
Else:
Set ui  False
Set l  ui

3b(

For every C j such that j    l  :
For every literal t  C j :
M  t  M  t  wj
  t     t    j

4( Return the truth assignment found

‫‪16‬‬
‫הערה‪ :‬לכאורה‪ ,‬ניתן היה לשפר את יעילות האלגוריתם על ידי שינוי סעיף ‪ 3‬כך שמדי איטרציה ייבחר‬
‫הליטרל ‪ l‬עבורו המשקל ‪ W  l ‬מקסימלי‪ ,‬אך שינוי זה אינו משפר את ביצועי האלגוריתם במקרה‬
‫הגרוע‪( ,‬כפי שיודגם בהמשך) ודורש זמן ריצה נוסף‪.‬‬
‫זמן ריצת האלגוריתם‬
‫נחשב את זמן ריצת האלגוריתם‪:‬‬
‫שלבים ‪ 1, 2‬דורשים זמן ריצה של ‪ O  F ‬מאחר שניתן לבצעם במעבר יחיד על ‪. F‬‬
‫שלב ‪ 3a‬דורש זמן ריצה חסום מדי איטרציה‪ ,‬וזמן ריצה כולל של ‪. O  n ‬‬
‫שלב ‪ 3b‬דורש זמן ריצה כולל של ‪ , O  F ‬כיוון שלכל פסוקית ‪ Ci‬מבוצעות לכל היותר ‪Ci‬‬
‫פעולות‪ .‬ניתוח זה מסתמך על שתי הנחות‪:‬‬
‫‪ .1‬לכל ‪ , 1  i  m‬ניתן למצוא את ‪ Ci‬בזמן חסום‪( .‬למשל‪ ,‬אם ‪ F‬ממומשת כמערך‬
‫בעל ‪ m‬תאים)‬
‫‪ .2‬הסרת איבר מהמבנים ‪   l ‬דורשת זמן ריצה חסום‪( .‬למשל‪ ,‬אם ‪   l ‬ממומשים‬
‫על ידי סדרה של ‪ m‬סיביות)‬
‫שלב ‪ 4‬דורש זמן ריצה של ‪( . O  n ‬כמספר הערכים המוחזרים)‬
‫זמן ריצה כולל‬
‫זמן הריצה הכולל של האלגוריתם הוא ‪. O  F  n   O  F ‬‬
‫איכות הפתרון‬
‫‪k‬‬
‫‪)1‬הפתרון המתקבל הוא‬
‫‪k 1‬‬

‫‪-‬קירוב כאשר ‪ k‬הוא המספר המינימלי של‬

‫ליטרלים שונים בפסוקית‪ ,‬והערכה זו הדוקה לכל ‪: k‬‬
‫הוכחה‬
‫חלק א'‬
‫עבור כל איטרציה ‪ , 1  i  n‬נסמן‪:‬‬
‫‪ : li‬הליטרל המתאים לערך האמת שנבחר עבור ‪( , ui‬זה הנקבע כ‪ l -‬בשלב ‪) 3a‬‬

‫‪17‬‬
‫‪ : Si‬קבוצת הפסוקיות שטרם סופקו ומכילות את ‪( . li‬מסופקות בתום האיטרציה)‬
‫‪ : Ti‬קבוצת הפסוקיות שטרם סופקו ומכילות את ‪( . li‬נותרות לא מסופקות)‬
‫האלגוריתם מחייב שלכל ‪: i‬‬
‫‪w  Si   w  Ti ‬‬
‫ואם נסכם אי‪-‬שוויונות אלה לכל ‪ , i‬נקבל‪:‬‬
‫‪n‬‬

‫‪n‬‬

‫‪ w S    w T ‬‬
‫‪i‬‬

‫‪i 1‬‬

‫‪i‬‬

‫‪i 1‬‬

‫‪n‬‬

‫‪ w S ‬‬
‫‪i‬‬

‫הוא משקל כל הפסוקיות המסופקות בתוך ריצת האלגוריתם‪ ,‬כלומר‪ -‬ערך‬

‫‪i 1‬‬

‫הפתרון המתקבל‪ .‬מצד שני‪ ,‬מאחר שכל פסוקית ‪ C‬שאינה מסופקת בסוף ריצת‬
‫האלגוריתם שייכת לכל הקבוצות ‪ Ti‬כך ש‪ , li  C -‬וכל פסוקית כזו מכילה לפחות ‪k‬‬
‫ליטרלים שונים‪ ,‬נסיק שמשקל הפסוקיות הבלתי מסופקות קטן לפחות פי ‪ k‬מ‪-‬‬
‫‪n‬‬

‫‪n‬‬

‫‪i 1‬‬

‫‪i 1‬‬

‫‪ ,  w  Ti ‬ולכן גם ממשקל הפסוקיות המסופקות ‪.  w  Si ‬‬

‫מכאן שהיחס בין משקל הפסוקיות המסופקות והבלתי מסופקות הוא לפחות ‪ , 1: k‬ומשקל‬
‫‪k‬‬
‫הפתרון המושג על ידי האלגוריתם שווה לפחות‬
‫‪k 1‬‬
‫‪k‬‬
‫ולפחות‬
‫‪k 1‬‬

‫ממשקל כל הפסוקיות בנוסחא‪,‬‬

‫מהמשקל האופטימלי‪.‬‬

‫הערה‪ :‬למעשה‪ ,‬הוכח כאן גם כי לכל נוסחת ‪ CNF‬עם משקלים לפסוקיותיה קיימת השמה‬
‫‪k‬‬
‫אשר משקל הפסוקיות המסופקות בה הוא לפחות‬
‫‪k 1‬‬

‫ממשקל הפסוקיות כולן‪.‬‬

‫אלגוריתם ג'ונסון השני‪ ,‬אשר יוצג בסעיף הבא‪ ,‬ימצא חסם הדוק אף יותר‪.‬‬

‫‪18‬‬
‫חלק ב'‬
‫נראה כי הערכה זו הדוקה על ידי מציאת נוסחאות ‪ CNF‬שאורך הפסוקית המינימלית בהן‬
‫‪k‬‬
‫הוא ‪( k‬לכל ‪ ) k  1‬ועבורן ייתן האלגוריתם פתרון שערכו‬
‫‪k 1‬‬

‫מערך מהפתרון‬

‫האופטימלי בלבד‪.‬‬
‫יהי ‪ . k  1‬נתבונן בנוסחה הבאה‪:‬‬

‫‪ u , u ,..., u ‬‬

‫‪‬‬

‫‪k‬‬

‫‪‬‬

‫‪‬‬
‫‪ ‬‬

‫‪2‬‬

‫‪‬‬

‫‪1‬‬

‫‪‬‬

‫‪ u ,u‬‬
‫‪‬‬
‫‪   u ,u‬‬

‫‪, u2 k  2 ,..., uk 2  2‬‬

‫‪k 2‬‬

‫‪2‬‬

‫‪‬‬

‫‪, u2 k 1 ,..., uk 2 1 ‬‬

‫‪k 1‬‬

‫‪1‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬

‫‪M‬‬
‫‪, u3k ,..., uk 2  k‬‬

‫‪2k‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪ u ,u‬‬
‫‪k‬‬

‫‪ C0 ‬‬
‫‪ C ‬‬
‫‪ 1‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪Fk   C2 ‬‬
‫‪ M‬‬
‫‪‬‬
‫‪‬‬
‫‪ Ck ‬‬

‫‪‬‬
‫‪0i  k  wi  1‬‬

‫זוהי נוסחה אשר אורך הפסוקית המינימלית בה הוא ‪. k‬‬

‫עבור הנוסחא ‪ Fk‬ואוסף המשתנים‬

‫‪‬‬

‫‪‬‬

‫‪2‬‬
‫‪ , V  ui |1  i  k  k‬ייתן האלגוריתם לכל‬

‫המשתנים את ערך האמת ‪ , True‬ואוסף הפסוקיות המסופקות יהיה ‪.  Ci |1  i  k ‬‬
‫לכן‪ ,‬משקל הפתרון שיתקבל יהיה‪:‬‬
‫‪k‬‬

‫‪  1  k‬‬
‫‪i 1‬‬

‫בעוד שעבור הפתרון בו ‪ u1  False‬וערך כל שאר המשתנים ‪ , True‬מסופקות כל‬
‫הפסוקיות‪ ,‬ומתקבל המשקל האופטימלי‪:‬‬
‫‪k‬‬

‫‪ *  1  k  1‬‬
‫‪i 0‬‬

‫‪k‬‬
‫ואכן‪ ,‬ערך הפתרון המתקבל שווה ל‪-‬‬
‫‪k 1‬‬

‫מערך הפתרון המיטבי‪.‬‬

‫הערה‪ :‬דוגמא זו טובה גם עבור האלגוריתם ה"משופר"‪ ,‬בו נבחר בסעיף ‪ 3‬הליטרל ‪l‬‬
‫עבורו המשקל ‪ W  l ‬מקסימלי‪.‬‬

‫‪19‬‬
‫‪1‬‬
‫‪)2‬כמסקנה מסעיף ‪ ,1‬מדובר באלגוריתם‬
‫‪2‬‬
‫‪k‬‬
‫‪1‬‬
‫‪ 1‬‬
‫הפונקציה‬
‫‪k 1‬‬
‫‪k 1‬‬

‫‪-‬קירוב‪( ,‬ערכה המינימלי של‬

‫בטבעיים‪ .‬מתקבל עבור ‪ , k  1‬כלומר – כאשר‬

‫קיימות פסוקיות בעלות ליטרל יחיד בקלט) והערכה זו הדוקה‪.‬‬

‫‪ 2.1.2‬האלגוריתם השני של ג'ונסון‬
‫האלגוריתם השני אותו הציג ג'ונסון במאמרו (אשר יכונה בהמשך ‪ GreedyJohnson2‬או ‪ )GJ2‬דומה‬
‫לאלגוריתם הראשון‪ ,‬רק שבמקום משקלן של הפסוקיות הלא מסופקות‪ ,‬מוגדרת לכל אחת מהן "מידה"‬
‫דינמית אשר מתחשבת הן במשקל הפסוקיות והן במספר הליטרלים החופשיים אשר נותרו בהן‪.‬‬
‫(האלגוריתם יעדיף לספק פסוקיות אשר מספר הליטרלים החופשיים שלהן קטן יותר‪ ,‬כיוון שקשה יותר‬
‫לספק אותן)‬
‫מידתה של פסוקית שווה בכל שלב ל‪ 2i -‬ממשקלה‪ ,‬כאשר ‪ i‬הוא מספר הליטרלים החופשיים המופיעים‬
‫בה‪( .‬אלה שטרם נבחר עבורם ערך אמת) הסיבה האינטואיטיבית להגדרה זו היא ש‪ 2i -‬הוא חלקן היחסי‬
‫של השמות ערכי האמת אשר אינן מספקות את הפסוקית בין כל ההשמות‪.‬‬
‫בהמשך נראה שאלגוריתם זה מתקבל באופן טבעי באמצעות דה‪-‬רנדומיזציה של האלגוריתם האקראי‬
‫הטריוויאלי ‪ Random‬אשר בוחר את ערכו של כל משתנה באקראי ובהסתברות שווה‪.‬‬
‫תיאור האלגוריתם באמצעות פסאודו קוד‪:‬‬

‫‪GreedyJohnson2‬‬
‫‪Input: A set F of m clauses C1,..., Cm representing a CNF formula, and the set of‬‬
‫‪variables V   u1 ,..., un  .‬‬
‫‪Each clause Ci includes a set of literals and a weight wi .‬‬
‫‪For every literal l , let M  l  denote the measure of the clauses containing l .‬‬
‫‪Output: An array of n truth values for each variable ui .‬‬
‫‪Cj‬‬
‫‪1( Calculate 2 i for every 1  i  max‬‬
‫‪C j F‬‬
‫‪2( For i  1 to n :‬‬

‫‪ ‬‬

‫‪If M  ui   M ui :‬‬

‫(‪2a‬‬

‫‪20‬‬
‫‪Set ui  True‬‬
‫‪Set l  ui‬‬
‫‪Else:‬‬
‫‪Set ui  False‬‬
‫‪Set l  ui‬‬
‫‪For every C j such that l  C j :‬‬

‫(‪2b‬‬

‫‪‬‬

‫‪Cj Cj  l‬‬

‫‪For every C j such that l  C j :‬‬

‫(‪2c‬‬

‫‪F  F  Cj‬‬
‫‪3( Return the truth assignment found‬‬
‫האלגוריתם קובע את ערכי המשתנים בזה אחר זה‪ .‬האלגוריתם קובע את ערכו של כל משתנה כך שמידת‬
‫הפסוקיות המסופקות תגדל באופן מרבי‪ ,‬מסיר מהפסוקיות את הליטרלים שקיבלו ערך ‪ False‬ומסיר‬
‫מהנוסחה את הפסוקיות שסופקו‪ .‬לאחר שמתקבל ערך אמת עבור כל המשתנים‪ ,‬מחזיר האלגוריתם את‬
‫ההשמה שהתקבלה‪.‬‬
‫הערה‪ :‬לכאורה‪ ,‬ניתן היה לשפר את ביצועי האלגוריתם על ידי שינוי סעיף ‪ ,2a‬כך שמדי איטרציה‬

‫‪‬‬

‫ייבחר הליטרל ‪ l‬עבורו ההפרש ‪ M  l   M l‬מקסימלי‪ ,‬אך שינוי זה אינו משפר את ביצועי‬
‫האלגוריתם במקרה הגרוע‪( ,‬כפי שיודגם בהמשך) ודורש זמן ריצה נוסף‪.‬‬
‫זמן ריצת האלגוריתם‬
‫שלב ‪ 1‬דורש זמן ריצה של ‪( . O  k   O  n ‬כאשר ‪C j‬‬
‫‪) k  max‬‬
‫‪C j F‬‬
‫שלב ‪ 2a‬דורש זמן ריצה של לכל היותר ‪ O  m ‬מדי איטרציה‪ ,1‬ומבצע ‪O  mn   O  F ‬‬

‫‪2‬‬

‫צעדים לאורך הריצה כולה‪.‬‬
‫‪ 1‬אם ניתן יהיה למצוא את אורכן של הפסוקיות בזמן חסום (תחזוק שדה כזה ידרוש זמן של ‪O  F ‬‬

‫באתחול‪ ,‬וזמן חסום‬

‫בלבד בכל פעם שיוסר ליטרל מפסוקית‪ ,‬ולכן לא יפגע בזמן ריצת האלגוריתם)‪ ,‬ניתן יהיה לחשב את ‪M  l ‬‬
‫‪ l‬על ידי מעבר סדרתי על הפסוקיות שנותרו בנוסחה‪ ,‬וסכימת מידת כל הפסוקיות המכילות את ‪( . l‬חישוב מידתה של כל‬
‫פסוקית יכולה להתבצע בזמן חסום‪ ,‬כיוון ש‪ 2  i -‬חושבו מבעוד מועד‪.‬‬
‫‪ 2‬נכונות השוויון תלויה במימוש הפסוקיות בנוסחה‪ .‬השוויון מתקיים למשל אם הפסוקיות ממומשות כסדרות של ‪ 2n‬סיביות‬

‫עבור כל ליטרל‬

‫המציינות אילו ליטרלים מופיעים בפסוקיות‪( .‬מימוש המאפשר מציאת והסרת ליטרלים מפסוקית בזמן ריצה חסום)‬

‫‪21‬‬

‫שלב ‪ 2b‬דורש זמן ריצה כולל של ‪ O  F  mn   O  F ‬כיוון שמציאת הפסוקיות המכילות‬
‫את הליטרל ‪ l‬דורשת זמן ריצה של ‪ O  mn ‬לכל היותר (בכל איטרציה יש לבחון לכל היותר‬
‫‪ m‬פסוקיות שונות‪ ,‬ולכן מתבצעים לכל היותר ‪ O  mn ‬צעדים לאורך הריצה כולה) והסרת‬
‫הליטרלים דורשת לכל היותר ‪ O  F ‬צעדים‪( .‬מאחר שמכל פסוקית ‪ Ci‬מוסרים לכל היותר‬
‫‪ Ci‬ליטרלים)‬
‫שלב ‪ 2c‬דורש זמן ריצה כולל של ‪ O  mn  m   O  F ‬כיוון שמציאת הפסוקיות המכילות‬
‫את הליטרל ‪ l‬דורשת זמן ריצה של ‪( mn‬כפי שהוסבר לעיל) וכל פסוקית מוסרת מהנוסחה‬
‫פעם אחת לכל היותר‪( .‬ולכן מתבצעות לכל היותר ‪ m‬הסרות)‬
‫שלב ‪ 3‬דורש זמן ריצה של ‪( . O  n ‬כמספר הערכים המוחזרים)‬
‫זמן ריצה כולל‬
‫זמן הריצה הכולל של האלגוריתם הוא ‪. O  F  mn  n   O  F ‬‬
‫איכות הפתרון‬
‫‪1‬‬
‫‪)1‬האלגוריתם ‪ GJ2‬הוא אלגוריתם‬
‫‪2k‬‬

‫‪- 1 ‬קירוב (כאשר ‪ k‬הוא המספר‬

‫הליטרלים השונים בפסוקית הקצרה ביותר)‪ ,‬והערכה זו הדוקה לכל ‪: k  2‬‬

‫הוכחה‬
‫חלק א'‬
‫מאחר שכל פסוקית מכילה לפחות ‪ k‬ליטרלים‪ ,‬קטנה מידת כל פסוקית בתחילת הריצה‬
‫לפחות פי ‪ 2k‬ממשקלה‪ .‬לכן‪ ,‬מידת כל הפסוקיות הלא מסופקות בתחילת ריצת‬
‫האלגוריתם (כלומר‪ ,‬כל פסוקיות ‪ ) F‬קטנה לפחות פי ‪ 2k‬ממשקל הנוסחה כולה‪.‬‬

‫‪22‬‬
‫מידת קבוצת הפסוקיות הבלתי מסופקות אינה יכולה לגדול במהלך ריצת האלגוריתם ‪.3‬‬
‫לכן‪ ,‬קטנה מידת הפסוקיות הבלתי מסופקות לפחות פי ‪ 2k‬ממידת כל הפסוקיות בנוסחה‬
‫גם בתום ריצת האלגוריתם‪ .‬בתום ריצת האלגוריתם‪ ,‬שווה מידת הפסוקיות הבלתי‬
‫מסופקות למשקלן‪ .4‬לכן‪ ,‬מתקיים כרצוי‪:‬‬
‫‪1 ‬‬
‫‪‬‬
‫* ‪   1  k ‬‬
‫‪2 ‬‬
‫‪‬‬
‫(כאשר ‪ ‬הוא ערך הפתרון המתקבל‪ ,‬ו‪  * -‬הוא ערך הפתרון האופטימלי)‬
‫מ‪.‬ש‪.‬ל‬
‫הערה‪ :‬הערכנו את הפתרון המתקבל באמצעות משקל כל הפסוקיות בנוסחה‪ ,‬אף כי ערך‬
‫הפתרון האופטימלי עשוי להיות נמוך מכך‪ .‬מהוכחה זו ניתן להסיק כי לכל נוסחת ‪CNF‬‬
‫ומשקלים לפסוקיותיה‪ ,‬קיימת הצבת ערכי אמת אשר תספק פסוקיות שמשקלן הכולל‬
‫‪1‬‬
‫לפחות‬
‫‪2k‬‬

‫‪ 1 ‬ממשקל הנוסחה כולה‪.‬‬

‫בהמשך נראה כי באמצעות הערכה הדוקה יותר של הפתרון האופטימלי ניתן למצוא עבור‬
‫‪( k  1‬המקרה הכללי) חסם הדוק אף יותר‪.‬‬
‫חלק ב'‬
‫על מנת להיווכח בכך שהערכה זו הדוקה נראה לכל ‪ k  2‬נוסחת ‪ CNF‬שאורך הפסוקית‬
‫המינימלית בה ‪ k‬עבורה מתקבל חסם זה‪( .‬הערכה עבור ‪ k  1‬תינתן בהמשך)‬
‫יהי ‪ . k  2‬נתבונן בנוסחה המוגדרת כך‪:‬‬

‫‪ 3‬מדי איטרציה קטנה מידת הפסוקיות הבלתי מסופקות ב‪M  l  -‬‬

‫‪‬‬
‫‪ , M  l   M  l ‬מתקבלת התוצאה‪.‬‬
‫‪M l‬‬

‫‪ 4‬תהי ‪C‬‬

‫(מידת הפסוקיות המסופקות בתום האיטרציה)‪ ,‬וגדלה ב‪-‬‬

‫(מידת הפסוקיות המכילות את ‪ . l‬פסוקיות אלה נותרות בלתי מסופקות ומידת כל אחת מהן מוכפלת)‪ .‬מאחר ש‪-‬‬

‫פסוקית כזו‪ .‬מידתה הראשונית היא‬

‫‪w C ‬‬
‫‪C‬‬

‫‪2‬‬

‫‪ .‬לכל ‪ l  C‬נבחר ערך אמת ‪ , False‬ומידת ‪C‬‬

‫לכן‪ ,‬מאחר ש‪ C -‬מכילה ‪ C‬ליטרלים‪ ,‬מידתה הסופית היא ‪2 C  w  C ‬‬

‫‪w C ‬‬
‫‪C‬‬

‫‪2‬‬

‫‪.‬‬

‫הוכפלה פי ‪.2‬‬

‫‪23‬‬
‫‪‬‬

‫‪ a , a ,..., a ‬‬

‫‪‬‬

‫‪k‬‬

‫‪2‬‬

‫‪‬‬

‫‪1‬‬

‫‪ a1 , b1,2 ,..., b1,k  ‬‬

‫‪‬‬
‫‪‬‬

‫‪ C0 ‬‬
‫‪ C ‬‬
‫‪ 1‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪ ‬‬
‫‪‬‬
‫‪Fk   C2     a2 , b2,2 ,..., b2,k 1 ‬‬
‫‪ M ‬‬
‫‪‬‬
‫‪M‬‬
‫‪‬‬
‫‪ ‬‬
‫‪‬‬
‫‪ Ck    a , b ,..., b‬‬
‫‪‬‬
‫‪k ,2 k 1‬‬
‫‪ k k ,2‬‬
‫‪‬‬
‫‪w0  1‬‬

‫‪‬‬

‫אם נניח שהמשתנים מסודרים כך‬

‫ש‪ ai  -‬‬

‫‪‬‬

‫‪1i  k wi  2i 1‬‬

‫מופיעים ראשונים ולפי סדרם‪ ,‬יבחר‬

‫האלגוריתם השמת ערכי אמת בה ‪ ai  True‬לכל ‪ , 1  i  k‬ומשקל הפתרון שיתקבל‬
‫יהיה‪:‬‬

‫‪  1  ...  2k 1  2k  1‬‬
‫בעוד שעם הפתרון בו ‪ a1  False‬וערך כל שאר המשתנים הוא ‪ True‬מסופקות כל‬
‫הפסוקיות‪ ,‬ומתקבל המשקל האופטימלי‪:‬‬

‫‪ *  1  1  ...  2k 1  2k‬‬
‫‪2k  1‬‬
‫ואכן‪ ,‬ערך הפתרון המתקבל שווה ל‪-‬‬
‫‪2k‬‬

‫מערך הפתרון המיטבי‪.‬‬

‫הערה‪ :‬דוגמא זו טובה גם עבור האלגוריתם ה"משופר" בו נבחר בסעיף ‪ 2a‬הליטרל ‪l‬‬
‫עבורו ההפרש‬

‫‪‬‬

‫‪ M  l   M l‬מקסימלי‪( .‬אם נניח שהמשתנים ‪  a1 ,..., ak ‬ייבחרו‬

‫ראשונים ולפי סדרם)‬
‫‪2‬‬
‫‪)2‬מדובר באלגוריתם‬
‫‪3‬‬

‫‪-‬קירוב‪ ,‬והערכה זו הדוקה‪.‬‬

‫ההוכחה שתוצג להלן מבוססת על ההוכחה המופיעה במאמר [‪:]2‬‬
‫הוכחה‬
‫חלק א'‬
‫הכללת האלגוריתם של ג'ונסון‬
‫תהי ‪ F‬נוסחת הקלט‪ ,‬ותהי ‪ U Opt‬השמת ערכי אמת מיטבית עבורה‪.‬‬

‫‪24‬‬
‫נבנה נוסחה חדשה ' ‪ F‬על ידי שלילת כל ליטרל של משתנה אשר ערכו ב‪ U Opt -‬שלילי‪.‬‬
‫(אם ‪ , U Opt  ui   False‬נחליף בין ‪ ui‬ו‪ ui -‬בכל מקום בנוסחה) קל לראות כי משקל‬
‫ההשמה האופטימלית עבור ' ‪ F‬שווה למשקל ההשמה האופטימלית עבור ‪ F‬וכי השמת‬
‫ערכי האמת ‪ T‬אשר נותנת ערך אמת ‪ True‬לכל המשתנים היא השמה אופטימלית עבור‬
‫'‪.F‬‬
‫נבחין כי עבור שתי הנוסחאות ' ‪ F , F‬עשוי ‪ GJ2‬להניב השמות ערכי אמת אשר יספקו‬
‫פסוקיות שונות‪( .‬כיוון שבמקרה שמתקיים השוויון‬

‫‪ ‬‬

‫‪ M  ui   M ui‬בסעיף ‪ ,2a‬יבחר‬

‫‪ GJ2‬תמיד לתת את ערך האמת ‪ . ui  True‬ולאחר ההחלפה בין ‪ ui‬ו‪ ui -‬עשויה השמה‬
‫זו לספק פסוקיות שונות בשתי הנוסחאות)‬
‫על מנת לטפל בחוסר סימטרייה זה‪ ,‬נתבונן בהכללה של האלגוריתם אותה נכנה‬
‫‪ .GenGJ2‬הכללה זו מקבלת כקלט‪ ,‬נוסף על נוסחת הקלט‪ ,‬מערך בוליאני ‪ B‬מאורך ‪n‬‬
‫אשר ערכיו קובעים את ערך האמת של ‪ ui‬במקרה שמתקיים השוויון ‪M  ui   M  ui ‬‬
‫‪( .‬אם ‪ , B  i   True‬מקבל ‪ ui‬ערך ‪ , True‬ולהפך) האלגוריתם המקורי מתקבל‬
‫מאלגוריתם זה עבור המערך שכל ערכיו ‪. True‬‬
‫כקלט לאלגוריתם ‪ GenGJ2‬ניתן את הנוסחה החדשה ' ‪ , F‬ומערך בוליאני ‪ B‬אשר ערכו‬
‫במקום ה‪ i -‬שווה ל‪. U Opt  ui  -‬‬
‫קל להיווכח בעובדות הבאות‪:‬‬
‫* משקל ההשמה האופטימלית עבור ' ‪ F‬שווה למשקל ההשמה האופטימלית עבור ‪. F‬‬
‫* משקל ההשמה המתקבלת על ידי ‪ GJ2‬עבור ‪ F‬שווה למשקל ההשמה המתקבלת על‬
‫ידי ‪ GenGJ2‬עבור ' ‪ F‬והמערך ‪. B‬‬
‫‪2‬‬
‫לכן‪ ,‬די יהיה אם נראה כי ערך הפתרון אותו משיג ‪ GenGJ2‬שווה ל‪-‬‬
‫‪3‬‬

‫מערך הפתרון‬

‫המתקבל על ידי ההשמה הנותנת ‪ True‬לכל המשתנים‪( .‬עבור כל נוסחה ומערך בוליאני)‬
‫הוכחת החסם עבור האלגוריתם המוכלל‬
‫נפתח במספר סימונים‪ .‬יהי ‪ . 0  t  n‬נסמן‪:‬‬

‫‪25‬‬
‫‪ - S  t ‬אוסף הפסוקיות המסופקות לאחר קביעת ערך המשתנים ‪. u1 ,..., ut‬‬
‫‪ - K  t ‬אוסף הפסוקיות שלא סופקו ולא נותרו להן ליטרלים חופשיים (ולכן לא יסופקו‬
‫בסוף ריצת האלגוריתם) לאחר קביעת ערך המשתנים ‪. u1 ,..., ut‬‬
‫‪t‬‬
‫‪ - N i‬אוסף הפסוקיות השליליות (אלה שכל ליטרליהן שליליים) להן ‪ i‬ליטרלים‬

‫חופשיים לאחר קביעת ערך המשתנים ‪. u1 ,..., ut‬‬

‫למה‬
‫לכל ‪ 0  t  n‬מתקיים‪:‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪r 1‬‬
‫‪t‬‬
‫‪t‬‬
‫‪ t‬‬
‫‪w S    2w K    ‬‬
‫‪w Ni  A0‬‬
‫‪i 1‬‬
‫‪i 1 2‬‬

‫‪ ‬‬

‫כאשר ‪w Ni0‬‬

‫‪1‬‬

‫‪r‬‬

‫‪i 1‬‬

‫‪ , A0  ‬ו‪ r -‬הוא אורך הפסוקית המקסימלית בנוסחה‪.‬‬

‫‪i 1 2‬‬

‫הוכחה‬
‫ההוכחה לא שולבה בפרק זה על מנת שלא לפגוע ברצף הקריאה‪.‬‬
‫ההוכחה מופיעה בנספח א'‪.‬‬
‫על ידי הצבת ‪ t  n‬בלמה‪ ,‬נקבל‪:‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪r 1‬‬
‫‪n‬‬
‫‪n‬‬
‫‪ n  A‬‬
‫‪w S    2w K    ‬‬
‫‪w Ni‬‬
‫‪0‬‬
‫‪i 1‬‬
‫‪i 1 2‬‬

‫בתום ריצת האלגוריתם לא יוותרו ליטרלים חופשיים באף פסוקית‪ .‬לכן‪ Ni n    ,‬לכל‬
‫‪ , 1  i  r‬ומאי‪-‬השוויון נובע כי‪:‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪n‬‬
‫‪n‬‬
‫‪w S    2w K    A0‬‬

‫מצד שני‪ ,‬ניתן להעריך את ‪ A0‬כך‪:‬‬
‫‪r‬‬
‫‪1‬‬
‫‪0‬‬
‫‪w‬‬
‫‪N‬‬
‫‪‬‬
‫‪2‬‬
‫‪‬‬
‫‪w N i0‬‬
‫‪‬‬
‫‪i‬‬
‫‪i 1‬‬
‫‪2‬‬
‫‪i 1‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪r‬‬

‫‪A0  ‬‬
‫‪i 1‬‬

‫אם נציב אי‪-‬שוויון זה באי השוויון הקודם‪ ,‬נקבל‪:‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪r‬‬
‫‪n‬‬
‫‪n‬‬
‫‪w S    2w K    2  w Ni0‬‬
‫‪i 1‬‬

‫‪26‬‬

‫‪ ‬‬

‫‪ n‬‬
‫‪ w S‬לשני האגפים תניב‪:‬‬
‫חלוקת אי‪-‬השוויון ב‪ 2-‬והוספת‬

‫‪ ‬‬

‫‪     ‬‬

‫‪r‬‬
‫‪3‬‬
‫‪n‬‬
‫‪n‬‬
‫‪n‬‬
‫‪w S    w S    w K     w Ni0‬‬
‫‪2‬‬
‫‪i 1‬‬

‫‪ ‬‬

‫‪ n‬‬
‫‪ w S‬הוא משקל הפתרון המתקבל על ידי האלגוריתם‪.‬‬

‫‪   ‬‬

‫‪ ‬‬

‫‪r‬‬
‫‪ n  w K  n‬‬
‫‪0‬‬
‫‪ w S‬הוא משקל כל הפסוקיות השייכות ל‪ , F ' -‬ו‪  w Ni -‬הוא‬
‫‪i 1‬‬

‫משקל כל הפסוקיות שאינן מסופקות על ידי ‪( . T‬ההשמה הנותנת ערך אמת ‪ True‬לכל‬
‫המשתנים) לכן‪ ,‬צדו הימני של אי השוויון האחרון שווה למשקל הפסוקיות המסופקות על‬
‫*‬
‫ידי ההשמה האופטימלית ‪ . T‬אם כן‪ ,‬אם נסמן ב‪   F ' -‬את ערך הפתרון המיטבי עבור‬

‫' ‪ F‬וב‪   F ' -‬את הערך שהתקבל על ידי ‪ ,GenGJ2‬נקבל‪:‬‬
‫‪3‬‬
‫‪  F '   *  F '‬‬
‫‪2‬‬
‫‪2‬‬
‫‪  F '   *  F '‬‬
‫‪3‬‬

‫‪2‬‬
‫ונמצא שהפתרון שהפיק האלגוריתם ‪ GenGJ2‬השיג‬
‫‪3‬‬

‫‪-‬קירוב‪ ,‬כנדרש‪.‬‬

‫הערות ביחס להוכחה‬
‫באמצעות שינויים קלים בהוכחה (התייחסות לפסוקיות אשר לא יסופקו על ידי ‪U Opt‬‬
‫במקום פסוקיות שליליות) ניתן היה לוותר על השימוש באלגוריתם ‪ ,GenGJ2‬ולהוכיח‬
‫את הטענה ישירות עבור ‪ .GJ2‬העדפתי שלא לעשות זאת על מנת לפשט את ההוכחה‪.‬‬
‫כמו כן‪ ,‬ההוכחה לא מסתמכת על כך ש‪ U Opt , T -‬השמות מיטביות עבור הנוסחאות‬
‫המתאימות‪ ,‬וניתן היה להוכיח באותו האופן שערך ההשמה אותה מפיקים ‪ GenGJ2‬ו‪-‬‬
‫‪2‬‬
‫‪ GJ2‬שווה לפחות‬
‫‪3‬‬

‫מערכה של כל השמה אחרת‪( .‬בפרט מערך ההשמה האופטימלית)‬

‫חלק ב'‬
‫על מנת לראות שההערכה הדוקה‪ ,‬נתבונן בדוגמה הבאה‪:‬‬
‫‪a  b   b  c‬‬

‫‪27‬‬
‫כאשר לכל הפסוקיות משקל שווה‪ ,‬וסדר המשתנים הוא ‪.  a, b, c ‬‬
‫עבור דוגמא זו ייתן ‪ GJ2‬ערך ‪ True‬לכל המשתנים‪ ,‬ויספק רק ‪ 2‬מבין ‪ 3‬הפסוקיות‪ ,‬בעוד‬
‫שההשמה המיטבית ( ‪ a, c  True‬ו‪ ) b  False -‬תספק את כל הפסוקיות‪ ,‬כרצוי‪.‬‬

‫‪28‬‬

‫‪2.2‬‬

‫חיפוש מקומי‬

‫פרק זה דן בשיטת החיפוש המקומי למציאת פתרון מקורב לבעיית ‪ .Max W-SAT‬חיפוש מקומי הוא‬
‫שיטה כללית לפתרון בעיות אופטימיזציה הכוללת ביצוע סדרת שיפורים לפתרון נתון עד להגעה לנקודת‬
‫אופטימום מקומית‪ ,‬אשר ממנה כל שינוי יביא לפתרון איכותי פחות‪.‬‬
‫עבור בעיית הספיקות המשוקללת המרבית‪ ,‬מקובל להתייחס לאלגוריתם אשר מחליף מדי איטרציה את‬
‫ערך האמת של משתנה יחיד אשר יביא לשיפור מקסימלי במשקל הפסוקיות המסופקות‪.‬‬

‫‪Local Search‬‬
‫‪Input: A set F of m clauses C1 ,..., Cm representing a CNF formula, and the‬‬
‫‪set of variables V   u1 ,..., un  .‬‬
‫‪Each clause Ci includes a set of literals and a weight wi .‬‬
‫‪Output: An array of n truth values for each variable ui .‬‬
‫) ‪1) Pick some initial truth assignment U (For example, 1in  ui  True ‬‬
‫‪2) For each variable ui , define i to be the difference between the current‬‬
‫‪weight of the satisfied clauses and the weight after flipping ui ’s truth value.‬‬
‫‪3) While there exists 1  i  n such that i  0 :‬‬
‫‪3a) Flip the truth value of the variable ui for which i is greatest‬‬
‫‪3b) Recalculate i for every 1  i  n‬‬
‫‪4) When i  0 for every 1  i  n , return the current truth assignment.‬‬
‫זמן ריצת האלגוריתם‬
‫עבור בעיית הספיקות המרבית (הבלתי משוקללת)‪ ,‬מגדיל האלגוריתם את מספר הפסוקיות המסופקות‬
‫באחד לפחות מדי איטרציה‪ .‬לכן‪ ,‬מתקיימות לכל היותר ‪ m‬איטרציות‪.‬‬
‫איכות הפתרון‬
‫נניח‪ ,‬בלי הגבלת הכלליות‪ ,‬שהשמת ערכי האמת שנמצאה קובעת ‪ ui  True‬לכל ‪( . i‬אחרת‪ ,‬נחליף כל‬
‫משתנה שערכו ‪ False‬בשלילתו בנוסחה‪ .‬ההשמה ‪ ui  True‬לכל ‪ i‬תהיה אופטימלית מקומית עבור‬
‫הנוסחה החדשה‪ ,‬בעלת אותו ערך כהשמה המקורית‪ ,‬וערך ההשמה המיטבית יישמר גם הוא)‬

‫‪29‬‬
‫על מנת להעריך את איכות הפתרון‪ ,‬ולמען המשך הדיון‪ ,‬נגדיר שני סימונים חדשים‪:‬‬
‫‪ - Covs‬בהינתן השמת ערכי אמת‪ Covs ,‬היא קבוצת הפסוקיות בהן מסופקים ‪ s‬ליטרלים‬
‫בדיוק‪.‬‬
‫‪ - Covs  l ‬בהינתן השמת ערכי אמת וליטרל ‪ Covs  l  , l‬היא קבוצת כל פסוקיות ‪ Covs‬ש‪l -‬‬

‫מופיע בהן‪.‬‬
‫‪k‬‬
‫‪)3‬מתקבל‬
‫‪k 1‬‬

‫‪-‬קירוב (כאשר ‪ k‬הוא אורך הפסוקית המינימלי)‪ ,‬והערכה זו‬

‫הדוקה לכל ‪: k‬‬
‫הוכחה‬
‫חלק א'‬
‫כזכור‪ ,‬אנו דנים בהשמה המציבה ערך אמת ‪ True‬בכל המשתנים‪.‬‬
‫מאחר שמדובר בנקודת מקסימום מקומית‪ ,‬הרי שלכל ‪: 1  i  n‬‬

‫‪    w  Cov  u  ‬‬
‫‪i‬‬

‫‪‬‬

‫‪ i  0  w Cov0 ui‬‬

‫‪1‬‬

‫נסכם את שני אגפי אי‪-‬שוויון זה לכל ‪: i‬‬
‫‪n‬‬

‫‪  w  Cov1  ui  ‬‬
‫‪i 1‬‬

‫‪‬‬

‫‪ ‬‬

‫‪n‬‬

‫‪ w Cov0 ui‬‬
‫‪i 1‬‬

‫ולכן‪:‬‬

‫‪     w  Cov  u    w  Cov   ‬‬
‫‪n‬‬

‫‪1‬‬

‫הפסוקיות השייכות ל‪-‬‬
‫‪ Cov1‬מסופקות כולן‪.‬‬

‫‪i‬‬

‫‪1‬‬

‫‪i 1‬‬

‫כל פסוקית ‪C j  Cov1‬‬
‫שייכת לקבוצה יחידה מבין‬
‫הקבוצות ‪. Cov1  ui ‬‬

‫‪‬‬

‫‪n‬‬

‫‪k w  Cov0    w Cov0 ui‬‬
‫‪i 1‬‬

‫בכל פסוקית ‪ C j  Cov0‬יש ‪ r  k‬ליטרלים‬
‫שונים‪ ,‬כולם מהצורה ‪ . ui‬לכן‪ ,‬מופיעה פסוקית‬

‫‪ ‬‬

‫זו ב‪ r -‬מהקבוצות ‪ , Cov0 ui‬ומשקלה נספר‬
‫‪ r  k‬פעמים‪.‬‬

‫( ‪ ‬הוא ערך הפתרון שסיפק האלגוריתם)‬

‫‪30‬‬
‫משקלן הכולל של כל הפסוקיות בנוסחה שווה לסכום משקלי כל הפסוקיות המסופקות‬

‫והבלתי מסופקות על ידי הצבה זו‪( .‬כלומר‪ ,‬ל‪ ) w  Cov0    -‬המשקל האופטימלי * ‪‬‬
‫קטן או שווה למשקל כל הפסוקיות‪ ,‬ולכן‪:‬‬
‫‪1‬‬
‫‪k 1‬‬
‫‪ *    w  Cov0      ‬‬
‫‪‬‬
‫‪k‬‬
‫‪k‬‬
‫‪k‬‬
‫‪*  ‬‬
‫‪k 1‬‬
‫מ‪.‬ש‪.‬ל‬
‫חלק ב'‬
‫על מנת להראות שהערכה זו הדוקה‪ ,‬נתבונן לכל ‪ k  1‬בנוסחה ‪ Ck‬שהופיעה בהערכת‬
‫איכות פתרון האלגוריתם הראשון של ג'ונסון‪( .‬סעיף ‪ )2.1.1‬נתבונן בהשמת ערכי האמת‬
‫הנותנת ערך ‪ True‬למשתנים ‪ u1 ,..., uk‬ו‪ False -‬לשאר‪ .‬מדובר בנקודת מקסימום‬
‫מקומית‪ ,‬אך ערכה ‪ k‬בלבד‪ ,‬בעוד שהערך המקסימלי עבור נוסחה זו הוא ‪. k  1‬‬

‫‪31‬‬

‫‪3‬‬

‫אלגוריתמים אקראיים‬

‫‪3.1‬‬

‫‪Random‬‬

‫האלגוריתם האקראי הטבעי ביותר לפתרון בעיית הספיקות המשוקללת המרבית הוא האלגוריתם‬
‫‪ ,Random‬אשר בוחר את ערכו של כל משתנה באקראי ובהתפלגות אחידה‪.‬‬

‫‪Random‬‬
‫‪Input: A set F of m clauses C1 ,..., Cm representing a CNF formula, and the set of‬‬
‫‪variables V .‬‬
‫‪Each clause Ci includes a set of literals and a weight wi .‬‬
‫‪Output: An array of n truth values for each variable ui .‬‬
‫‪1( For each ui  V :‬‬
‫‪1‬‬
‫‪, and ui  False otherwise‬‬
‫‪2‬‬

‫‪1a( Set ui  True with probability‬‬
‫‪2( Return the truth assignment found‬‬

‫להלן נניח כי כל הפסוקיות בנוסחה מכילות ליטרלים זרים בלבד‪( .‬ראו סעיף "הנחות ביחס לקלט"‬
‫במבוא)‬
‫ביצועים צפויים‬
‫‪)1‬אם נסמן ב‪ k -‬את אורך הפסוקית המינימלית בנוסחה‪ ,‬תוחלת המשקל המתקבל‬
‫‪1‬‬
‫על ידי אלגוריתם זה היא לפחות‬
‫‪2k‬‬

‫‪ 1 ‬ממשקל כל הפסוקיות בנוסחה‪.‬‬

‫(ומהמשקל האופטימלי)‬
‫הוכחה‬
‫תהי ‪ Ci‬פסוקית בנוסחה‪ ,‬ויהי ‪ ki‬מספר הליטרלים השונים בה‪ .‬פסוקית זו מסופקת על ידי‬
‫‪1‬‬
‫‪2ki‬‬

‫‪ 1 ‬מהצבות ערכי האמת האפשריות‪ .‬מאחר שבכל פסוקית לפחות ‪ k‬ליטרלים‪ ,‬כל‬

‫‪1‬‬
‫פסוקית מסופקת על ידי לפחות‬
‫‪2k‬‬

‫‪ 1 ‬מהצבות ערכי האמת‪ ,‬ולכן התוחלת ‪ W‬של‬

‫משקלי הפתרונות מתקבלים על ידי האלגוריתם היא לפחות‪:‬‬

‫‪32‬‬
‫‪1 ‬‬

‫‪1 ‬‬
‫‪‬‬
‫‪wi   1  k   wi‬‬
‫‪2  Ci F‬‬
‫‪‬‬
‫‪‬‬

‫‪ki‬‬

‫‪‬‬

‫‪  1  2‬‬

‫‪W‬‬

‫‪Ci F‬‬

‫מ‪.‬ש‪.‬ל‬
‫‪1‬‬
‫‪)2‬תוחלת המשקל המתקבל על ידי האלגוריתם ‪ Random‬היא לפחות‬
‫‪2‬‬

‫ממשקל‬

‫כל הפסוקיות בנוסחה‪( .‬ומהמשקל האופטימלי)‬
‫הוכחה‬
‫תוצאה זו מתקבלת ישירות מהטענה הקודמת‪ ,‬ומאחר שערכה המינימלי של הפונקציה‬
‫‪1‬‬
‫‪1‬‬
‫‪ f  k   1  k‬על הטבעיים הוא‬
‫‪2‬‬
‫‪2‬‬

‫‪( .‬מתקבל עבור ‪) k  1‬‬

‫‪33‬‬

‫‪3.2‬‬

‫שיטת ההסתברויות המותנות‬

‫שיטת ההסתברויות המותנות היא שיטה לדה‪-‬רנדומיזציה של אלגוריתמים אקראיים מסוימים‪ .‬בשיטה זו‬
‫עוקבים אחר צעדי האלגוריתם‪ ,‬ובכל בחירה אקראית בין מספר אפשרויות‪ ,‬מוצאים את תוחלת ההצלחה‬
‫עבור כל אחת מהן‪ ,‬ובוחרים באפשרות שלאחר בחירתה תהיה תוחלת ההצלחה מקסימלית‪.‬‬
‫שיטה זו נותנת אלגוריתם דטרמיניסטי אשר ביצועיו טובים לפחות כתוחלת ביצועי האלגוריתם האקראי‪.‬‬
‫שימוש בשיטה עבור האלגוריתם ‪Random‬‬
‫ניתן לראות ששימוש בשיטת ההסתברויות המותנות עבור האלגוריתם ‪ Random‬ייתן לנו את האלגוריתם‬
‫השני של ג'ונסון‪:‬‬
‫מידתה של כל פסוקית שווה לתוחלת המשקל שיתקבל מסיפוקה בתום ריצת האלגוריתם‪.‬‬
‫(מכפלת משקלה וסיכויה להיות מסופקת)‬
‫מדי איטרציה של האלגוריתם ‪ GJ2‬נבחר ערך האמת עבור ‪ ui‬עבורו מידת הפסוקיות הבלתי‬
‫מסופקות קטנה משהייתה לו נבחר ערך האמת השני‪ .‬כלומר‪ ,‬לפי האבחנה הקודמת‪ ,‬כך שתוחלת‬
‫המשקל שיתקבל על ידי האלגוריתם (במידה וערכי האמת עבור המשתנים הנותרים ייבחרו‬
‫באקראי) תהיה מקסימלית – וזה בדיוק השיקול המנחה את גרסתו הדטרמיניסטית של ‪Random‬‬
‫מדי איטרציה‪.‬‬
‫‪1‬‬
‫‪2‬‬
‫מכך נוכל להסיק כי ‪ Random‬הוא אלגוריתם ‪-‬קירוב‪ ,‬ולא רק‬
‫‪2‬‬
‫‪3‬‬

‫‪-‬קירוב כפי שהוכח לעיל‪.‬‬

‫‪34‬‬

‫‪3.3‬‬

‫‪GenRandom‬‬

‫האלגוריתם ‪ GenRandom‬הוא הכללה של אלגוריתם ‪ Random‬שהוצג לעיל‪ .‬אלגוריתם זה מקבל‬
‫כקלט סדרת הסתברויות ‪ , P   pi |1  i  n‬ועבור כל ‪ , 1  i  n‬מציב ‪ ui  True‬בהסתברות‬
‫‪ pi‬ו‪ ui  False -‬בהסתברות ‪( . 1  pi‬האלגוריתם ‪ Random‬שהוצג קודם לכן מתקבל מאלגוריתם‬
‫‪1‬‬
‫זה באמצעות הבחירה‬
‫‪2‬‬

‫‪ pi ‬לכל ‪) 1  i  n‬‬

‫‪GenRandom‬‬
‫‪Input: A set F of m clauses C1 ,..., Cm representing a CNF formula, and the set of‬‬
‫‪variables V .‬‬
‫‪Each clause Ci includes a set of literals and a weight wi .‬‬
‫‪A series P   pi |1  i  n; i  0  pi  1  of n probabilities.‬‬
‫‪Output: An array of n truth values for each variable ui .‬‬
‫‪1( For each ui  V :‬‬
‫‪1a( Set ui  True with probability pi , and ui  False otherwise‬‬
‫‪2( Return the truth assignment found‬‬
‫הערה‪ :‬ניתן להפוך אלגוריתם זה לאלגוריתם דטרמיניסטי באמצעות שיטת ההסתברויות המותנות‪.‬‬
‫ביצועים‬
‫המשקל הצפוי (תוחלת המשקל המתקבל) עבור אלגוריתם זה שווה לסכום‪:‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪ w  1    1  p   p‬‬
‫‪k‬‬

‫‪k‬‬

‫‪uk Ci‬‬

‫‪uk Ci‬‬

‫‪‬‬

‫‪i‬‬

‫‪1i  m‬‬

‫הוכחה‬
‫הסתברותה של פסוקית להיות בלתי מסופקת שווה למכפלת ההסתברויות לבחירת ערך אמת‬
‫‪ False‬לכל משתנה אשר מופיע בה באופן חיובי‪ ,‬ובחירת ערך אמת ‪ True‬לכל משתנה אשר‬
‫מופיע בה באופן שלילי‪ .‬ההסתברות להיות הפסוקית מסופקת היא אם כן ‪ 1‬פחות מכפלה זו‪.‬‬
‫תוחלת הפתרון המתקבל על ידי האלגוריתם שווה לסכום המכפלות בין משקל הפסוקיות‬
‫והסתברותן להיות מסופקות‪ ,‬וזה הסכום המופיע לעיל‪.‬‬

‫‪35‬‬

‫‪3.4‬‬

‫‪GenApprox‬‬

‫במאמר [‪ ]8‬הציעו ‪ Goemans‬ו‪ Williamson-‬שיטה כללית‪ ,‬אותה נכנה להלן ‪ ,GenApprox‬למציאת‬
‫פתרון מקורב לבעיית ‪ .Max-W-SAT‬השיטה כוללת מעבר לבעיית התכנון הלינארי המתאימה לנוסחת‬
‫הקלט‪ ,‬והסקה מפתרונה סדרת הסתברויות ‪ P‬עבור האלגוריתם ‪ GenRandom‬לקבלת פתרונות‬
‫מקורבים לבעיה המקורית‪ .‬ניתן לממש שיטה זו באופנים שונים הנבדלים זה מזה באופן בו מתקבלת‬
‫הסדרה ‪ P‬מפתרון בעיית התכנון הלינארי‪ .‬נעיר כי שימוש בגרסתו הדטרמיניסטית של ‪,GenRandom‬‬
‫יפיק אלגוריתמי ¾‪-‬קירוב דטרמיניסטיים‪.‬‬
‫בהמשך יוצגו שני אלגוריתמי ¾‪-‬קירוב אקראיים אשר מממשים שיטה זו‪.‬‬
‫הקדמה‬
‫ניתן להמיר כל בעיית ‪ Max-W-SAT‬בבעיית תכנון לינארי בשלמים (‪ )ILP‬כך שערכן האופטימלי של‬
‫שתי הבעיות שווה‪.‬‬
‫ביתר פירוט‪ ,‬לנוסחה ‪ , F   C1 ,..., Cm ‬קבוצת משתנים ‪ V   u1 ,..., un ‬וסדרת משקלים‬

‫‪ wi ‬‬

‫עבור הפסוקיות‪ ,‬תותאם בעיית ‪ ILP‬הבאה‪:‬‬
‫בעיית ‪ ILP‬מתאימה ‪)ILP)F -‬‬
‫‪:‬מצא את ערכה המקסימלי של הפונקציה‬

‫‪ wz‬‬

‫‪i i‬‬

‫‪1i  m‬‬

‫‪f  z1 ,..., zm  ‬‬

‫‪:‬תחת ההגבלות הבאות‬
‫‪‬‬

‫‪  1  y   z ‬‬
‫‪‬‬

‫‪i‬‬

‫‪y‬‬

‫‪‬‬

‫‪1i  m ‬‬

‫‪ 1‬‬

‫‪1i m  zi   0,1 ‬‬

‫‪ 2‬‬
‫‪ 3‬‬

‫‪j‬‬

‫‪u j Ci‬‬

‫‪‬‬

‫‪j‬‬

‫‪u j Ci‬‬

‫‪‬‬
‫‪‬‬

‫‪1 j n  y j   0,1 ‬‬

‫(אי השוויון הלינארי מבטיח ש‪ Ci -‬מסופק אם ורק אם לפחות אחד הליטרלים השייכים לו מסופק)‬
‫קל לראות שערך הפתרון המיטבי עבור ‪ ILP  F ‬שווה לערך הפתרון המיטבי עבור ‪ , F‬וניתן להמיר‬
‫ביניהם באמצעות ההתאמה‪:‬‬

36
y j  1  u j  True;

y j  0  u j  False

zi  1  Ci is satisfied;

zi  0  Ci is not satisfied

‫ עם‬.‫ ולכן לא נראית דרך לפתור אותה בזמן סביר‬,‫שלמה‬-NP ‫בעיית התכנון הלינארי בשלמים היא בעיה‬
‫ נקבל בעיית תכנון לינארי‬zi , y j   0,1 ‫ ונמיר אותם בהגבלות‬,2,3 ‫ אם נחליש את האילוצים‬,‫זאת‬
)[4[-‫ (ראה למשל ב‬:‫רגילה לה קיים פתרון פולינומי‬
)LP)F - ‫ מתאימה‬LP ‫בעיית‬
‫מצא את ערכה המקסימלי של הפונקציה‬:
f  z1 ,..., zm  

 wz

1i  m

i i

‫תחת ההגבלות הבאות‬:

  1  y   z 

 1

1i  m 

 2
 3

1i m  0  zi  1


u j Ci

yj 

j

u j Ci

i

1 j n  0  y j  1

‫ ערך הפתרון האופטימלי עבור‬,‫ לכן‬.‫) הוא הרחבת מרחב הפתרונות‬ILP)F-‫) ו‬LP)F ‫ההבדל היחיד בין‬
)‫ (וערך הבעיה המקורית‬.)ILP)F ‫) גדול או שווה לערך הפתרון האופטימלי עבור‬LP)F
‫ שלהלן על ידי‬GenApprox ‫קירוב המוצגים בהמשך מתקבלים מהשיטה הכללית‬-¾-‫שני אלגוריתמי ה‬
.‫ הניתנת לחישוב בזמן פולינומי‬g :  0,1   0,1 ‫בחירה של פונקציה‬

GenApprox
Input: A set F of m clauses C1 ,..., Cm representing a CNF formula, and the set of
variables V .
Each clause Ci includes a set of literals and a weight wi .
A function g computable in polynomial time.
Output: An array of n truth values for each variable ui .
1( Find LP  F  , the linear programming problem derived from F
2( Find the optimal solution  yi  ,  zi  for LP  F 
3( Calculate P   g  yi  

‫‪37‬‬
‫‪3( Return GenRandom  F , P ‬‬

‫‪ 3.4.1‬אלגוריתם ¾‪-‬קירוב ראשון‬
‫האלגוריתם הראשון שיוצג נעזר בפתרון המתקבל מ‪ GenApprox-‬עבור פונקצית הזהות ‪. g  x   x‬‬
‫למה‬
‫לכל פתרון ‪  y j  1 j  n ,  zi  1i  m‬לבעיית התכנון הלינארי‪ ,‬מתקיים‪:‬‬
‫‪ki‬‬
‫‪1   ‬‬
‫‪y j   1  y j    1   1   zi‬‬
‫‪‬‬
‫‪ki   ‬‬
‫‪jU i‬‬
‫‪‬‬
‫‪‬‬
‫‪ ‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪1i  m  1  ‬‬
‫‪‬‬
‫‪jU i‬‬
‫‪‬‬

‫כאשר‪:‬‬
‫‪ - U i‬קבוצת האינדקסים של המשתנים המופיעים בחיוב ב‪Ci -‬‬
‫‪ - U i‬קבוצת האינדקסים של המשתנים המופיעים בשלילה ב‪Ci -‬‬
‫‪ - ki‬מספר הליטרלים בפסוקית ‪Ci‬‬
‫הוכחה‬
‫יהי ‪ . 1  i  m‬נוכיח כי‪:‬‬
‫‪ki‬‬
‫‪1 ‬‬
‫‪  1   1    zi‬‬
‫‪‬‬
‫‪ki  ‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪1  y j   1 y j ‬‬
‫‪jU i‬‬

‫‪jU i‬‬

‫*‬
‫*‬
‫‪‬‬
‫‪‬‬
‫לכל ‪ j  U i‬נסמן ‪ , y j  1  y j‬ולכל ‪ j  U i‬נסמן ‪. y j  y j‬‬

‫הסימון החדש נותן לאי השוויון המבוקש את הצורה‪:‬‬
‫‪ki‬‬
‫‪1 ‬‬
‫‪1  y   1   1    zi‬‬
‫‪‬‬
‫‪ki  ‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫*‬
‫‪j‬‬

‫‪ ‬‬

‫‪1‬‬

‫‪jU i U i‬‬

‫ודרישה ‪ 1‬בבעיית התכנון הלינארי מיתרגמת ל‪:‬‬
‫(*) ‪y *j  zi‬‬

‫מאי‪-‬שוויון הממוצעים נקבל כי‪:‬‬

‫‪‬‬

‫‪jU i U i‬‬

‫‪38‬‬
‫‪ki‬‬
‫‪ki‬‬

‫‪y *j ‬‬

‫לפי (*)‬

‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪zi ‬‬
‫‪  1  1 ‬‬
‫‪ki ‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬

‫‪jU i U i‬‬

‫‪ki‬‬
‫‪‬‬

‫‪‬‬

‫‪  1 y   1  1‬‬
‫*‬
‫‪j‬‬

‫‪‬‬

‫‪1‬‬

‫‪jU i U i‬‬

‫‪‬‬

‫אי‪-‬שוויון הממוצעים‬
‫‪n‬‬

‫‪ki‬‬
‫‪ki‬‬
‫‪‬‬
‫‪‬‬
‫‪zi ‬‬
‫‪1 ‬‬
‫לכן‪ ,‬די יהיה אם נוכיח כי ‪ 1   1     1   1   zi‬לכל ‪. 0  zi  1‬‬
‫‪‬‬
‫‪ki ‬‬
‫‪ki  ‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬

‫(‬

‫‪j‬‬

‫‪a‬‬
‫‪j 1‬‬

‫‪n‬‬

‫אם נתבונן בשני אגפי אי‪-‬השוויון כפונקציות של ‪ , zi‬נמצא כי בצדו הימני של אי השוויון‬
‫פונקציה המגדירה ישר‪ ,‬ובצדו השמאלי פונקציה קעורה בקטע‪.5‬‬
‫בקצוות הקטע ( ‪ ) zi  0,1‬שוות שתי הפונקציות‪ .‬לכן‪ ,‬בשל קעירות הפונקציה השמאלית‪,‬‬
‫מתקיים אי‪-‬השוויון בקטע כולו‪.‬‬
‫מ‪.‬ש‪.‬ל‬
‫מסקנות‬
‫‪)1‬אם נסמן ב‪ k -‬את אורך הפסוקית המקסימלית בנוסחה‪ ,‬יהיה האלגוריתם‬
‫‪k‬‬

‫‪1‬‬
‫‪ GenApprox‬עם פונקצית הזהות אלגוריתם ‪- 1   1  ‬קירוב‪.‬‬
‫‪k‬‬
‫‪‬‬
‫‪1‬‬
‫‪ GenApprox)2‬עם פונקצית הזהות הוא אלגוריתם ‪- 1   0.631‬קירוב‪.‬‬
‫‪e‬‬
‫הוכחה‬
‫א) לכל ‪ , 1  i  m‬נכפול את אי השוויון בלמה ב‪ , wi -‬ונסכם את אי השוויונות שהתקבלו‪:‬‬
‫‪ki‬‬
‫‪1 ‬‬
‫‪y j   1  y j  wi    1   1   wi zi‬‬
‫‪‬‬
‫‪ki  ‬‬
‫‪i 1 ‬‬
‫‪jU i‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪m‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪m‬‬

‫‪‬‬

‫‪i 1‬‬

‫‪  1  ‬‬

‫‪jU i‬‬

‫‪‬‬

‫מצדו השמאלי של אי השוויון‪ ,‬קיבלנו את משקלו המובטח של ‪GenRandom F ,  g  yi  ‬‬
‫(לפי הניתוח בסעיף הקודם)‪ .‬כלומר‪ ,‬של האלגוריתם ‪ GenApprox‬עם פונקצית הזהות‪.‬‬
‫‪ki  2‬‬

‫‪k 1 ‬‬
‫‪zi ‬‬
‫‪5‬‬
‫‪ , f ''  zi    i‬ופונקציה זו שלילית בקטע מאחר ש‪-‬‬
‫נגזרתה השנייה של הפונקציה היא ‪ 1  ‬‬
‫‪ki ‬‬
‫‪ki ‬‬
‫‪ki  1‬‬
‫‪z‬‬
‫‪( . ki  1  zi‬ולכן ‪ 0 , i  1‬‬
‫)‬
‫‪ki‬‬
‫‪ki‬‬

‫‪‬‬

‫‪n‬‬

‫‪j‬‬

‫‪a‬‬
‫‪j 1‬‬

‫‪)n‬‬

‫‪39‬‬

‫‪x‬‬

‫‪1‬‬
‫‪‬‬
‫מאחר שהפונקציה ‪ f  x   1   1  ‬יורדת בקרן ‪ ,6 1  x‬מתקיים לכל ‪: 1  i  m‬‬
‫‪x‬‬
‫‪‬‬
‫‪ki‬‬

‫‪k‬‬

‫‪‬‬

‫‪1‬‬
‫‪1‬‬
‫‪‬‬
‫‪1  1   1  1 ‬‬
‫‪ki ‬‬
‫‪k‬‬
‫‪‬‬
‫‪‬‬

‫לכן‪ ,‬מאי השוויון שקיבלנו ניתן להסיק את אי השוויון‪:‬‬
‫‪‬‬

‫‪m‬‬

‫‪k‬‬

‫‪ wi zi‬‬
‫‪ i 1‬‬
‫‪‬‬

‫‪m‬‬

‫הסכום‬

‫‪w z‬‬

‫‪i i‬‬

‫‪i 1‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪1‬‬
‫‪y j   1  y j  wi   1   1  ‬‬
‫‪‬‬
‫‪‬‬
‫‪k‬‬
‫‪‬‬
‫‪jU i‬‬
‫‪‬‬
‫‪‬‬

‫‪‬‬

‫‪m‬‬

‫‪‬‬

‫‪i 1‬‬

‫‪  1  ‬‬

‫‪jU i‬‬

‫שווה לערך הפתרון המיטבי לבעיה ‪ , LP  F ‬הגדול מערך הפתרון‬

‫האופטימלי לבעיית ‪ , ILP  F ‬כלומר‪ ,‬מערך הפתרון המיטבי לבעיה המקורית‪.‬‬

‫‪k‬‬

‫‪‬‬

‫‪1‬‬
‫קיבלנו‪ ,‬אם כן‪ ,‬שהאלגוריתם מבטיח משקל הגדול או שווה ל‪ 1   1   -‬מהפתרון המיטבי‪,‬‬
‫‪k‬‬
‫‪‬‬
‫‪k‬‬

‫‪1‬‬
‫ומדובר באלגוריתם ‪- 1   1  ‬קירוב כנדרש‪.‬‬
‫‪k‬‬
‫‪‬‬
‫‪x‬‬

‫‪‬‬

‫‪1‬‬
‫ב) סעיף זה מתקבל כמסקנה מיידית מסעיף א'‪ .‬היות וכאמור‪ ,‬הפונקציה ‪f  x   1   1  ‬‬
‫‪x‬‬
‫‪‬‬
‫‪1‬‬
‫יורדת בקרן ‪ , 1  x‬וגבולה באינסוף שווה ל‪. 1   0.631 -‬‬
‫‪e‬‬
‫מ‪.‬ש‪.‬ל‬
‫מהלמה נובע שביצועי האלגוריתם ‪ GenApprox‬עם פונקציית הזהות טובים יותר ככל שפסוקיות הקלט‬
‫קצרות יותר‪ .‬מצד שני‪ ,‬ראינו שביצועי האלגוריתם ‪ Random‬טובים כאשר פסוקיות הקלט ארוכות‪ .‬להלן‬
‫נראה אלגוריתם ¾‪-‬קירוב המתקבל משילוב שני האלגוריתמים‪:‬‬

‫‪¾-Approximate SAT‬‬
‫‪Input: A set F of m clauses C1 ,..., Cm representing a CNF formula, and the set of‬‬
‫‪x 1‬‬
‫‪6‬‬

‫נגזרת הפונקציה היא‬

‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪ , f '  x     1  ‬ופונקציה זו שלילית בקרן ‪ 1  x‬כיוון ש‪,1   0 -‬‬
‫‪x‬‬
‫‪x‬‬
‫‪x‬‬
‫‪x‬‬

‫‪.‬‬

‫‪40‬‬
‫‪variables V .‬‬
‫‪Each clause Ci includes a set of literals and a weight wi .‬‬
‫‪Output: An array of n truth values for each variable ui .‬‬
‫‪1( Sol1  Random  F ‬‬
‫(‪) i is the identity function‬‬

‫‪2( Sol2  GenApprox  F , i ‬‬

‫‪3( Calculate W1,2 - that is, the weight of the satisfied clauses in F for Sol1,2‬‬
‫‪4( Find the maximal between W1,2 , and return the appropriate solution‬‬
‫ביצועים‪:‬‬
‫‪k‬‬

‫‪)1‬מדובר באלגוריתם‬

‫‪‬‬

‫‪1‬‬
‫‪- 1   1  ‬קירוב‪ ,‬כאשר ‪ k‬הוא אורך הפסוקית‬
‫‪k‬‬
‫‪‬‬

‫המקסימלית בנוסחה‪.‬‬
‫הוכחה‬
‫ערך פתרון האלגוריתם אינו קטן מערך הפתרון שמתקבל מ‪. GenApprox  F , i  -‬‬
‫מאחר שממסקנה א' מהלמה לעיל נובע שהאלגוריתם ‪ GenApprox  F , i ‬הוא אלגוריתם‬
‫‪k‬‬

‫‪‬‬

‫‪1‬‬
‫‪- 1   1  ‬קירוב‪ ,‬כזה גם האלגוריתם החדש‪.‬‬
‫‪k‬‬
‫‪‬‬

‫‪1‬‬
‫‪)2‬מדובר באלגוריתם‬
‫‪2k‬‬

‫‪- 1 ‬קירוב‪ ,‬כאשר ‪ k‬הוא אורך הפסוקית המינימלית‬

‫בנוסחה‪.‬‬
‫הוכחה‬
‫ערך פתרון האלגוריתם אינו קטן מערך הפתרון שמתקבל מ‪.Random-‬‬
‫‪1‬‬
‫מאחר שהוכח קודם לכן שהאלגוריתם ‪ Random‬הוא אלגוריתם‬
‫‪2k‬‬
‫האלגוריתם החדש‪.‬‬
‫‪)3‬מדובר באלגוריתם ¾‪-‬קירוב‪:‬‬

‫‪- 1 ‬קירוב‪ ,‬כזה גם‬

‫‪41‬‬

‫הוכחה‬
‫‪W1  W2‬‬
‫מתקיים‬
‫‪2‬‬

‫‪)*( . Max  W1 , W2  ‬‬

‫‪0  zi  1‬‬
‫‪1‬‬
‫אם נסמן ‪ ,  k  1  k‬נקבל לפי ניתוח האלגוריתם ‪:Random‬‬
‫‪2‬‬
‫(**) ‪wi zi‬‬

‫‪ki‬‬

‫‪‬‬

‫‪Ci F‬‬

‫‪wi ‬‬

‫‪ki‬‬

‫‪‬‬

‫‪Ci F‬‬

‫‪W1 ‬‬

‫כאשר ‪ ki‬הוא אורך הפסוקית ‪ , Ci‬ו‪  zi  -‬הם אלה עבורם מתקבל פתרון אופטימלי‬
‫לבעיה ‪. LP  F ‬‬

‫‪k‬‬

‫‪‬‬

‫‪1‬‬
‫אם נסמן ‪ ,  k  1   1  ‬נקבל לפי הלמה האחרונה‪:‬‬
‫‪k‬‬
‫‪‬‬
‫(***) ‪wi zi‬‬

‫‪ki‬‬

‫‪‬‬

‫‪Ci F‬‬

‫‪W2 ‬‬

‫אם נחבר את ***‪ *,**,‬נקבל‪:‬‬
‫‪wi zi‬‬

‫‪1  1  2   2 3‬‬
‫‪‬‬
‫נבחין כי ‪‬‬
‫‪2‬‬
‫‪2‬‬
‫‪4‬‬

‫‪ ki   ki‬‬
‫‪2‬‬

‫‪‬‬

‫‪Ci F‬‬

‫‪Max  W1 , W2  ‬‬

‫‪ ,‬ועבור כל ‪ k  3‬טבעי‪:‬‬

‫‪ k  k 1  7‬‬
‫‪1 3‬‬
‫‪  1 ‬‬
‫‪2‬‬
‫‪2 8‬‬
‫‪e 4‬‬
‫ולכן‪:‬‬
‫* ‪3‬‬
‫‪3‬‬
‫*‪ LP F    F‬‬
‫‪4‬‬
‫‪4‬‬

‫‪‬‬

‫‪3‬‬

‫‪ 4wz‬‬

‫‪i i‬‬

‫‪Ci F‬‬

‫‪Max  W1 , W2  ‬‬

‫*‬
‫*‬
‫‪  LP‬הם ערכי הפתרונות האופטימליים לבעיה המקורית ולבעיה ‪LP  F ‬‬
‫(כאשר ‪ F  ,  F‬‬

‫בהתאמה)‬
‫מ‪.‬ש‪.‬ל‬

‫‪ 3.4.2‬אלגוריתם ‪Goemans-Williamson‬‬

‫‪42‬‬

‫להלן יוצג המימוש לשיטת ‪ GenApprox‬אשר הופיע במאמר [‪ .]8‬במימוש זה נעשה שימוש בפונקציה‬
‫‪ g‬יחידה אשר תבטיח קבלת ¾‪-‬קירוב ללא שימוש באלגוריתמים נוספים‪ .‬מאילוצי בעיית התכנון‬
‫הלינארי‪ ,‬נובעת באופן טבעי ההגדרה הבאה‪ ,‬המהווה תנאי מספיק לכך‪:‬‬

‫הגדרה (פונקצית‪)¾-‬‬
‫פונקציה ‪ g :  0,1   0,1‬תקרא פונקציית‪ ¾-‬אם‪:‬‬
‫‪l‬‬
‫‪k‬‬
‫‪3‬‬
‫‪‬‬
‫‪‬‬
‫‪min  1,  yi   1  yi ‬‬
‫‪4‬‬
‫‪i  l 1‬‬
‫‪ i 1‬‬
‫‪‬‬

‫‪k‬‬

‫‪l‬‬

‫‪i l 1‬‬

‫‪i 1‬‬

‫‪1    1  g  yi    g  yi  ‬‬

‫עבור כל ‪ k , l  N‬כאשר ‪ k  l‬ו‪. y1 ,..., yk   0,1 -‬‬

‫טענה‬
‫עבור פונקצית‪ ¾-‬כלשהי ‪ , g‬ייתן ‪-¾ GenApprox‬קירוב‪.‬‬
‫הוכחה‬
‫המשקל הצפוי להתקבל הוא של‪:‬‬
‫‪‬‬

‫‪  1  y  ‬‬
‫‪‬‬

‫‪k‬‬

‫‪uk Ci‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪k‬‬

‫‪3‬‬
‫‪ w  1    1  g  y    g  y   4  w min  1,  y‬‬
‫‪uk Ci‬‬

‫‪‬‬

‫‪i‬‬

‫‪Ci F‬‬

‫‪‬‬

‫‪k‬‬

‫‪k‬‬

‫‪‬‬

‫‪uk Ci‬‬

‫‪uk Ci‬‬

‫‪i‬‬

‫‪Ci F‬‬

‫מהגדרת הבעיה ‪ , LP  F ‬מתקיים לכל ‪: 1  i  m‬‬
‫‪zi  1‬‬
‫‪k‬‬

‫‪ 1 y‬‬

‫‪uk Ci‬‬

‫‪‬‬

‫‪k‬‬

‫‪y‬‬

‫‪uk Ci‬‬

‫‪zi ‬‬

‫לכן‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪zi  min  1,  yk    1  yk  ‬‬
‫‪ u C‬‬
‫‪‬‬
‫‪uk Ci‬‬
‫‪ k i‬‬
‫‪‬‬
‫מכך ומאי השוויון הראשון נסיק כי המשקל הצפוי הוא לפחות‪:‬‬
‫‪‬‬
‫‪ 3‬‬
‫‪3‬‬
‫* ‪3‬‬
‫‪3‬‬
‫‪wi min  1,  yk   1  yk    wi zi   LP‬‬
‫*‪  F‬‬
‫‪‬‬
‫‪F‬‬
‫‪‬‬
‫‪‬‬
‫‪ u C‬‬
‫‪ 4 C F‬‬
‫‪4 Ci F‬‬
‫‪4‬‬
‫‪4‬‬
‫‪uk Ci‬‬
‫‪i‬‬
‫‪ k i‬‬
‫‪‬‬
‫מ‪.‬ש‪.‬ל‬
‫במאמר [‪ ]8‬מוצגות מספר משפחות פונקציות‪ ,¾-‬ביניהן כל פונקציה מהצורה‪:‬‬

‫‪43‬‬
‫‪g  y      1  2  y‬‬
‫‪3‬‬
‫‪1‬‬
‫עבור ‪  ‬‬
‫‪4‬‬
‫‪4‬‬

‫‪3‬‬

‫‪.2‬‬

‫‪y 1‬‬
‫להלן נוכיח רק כי הפונקציה ‪‬‬
‫‪2 4‬‬

‫‪ g1/ 4  y  ‬היא פונקציה כזו‪( .‬ההוכחה עבור שאר המקרים דומה‪,‬‬

‫אך דורשת עבודה אלגברית רבה יותר)‬

‫טענה ‪1‬‬
‫מתקיים ‪ g 1  y   1  g 1  1  y ‬לכל ‪( . y‬קל לראות זאת באמצעות הצבה)‬
‫‪4‬‬

‫‪4‬‬

‫טענה ‪2‬‬
‫לכל ‪ k  N‬ולכל ‪ 0  yi  1‬מתקיים‪:‬‬
‫‪k‬‬

‫‪‬‬
‫‪  1  g 1  yi  ‬‬
‫‪k‬‬
‫‪4‬‬
‫‪  3 min  1,  yi ‬‬
‫‪1   i 1‬‬
‫‪‬‬
‫‪ 4‬‬
‫‪k‬‬
‫‪ i 1 ‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪k‬‬

‫‪‬‬

‫הוכחה‬
‫ראשית‪ ,‬נבחין כי‪:‬‬
‫‪k‬‬
‫‪3 yi ‬‬
‫‪ ‬‬
‫‪yi‬‬
‫‪3 ‬‬
‫‪4 2‬‬
‫‪i 1‬‬
‫‪ ‬‬
‫‪k‬‬
‫‪4‬‬
‫‪2k‬‬

‫‪k‬‬

‫‪1  g  y   ‬‬
‫‪‬‬
‫‪k‬‬

‫‪i‬‬

‫‪i 1‬‬

‫‪‬‬

‫‪1‬‬
‫‪4‬‬

‫‪i 1‬‬

‫‪k‬‬

‫ולכן די יהיה אם יוכח כי‪:‬‬
‫‪k‬‬

‫‪k‬‬
‫‪3‬‬
‫‪ 3 1 k ‬‬
‫‪‬‬
‫‪‬‬
‫‪1     yi   min  1,  yi ‬‬
‫‪4‬‬
‫‪ 4 2k i 1 ‬‬
‫‪ i 1 ‬‬

‫‪1 k‬‬
‫נסמן ‪ yi‬‬
‫‪k i 1‬‬

‫‪ , x ‬ונקבל שעלינו להוכיח כי לכל ‪: x   0,1‬‬
‫‪k‬‬

‫‪3‬‬
‫‪ 3 x‬‬
‫‪   min  1, kx‬‬
‫‪4‬‬
‫‪ 4 2‬‬

‫‪1 ‬‬

‫‪k‬‬

‫‪ 3 x‬‬
‫נסמן ‪ ‬‬
‫‪ 4 2‬‬

‫‪. f  x  1 ‬‬

‫לכל ‪ 0  x  1‬ולכל ‪: k  1‬‬

‫‪44‬‬
‫‪k 1‬‬

‫‪0‬‬

‫‪k  3 x‬‬
‫‪f ' x    ‬‬
‫‪2 4 2‬‬

‫‪k  k  1  3 x ‬‬
‫‪f ''  x   ‬‬
‫‪  ‬‬
‫‪4  4 2‬‬

‫‪k 2‬‬

‫‪0‬‬
‫ולכן‪ ,‬הפונקציה עולה וקעורה בקטע ‪.  0,1‬‬
‫נחלק לשני מקרים‪:‬‬
‫‪1‬‬
‫א)‬
‫‪k‬‬

‫‪:0  x ‬‬

‫בקטע זה עלינו להוכיח כי‪:‬‬
‫‪3‬‬
‫‪kx‬‬
‫‪4‬‬
‫‪3‬‬
‫מאחר ש‪ f  x  -‬קעורה בקטע זה‪ ,‬ו‪kx -‬‬
‫‪4‬‬

‫‪f  x ‬‬

‫מתארת ישר‪ ,‬די להראות שאי השוויון‬

‫מתקבל בקצוות הקטע‪ .‬עבור ‪ x  0‬אכן מתקבל‪:‬‬
‫‪k‬‬

‫‪3‬‬
‫‪ 3‬‬
‫‪  0  k 0‬‬
‫‪4‬‬
‫‪ 4‬‬

‫‪f  0  1 ‬‬

‫נראה כי מתקיים גם‪:‬‬
‫‪ 1 3 1‬‬
‫‪ k ‬‬
‫‪ k 4 k‬‬

‫‪f‬‬

‫כלומר‪:‬‬
‫‪k‬‬

‫‪3‬‬
‫‪ 3 1 ‬‬
‫‪1    ‬‬
‫‪4‬‬
‫‪ 4 2k ‬‬
‫בדיקה תראה כי עבור ‪ , k  1,.., 4‬מתקיים אי השוויון‪.‬‬
‫עבור ‪ , k  5‬מתקיים‪:‬‬
‫‪5‬‬

‫‪k‬‬

‫‪1‬‬
‫‪ 3 1 ‬‬
‫‪ 3‬‬
‫‪     ‬‬
‫‪4‬‬
‫‪ 4 2k ‬‬
‫‪ 4‬‬
‫ולכן מתקיים אי השוויון‪ ,‬כרצוי‪.‬‬
‫‪1‬‬
‫ב) ‪ x  1‬‬
‫‪k‬‬

‫‪:‬‬

‫בקטע זה עלינו להוכיח כי‪:‬‬
‫‪3‬‬
‫‪4‬‬

‫‪f  x ‬‬

‫‪45‬‬
‫‪1‬‬
‫בסעיף הקודם‪ ,‬ראינו כי אי‪-‬שוויון זה מתקיים עבור‬
‫‪k‬‬
‫‪1‬‬
‫הרי שהוא מתקיים גם לכל ‪ x  1‬‬
‫‪k‬‬

‫‪ . x ‬מאחר שהפונקציה עולה‪,‬‬

‫‪ ,‬כרצוי‪.‬‬

‫טענה ‪3‬‬
‫‪y 1‬‬
‫הפונקציה ‪‬‬
‫‪2 4‬‬

‫‪ g1/ 4  y  ‬היא פונקציית‪.¾-‬‬

‫הוכחה‬
‫יהיו ‪ k , l  N‬כאשר ‪ k  l‬ו‪. y1 ,..., yk   0,1 -‬‬
‫*‬
‫*‬
‫לכל ‪ i  l‬נסמן ‪ yi  yi‬ולכל ‪ k  i  l‬נסמן ‪. yi  1  yi‬‬

‫מתקיים‪:‬‬
‫אי‪-‬שוויון הממוצעים‬
‫‪k‬‬

‫‪‬‬

‫‪k‬‬

‫‪‬‬

‫‪1  g  y  ‬‬

‫‪ ‬‬
‫‪‬‬
‫‪‬‬

‫*‬
‫‪i‬‬

‫‪1‬‬
‫‪4‬‬

‫‪‬‬

‫‪‬‬

‫‪ ‬‬

‫‪‬‬

‫‪k‬‬

‫‪k‬‬

‫‪‬‬

‫‪‬‬

‫‪l‬‬

‫‪i 1‬‬

‫‪1    1  g 1  yi   g 1  yi   1    1  g 1 y   1  ‬‬
‫‪‬‬
‫‪i 1 ‬‬
‫‪i 1 ‬‬
‫‪4‬‬
‫‪ i l 1 4‬‬
‫‪4‬‬
‫‪‬‬

‫‪k‬‬
‫‪‬‬

‫טענה ‪1‬‬

‫*‬
‫‪i‬‬

‫‪‬‬
‫‪‬‬

‫‪3‬‬
‫‪3‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪min  1,  yi*   min  1,  yi   1  yi ‬‬
‫‪4‬‬
‫‪4‬‬
‫‪i l 1‬‬
‫‪ i 1 ‬‬
‫‪ i 1‬‬
‫‪‬‬
‫‪k‬‬

‫כרצוי‪.‬‬

‫‪l‬‬

‫‪k‬‬

‫‪‬‬

‫טענה ‪2‬‬

‫‪46‬‬

‫‪3.5‬‬

‫אלגוריתם ‪Yannakakis‬‬

‫במאמר [‪ ]6‬הציג ‪ Mihalis Yannakakis‬שיטה להמרת נוסחת ‪ CNF‬כללית בנוסחה שקולה (במובן‬
‫שיתואר בהמשך) בעלת מבנה מסוים‪ ,‬אותו הוא מנצל על מנת להשיג ¾‪-‬קירוב לנוסחה המקורית‪ .‬להלן‬
‫יוצג פתרונו של ‪ Yannakakis‬ותוכח נכונותו‪.‬‬
‫הגדרה (שקילות קבוצות נוסחאות)‬
‫יהיו שתי קבוצות נוסחאות ‪ , B   G1 ,..., Gm  , A   F1 ,..., Fn ‬מעל אוסף משתנים ‪ V‬ויהיו‬
‫‪ w1 ,..., wn  m‬משקלי ‪ n  m‬הנוסחאות‪.‬‬
‫קבוצות הנוסחאות ‪ A, B‬ייקראו שקולות אם לכל הצבת ערכי אמת למשתני ‪ , V‬משקל הנוסחאות‬
‫המסופקות בשתיהן שווה‪ .‬במקרה זה נסמן ‪. A ~ B‬‬
‫מקרה פרטי של הגדרה זו אשר ישמש אותנו בהמשך הוא שקילות בין אוספי פסוקיות‪( .‬המייצגים‬
‫נוסחאות בצורת ‪ )CNF‬ניתן להבחין שהגדרה זו חזקה בהרבה משקילות נוסחאות בוליאניות רגילה‪ ,‬אשר‬
‫דורשת רק כי כאשר אחת הנוסחאות מסופקת‪ ,‬גם השנייה מסופקת‪.‬‬
‫טענת עזר‬
‫(בשני הסעיפים לכל הפסוקיות משקל זהה ‪) w‬‬
‫‪ )1‬לכל ‪ , n  1‬שתי הנוסחאות הבאות שקולות‪:‬‬

‫‪‬‬

‫‪‬‬

‫‪Fn   u1  ui  ui 1 |1  i  n  1‬‬

‫‪‬‬

‫‪‬‬

‫‪Fn*  ui  ui 1 | 2  i  n   un ‬‬

‫‪ )2‬לכל ‪ , n  1‬שתי הנוסחאות הבאות שקולות‪:‬‬

‫‪‬‬
‫‪u ‬‬

‫‪ ‬‬
‫‪|1  i  n  1   u‬‬

‫‪‬‬
‫‪u u‬‬

‫‪Gn  ui 1  ui |1  i  n  1  u1  un‬‬

‫‪1‬‬

‫‪n‬‬

‫הוכחה‬
‫‪ )1‬נוכיח את הטענה באינדוקציה על ‪: n‬‬
‫נכונות הטענה עבור ‪ n  1‬ברורה‪.‬‬

‫‪i 1‬‬

‫‪i‬‬

‫*‪Gn‬‬

‫‪47‬‬
‫*‬
‫יהי ‪ . n  1‬נניח כי ‪. Fn ~ Fn‬‬

‫נבחין כי‪:‬‬

‫‪‬‬
‫‪ u  , u      u  ‬‬

‫‪‬‬
‫‪  u‬‬

‫‪Fn 1  Fn  un  un 1‬‬

‫‪n 1‬‬

‫‪n‬‬

‫‪n‬‬

‫‪n 1‬‬

‫*‪Fn*1  Fn‬‬

‫תהי ‪  n 1‬השמת ערכי אמת ל‪ ,  ui  1i n 1 -‬ויהי ‪  n‬צמצומה‬

‫‪‬‬

‫ל‪ ui  1in -‬‬

‫‪‬‬

‫*‬
‫מהנחת האינדוקציה‪ ,‬נקבל כי ‪. W  Fn , n   W Fn , n‬‬

‫נחלק למקרים‪ ,‬ונחשב בכל אחד מהם את משקל הנוסחאות‪:‬‬
‫‪un 1  True‬‬

‫‪W  Fn 1 , n 1   W  Fn , n   w ‬‬

‫‪un  True‬‬

‫‪‬‬

‫‪un  False‬‬

‫‪‬‬

‫‪‬‬

‫‪W  Fn 1 , n 1   W  Fn 1 , n 1   w ‬‬

‫‪‬‬

‫‪‬‬

‫‪ W Fn* , n  w  w  w  W Fn*1 , n 1‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪ W Fn*1 , n 1  w  W Fn*1 , n 1‬‬

‫‪un 1  False‬‬

‫‪‬‬

‫‪W  Fn 1 , n1   W  Fn , n  ‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪ W Fn* , n  w  w  W Fn*1 , n 1‬‬

‫‪W  Fn 1 , n 1   W  Fn 1 , n 1   w ‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪ W Fn*1 , n 1  w  W Fn*1 , n 1‬‬

‫*‬
‫*‬
‫לכן‪ ,‬בכל ארבעה המקרים ניתן להסיק ‪ , Fn ~ Fn  Fn 1 ~ Fn 1‬כרצוי‪.‬‬

‫‪ )2‬ניתן להוכיח חלק זה באינדוקציה כפי שנעשה עבור חלק ‪( .1‬רק שבמקרה זה‪ ,‬יהיה‬
‫צורך לחלק לשמונה מקרים במקום ארבעה)‬
‫פתרון הבעיה ‪Max-W-2SAT‬‬
‫בסעיף זה יוצג אלגוריתם ¾‪-‬קירוב עבור מקרים בהם אורך הפסוקיות חסום על ידי ‪ .2‬פתרון זה ישמש‬
‫כשלב בפתרון המקרי הכללי‪.‬‬
‫משפט א'‬
‫יהי ‪ F‬קלט לבעיה ‪( Max W-2-SAT‬כל הפסוקיות מכילות לכל היותר שני ליטרלים) מעל‬
‫לקבוצת המשתנים ‪ . V‬ניתן למצוא בזמן פולינומי‪:‬‬

‫‪.1‬קבוצת משתנים ‪ U  V‬והשמת ערכי אמת עבורם ‪‬‬
‫‪.2‬נוסחה חדשה ' ‪ F‬מעל ‪ V  U‬המכילה רק פסוקיות מאורך ‪2‬‬
‫‪.3‬קבוע ‪h  0‬‬

‫‪48‬‬
‫עבורם מתקיים‪:‬‬
‫‪.1‬לכל השמת ערכי אמת ‪ ‬עבור ‪ V  U‬יתקיים‪:‬‬
‫‪W  F ,      W  F ',    h‬‬
‫‪.2‬לכל השמת ערכי אמת ‪ ‬עבור ‪ , V‬ו השמת ערכי אמת ‪   ‬עבור ‪, V  U‬‬
‫מתקיים‪:‬‬
‫‪W  F ,    W  F ',   h‬‬
‫(לכן מציאת ‪- r‬קירוב עבור ' ‪ , F‬תיתן ‪- r‬קירוב עבור ‪ . F‬בפרט‪ ,‬אם נשיג ¾‪-‬קירוב עבור ' ‪F‬‬
‫‪ ,‬נמצא ¾‪-‬קירוב גם עבור ‪) F‬‬
‫להלן נראה כיצד ניתן לעשות זאת‪:‬‬
‫שלב א' (בניית רשת זרימה)‬
‫תהי ‪ F‬נוסחת ‪ CNF‬עם משקלים לפסוקיותיה‪ .‬נבנה רשת הזרימה ‪ N  F ‬כך‪:‬‬
‫קדקודי הרשת ‪ N  F ‬יהיו כל הליטרלים המופיעים ב‪ , F -‬מקור ‪ s‬ובור ‪. t‬‬
‫לכל פסוקית ‪ C  F‬מאורך ‪ 1‬או ‪ 2‬נתאים שתי קשתות‪:‬‬
‫אם ‪ C   a ‬פסוקית יחידה‪ ,‬נתאים לה את הקשתות‪:‬‬
‫‪sa‬‬
‫‪at‬‬
‫אם ‪ C   a  b ‬פסוקית מאורך ‪ ,2‬נתאים לה את הקשתות‪:‬‬
‫‪ab‬‬
‫‪ba‬‬
‫בשני המקרים‪ ,‬קיבול כל קשת המתאימה לפסוקית ‪ C‬יהיה שווה למחצית‬
‫ממשקלה של ‪. C‬‬
‫קשתות שמקורן באותה הפסוקית יכונו קשתות מתאימות‪.‬‬
‫שלב ב' (מציאת זרם מקסימלי סימטרי)‬
‫נמצא זרימה מקסימלית ˆ‪ f‬עבור הרשת ‪. N  F ‬‬

‫‪49‬‬

‫נגדיר פונקצית זרימה חדשה ‪ f‬שתוגדר כך‪ :‬לכל שתי קשתות מתאימות ‪ , e1 , e2‬נקבע‬
‫‪fˆ  e1   fˆ  e2 ‬‬
‫‪2‬‬

‫‪ . f  e1   f  e2  ‬קל לראות שהזרימה החדשה חוקית‪:‬‬

‫‪ .1‬מתקיים שימור הזרימה‪:‬‬
‫יהי ‪ x‬צומת ברשת שאינו המקור או הבור‪ .‬הזרימה היוצאת ממנו לפי ‪f‬‬
‫שווה לממוצע בין הזרימה היוצאת ממנו ובין הזרימה הנכנסת ל‪ x -‬לפי ˆ‪. f‬‬
‫ולהפך עבור הזרימה הנכנסת אליו‪.‬‬
‫לכן‪ ,‬ההפרש בין הזרימה היוצאת והזרימה הנכנסת ל‪ x -‬לפי ‪ f‬שווה‬
‫למחצית הסכום‪ :‬הזרימה הנכנסת ל‪ x -‬לפי ˆ‪ f‬ועוד הזרימה היוצאת מ‪x -‬‬
‫(לפי ˆ‪ ) f‬פחות הזרימה היוצאת מ‪ x -‬ופחות הזרימה הנכנסת ל‪ . x -‬כלומר‪,‬‬
‫בסה"כ מחצית מההפרש בין הזרימה הנכנסת ל‪ x -‬וזו היוצאת מ‪ , x -‬וההפרש‬
‫בין הזרימה הנכנסת והיוצאת מ‪ . x -‬מאחר ש‪ fˆ -‬זרימה חוקית‪ ,‬שני ההפרשים‬
‫הללו שווים ל‪ ,0-‬ולכן גם מחצית סכומם‪ ,‬כרצוי‪.‬‬
‫‪ f .2‬מקיימת את אילוצי הקיבול‪:‬‬
‫יהיו ‪ e1 , e2‬קשתות ב‪ , N  F  -‬קיבולן זהה‪ .‬מאחר ש‪ fˆ -‬זרימה חוקית‪ ,‬הרי‬
‫שערכי ‪ fˆ  e1  , fˆ  e2 ‬קטנים מקיבול זה‪ ,‬לכן גם הממוצע ביניהם (הזרימה‬
‫החדשה בשתי הקשתות) קטן מהקיבול‪ ,‬כרצוי‪.‬‬
‫מאחר שערך ‪ f‬שווה לערך ˆ‪ , f‬הרי שהיא זרימה מקסימלית‪.‬‬

‫שלב ג' (הרשת השיורית)‬
‫תהי ‪ M‬הרשת השיורית המתאימה לרשת ‪ N  F ‬עבור הזרימה ‪ f‬ללא הקשתות הנכנסות ל‪-‬‬
‫‪ s‬ואלה היוצאות מ‪ . t -‬מאחר שהזרימה ‪ f‬בקשתות מתאימות שווה‪ ,‬נמצא ש‪ M -‬סימטרית‪,‬‬
‫ולכן ניתן להתאים לקשתותיה אוסף פסוקיות מאורך של ‪ 1‬או ‪( .2‬עבור כל צמד קשתות ‪u  t‬‬
‫‪ s  u,‬השייכות ל‪ , M -‬אשר קיבולן ברשת השיורית ‪ , w‬תתקבל פסוקית היחידה ‪ u‬במשקל‬

‫‪50‬‬
‫‪ . 2w‬עבור כל צמד קשתות ‪( u  v, v  u‬כאשר ‪ ) u , v   s, t ‬אשר קיבולן ‪ , w‬תתקבל‬
‫הפסוקית ‪ u  v‬במשקל ‪). 2w‬‬
‫תהי‪ F%‬הנוסחה המתקבלת מ‪ F -‬על ידי החלפת הפסוקיות מאורכים ‪ 1,2‬בפסוקיות המתקבלות‬
‫מ‪. M -‬‬
‫טענה א'‬
‫יהי * ‪ f‬ערך הזרימה המקסימלית ברשת ‪( . N  F ‬ערכה של ‪) f‬‬
‫לכל השמת ערכי אמת ‪ ‬למשתנים‪ ,‬מתקיים‪:‬‬

‫‪‬‬

‫‪‬‬

‫* ‪W  F ,   W F%,  f‬‬

‫הוכחה‬
‫ניתן לפרק את ‪ f‬לסכום של ‪ k‬זוגות מסלולים מ‪ s -‬ל‪( . t -‬עבור כל מסלול מ‪ s -‬ל‪-‬‬
‫‪ , t‬קיים גם המסלול הסימטרי המורכב מהקשתות הסימטריות לקשתות המסלול‬
‫המקורי‪ ,‬אשר הזרימה בו שווה) ו‪ m -‬זוגות מעגלים ברשת הזרימה המקורית‪( .‬בדומה‬
‫למסלולים‪ ,‬גם עבור המעגלים ניתן תמיד לראות לצד כל מעגל את המעגל הסימטרי לו)‬
‫‪w‬‬
‫‪)1‬נתבונן בזוג מסלולים סימטריים מ‪ s -‬ל‪ t -‬במשקל‬
‫‪2‬‬
‫כל אחד ברשת ‪ . N  F ‬מסלולים אלה מורכבים‬
‫מהקשתות‪:‬‬

‫‪ s, u1  ,  u1 , u2  ,...,  un 1 , un  ,  un , t ‬‬

‫‪ s, u  ,  u , u  ,...,  u , u  ,  u , t ‬‬
‫‪1‬‬

‫‪w‬‬
‫אשר משקל כולן‬
‫‪2‬‬

‫‪1‬‬

‫‪2‬‬

‫‪n 1‬‬

‫‪n‬‬

‫‪n‬‬

‫‪ .‬קשתות אלה מקורן בפסוקיות‪:‬‬
‫(*)‬

‫‪ u1   ui  ui 1 |1  i  n  1   un ‬‬

‫אשר משקלן ‪ w‬כל אחת‪.‬‬
‫‪w‬‬
‫לאחר הזרמת הזרם‬
‫‪2‬‬

‫בשני המסלולים‪ ,‬יתקבלו ב‪ M -‬זוג המסלולים‪:‬‬

‫‪51‬‬

‫‪ un , un 1  ,...,  u2 , u1 ‬‬

‫‪‬‬

‫‪, un‬‬

‫‪n 1‬‬

‫‪ u , u  ,...,  u‬‬
‫‪2‬‬

‫‪1‬‬

‫המתאימים לפסוקיות‪:‬‬

‫‪‬‬

‫(**) ‪| 2  i  n‬‬

‫‪u u‬‬

‫‪i 1‬‬

‫‪i‬‬

‫(במשקל ‪ w‬כל אחת)‬
‫הפסוקיות * שקולות (לפי טענת העזר) לאוסף‪:‬‬

‫‪‬‬

‫‪ ‬‬

‫‪| 2  i  n   un   un‬‬

‫‪u u‬‬

‫‪i 1‬‬

‫‪i‬‬

‫‪ ‬‬

‫אוסף הפסוקיות הראשון הוא האוסף **‪ .‬האוסף ‪  un   un‬מכיל פסוקית‬
‫ושלילתה‪ ,‬ולכן עבור כל השמת ערכי אמת‪ ,‬שקול אוסף הפסוקיות * לאוסף‬
‫הפסוקיות ** שהתקבל ממנו‪ ,‬ולשתי פסוקית נוספות אשר תורמות ‪w‬‬
‫למשקל הפסוקיות המסופקות לכל השמת ערכי אמת‪ .‬לכן‪ ,‬מומר האוסף *‬
‫באוסף שני‪ ,‬אשר משקל הפסוקיות המסופקות בו (לכל השמת ערכי אמת) קטן‬
‫מזה של * ב‪. w -‬‬
‫היות וטענה זו נכונה עבור כל המסלולים הללו‪ ,‬ומשקלם הכולל שווה לזרימה‬
‫* ‪ , f‬נקבל את המבוקש‪.‬‬
‫‪)2‬נתבונן בזוג מעגלים סימטריים ממשקל ‪ w‬ברשת‬
‫‪.N  F‬‬
‫המעגלים מורכבים מהקשתות‪:‬‬

‫‪ u1 , u2  ,...,  un1 , un  ,  un , u1 ‬‬

‫‪ u , u  ,...,  u , u  ,  u , u ‬‬
‫‪n‬‬

‫‪1‬‬

‫‪1‬‬

‫‪2‬‬

‫‪n 1‬‬

‫‪n‬‬

‫המתאימות לפסוקיות‪:‬‬

‫‪‬‬

‫‪ ‬‬

‫(*) ‪|1  i  n  1  un  u1‬‬

‫‪i 1‬‬

‫‪u u‬‬
‫‪i‬‬

‫אשר משקל כל אחת מהן ‪. w‬‬
‫הזרמת זרימה של ‪ w‬במעגלים אלה ב‪ N  F  -‬תיצור את המעגלים‪:‬‬

‫‪52‬‬

‫‪ un , un 1  ,...,  u2 , u1  ,  u1 , un ‬‬

‫‪‬‬

‫‪‬‬

‫‪, un , un , u1‬‬

‫‪n 1‬‬

‫‪ u , u  ,...,  u‬‬
‫‪1‬‬

‫‪2‬‬

‫המתאימים לפסוקיות‪:‬‬

‫‪‬‬

‫‪ ‬‬

‫(**) ‪ ui |1  i  n  1  u1  un‬‬

‫‪u‬‬

‫‪i 1‬‬

‫אשר משקל כל אחת מהן ‪. w‬‬
‫לפי חלקה השני של טענת העזר‪ ,‬אוספי הפסוקיות *‪ **,‬שקולים‪.‬‬
‫ברשת השיורית ‪ M‬לא קיים מסלול המתחיל ב‪ s -‬ונגמר ב‪ , t -‬כיוון שהזרימה מקסימלית‪( .‬לו‬
‫היה מסלול כזה‪ ,‬ניתן היה להגדיל את הזרימה באותו המסלול ברשת הזרימה המקורית‪ ,‬ולהגדיל‬
‫את ערך הזרימה‪ .‬אך‪ ,‬זרימה זו מקסימלית‪ ,‬ולכן מצב כזה בלתי אפשרי)‬
‫נתבונן באוסף ‪ R‬של כל הצמתים אליהם ניתן להגיע מ‪ s -‬ברשת ‪ . M‬מאחר שהרשת ‪M‬‬
‫סימטרית‪ ,‬עבור כל צומת ‪ a‬כזה‪ ,‬קיים מסלול מ‪ a -‬ל‪ . t -‬לכן‪ ,‬לא ייתכן ש‪ a, a  R -‬גם יחד‪.‬‬
‫מכך ניתן להסיק את הטענה הבאה‪:‬‬
‫טענה ב' (תכונות‪) F%‬‬
‫‪)1‬לא קיימות ב‪ F%-‬שתי פסוקיות יחידה מנוגדות ‪a, a‬‬
‫‪)2‬כל פסוקית בת שני ליטרלים השייכת ל‪ F%-‬ומכילה שלילת‬
‫ליטרל מ‪ R -‬מכילה גם ליטרל השייך ל‪R -‬‬
‫כל פסוקית מאורך ‪ 1,2‬המכילה ליטרל השייך ל‪ R -‬או את שלילתו של ליטרל‬

‫ג)‬

‫כזה‪ ,‬מסופקת על ידי השמת ערך אמת ‪ True‬לכל הליטרלים השייכים ל‪. R -‬‬
‫הוכחה‬
‫‪)1‬לו היו קיימות שתי פסוקיות יחידה כאלה‪ ,‬היו שני הליטרלים‬
‫המנוגדים ‪ a, a‬שייכים שניהם ל‪( . R -‬בסתירה לאמור לעיל)‬
‫‪)2‬תהי ‪ a  b‬פסוקית כזו‪ ,‬ונניח כי ‪ . a  R‬מאחר שהפסוקית‬

‫‪ ‬‬

‫שייכת ל‪ , F%-‬קיימת הקשת ‪ a, b‬ברשת השיורית ‪ . M‬מאחר‬

‫‪53‬‬
‫ש‪ , a  R -‬קיים מסלול ‪ . s  a‬לכן‪ ,‬קיים גם המסלול‬
‫‪ s  a  b‬ו‪ b  R -‬כרצוי‪.‬‬
‫‪)3‬מסקנה מיידית משתי הטענות הקודמות‪( .‬כל פסוקיות היחידה‬
‫מסופקות לפי חלק א'‪ ,‬וכל הפסוקיות מאורך ‪ 2‬מסופקות לפי‬
‫חלק ב')‬
‫לכן‪ ,‬מתן ערך אמת ‪ True‬לכל הליטרלים השייכים ל‪ , R -‬יספק את כל הפסוקיות המכילות ליטרלים‬
‫ושלילת ליטרלים השייכים ל‪( . R -‬ניתן לעשות זאת‪ ,‬כיוון ש‪ R -‬לא מכיל ליטרל ושלילתו)‬
‫לכן‪ ,‬מתקיים משפט א'‪( .‬קבוצת המשתנים ‪ U‬היא קבוצת המשתנים אשר ‪ R‬מכילה ליטרלים שלהם;‬
‫ההשמה ‪ ‬היא ההשמה הנותנת לכל משתנה של ‪ U‬המופיע ב‪ R -‬בחיוב ערך ‪ , True‬ו‪False -‬‬

‫אחרת;הקבוע ‪ h‬הוא * ‪ . f‬כל תנאי המשפט מתקבלים מטענה ב' לעיל)‬

‫המקרה הכללי‬
‫הפתרון במקרה הכללי מחולק לשלושה חלקים‪:‬‬
‫חלק ראשון‬
‫יהי ‪ F2‬אוסף הפסוקיות השייכות ל‪ F -‬מאורך ‪ 2‬לכל היותר‪.‬‬
‫‪ - F%‬האוסף המתקבל על ידי הפעלת השיטה שהוצגה לפתרון‬
‫עבור אוסף זה‪ ,‬נחשב את האוסף ‪2‬‬
‫בעיית ‪( .Max-W-2SAT‬אין לקבוע את ערך האמת של הליטרלים ב‪ R -‬עדיין)‬
‫‪ . F% F%‬מטענה א' נסיק כי מתקיים‪:‬‬
‫נסמן ‪2   F  F2 ‬‬

‫‪‬‬

‫‪‬‬

‫* ‪W  F ,   W F%,  f‬‬
‫כאשר ‪. f *  0‬‬
‫לכן‪ ,‬ממציאת ‪- r‬קירוב עבור‪ F%‬נוכל להסיק ‪- r‬קירוב עבור ‪. F‬‬
‫חלק שני‬

‫‪Ci‬‬
‫‪Ci‬‬

‫‪M‬‬

‫‪Cj‬‬

‫‪S‬‬

‫‪R‬‬

‫‪54‬‬

‫שלב א' (בניית רשת זרימה)‬
‫נתבונן באוסף הפסוקיות מאורך ‪ 3‬או ‪ 4‬אשר כל ליטרליהן הם שלילות ליטרלים מ‪ , R -‬ונבנה‬
‫רשת זרימה חדשה ‪ N 2‬כך‪:‬‬
‫‪.1‬היא תכיל גרף זהה לגרף המושרה על ידי ‪  s  R‬ב‪, M -‬‬
‫רק שקיבולת כל הקשתות תהיה כפולה מקיבולתן ב‪. M -‬‬
‫(מאחר שהרשת אינה מכילה ליטרלים מנוגדים או את הבור ‪t‬‬
‫‪ ,‬כל פסוקית מיוצגת על ידי קשת יחידה)‬
‫‪.2‬לרשת יהיו בורות מרובים‪ :‬כל פסוקית ‪ Ci‬מאורך ‪ 3‬או ‪4‬‬
‫אשר כל הליטרלים שלה הם שלילות ליטרלים השייכים ל‪R -‬‬
‫‪.‬‬
‫‪.3‬אל כל בור ‪ Ci  x  y  z‬ממשקל ‪ wi‬ייכנסו שלוש‬
‫קשתות מהצמתים ‪ x, y , z‬וקיבולת כל אחת מהן תהיה‬
‫‪. wi 2‬‬
‫‪.4‬אל כל בור ‪ Ci  w  x  y  z‬ממשקל ‪ wi‬ייכנסו ארבע‬
‫קשתות מהצמתים ‪ w, x, y, z‬וקיבולת כל אחת מהן תהיה‬
‫‪. wi 3‬‬
‫שלב ב' (מציאת זרם מקסימלי)‬
‫עתה‪ ,‬נמצא זרימה מקסימלית ‪ f 2‬ברשת ‪ N 2‬תחת האילוץ כי הזרימה דרך כל הקשתות‬
‫הנכנסות לכל בור שווה‪[ .‬ניתן לעשות זאת בזמן פולינומי על ידי תיאור בעיית הזרימה כבעיית‬
‫תכנון לינארי (עם הזרימה היוצאת מהמקור כפונקצית המטרה‪ ,‬ואילוצי הקיבול‪,‬‬
‫האנטיסימטרייה‪ ,‬שימור הזרימה ואחידות הזרימה לבורות כאילוצים הלינאריים)]‬
‫שלב ג' (הרשת השיורית)‬
‫נתבונן ברשת השיורית החדשה ‪ M 2‬המתקבלת מ‪ N 2 -‬והזרימה המקסימלית ‪. f 2‬‬

‫‪55‬‬

‫נכנה את אוסף הקדקודים ב‪ M 2 -‬אשר קיים מסלול מ‪ s -‬אליהם ב‪ . P -‬מאחר שהזרימה‬
‫מקסימלית‪ ,‬הבורות ‪ Ci‬אינם שייכים ל‪ , P -‬ולכן ‪ . P  R‬לכן‪ P ,‬אינה מכילה ליטרל‬
‫ושלילתו‪( .‬כיוון ש‪ R -‬מקיימת זאת ו‪) P  R -‬‬
‫שלב ד' (בניית קבוצת פסוקיות שקולה ל‪) F%-‬‬
‫נבנה אוסף פסוקיות נוסף ‪ G‬השקול ל‪. F%-‬‬
‫האוסף ‪ G‬יהיה מורכב משני חלקים '' ‪( . G ', G‬לא בהכרח זרים)‬
‫' ‪ G‬יהיה מורכב מהפסוקיות הבאות‪:‬‬
‫‪.1‬לכל בור ‪ Ci  x  y  z‬של ‪ ,) x, y , z  R ( N 2‬נסמן ב‪-‬‬
‫‪ g  Ci ‬את הזרם הנכנס אליו מהצמתים ‪ . x, y , z‬נוסיף ל‪G ' -‬‬
‫את הפסוקיות הבאות‪:‬‬
‫הפסוקית ‪ Ci‬במשקל ‪2 g  Ci ‬‬
‫פסוקיות היחידה ‪ x, y , z‬במשקל ‪g  Ci ‬‬
‫‪.2‬לכל בור ‪ Ci  w  x  y  z‬של ‪,) w, x, y, z  R ( N 2‬‬
‫נסמן ב‪ g  Ci  -‬את הזרם הנכנס אליו מהצמתים ‪. w, x, y, z‬‬
‫נוסיף ל‪ G ' -‬את הפסוקיות הבאות‪:‬‬
‫הפסוקית ‪ Ci‬במשקל ‪3 g  Ci ‬‬
‫פסוקיות היחידה ‪ w, x, y, z‬במשקל ‪g  Ci ‬‬
‫'' ‪ G‬תהיה מורכבת מהפסוקיות הבאות‪:‬‬
‫‪.1‬כל פסוקית של ‪ F%‬אשר אינה מיוצגת ב‪ N 2 -‬תופיע ב‪G '' -‬‬

‫במשקלה הרגיל‪.‬‬
‫פסוקיות אלה הן‪:‬‬
‫‪)1‬פסוקיות מאורך ‪ 2‬אשר אינן מכילות‬
‫ליטרלים השייכים ל‪. R -‬‬

‫‪56‬‬
‫‪)2‬פסוקיות מאורך ‪ 3‬ו‪ 4-‬אשר לא כל‬
‫ליטרליהן הם שלילות ליטרלים השייכים‬
‫ל‪. R -‬‬
‫‪)3‬פסוקיות מאורך ‪ 5‬ומעלה‪.‬‬
‫‪.2‬פסוקית מהצורה ‪ ) x, y , z  R ( Ci  x  y  z‬השייכת‬
‫ל‪ F%-‬תופיע במשקל המשלים את משקלה ב‪ G ' -‬למשקל ‪wi‬‬
‫‪( .‬כלומר‪ ,‬משקלה יהיה ‪ . wi  2 g  Ci ‬משקל זה לעולם אי‪-‬‬
‫שלילי בשל אילוצי הקיבול)‬
‫‪.3‬פסוקית מהצורה ‪) w, x, y, z  R ( Ci  w  x  y  z‬‬
‫תופיע במשקל המשלים את משקלה ב‪ G ' -‬למשקל ‪. wi‬‬
‫(כלומר‪ ,‬משקלה יהיה ‪ . wi  3 g  Ci ‬משקל זה לעולם אי‪-‬‬
‫שלילי בשל אילוצי הקיבול)‬
‫‪.4‬לכל קשת ‪  s, a ‬ב‪ , M 2 -‬נוסיף פסוקית ‪ a‬במשקל השווה‬
‫לקיבולת הקשת‪.‬‬
‫‪.5‬לכל קשת‬

‫‪ a, b ‬‬

‫ב‪ , M 2 -‬נוסיף פסוקית ‪ a  b‬במשקל‬

‫השווה לקיבולת הקשת‪.‬‬
‫כאמור‪. G  G ' G '' ,‬‬
‫טענה ג'‬
‫הקבוצות‪ F%‬ו‪ G -‬שקולות‪.‬‬
‫הוכחה‬
‫הקבוצות נבדלות אלה מאלה רק בפסוקיות מאורך ‪ 1,2‬המכילות ליטרל השייך ל‪. R -‬‬
‫בעוד שהפסוקיות שב‪ F%-‬הן אלה המתאימות לתת הגרף המושרה על ידי ‪  s  R‬ב‪-‬‬
‫‪ , N 2‬הפסוקיות שב‪ G -‬הן אלה המתאימות לתת הגרף המושרה על ידי‬
‫ברשת השיורית ‪ , M 2‬ופסוקיות היחידה הנוצרות ב‪1,2-‬‬

‫‪ s  R‬‬

‫‪57‬‬
‫הוכחת טענה זו דומה מאד להוכחת טענה א'‪ .‬ניתן לפרק את הזרימה ‪ f 2‬לרביעיות‬
‫מסלולים המתחילים ב‪ , s -‬ונגמרים בבור ‪ Ci‬כלשהו‪ ,‬ולמעגלים אשר כל צמתיהם‬
‫שייכים ל‪( . R -‬כיוון שאין זרימה הנכנסת למקור‪ ,‬ואין זרימה היוצאת מהבורות) נראה‬
‫כי הזרמתם ברשת הזרימה מפיקה רשת שיורית המתאימה לאוסף פסוקיות שקול‪:‬‬
‫‪.1‬בחלק זה נתייחס לרביעיית מסלולים‬
‫הנגמרת בבור המתאים לפסוקית מאורך ‪.4‬‬
‫ההוכחה‬

‫עבור‬

‫המסלולים‬

‫שלישיות‬

‫הנגמרות בבור המתאים לפסוקית מאורך ‪3‬‬
‫אנלוגית‪.‬‬
‫נתבונן ברביעיית מסלולים ממשקל ‪ w‬המרכיבים את ‪ . f 2‬צורתם‪:‬‬
‫‪s  b1  ...  bn2  Ci‬‬

‫‪s  a1  ...  an1  Ci‬‬

‫‪s  d1  ...  d n4  Ci‬‬

‫‪s  c1  ...  cn3  Ci‬‬

‫עבור ליטרלים ‪ ai , bi , ci , di  R‬ובור ‪Ci  an1  bn2  cn3  d n4‬‬
‫כלשהם‪.‬‬
‫מסלולים אלה מומרים ברשת השיורית במסלולים‪:‬‬
‫‪bn2  ...  b1‬‬

‫‪an1  ...  a1‬‬

‫‪d n4  ...  d1‬‬

‫‪cn3  ...  c1‬‬

‫המתאימים לפסוקיות‪:‬‬

‫‪ a  a |1  i  n  1   b  n |1  i  n  1 ‬‬
‫‪  c  c |1  i  n  1   d  d |1  i  n  1‬‬
‫‪2‬‬

‫‪4‬‬

‫‪i 1‬‬

‫‪i‬‬

‫‪i‬‬

‫‪i 1‬‬

‫‪1‬‬

‫‪3‬‬

‫‪i 1‬‬

‫‪i‬‬

‫‪i‬‬

‫‪i 1‬‬

‫ובשל הבור ‪ , Ci‬נוספות פסוקיות היחידה‪:‬‬
‫‪an1 , bn2 , cn3 , d n4‬‬
‫כולן במשקל ‪. w‬‬
‫כלומר‪ ,‬אוסף הפסוקיות‪:‬‬

‫‪58‬‬

‫‪ a1   ai  ai 1 |1  i  n1  1 ‬‬

‫‪‬‬
‫‪|1  i  n  1 ‬‬
‫‪|1  i  n  1‬‬

‫‪‬‬
‫‪ c    c  c‬‬
‫‪ d    d  d‬‬

‫‪  b1  bi  bi 1 |1  i  n2  1 ‬‬
‫‪3‬‬

‫‪i 1‬‬

‫‪i 1‬‬

‫‪4‬‬

‫‪1‬‬

‫‪i‬‬

‫‪1‬‬

‫‪i‬‬

‫מומר באוסף הפסוקיות‪:‬‬

‫‪ a  a |1  i  n  1   a ‬‬
‫‪  b  n |1  i  n  1   b ‬‬
‫‪  c  c |1  i  n  1   c ‬‬
‫‪  d  d |1  i  n  1   d ‬‬
‫‪1‬‬

‫‪n1‬‬

‫‪i 1‬‬

‫‪i‬‬

‫‪n2‬‬

‫‪2‬‬

‫‪i‬‬

‫‪i 1‬‬

‫‪n3‬‬

‫‪3‬‬

‫‪i‬‬

‫‪i 1‬‬

‫‪n4‬‬

‫‪i‬‬

‫‪4‬‬

‫‪i 1‬‬

‫(כל הפסוקיות במשקל ‪) w‬‬
‫לפי טענת העזר‪ ,‬שני האוספים שקולים‪ ,‬כרצוי‪.‬‬
‫‪.2‬נתבונן באחד המעגלים המרכיבים את ‪. f 2‬‬
‫צורתו‪:‬‬
‫‪a1  ...  an  a1‬‬
‫עבור ‪ ai  R‬כלשהם‪.‬‬
‫מעגל זה מומר ברשת השיורית במעגל‪:‬‬
‫‪an  ...  a1  an‬‬
‫כלומר‪ ,‬אוסף הפסוקיות‪:‬‬

‫‪‬‬

‫‪ ‬‬

‫‪|1  i  n  1  an  a1‬‬

‫‪a a‬‬

‫‪i 1‬‬

‫‪i‬‬

‫מומר באוסף הפסוקיות‪:‬‬

‫‪‬‬

‫‪ ‬‬

‫‪ ai |1  i  n  1  a1  an‬‬

‫ולפי טענת העזר‪ ,‬שני אוספים אלה שקולים‪.‬‬
‫טענה ד' (תכונות '' ‪) G‬‬
‫‪)1‬כל פסוקית יחידה בקבוצה '' ‪ G‬היא של ליטרל מ‪. P -‬‬
‫‪)2‬כל פסוקית מאורך ‪ 2‬בקבוצה '' ‪ G‬המכילה שלילה של ליטרל‬
‫מ‪ P -‬מכילה גם ליטרל מ‪. P -‬‬

‫‪a‬‬

‫‪i 1‬‬

‫‪59‬‬
‫‪)3‬אין ב‪ G '' -‬פסוקיות מאורך ‪ 3‬או ‪ 4‬אשר כל ליטרליהן הם‬
‫שלילות ליטרלים השייכים ל‪. P -‬‬
‫הוכחה‬
‫‪)1‬מקורה של כל פסוקית יחידה‬

‫‪ x‬‬

‫ב‪ G '' -‬בקשת ‪s  x‬‬

‫ברשת השיורית ‪ . M 2‬לכן‪ ,‬עבור כל פסוקית כזו ‪, x  P‬‬
‫כרצוי‪.‬‬
‫‪)2‬תהי ‪ x  y‬פסוקית מאורך ‪ 2‬השייכת ל‪ , G '' -‬כאשר ‪. x  P‬‬
‫פסוקית זו לא התקבלה מסעיף ‪1‬א' בהגדרת '' ‪( G‬כיוון ש‪-‬‬
‫‪ P  R‬ולכן ‪ ,) x  R‬ולכן התקבלה מסעיף ‪ ,5‬ומקורה בקשת‬
‫‪ x  y‬ברשת השיורית ‪. M 2‬‬
‫‪ , x  P‬ולכן קיים ב‪ M 2 -‬מסלול המתחיל ב‪ s -‬ומסתיים ב‪ . x -‬לכן‪ ,‬חיבור הקשת‬
‫‪ x  y‬ומסלול זה יפיק מסלול המסתיים ב‪ , y -‬ו‪ , y  P -‬כרצוי‪.‬‬

‫‪)3‬נניח בשלילה כי קיימת פסוקית ‪ Ci‬מאורך ‪ 3‬או ‪ 4‬ב‪ G '' -‬אשר‬
‫כל הליטרלים המופיעים בה הם שלילות ליטרלים של ‪. P‬‬
‫בפרט‪ ,‬מדובר בפסוקית אשר כל הליטרלים בה הם שלילות‬
‫ליטרלים של ‪ , R‬ולכן התקבלה בהכרח באחד הסעיפים ‪ 2‬או ‪3‬‬
‫(לפי אורכה) בהגדרת '' ‪. G‬‬
‫לכן‪ ,‬הקשתות המחברות בין ‪ Ci‬ושלילות הליטרלים המרכיבים אותה בעלות‬
‫קיבול חיובי‪ .‬מאחר שהליטרלים המרכיבים אותה שייכים ל‪ , P -‬שלילותיהם‬
‫שייכות ל‪ , P -‬וקיים מסלול בעל קיבול חיובי המוביל לכל אחד מהם‪ .‬לכן‪ ,‬קיים‬
‫ברשת השיורית מסלול בעל קיבול חיובי המסתיים ב‪ Ci -‬העובר בכל אחד‬
‫מהצמתים המתחברים ל‪ . Ci -‬אם נזרים דרך כל המסלולים האלה זרם בסך הקיבול‬
‫המינימלי מבין קיבוליהם‪ ,‬נקבל זרימה שערכה גדול מערך ‪ , f 2‬בסתירה‬
‫למקסימליות הזרימה ‪. f 2‬‬

‫‪60‬‬
‫חלק שלישי‬

‫‪Ci‬‬

‫‪Cj‬‬

‫‪T‬‬

‫‪S‬‬

‫‪Ci‬‬

‫‪P‬‬

‫‪M‬‬

‫‪Z‬‬

‫‪M‬‬

‫‪P‬‬

‫שלב א' (בניית רשת זרימה)‬
‫נסמן ב‪ P -‬את אוסף שלילות כל הליטרלים השייכים ל‪ , P -‬וב‪ Z -‬את קבוצת כל‬
‫הליטרלים המופיעים ב‪ G '' -‬ואינם שייכים ל‪ P -‬או ל‪. P -‬‬
‫נתבונן בקבוצה ‪ B‬של פסוקיות מ‪ G '' -‬המכילות שני ליטרלים השייכים ל‪, P -‬‬
‫ואחד השייך ל‪ . Z -‬רשת הזרימה ‪ N 3‬שנבנה תכיל מקור ובור ‪ , s, t‬את הליטרלים‬
‫המופיעים ב‪ G '' -‬ולכל פסוקית ‪ , C  B‬שני צמתים ‪. C , C‬‬
‫נתבונן באוסף הפסוקיות מאורך ‪ 1,2‬של '' ‪ , G‬ונגדיר את הקשתות בתת הגרף‬
‫המושרה על ידי קבוצת הליטרלים‪ ,‬המקור והבור באופן המקובל‪ .‬נבחין כי אין‬
‫קשתות המחברות קודקודים השייכים לקבוצות שונות מבין ‪( . P, Z , P‬כתוצאה‬
‫מהגדרת ‪ ) P‬בנוסף לקשתות אלה‪ ,‬עבור כל פסוקית ‪ C  x  y  a‬ב‪B -‬‬
‫(כאשר ‪ x, y  P‬ו‪ ) a  Z -‬נוסיף את הקשתות ‪ C  a , x, y  C‬ואת‬
‫‪w‬‬
‫‪ C  x, y‬ו‪ , a  C -‬ולכולן קיבול‬
‫‪2‬‬

‫‪( .‬כאשר משקל ‪ C‬הוא ‪) w‬‬

‫נבחין שהתקבלה רשת זרימה סימטרית במובן שתואר קודם‪( .‬לכל שני צמתים‬
‫‪ , x, y‬לקשתות ‪ x  y‬ו‪ x  y -‬קיבול שווה)‬

‫‪61‬‬
‫שלב ב' (מציאת זרם מקסימלי)‬
‫עתה‪ ,‬נמצא זרימה מקסימלית ‪ fˆ3‬ברשת ‪ , N 3‬כאשר אנו דורשים שימור זרימה בצמתים‬
‫המתאימים לליטרלים בלבד‪ .‬בצמתים ‪( Ci , Ci‬עבור ‪ ,) Ci  B‬אנו דורשים כי הזרימה בכל‬
‫הקשתות הסמוכות להם תהיה שווה‪( .‬כמו בחלק השני‪ ,‬ניתן לפתור את הבעיה בזמן פולינומי על‬
‫ידי הצגתה כבעיית תכנון לינארי)‬
‫לאחר מכן‪ ,‬נסיק מזרם זה זרם סימטרי על ידי ההגדרה‪:‬‬

‫‪ ‬‬

‫‪fˆ3  x, y   fˆ3 x, y‬‬
‫‪2‬‬

‫‪ ‬‬

‫‪f 3 x, y  f 3  x , y  ‬‬

‫(קל לראות שכל התכונות שמנינו לעיל מתקיימות גם עבור הזרם ‪ f 3‬ושזרם זה מקסימלי גם כן)‬
‫שלב ג' (הרשת השיורית)‬
‫נתבונן ברשת השיורית החדשה ‪ M 3‬המתקבלת מ‪ N 3 -‬והזרימה המקסימלית ‪ . f 3‬הרשת ‪M 3‬‬
‫סימטרית‪( .‬כיוון ש‪ N 3 -‬ו‪ f 3 -‬שתיהן סימטריות)‬
‫נסמן ב‪ P ' -‬את אוסף קדקודי ‪ P‬אשר קיים מסלול מ‪ s -‬אליהם ב‪. M 3 -‬‬

‫נסמן ב‪ Q -‬את אוסף קדקודי ‪ Z‬אשר ניתן להזרים אליהם זרם נוסף ב‪ Q . M 3 -‬אינה מכילה‬
‫ליטרלים מנוגדים‪( .‬אחרת‪ ,‬ניתן היה לבנות מסלולי שיפור העוברים דרכם – בסתירה‬
‫למקסימליות הזרימה)‬
‫נבחין כי ניתן לחלק את כל הליטרלים של משתני ‪ V‬לשש קבוצות זרות‪ ,‬אשר אף אחת מהן לא‬
‫מכילה ליטרל ושלילתו‪:‬‬
‫הקבוצות ' ‪P ', P‬‬
‫הקבוצות ‪ M , M‬כאשר ‪M   P  P '  Q‬‬
‫הקבוצות ‪ N , N‬כאשר ‪ N‬היא אוסף המשתנים להם אין ליטרל השייך ל‪ P -‬או ל‪Q -‬‬

‫(הסתמכתי כאן על העובדה ש‪ P -‬אינה מכילה ליטרל ושלילתו‪ ,‬כפי שהוכח בחלק‬
‫השני)‬

‫‪62‬‬
‫בהמשך‪ ,‬השמת ערכי האמת האקראית שתיבחר תיתן הסתברות שונה לסיפוק ליטרלי שש‬
‫הקבוצות הללו‪.‬‬
‫שלב ד' (בניית קבוצת פסוקיות שקולה ל‪) G '' -‬‬
‫נבנה אוסף נוסחאות חדש ‪ H‬השקול ל‪( . G '' -‬בשונה מהאוספים הקודמים‪ ,‬תנצל ‪ H‬את‬
‫ההגדרה הכללית יותר של שקילות קבוצות נוסחאות‪ ,‬ותכיל גם נוסחאות שאינן פסוקיות)‬
‫כמו ‪ , G‬יורכב גם ‪ H‬משני תתי אוספים '' ‪( . H ', H‬לא בהכרח זרים)‬
‫האוסף ' ‪ H‬יהיה מורכב מהנוסחאות הבאות‪:‬‬
‫לכל ‪ Ci  x  y  a‬ב‪ x, y  P ( G '' -‬ו‪ ,) a  Z -‬יופיעו הנוסחאות הבאות‪:‬‬
‫‪ x  y‬במשקל ‪2h  Ci ‬‬
‫‪  x  y   a‬במשקל ‪2h  Ci ‬‬
‫‪ a, a‬במשקל ‪h  Ci ‬‬
‫(כאשר ‪ h  Ci ‬הוא הזרם העובר בקשתות הסמוכות ל‪) Ci -‬‬
‫האוסף '' ‪ H‬יהיה מורכב מהפסוקיות הבאות‪:‬‬
‫‪.1‬כל הפסוקיות של '' ‪ G‬שאינן מיוצגות ב‪N 3 -‬‬
‫יופיעו ב‪ H '' -‬במשקלן המקורי‪ .‬פסוקיות‬
‫אלה הן‪:‬‬
‫‪)1‬פסוקיות‬

‫מאורך‬

‫‪3‬‬

‫שאינן שייכות ל‪B -‬‬
‫‪)2‬פסוקיות‬

‫מאורך‬

‫‪4‬‬

‫ומעלה ב‪G '' -‬‬

‫‪.2‬כל פסוקית ‪ Ci  B‬במשקל ‪. wi  2h  Ci ‬‬
‫(כאשר ‪ h  Ci ‬הוא הזרם העובר בקשתות‬
‫הסמוכות ל‪) Ci -‬‬

‫‪63‬‬
‫‪.3‬הפסוקיות מאורך ‪ 1,2‬המתקבלות מהרשת‬
‫השיורית‬

‫‪M3‬‬

‫(ללא הצמתים‬

‫‪Ci  B‬‬

‫והקשתות הסמוכות להם) באופן המקובל‪.‬‬
‫כאמור‪. H  H ' H '' ,‬‬

‫‪64‬‬
‫טענה ה'‬
‫הקבוצות ‪ H‬ו‪ G '' -‬שקולות‪.‬‬
‫הוכחה‬
‫כפי שעשינו בטענות א' וג'‪ ,‬נתבונן גם כאן בהשפעת הזרמת זרם ‪ w‬דרך צמד‬
‫"מסלולים" (מסלול והמסלול הסימטרי לו) המחברים בין המקור והבור‪.‬‬
‫צורתו של "מסלול" כללי המתחיל במקור ומסתיים בבור היא כזו‪:‬‬
‫תחילתו בשני מסלולים ב‪( P -‬במובן המקובל של המילה) המתחילים במקור‬
‫ומגיעים שניהם לצומת ‪ Ci‬כלשהו‪ .‬לאחר מכן‪ ,‬ממשיכים כמסלול יחיד ב‪Z -‬‬
‫עד לצומת ‪ C j‬ומתפצלים שנית לשני מסלולים ב‪ P -‬הנפגשים בבור‪ .‬מאחר‬
‫שהזרימה סימטרית‪ ,‬קיים למסלול זה מסלול סימטרי בו עוברת אותה הזרימה‬
‫המתקבל משלילת והיפוך סדרם של כל הצמתים (פרט למקור והבור) בדרכו‬
‫של המסלול הראשון‪.‬‬
‫הזרימה בכל הקשתות בשני המסלולים שווה‪( .‬בשל אילוצי הזרימה) הזרמת זרם ‪w‬‬
‫דרך שניהם מורידה ב‪ 2w -‬את משקל כל הפסוקיות המיוצגות על ידי המסלול‪( .‬הן‬
‫עבור הפסוקיות מאורך ‪ 1‬ו‪ 2-‬והן עבור ‪ Ci‬ו‪) C j -‬‬
‫צורתן הכללית של הפסוקיות המתאימות לצמד מסלולים אלה היא‪:‬‬

‫‪‬‬

‫‪‬‬

‫‪b1 , bi  bi 1 |1  i  m2  1‬‬

‫‪k‬‬

‫‪‬‬

‫‪ z  z |1  i  k  1 , C  q  p  z‬‬
‫‪|1  i  m  1 , q ,  p  p |1  i  m  1 , p‬‬
‫‪1‬‬

‫‪m4‬‬

‫‪1‬‬

‫‪4‬‬

‫‪i 1‬‬

‫‪j‬‬

‫‪i 1‬‬

‫‪i‬‬

‫‪‬‬

‫‪a1 , ai  ai 1 |1  i  m1  1 ,‬‬

‫‪m3‬‬

‫‪Ci  am1  bm2  z1 ,‬‬

‫‪i‬‬

‫‪3‬‬

‫כולן במשקל ‪. 2w‬‬
‫לאחר הזרמת זרם של ‪ w‬בשני המסלולים‪ ,‬יוחלפו פסוקיות אלה בפסוקיות‪:‬‬

‫‪q q‬‬

‫‪i 1‬‬

‫‪i‬‬

‫‪65‬‬

‫‪‬‬

‫‪ bi |1  i  m2  1‬‬

‫‪‬‬

‫‪b‬‬

‫‪i 1‬‬

‫‪‬‬

‫‪‬‬

‫‪ ai |1  i  m1  1 ,‬‬

‫‪‬‬

‫‪a‬‬

‫‪i 1‬‬

‫‪‬‬

‫‪group  Ci   am1  bm2 , am1  bm2  z1 , z1 , z1‬‬

‫‪‬‬

‫‪ zi |1  i  k  1‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪i 1‬‬

‫‪‬‬

‫‪z‬‬

‫‪group  C j   q1  p1 , q1  p1  zk , zk , zk‬‬

‫‪ pi |1  i  m4  1‬‬

‫‪p‬‬

‫‪i 1‬‬

‫‪‬‬

‫‪ qi |1  i  m3  1 ,‬‬

‫‪q‬‬

‫‪i 1‬‬

‫אשר משקלן ‪ 2w‬גם כן‪ ,‬להוציא את הפסוקיות ‪ zk , zk , z1 , z1‬להן משקל ‪ w‬בלבד‪.‬‬
‫ברצוננו להראות ששני אוספי פסוקיות אלה שקולים זה לזה‪ .‬אם נוסיף לשני האוספים‬
‫את הפסוקיות‪:‬‬

‫‪‬‬

‫‪, bm2 , z1 , zk , q1 , p1 , qm3 , pm4‬‬

‫‪a‬‬

‫‪m1‬‬

‫במשקל ‪ 2w‬כל אחת ונסלק אוספי פסוקיות אשר ידועים לנו כשקולים לפי חלקה‬
‫הראשון של טענת העזר‪ ,‬נמצא שנותר לנו להוכיח את שקילות שני האוספים הבאים‪:‬‬

‫‪‬‬

‫~ ‪, bm2 , zk , Ci  am1  bm2  z1 , C j  q1  p1  zk , qm3 , pm4 , qm3 , pm4‬‬

‫‪‬‬

‫‪‬‬

‫‪a‬‬

‫‪m1‬‬

‫‪~  z1 , q1 , p1  group  Ci   group  C j  ‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪ z1 , q1 , p1 , am1  bm2 , am1  bm2  z1 , z1 , z1 , q1  p1 , q1  p1  zk , zk , zk‬‬

‫(כאשר משקל כל הפסוקיות הוא ‪ 2w‬להוציא את הפסוקיות ‪ z1 , z1 , zk , zk‬שמקורן ב‪-‬‬
‫‪ group  Ci , j ‬ומשקלן ‪ w‬בלבד)‬
‫ניתן להוכיח שקילות זו באמצעות חלוקה למקרים‪ ,‬אך ניתן לחסוך בהשוואות כך‪:‬‬
‫ראשית‪ ,‬נבחין כי‪:‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪ ‬‬

‫‪, bm2 , Ci  am1  bm2  z1 ~ z1 , am1  bm2 , am1  bm2  z1‬‬

‫‪a‬‬

‫‪m1‬‬

‫(כאשר משקל כל הפסוקיות ‪) 2w‬‬
‫ניתן להראות זאת באמצעות חלוקה למקרים‪( .‬עבור ערכי ‪ am1 , bm2‬ו‪) z1 -‬‬
‫שנית‪ ,‬מתקיים‪:‬‬

‫‪‬‬

‫‪ ‬‬

‫‪, qm3 ~ z1 , z1 , zk , zk‬‬

‫(כאשר משקל ‪ z1 , z1 , zk , zk‬הוא ‪ , w‬ומשקל ‪ qm3 , qm3‬הוא ‪) 2w‬‬

‫‪q‬‬

‫‪m3‬‬

‫‪66‬‬
‫כיוון שמשקל הפסוקיות המסופקות על ידי כל השמה קבוע ושווה ל‪2w -‬‬
‫בשתי הקבוצות‪.‬‬
‫לבסוף‪ ,‬נראה כי‪:‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪ ‬‬

‫‪ q1  p1  zk , pm4 , pm4 ~ q1 , p1 , q1  p1 , q1  p1  zk‬‬

‫‪j‬‬

‫‪ z ,C‬‬
‫‪k‬‬

‫גם בכך ניתן להיווכח באמצעות חלוקה למקרים עבור ערכי ‪. q1 , p1 , zk‬‬
‫(נבחין כי ערכו של ‪ pm4‬אינו משנה את משקל האוסף השמאלי)‬

‫ראינו כי הזרמת זרם בשני מסלולים סימטריים ממין זה מותירה אותנו עם נוסחה השקולה‬
‫לנוסחה המקורית‪ .‬מאחר שניתן לפרק את ‪ f 3‬למספר מסלולים כאלה‪ ,‬נסיק את המבוקש‪.‬‬
‫טענה ו'‬
‫‪)1‬כל פסוקיות היחידה של '' ‪ H‬הן של ליטרל מ‪P ' -‬‬
‫‪)2‬אין ב‪ H '' -‬פסוקיות מאורך ‪ 3‬או ‪ 4‬אשר כל ליטרליהן שייכים‬
‫ל‪( P -‬ובפרט ל‪) P ' -‬‬
‫‪)3‬אם פסוקית מאורך ‪ 3‬ב‪ H '' -‬מכילה שני ליטרלים השייכים ל‪-‬‬
‫' ‪ , P‬הליטרל השלישי שלה שייך ל‪ P -‬או ל‪Q -‬‬
‫הוכחה‬
‫‪)1‬כל פסוקית יחידה ‪ x‬של '' ‪ H‬מקורה בקשת ‪  s, x ‬ברשת‬
‫השיורית ‪ . M 3‬לכן‪ ,‬קיים מסלול המתחיל ב‪ s -‬ונגמר ב‪, x -‬‬
‫ולכן ' ‪ , x  P‬כרצוי‪.‬‬
‫‪ H '' )2‬מכילה פסוקיות מאורך ‪ 3‬ומעלה השייכות ל‪ G '' -‬בלבד‪.‬‬
‫לפי סעיף ג' בטענה ד'‪ ,‬אין ב‪ G '' -‬פסוקיות כאלה‪ ,‬ולכן אין‬
‫כאלה גם ב‪. H '' -‬‬
‫‪)3‬תהי ‪ C  x  y  w‬פסוקית כזו‪( .‬כאשר ' ‪ ) x, y  P‬לפי‬
‫סעיף ב' בטענה זו‪ , w  P ,‬ולכן קיימות שתי אפשרויות‪:‬‬
‫‪ w  P‬או ‪. w  Z‬‬
‫נראה כי במקרה השני‪ , w  Q ,‬וההוכחה תושלם‪:‬‬

‫‪67‬‬
‫מאחר שכאמור‪ C  G '' ,‬ו‪ , P '  P -‬שייכת ‪ C‬ל‪. B -‬‬
‫ב‪ N 3 -‬הקשתות‬

‫‪ x, C  ,  y , C  ,  C , w ‬‬

‫אינן רוויות‪( .‬אחרת‪,‬‬

‫'' ‪ ) C  H‬מאחר שכאמור‪ , x, y  P ' ,‬ניתן להזרים זרם נוסף אל‬
‫‪( w‬למשל‪ ,‬את המינימום בין הקיבול הנותר בקשת ‪,  C , w ‬‬
‫וקיבולי המסלולים המחברים את ‪ s‬ל‪ ) x, y -‬ולכן ‪ , w  Q‬כרצוי‪.‬‬
‫שלב ה' (מציאת השמת ערכי אמת)‬
‫הנוסחה‪ F%‬שקולה לנוסחת האיחוד '' ‪( . G ' H ' H‬מסקנה זו מתקבלת מטענות ג' וה') לכן‪,‬‬
‫אם יתקבל פתרון ¾‪-‬קירוב עבור נוסחה זו‪ ,‬יימצא גם ¾‪-‬קירוב עבור הנוסחה המקורית‪ .‬בפרט‪,‬‬
‫אם יימצא ¾‪-‬קירוב עבור כל אחת מהקבוצות '' ‪ , G ', H ', H‬תתאים השמה זו גם עבור הנוסחה‬
‫המקורית‪.‬‬
‫נתבונן בהשמת ערכי האמת האקראית ‪ ‬המוגדרת כך‪:‬‬
‫‪.1‬עבור ליטרלים השייכים ל‪ , P ' -‬ייבחר ערך‬

‫‪True‬‬

‫‪3‬‬
‫בהסתברות‬
‫‪4‬‬
‫‪.2‬עבור ליטרלים השייכים ל‪ P  P ' -‬ול‪ , Q -‬ייבחר ערך‬
‫‪5‬‬
‫‪ True‬בהסתברות‬
‫‪9‬‬
‫‪.3‬עבור משתנים להם אין ליטרל ב‪ P -‬או ב‪ , Q -‬ייבחר ערך‬
‫‪1‬‬
‫‪ True‬בהסתברות‬
‫‪2‬‬
‫טענה ז' (ביצועים צפויים)‬
‫‪)1‬ההשמה צפויה לתת ¾‪-‬קירוב עבור הנוסחה ' ‪G‬‬

‫‪)2‬ההשמה צפויה לתת ¾‪-‬קירוב עבור הנוסחה ' ‪H‬‬
‫‪)3‬ההשמה צפויה לספק פסוקיות של '' ‪ H‬שמשקלן לפחות ¾‬
‫ממשקל כל פסוקיות '' ‪( . H‬ובפרט‪ ,‬צפויה לתת ¾‪-‬קירוב עבור‬
‫'' ‪) H‬‬

‫‪68‬‬
‫‪)4‬ההשמה מבטיחה ¾‪-‬קירוב עבור הנוסחה '' ‪ , G ' H ' H‬ולכן‬
‫גם עבור‪ F%‬והנוסחה המקורית‪.‬‬
‫הוכחה‬
‫א) ' ‪ G‬נבנתה (חלק ד' בשלב ‪ )2‬כאוסף תתי קבוצות משני מינים‪ .‬נראה כי ערכה‬
‫הצפוי של השמת ערכי האמת המתקבלת עבור כל תת קבוצה כזו שווה לפחות ל‪¾-‬‬
‫מערך ההשמה האופטימלית עבורה‪:‬‬

‫סוג א'‬
‫תת קבוצה מהצורה‪:‬‬
‫פסוקית ‪ x  y  z‬ממשקל ‪2c‬‬

‫פסוקיות היחידה ‪ x, y , z‬במשקל ‪c‬‬
‫(כאשר ‪ x, y , z  R‬ו‪) 0  c -‬‬
‫קל לראות שהצבה אופטימלית משיגה משקל של ‪  *  4c‬בלבד‪.‬‬
‫תוחלת המשקל המתקבלת מפסוקית זו על ידי ההצבה האקראית היא‪:‬‬
‫‪E  c  px  p y  pz   2c  1  px p y pz ‬‬
‫כאשר ‪ pu‬הוא ההסתברות שייקבע ‪. u  True‬‬
‫מאחר ש‪ R -‬אינה מכילה ליטרלים מנוגדים‪ ,‬והקבוצה ' ‪ P‬מוכלת בה‪,‬‬
‫הליטרלים ‪ x, y , z‬אינם שייכים ל‪ P ' -‬ולכן בהכרח‪:‬‬
‫‪ 1 4 5 3‬‬
‫‪, , , ‬‬
‫‪ 2 9 9 4‬‬

‫‪px , p y , pz  ‬‬

‫‪ 1 4 5 3‬‬
‫ברצוננו להראות כי לכל ‪, , , ‬‬
‫‪ 2 9 9 4‬‬

‫‪ , px , p y , pz  ‬מתקיים‪:‬‬
‫* ‪E  0.75‬‬

‫‪c  px  p y  pz   2c  1  px p y pz   3c‬‬
‫‪px  p y  pz  2 px p y pz  1‬‬
‫בדיקה ידנית תראה שאי‪-‬שוויון מתקיים לכל ערכי ‪ px , p y , pz‬כרצוי‪.‬‬

‫‪69‬‬
‫סוג ב'‬
‫תת קבוצה מהצורה‪:‬‬
‫פסוקית ‪ x  y  z  w‬ממשקל ‪3c‬‬

‫פסוקיות היחידה ‪ x, y , z , w‬במשקל ‪c‬‬
‫(כאשר ‪ x, y , z , w  R‬ו‪) 0  c -‬‬
‫קל לראות שהצבה אופטימלית משיגה משקל של ‪  *  6c‬בלבד‪.‬‬

‫תוחלת המשקל המתקבלת מפסוקית זו על ידי ההצבה האקראית היא‪:‬‬
‫‪E  c  px  p y  pz  pw   3c  1  px p y pz pw ‬‬
‫כאשר ‪ pu‬הוא ההסתברות שייקבע ‪. u  True‬‬
‫כמקודם‪ ,‬בהכרח‪:‬‬
‫‪ 1 4 5 3‬‬
‫‪, , , ‬‬
‫‪ 2 9 9 4‬‬

‫‪p x , p y , p z , pw  ‬‬

‫‪ 1 4 5 3‬‬
‫לכן‪ ,‬ברצוננו להראות כי לכל ‪, , , ‬‬
‫‪ 2 9 9 4‬‬

‫‪ px , p y , pz , pw  ‬מתקיים‪:‬‬
‫* ‪E  0.75‬‬

‫‪c  px  p y  pz  pw   3c  1  px p y pz pw   4.5c‬‬
‫‪px  p y  pz  pw  3 px p y pz pw  1.5‬‬
‫בדיקה ידנית תראה שאי‪-‬שוויון מתקיים לכל ערכי ‪ px , p y , pz , pw‬כרצוי‪.‬‬

‫ב) ' ‪ H‬נבנתה (חלק ד' בשלב ‪ )3‬כאוסף תתי קבוצות‪ .‬נראה כי ערכה הצפוי של‬
‫השמת ערכי האמת המתקבלת עבור כל תת קבוצה כזו שווה לפחות ל‪ ¾-‬מערך ההשמה‬
‫האופטימלית עבורה‪:‬‬
‫נתבונן בקבוצה כזו‪:‬‬
‫‪ x  y‬במשקל ‪2c‬‬
‫‪  x  y   a‬במשקל ‪2c‬‬
‫‪ a, a‬במשקל ‪c‬‬

‫‪70‬‬
‫(כאשר ‪ , a  Z , x, y  P‬ו‪) 0  c -‬‬
‫קל לראות שהצבה אופטימלית משיגה משקל של ‪.  *  5c‬‬
‫תוחלת המשקל המתקבלת מפסוקית זו על ידי ההצבה האקראית היא‪:‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪E  2c 1   1  px   1  p y   2c 1   1  px p y  pa  c  1  pa   cpa‬‬
‫‪ 1 4 5‬‬
‫‪, , ‬‬
‫‪ 2 9 9‬‬

‫‪Pa  ‬‬

‫מאחר ש‪ , a  P -‬בהכרח‬

‫ומאחר ש‪ , x, y  P -‬בהכרח‬

‫‪ 3 5‬‬
‫‪, ‬‬
‫‪ 4 9‬‬

‫‪. Px , Py  ‬‬

‫‪ 3 5‬‬
‫לכן‪ ,‬ברצוננו להראות כי לכל ‪, ‬‬
‫‪ 4 9‬‬

‫‪ Px , Py  ‬מתקיים‪:‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫* ‪E  0.75‬‬

‫‪‬‬

‫‪2c 1   1  px   1  p y   2c 1   1  px p y  pa  c  1  pa   cpa  3.75c‬‬
‫‪2  1  px   1  p y   2  1  px p y  pa  1.25‬‬

‫בדיקה ידנית תראה שאי השוויון מתקיים עבור כל האפשרויות הללו‪.‬‬
‫ג) נחלק את פסוקיות '' ‪ H‬לפי אורכן ונראה שהסתברות כולן להיות מסופקות היא ¾‬
‫לפחות‪:‬‬
‫א) פסוקיות מאורך ‪:1‬‬
‫לפי סעיף א' של טענה ו'‪ ,‬כל פסוקית יחידה של '' ‪ H‬היא של ליטרל‬
‫של ' ‪. P‬‬
‫לכן‪ ,‬סיכויה להיות מסופקת הוא ¾‪ ,‬כרצוי‪.‬‬
‫ב) פסוקיות מאורך ‪:2‬‬
‫מקורה של כל פסוקית ‪ x  y‬מאורך ‪ 2‬ב‪ H '' -‬בקשתות‬

‫‪  ‬‬

‫‪ x, y , x, y‬ברשת השיורית ‪ . M 3‬ברשת השיורית ניתן לחלק‬

‫את הקודקודים הליטרלים לשבע קבוצות כך שכל קשת המחברת שני‬
‫ליטרלים מחברת ליטרלים השייכים שניהם לאחת הקבוצות הללו‪:‬‬

‫‪‬‬

‫‪‬‬

‫‪Z  Q Q‬‬

‫‪Q, Q,‬‬

‫‪P  P ', P  P ',‬‬

‫‪P ', P ',‬‬

‫‪71‬‬
‫(עובדה זו נובעת מהגדרת ' ‪ P‬ו‪ , Q -‬מהקשתות המרכיבות את ‪, N 3‬‬
‫ומהעובדה שהקבוצות ‪ P ', P‬ו‪ Q -‬אינן מכילות ליטרלים מנוגדים)‬

‫נבחין כי‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪ . Z  Q  Q  Z  Q  Q‬לכן‪ ,‬מקיום הקשת‬

‫‪ ‬‬

‫‪ x, y‬נסיק כי ‪ x‬שייך לקבוצה מנוגדת לזו לה שייך ‪ . y‬לכן‪ ,‬אם‬

‫הסתברות סיפוק ‪ x‬היא ‪ , ‬הסתברות סיפוק ‪ y‬היא ‪, 1  ‬‬
‫והסתברות סיפוק הפסוקית היא‪:‬‬
‫‪1   1  Px   1  Py   1   1     ‬‬
‫‪2‬‬

‫‪‬‬

‫‪1‬‬
‫‪3 3‬‬
‫‪   1       ‬‬
‫‪2‬‬
‫‪4 4‬‬
‫‪‬‬
‫‪2‬‬

‫‪ 1 4 5 1 3‬‬
‫כרצוי‪ ,‬לכל ‪( . ‬ובפרט עבור ‪, , , , ‬‬
‫‪ 2 9 9 4 4‬‬

‫‪)  ‬‬

‫ג) פסוקיות מאורך ‪:3‬‬
‫תהי ‪ . C  x  y  z‬נחלק לשני מקרים‪:‬‬
‫‪ )1‬אם לפחות שניים מליטרליה אינם שייכים ל‪ , P ' -‬הרי‬
‫‪5‬‬
‫שהסתברותם לא להיות מסופקים היא לכל היותר‬
‫‪9‬‬
‫‪3‬‬
‫הליטרל האחרון להיות בלתי מסופק היא‬
‫‪4‬‬

‫‪ .‬הסתברות‬

‫לכל היותר‪ ,‬ולכן‬

‫הסתברות הפסוקיות להיות מסופקת היא לפחות‪:‬‬
‫‪5 5 3‬‬
‫‪75 3‬‬
‫‪1    1‬‬
‫‪‬‬
‫‪9 9 4‬‬
‫‪324 4‬‬
‫‪ )2‬אם שניים מליטרלי הפסוקית שייכים ל‪ , P ' -‬הרי שלפי סעיף ג'‬
‫בטענה ו'‪ ,‬הליטרל השלישי שייך ל‪ P -‬או ל‪ , Q -‬ולכן הסתברותו‬
‫‪5‬‬
‫להיות מסופק היא לפחות‬
‫‪9‬‬

‫‪.‬‬

‫לכן‪ ,‬הסתברות סיפוק הפסוקית היא לפחות‪:‬‬

‫‪72‬‬
‫‪4 3 3 3‬‬
‫‪1   ‬‬
‫‪9 4 4 4‬‬
‫כרצוי‪.‬‬
‫ד) פסוקיות מאורך ‪:4‬‬
‫לפי סעיף ג' בטענה ו'‪ ,‬אין ב‪ H '' -‬פסוקית מאורך ‪ 4‬אשר כל הליטרלים בה‬
‫שייכים ל‪ . P ' -‬לכן‪ ,‬קיים לפחות ליטרל אחד בפסוקית שהסתברותו להיות‬
‫‪4‬‬
‫מסופק היא לפחות‬
‫‪9‬‬

‫‪.‬‬

‫לכן‪ ,‬הסתברות הפסוקית להיות מסופקת לפחות‪:‬‬
‫‪5 3 3 3 49 48 3‬‬
‫‪1    ‬‬
‫‪‬‬
‫‪‬‬
‫‪9 4 4 4 64 64 4‬‬
‫כרצוי‪.‬‬
‫ה) פסוקיות מאורך ‪: k  5‬‬
‫הסתברות כל ליטרל השייך לפסוקית להיות מסופק על ידי השמת ערכי האמת‬
‫‪1‬‬
‫היא לפחות‬
‫‪4‬‬

‫‪ ,‬ולכן‪ ,‬הסתברות הפסוקית להיות מסופקת היא לפחות‪:‬‬
‫‪5‬‬

‫‪k‬‬

‫‪3‬‬
‫‪ 3‬‬
‫‪ 3‬‬
‫‪1    1   ‬‬
‫‪4‬‬
‫‪ 4‬‬
‫‪ 4‬‬
‫כרצוי‪.‬‬
‫ד) טענה זו מתקבלת כמסקנה משני הסעיפים הקודמים‪ ,‬מהגדרת ‪ G, H‬ומטענות א'‪,‬‬
‫ג'‪ ,‬ו‪-‬ה' לעיל‪.‬‬

‫‪73‬‬

‫נספח (הוכחת הלמה מסעיף ‪)2.1.2‬‬
‫הערה‪ :‬להלן נניח כי בכל פסוקית בנוסחה‪ ,‬כל שני ליטרלים זרים‪( .‬ראה סעיף "הנחות ביחס לקלט" במבוא)‬
‫מינוח‬
‫ליטרל חיובי – ליטרל מהצורה ‪ l  ui‬עבור משתנה ‪ui  V‬‬
‫ליטרל שלילי – ליטרל מהצורה ‪ l  ui‬עבור משתנה ‪ui  V‬‬
‫ליטרל חופשי – בהנתן השמת ערכי אמת עבור חלק מהמשתנים‪ ,‬ליטרל נקרא חופשי אם טרם‬
‫נקבע לו ערך אמת‪.‬‬
‫פציעת פסוקית – מתן ערך אמת שלילי עבור ליטרל חופשי המופיע בפסוקית‪.‬‬
‫פסוקית מחוסלת – פסוקית אשר כל הליטרלים בה קיבלו ערך אמת שלילי – פסוקית כזו אינה‬
‫ניתנת לסיפוק‪ .‬פסוקית בעלת ‪ k‬ליטרלים מחוסלת אם ורק אם נפצעה ‪ k‬פעמים‪.‬‬
‫פסוקית שלילית – פסוקית שאינה מסופקת או מחוסלת‪ ,‬וכל הליטרלים החופשיים בה שליליים‪.‬‬
‫טענת הלמה‬
‫בהינתן נוסחה ‪ F‬ומערך בוליאני ‪ B‬לאלגוריתם ‪ ,GenGJ2‬מתקיים לכל ‪: 0  t  n‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪r 1‬‬
‫‪t‬‬
‫‪t‬‬
‫‪ t‬‬
‫‪w S    2w K    ‬‬
‫‪w Ni  A0‬‬
‫‪i 1‬‬
‫‪i 1 2‬‬

‫כאשר‪:‬‬
‫‪ – S  t ‬קבוצת כל הפסוקיות המסופקות בתום האיטרציה ה‪t -‬‬
‫‪ – K  t ‬קבוצת כל הפסוקיות שאינן ניתנות לסיפוק בסוף האיטרציה ה‪t -‬‬

‫‪ ‬‬

‫‪r 1‬‬
‫‪ 0‬‬
‫‪A0  ‬‬
‫‪w Ni‬‬
‫‪i 1‬‬
‫‪i 1 2‬‬

‫‪ – Ni t ‬קבוצת כל הפסוקיות השליליות בתום איטרציה ‪ t‬להן בדיוק ‪ i‬ליטרלים חופשיים‬
‫הוכחה‬
‫הטענה תוכח באינדוקציה על ‪: t‬‬
‫בסיס האינדוקציה‬
‫עבור ‪ t  0‬מתקיים‪:‬‬
‫‪t‬‬
‫‪t‬‬
‫‪S   K   ‬‬

‫‪ ‬‬

‫‪r 1‬‬
‫‪ t‬‬
‫‪ i 1 w Ni  A0‬‬
‫‪i 1 2‬‬

‫ולכן הביטויים משני צידי אי‪-‬השוויון שווים לאפס ושווים ביניהם‪.‬‬

‫‪74‬‬
‫מעבר האינדוקציה‬
‫נניח כי‪:‬‬

‫‪   A‬‬
‫‪t‬‬

‫(‪)1‬‬

‫‪0‬‬

‫‪w Ni‬‬

‫‪i 1‬‬

‫‪2‬‬

‫‪ ‬‬

‫‪r‬‬

‫‪ ‬‬

‫‪t‬‬
‫‪t‬‬
‫‪w S    2w K    ‬‬

‫‪i 1‬‬

‫ונסיק את טענת האינדוקציה עבור ‪. t  1‬‬
‫ראשית‪ ,‬יוגדרו מספר סימונים נוספים‪:‬‬
‫‪ – pi , j‬קבוצת כל הפסוקיות אשר מכילות את ‪ xt 1‬כליטרל‪ ,‬ובהן ‪ i‬ליטרלים‬
‫חופשיים‪ ,‬מהם ‪ j‬חיוביים‬
‫‪ – ni , j‬קבוצת כל הפסוקיות אשר מכילות את ‪ xt 1‬כליטרל‪ ,‬ובהן ‪ i‬ליטרלים‬
‫חופשיים‪ ,‬מהם ‪ j‬חיוביים‬
‫נסמן ב‪ r -‬את אורך הפסוקית המקסימלי ב‪. F -‬‬
‫נחלק לשני מקרים‪:‬‬
‫מקרה א' (באיטרציה ה‪ t  1 -‬ייבחר ‪:) xt 1  True‬‬
‫‪i‬‬

‫‪r‬‬

‫במקרה זה‪ U U pi , j ,‬היא קבוצת הפסוקיות אשר יסופקו באיטרציה ‪ , t  1‬ו‪-‬‬
‫‪i 1 j 1‬‬

‫‪r i 1‬‬

‫‪ U U ni, j‬היא קבוצת הפסוקיות שייפצעו בה‪.‬‬
‫‪i 1 j 0‬‬

‫האיחודים הללו זרים בזוגות‪ .‬לכן‪ ,‬יתקיים בתום האיטרציה ה‪: t -‬‬
‫‪ r i‬‬
‫‪‬‬
‫‪r i‬‬
‫‪r i 1‬‬
‫‪ r i 1‬‬
‫‪‬‬
‫‪M  U U pi, j     M  pi , j     M  ni , j   M  U U ni , j ‬‬
‫‪ i 1 j 1‬‬
‫‪ i 1 j 1‬‬
‫‪ i 1 j 0‬‬
‫‪‬‬
‫‪i 1 j 0‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫כלומר‪:‬‬
‫(‪)2‬‬

‫‪‬‬

‫‪‬‬

‫‪i 1‬‬

‫‪ w ni , j‬‬
‫‪i‬‬

‫‪2‬‬

‫‪r j 0‬‬

‫‪‬‬

‫‪i 1‬‬

‫‪‬‬

‫‪‬‬

‫‪i‬‬

‫‪ w pi , j‬‬
‫‪i‬‬

‫‪2‬‬

‫(מהגדרת מידתה של פסוקית)‬
‫מספר הליטרלים החופשיים בכל פסוקית השייכת ל‪ ) r  i  j ( ni , j -‬קטן ב‪.1-‬‬

‫‪r j 1‬‬

‫‪‬‬

‫‪i 1‬‬

75
: 1  i  r ‫ מתקיים לכל‬,‫לכן‬

 t 1  N  t   n  n
i ,0
i 1,0
i

Ni

t
:‫ נקבל‬, Ni   ni ,0 -‫ האיחוד זר ו‬i ‫מאחר שלכל‬

  

 t 1  w N  t   w n  w n
 i,0   i1,0  )3(
i

w Ni

: i  r ‫ועבור‬
N r

t 1

t
 N r   nr ,0

:‫ נקבל‬, N r t   nr ,0 -‫מאחר ש‬

w N r

t 1

  w N     w n
t

r

r ,0

)3(

:‫) נקבל‬3( ‫משתי המסקנות‬

 t 1

w Ni

r

i 1

2

i 1
r



i 1
r



   w N      w n
i

r

t

2

i 1

      w n

w Ni

t

i 1

2

2i 1

i 1

i 1

2i 1

i ,0
i 1

  2w n
 1,0 

r

2

i 1

2

i 1

  r1 w  ni1,0  

  r w  ni,0   2w n 
 1,0 
i 2

2

i 1

i ,0
i 1

i ,0
i 1

r

    w n

 t
w Ni

r

i 1

2

i 1

r

)4(

i

:‫ לכן‬. n1,0 ‫ ויחוסלו הפסוקיות‬U U pi , j ‫ יסופקו הפסוקיות‬t  1 -‫בתום האיטרציה ה‬
i 1 j 1

S

t 1

r i
t
 S    U U pi, j

K

i 1 j 1

t 1

t
 K    n1,0

:‫ נסיק‬,‫מאחר שאיחודים אלה זרים בזוגות‬

   
w K     w K     w n
w S

t 1

r i
t
 w S      w pi, j
i 1 j 1

t 1

t

1,0

)5(

76
‫) הנחת האינדוקציה‬1
1 i  r

i

 w pi , j

j 1

w S

)2( ‫לפי‬

  0  )2

:‫ נקבל‬2,4,5 ‫משילוב הנחת האינדוקציה וטענות‬

 t 1 

 2w K

 

 

w S

 t

2 w K

 t

r

 

 t

 t

2

i

 2w K

i 1 j 1

w Ni

i 1

r

   w pi , j

i 1

 w n1,0

i 1
r

i 1

r

 t
w Ni

i 1

2

i 1

2

i 1

2

 2w K

i 1

r

w ni ,0

i 1

2

 

i 1

r

 

j 0

 A0  

 

 w n
i, j

 t

 t
w Ni

 t

i 1

i

r

 A0  

r

w Ni

i 1

 2 w n1,0

 t

2

i 1

  A0

j 1

i 1

 

 w pi , j
2

i 1

 

1 i  r w ni , j
r

 A0  
i 1

 2w K

w ni ,0

 t 1 

2

i 1

r

 t 1 
w Ni

i 1

2

 

  0

0 j

i 1

 A0

)5( ,)4( ‫לפי‬

.‫ הוכח צעד האינדוקציה במקרה זה‬,‫ לכן‬. t  1 ‫זו טענת האינדוקציה עבור‬

77
:) xt 1  False ‫ ייבחר‬t  1 -‫מקרה ב' (באיטרציה ה‬
: t -‫ התקיים בתום האיטרציה ה‬,‫במקרה זה‬
 r i 1

r i 1
r i
 r i

M  U U ni, j     M  ni , j     M  pi , j   M  U U pi , j 
 i 1 j 0
 i 1 j 0


i 1 j 1


 i 1 j 1

:‫כלומר‬
i 1

 w ni , j

r j 0

i

2

i 1

i

 w pi , j

r j 1



)6(

i

2

i 1

t
-‫ אשר אינן שייכות ל‬N i  -‫ את כל הפסוקיות השייכות ל‬Ni t 1 ‫ מכילה‬, i  r ‫לכל‬

‫ ואת‬,)‫ ואינן פעילות עוד‬, t  1 -‫ (כיוון שפסוקיות אלה סופקות בתום האיטרציה ה‬ni ,0
)‫ ועודן פעילות‬, t  1 -‫ (אשר הופכות שליליות בתום האיטרציה ה‬. pi 1,1 ‫הפסוקיות‬
: 1  i  r ‫ לכל‬,‫כלומר‬

 t 1  N  t   n  p
i ,0
i 1,1
i

Ni

t
:‫ נקבל‬, Ni   ni ,0 -‫ האיחוד זר ו‬i  r ‫מאחר שלכל‬

  

 t 1  w N  t   w n  w p
 i,0   i1,1  )7(
i

w Ni

: i  r ‫ועבור‬
N r

t 1

t
 N r   nr ,0

:‫ נקבל‬, N r t   nr ,0 -‫מאחר ש‬

w N r

t 1

  w N     w n
r

t

r ,0

)7(

:‫ נקבל‬,)7( ‫משתי הטענות‬
r


i 1

w N i t 1
2

i 1



r


i 1

w N i t 
2

i 1



r


i 1

w  ni ,0 
2

i 1

r


i 2

w  pi ,1 
2i  2

)8(

78
r i 1

. p1,1 ‫ ויחוסלו הפסוקיות‬U U ni, j ‫ יסופקו הפסוקיות‬t  1 -‫בתום האיטרציה ה‬
i 1 j 0

:‫לכן‬
S

r i 1
t
 S    U U ni, j

t 1

K

i 1 j 0

t 1

t
 K    p1,1

:‫ נסיק‬,‫מאחר שאיחודים אלה זרים בזוגות‬

    w S       w n
w K     w K     w p 
w S

t 1

r i 1

t

i, j

i 1 j 0

t 1

t

)9(

1,1

:‫ נקבל‬,8,9 ‫ (הנחת האינדוקציה) וטענות‬1 ‫משילוב‬

2w K 

‫הנחת האינדוקציה‬

t 1

2i 1

i 1

  A  2 w  K     2w  p

 t 1

w Ni
2

  r w  pi,1   A

0

2i 2

i 2

t

0

i 1

i 1

w ni ,0

r




r

1,1

 

r



i 1

   

w Ni

t

2i 1

r w pi ,1
r w ni ,0
t
 w S   


i 2
i 1
i 1 2
i 1 2

 

r w pi ,1
r w ni ,0
r i 1
r i 1
t
 w S      w  ni , j   

   w  ni , j 
i 2
i 1
i 1 j 0
i 1 j 0
i 1 2
i 1 2

:‫נראה כי סכום שלושת הביטויים האחרונים שלילי‬

w pi,1

r

i 2

2

i 1

i 1

  r w  ni,0   r i1 w

r j 0

i 1

 w ni , j

r j 0



w ni ,0

i 1

2i 1

r

w ni,0



2i  2

i2

i 1 j 0

r



2i  2

i 1

2

i 1

 w ni , j



i 1

i 1

2i 1

  r i1 w
i 1 j  0

  i1 w

)6( ‫) לפי‬1

 ni, j  

j 0

i

 ni, j   2w  n1,0  
r i 1

 n1, j   i2 j0 w  ni, j  

2w K

 



 t 1

w Ni

i 1

2i 1

r i 1

r



w pi ,1

i 1

0

.‫ כרצוי‬,‫ מתקיימת טענת האינדוקציה גם במקרה זה‬,‫ולכן‬

r

  w ni , j  

i  2 j 0

r

 A 

2

i 1

r i 1
t
t 1
 w S      w  ni , j   w S  
i 1 j  0

i2

:‫שילוב שתי התוצאות האחרונות יפיק‬
r

i 1

i 2

w ni,0
2

i 1

i 2

)2

2

i 1

 2w n1,0  w n1,0  w n1,0  0

 t 1

 w pi , j

r j 1

 w ni , j

j 0

2

)1

i2

 w n
 1,0 

)2

79

‫ביבליוגרפיה‬
1( R. Battiti and M. Protasi, Approximate algorithms and heuristics for MAXSAT, Handbook of combinatorial optimization (1998), pp. 77-148

2( J. Chen, D. K. Friesen and H. Zheng, Tight bound on the Johnson’s
algorithm for Max-SAT, Proc. 12th Annual IEEE Conf. On Computational
Complexity (1997), Ulm, Germany, pp. 274-281

3( D.S. Johnson, Approximation algorithms for combinatorial problems,
journal of Computer and System Sciences 9 (1974), pp. 256-278

4( S. A. Cook, The complexity of theorem-proving procedures, Proc. Of the
3rd Annual ACM Symp. on the Theory of Computing, 1971, pp. 151-158

5( N. Karmarkar, A new polynomial-time algorithm for linear programming,
Combinatorica 4 (1984), pp. 373-396

6( M. Yannakakis, On the Approximation of Maximum Satisfiability, Journal
of Algorithms 17 (1994), pp. 475-502

7( J. Håstad, Some optimal inapproximability results, Proc. 28th Annual ACM
Symp. on Theory of Computing (1997), El Paso, Texas, pp. 1-10

8( M. X. Goemans and D. P. Williamson, New 3/4-approximation algorithms
for MAX SAT, SIAM Journal on Discrete Mathematics 7 (1994), pp. 656-666