משימה 6 -- דחווווווווווף עזרה!!!בבקשה

מנהל: The Architect

נעול
watadm
הודעות: 3
הצטרף: 02:32 09/01/2009

משימה 6 -- דחווווווווווף עזרה!!!בבקשה

שליחה על ידי watadm » 02:50 09/01/2009

משימה 6 עשיתי לה בדיקה דרך (testSolver(); ) וקבלתי כךך:

Solution for phi 0is: 1
Solution for phi 1is: 2 1
Solution for phi 2is: 2 3 4 1
Solution for phi 3is: 3 1
testSolver: test failed for phi4
Solution for phi 4is: 3 2
testSolver: test failed for phi5
Solution for phi 5is: 2 1 4 3
testSolver: test failed for phi6
Solution for phi 6is: 7 8 11 18 14 2 6 16 9 15 1 4 10 13 5 12 17
testSolver: test failed for phi7

אני יודע למה החזיר לי בחלק מהם test failed זה בגלל שאחד הפסוקות ב cnf שווה ל false (שז"א שנמצאים בפסוקה מסויימת רק הנגדים של הליטירל .
אבל אך אני פותר את זה ???אולי שחסר לי משהו בקוד של Taske 6???

hico
הודעות: 49
הצטרף: 19:21 06/12/2008

שליחה על ידי hico » 03:18 09/01/2009

ב-6 אתה אמור לנסות לפתור עם הליטרל שבחרת ב5 או עם השלילה שלו,
יכול להיות שלא ניסית לפתור עם השלילה שלו ואז קיבלת שאין פיתרון?
ואם כן ניסית, תבדוק את הסוגריים של התנאים..יכול להיות שהוא לא מגיע לנסות את השלילה של הליטרל.
ואם בכל זאת...צריך לחזור לפונ' 4. אבל קודם נשלול את האופציות הקודמות.
כמו כן, תוודא ב6 שאתה בודק את המקרים של isFalse & isTrue.

ומשהו נוסף שראיתי עכשיו:
הוא כותב גם מה הפיתרון וגם שהוא נכשל בTEST (למשל עבור פי4,5,6)
כי הפיתרון שנתת לא מספק את ה-CNF, תראה את הקוד של testSolver, מתי השורה הזאת מודפסת:
כאשר satisfies על הPHI ועל הפיתרון לא נותן את התשובה שהם ציפו לה. (קיבלת עליהם FALSE בפי4,5,6 וציפו שיהיה TRUE)

פיתרון נכון לדוגמא אמור להיות כזה:

קוד: בחירת הכל

Found no solution for phi0
Found no solution for phi1
Found no solution for phi2
Solution for phi 3is: 1 3 
Solution for phi 4is: -1 -2 3 
Solution for phi 5is: 1 4 -6 -2 
שים לב שלפי0,1,2 אין פיתרון.

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

___

mazliaha
הודעות: 26
הצטרף: 00:07 07/01/2009

שליחה על ידי mazliaha » 04:18 09/01/2009

נראה לי שתנאי העצירה שלך לא טוב כי ל3 phi-ים הראשוניים הוא רושם לך את הליטרלים הראשוניים עד שהוא מגיע לתשובה null שם אתה צריך להחזיר null.....

watadm
הודעות: 3
הצטרף: 02:32 09/01/2009

שליחה על ידי watadm » 11:18 09/01/2009

זה בטוח עזר, כך אני מקדתי איפה יכולה להיות הבעיה,
אבל יש לי קושי באך ואיפה לבחור את השלילה של הליטירל(שבחרתי ב 5)....
יכול להסביר??
תודה

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

שליחה על ידי yurib » 17:48 09/01/2009

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

נעול

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