הניבל אובמ סרוקב םכסמ טקיורפ תיתוכאלמ -...

18
פרויקט מסכם בקורס מבוא לבינה מלאכותית פתרון בעיותCryptarithms באמצעותForward checking , Stochastic Beam Search ואלגוריתם גנטי. דרור כהן גפן נער

Upload: others

Post on 03-Feb-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

  • פרויקט מסכם בקורס מבוא לבינה

    מלאכותית

    Forwardבאמצעות Cryptarithmsפתרון בעיות

    checking ,Stochastic Beam Search

    .ואלגוריתם גנטי

    דרור כהן

    גפן נער

  • תוכן עניינים 3 ............................................................................................................................. תקציר

    Cryptarithms- 3 .............................................................................................. הבעיה הצגת

    3 .................................................................................. אילוצים סיפוק לבעיית הבעיה תרגום

    4 ................................................................... אילוצים סיפוק לבעיית בעיה תרגום – דוגמא

    5 ........................................................................................................ הבעיה לפתרון דרכים

    Forward Checking ..................................................................................................... 5

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

    Stochastic Beam Search ............................................................................................ 6

    8 ............................................................................................................. נטיג אלגוריתם

    01 ............................................................................................ השיטות בין ההבדלים ניתוח

    forward-checking ............................................ 01 של השונות ההיוריסטיקות יןב השוואה

    בעיות בפתרון Stochastic Beam Search -ו גנטי אלגוריתם, forward checking בין השוואה 01 .................................................................................................................... עשרוניות

    בעיות בפתרון forward checking ועל האקראיים האלגוריתמים על הבסיס הגדלת השפעת 01 ......................................................................................... יותר גבוה ספירה בסיס מעל

    גדולים ספירה בסיסי מעל forward checking האלגוריתם פתרון על המשתנים מספר השפעת 03 .......................................................................................................................... יותר

    05 .............................................................................................................. התוצאות ניתוח

    01 ........................................................................................................ ההדגמה אפליקציית

    08 ............................................................................................................................ סיכום

  • תקצירהראשונה . וננסה לפתור אותה בשתי דרכים מרכזיות, Cryptarithmsבפרויקט זה נעסוק בבעיית

    והשנייה היא על ידי שימוש , forward checking היא על ידי פתרון בעיית סיפוק אילוצים בשיטת

    כי גילינו. genetic algorithms-ו Stochastic Beam Searchבאלגוריתמים הסתברותיים

    degree-פותר את הבעיה ביעילות רבה כאשר משתמשים ב forward checkingאלגוריתם

    heuristic גילינו שהם לא מגיעים , אשר לאלגוריתמים ההסתברותיים. לשם סידור המשתנים

    בהינתן בעיה נתונה בדרגת קושי קשה הראינו ש, אולם. forward checkingלרמת היעילות של

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

    כאשר הראינו ש, בנוסף. forward checkingהרחבה זו לא משפרת את ביצועיו של . להקסדצימלי

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

    checking בפתרון הבעיהמתקשה יותר.

    Cryptarithms- הצגת הבעיה Cryptarithms על . שבה הוחלפו כלל הספרות באותיות ,זוהי חידה שבה מוצגת בעיה אריתמטית

    כך שלא יהיו שתי אותיות , הפותר למצוא את הספרה שאותה מייצגת כל אחת מהאותיות

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

    בעיה זו כי ,SAT-3-באמצעות רדוקציה מ הוכח David Eppsteinבמאמרו של . מחוברים בלבד

    .להלן דוגמא לחידה שכזו ולפתרונה. אינו מוגבל כאשר גודלו של בסיס הספירה 1קשה-NPהינה

    .ולפתרונה Cryptarithmsדוגמא לבעיית -1 תרשים

    תרגום הבעיה לבעיית סיפוק אילוציםאשר {X1,…,Xn}נגדיר רשימת משתני עזר , Vעם קבוצת משתנים Cryptarithmsית עין בבהינת

    .באמצעותם נגדיר את רשימת האילוצים שלנו. 1או 0יכולים לקבל אך ורק את הערך

    :ליאיה באופן פורמהגדרת הבע

    כאשר , –רשימת המשתניםV זו רשימת משתני הקלט.

    מרחב הערכים האפשרי שכל אחד מהמשתנים יכול לקבל:

    1 David Eppstein (1987). "On the NP-completeness of cryptarithms". SIGACT News 18 (3): 38–

    40. doi:10.1145/24658.24662

    http://en.wikipedia.org/wiki/David_Eppsteinhttp://en.wikipedia.org/wiki/David_Eppsteinhttp://www.ics.uci.edu/~eppstein/pubs/Epp-SN-87.pdfhttp://en.wikipedia.org/wiki/Digital_object_identifierhttp://dx.doi.org/10.1145%2F24658.24662

  • o עבור משתני הקלט שאינם ממוקמים בקצה השמאלי ביותר של אחת משורות

    , bמרחב הערכים הינו כלל הספרות הקיימות עבור בסיס הספירה הנתון , הקלט

    .{b,…,0,1}: כלומר

    o עבור משתני הקלט שממוקמים בקצה השמאלי ביותר של אחת משורות הקלט ,

    , כלומר, 0-מרחב הערכים הינו כלל הספרות הקיימות בבסיס הספירה פרט ל

    {1,…,b}.

    o מרחב הערכים של משתני השארית{X1,…Xn} 0,1}מוגדר להיות}.

    רשימת האילוצים מחולקת לשתיים:

    o , אילוצים בינאריים המגדירים אי שוויון בין כל כלומר אוסף

    .זוג אפשרי של משתני קלט

    o כל אחת . רשימת משוואות הנגזרות מתוך הבעיה החשבונית המוצגת

    . ושני משתנים מימין, מהמשוואות מכילה לכל היותר שלושה משתנים משמאל

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

    .שארית אחד

    תרגום בעיה לבעיית סיפוק אילוצים –דוגמא

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

    .עשרוני

    קבוצת המשתנים מוגדרת באופן הבא :

    מרחב ההשמות הינו :

    o {0,1,2,3,4,5,6,7,8,9} עבור המשתניםE,N,D,O,R,E,Y

    o {1,2,3,4,5,6,7,8,9} עבור המשתניםS,M

    o {0,1} עבור המשתניםX1,X2,X3,X4

    רשימת האילוצים הינה:

  • דרכים לפתרון הבעיהBacktracking search

    בסיס להשוואה ביחס לעשות בו שימוש בתור הנאיבי בכדי Backtracking -פתרון המימשנו את

    כאשר לפני , אלגוריתם זה נותן השמות למשתנים השונים באופן רקורסיבי. לשאר שיטות הפתרון

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

    תת . מסוים הורכבה משתי תתי בדיקות בדיקת הקונסיסטנטיות של השמת ערך למשתנה. הבעיה

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

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

    חישבנו את הסכום המקסימלי והמינימלי שיכול , X1+A+B = C + X2 משוואה מהצורה

    אם הערך . בהינתן הערכים האפשריים שנותרו לכל משתנה, של המשוואה אגףלהתקבל מכל

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

    ונניח כי אפשרויות ההשמה , A + B = Cנגדיר את המשוואה , לדוגמא .האילוץקונסיסטנטית עם

    הערך במקרה זה. A=2נניח כי בוצעה ההשמה , כעת. {1,2}-ו {0,1,2}בהתאמה הינן C-ו Bשל

    ואילו הערך המקסימלי שיכול , 3בל מצד שמאל של המשוואה הוא לי שיכול להתקאהמינימ

    לפיכך השמה זו אינה . (C=2מכיוון שלא ניתן להגדיר ) 1להתקבל מצד ימין של המשוואה הוא

    .ל"סיסטנטית עם אילוץ המשוואה הנקונ

    Forward Checking זה מתבצעת השמה שיטהגם ב ,כלומר. Backtracking-אלגוריתם זה מרחיב את אלגוריתם ה

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

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

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

    אם המשתנה אינו , לתוך משתנה מסוים xבהינתן השמה , ראשית. מורכב גם הוא משני חלקים

    מכלל אפשרויות xאזי מתבצעת מחיקה של ערכי , (Xiכלומר אינו מהצורה )משתנה שארית

    ALL-DIFFבכדי להבטיח שהאילוץ , שאינם משתני שארית ההשמה של יתר המשתנים בתוכנית

    . מתבצע מעבר על כלל המשוואות אשר מכילות את המשתנה שאליו בוצעה ההשמה, שנית .פקיסו

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

    .את המשוואה תספקמעבר זה מתבצעת פסילה של כלל הערכים אשר השמתם במשתנה לא

    סדר בחירת המשתנים והערכיםהמגדירות את תוהיוריסטיק

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

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

    .בחירת הערכים בעת ביצוע של השמה למשתנה

  • Degree heuristic – עדיפות ונותנת , רה את סדר בחירת המשתניםהיוריסטיקה המגדי

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

    והמשתנה שייבחר ראשון לשם ביצוע השמה הוא , של מספר האילוצים בהם הוא נמצא

    .זה אשר משויך למספר האילוצים המקסימלי

    Minimum Remaining Values – היוריסטיקה נוספת המגדירה את סדר בחירת

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

    .ביותר

    Minimum ALL-DIFF conflicts – ערכי היוריסטיקה המגדירה את סדר בחירת

    כאשר המשתנה הוא אינו משתנה שארית , על פי שיטה זו. כלשהו משתנה ההשמה עבור

    . domainsחות תינתן עדיפות לערכים אשר נמצאים בכמה שפ, (Xiמהצורה , כלומר)

    .של משתנים בכל השמה מינימאליתהמטרה בכך היא להגביל כמות

    על סדר בחירת תללא היוריסטיקה מיוחד, degree heuristicשל נוכחנו לגלות כי השילוב

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

    .נרחיב על כך בהמשך העבודה .הריצה

    Beam SearchStochastic עד למציאת , simulated annealing ביצענו חישוב מקבילי של אלגוריתם , במסגרת שיטה זו

    ו ואתחלנ, A -שנסמנה ב התחלנו מהשמה ראשונית אקראית threads-בכל אחד מה. הפתרון

    מתבצעת הגרלה של , בכל שלב. הדועך בקצב איטי במהלך התוכנית ,משתנה טמפרטורה

    successor שיסומן ב, עבור השמה זו-S . ערך האם-fitness של ה-successor מתבצעת , גבוה יותר

    לא קורה , ed/T -1ובהסתברות , SAמתבצעת ההשמה ed/T~בהסתברות , אחרת. SAהשמה

    .של כל אחת מההשמות fitness-מוגדר להיות ההפרש בין ערכי ה dכאשר , דבר

    מתבצעת הגרלה של ערך עבור כל אחד , בכדי לייצר השמה אקראית – יצירת השמה אקראית

    כך שבתום התהליך לא יהיו שני משתנים בעלי אותה , (שאינם משתני שארית)ממשתני הבעיה

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

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

    .לפי סדר זה

    :המשוואות שיחולצו הינן, בהינתן הבעיה, לדוגמא

    {X1,X2,X3}ניתן לחשב את ערכי , {A,B,…,I}בהינתן השמה אקראי כלשהי עבור ערכי ,אזי

    .ונה לתחתונהמהעלי, מעבר על המשוואות על פי הסדר באופן איטרטיבי על ידי

    :באופן הבא Aשל fitness-הגדרנו את ערך ה, Aבהינתן השמה – fitness-ת הפונקצי

  • .הם קבועים כלשהם C2-ו C1כאשר

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

    .את הכמות היחסית של זוגות המשתנים בעלי אותה השמה

    מתבצעת על ידי העתקת שלה successor-יצירת את ה, Aבהינתן השמה – successorיצירת

    כמות מסוימת של משתנים בחירת , ההשמה הקודמת בכלל המשתנים שאינם משתני שארית

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

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

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

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

    ולא בוחרים אותו , טובים יותר כאשר מגבילים את הטווח שממנו נבחרים ערכי ההשמה החדשים

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

    x ,השמתו החדשה תוגרל באופן אחיד מהטווח:

    [max(x-C,0),min(x+C,b-1)] , כאשרb ו, מייצג את מספר הספרות בבסיס הספירה-C הוא

    ועבור בסיסי , גדול יחסית Cעבור בסיסי ספירה גדולים נבחר . b-קבוע אשר נקבע בהתאם ל

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

    שלו בהינתן הבעיה המוצגת בחלון השמאלי successors-ול, simulated annealingבבעיית node-דוגמא ל – 2 תרשים המקורי node-נשים לב כי ההשמה של ה. C1=C2=0.5הם fitness-הקבועים שנקבעו לחישוב ערך ה בדוגמא זו. התחתון

    מספק אותה כמות הימני התחתון successor-ה ,כמו כן. וכן אין בה שני משתנים בעלי אותה השמה, מהמשוואות 0.6מספקת וכן יש בו זוג , מהמשוואות בלבד 0.2הימני העליון מספר successor-ה, לעומתו. ALL-DIFF-וכן את אילוץ ה, של משוואות

  • -השל fitness-ואילו ערך ה, העליון נמוך יותר successor-השל fitness-לפיכך ערך ה. של משתנים בעלי אותה השמהsuccessor התחתון זהה לזה של השמת האב.

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

    על פי . בכל איטרציה מתבצעת הערכה של רמת ההתאמה של כל פרט באוכלוסייה. אבולוציוני

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

    והחלק האחר ,ויוצרים זיווגמתמזגים זה עם זה םחלק בהסתברות מסוימת, הפרטים הללו

    .ללא שינויעוברים לדור הבא

    . כל פרט באוכלוסייה מוגדר להיות השמה לערכי משתני הבעיה - הגדרת הכרומוזום ושערוך ערכו

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

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

    במקרה זה אין .יההמסופקות למספר המשוואות בבעהיחס בין מספר המשוואות מוגדר על ידי

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

    .משתנים כאלהשלא יתכנו פרטים באוכלוסייה המכילים זוגות

    משתנים nבהינתן . זיווג בין פרטים מוגדר באופן הבא – ביצוע זיווג בין פרטים ויצירת מוטציה

    של 'Vתת קבוצה אקראית מתבצע חישוב של, ובהינתן שתי השמות, שאינם משתני שארית

    :משתנים כך ש

    שכל על ידי כך , המיזוג של שתי ההשמות מגדיר השמה חדשה.

    יקבל את הערך שלו V'C-וכל משתנה ב, יקבל את הערך שלו מההשמה הראשונה 'V-משתנה ב

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

    את הערך שנקבע לו על ידי שתי השמות הקלט מסוימתכל משתנה מקבל בהסתברות , מוטציה

    . מתוך בסיס הספירה מקבל ערך אקראי כלשהוהוא ההפוכהובהסתברות , בשיטה שצוינה לעיל

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

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

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

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

    בעת (. יתכנו פרטים אשר גם יעברו לקבוצה הבאה כפי שהם וגם יעברו זיווג עם פרטים אחרים בקבוצה)פרט אחר בקבוצה כך שתת הקבוצה הראשונה תקבל את ההשמה של , בוצותמרחב המשתנים מחולק לשתי תתי ק, תהליך הזיווג של שני פרטים

    על פיו לא ALL-DIFFחלוקה זו משמרת את האילוץ . השמה של הפרט השניהותת הקבוצה השנייה תקבל את , הפרט הראשוןכל אחד מהמשתנים שלו עובר מוטציה בהסתברות מסוימת , עבור כל צאצא, לאחר מכן. יתכנו שני משתנים בעלי אותה השמה

    .ALL-DIFFאת תכונת באופן שישמר, אופן אקראיערכו משתנה ב, כלומר(. טנה יחסיתק)

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

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

    ההשערה שלנו הייתה שתהליך הברירה הטבעית יביא לכך שתכונה זו תיכחד בהדרגה ככל

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

    כי גילינו. כולל משתני השארית, באוכלוסייה בתור השמה המכילה את כלל המשתנים בבעיה

    , שכן היא יוצרת סתירות רבות בהשמות, שיטה זו אינה מובילה להתכנסות האלגוריתם לפתרון

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

    מובטחת לנו בכך .ולאחר מכן לחשב את משתני השארית, קודם כל את משתני הבעיה המקוריים

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

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

    forward checking ו-simulated annealing . במקרים מסוימים מספר ההשמות הנבדקות

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

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

  • על . מהמקרים 45%-גיע לפתרון אך ורק בהאלגוריתם מ, 2גבוההעבור בעיות בדרגת קושי , לדוגמא

    .כך נפרט בהמשך עבודתנו

    ניתוח ההבדלים בין השיטותבכדי לנתח את ההבדלים בין השיטות השונות עשינו שימוש - השוואה בין שיטות פתרוןמדדים ל

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

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

    היא שבזמן כתיבת האלגוריתמים שמנו בתור מדד להשוואה זמן הריצה התייחסנו אללכך שלא

    לפיכך לא מן הנמנע כי ניתן לשפר את זמן הריצה . את הדגש על נכונותם ולא על זמן הריצה שלהם

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

    רשימות מילים 5האלגוריתמים הנבחרים הורצו על ,מהבדיקותחלק ב – אופן ביצוע הבדיקות

    .כדלהלן 1בטבלה רשימת המלים מוצגת .בדרגת קושי עולה

    רשימה זו נלקחה מהאתר . רשימת המלים בהן עשינו שימוש בכדי לבחון את יעילות האלגוריתמים השונים -1 טבלהhttp://cryptarithms.awardspace.us/puzzlemenu.html.

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

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

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

    .לאותיות כלל הספרות במספרים שהתקבלווהופכת את , רת סכוםיליצ

    checking-forwardהשוואה בין ההיוריסטיקות השונות של אותן הצגנו קודם , forward checkingההיוריסטיקות השונות של השוואה בין ביצענו , ראשית

    :להלן התוצאות. לכן

    2

    .ילה דוגמאות לבעיות בדרגות קושי שונותהמכ, 0ראו טבלה

  • .לות ברמת הקושי של הבעיהכת, מספר ההשמות אשר נבדקות במהלך הריצה של כל אחד מהאלגוריתמים המוצגים – 4 תרשים

    'val' יוריסטיקת שימוש בהמייצגMinimum ALL-DIFF conflicts עבור סדר בחירת ערכי השמה למשתנה מסוים.

    search method / hardness level

    very easy

    easy Medium Hard

    Backtracking 2.419 2,992122 1.,93.114 921,.04131 forward checking .311.9 03911. .,941134 4,3921.9 forward checking + MRV heuristic ..10. 221292 92112 .,01.190 forward checking + degree heuristic .213. 411. .9.12. .,929132 forward checking + degree heuristic+ minimum conflict heuristic .2124 4411. .42114 .,19210.

    במהלך הבדיקה כל .1' דק כל אלגוריתם מוצגות בטבלה מסהבעיות עצמן עליהן נב. 4בתרשים נתוני הגרף המוצג – 2טבלה .פעמים על כל אחת מן הבעיות 11אלגוריתם הורץ

    כמו . forward checkingניתן לראות כי ההיוריסטיקות שהצגנו משפרות את ביצועי האלגוריתם

    ניתן לראות כי, בנוסף. degree heuristicההיוריסטיקה הטובה ביותר לבחירת המשתנים היא , כן

    סדר ערכי ההשמה למשתנים תריבח עבור minimum conflictהשפעת השימוש בהיוריסטיקת

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

    checking ,לגוריתם העושה שימוש בהיוריסטיקתנתכוון לא degree heuristic לשם קביעת סדר

    שימוש בהיוריסטיקת אלגוריתם זה לא עושה. במקרה של שוויון MRV-וב, בחירת המשתנים

    minimum ALL-DIFF conflict סדר בחירת הערכים כלומר ,עבור סדר בחירת הערכים

    .אקראי הואלמשתנים

    0

    500

    1000

    1500

    2000

    2500

    3000

    very easy easy medium hard

    nu

    m o

    f as

    sigm

    en

    ts c

    he

    cke

    d

    hardness level

    forward checking

    forward checking + MRV

    forward checking + degree

    forward checking + degree + val

  • Stochastic Beam Search-ואלגוריתם גנטי , forward checkingבין השוואה בפתרון בעיות עשרוניות

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

    בחרנו להגביל את מספר .אשר ברשימה פעמים כל אחת מהבעיות 10-מהאלגוריתמים פתר כ

    הדבר , כאשר אלגוריתם כלשהו חורג ממספר זה .3,000,000-ההשמות המקסימלי שניתן לייצר ל

    .לכישלון בפתרון הבעיה חשבנ

    search method / hardness level very easy Easy Medium Hard

    Stochastic Beam Search 8,035.8 33,347.25 57,752.31 248,561.9

    genetic algorithm 14,066.2 139,556.8 354,246.07* 747,051.89*

    forward checking .213. 411. .9.12. .,929132 כל אחד . עבור כל אחת מהבעיות מהסעיף הקודם stochastic beam search-תוצאות האלגוריתם הגנטי ו – 3טבלה

    הנתונים המוצגים בטבלה מייצגים אך ורק הרצות בהן האלגוריתמים . פעמים על כל אחת מן הבעיות 11מהאלגוריתמים הורץ .לשם השוואה 1מצורפות מטבלה forward checkingהתוצאות של האלגוריתם . הצליחו למצוא פתרון לבעיה

    יש לציין כי כאשר האלגוריתם הגנטי . מהבעיות הקשות 74%-מהבעיות הבינוניות ו 99%י פתר אך ורק האלגוריתם הגנט*השמה כפולה באף אחת מהן לא הייתהוכן , מהמשוואות בממוצע 84%הוא הצליח לאחזר השמות למשתנים המספקות , נכשל

    .משתנים שונים עבורשל ערך

    Stochastic Beamניתן ללמוד כי ביצועי האלגוריתם , מהתבוננות בערכים שהתקבלו

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

    16%-מהבעיות הבינוניות וב 1%-ב, יתר על כן. ביצועיו של האלגוריתם הגנטי הם הגרועים ביותר

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

    .אשר הוקצב המקסימאליההשמות

    בפתרון forward checkingהשפעת הגדלת הבסיס על האלגוריתמים האקראיים ועל בעיות מעל בסיס ספירה גבוה יותר

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

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

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

    ביצענו שיכון של כל אחת מהבעיות אותה בכדי לבדוק זאת .forward checking על פני מסוים

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

    .מהאלגוריתמים

    search method / hardness level

    very easy

    Easy Medium Hard

    Stochastic beam search 9,9.2129 12,...14. 12,392191 .3.,0221.. Genetic algorithm 2.,34.1.4 .01,3031090 1.4,03.192 333,988.958* forward checking + degree heuristic 9.1.2 9212. 92911 4.0213.

    בעיות . 1' פעמים על כל אחת מהבעיות מטבלה מס 11-כל אחד מהאלגוריתמים הורץ כ. תוצאות המבחן אותו ערכנו – 4 טבלה .שוכנו בבסיס ספירה הקסדצימלי ואל

    .הקשותמהבעיות 98.5%האלגוריתם הגנטי פתר אך ורק *

  • , forward checkingהאלגוריתם עבור ניתן לראות כי , 3לעומת טבלה 5מהתבוננות בערכי טבלה

    לא כך הדבר באשר . העלייה בגודל הבסיס תורגמה למספר גדול יותר של השמות אשר נבדקו

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

    וזאת בניגוד , בדרגת קושי קשה כל אחת מהבעיותהבעיות בדרגת קושי קל עד בינוני ולכמעט

    ביצועי האלגוריתמים , הקשותהבינוניות ועבור הבעיות , שנית .לביצועיו בבסיס העשרוני

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

    היחס בין מספר ההשמות הנבדקות בבסיס הקסדצימלי לעומת מספר ההשמות הנבדקות בבסיס

    .משתנה כתלות ברמת הקושי של הבעיה עשרוני

    היחס שבין מספר ההשמות שנבדקו מעל בסיס הקסדצימלי לבין מספר ההשמות שנבדקו מעל בסיס עשרוני כתלות – 5 תרשים

    4לשם חישוב ערכי הגרף ביצענו חלוקה של הערכים המוצגים בטבלה . עבור כל אחד מהאלגוריתמים, של הבעיהבדרגת הקושי .3בערכים המוצגים בטבלה

    ככל שהבעיה קשה יותר כך הגדלת הבסיס , עבור האלגוריתמים האקראיים מלמד כיזה תרשים

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

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

    כך הגדלת הבסיס מגדילה את , ככל שהבעיה קשה יותר, forward checkingעבור האלגוריתם

    . מות הנבדקות במהלך הריצהמספר ההש

    ימעל בסיס forward checkingעל פתרון האלגוריתם מספר המשתנים השפעת יותר יםספירה גדול

    forwardמשפיע על רמת הקושי של אלגוריתם םנרצה לבחון כיצד מספר המשתניבסעיף זה

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

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

    ההשמה אפשרויות מכיוון שכמות המגבלות על , הבעיה אמורה להיות קלה יותר, המשוואות גדל

    . של כל משתנה קטנה

    0

    1

    2

    3

    4

    5

    very easy easy medium hard

    #assigments checked on

    hexadecimal base /

    #assigments checked on

    decimal base

    forward checking

    Stochastic Beam Search

    genetic algorithm

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

    הצליח לפתור בעיות יחסית קשות תוך בחינת forward checkingהאלגוריתם , בפרט. עשרוניות

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

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

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

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

    forward checking ספרות 00 שלועבור בעיות מעל בסיס , עבור בעיות מעל בסיס הקסדצימלי.

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

    ובחנו כיצד שינוי מספר המשתנים משפיע על יעילות , ספרות 7כל מחובר מכיל 00בעיה מעל בסיס

    שעבור ערכים אלה ניתן להגיע לטווח ערכים ל מכיוון "בחרנו את מספר הספרות הנ .הפתרון

    :להלן התוצאות. אותיחסית רחב של יחסים בין מספר המשתנים למספר המשוו

    בין מספר המשתנים שיחס הממוצע ב כתלות forward checkingבאלגוריתם ( באחוזים)הסיכוי למציאת פתרון - 6 תרשיםבעיות שונות עבור כל אחד מטווחי הערכים 3111הגרלנו , בכדי לבדוק מהו הקשר בין הגורמים. ההמשוואות בבעי למספר forward checkingהפעלנו את האלגוריתם . {(2.4,2.66),(2.2,2.4),(2,2.2),(1.8,2),(1.6,1.8),(1.4,1.6),(1.2,1.4)}: הבאים

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

    (1.2,1.4) (1.4,1.6) (1.6,1.8) (1.8,2.0) (2.0,2.2) (2.2,2.4) (2.4,2.6)

    base-16 98.3% 97% 95.43% 94.1% 88.2% 83.5% 73.43%

    base-20 92.93% 90.66% 86% 85.3% 80% 74.06% 66.53%

    . 6פירוט הנתונים המוצגים בתרשים – 5טבלה

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

    מגמה זו באה לידי ביטוי הן . forward checkingיותר כך הבעיה יותר קשה לפתרון בשיטת

    מדובר , כפי שציינו קודם לכן. ספרות 00ספרות והן בבסיס ספירה של 16בבסיס ספירה של

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

    50

    75

    100

    .11 .12 .19 .12 91. 911 912

    succ

    ess

    rat

    e (

    ou

    t o

    f 1

    00

    )

    |Variables|/|Constraints| rate on average

    base-16

    base-20

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

    נוכחנו לגלות כי שימוש בכל אחת מההיוריסטיקות אותן בחנו . forward checkingהאלגוריתם

    (degree heuristic ו-MRV )וכי , מקטין את מספר ההשמות הנבדקות במהלך הריצה

    שהיוריסטיקת אנו סבורים כי הסיבה לכך. היא הטובה מבין השתיים degreeהיוריסטיקת

    MRV היא פחות אפקטיבית היא שהיא סותרת את היוריסטיקת ה-degree .על פי שיטת , שכן

    MRV ,משתנה זה על פי . בכל פעם תתבצע בחירה של המשתנה בעל מספר ההשמות הנמוך ביותר

    . 1או 0, רוב יהיה משתנה שארית מכיוון שלכל משתנה שארית יש אך ורק שתי אפשרויות השמה

    . ALL-DIFFוכן אינו מופיע באילוץ , כל משתנה שארית מופיע בשני אילוצים לכל היותר ,אולם

    משפיעים על כמות אשר מקבלים עדיפות המשתנים , MRVכאשר משתמשים בהיוריסטיקת , לכן

    .יהיה קטן forward checking-ובכך מספר הערכים שייפסלו בשלב ה, קטנה יחסית של משתנים

    אינו משפר ALL-DIFFעבור אילוצי minimum conflictגילינו כי שימוש בהיוריסטיקת , שנית

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

    DIFF אילוצי המשוואה, יתר האילוצים בבעיהעל המשתנים היא פחות משמעותית לעומת בלבד .

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

    .תוצאות האלגוריתם היו עשויות להשתפר אף יותר, משוואה

    האקראיים לאלגוריתמים forward checkingהשווינו בין ביצועי האלגוריתם , לאחר מכן

    האלגוריתמים מצאנו ש. genetic algorithm-ו stochastic beam search ,שבחרנו לממש

    מעל , אולם. forward checkingהאקראיים לא הגיעו לרמת יעילות הקרובה ברמתה ליעילותו של

    אנו . לאלגוריתמים אלה מצטמצמים forward checkingבסיסי ספירה גדולים יותר הפערים בין

    הוא כה forward checking-פתרון ה, מעל בסיסי ספירה קטניםש הסיבה לכך היא מעריכים כי

    מעל בסיסי ספירה , אולם. שלא ניתן להתמודד איתו על ידי שימוש בכלים הסתברותיים עדיעיל

    ומעבר שיטתי על כלל אפשרויות , מספר אפשרויות ההשמה גדל באופן משמעותי, גדולים יותר

    היתרון , יתר על כן .נעשה פחות אפקטיבי forward checkingכפי שנעשה באלגוריתם , ההשמה

    שבאפשרותם להחזיר פלט אשר אינו מספק את האקראיים הוא ל שבשימוש באלגוריתמיםהגדו

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

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

    .forward checking-תאפשר על ידי שימוש במהדבר לא התוצאה הנכונה כאשר

    forward checkingסיבה נוספת אשר מסבירה את ההבדל המשמעותי בביצועים בין

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

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

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

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

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

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

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

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

    Stochastic Beam Search אלגוריתם גנטי

    threads-מספר ה גודל אוכלוסייה התחלתית

    ערך אתחול הטמפרטורה ההתחלתית crossoverהסתברות לביצוע

    מקדם הדעיכה הסתברות לביצוע מוטציה

    שאותה הגדרנו fitness-בפונקצית ה C2-ו C1 מספר דורות המשך

    עבור תתי קבוצות טווח הגדלים האפשרי

    3של משתנים אשר מיוצרות בעת ביצוע זיווג

    מספר המשתנים שאת ערכם יש לשנות בעת חישוב

    successor.

    קבוע המציין את ההפרש המקסימלי המותר בין ההשמה

    הישנה להשמה החדשה עבור המשתנה שנבחר להשתנות

    . successor-בעת חישוב ה

    ת האקספוננט בכל בפונקציאשר מוכפל αמציאת הקבוע

    -ית השפונקצ successorפעם בה צריך להחליט האם לקבל

    fitness שלו נמוכה מזו של ה-node המקורי.

    .stochastic beam search-פירוט הפרמטרים אשר הוגדרו באלגוריתם הגנטי וב – 5טבלה

    3

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

    .והיתר מההשמה השנייה, מההשמה הראשונה

  • אפליקציית ההדגמהאליהם למסמך זה מצורפת אפליקציה אשר במסגרתה ניתן להריץ כל אחד מהאלגוריתמים

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

    ניתן לבחור, ראשית. בשלב ניתן לבחור אחת מבין שלוש אפשרויות. newמכן לבחור באפשרות

    בהינתן בעיה אקראית ליצור ניתן, שנית. 4רגת קושי נתונהך רשימת בעיות מדבעיה אקראית מתו

    , שלישית(. בבסיס ספירה עשרוניאורך המחובר מוגדר )בסיס ספירה ואורך מחובר מקסימאלי

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

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

    באפשרות המשתמש לנסות ולפתור את הבעיה בעצמו או לבחור . Cryptarithmsעל המסך מוצגת בעיית . צילום מסך להמחשה

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

    measure algorithm onולבחור באפשרות , measureיש ללחוץ על הלשונית , בכדי לבצע מדידות

    random problems . מספר בעיות מסך זה מאפשר להריץ אלגוריתם לבחירת המשתמש על

    וצרו בכל וימספר הבעיות אשר י, פן דיפולטיביבאו. אופן אקראי ולבחון את ביצועיוהמיוצרות ב

    יש לציין כי כאשר מספר .settingsניתן לשנות מספר על ידי כניסה ללשונית . 4מדידה הוא

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

    ניתן להקטין (. דקות 4-מעבר ל)אז עבור אלגוריתמים מסוימים זמן המדידה עשוי להיות ארוך

    את זמן המדידה על ידי שינוי מספר ההשמות המקסימאליות שאותן ניתן לייצר בעת מציאת

    מספר ההשמות המותר הוא , באופן דיפולטיבי. settingsפתרון לבעיה נתונה תחת הלשונית

    אחוזי ההצלחה שלתפגע ב מחד אך את זמן המדידות תקצרמספר זה הקטנת. 3,000,000

    4

    .0' מס הרשימת הבעיות המלאה מוצגת בטבל

  • measureניתן לבחור באפשרות , measureתחת הלשונית , בנוסף .מאידך האלגוריתמים

    algorithm on specific difficulty level , אשר במסגרתה ניתן למדוד את ביצועי האלגוריתם

    ישנה שונות גבוהה בתוצאות בבדיקה זו ין כי יש לצי. בעת פתרון בעיות מדרגת קושי מסוימת

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

    .המתוארות במסמך בכדי לוודא שהתוצאות שהתקבלו הן אמינות

    קמפול האפליקציה

    פעיל את קובץ ולה, /CryptarithmSolverפתוח את התיקייה ל ישבכדי לקמפל את האפליקציה

    יש להריץ את התוכנה על ידי הפעלת הקובץ , לאחר מכן. makeבאמצעות הפקודה Makefile-ה

    cryptarithmSolver יש לציין כי ה. אשר נמצאת באותה תיקייה-makefile מותאם למחשבי

    .לינוקס

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

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

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

    אלגוריתם , דר בחירת המשתניםעבור ס degreeכאשר משתמשים בהיוריסטיקת לגלות כי

    forward checking גילינו כי הרחבת בסיס הספירה מקלה , כמו כן .פותר את הבעיה ביעילות רבה

    forwardאך מקשה על האלגוריתם , על האלגוריתמים ההסתברותיים בפתרון בעיות קשות

    checking .בעיה גדול יותר ככל שמספר המשתנים ב, הראינו כי כאשר גודל הבעיה קבוע, לבסוף

    .forward checkingכך הבעיה יותר קשה לפתרון בשיטת

    המחקר הראשון יעסוק במציאת הקריטריונים . ברצוננו להציע שני מחקרי המשך אפשריים

    אמנם גילינו כי למספר המשתנים בבעיה יש השפעה על רמת הקושי . ההופכים בעיה מקלה לקשה

    יהיה מעניין . ך אנו סבורים כי ישנם קריטריונים נוספים המבחינים בין בעיה קשה לקלהא, שלה

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

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

    ם האקראיים ובניתוח המצבים בהם הם מנפקים תוצאות טובות יותר בשיפור האלגוריתמי

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

    .ם לכל אחד מהאלגוריתמים על ידי שימוש באלגוריתם חיפוש כלשהויליאפרמטרים אופטימ