ABA


"בינה מלאכותית"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #12096 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 12096
alonzo

   16:50   10.05.05   
אל הפורום  
  בינה מלאכותית  
 
   שלום לכולם
אני מנסה כבר זמן מה לכתוב תוכנת מחשב שתשחק את המשחק וויסט בצורה חכמה.
למי שלא מכיר את המשחק זהו משחק קלפים המיועד ל-4 שחקנים בדיוק. כל שחקן מקבל 13 קלפים וצריך להמהר על מס' הלקיחות שהוא ייקח וזוהי מטרת המשחק (עמידה ביעד עליו הימרתי).
ניתן לקרוא פרטים נוספים על המשחק בקישור הבא http://he.wikipedia.org/wiki/%D7%95%D7%99%D7%A1%D7%98
בכל מקרה מדובר כמובן בשילוב של בינה מלאכותית אותה אני מתקשה לבצע.
אני צריך עזרה בבקשה


מוכן גם לשלם למישהו אם צריך.
תודה

ניתן ליצור קשר בדוא"ל
[email protected]


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  רק חבל שאתה לא יודע מה זה בינה מלאכותית booskila 10.05.05 19:14 1
     אני לא מסכים איתך alonzo 10.05.05 20:59 5
  מסכים עם booskila , אתה צריך להקים פונקציות למשחק. The Neta 10.05.05 19:31 2
  יש דבר כזה AI, אבל מצריך הרבה למידה zeze 10.05.05 20:19 3
     למה דוקא רשתות ניורון alonzo 10.05.05 20:57 4
         עצי מינמקס וכל מיני פונקציות יוריסטיות zeze 10.05.05 22:44 6
             אתה תהיה מוכן לעזור לי alonzo 11.05.05 07:00 7
  כמה מחשבות על וויסט dryice 20.05.05 22:05 8
     תודה רבה alonzo 14.06.05 19:41 9

       
booskila

   19:14   10.05.05   
אל הפורום  
  1. רק חבל שאתה לא יודע מה זה בינה מלאכותית  
בתגובה להודעה מספר 0
 
   מה שאתה מנסה לבנות זה לא AI
זה אפילו לא קרוב ל AI

לא קיים בעולם כיום AI ולא יהיה קיים הרבה מאוד שנים
מה שאתה עושה לא חושב לבד
הוא עושה מה שאמרת לו לעשות

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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
alonzo

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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
The Neta

   19:31   10.05.05   
אל הפורום  
  2. מסכים עם booskila , אתה צריך להקים פונקציות למשחק.  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
zeze

   20:19   10.05.05   
אל הפורום  
  3. יש דבר כזה AI, אבל מצריך הרבה למידה  
בתגובה להודעה מספר 0
 
   תקרא קצת על רשתות ניורונים (Neuron Net), אם יש לך
מספיק ידע אפשר גם לבנות מודל AI לוויסט.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
alonzo

   20:57   10.05.05   
אל הפורום  
  4. למה דוקא רשתות ניורון  
בתגובה להודעה מספר 3
 
   מה עם בינה מלאכותית "רגילה" כמו עץ משחקים ושיטות קיצוץ כמו מינימקס ?
האם זה לא יכול לעשות את העבודה ???
האם יש מצב שאתה יכול לעזור לי בזה קצת ?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
zeze

   22:44   10.05.05   
אל הפורום  
  6. עצי מינמקס וכל מיני פונקציות יוריסטיות  
בתגובה להודעה מספר 4
 
   ערכתי לאחרונה בתאריך 10.05.05 בשעה 22:46 בברכה, zeze
 
הן בסדר גמור, אבל זוהי הרמה הבסיסית של בינה מלאכותית.
עדיין אפשר לקבל תוצאות יפות.
וויסט הוא משחק קצת מסובך (המון מצבים אפשריים).
תתחיל במשהו פשוט יותר כמו איקס מיקס דריקס או ריבוע קסם
ואח"כ תיקח את הפונקציות ותתאים אותן לוויסט.

לינק מצויין:
http://www.cs.berkeley.edu/~russell/ai.html


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
alonzo

   07:00   11.05.05   
אל הפורום  
  7. אתה תהיה מוכן לעזור לי  
בתגובה להודעה מספר 6
 
   אני כבר מימשתי בעבר את המשחק איקס עיגול. אני כבר כמה חודשים רק קורא וקורא חומר. עכשיו אני צריך כבר להתקדם עם הקוד.
אני עובד בסביבת חלונות כמובן - Visual C++ 6.0.
תודה בינתיים


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
dryice

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

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

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

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

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

כמו כן יש לשים לב: כמה לקיחות עוד צריך כל אדם ולהשוות לכמה עוד נותרו.

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

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

בתחילת המשחק יש כמות דיי גדולה של מצבים אפשריים 54 קלפים מחולקים
ל4 ידיים כאשר יש חשיבות לסדר בידיים ואין חשיבות לסדר בתוך הידיים,
שהם 54 עצרת חלקי 7 עצרת בחזקת 4. שזה הרבה בקרוב 2 בחזקת 30.
אבל כשהמשחק מתקר לסיימו אפשר ממש בעזרת כוח מחשוב סביר
לבחון את כל אפשרויות חלוקת הקלפים, ולהריץ משחק דמוי מינימקס עבור
כל אפשרות. ולבחור את המהלך שבו הכי סביר(מבין התפלגות הקלפים
ולא מבין המהלכים האפשריים) שננצח. זה כנראה מתחיל להיות ישים רק
סביב הסיבוב ה5 מהסוף.

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

DRYICE


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
alonzo

   19:41   14.06.05   
אל הפורום  
  9. תודה רבה  
בתגובה להודעה מספר 8
 
   תגובתך מרשימה מעניינת ומועילה ואני באמת מודה לך על התשובה המקיפה.
אני כעת בשלב של כתיבת הקוד.
גם בשלבים הראשונים אין כ"כ הרבה אפשרויות כמו שתיארת מכיוון ששחקנים חייבים לשים קלף מאותה הצורה שאיתה נפתח הסיבוב.
בכל מקרה אשמח לשתף אותך בהמשך (אתה נשמע לי תותח רציני)
אגב אני עובד ב ++C
האימייל שלי הוא : [email protected]
אם אתה מעוניין
תודה שוב


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net