بخشی از مقاله
ربوكاپ
چكيده ـ ربوكاپ، تلاشي است در زمينه پروراندن تحقيقات هوش مصنوعي و هوش روباتها، كه از طريق تعريف يك مسئله استاندارد و حل آن توسط محققين متعدد در كشورهاي مختلف دنبال ميشود. به همين منظور، براي چنين مسالهاي بازي فوتبال درنظر گرفته شده است. بازي فوتبال صرفاً بعنوان يك محيط ديناميك و پويا براي آزمايش كردن نتايج حاصل از اين تحقيقات انتخاب شده و هدف از اين تحقيقات به هيچ وجه صرفاً انجام بازي فوتبال بين روباتها نميباشد بلكه استفاده از ويژگيهاي خاص بازي فوتبال براي پياده سازي روشها و آزمايشات در يك كار تيمي و گروهي بين چند روبات هوشمند و متحرك است.
روباتهاي فوتباليست، آدمكهاي هوشمند كامپيوتري هستند كه ميتوانند از طريق برنامه هوشمندي كه به آنها داده ميشود بطور خودكار در زمين فوتبال بازي كنند. بعبارت ديگر، روباتها از راه دور كنترل نميشوند. هدف تحقيقات در روباتهاي فوتباليست، پژوهشِ و فنآوري نوين در زمينههاي هوش مصنوعي و روباتهاي هوشمند متحرك است.
كليد واژه ـ روبوكاپ ، شبيه ساز ، كارگزار ، عامل
1- مقدمه
سال 1997، در تاریخ هوش مصنوعی، به عنوان یک نقطه عطف تاریخی همواره به خاطر خواهد ماند. در ماه May این سال کامپیوتر Deep Blue شرکت IBM موفق شد که قهرمان شطرنج جهان را شکست دهد و این نتیجه 40 سال تلاش در جامعه پژوهشگران هوش مصنوعی بود. در چهارم July سال 1997 سفینه Pathfinder توانست برای اولین بار در تاریخ بشر، بر سطح مریخ بنشیند و اولین روبات کاملا هوشمند ساخت بشر (Sojourner) را با موفقیت بر سطح مریخ پیاده نماید.
همزمان با این موفقیت ها، RoboCup نخستین گامهایش را به سوی ساخت یک تیم فوتبال، متشکل از روباتهای کاملا هوشمند فوتبالیست که بتواند بر قهرمان جهان پیروز شود، آغاز نمود.
ایده روباتهای فوتبالیست، اولین بار توسط پروفسور آلن مک ورث (Alan Acworth)، استاد دانشگاه British Columbia کشور کانادا در مقاله ای با عنوان "On Seeing Robots" مطرح گرديد. یک گروه از محققین ژاپنی نیز بطور مستقل کارگاهی آموزشی در کنار همایش Grand Challenges in Artificial Intelligence که در اکتبر 1992 در توکیو برگزار ميشد راه اندازی کردند. این کارگاه در پایان به بحثهاي جدی ای پیرامون استفاده از محیط بازی فوتبال برای ارتقا دانش و تکنولوژی منجر شد. یک مجموعه از تحقیقات انجام شد که از جمله آنها ميتوان به امکانسنجی تکنولوژیک، امکانسنجی مالی و. .. اشاره نمود. به همراه این تحقیقات یک نسخه اولیه از قوانین بازیها و نسخه اولیه شبیه ساز بازی فوتبال آماده گردید.
نتایج این تحقیقات و پروژهها این بود، که گروه مجریان آنها به این نتیجه رسید که انجام چنین پروژه ای ممکن است. در سال 1993 یک گروه از محققین به نامهای Minoru Asada، Yasu Kuniyoshi و Hiroaki Kitano تصمیم به راه اندازی یک دوره مسابقات رباتیک گرفتند که موقتا آن را Robot J-league نام نهادند. (J-League نام مسابقات لیگ حرفه ای فوتبال ژاپن است، که در آن سالها به تازگی آغاز شده بود.). در فاصله کمتر از یک ماه، درخواستهاي متعددی از گروههاي تحقیقاتی
خارج از ژاپن به گروه برگزارکنندگان رسید که تقاضای حضور در این مسابقات را داشتند و پیشنهاد میکردند که این پروژه به یک پروژه بین المللی تبدیل شود. و چنین بود که این مسابقات به نام "Robot World Cup Initiative" و بطور خلاصه "RoboCup" نام گرفت. همزمان با این بحث ها، محققین زیادی ازقبل مشغول فعالیت بر سیستمهاي هوش مصنوعی و روباتیکی بودند که در محیط فوتبال به تعامل با محیط ميپرداختند. به عنوان نمونه ميتوان به Itsuki Noda اشاره نمود که در ETL Electro Technical Lab، که یک موسسه تحقیقاتی دولتی در ژاپن است در زمینه
سیستمهاي چند هوشمنده (Multi-agent) در محیط فوتبال به تحقیقات ميپرداخت، و شروع به تهیه و توسعه یک شبیه ساز فوتبال ویژه این کار نموده بود. همزمان و بطور مستقل، پروفسور Minoru Asada در دانشگاه ازاکا (Osaka) و خانم پروفسور Veloso Manuela و دانشجوی او Peter Stone در دانشگاه کارنگی ملون (Carnegie Melon) روی رباتهایی کار ميکردند که فوتبال بازی میکنند. این افراد را ميتوان پیشروان راه RoboCup نامید و بدون حضور آنها ميتوان به طور قطع ویقین اعلام نمود که راه RoboCup آغاز نمی شد.
در ماه سپتامبر 1993 اولین اعلان عمومی انجام گردید و مقررات ویژه ای نیز به صورت پیش نویس آماده شد. عطف به آنها، بحثها و مناظرههاي بسیاری درباره تشکیلات و مباحث فنی برگزاری چنین تورنمنت ویژه ای در کنفرانسها و کارگاههای متعددی که در این زمینه برگزار شده بود، انجام شد. از جمله آنها ميتوان به AAAI-94 و سمپوزیوم JSAI و جلسات مختلف جامعه رباتیک اشاره نمود. در همین اوضاع و احوال بود که تیم Noda در ETL اولین نسخه شبیه ساز فوتبال را از طریق Web منتشر ساخت. Soccer Server Ver.0 که با زبان LISP تهیه شده بود به همراه Soccer Server Ver.1.0 که با C++ آماده گردیده بود، در این مجموعه قرار داشت. اولین نمایش عمومی این شبیه ساز در سال 1995 در همایش IJCAI انجام گرفت. در همایش Artificial Intelligence ،JCAI-95 International Joint Conference on که در مونترآل کشور کانادا در ماه آگوست 1995 برگزار شده بود، اعلان عمومی جهت برگزاری اولین دوره کنفرانس و مسابقات جهانی فوتبال روباتها همزمان با IJCAI-97 در شهر ناگویا (Nagoya) انجام شد. همزمان تصمیم گرفته شد که مسابقاتی تحت عنوان Pre-RoboCup-96 برای شناخت مسایل و مشکلات احتمالی برگزاری RoboCup در
ابعاد بزرگ، برگزار شود. با این تصمیم عملا 2 سال تا برگزاری مسابقات اصلی، زمان بود تا محققین برای ساخت روباتهای خود اقدام نمایند و همچنین زمان کافی برای جمع آوری کمکهاي مالی برای انجام پروژه بزرگ خود داشته باشند. Pre-RoboCup-96 همزمان با کنفرانس بین المللی روباتیک و سیستمهاي هوشمند (IROS-96)، در تاریخ 4 تا 8 نوامبر سال 1996 در شهر ازاکا (Osaka) با شرکت 8 تیم شرکت کننده در لیگ شبیه سازی و نمایش رباتهای واقعی لیگ رباتهای متوسط
(Middle Size) برگزار گردید. با در نظر گرفتن ابعاد محدود آن، این مسابقات را ميتوان اولین اقدام جدی برای ارتقاء تحقیقات و آموزش با استفاده از محیط فوتبال در نظر گرفت. اولین دوره مسابقات و کنفرانس رسمی RoboCup در سال 1997 با موفقیت تمام شد. بیش از 40 تیم شرکت کننده (در هر دو رشته رباتهای واقعی و شبیه سازی)، و بیش از 5000 بازدیدکننده حضور داشتند. پیش بینی میشد که در RoboCup-98 نزدیک به 100 تیم شرکت کنند و بزرگترین رباتهای متحرک در طول
2- اهداف ربوکاپ
فدراسيون جهاني روبوکاپ اهداف و جداول زماني خاصي را براي انجام تحقيقات در اين زمينه مشخص کرده است. همانطور که فضانوردان هدف اوليه خود را رساندن انسان به سطح کره ماه و سپس سالم بازگرداندن او به زمين عنوان کرده بودند، در حالي که هدف اصلي آنان اين نبود، بلکه هدف، پيشرفت کلي در زمينه فضانوردي جهان بود. بزرگترين هدف روبوکاپ نيز پيشبرد سطح فني جامعه جهاني ميباشد، و به عنوان هدفي اوليه:
در ميانه قرن بيست و يکم (در سال 2050 ميلادي) يک تيم متشکل از روباتهاي فوتباليست شبيه انسان، در مسابقهاي واقعي و با رعايت قوانين فيفا، تيم قهرمان جام جهاني را شکست خواهد داد.
گرچه در حين مسابقات جهاني سال گذشته با توجه به پيشرفتهاي فوق العاده صورت گرفته، زمان تحقق اين وعده بطور رسمي از سال 2050 به 2030 کاهش يافت، ولي حتي اگر تا آن زمان نيز به هدف فوق نرسيم، همانگونه که در ساليان اخير شاهد بوده ايم و يقينا با سرعتي بمراتب افزونتر، شاهد پيشرفتهاي شگرفي خواهيم بود. با توجه به اين اهداف، ليگهاي مختلفي در روبوکاپ تشکيل شدهاند که هريک روي زمينههاي مشخصي از هوش مصنوعي تاکيد دارند. مسابقات جام جهاني روبوکاپ در هفت ليگ زير انجام ميشود :
1. ليگ روباتهاي اندازه متوسط (Middle Size)
2. ليگ شبيه سازي (Simulation)
3. ليگ روباتهاي اندازه كوچك (Small Size)
4. ليگ روباتهاي امدادگر (Rescue)
5. ليگ شبيه سازي امداد (Rescue Simulation)
6. ليگ روباتهاي آدمواره (Humanoid)
7. ليگ سگهاي سوني (Sony Dogs)
ليگ شبيهسازي ربوكاپ بر مبناي يك شبيه ساز به نام Soccer Server بنا شده است كه وظيفة شبيهسازي بازي فوتبال را بين برنامههاي كامپيوتري تهيه شده از طرف دو تيم برعهده دارد. بازي بانشان دادن خطوط، ميدان، بازيكنان، توپ و غيره توسط يك برنامة ديگربه نامMonitor به صورت بصـري درميآيد. در واقع وظيفة برنامة Monitor نمايش دادن آن چيزي است كه واقعاً بين برنامهها و در حافظــة برنامــه Soccer Server در جريان است. برنامة Soccer Server طوري نوشته شده
است كه شبيهسازي يك مسابقه فوتبال را براي بازيكنان دو تيم به صورت توزيع شده روي
شبكه انجام دهد. در واقع هر تيم متشكل از 11 برنامه كامپيوتري است كه به صورت مستقل اجرا شده و به سرور وصل ميشوند و هر برنامه با استفاده از اطلاعاتي كه از سرور دريافت ميكند (مانند اطلاعات بينايي، شنوايي، احساسي) بايدموقعيت خود و ساير بازيكنان (چه هم تيمي چه غير هم تيمي) را در زمين تشخيص بدهد و براي كسب نتيجة بهتر تلاش كند و از خود واكنش نشان دهد نكتة مهم در شبيهسازي روباتهاي فوتباليست آن است كه اولاً برنامههاي بازيكنان به صورت مجزا اجرا ميشوند و داراي كنترل نميباشند و بنابراين اين مسأله جزء يكي از مسايل شبيهسازي سيستمهاي Multi Agent قرار ميگيرد. همچنين براي واقعيتر كردن و دشوارتر كردن مسأله همواره اطلاعاتي كه بازيكنان از سرور دريافت ميكنند همراه با مقداري خطا (Noise) خواهد بودكه باعث ميشود شبيهسازي بازي به رقابتهاي واقعي نزديكتر شود. همچنين توانايي تصميم گيري بلادرنگ يكي ديگر از ويژگيهاي بارزي است كه برنامههاي شبيه ساز بايد دارا باشند. براي حل اين مسأله محققان از سرتاسر دنيا بايد برنامههايي را به صورت يك تيم براي انجام بازي تهيه كنندكه براي اين منظور تكنيكهاي مختلف را در زمينه هوش مصنوعي، شبيهسازي و. .. ميتواند به كار بسته ميشود. زمينههاي تحقيقاتي درگير در اين مسأله مديريت كردن مسايل مربوط به روباتها از قبيل شناخت موجودات (Object Recognition)، برقراري ارتباط بين روباتها (Communication) و شبيهسازي وسايل سخت افزاري مانند حركت روباتها ميباشد. همچنين مسايل سطح بالاتري چون آموزش (Learning)، هم كاري (Co-operation)، بهينه سازي و تصميم گيري بلادرنگ نيز دراين مسأله
(شبيهسازي فوتبال بين روباتها) درگير ميشود. اولين دورة مسابقات شبيهسازي روباتهاي فوتباليست در سال 96 در ژاپن برگزار شد كه تيم دانشگاه توكيو اول شد در مسابقات سال 97 تيم دانشگاه هامبولت مقام اول را به دست آورد. در سال 98 و 99 تيم دانشگاه كارني ملون از آمريكا و در سال 2000 يك تيم از پرتغال مقام اول را كسب كرد.
3- مسابقات روبوكاپ چيست؟
مسابقات روبوكاپ يك رويداد بين المللي براي توسعه علوم رباتيك، هوش مصنوعي و ساير زمينههاي مرتبط است. اين مسابقات در دو بخش رباتهاي واقعي و شبيه سازي ( Simulation) رباتها برگزار ميگردد. درابتدا ليگ شبيه سازي آنچنان به مسابقات واقعي نزديك نبود و داراي سطح هوشمندي كمتري بوداما در حال حاضر سعي شده است كه با استفاده از نزديكتر كردن محيط شبيه سازي شده به محيط واقعي و نيز در نظر گرفتن رفتار( Dynamics ) واقعي و محدوديتهاي سخت افزاري سنسورها وعملگرها در حين مدل سازي، شباهت رباتهاي شبيه سازي شده به رباتهاي واقعي خيلي بيشتر گشته و امكان بكارگيري مستقيم الگوريتمهاي شبيه سازي شده بر روي ربات واقعي فراهم شده است.
3-1- ليگهاي شبيه سازي :
1. ليگ شبيه سازي امداد
2. ليگ شبيه سازي فوتبال
4- ربات چیست؟
ربات یک سیستم فیزیکی است که در کلی ترین حالت برای انجام یک سری از وظاف طراحی می شود امروزه سعی برآن است که کنترل ربات، خودکار باشد (Automatic) اما هدف والاترآن است که بتوان خود مختاری (Autonomy) درربات ایجاد کرد.برای این کار باالهام ازموجودات زنده درمی یابیم که می بایست هوش را در ماشین به وجود آورد که این اساس هوش مصنوعی است. در این راستا از نیمه های قرن گذشته فعالیت های تحقیقاتی زیادی در این زمینه انجام شده است که ازچندین سال قبل مسابقات متعددی درسراسر دنیا این مهم را پیگیری می کنند معروف ترین آن مسابقات ربوکاپ است.
4-1- انواع روبات
1. از ديد كنترل :
الف- Tele operation (كنترل از راه دور توسط انسان):
ب- Self-Controlled (خود كنترل): كه از
لحاظ درجه ي هوشمندي (Degree Of Autonomy) به دو دسته ي زير تقسيم مي شوند:
Mind-less : اين روبات ها كارهاي تكراري (repetitive) را انجام مي دهند.
Intelligent: اين روبات ها هوشمند هستند و با عدم قطعيت (uncertainty) مقابله مي كنند.
2. از ديد فيزيكي و مكانيكي (تحرك پذيري)
الف- روباتهای ثابت (manipulator or industrial robots)
ب- روباتهاي متحرك (mobile robots)
4- شبیهسازی فوتبال در رایانه يا Soccer Simulation.
Soccer simulation همانند بازیهای رایانهای فوتبال ميباشد بااین تفاوت که عامل انساني وظيفه كنترل را بر عهده نداشته وتمام كنترل به صورت خودكار وحتي خود مختار ميباشد. لذا طراح برنامه ميبايست درحين طراحي، هوشمندي لازم را در سيستم ايجاد كند وحتي قابليت يادگيري را به سيستم بيفزايد. در هر حال سيستم ميبايست قابليت مقابله با عدم قطعيتهاي موجود درمحيط را داشته باشد. Soccer simulation يكي اززمينه هايي است كه پيش بيني شده تا سال 2050 يك تيم كاملا هوشمند از رباتها در مقابل يك تيم واقعي ازانسانها دريك مسابقه ي فوتبال به رقابت بپردازند.
5- روباتهاي فوتباليست
مي دانيم که براي انجام هر کار ي بايد هدف و مقصودي وجود داشته باشد . اگر هدفمان را از انجام کاري در نظر بگيريم مسلماً همه تلاش و کوشش ما در راه تحقق آن هدف خواهد بود. شايد اين سوال پيش آمده باشد که هدف از ساخت روباتهاي فوتباليست چيست ؟ در جواب بايدگفت که در سال 2050 قراراست که يک مسابقه جهاني فوتبال برگزار بشود تنها دو تيم در اين مسابقه شرکت دارند.
1- تيم قهرمان مسابقات جام جهاني فوتبال سال 2050
2- يک تيم از روباتهاي فوتباليست
ماجرا از اين قراراست که در سال 1997 مهندسين کامپيوتر بخصوص مهندسين چيني گفتند که چرا هدفي براي رشته کامپيوتر در نظر گرفته نشده است ؟ پس از
بحث و. .. آنها برگزاري يک مسابقه فوتبال بين انسان و روبات در سال 2050 را بعنوان هدف بزرگ خود قرار دادند. از آن سال به بعد (1997)هر سال مسابقات جهاني robocup برگزار ميشود. در سال اول تيم کشور ژاپن اول شد (مسابقه آن سال به مسابقات اسکا معروف بود. )
در سال بعد يعني سال 1998 همزمان با مسابقات جام جهاني فرانسه مسابقات جام جهاني robocup در پاريس هم برگزار شد.
نتايج بدست آمده توسط مسابقات فوتبال روباتها خيلي بهتر از نتايج سال پيش بود و اين نشان از پيشرفت در راه تحقق هدف و روزنه اميدي بود. براي رسيدن به اين هدف محققان در دو دسته فعاليت ميکنند:
1- محققاني که روي نرم افزار يا هوش روباتها کار ميکنند.
2 - محققاني که روي سخت افزار يا قسمت فيزيکي روباتها کار ميکنند.
يک انسان يکسري وروديها و اطلاعات دارد که آنها را ازمحيط اطراف(environment) دريافت ميکند و بر اساس آنها فعاليت ميکند. يک روبات هم بايد بتواند مثل يک انسان وروديهاي محيط اطرافش را بگيرد.روبات با استفاده از يکسری سنسور ميتواند محیط اطرافش را ببيند که توسط برنامهاي که ما برای آن مينويسيم محدوده ديدش را مشخص ميکنيم. (روبات جزآن محدوده ازاويه ديد مشخص شده جايي ديگر را نمي بيند ) سنسور روبات مثل سنسور هوش ماست چون بعداً ميخواهيم هوش اين روبات را روي سخت افزار پياده کنيم. بنابرين هوش اين روبات بايد مثل هوش ما آدمها باشد. دو نوع برنامه نویسی براي يک روبات فوتباليست داريم :
اکثر روباتهاي soccer simulation در کشور ما هوشمند نيستند يعني در طي بازي، اين برنامه ماست که به روبات ميگوید مثلاً برو سمت چپ زمين و توپ رو بگير و گل بزن نه خود agent. یا اینکه در طي بازي روبات فقط اين را ميداند که بايد برود طرف دروازه حريف و بعد شوت کند بطرف دروازه. و دروازه بان هم فقط ميداندکه اگه ديد يک بازيکن حریف در حال نزدیک شدن به دروازه است او باید بطرفش برود و سعي کند توپ را از بازیکن بگيرد. به اين نوع برنامه نويسي براي روبات هوش مصنوعي ياActivantor (AI ) ميگویند.
6- روبات هوشمند Intelligent Robot))
6-1- هوشمندی Intelligent))
توانایی سیستم است برای اینکه در یک محیط نامشخص (غیر قابل پیش بینی) متناسب عمل کند، یعنی بتواند به آن هدفی که ما برای آن مشخص کرده ایم برسد. یک تعریف کلی از روبات هوشمند عبارت است از:
" یک ماشین قابل برنامه ریزی که بتواند عمل یک موجود هوشمند نظیر انسان را تقلید کند."
در هوشمندی دو دیدگاه وجود دارد :
1. انتقال دانش (Knowledge ) : یعنی ما دانش خودمان را به ربات ميدهیم.
2. یادگیری ماشین (Machine Learning ) :در اینجا انسان هیچ دانشی به روبات نمی دهد و روبات خود با جریمه شدن کار درست را یاد ميگیرد و پییشرفت ميکند.
6-2- معيارهاي هوشمندي
یک تعریف کلی از روبات هوشمند از زبان Albus عبارت است از:
هوشمندي توانايي يك سيستم براي درست عمل كردن در يك محيط غير قطعي است به طوريكه درست عمل كردن، عملي است كه احتمال موفقيت را افزايش دهد و موفقيت يعني رسيدن به زير هدف هاي رفتاري كه هدف نهايي سيستم را تضمين مي نمايد.
6-3- استفاده از هوش مصنوعي
- هوش مصنوعی
در شبکه ارتباطی مغز انسانها سیگنالهای ارتباطی به صورت پالسهای الکتریکی هستند.جزء اصلی مغز نرون است که از یک ساختمان سلولی و مجموعه ای از شیارها و خطوط تشکیل شده و شیارها محل ورود اطلاعات به نرون هستند وخطوط محل خروج اطلاعات از نرون اند . نقطه اتصال یک نرون به نرون دیگر را سیناپس می نامند که مانند دروازه یا کلید عمل مي کنند. گر واکنشهایی که میلیونها نرون مختلف به پالسهای متفاوت نشان میدهند با یکدیگر هماهنگ باشند ممکن است پدیده های مهمی در مغز رخ دهد.
آندسته از پژوهشگران هوش مصنوعی که رویکرد مدل مغزی را دنبال می کنند گونه ای از مدارهای الکتریکی را طراحی کرده اند که تا حدی شبکه مغز را شبیه سازی میکند در این روش هر گره(نرون) به تنهایی یک پردازنده است ولی رایانه های معمولی حداکثرچند cpuدارند هدف عمده کامپیوتر شبکه عصبی این است که مکانیسمی طراحی کند که همانند مغز انسان بازخورد مثبت یاد بگیرد پاسخهای درست و نادرست کدامند. سیستم شبکه عصبی این کار را از طریق ارزشگذاری کمی برای ارتباطات سیگنالها بین نرونها انجام میدهد مکانیسم ارزشگذاری توسط مقاومتها با تقویت یا تضعیف پالسها انجام میشود.چون شبکه های عصبی میلیونها نرون دارند خرابی تعدادی از آنها تاثیر چندانی برعملکرد سیستم نمی گذارد تا کنون چند سیستم آزمایشی ب
ا استفاده از این اصول طراحی و ساخته شده اند مثلاًدر
بررسی های زیست محیطی، شبکه های عصبی برای جمع آوری و تحلیل اطلاعاتی که از راه دور حس شده اند مورد استفاده قرار می گیرند اطلاعاتی که اغلب سفینه ها مخابره می کنند بسیار حجیم است.شبکه های عصبی این اطلاعات را به راحتی دسته بندی کرده وپس از جمع آوری اطلاعات ذهنی و تجسمی نتایج جالبی به دست می آورند (مثلاًتشخیص انواع خاصی از ابرها) البته این فرایند با آنچه سیستم های خبره انجام می دهند متفاوت است زیرا این سیستم ها ابزارهای تصمیم سازی هستند و می توانند حجم زیادی از اطلاعات
را به سرعت تحلیل کنند شبکه های عصبی برای مدل سازی فرایندهای فکری-مغزی که
زمینه ی دیگری برای مطالعات حساس به اطلاعات و پیچیدگی است مورد استفاده قرار گرفته است .
هوش مصنوعی هنوز راه درازی در پیش دارد؛شبکه سازی عصبی (که با اغماض ارتباط گرایی هم نامیده می شود)در سالهای اخیر تغییرات عمده ای را شاهد بوده است .به عنوان نمونه برخی پژوهشگران پیش بینی میکنند به کمک تکنولوژی نرم افزاری جدید شبکه های عصبی با کامپیوترهای شخصی ترتیب داده خواهند شد و پیش بینی بازار سهام را ممکن خواهند کرد افرادی که درباره ی هوش مصنوعی وتوانایی های آن مرددند اظهار می دارند اگر هوش مصنوعی محقق شود ناچار است از دنیای منطقی،قانونمند ونمادین کامپیوترهای دیجیتال خارج شوند و به دنیای مبهم (حاصل از منطق فازی)شبکه های عصبی که مبتنی بر سیستم گسترده ی یاد گیری بازخوردی هستند پا بگذارد .
امروزه نگرش تازه ای نسبت به هوش مصنوعی ایجاد شده است که در بسیاری از آزمایشگاهها تحت بررسی است :دانشمندان سعی می کنند دریابند آیا با مجموعه ای از روباتهای نیمه هوشمندمی توان یک هوش جمعی ایجاد کنند به گونه ای که از اعضای تشکیل دهنده اش باهوش تر باشد.
روباتیک یکی از مهمترین زمینه های استفاده عملی از تکنیک های هوش مصنوعی است.
در واقع یک روبات هوشمند برای انجام اعمال هوشمندانه خود ناگزیر است بسیاری از این روش ها را به خدمت بگیرد:
Learning، ( یادگیری)
Planning، (برنامه ریزی)
Logic and Reasoning (منطق و استدلال (
Problem Solving، (حل مسائل (Learning
Knowledge Representation، (بازنمایی دانش)
Computer Vision (بینایی ماشین)
Search ( جستجو)
Natural Language Processing (سطح پردازش بالا)
در اين طرح ما سعي كرده ايم حتي الامكان از اكثر تكنيك هاي فوق در جهت افزايش هوشمندي ربات استفاده شود كه هدف اساسي تيم طراحي وساخت ربات هاي هوشمند مطابق با روش هاي روز دنياست.
6-4- ارتباط هوشمندانه (Communicatio) وهمكاري هوشمندانه (Cooperation )
از آنجا كه با يك محيط چند عاملي در Soccer Simulation مواجه هستيم استفاده موثر از تكنيك هاي موجود در زمينه Multiagent Systems مي تواند بسيار راه گشا بوده و عملكرد سيستم را به شدت ارتقاء بخشد از مهمترين مسائل در زمينه سيستمهاي چند عاملي ارتباط و همكاري بين عامل هاست كه مي بايست كاملا هوشمندانه باشد. ما سعي كرديم با استفاده از اين دو تكنيك ، محيطي را فراهم آوريم كه نيازي به هوشمندي بالاي فردي براي تك تك عامل ها وجود ندارد در حاليكه با بوجود آوردن ارتباطي سالم وهوشمند بين اين عامل ها مي توا نيم يك جامعه هوشمند تشكيل دهيم . همانند كلوني مورچه ها.
6-5- ايجاد عامل هاي منطقي
اين عامل ها از قدرت منطق واستدلال برخوردارند كه برای ایجاد آنها از منطق های مختلفي مي توان استفاده كرد .البته تاكنون ا كثر تيم ها از منطق كلاسيك و شيوه هاي Hard Computing استفاده كرده اند،
ولي ما سعي كرده ايم كه از شيوه هاي Soft Computing و در نتيجه از منطق فازي Fuzzy Logic) ) جهت ايجاد عاملهاي منطقي استفاده كنيم.
هدف ما انتقال هوشمندي و ذكاوت موجود در يك تيم فوتبال واقعي به ماشين مي باشد. لذا رفتار يك فوتباليست واقعي را با استفاده از منطق فازي براي عامل هايمان مدل سازي كرده ايم که این یکی از مهمترین نقاط قوت تیم ماست. از مزاياي به كار بردن منطق فازي ، انعطاف پذيري زياد در تصميم گيري تحت عدم قطعيت بالا وعكس العمل مناسب تحت شرايط از پيش تعيين نشده مي باشد.
6-6- یادگیری در روبات
گرچه روباتهائی مثل ASIMO کارهای شگفت انگیزی میکنند اما قادربه داشتن قابليت يادگيري نیستند .
یک روبات باید بتواند در تعامل با محیط و در اثر تجربه یادگیری نماید
6-6-1- تعريف يادگيري
تعريفهاي گوناگوني كه درباره يادگيري انجام گرفته نشان ميدهند كه هنوز تعريف جامع و يكدستي كه براي همه روانشناسان با نظريههاي مختلف پذيرفتني باشد به دست نيامده است. اما بسياري از روانشناسان و پرورشكاران معتقدند كه « يادگيري تغييري است كه بر اثر تجربه يا آموزش در رفتار موجود زنده پديد ميآيد ». در اين تعريف مهمترين واژهاي كه نظر را به خود جلب ميكند واژه تغيير است. زيرا رفتار فرد درزماني كه چيزي نياموخته با زماني كه آن چيز را،آموخته است تفاوت دارد.
واژه مهم ديگر رفتار است. زيرا تغيير رفتار با ابعاد بدني مانند طول و عرض و قد و وزن بدني ارتباط ندارد، بلكه بيشتر معلوم يادگيري است، نه دگرگونيهاي بدني.
6-6-2- روش های یادگیری(Learning):
1. یادگیری با ناظر(Supervised )
2. یادگیری تقویتی (Reinforcement)
3. یادگیری بدون ناظر (Unsupervised)
1. Supervised Learning ( یادگیری با ناظر):
اگر در یادگیری دقیقا به عامل آن چیز را که قرار است یاد بگیرد گفته شود و عامل بتواند خطای یادگیری خود را بدست آورد این یادگیری را با ناظر می گوییم .
2. Learning Reinforcement (یادگیری تقویتی): در یک مسئله یادگیری تقویتی، با عاملی روبرو هستیم که از طریق سعی و خطا با محیط تعامل کرده و یاد می گیرد تا عملی بهینه را برای رسیدن به هدف انتخاب نماید.
عامل، خطای یادگیری را به طور دقیق ندارد اما اطلاعات اندکی در مورد کیفیت آن به صورت پاداش(Reward) و تنبیه (Planty ) دریافت می کند
یادگیری تقویتی از اینرو مورد توجه است که راهی برای آموزش عاملها برای انجام یک عمل از طریق دادن پاداش و تنبیه است بدون اینکه لازم باشد نحوه انجام عمل را برای عامل مشخص نمائیم.
دو استراتژی اصلی برای اینکار وجود دارد:
1. استفاده از الگوریتم های ژنتیکی
2. دیگری استفاده از روشهای آماری( Dynamic Programming )
در RL روش دوم مد نظر است.
3. Unsupervised Learning (یادگیری بدون ناظر):
دراین نوع یادگیری نه پاداش و تنبیه وجود دارد و نه این که دقیقا به عامل آن چیز را که قرار است یاد بگیرد گفته می شود خود روبات با محیط درگیر می شود و نتیجه می گیرد.
همانطور كه ديديم يادگيري يك عامل مهم در تقويت عملكرد ربات ها مي باشد ولي تا كنون در اكثر مسابقات اين مهم ناديده گرفته شده است .
ما سعي كرده ايم در مواقعي كه استفاده از منطق كافي نبوده مثلا در بعضي از حركات فردي ربات ها مانند عكس العمل در مقابل شوت زدن و . . . كه عملكرد مطلوب بدست نيامده از يادگيري استفاده كنيم كه براي اين منظور از شبكه هاي عصبي مصنوعي استفاده كرده ايم .
ما براي گام هاي بعدي در نظر داريم از يادگيري RL ، يادگيري به صورت Online و نيز از روش هاي بهينه سازي ، برنامه ريزي ( Planning ) ، حل مسئله ( ( Problem Solving مانند الگوريتم هاي ژنتيك وحتي كلوني مورچه ها استفاده كنيم .
همچنين از منطق فازي در ايجاد ارتباط و همكاري هوشمندانه استفاده شده است .
قابل ذكر است در مواردي كه براي پردازش داده هاي مربوط به سنسورها Sensor Processing ) )از منطق فازي و يادگيري استفاده شده است .
در بعضي از موارد هم كه نيازي به هوشمندي بالايي نبود از برنامه نويسي معمولي و منطق كلاسيك (Hard Computing )استفاده شده است .
6-7- شبکه های عصبی (Neural Network)
1. Biological Neural Network
2. Artificial Neural Network
شبکه های عصبی با تقریب عمومی کار می کنند.
در کنار هر شبکه عصبی یک قانون یادگیری (Learning rule) وجود دارد.
7- الگوريتم هوشمند
الگوريتمي است که بر اساس 64 بيت ساخته شده و بر اساس اين 64 بيت است که اگر روبات اطلاعاتي را که ميگيرد بهتر از اطلاعات قبليش باشد اطلاعات جديد را جايگزين اطلاعات قبلي ميکند.
7-1- تيم هوشمند(روباتها):
روباتهاي اين تيم با الگوريتم هوشمند کار ميکنند اين بدين معني است که : مثلاً وقتي يک روبات چند بار از يک روش براي گل زدن استفاده کرد اما به نتيجه نرسيد خودش روش را عوض ميکند و اگر از روش جديد توانست گل بزند ميفهمد كه اين روش بهتر از روش قبلي بود بنابراين خود روبات روش جديدرا جايگزين روش قبلي ميکند و از دفعات بعد از روش جديد استفاده ميکند.(وقتي که روبات براي چند بار تا مقابل دروازه حريف برود و شوت كند اما شوتش گل نشود دفعه بعد تا مقابل دروازه حريف ميرود اما اين دفعه به يکي از روباتهاي خودي نزديک دروازه حريف پاس ميدهد اگر
اين پاس به گل تبديل شود، روبات پاس دادن راجايگزين روش شوت مستقيم توسط خود ميکند و دفعات بعد از روش جديد استفاده ميکند.) در برنامهاي که قرار است ما بنويسيم اين نکته خيلي مهم است که برنامه ما توزيع شده باشد. يعني 12 تا روبات ما بتوانند با هم کار کنند و اين هماهنگي را درحافظه خود داشته باشند. و اماهدف ما: نوشتن يک تيم بر اساس Server/client که بتواند ما را به هدفمان نزديک کند.
7-2-Agent چيست ؟
اكنون يک محيط شبيه سازي شده در نظر ميگيريم که بجاي روباتها يکسري موجوديتهاي گرد مانند، فعاليت ميکنند که يک زاويه ديد ويك توان مشخص دارند. يک agent دقيقاً مثل انسان است. اگر بيش از حد در زمين بدود توانش را از دست ميدهد و خسته ميشود. Agent ها مانند انسانها فکر ميکنند،تصميم ميگيرند و عمل ميکنند.بطور کلي كره هايي هستند که ما در صفحه ميبينيم که هر كره به عنوان يک بازيکن است.
8- نقش Server client در Soccer Server
زماني که Soccer Server راrun ميکنيم هر کدام ازagent ها روي يک client، run ميشوند. اين بدين معني است که : Server همه اطلاعات مربوط به توپ و بازيکن و موقعيت تمامي بازيکنان و... را در خود نگه ميدارد. (اطلاعات داخل محيط، موقعيت توپ، وضعيت بازي و. ..)
هر کدام از بازيکنان که بخواهد کاري را انجام دهد دستوري مبني بر درخواست خود(مثلاً: بازيکن ميگوید که ميخواهم شوت کنم ) را به سرور ميفرستد اگر سرور شرايط را براي انجام آن دستور مهيا بداند درخواست را انجام ميدهد. حداکثر تعداد client ها ميتواند 12 باشد که : 11 نفرازآنها ميتوانند بازيکنان باشند و يك نفر مربي تيم. ارتباط بين Clientها با يكديگر و با Server بوسيله پروتکلUDP/IP برقرار ميشود. يعني با سوکتهاي UDP/IP، Client ها با Server ارتباط برقرار ميکنند.
8-1- Server
Server يک سيستم است که رفتارهاي يک تيم يا چند تيم را دريک مسابقه بررسي ميکند.Serverها وClientها براساسUDP/IP فعاليت ميکنند يعني رابط (connection) ميان هرClient وServer سوکتهاي UDP/IP هستند. وقتي يک بازيکن به Server وصل ميشود تمامي پيغامها توسط اين پرت رد وبدل ميشود. بازيکنان درخواستهاي خود را به سرور ميفرستند و Server دستورهايي را که آنها ميخواهند اجرا ميکند. اطلاعات همه بازيکنان در Server توسط سنسورهاي اطلاعاتي وجود دارد که شامل:
1- موقعيت زمين
2 - اطلاعات در مورد بازيکن(مانند سرعت، توان ) ميباشد.
اين نکته مهم است کهServer يک سيستم Real Time است. پس در برنامه نويسي بايد اين نکته لحاظ شود. فرمانها طي سيکلهاي زماني خاص به Server فرستاده ميشود و هر دستور براي اجرا بايد يک سيکل زماني را در اختيار بگيرد.
8-2- Monitor
يک محيط مجازي است براي اينکه انسانها بتوانند اتفاقاتي کهServer روي بازي انجام ميدهد را ببينند.براي هربازي ميتوان چندين monitor در اختيار داشت در عين حال ميتوان يک مسابقه را بدون مانيتور اجرا کرد. يعني وجودmonitor براي اجراي بازي الزامي نيست.
8-3- Log player
زماني که برنامه در حال اجرا است برنامه log player مانند يک دوربين فيلمبرداري عمل ميکند و تمامي تغييرات بازي را در خود ذخيره مينمايد. و پس از اتمام بازي شما ميتوانيد بازي را دوباره ببينيد. Log player مثل media player عمل ميکند يعني بعد از اتمام بازي امکان عقب و جلو بردن، نمايش سريع يا آهسته فيلم گرفته شده را به ما ميدهد.
9- قوانين مسابقات
1- قوانيني که توسط کامپيوتر اجرا ميشود.
2- قوانين داور فيزيکي.
9-1- قوانینی که توسط کامپیوتر اجرا ميشوند
3. Kick- Off
4. (Goal)
5. Out of Field
6. Player Clearance
7. Offside
8. Backpasses
9. Free kick Faults
10. Half-Time and Time-up
9-1-1- Kick-Off:
بازي فعال نيست ( وقتي که يک گل زده ميشود، خطايي رخ ميدهد، يا قبل از شروع دونيمه).
9-1-2- Kick-Off
- قبل از هر kick off همه بازيکنان بايد در نيمه خود باشند.
- بعد از هرگل حداکثر 5 ثانيه زمان براي بازيکنان در نظر گرفته ميشود.
- اگر بازيکنان ظرف مدت 5 ثانيه موقعيت خود را تغيير نداده و در نيمه خود قرار نگيرند داور بصورت بصورت خودکار و Random بازيکن را درجايي از زمين خود رها ميکند(مثلاً آن را کنار دروازه بان ميگذارد و از پست اصلي خود که خط حمله بوده معلق ميکند.)
9-1-3- Goal
وقتي توپ از خط دروازهها عبور کند يک گل محسوب ميشود. بعداز هر گل kick off رخ ميدهد. بعبارت ديگر: وقتي يک تيم بتواند امتياز بدست آورد به آن گل گفته ميشود. پس از هر گل يک massage سراسري براي بازيکنان فرستاده ميشود با مفهوم :
(1) Kick _off_x
که X نشان دهنده Right ياLeft ميباشد وتوپ به نقطه مرکزي زمين منتقل ميشود.
9-1-4- Out of Field
زماني که توپ خارج از زمين باشد. يعني زماني که توپ:
1. corner شود.
2. ازکنار دروازه خارج شود.
3. از خط کنار زمين رد شود.
وقتي که توپ از زمين خارج شود داورمسابقه توپ را در جاي مناسب قرار ميدهد و وضعيت بازي را به يکي از وضعيتهاي زير تبديل ميکند:
1. Kick in
2. Corner _ kick
3. Goal _ kick
وضعيت بازي:
وضعيتي که در هر لحظه بازي ميتواند داشته باشد را وضعيت بازي ميگويند.
9-1-5- Offside
شرايط offside بصورت زير ميباشد :
1- در زمين حريف باشد.
2- فاصله ما تا دروازه بان بيش از دو بازيکن خودي باشد.
3- نزديک شدن به توپي که در حال وارد شدن به دروازه است.
4- نزديک شدن به توپي که فاصله آن تا دروازه بان کمتر از 2.5 متر باشد.
9-1-6- Backpasses
اگر يکي از بازيکنان خودي به دروازه بان پاس دهد ودروازه بان آن را بگيرد خطاي back pass رخ ميدهد و يک ضربه آزاد به سود تيم حريف گرفته ميشود. در زمان خطاي back-pass دروازه بان بايد در محوطه جريمه باشد. (اگر خارج از محوطه جريمه باشد خطا نيست. ) اگر خطاي back-pass رخ دهد توپ به يکي از گوشههاي محوطه جريمه که نزديکتر است انتقال مييابد.
9-1-7-Free kick Faults
زماني که يک free kick يا corner kick يا goal kick و يا kick in رخ ميدهد بازيکن نمي تواند به خود پاس دهد (يعني نمي تواند توپ را جلوتر بيندازد و خودش آن را بگيرد.) اگر اين اتفاق افتاد خطاي free kick fault گرفته ميشود.
9-1-8- Half-Time and Time-up
هر نيمه در Soccer Server شامل 3000 سيکل زماني ميباشد.(تقريباً 5 دقيقه) اگر بازي پس از نيمه دوم مساوي شود بازي در دو نيمه اضافه دنبال ميشود. تا زماني که يکي از تيمها گل به ثمر برساند.
نکته:
مفهوم penalty را درSoccer Server نداريم. Agentها گرد هستند بنابرين در 99% امکان خطا در محوطه جريمه نيست بنابراينpenalty نداريم. به اين رو
9-2- قوانين داور فيزيکي
بعضي از خطاها براي سيستم اتومات داوري خيلي سخت است.براي گرفتن اين خطاها Server يک Interface (رابط کاربر) در اختيار انسان قرار ميدهد تا بتواند بازي را معلق کرده و يک free kick بگيرد. داور فيزيکي از سال 2000 به بعد در مسابقات بکار گرفته شد. قبل از سال 2000 در مسابقات داور فيزيکي نبود. زماني که در مسابقات 1999 اسکا بعضی از تیمها يکسري خطا در برنامه رباتهایشان نوشته بودند و از آنها براي رسيدن به پيروزي استفاده ميکردند، اين خطاها براي داور سيستم شناخته شده نبود و از ديد آن اشکالي نداشت ولي در واقع خطا و تقلب بود(10 نفر از بازيکنان دور توپ جمع ميشدند و بسوي دروازه حريف حمله ميکردند.)
9-2-1- اعمال داور فيزيکي
1. به جريان انداختن توپ.
2. زماني که گل توسط تعداد زيادي از بازيکنان پوشيده شده باشد.
3. توپ بعد از يک زمان مشخص به جريان نيفتد.
4. تعدادي از بازيکنان مانع حرکت يک بازيکن شوند.
5. زماني که دروازه بان توپ را در اختيار دارد (safe time ) يعني زماني که دروازه بان توپ را دراختيار دارد هيچ کدام از بازيکنان حريف نمي توانند توپ را از دروازه بان بگيرند(فقط در محوطه جريمه مطلب بالا درست است.)
6. Down يا hang کردن Server توسط تعداد زيادي massage
يک بازيکن نبايد بيشتر از 3 يا 4 دستور در هر سيکل زماني براي Server بفرستد.اگر Server بيش از حد دستور دريافت کند در اصطلاح ميگويند jammed شده است.
10- انواع سنسورها
Soccer Server سه نوع سنسور متفاوت دارد:
1. Aural Sensor Model(برای فرستادن و گرفتن message ها کاربرد دارد.)
2. Vision Sensor Model (دیدن بازیکن و وضعیت محیط)
3. body sensor (وضعیت بدنی بازیکن را چک میکند)
10-1- Aural Sensor Model
فرمت کلی message هاي aural sensor که از طرف server هستند بدین شکل ميباشد:
(hear Time Sender “Message”)
در قسمت Time زمان جاری ثبت میشود. درقسمت sender، فرستنده message مشخص میشود. یکی از 4 مورد زیر میتوانند فرستنده باشند و بجای قسمت sender قرار گیرند :
1-self (خود بازیکن )
2-referee (دیگران مثل بازیکنان دیگر)
3- online_coach_left (مربی سمت چپ زمین )
4 - online_coach_right (مربی تیم سمت راست زمین )
در قسمت message هم متن text پیغام قرار میگیرد.حداکثر اندازه text میتواند توسط say_msg_size تعيین شود.
بعد از اینکه client اطلاعات سنسور Aural را فرستاد توسط server این پارامترها تنظیم ميشوند.(این پارامترها درserver.conf قرار دارند.)
Audio_cut_dist : حداکثر فاصله ای که یک پیغام بتواند شنیده شود.
Hear_max : حداکثر تعداد افرادی که بتواندد message را بشنوند.
Hear_inc : حداکثر چند نفر این پیغام را بدون کیفیت دریافت کنند.
Hear_decay : حداکثر چند نفر بتوانند این message را با کیفیت دریافت کنند.
Say_msg_size: حداکثر تعداد حروفی که در یک message میتواند وجوداشته باشد.
مثال: نشان دهید حداقل چند بازیکن ميتوانند message را دریافت کنن
د در 10 سیکل6 تا message فرستاده ميشود.
(2) 6*2=12*10=120
(6 = چون 2 تا مربی داریم و 4 تا بازیکن)
(2= چون هرmsg را دو نفرمیتوانند دریافت کنند.)
چون هرmessage هم میتواند یک جواب داشته باشد در نتیجه 240=2*120 message در 10 سیکل.
10-2- Vision sensor model
به معنی نمایش است. برای دیدن محیط اطراف بکار میرود. باعث ميشود اطلاعاتی (درمورد شی هایی که بازیکن در حال حاضر آنها را میبیند) که از server به client یا از client به server میرود در هر 150 میلی ثانیه یکبار در قالب چنین message ی آشکار شود.
(see ObjName Distance Direction DistChng DirChng BodyDir HeadDir)
به عبارت دیگر هر 150 میلی ثانیه یکبار server یک چنین پروتکلی بهclient میفرستد و client هم جوابش را ميدهد.
در پروتکل بالا اطلاعات obj دیده شده قرار میگیرد که بعضی از این اطلاعات در طی فرمول هایی بدست ميآید.
همچنين هر یک از نقاط و خطوط در زمین فوتبال Soccer Server نام خاصی دارد
10-2-1- Range of view
وسعت و کیفیت دید را معین ميکند.مثلا در شرایط هوای بارانی وسعت و کیفیت و range دید بازیکنان میتواند ناخواسته تغییر کند و کم شود (مانند خود ما که در هوای بارانی وسعت دید کمتری داریم و...) یک تیم خوب تیمی است که بتواند range دید خودش را نسبت به شرایط عوض کند به عبارت دیگر با شرایط شبیه سازی شده در زمین بازی مثل باد شدید و باران و. .. بتواند خود را تطبیق دهد.
برای range of view ما یکسری پارامتر داریم که باید بعنوان یک client این پارامترها را بشناسیم. مثلا ميتوانیم ببینیم که هر بازیکن نسبت به فاصله اش چه چیزی را میتواند ببینند: به عنوان مثال يك بازیکن در نقطهA میتواند خود را و هم بازیکنان تیم خودی و شماره آنها را تشخیص دهد. اگر فاصله ما کمتر از unum_far_lenght باشد هم شماره بازیکن و هم نام آن را میبینیم. اگر فاصله ما بین unum_too_far_lenght تا unum_far_lenght باشد نام تیم را میبینیم ولی ممکن است
نتوانیم شماره بازیکنان را بخونیم.اگر فاصله ما بیشتر ازunum_too_far_lenght باشد دیگر شماره بازیکنان قابل دیدن نیست.اگر فاصله ما کمتر از team_far_lenght باشد نام قابل تشخیص است. اگر فاصله بین team_far_lenght تا team_too_far_lenght باشد ممکن است بتوانیم نام تیم را تشخیص دهیم. اگر فاصله ما بشتر از team_too_far_lenght باشد object ها قابل تشخیص نیستند. بنابرین f و g و b در شکل زيربراي بازیکن مورد نظر ما قابل تشخیص نیستند
پارامترهای موجود برای visual sensor در server.conf دارای مقاریری هستند که آنها را در جدول زير میبینیم.
10-2-2- Visual sensor Noise Model
وضعیت محیط زمین بازی را به بازیکنان میگوید.مثلاً توپ کجاست ؟ در حال حاضر توپ چه حرکتی دارد؟ و یکسری فرمولها که نیاز نیست توسط ما تنظیم شوند، فقط باید با کار آنها آشنا باشیم.
10-3- Body sensor Model
وضعیت فیزیکی بازیکن را مشخص میکند. مثل قدرت بدنی و سرعت بازیکن و. ..
مثلاً اگر یک بازیکن 134 بازstart زده باشد و دویده باشد عدد 134 جلوی اسم بازیکن بجای
Dash Count قرار میگیرد. Noise در لغت به معنی مزاحمت است. در زمین بازی ما انسانها ممکن است در حین بازی باد شدید، باران، چالههاي کوچک، مه گرفتگی و.... وجود داشته باشد که به خودی خود میتواند برای بازیکن ايجاد مزاحمت كند؛ و بازیکنی موفق است که بتواند با noise هاي موجود خود را تطبيق دهد و به خوبی قبل بازی را ادامه دهد. (به عنوان مثال اگر باد شدید باشد و بازیکن توپ را هوایی شوت کند باد باعث انحراف توپ میشود و. ..) در Soccer Server ه
م برای سنجیدن میزان کارآیی، مقاومت و کیفیت تیمها یکسری noise ها در زمین بازی ایجاد شده است. مانند: باد، چالههاي ریز موجود در زمین و. .. این noise ها بطور اتوماتیک توسط Movement Noise Model تنظیم میشوند و فقط server به این noise ها دسترسی دارد و برای ما یا بازیکنان و. .. قابل دستیابی نیست.
10-3-1- Collision Model
زمانی که دو بازیکن یا دو شی در زمین بازی با هم برخورد میکنند این server است که تصمیم میگیرد که کدام بازيكن را در زمین نگه دارد تا بتواند به بازی ادامه دهد یا اینکه هر کدامشان پس از برخورد چقدر به عقب برگردند.(وقتی دو جسم که سرعت دارند به هم برخورد کنند پس از برخورد هر دو کمی به عقب رانده میشوند)
10-4- Action Model
شامل یکسری پارامترهایی است که باید تنظیم شوند.
1- Catch Model: میدانیم دروازه بان تنها بازیکن زمین است که اجازه دارد در حین بازی توپ را با دست بگیرد. این پارامتر مشخص میکند دروازه بان در چه محدوده ای و با چه زا
ویه ای ميتواند توپ را بگیرد. حال باید یکسری پارامترها برايش set کنیم از قبیل :
catchable_area_l : معین کننده طول محوطه ای که که دروازه بان درآن محوطه بتواند توپ را بگیرد.
catch_probability : مشخص میکند شانس گرفتن توپ توسط دروازه بان چقدراست. معمولاً 1 عدد خوبي است، اگر توسط server، set شود.
catch_ban_cycle : معین میکند که دروازه بان در چند سیکل میتواند این توپ را بگیرد.
goalie_max_moves : معین کننده حداکثر پرش ممکن برای دروازه بان است.
2- Dash Model: مشخص میکند که حداقل و حداکثر قدرت بدنی لازم برای دویدن بازیکن چقدر باشد. فعلاً با پارامترهای مربوط به dash model کاری نداریم.
3- Kick Model:
معمولاً دو پارامتر میگیرد :
1- قدرت (شتا ب ضربه ) توپ
2- زاویه شوت را مشخص میکند.
قدرت شوت معمولاً صفر و زاویه شوت 47 یا 48 درجه است.
10-5-Stamina Model
معین میکند که قدرت بدنی یک بازیکن به چه نحوی بدست آید (recover شود)و چه گونه از دست برود.
اینجا یکسری شبه کد SOCCE SERVER داریم.
شبه کد: یک زبان برنامه نویسی تقریباً نزدیک به همه زبانهاي برنامه نویسی است.
اگر به الگوریتمهاي زیر توجه کنیم متوجه میشویم که:
قسمت اول بيان ميكند که: اگر استقامت کمتر از Power بود از استقامت کم کن. recovery را اجرا کن (recovery را وقتی اجرا میکنیم که بازیکن یک انرژی از دست داده باشد حالا با این دستور آن را بدست ميآورد. )البته امکان recovery محدود است. مثلاً بیشتر از 20 بار از این دستور نمیتوانیم استفاده کنیم. اگر این recovery بیشتر از مقدار min ی است که ما برای recovery تعریف کردیم هنوز میتواند recovery را اجرا کند و یک واحد ازrecovery کم میشود بطور اتوماتیک و به استقامت اضافه میشود.
قسمت دوم هم به همین ترتیب استدلال ميکنیم. البته ما با این الگوریتمها سرو کار نداریم و این server است که اینها را اجرا میکند و مربوط به ما نیست. server با soccer p
layer همه این الگوریتمها را اجرا ميکند.
11- Soccer server
دستورات در Soccer Server به دو دسته تقسیم ميشوند:
1- دستوراتی که از client به server ميروند.
2- دستوراتی که از server به client ميروند.
این دستورات را در جدول زیر به طور خلاصه میبینیم :
11-1- Stamina
این پارامتر قدرت بدنی بازیکن را مشخص ميکند
11-2-Dash
با هر دستور dash (شوت زدن – دویدن و. .. ) باعث کمتر شدن قدرت بازیکن میشویم.
11-3-Recover
نشان میدهد چقدر طول میکشد تا بازیکن ما قدرت خودش را بدست آورد (recover شود)
این پارامترها را در سه گروه تقسیم ميکنیم :
1. server_param
2. player_param
3. player_type
یکسری دستورات هم هستند که یک طرفه عمل ميکنند یعنی فقط از طرف server به client فرستاده ميشوند(only once per cycle : این بدین معنی است که در هر سیکل فقط یک بازیکن ميتواند این پیغام را برای server بفرستد.)
11-4- Catch Direction
این پارامتر مشخص میکند که بازيكن توپ را در چه زاویه ای ميتواند دریافت کند (مثلاً بازیکن 45 درجه به راست بچرخد و بعد توپ را بگیرد = catch 45 )
11-5- Change_ view Width Quality
پارامتری است برای تغییر دید بازیکن اگرquality يک بازیکن را low انتخاب کنیم ممکن است بازیکن حتی نتواند هم تیمیهاي خودش را تشخیص دهد.اگر quality یک بازیکن high انتخاب شود ممکن است بازیکن حتی بتواند شماره بازیکن تیم حریف را هم بخواند.در قسمت width هم عرض محدوده دید بازیکن را مشخص ميکنیم که کم یا معمولی یا عریض باشد.
11-6- dash Power
این پارامتر نشان دهنده مقدار انرژی مصرف شده توسط بازیکن است این مقدار ميتواند minpower یا maxpower باشد. البته برگشت به عقب 2 برابر انرژی مصرف ميکن
د.
11-7- kick power Direction
نشان دهنده قدرت شوت ممکن برای یک بازیکن است. به عبارت دیگر حداکثر قدرت شوت برای یک بازیکن را ميتوانیم اینجا مشخص کنیم. اگر قدرت شوت را 0 تا 100 در نظر بگیریم این پارامتر مشخص ميکند که قدرت شوت فلان بازیکن 50 باشد.