מעבר לתוכן


תמונה

פורסמה עבודה מס' 3 בJAVA...


  • Please log in to reply
226 replies to this topic

#31 אורח - אורח/ת

אורח - אורח/ת
  • אורחים

פורסם 18/02/2008 - 09:39

ממשימה 4:
"to substitute literal l in phi you should consider several cases: (1) the cases when l or -l are already in the assignment part..."
לא אומרים מפורשות מה צריך לעשות במצב הזה, אבל אם חושבים על זה קצת, אז בחלק ההצבה אם מופיע גם l וגם -l אז אי אפשר לספק את המשפט - כי כל הליטרלים בחלק ההצבה מופרדים ב"וגם".
במצב הזה צריך להפוך את המשפט לחסר ספיקה - כלומר למערך שכל הקלוזים שלו ריקים, והחלק של ההצבה (assignment) הוא NULL - וזה ממשימה 1 שבה מסבירים מהו משפט בלתי ספיק:
"is false if its assignment part is null and it contains no clauses".

מקווה שהבהרתי את זה כמו שצריך...





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

#32 אורח - אורח/ת

אורח - אורח/ת
  • אורחים

פורסם 18/02/2008 - 09:40

תגידו - יכול להיות הקוד של שאלה 5 הוא:
;[return phi[1][0

?
כי רשום שלא צריך לעשות בחירה - אלא פשוט להחזיר אחד מהם, וגם רשום שניתן להניח שב PHI יש LITERAL בחלק ה CNF (שורה 6 בפיסקה של התרגיל)

תודה.





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

#33 אורח - אורח/ת

אורח - אורח/ת
  • אורחים

פורסם 18/02/2008 - 10:27

מישהו הבין מה צריך לעשות ב 4.5 ?

הבנתי את העקרון של satisfies (משימה 3 שהם כתבו)
אבל איך אני יכול לממש אותה ב4.5 ע"י שימוש ב משימה 4 (ההחלפות) ?

תודה

#34 igalep132

igalep132

    כסף

  • רשומים+
  • 2340 הודעות:

פורסם 18/02/2008 - 10:41

אם הוא מופיע שם אז להחזיר את המקורי
אם ההופכי שלו מופיע שם להחזיר מערך ריק (לא NULL - יש הבדל בין מערך ריק לNULL)


לפי דעתי צריך להחזיר את המקורי בשני המצבים
גם אם l שם גם אם l- שם
אם l מופיע אז ברור ש עוד l לא יכול להיות בASS כי כל הclauses איתו כבר נמחקו

אם l- מופיע, אז זה אומר ש l- היה כבר לפני כן, וכל הclauses שלו נמחקו, וl עצמו כבר נמחק מהclauses לכן גם פה לא צריך לעשות כלום אלא להחזיר את phi כמושהו

#35 Nightstalker

Nightstalker

    Fullmetal User

  • רשומים+
  • 2458 הודעות:

פורסם 18/02/2008 - 13:07

לפי דעתי צריך להחזיר את המקורי בשני המצבים
גם אם l שם גם אם l- שם
אם l מופיע אז ברור ש עוד l לא יכול להיות בASS כי כל הclauses איתו כבר נמחקו

אם l- מופיע, אז זה אומר ש l- היה כבר לפני כן, וכל הclauses שלו נמחקו, וl עצמו כבר נמחק מהclauses לכן גם פה לא צריך לעשות כלום אלא להחזיר את phi כמושהו



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


מישהו כבר ניסה להפעיל את הסודוקו ? אני בסוף הפונקציה שעושה את זה - ונראה לי כאילו זה הולך לאכול המון זיכרון... למישהו יש מושג כמה זיכרון יש לנו בכלל?
Ignorance is sometimes bliss, but more often death.

There would be no great men if there were no little ones.

Having a smoking section in a restaurant is like having a peeing section in a swimming pool.

To be sure of hitting the target, shoot first, and call whatever you hit the target.

Smile. It's the second best thing you can do with your lips.

#36 amitbl

amitbl

    Don't panic... all you need is your towel!

  • רשומים+
  • 1020 הודעות:

פורסם 18/02/2008 - 13:49

ברור שאם גם L וגם L- מופיעים ב ASSIGNMENT הנוסחה כולה תמיד תיהיה FALSE.
אם כבר ציטוטים - שים לב שבעמוד 4 סעיף 1 (תחת הכותרת "כדי לפשט את העבודה נוסיף הגבלות...) כתוב שלא יקרה מצב ש ASSIGNMENT יקבל גם את L וגם את L-.
אני חושב שהם התכוונו שנבנה את התוכנית כך שאם יש כבר L ב ASSIGNMENT אז שליחה של L- לא תשנה את המערך (ולהפך).



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

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

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

לפי דעתי צריך להחזיר את המקורי בשני המצבים
גם אם l שם גם אם l- שם
אם l מופיע אז ברור ש עוד l לא יכול להיות בASS כי כל הclauses איתו כבר נמחקו

אם l- מופיע, אז זה אומר ש l- היה כבר לפני כן, וכל הclauses שלו נמחקו, וl עצמו כבר נמחק מהclauses לכן גם פה לא צריך לעשות כלום אלא להחזיר את phi כמושהו

לפי דעתי - בחלק השני אתה טועה.
(/__\)
(='.'=) - Shhhhh... I'm hunting wab(bit)s
(")_(")

HOW MUCH?!
תמונה מצורפת

#37 Napsss

Napsss

    לא סתם ברונזה - רשום+!

  • רשומים+
  • 419 הודעות:

פורסם 18/02/2008 - 15:02

היי.. לא הבנתי משהו מסוים ... (קשור למשימה 4) .. הרי אם ה L קיים באיזשהי שורה (1 והלאה..) אז נרצה למחוק אותה... זה ברור.
אבל לא ברור הקטע עם הלהוריד את ה -L בתוך הclause ... מה עומד רעיונית מאחורי זה?

וגם איך בדיוק להעתיק למערך החדש את השורות שנשארו?

#38 אורח - אורח/ת

אורח - אורח/ת
  • אורחים

פורסם 18/02/2008 - 17:16

שאלה למי שכבר פתר את משימה 6 (solve) -
עשיתי אותה ובדקתי אותה עם הפונקציה testSolver שסופקה לנו.
מ PHI0 עד PHI6 התוצאות נכונות.
רק ב PHI7 (הנוסחה המטורפת) הוא מחזיר FALSE כשהיה אמור להחזיר TRUE.

מי שכבר הריץ ויכול להגיד שיצא לו נכון ?
התחלתי להוריד שורות של פסוקיות מ PHI7 (יש יותר מ 50) וגיליתי שהוא מקבל FALSE בגלל פסוקיות מסוימות החל מהשורה ה 33 בערך.

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

תודה על העזרה.

#39 igalep132

igalep132

    כסף

  • רשומים+
  • 2340 הודעות:

פורסם 18/02/2008 - 17:27

לפי דעתי - בחלק השני אתה טועה.


למה לדעתך אני טועה ?
ואם לא אז מה אני אמור להחזיר שם אם לא את הphi המקורי

זה משרשום ב FAQ


Coaching: To substitute literal l in phi you should consider several cases: (1) the cases when l or -l are already in the assignment part;.... ". The question is, what should I do if the l already exists in assignment part ?
Good question. It is part of the exercise to figure this out.
More help: It is possible that you will write your solution such that this situation never happens. If this is the case then you may ignore point (1) in implementing substitute. When we test your code we will never try to substitute a literal that occurs (or its negation occurs) in the assignment part.


אז תכלס אפשר להחזיר שם משרוצים


ומה קורה אם הliteral שאני בודק בכלל לא נמצא בAss ולא ב CNF ? מישהו הבין את החלק הזה ?

#40 אורח - אורח_אורח_*

אורח - אורח_אורח_*
  • אורחים

פורסם 18/02/2008 - 17:30

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

תודה רבה, ותהנו מכל רגע...

#41 אורח - גרג

אורח - גרג
  • אורחים

פורסם 18/02/2008 - 18:18

במשימה 4 האם צריך ליצור מערך חדש או לעשות את כל הפעולות על "פי"?? לפי מה שכתוב

"which substitutes the given literal in the given formula phi and returns a
new array of arrays of integers that represents the resulting formula. You may
assume that literal is not zero and that phi is a legal representation."

תודה לעונים.

גרג

#42 Bugaloo

Bugaloo

    מתחיל/ה להבין בדיחות פורום

  • רשומים
  • 220 הודעות:

פורסם 18/02/2008 - 18:41

בשאלה 4: נגיד ואני מקבל ליטרל שהוא מופיע בקלוז הרביעי [3]P . עכשיו אי צריך "להעלים" את השורה... איך אני עושה את זה? בעזרת בניית CNF חדש? או שאני שם NULL ב[3]P ??
או שאני עושה {}=[3]P??!? מה מה מה אני עושה ?!?!?!?! מהההההההה??!?!?!

forza juve


#43 Nightstalker

Nightstalker

    Fullmetal User

  • רשומים+
  • 2458 הודעות:

פורסם 18/02/2008 - 18:47

למה לדעתך אני טועה ?
ואם לא אז מה אני אמור להחזיר שם אם לא את הphi המקורי

זה משרשום ב FAQ


Coaching: To substitute literal l in phi you should consider several cases: (1) the cases when l or -l are already in the assignment part;.... ". The question is, what should I do if the l already exists in assignment part ?
Good question. It is part of the exercise to figure this out.
More help: It is possible that you will write your solution such that this situation never happens. If this is the case then you may ignore point (1) in implementing substitute. When we test your code we will never try to substitute a literal that occurs (or its negation occurs) in the assignment part.


אז תכלס אפשר להחזיר שם משרוצים


ומה קורה אם הliteral שאני בודק בכלל לא נמצא בAss ולא ב CNF ? מישהו הבין את החלק הזה ?


בקשר לחלק הראשון אם כותבים את הקוד כמו שצריך - באמת לא צריך להיווצר מצב שבו יש L ו מינוס L בו זמנית.
בקשר לחלק השני אם מציבים לך LITERAL שלא מופיע בASSIGNMENT ולא בשום CLAUSE כל מה שאתה צריך לעשות זה להוסיף אותו לASSIGNMENT וזהו
הסבר:
נגיד שיש לך כזה CNF שאין לו ASSIGNMENT עדיין
יש לו רק CLAUSE אחד שנראה כך
{1,2,3,4}
אתה מקבל את ההצבה 1 2 3 ומינוס 4
בודק את התנאי הראשון והוא מקיים את הCLAUSE הזה
אתה מסיר את הCLAUSE - נשאר לך 3 ליטרלים להכניס שלא נמצאים באף CLAUSE וזה לא משנה מה הערך שלהם ..כל מה שצריך לעשות זה להוסיף אותם לASSINMENT כדי שתוכל להוציא אותם בפיתרון...
Ignorance is sometimes bliss, but more often death.

There would be no great men if there were no little ones.

Having a smoking section in a restaurant is like having a peeing section in a swimming pool.

To be sure of hitting the target, shoot first, and call whatever you hit the target.

Smile. It's the second best thing you can do with your lips.

#44 Nightstalker

Nightstalker

    Fullmetal User

  • רשומים+
  • 2458 הודעות:

פורסם 18/02/2008 - 18:53

במשימה 4 האם צריך ליצור מערך חדש או לעשות את כל הפעולות על "פי"?? לפי מה שכתוב

"which substitutes the given literal in the given formula phi and returns a
new array of arrays of integers that represents the resulting formula. You may
assume that literal is not zero and that phi is a legal representation."

תודה לעונים.

גרג


לא ממש משנה אם אתה מעביר את זה למקום חדש או משאיר באותו מערך - מה שחשוב זה שתמחק את הערך מהמערך לפי החוקים (אל תשכח למחוק גם את ההופכי)
אני השארתי CLAUSEים ריקים - נראה לי בזבוז זמן ריצה להעביר את הכל למערך חדש - והם לא מפריעים לי
Ignorance is sometimes bliss, but more often death.

There would be no great men if there were no little ones.

Having a smoking section in a restaurant is like having a peeing section in a swimming pool.

To be sure of hitting the target, shoot first, and call whatever you hit the target.

Smile. It's the second best thing you can do with your lips.

#45 אורח - גרג

אורח - גרג
  • אורחים

פורסם 18/02/2008 - 18:59

תודה על העזרה :)

עוד שאלה קטנה. מה קורה במקרה כמו שהם הראו בדוגמא של משימה 4, שהם הכניסו X1 ו X'2 ונשאר להם מספר ב CNF וגם כן ה ASS הוא עם מספרים. האם זה אומר שצריך לשים NULL ב ASS ולעשות אורך CNF שווה לאפס (כלומר שזה יחזיר לנו FALSE) ? או שלא יכול להיות מקרה שישארו מספרים ב CNF אחרי כל הבדיקות?




0 משתמשים קוראים נושא זה

0 משתמשים, 0 אורחים, 0 משתמשים אנונימיים