חידת שמונה המלכות

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

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

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

 החידה כבעיה במדעי המחשב  
פתרון אפשרי לבעיית שמונה המלכות
חידת שמונה המלכות משמשת כדוגמה נפוצה לבעיה הניתנת לפתרון בעזרת מחשב, בטכניקה הקרויה "כוח גס", כלומר בדיקת כל המצבים האפשריים, ומציאת אלה מתוכם העונים על תנאי החידה. לשם מיקום המלכות עלינו לבחור 8 משבצות מתוך 64 המשבצות שעל הלוח, כשאין חשיבות לסדר הבחירה, ולכן מספר המצבים האפשריים הוא , כלומר 4,426,165,368 - יותר מארבעה מיליארד. מספר רב מדי של מצבים לבדיקה בידי אדם, אך מספר סביר בהחלט לבדיקה באמצעות מחשב. אפשר לצמצם את מספר המצבים הנבדקים באמצעות אלגוריתם מורכב יותר, למשל כזה שאינו בודק שורה ועמודה שבהם הוצבה כבר מלכה, באלגוריתם כזה יהיו שמונה מצבים להצבת המלכה בשורה הראשונה, שבעה בשורה השנייה וכו' מה שגורר רק   מצבים.

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

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

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

וריאציות
ניתן לשאול שאלה דומה גם לגבי שאר כלי המשחק: מהו המספר המקסימלי של מלכים, צריחים, פרשים או רצים שניתן להציב על הלוח בלי שאף שניים יאיימו זה על זה?
 פתרונותמלכים - 16צריחים - 8 רצים - 14 פרשים - 32
שאלה נוספת שניתן לשאול היא - מה המספר המינימלי של כלים שיש להציב כך שכל הלוח יהיה מאוים? (המשבצת עליה מוצב הכלי נחשבת מאוימת).
 פתרונותמלכים - 9מלכות - 5 צריחים - 8 רצים - 8פרשים - 12

שאלות אלה ניתן לשאול גם על כלים אגדתיים שונים.

גודל הלוח
ניתן לשאול את החידה גם על לוח בגודל אחר מגודל 8x8, כלומר, הצבה של N מלכות על לוח שגודלו NxN. בטבלה שלהלן מוצגים מספר הפתרונות לגדלים שונים (N) של הלוח ומספר המלכות (פתרונות יסודיים הם פתרונות שאי אפשר לקבל אותם אחד מהשני בעזרת שיקוף הלוח וסיבובו):
n:1234567891011121314פתרונות יסודיים10012161246923411,7879,23345,752כל הפתרונות100210440923527242,68014,20073,712365,596
מספר הפתרונות המדויק באופן כללי אינו ידוע.

 ראו גם  
 חידת מסע הפרש 

 קישורים חיצוניים 

 פתרון מודרך
 חידת מלכות דומה


 פתרון לחידת 8 המלכות בעברית, באתר G4A

הערות שוליים

שמונה המלכות
קטגוריה:רקורסיה