לגבי תוכנות מחשבים בשח

לגבי תוכנות מחשבים בשח

יש את הדף של התוכנות החופשיות ששם aaa1 ,מה משם נחשבת התוכנה הכי טובה ? וגם איפה אפשר להוריד תוכנות שנחשבות במקומות הראשונים בעולם? מה זה ה TABLEBASSES????? ואיך בדיוק בונים תוכנה והם צריך לדעת בשביל זה שח או רק תיכנות?
 

aaa123

Member
Yace נחשבת לתוכנה הכי טובה

מהתוכנות החופשיות אבל הבנתי שיש כוונה להפוך תוכנה אחרת בשם ruffian לחופשית ואז היא יכולה לתפוס את המקום הראשון. יש גם תוכנות חופשיות טובות אחרות לאחרונה היתה תחרות של התוכנות החופשיות החזקות Yace ניצחה עם 50 מ76 ובעקבותיה באו Comet עם 44.5 ואחריהן Gromit וPharaon עם 44. התוכניות החזקות שלא השתתפו בגלל שהן חדשות הן aristarch וList האחרונה נכון להיום חלשה יותר בגלל שאין לה ספר פתיחות והיא לא מחשבת בתור היריב אבל בתחרות בה נתנו לה ספר פתיחות והמשחקים היו בלי חישוב בתור היריב היא מתחרה עם Yace וAristarch על המקום השני כאשר המנצחת היא גירסה ישנה של Junior מ1998 בשם Junior5. הגירסה האחרונה היא Junior7. אפשר לקרוא על המצב בתחרות סיבוב אחד לפני הסוף בלינק המצורף. הtablebases הם למעשה ספרים ענקים בהם כתוב על כל עמדה של מספר קטן של כלים מה התוצאה התיאורטית שלה. יש tablebases למלך צריח ורגלי מול מלך וצריח ולכל צרוף של 5 כלים או פחות יש tablebases מתאים. יש גם tablebases גם לעמדות של 6 כלים בלי רגלים אבל הם מאוד גדולים ואין מקום בזכרון של מחשב רגיל כדי לשמור את כולם. כדי לבנות תוכנה שמשחקת שחמט צריך לדעת תכנות. ידע בשחמט לא חשוב ,וחלק מהמתכנתים הטובים הם לא ברמה של יותר מדרגה רביעית.
 

Gezer

New member
מה?!

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

aaa123

Member
המתכנת של chessmaster

וכמו כן המתכנתים של Junior וTiger אינם ידועים כשחמטאים טובים. המתכנת של Tiger העריך את עצמו כשחקן עם 1000 נקודות מד כושר פחות מהתוכנה שהוא פיתח. לגבי המתכנת של chessmaster שמעתי טענות שהוא אפילו שחקן עוד פחות טוב. אני לא יודע על משחקים שאמיר באן(המתכנת העיקרי של Junior) שיחק בתחרויות כך שקשה להעריך את הרמה שלו אבל אני מעריך שהוא לא יותר טוב מדרגה רביעית. המתכנת של Rebel העריך את עצמו כבעל מד כושר 1800 אבל הוא מזמן לא שיחק בתחרויות כך שקשה לדעת. הוא טוען שהידע העמדתי שלו השתפר מאז שהוא התעסק בתכנות של Rebel אבל בטקטיקה הוא לא טוב אבל הנקודה היא ששחמט תלוי רבות בטקטיקה. המתכנת של פריץ הוא בעל מד כושר שקרוב ל2000. הנקודה היא שכמו שלא מלמדים אוירון לעוף כמו ציפור הדרך הנכונה ללמד מחשב איננה בהכרח לנסות ללמד אותו לחשוב כמו בן אדם כך שידע בשחמט לא בהכרח עוזר.
 
בעיה בהפעלת התוכנה שלך

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

aaa123

Member
אנסה לעזור לך

