בינה מלכותית של גו

imdark

New member
בינה מלכותית של גו

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

wbadger

New member
בהצלחה

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

imdark

New member
אז ככה

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

mythical

New member
אתה בנאדם מצחיק

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

imdark

New member
אתה לא יודע הרבה על תכנות נכון?

אז לידעתך אין שום צורך ביכולת כתיבה מדויקת וחסרת שגיעות כתיב או תחביר מוכר בתכנות דוגמה: אני רוצה להצהיר למחשב שמשחק על השורה ה ראשונה הוא כמעט אסור if(plyx==1||plyy==1){ worth-=bworthless}; לא היה לי שום צורך ביכולת שכתוב או כתיבה חוץ מאשר הקרת התחביר המיוחס לשפה הזו וחשיבה הגיונית לימדתי ילדים בכיתה ד לתכנת בלי כמעט שום ידע באנגלית
 

wbadger

New member
אני חושב שאתה קצת מתבלבל

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

LeCagot

New member
קצת סדר בבלאגן ../images/Emo13.gif

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

imdark

New member
למדתי על בינות

באצמי עוד בכיתה ד אני לוקח השנה גם MCAD שבכלל יעזור לי בקשר לידע באנגלית אני מסביר לך שלימדתי ילדים בעלי ידע ממש מועט באנגלית תכנות OOP והם קלטו את זה די בקלות וקצב הלימוד שלי לא היה הכי קל בעולם בשבועיים לימדתי משתנים וסוגי משתנים IF ואפילו לולאות פשוטות(FOR) עם כמה אפילו נכנסתי קצת לAPI (בלי רקורסיה כמובן בגלל שזה לא נושא קל אבל כן שילבנו לולאות ומשחקים עם משתנים) כפרויקטים סופיים בינה לא נחשבת בינה מלכותית עם אין לה בסיס נתונים הקולט ושומר מידע מעבד אותו ומוציא פלט בהתאם למידע שמור אחר לא אמרתי לעולם אלא רק הדגמתי לך סקריפט שעובד (למרות שיש לי טעות שם זה צריך להיות גם עם X19 ו Y19 וגם אז חלק מזה קצת מיותר) ולא צריך ידע בתחביר או ידע גדול באנגלית כדי לכתוב אותו חוץ מזה יש גם שפות תכנות בעיברית DOT היא דוגמה ישנה PROLOG שפה אשר תורגמה ועוד כמה שפות סקריפט
 

Ryuusuke

New member
בתור מתכנת לשעבר, אני מוכרח לשאול..

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

Alkhimey

New member
כבר אין C ו PASCAL בבתי ספר

מהשנה השפות המיושנות הוחלפו ב C++ ו JAVA.
 

wbadger

New member
....

ללמוד בעצמך - זה עובד לחלק מהאנשים, וזה מרחיב את הידע, אבל לא מגיעים עם זה כל כך רחוק, ובטח לא לבנות תכנה שתהיה טובה בגו. MCAD... לא ידעתי מה זה קודם... The Microsoft Certified Application Developer (MCAD) credential provides industry recognition for professional developers who build powerful applications using Microsoft Visual Studio .NET and Web services on the Microsoft .NET Framework 1.0 and Microsoft .NET Framework 1.1. מסתבר שזה אומר שמייקרוסופט חושבים שאתה יכול לפתח תכנות ל VS.NET... אבל אין לזה קשר בכלל לבינה מלאכותית. בקשר לזה שלימדת ילדים שאין להם ידע באנגלית את הבסיס של הבסיס של תכנות - טוב אז כל הכבוד... אבל לתכנת קצת בVB לא מתקרב ללפתח אלגוריתמים לבינה מלאכותית.. נכון שלא היה צריך ידע נרחב באנגלית\תחביר כדי לכתוב מה שכתבת אבל הדוגמה פה לא היתה דוגמה טובה לקוד של בינה מלאכותית.. השפות תכנות בעברית - מצטער לא שמעתי על DOT.. אם אתה מדבר על dot.net אז לא נראה לי שזה בעברית ולמעשה אני לא מחבב את זה כל כך וזה לא נועד לבינה מלאכותית... היישום של פרולוג בעברית הוא בהחלט לא מושלם, ולא נראה לי שאף אחד רוצה להמשיך את מה שהתחילו מכון וייצמן לעשות.
 

imdark

New member
זה לא נושא הפורום

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

Alkhimey

New member
--->

מכל הדברים המבולבלים שאמרת, הבנתי שאתה מתכוון לרשת ניורונים. רשת ניורונים לא תוכל "לעמוד" לבד ולכן אני ממליץ לקראו קצת על אלגוריתם MIN-MAX. תוכל להתחיל מכאן:http://archive.computerhistory.org/projects/chess/related_materials/text/2-0%20and%202-1.Programming_a_computer_for_playing_chess.shannon/2-0%20and%202-1.Programming_a_computer_for_playing_chess.shannon.062303002.pdf . אחר כך אני ממליץ לחפש עוד חומר על האלגוריתם הזה ועוד חומר על ALPHA-BETA PRUNING, TRANSPORTATION TABLES ולבסוף כשתבנה מערכת שמשחק גו תוכל להכניס רשת ניורונים לפונקציה שמעריכה את העמדה. בויקפדיה (האנגלית) יש הרבה חומר וקישורים בנושא, ולכל מאמר יש קישורים למאמרים חיצוניים ומאמרים נוספים בנושא. דרך אגב, נראה לי שבגוגל גרופס (קבוצות דיון של גוגל) יש קבוצה של גו מחשבים (כמובן באנגלית), אנגלית זה הדבר הכי חשוב בתכנות, אולי מישהוא שלא יודע אנגלית יבין מה זה לולאה, אבל הוא לא יוכל לקראו ולהבין קודים שאחרים כתבו (איך למשל יבדיל בין פקודה של השפה לשם משתנה [אלה אם כן ילמד את כל הפקודות בעל פה שזה חסר טעם]), כמו כן לא יוכל להתעדכן בגילויים חדשים או לקראו מאמרים. גם אני מאחל לך בהצלחה.
 

Alkhimey

New member
מי? אני?

למה אתה חושב שאני אבוד? ודרך אגב, התבלבלתי ובמקום TRANSPORTATION TABLES צריך להיות TRANSPOSITION TABLES
 
למעלה