הבעיה שתיארת היא NP קשה, כלומר לא ידוע (ולהערכתי לא יהיה
ידוע בעתיד הנראה לעין) איך לפתור את הבעיה באופן יעיל.כמו כן הבעיה לא הוגדרה אצלך עד הסוף, שכן ברוב המקרים לא כולם
יהיו שמחים לגמריי, ואז צריך להחליט איך מעדיפים שיבוץ אחד
על אחר. בגדול מה שלרוב עושים זה נותנים פונקציית מחיר לשיבוץ
או לחילופין אופרטור השוואה ביןן שני שיבוצים מוצעים,
ואז הבעיה מוגדרת עד הסוף.
כמובן שלמצוא כאלו שיהיו טובים לעיתים גם דורש מחשבה.
יש מספר שיטות להתמודד עם בעיה כזאת, שידוע שהיא מאוד קשה:
1) להעביד מחשבים חזקים הרבה זמן ולמצוא פתרון.
2) למצוא בזמן סביר פתרון, שהוא אידיאלי בסבירות גבוהה.(לא תמיד
אפשרי)
3) למצוא בזמן סביר פתרון, שהוא אולי לא אידאלי אבל הוא בוודאי
קרוב אליו עד כדי חסם טוב ידוע.
4) למצוא בזמן סביר פתרון, שהוא אולי לא אידאלי, אבל יש לנו
סיבות טובות להאמין שהוא מאוד קרוב לאידאלי, אפילו שלא ניתן
להוגיח כזה דבר(בעיקר עקב מקרים חריגים)
5) למצוא את הפתרון הנכון, בזמן שהוא לרוב סביר, אבל
לפעמים איום ונורא.
אני אישית מאוד מתעניין בפתרונות מהסוג 4,5, כל מיני
חיפושים היוריסטים, אלגוריתמים גנטיים וכו.
DRYICE