چکیده:
هدف این مقاله، ارائهی روشی کارامد برای دفاع کردن و قرار گرفتن بازیکنان در زمین فوتبال شبیه سازی شده[1] است. در این مقاله روشی جدید برای چیدن مدافعان (و حتی دیگر بازیکنان) ارائه شده است. در واقع بعید به نظر میرسد که ادعا شود یافتن چنین روش و رویکردی برای چیدمان بازیکنان در زمین فوتبال یک روش بهینه و کاراست، زیرا ارائهی آن به همراه یک استدلال ریاضی منطقی نمیباشد؛ لکن این روش به صورت محسوسی قابل پذیرش است.
کلمات کلیدی:
شبیه سازی فوتبال، سرور شبیه سازی فوتبال[2]، یادگیری ماشین[3]، یادگیری تقویتشده[4]، منطق فازی[5]، کانتور[6] اهمیت، درجهی خطر.
مقدمه
شبیه سازی فوتبال، یکی از جذابترین رشتههای مسابقات روبوکاپ[7] است که ظرفیت پذیرش انواع مختلف ایدههای هوش مصوعی را دارا میباشد. نزدیک به واقع بودن این رشتهی مصنوعی، اجازه میدهد تا انواع ایدههای مختلف، برای شرایط متفاوتی که یک تیم فوتبال در بازی واقعی با آن مواجه است، پیاده سازی شود. این شرایط گستردگی زیادی دارند و از موارد کاملاً سطح پایین (مانند شوت زدن به سمت یک هدف) تا مواردی میانی و سطح بالا (همچون انواع دریبل[8] یا پاس توی عمق) را میپوشاند.
برای پیاده سازی یک چنین شرایطی، تیمها از باید به سرور فوتبال[9] یک سری درخواستهایی را ارسال و به دنبال آن اطلاعاتی را دریافت کنند. این اعمال سطح پایین توسط سرور انجام میشوند و همچنین با توجه به درخواستی که تیم دارد، اطلاعاتی (که ممکن است با نویز یا انواع خطا همراه باشد) در اختیار تیم قرار میگیرد. مثلا یکی از این ادراکات[10] این است که چه بازیکن(هایی) در محدودهی دید یک بازیکن وجود دارند. پاسخ آن نیز بسته به فاصلهای که آن بازیکن(ها) نسبت به بازیکن مبدأ دارند داده میشود. در همین مثال اگر فاصلهی این دو بازیکن از حدی زیادتر باشد، تشخیص شمارهی آن و یا حتی اینکه این بازیکن به کدام تیم تعلق دارد غیر ممکن میشود (که البته در فوتبال واقعی نیز همینطور است).
یازده بازیکن هر تیم به صورت مجزا (در process های مختلف) اجرا میشوند. به طور معمول تیمهای فوتبال از روتینهای سطح بالایی که توسط برخی تیمهای دیگر - به منظور در اختیار گذاشتن امکانات سطح بالا - نوشته شده، استفاده میکنند. به مجموعهی این روتینها Base میگویند.
شکل 1 زمین فوتبال؛ در سیکل[11] اول بازی آغاز شده و هماکنون دو سیکل از بازی سپری شده است. بازیکنان هر تیم به منظور بههنگام کردن اطلاعات خود از جهان پیرامون مشغول چرخیدن هستند.
2. دفاع
هدف از دفاع چیست؟ تیمهای مختلف در فوتبال واقعی، بسته به رویکرد تیمی خود در بازی به این سؤال به صور مختلفی پاسخ دادهاند. در این قسمت چند رویکرد ذکر میشود:
کاهش گل خورده (گل نخوردن)
کاهش سرعت بازی حریف در زمین
گرهزدن بازی حریف و استفاده از ضد حملهها
بدیهی است که هدف نهایی تمامی این روشها گرفتن سه امتیاز بازی است، لذا میتوان به منظور سادهسازی[12]، در شبیه سازی هدف را تنها کمگلخوردن دانست. به این ترتیب باید شرایط را طوری تنظیم کرد که اخیار عمل به هنگام حمله از تیم حریف گرفته شود. این کار به چند طریق قابل انجام است.
2-1 دفع حملات
سادهترین آن هجوم بازیکنان به طرف حریف میباشد. با این کار حریف به صورت فردی مورد تهاجم قرار میگیرد ولی این روش فقط هنگامی مؤثر است که یا حریف به صورت تکرو حملهکرده باشد و یا تمامی دیگر بازیکنان مهاجم - به جز خود مهاجم - شرایطی غیر استراتژیک داشته باشند.
روش دیگری که میتواند مورد استفاده قرار گیرد، یارگیری نفر به نفر میباشد. به طور معمول حملاتی که از جانب یک تیم فوتبال در شبیهسازی صورت میگیرد، در صورتی که گروهی باشد، شانس بیشتری برای گشودن دروازهی حریف دارد. در این روش با یارگیری نفر به نفر، اکثر بازیکنان مهاجم، کم خطر میشوند ولی مشکل در اینجاست که بازیکن حامل توپ میتواند آزادی عمل زیادی داشته باشد، چرا که یک یا نهایتاً دو بازیکن میتوانند جلوی او را بگیرند.
2-2 روشی برای دفاع
در کنار این دو روش - که هر کدام نقاط قوت و ضعفی را دارا میباشند - روش سومی را ارائه میکنیم؛ لکن پیش از آن باید به کمی بررسی یادگیری تقویت شده و منطق فازی بپردازیم.
2-2-1 یادگیری تقویتشده
در این نوع یادگیری که بعضاً آنرا نوعی یادگیری بدون ناظر[13] مینامند، عامل بسته به عملی که انجام داده به نوعی تشویق یا تنبیه میشود. در واقع عامل بیآنکه هر بار از مقدار خطای خود به طور مستقیم آگاهی یابد، با یک تشویق یا تنبیه مواجه میشود و به نسبت آن ارزش کار خود را در مییابد. میتوان یادگیری حیوانات دستآموز را چنین یادگیری دانست.
عامل در هر مرحله طبق فرمول زیر، مقدار کارایی عمل خود را بههنگام میکند:
که در آن U، مقدار کارایی یک سری اعمال و reward میزان تشویقی است که بارفتن از oldstate به newstate بدست آوردهاست.
استفادهی ما از یادگیری تقویتشده، پیدا کردن نقاط حساس زمین و در واقع مناطق استراتژیک است.
2-2-2 منطق فازی
در برابر منطق دودویی و صحیح - غلط، و به منظور نزدیک به واقع کردن مقادیر گسسته، از منطق فازی استفاده میکنیم. در این رویکرد به جای اینکه برای گزارهها ارزش درست یا غلط تعیین کنیم، یک مقدار μ به صحت گزاره، نسبت دهیم.
شکل 2 نمایش یک منحنی فازی. همانطور که در شکل هم دیده میشود، شخص تیرهتر، کوتاهقد و یا شخص روشنتر بلندقد نام نگرفتهاند. بلکه این واقعیتها به صورت درصد بلندی بیان شدهاند.
در فوتبال شبیهسازی شده، به جای اینکه یک بازیکن خطرناک و دیگری بیخطر نامیده شود، میتوان به هر بازیکن یک درجهی خطر نسبت داد. با این کار شبیهسازی را به واقعیت نزدیکتر شده، و در عین حال دفاع هوشمندانهتر میشود.
2-3 رویکرد سوم دفاع
هم اکنون با معرفی منطق فازی و یادگیری تقویتشده میتوانیم به بررسی روش سوم دفاع بپردازیم. در این روش هدفْ، از کار انداختن بازیکنان مهاجم، بسته به اولویتی که دارند میباشد. ابتدا زمین بازی را به کانتور[14]هایی تقسیم میکنیم (شکل 3).
داخلی ترین کانتور همان لایهی اول کانتورها است و اهمیت بسیار زیادی دارد، چرا که بیشترین آمار گل خورده از داخل این کانتور است. به همین ترتیب با دور شدن از محوطهی دروازه، از درجهی اهمیت کانتورها کاسته میشود (شکل 3 به صورت محسوسی این کاهش اهمیت را با کاهش رنگ نشان میدهد). برای پیادهسازی چنین وضعیتی، کافیاست یک نقشهی بیتی[15] از کانتورهای اهمیت را در ابتدای بازی بار[16] کنیم. حال به هر کدام از این کانتورها یک وزن نسبت میدهیم. به عنوان مثال:
Layer 5
Layer 4
Layer 3
Layer 2
Layer 1
شکل 3 زمین فوتبال که به کانتورهایی مجزا تقسیم شده. میتوان گفت خطر وجود یک بازیکن مهاجم در نقاط پررنگ زمین، بیشتر تر خطر او در نقاط کمرنگ است.
W (layer 1) = 20
W (layer 2) = 16
W (layer 3) = 8
W (layer 4) = 3
W (layer 5) = 1
در ادامه به توپ هم یک وزن نسبت میدهیم:
W (ball) = 3
حال به تمامی بازیکنان حریف وزنی برابر 1 نسبت میدهیم:
همچنین برای تمامی بازیکنان خودی نیز مانند حریف، وزن 1 را در نظر میگیریم.
به این ترتیب میتوانیم در هر لحظه یک نمایش وزن خطر در زمین بازی داشتهباشیم. برای این کار، کافیاست به هر بازیکن یک درجهی خطر نسبت دهیم. درجهی خطر را با D نشان میدهیم و آنرا با استفاده از فرمول زیر محاسبه میکنیم:
D (oppi) = W (layerj) W (oppi)
و در صورتی که آن بازیکن صاحب توپ باشد[17] درجهی خطر در وزن توپ (که در مثال ما 3 است) هم ضرب میشود.
به عنوان نمونه در شکل 4، کانتوری را داشتیم بر زمین فوتبال منطبق میکنیم و به نسبت آن درجهی خطر بازیکنان حریف را با توجه به دادههای مثال به دست میآوریم.
اکنون مشخص شده که هر بازیکن به چه میزان دروازهی ما راتهدید میکند و تنها موردی که باقی مانده، چیدن بازیکنان خط دفاعی برای دفاع از دروازه است. کانتورها روی زمین بازی مشخصند. توپ با رنگ سیاه در دست بازیکن 11 تیم قرمز است. بازیکن 11 قرمز به سمت کاتنور لایهی 3 میرود. بازیکنان 9 و 10 هر کدام در کانتور لایهی چهارم قرار دارند. به منظور تصاحب توپ، مدافع شمارهی 2 به سمت 11 قرمز جذب میشود.
2-4 چیدن بازیکنان خط دفاع
یک بازی در حال جریان تنها کاری که به منظور دفع خطر یک مهاجم میتوان انجام داد، نزدیک کردن بازیکن خودی به آن است. به این ترتیب میتوان به محض اینکه توپ از بدن مهاجم فاصله گرفت، آنرا تصاحب کرد. نکتهی حائز اهمیت در اینجا آن است که در سطح تجرید[18] سرور فوتبال، چیزی به نام حرکت با توپ معنی ندارد. تنها عمل ممکن برای این کار شوت کردن توپ به کمی جلوتر و دویدن به طرف آن میباشد. به همین دلیل است که میتوان با نزدیکشدن به حریف، توپ او را - در صورتی که پاس ندهد - تصاحب کرد.
برای اینکه بازیکنان در جای مناسب خود قرار گیرند، ما از فرمول جاذبهی عمومی نیوتن استفاده میکنیم. فرمول به صورت زیر است:
که در آن k ثابتی است که ما آنرا برای منظور خود 1 در نظر میگیریم. M1 و M2 هم به ترتیب درجهی خطر بازیکن حریف و وزن مدافع است. از آنجایی که F یعنی نیروی جاذبهی بین دو بازیکن با مربع فاصلهی آندو نسبت عکس دارد، ما r های بزرگتر از Max_Distance (مثلا 10 متر) را نادیده میگیریم و فرض میکنیم که آن دو بازیکن هیچ جاذبهای نسبت به یکدیگر ندارند.
[1] Simulated soccer field
[2] Soccer Simulation Server
[3] Machine Learning
[4] Reinforcement Learning
[5] Fuzzy Logic
[6] Contour
[7] RoboCup, a robotic competition
[8] Dribble
[9] Soccer Server
[10] Percept
[11] Cycle
[12] Abstraction
[13] Unsupervised Learning
[14] Contour
[15] Bitmap
[16] Load
17 دارا بودن توپ در پیاده سازی در سطح Soccer Server، چندان ملموس نیست، چرا که در صورتی که توپ به حد کافی به یک بازیکن نزدیک باشد و آن بازیکن هم توانایی شوت کردن (kick) توپ را داشتهباشد، آنرا صاحب توپ فرض میکنیم.
[18] Abstraction Level