הנה השורות האחרונות של הוינבורד.וינ שלי בשניה זאת(ראה סוף ההודעה) אתה צריך לרשום Movei00_7a ולא Movei00_76 כי זאת הגירסה החופשית שאפשר להוריד מהאינטרנט. לגבי התוכנית השניה אתה יכול להשאיר אותה כgnuchess במקום kaissa שהוא במקרה השם האחרון של התוכנית שנתתי לMovei לשחק איתה. בינתים לא הפצתי גירסה טובה יותר אבל הגירסה האחרונה שיש לי היא משמעותית טובה יותר(אני מעריך ב100 עד 200 נקודות מד כושר). אני מתכוון להפיץ בעתיד גירסה שתהיה עוד יותר טובה אבל אני לא מתחייב על תאריך. אני חושב שלא תהיה לך בעיה לשחק עם התוכנית אם תבחר באופציה play against a chess engine אין דרך שכל התוכנות יעבדו בלי לשנות כל פעם את הוינורד.וינ אני חושב שיש דרך כזאת עם אינטרפיס שנקרא ארנה אבל לאינטרפיס הזה יש בעיות אחרות וחלק מהתוכנות של הוינבורד לא עובדות שם טוב אבל אנשים הצליחו לשחק עם Movei תחת ארנה בלי בעיות. אני לא ניסיתי מעולם את ארנה נכון לרגע זה. אתה יכול ליצור משחק בין 2 תוכנות שונות אם אתה עושה קליק על Mode ואחר כך אתה בוחר 2 machines. צריך להיות סדר הפוך בין 2 לMachines אבל משום מה זה לא יוצא לי נכון שאני מנסה לכתוב את זה. rook.chessclub.com /icsport=5000 /icshelper=timestamp chess.net /icsport=5000 } /firstChessProgramNames={Movei00_76 "GNUChes5 xboard" } /secondChessProgramNames={Kaissa2_01 "GNUChes5 xboard" } /showButtonBar=true
 
אוקי ,תודה.הצלחתי ! אמממממממ

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

צירפתי כאן קובץ של הקרב בין movei00_7a ל GNUChes5 GNUChes5 ניצחה בשחור בהגנה הצרפתית הניצחון היה ממש בקלות ונראה לי שהתבצעו המון על-ידי movei00_7a על המסע השני movei00_7a הענתה להגנה הצרפתית משהו לא שגרתי ולדעתי גם הטעות הראשונה שלה במשחק ניסיתי שmovei00_7a תנתח את המשחק אבל כתוב שהיא לא תומכת באנליזה של המשחק אז אשמח לדעת איך אני רואה ניתוח שלה למשחקים כמו שaaa123 עושה תמיד
 

aaa123

Member
דרך אפשרית לנתח משחקים

