משימה 5 + 9

מנהלים: The Architect, The Architect

נעול
roie
הודעות: 32
הצטרף: 21:35 15/12/2008

משימה 5 + 9

שליחה על ידי roie » 12:51 05/01/2009

בשאלה 5 כתוב שהתנאי היחידי לבחירת ליטרל הוא שהליטרל יופיע ב CNF

כאשר N = 4
(createQueensCNF(4

הליטרל x4+ = 4 ( המשבצת הימנית למעלה ) מופיע ב CNF אך למעשה בניגוד להנחיות של שאלה 5 זהו ליטרל שאסור לבחור אותו כי במצב של לוח 4X4 אסור שתהיה מלכה בפינות

בבקשה תעזרו לי עם הבעיה

NextIsTheE
הודעות: 31
הצטרף: 12:27 28/12/2008

שליחה על ידי NextIsTheE » 13:03 05/01/2009

ב-n=4, זה מקרה פרטי שאסור שמלכה תהיה בפינה... :?
לדוגמא כאשר יש 5 מלכות, פיתרון אפשרי הוא:
(0,5), (1,2), (2,4), (3,0), (4,3).
כמו שאתה רואה יש מלכה בפינה השמאלית העליונה (0,5), וזה לא נוגד שום הנחיה של שאלה 5.

:idea: כנראה שאתה צריך להוסיף לאלגוריתם שלך במשימה 6 את האופציה שאם משימה 5 בוחרת ליטרל שלא מתאים לו להשביע את רצונו של פי, שיבחר ליטרל אחר (או את אותו הליטרל השלילי) ואז ינסה שוב. :idea:
תמונה

roie
הודעות: 32
הצטרף: 21:35 15/12/2008

שליחה על ידי roie » 13:20 05/01/2009

אני יודע שזה מקרה פרטי ב N=4 והתוכנית שלי עובדת ב N = 5

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

תודה רבה

yurib
הודעות: 207
הצטרף: 18:30 19/11/2008

שליחה על ידי yurib » 14:31 05/01/2009

דבר ראשון, הליטרל שצריך לבחור בפונקציה 5 הוא ליטרל כלשהו שמופיע ב CNF שנשלח לפונקציה, זו פעולה טכנית שלא תלויה (כל עוד אתה לא מנסה לייעל את הקוד) בבעיה שאתה מנסה לפתור.
כלומר, הפונקציה מחזירה ליטרל כלשהו ואין לה מושג בכלל אם הCNF מייצג פתרון של בעיית N המלכות או אולי בעיה אחרת לחלוטין. כך שכל עוד אתה מוודא שהליטרל שאתה מחזיר מופיע ב CNF ולא סתם מגריל מספר אקראי, מבחינת משימה 5 עשית את מה שאתה צריך לעשות.
שנית, במקרה הספציפי שלנו, השימוש הפונקציה 5 יעשה במשימה 6, שם אתה תבחר ליטרל כלשהו תציב לו ערכים ותראה האם מתקבל CNF פתיר, המקרה של N=4 אם באמת יבחר הליטרל 4, כשתציב בו ערך אמת אכן תגיע למסקנה שה CNF אינו פתיר ואז תצטרך לבדוק מה קורה כשתציב לו בו ערך שקר...

roie
הודעות: 32
הצטרף: 21:35 15/12/2008

שליחה על ידי roie » 14:37 05/01/2009

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

תודה רבה יורי!

נעול

חזור אל “- מבוא למדעי המחשב”