مقاله در مورد ربوكاپ در word دارای 28 صفحه می باشد و دارای تنظیمات در microsoft word می باشد و آماده پرینت یا چاپ است
فایل ورد مقاله در مورد ربوكاپ در word کاملا فرمت بندی و تنظیم شده در استاندارد دانشگاه و مراکز دولتی می باشد.
توجه : در صورت مشاهده بهم ریختگی احتمالی در متون زیر ،دلیل ان کپی کردن این مطالب از داخل فایل ورد می باشد و در فایل اصلی مقاله در مورد ربوكاپ در word،به هیچ وجه بهم ریختگی وجود ندارد
ربوكاپ
چكیده ـ ربوكاپ، تلاشی است در زمینه پروراندن تحقیقات هوش مصنوعی و هوش روباتها، كه از طریق تعریف یك مسئله استاندارد و حل آن توسط محققین متعدد در كشورهای مختلف دنبال میشود. به همین منظور، برای چنین مسالهای بازی فوتبال درنظر گرفته شده است. بازی فوتبال صرفاً بعنوان یك محیط دینامیك و پویا برای آزمایش كردن نتایج حاصل از این تحقیقات انتخاب شده و هدف از این تحقیقات به هیچ وجه صرفاً انجام بازی فوتبال بین روباتها نمیباشد بلكه استفاده از ویژگیهای خاص بازی فوتبال برای پیاده سازی روشها و آزمایشات در یك كار تیمی و گروهی بین چند روبات هوشمند و متحرك است.
روباتهای فوتبالیست، آدمكهای هوشمند كامپیوتری هستند كه میتوانند از طریق برنامه هوشمندی كه به آنها داده میشود بطور خودكار در زمین فوتبال بازی كنند. بعبارت دیگر، روباتها از راه دور كنترل نمیشوند. هدف تحقیقات در روباتهای فوتبالیست، پژوهشِ و فنآوری نوین در زمینههای هوش مصنوعی و روباتهای هوشمند متحرك است.
كلید واژه ـ روبوكاپ ، شبیه ساز ، كارگزار ، عامل
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- نزدیک شدن به توپی که فاصله آن تا دروازه بان کمتر از 25 متر باشد.
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 باشد.
برای دریافت اینجا کلیک کنید
تعداد کل پیام ها : 0