קודם כל מספר הערות על המשחק(עדיין לא ניתחתי אותו ורק הסתכלתי עליו) לMovei00_7a אין ספר פתיחות חוץ מהמסע הראשון כך שהיא יכולה לעשות לפעמים מסעים לא מדויקים בפתיחה(זה כבר תוקן בגירסה הפרטית שלי שעדיין לא הפצתי ,והיא תומכת בספר פתיחות) Movei00_7a לא מעריכה ניידות של הכלים בפתיחה ,והסיבה שלא רציתי שהיא תוציא את המלכה בפתיחה. גם זה תוקן בגירסה האחרונה שכרגע עדיין לא מופצת. Movei לא מעריכה סכנה של התקפה על המלך. זה לא תוקן בגירסה האחרונה של Movei אבל מעשית הערכת ניידות הכלים עוזרת לה בהרבה מקרים למנוע סכנה למלך כי כאשר צד אחד מתקיף את המלך הצד השני מתגונן ,והוא נאלץ להדחק לעמדות פסיביות. אני מסכים שMovei חלשה יותר מGNUChes5 אבל המשחק הזה יכול לתת רושם מוטעה על הרמה של Movei. אני מאמין שבקצב משחק איטי יותר יש לMovei יותר סיכויים מול GNUChes5 למרות שגם במקרה כזה אני מצפה שGnu תנצח במרבית המקרים. אני גם מאמין שהגירסה האחרונה של Movei שלא הפצתי טובה יותר מGnuches5 בקצבי משחק איטים. דרך אפשרית לנתח משחק עם Movei היא על ידי קביעת קצב משחק איטי מאוד(למשל option ואחר כך בחירה בtime control ואחר כך בחירה בincremental clock של 800 דקות למשחק +800 שניות למסע. אחר כך אפשר להעתיק את המשחק על ידי בחירה בFile ואחר כך copy game to clipboard אחר כך אתה יכול לעבור על המסעים וכשאתה מגיע לעמדה שאתה רוצה לנתח אתה יכול לבחור ב File->copy Fen ואחר כך בfile->paste Fen אחר כך אתה יכול ללחוץ על 3 הכפתואים ctrl alt F12 אני לוחץ קודם על ctrl ואחר כך על alt ששניהם לחוצים בו זמנית ורק בסוף על F12 ששלושתם לחוצים בו זמנית ואחר כך עוזב. אחר כך אתה יכול להחליף את הmode מmode של edit game לmachine black אם תור שחור לשחק ואז התוכנית תנתח ותרשום את הניתוחים שלה לdebug file שהוא אחד הקבצים בשם winboard. אחר כך אתה יכול להסתכל בקובץ ,ולראות את כל הניתוחים של התוכנה. אתה יכול גם לראות את הניתוח בזמן אמת אם אתה בוחר ב option general show thinking אבל במקרה כזה אתה תראה רק את הדבר האחרון שהתוכנית ניתחה. הערה אחרונה יש צורך ללחוץ על שלושת הכפתורים רק פעם אחת ולא יותר מזה. אם תלחץ עליהם פעם נוספת התוכנית תפסיק את הרישום לwinboard.debug ואם תעשה את זה עוד פעם אז התוכנית תתחיל לרשום מחדש לwinboard.debug ותמחוק את מה שהיא רשמה קודם.
 

aaa123

Member
עוד תוספת

ניסיתי לשחזר את המסע 4.פז-ה2 ולא הצלחתי(Movei בוחרת במסע 4.ד4). הצלחתי לשחזר את המסע 2.פ-ג3 אבל בקצבי משחק איטים יותר Movei בוחרת במסע הנכון 2.ד4 2 שאלות: 1)מה המספרים שרשומים בקובץ הtext moveisizehashandslow? יתכן שכמות שונה של hash tables מביאה לתוצאה שונה. 2)מה החומרה בה אתה משתמש? אגב שכחתי להגיד בהודעה קודמת שבמקרה שאתה רוצה להפסיק את הניתוח אתה יכול לבחור בstep->move now.
 
ככה

המספרים בקובץ moveisizehashandslow הם 16 1 אגב מה הם אומרים ולמה שאלת? לגבי החומרה שלי אני משתמש במחשב די ישן - פנטיום 1 זה משפיע על החשיבה של התוכנות? לגבי ניתוח המשחקים - מה עושים עם כפתור הוינבורד mode ----analysis mode.....או mode---------- analysis file ? חשבתי שבזה מנתחים משחקים עוד שאלונת לגבי המגבלות שכתבת שיש ל Movei תוכל להסביר בדיוק עם דוגמאות מה הכוונה שהיא לא מעריכה ניידות כלים וגם התקפה על המלך? איך זה בדיוק עובד? כי הרי התקפה על המלך זה הדבר שצריך להזהר ממנו במשחק? הנושא הזה של התוכנות מתחיל לרתק אותי חבל שאני לא יודע תיכנות :(
 

aaa123

Member
המספרים האלו הם גודל הhash tables

והמידה שהתוכנית משחקת מהר יותר. 16 אומר שהתוכנית משתמשת ב16 מגהבייט hash tables כלומר היא משתמשת ב16 מגהבייט מהRam של המחשב. לגבי המספר השני 1: 1 אומר שהתוכנית לא משחקת פחות טוב. 2 אומר שהתוכנית משחקת פי 2 מהר יותר ומנצלת לכל היותר חצי מהזמן שלה. אפשר להגדיל את המספר ,ולגרום לה לשחק פחות טוב. מהירות המחשב בהחלט משפיעה על הביצועים של התוכנה. יכול להיות גם מצב שהמחשב מואט באופן משמעותי בגלל שהוא משתמש ביותר מדי זכרון אז אולי עבור המחשב שלך עדיף להקטין את כמות הhash tables כי סביר שלמחשבים ישנים יש גם פחות זכרון. אני לא אומר ש16 מגהבייט הוא יותר מדי בשביל המחשב שלך ,ואם זה היה יותר מדי התוכנית שלי בכלל לא היתה מסוגלת לשחק אבל כאשר המחשב עושה גם דברים אחרים וצריך להקצות זכרון גם ליריב אז יכול להיות שבסך הכל זה יותר מדי וגורם להאטה של המחשב. אתה יכול לשנות את ה16 ל8 או 4. לגבי ניתוח המשחקים analysis באמת מיועד לניתוח משחקים אבל נכון להיום התוכנית שלי לא תומכת בניתוח משחקים בדרך הזאת. ואפשר לנתח איתה רק בדרך אחרת. כאשר אני אומר שהתוכנית שלי לא מעריכה ניידות כלים במסעים הראשונים אני מתכוון למשל למקרה של הפרש בה2 שחוסם את הכלים הלבנים. Movei משתמשת במספר המסעים החוקים שיש לשחקן לצורך הערכת העמדה אבל הגירסה החופשית לא עושה את זה ב12-13 המסעים הראשונים כדי להמנע מהוצאת המלכה בפתיחה. לגבי התקפה על המלך אז התוכנית לא מעריכה כמסוכן מצב בו לשחקן חסרים רגלים ליד המלך ומצבים כאלה לעיתים קרובות מסוכנים. זה לא נכון באופן כללי שקידום רגלים שליד המלך הוא מסוכן למלך והחלטתי לא להעריך בכלל סכנה למלך במקום להעריך את זה באופן לא נכון כמו שעושות חלק מהתוכנות. אני מתכוון להעריך את זה בעתיד אבל לא בדרך של נתינת בונוס לרגלים ליד המלך באמצע משחק אלא בדרך טובה יותר.
 

aaa123

Member
מסעים נוספים שאני מנסה לשחזר אני

מצליח רק בקצב מאוד מהיר למשל ח3(אני משתמש בגירסה הישנה). הנה הdebug file שלי שאני משתמש בedit game כדי לבצע את המסעים הראשונים ואחר כך מנתח בעזרת machine white. גיליתי שאני לא צריך את הcopy position וpaste position שהצעתי מההודעה הראשונה. בעומק 5 Movei יכול לראות שח3 מפסיד וזה לוקח לא פחות מ2 עשיריות השניה על פנטיום850. הdebug יכול להיות שונה בקצת גם בהתאם למסעים שנותחו קודם אבל אני לא מצפה להבדל משמעותי כך שנראה לי שאו שהמחשב בו השתמשת היה מאוד איטי או שהוא הואט באופן משמעותי מסיבה כלשהיא. 378540 <first : Error (unknown command): black 378540 <first : Error (unknown command): white 378540 <first : 1 -45 5 157 h1f1 e7e2 d1e2 g4e2 e1e2 378540 <first : 2 -60 5 345 h1f1 h8f8 378540 <first : 2 -60 5 929 h1f1 h8f8 378540 <first : 3 -61 5 1993 h1f1 g4h3 f1g1 378600 <first : 3 -60 5 3938 h2h3 378600 <first : 3 -56 5 4181 h2h3 g4f3 h1f1 378600 <first : 3 -56 11 4637 h2h3 g4f3 h1f1 378600 <first : 4 -69 11 7302 h2h3 g4f3 h1f1 h8e8 378650 <first : 4 -69 16 13433 h2h3 g4f3 h1f1 h8e8 378650 <first : 5 -248 16 16900 h2h3 g4f3 e1d2 f3h1 d1h1 378650 <first : 5 -247 16 20745 h1f1 378710 <first : 5 -73 22 23921 h1f1 h8e8 f2f3 g4h3 f1g1 378820 <first : 5 -73 33 41776 h1f1 h8e8 f2f3 g4h3 f1g1 378930 <first : 6 -76 44 58891 h1f1 h8e8 f2f3 g4h3 f1g1 c8b8 379370 <first : 6 -76 88 152996 h1f1 h8e8 f2f3 g4h3 f1g1 c8b8 380080 <first : 7 -155 159 263595 h1f1 g4f3 e1d2 h8e8 f1e1 f6g4 e2d4 f3d1 e1e7 e8e7 d2d1 g4f2 381290 <first : 7 -154 280 483095 f2f3 381840 <first : 7 -154 335 570740 e1d2 382990 <first : 7 -80 445 739533 e1d2 h8e8 h1e1 c6c5 a1c1 f6h5 a3a4 g4e2 e1e2 e7e2 d1e2 e8e2 d2e2 h5g3 382990 <first : 7 -80 450 740524 e1d2 h8e8 h1e1 c6c5 a1c1 f6h5 a3a4 g4e2 e1e2 e7e2 d1e2 e8e2 d2e2 h5g3 385300 <first : 8 -95 681 1123563 e1d2 h8e8 h1e1 e7c5 h2h4 c5f5 f2f4 c8b8 386010 <first : 8 -95 752 1237134 e1d2 h8e8 h1e1 e7c5 h2h4 c5f5 f2f4 c8b8 395410 <first : 9 -96 1686 2671792 e1d2 g4f3 h1e1 e7c5 d2c1 c5h5 h2h4 h8e8 c1d2
 

משבצות

New member
ל-aaa123

שיחקתי נגד התוכנה שלך כאשר אני בלבן 1.ד4 ו5 2. ה4 ו:ה 3.פג3 פו6 4.רז5 ד5?? 5.ר:ו6 ה:ו 6.מהח5+ מה7 וניצחתי די בקלות. ממשחק אחד רואים שהחלק הבעייתי הוא בפתיחה.
 

aaa123

Member
באיזה מחשב שיחקת?

ממה שאני רואה היא בוחרת במסע ד5 רק בעומקים נמוכים ובכל קצב סביר על מחשב לא איטי במיוחד (פנטיום850 הוא המחשב בו אני משתמש) היא לא תעשה את הטעות ד5. התוכנית המקורית שלה היתה לשחק ז6 ולא מ-ה7 והיא ראתה מאוחר מדי שז6 מפסיד רגלי בגלל שאחרי מה:ד5 וחילופי מלכות יש מזלג והפרש מאיים על 2 רגלים. הגירסה האחרונה שלי היא פחות חומרנית ,ומעריכה יותר ניידות של הכלים כך שהיא בכל זאת תשחק את המסע ז6.
 

aaa123

Member
עוד על דירוג של תוכנות בשחמט

בדירוג הזה crafty וpepito מובילות לפני yace אבל אין הרבה משחקים ודברים יכולים להשתנות אם יהיו יותר משחקים. הקישור האחרון הוא מתחרות בה המשחקים האחרונים הם של הגירסה האחרונה ,ושם Movei מדורגת במקום ה54 מתוך 154 והיא הרוויחה מד כושר מהתיקו האחרון 2-2 עם Ant.
 

Cobra258

New member
תגובה

שלום לכולם! לדעתי,הידע של מתכנת בשחמט חשוב ביותר,כי בסה"כ מה מתכנת תוכנת שחמט עושה? הוא "מלמד" את התוכנה שלו כל מיני מצבים שעלולים לקרות.לדעתי כל מתכנת יכול לבנות תוכנת שחמט מצוינת רק אם הוא יהיה שחקן ממש מוכשר בשחמט ויכיר הרבה הרבה מצבי משחק. האם אני טועה?
 

aaa123

Member
אתה בהחלט טועה

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