استمرار المشاركة (والنصر) في كأس منظمة العفو الدولية الروسية 2019

مرحباً بالجميع ، اسمي أندري توكاريف ، ومرة أخرى أود أن أشارك تجربتي في المشاركة والنصر في كأس منظمة العفو الدولية الروسية.

إذا كان أي شخص لا يعرف ، فإن كأس الذكاء الاصطناعي الروسي (المشار إليه فيما يلي باسم RAIK) هو بطولة برمجة الذكاء الاصطناعي حيث يجب علينا (أو بالأحرى برنامجنا) إدارة شخصية أو أكثر (وحدات) تتنافس مع بعضها البعض. كانت اللعبة هذا العام عبارة عن منصة ثنائية الأبعاد ، تذكرنا بألعاب الكمبيوتر في أوائل التسعينيات ، وكانت الوحدات رجالًا مسلحين كان من المفترض أن يقتلوا نفس رجال العدو. يمكنك قراءة المزيد عن هذا في الإعلان.



هذه المرة لم يكن هناك اجتماع عندما جاء جدول الأعمال لبدء RAIK ، لذلك دعونا نصل إلى النقطة.


النظرة الأولى


لذا ، دهست القواعد ، جربت اللعبة. كان الانطباع الأول - ماذا تفعل هنا؟ بما أن الوحدات لم يكن بها الجمود ، وكانت المستويات الأولية بدون دورات مغلقة ، يمكن للعدو أن يلتصق بنا دائمًا إذا أراد ذلك ، وكان الدفاع عن نفسه ضد هذا مستحيلًا. وفي هذه الحالة ، كما تعلمون ، الإمكانيات محدودة للغاية. لن تتهرب من الرصاص. لكن مخاوفي الأولى لم تتحقق ، على الرغم من أن عامل الصدفة كان عالياً ، تبين أن القواعد قابلة للتشغيل تمامًا.

لم أبدأ على الفور في التطور ، سقط بضعة أيام أحمققررت أن تعكس. لم أتوصل إلى أي شيء خاص. من الواضح أنك بحاجة إلى تفادي الرصاص ، والركض بعد مجموعات الإسعافات الأولية ، وإذا أمكن ، لا تدع العدو يأخذ مجموعة إسعافات أولية وكل ذلك. كانت لا تزال هناك خطة غامضة للعثور على مواقف مفيدة استراتيجيا ، وتدور حولها ، ولكن لم يكن من الواضح تمامًا كيفية التمييز بين هذه المواقف.

بداية


حسنا هيا بنا. خارج العادة ، أقوم بتحويل كائنات البيانات في حزمة اللغة إلى هياكل البيانات الخاصة بي. نعم ، يستغرق الأمر بعض الوقت ، ولكن ليس كثيرًا ، لكني أحصل على مزيد من المرونة ، وأعمل في بيئة مألوفة أكثر ، وأثناء التحويل ، من الأفضل أن تبدأ في فهم كيفية عمل عالم اللعبة. بالطبع ، ليس كلها مرة واحدة ، ولكن حسب الحاجة. على سبيل المثال ، لم أعيد إنشاء الألغام حتى أجبرني الوضع السياسي في البطولة على اللجوء إلى الإجراءات الصارمة. لقد نسخت تقريبًا منطق Smartgayev ، مضيفًا فقط شيكًا لوجود جدار بيني وبين العدو. نظرت ، يبدو أنها تعمل بشكل جيد ، حتى نفترض أن لدينا عالم اللعبة.

محاكاة


ننتقل الآن إلى التسلية المفضلة لدى جميع المشاركين في RAIK: نحن نكتب محاكاة! بعد قراءة محادثة البطولة ، أصبح من الواضح أن كتابة محاكاة دقيقة أمر سيء. لذلك سجلت على الفور للتأكد من دقتها. اتضح ، كما حدث ، حتى مع انتعاش بسيط من السقف ، كان هناك تناقض داخل خشب الساج. كان من الممكن بالطبع العبث بها لعدة أيام وزيادة الدقة بشكل كبير ، ولكن ، أولاً ، من غير المعروف ما هو الربح من هذا. ثانيًا ، كنت صبورًا جدًا ، وكالعادة أردت أن أرى النتيجة في أسرع وقت ممكن. لذلك قررت البدء في كتابة الاستراتيجية نفسها ، واعتقدت أنني سأصحح منحنى المحاكاة الخاص بي ، إذا لزم الأمر. بعد فوات الأوان ، يجب أن أقول أنني ربما كنت مخطئا.
سيكون من المفيد جلب المحاكاة على الفور إلى الوضع الطبيعي ، لذلك كان من الضروري إجراء تصحيحات هناك حتى نهاية البطولة ، ولا تزال معوجة.

أساس استراتيجي


ثم نمضي وفقًا للسيناريو القياسي: ننشئ تسلسل إجراءات روبوتات الوحدات ، ونحاكي تغييرًا في عالم اللعبة ونقدمها جميعًا إلى مدخلات وظيفة التقييم (OF). إذا كان في كرة القدم (بطولة العام الماضي) لم يكن فعالًا الركض بعد الكرة بعدد عشوائي عشوائي من اللاعبين (هناك فرصة ضئيلة جدًا لضرب الكرة ، خاصة من الزاوية اليمنى) ، فلا توجد مشكلة من هذا القبيل. في الأساس ، نحن بحاجة إلى محاكاة لشيئين: التهرب من الرصاص وإيجاد الطريق. يكفي عدد قليل من سيناريوهات الإجراءات العشوائية للتهرب من الرصاص. ستعمل عدة عشرات من السيناريوهات أيضًا للبحث عن طريقة أكثر أو أقل ، على الأقل ، على خرائط ليست صعبة للغاية.

بالمناسبة ، البحث عن الطريق - من الواضح أن العد حتى النهاية ليس ممكنًا دائمًا ، لذلك يجب أن تكون قادرًا على تحديد المسافة. باستخدام نفس المحاكاة ، يمكن للمرء أن يحسب المسافات بدقة أكثر أو أقل. ولكن هنا قمت أيضًا بتبسيطها ، فقط أحسب المسافات على طول شبكة مستطيلة. كان لهذا التبسيط بالطبع بعض النتائج على الخرائط المعقدة. في بعض الأحيان ، كانت وحداتي لا تزال مشوشة في البحث عن أسلحة ، بينما كان العدو قد بدأ بالفعل في إطلاق النار. صحيح أن هذه الحوادث كانت نادرة للغاية.

كان اختيار الهدف بسيطًا للغاية: بينما لا توجد أسلحة ، نذهب إلى الأسلحة ، إذا كانت هناك أسلحة ، نذهب إلى العدو ، وإذا كان هناك القليل من "الصحة" ، نذهب إلى خزانة الأدوية. في حالة مجموعات الإسعافات الأولية والأسلحة ، تم استبعاد تلك الأشياء التي كانت أقرب إلى العدو كهدف. لسبب ما ، كانت الأولوية على الأسلحة بالنسبة لي أولاً على الجهاز.

تتكون وظيفة التقييم الأولى من مكونين: الصحة (ليست ملكي ، ولكن وحدة) ذات معامل كبير ، والمسافة إلى الهدف بمعامل صغير.
أولئك. تم اختيار الطريق الذي لا يقع فيه تحت الرصاص ، ولكن في نفس الوقت يقترب من الهدف في أسرع وقت ممكن. من المهم أن تتذكر أفضل مسار تم العثور عليه للقراد التالي ، وإلا فقد ينشأ موقف عندما نجد خيارًا جيدًا ، ولكننا لم نعطيه في العلامة التالية.

نذهب إلى الأمام ، والتحسينات الأولى


بالنظر إلى المعارك ، كان من الواضح أنه إذا كان لدى العدو مراوغة عادية ، فإنه يكاد يكون من المستحيل الدخول إليه من مسافة طويلة. هذا مضيعة للرصاص. لذا أضفت شرطًا بسيطًا لإطلاق النار: أطلق النار فقط إذا كان العدو أقرب من 7 أمتار. بالإضافة إلى ذلك ، إذا كانت المسافة كبيرة جدًا ، فمن الجدير إعادة شحنها ، حتى إذا فقدت رصاصة واحدة فقط في المقطع. أضاف هذان الشرطان البسيطان قليلاً جدًا.

كانت هذه هي النسخة الأولى التي أرسلتها. في نفس اليوم ، أدركت أن البندقية أكثر ربحية من المدفع الرشاش. بالإضافة إلى ذلك ، أضاف إلى OB مسافة أخرى للعدو ، في حال لم تكن الرمية قريبة. وهكذا ، عند إعادة التحميل ، حاول الحفاظ على بعده.

كانت البداية ناجحة للغاية. لا أتذكر مدى ارتفاع الاستراتيجية التي تمكنت من الارتفاع في الترتيب قبل إعادة التعيين (في مكان ما حول الثلاثة أو الخمسة الأولى) ، وبعد إعادة التعيين ارتفعت بثقة.

كان التحسين الرئيسي في الإصدار التالي بسبب محاولة التحكم في مجموعات الإسعافات الأولية. هنا مرة أخرى ، كان كل شيء بسيطًا: تم حساب المسافة من مجموعات الإسعافات الأولية إلي والعدو ، وإذا كانا متساويين تقريبًا ، فقد كان يعتقد أن مجموعة الإسعافات الأولية قد تم رسمها ، وبالتالي ، الشخص الذي تكون أقرب إليه. تم أخذ ذلك في الاعتبار من قبل وظيفة التقييم. أولئك. من الناحية النظرية ، حاولت الوحدة وضع نفسها بحيث تحجب أكبر عدد ممكن من مجموعات الإسعافات الأولية. من الناحية النظرية ، بالطبع ، ولكن ليس في الممارسة.

بعد ذلك ، لم أرسل تحديثات لفترة طويلة. لدهشتي ، وصلت الإستراتيجية أولاً إلى المركز الأول ، ثم لا تزال تأتي بأكثر من 100 نقطة. ربما اعتقد الجميع أنني كنت أقوم بقطع شيء رائع ، وقد صدمت كيف ارتفعت هذه الاستراتيجية البائسة. بائسة ، لأنه ، حسنًا ، هناك سيطرة خرقاء على مجموعات الإسعافات الأولية ، هناك نوعان من ifs لإطلاق النار ، ولكن في الأساس هذا دودج بسيط وحركة مبنية على منحنى محاكاة.

اختبارات


أود أن أتحدث عن هذا بشكل منفصل ، لأنه يعد الاختبار الصحيح جزءًا مهمًا جدًا من التطوير ، ويبدو أن العديد من المشاركين يتجاهلون هذا الجانب. يساء فهم الحوادث بشكل حدسي من قبل الناس.

لنفترض أننا أجرينا اختبارًا وبعد 40 مباراة نرى نتيجة 27:13 لصالح المباراة الجديدة. هذا كل شيء ، وجدنا الكأس ، أوقف الاختبار وقبلنا التغييرات. في الواقع ، حتى مع وجود قوى متساوية ، هناك احتمال 2 ٪ تقريبًا لمثل هذا الموقف.

مثال آخر ، نطلق 100 لعبة ونقبل التغييرات إذا كانت النتيجة 55:45 أو أكثر. مع احتمال 2.8 ٪ ، يمكن للنسخة أن تلعب بهذه الطريقة ، والتي في الواقع يجب أن تخسر بنفس النتيجة. قد لا يبدو أن النسبة المئوية للخطأ كبيرة جدًا ، ولكن إذا فشلت 90٪ من تغييراتنا ، فهذا يعني أن كل تغيير رابع مقبول لن يكون ناجحًا. لذا ، حتى 100 لعبة لا تزال اختبارًا صعبًا ، ولكنها أقل - لا شيء على الإطلاق.

بالطبع ، يمكن أن يستغرق إطلاق عدة مئات من الألعاب وقتًا غير لائق. هناك خيارات مختلفة ، يمكنك إجراء الاختبارات في الليل ، أو القيادة في الخلفية ، أو استئجار وقت الخادم ، أو جعل الإستراتيجية سريعة :) عملت الإصدارات الأولى في المتوسط ​​، في مكان ما ، لمدة 5 ثوانٍ. للعبة ، محظوظ جدا في ذلك.

إذا كانت الإستراتيجية بطيئة ، فيمكنك عندئذٍ قيادة النسخ المقتطعة محليًا - على سبيل المثال ، عدد أقل من عمليات البحث ، وعدد أقل من العلامات الدقيقة. لقد استخدمت هذا في كرة القدم (RAIK سابقًا) ، ولم يلاحظ أي مشاكل. ربما يتم فقدان الجودة في مكان ما ، ولكن ، على أي حال ، فهي أكثر ربحية من التحقق من التغييرات في 20 لعبة.

التحسينات


هذه المرة لن أقوم بتقييم التحسينات في الأرقام. أولاً ، كانت جميعها صغيرة (أقل من 20٪) وبالتالي كانت غير دقيقة. ثانيًا ، غامض ، أي يمكن للإصدار الجديد أن يفوز بثقة على النسخة السابقة ، ويلعب بشكل أسوأ ضد الآخرين. وثالثًا ، لا أتذكرهم.

  • , . , . , , .
  • . .. , , . , , -. , . , , . .
  • , , . , , , , , . , . , .
  • , ? , , . . , . .

-


بموضوعية ، تحتاج إلى إطلاق النار في الاتجاه حيث حصيرة. توقع الضرر أعلى. من الواضح أنه من الناحية التحليلية ، لا يمكن حساب ذلك ، وحيث لا تساعد الرياضيات ، كما نعلم ، تأتي عملية الإنقاذ. نطلق النار في كل الاتجاهات الممكنة ونحاول تفادي العدو من كل رصاصة على حدة. لكل تجمع نعين الحد الأدنى لقيمة الضرر الذي سيلحقه بدقة. في حالة الرصاصة التقليدية ، تكون إما 0 أو تلفها ، وفي حالة الصاروخ هناك 3 خيارات.

الآن نعرف حصيرة. نتوقع ضررًا في كل اتجاه بشكل منفصل ، من هذا يمكننا حساب الحصيرة بسهولة. انتظر كل اتجاه من اللقطة واختر الأفضل. سيكون من الجيد استخدام هذه الوظيفة في التعداد بحيث يتم وضع الوحدة بشكل صحيح ، ولكن كان بطيئًا جدًا في الاتصال بها لكل سيناريو. تم استدعاؤه مرة واحدة لكل علامة لكل وحدة ، والآن تم تنفيذ التصوير ليس عن بعد ، ولكن إذا تجاوز الضرر المتوقع حدًا معينًا. كانت الزيادة كبيرة ، وفي حالة البازوكا ، بدت واضحة جدًا - الآن يمكن لي أن تصوب في مكان ما على الحائط من أجل ضرب العدو بموجة انفجار.



ولكن نظرًا لحقيقة أنني لم أتمكن من إدراج هذه الوظيفة في البحث ، كانت هناك مشكلة في اختلاف شروط اللقطة في البحث وفي الواقع. لم أكن أعرف كيفية حل هذه المشكلة ، كان علي أن أعيش معها.

بعد ذلك ، لم تكن هناك تغييرات مهمة للغاية حتى اليوم الأخير عندما أدخلت التفجير الذاتي. وأضاف عقوبة إذا لم يكن هناك قفزة متبقية في اللحظة التي أطلق فيها العدو النار ، لأن السقوط سيصعب من المراوغة. حاولت التنبؤ بطريق العدو إلى مجموعة الإسعافات الأولية ، إذا كان لديه عدد قليل من الأرواح ، وبالتالي تحسن سيطرتهم عليها قليلاً. بدأ هو نفسه في الركض بعد مجموعات الإسعافات الأولية من 60 ٪ من صحته ، بدلاً من 50 ٪. أضاف المسافة بينه في PF حتى لا يتدخلوا مع بعضهم البعض ، ولن يدق البازوكا اثنين على الفور. في النهاية ، أضاف طريقة عدوانية في حال لم يتغير الوضع لفترة طويلة وخسرت نقاطًا ، وإلا فإن تعطلي أحيانًا.

النتائج


كما قلت ، سرعان ما وصلت إلى المركز الأول في الترتيب. باستثناء فترات زمنية قصيرة ، بقيت هناك حتى النهاية. في الجولات ، كان الوضع أسوأ قليلاً: المركز الرابع في الأول ، والثالث في الثاني. هذا يشير إلى أنني لعبت بشكل جيد ضد لاعبين أقوياء ، لكنني لست مستقرًا بما يكفي ضد الضعفاء. وقد تم إثبات ذلك بوضوح من خلال إحدى مباريات الجولة الثانية ، حيث ضربني kostya200300 ، الذي كان آنذاك في المركز الأخير ، على 0!


التفجير الذاتي


مثل معظم المشاركين ، لم أكن متحمسة لإمكانية حدوث انفجار ذاتي. هذا زاد بشكل كبير من عامل عشوائي كبير بالفعل. ولكن كان من الواضح أنه لا يمكن الاستغناء عنها. صحيح ، لم أكن أرغب حقًا في القيام بذلك ، وقمت بتأجيله حتى آخر يوم. هذه التقنية بسيطة للغاية ، إذا كنا نقف على الأرض ، فإن العدو في دائرة نصف قطر الانفجار ولدينا ما يكفي (لغمين) كحد أقصى ، ثم نضع الألغام ونطلق النار في الأسفل. لقد وضعت شرطًا إضافيًا أنه بعد الانفجار أحصل على ميزة واضحة ، أي إما أن تربح أو تقتل خصومًا أكثر من خصومهم. اعتقدت أنه منذ أن أطمح إلى مكان مرتفع ، فإن تغيير واحد على الآخر أمر غير مربح. حسنًا ، إنها مثل لعبة الشطرنج ، إذا كنت تلعب للفوز ، فإن تبادل كل شيء على التوالي أمر غير مربح. هذه هي الطريقة التي أرسلت بها محاربي الموهوبين بمهارات الكاميكاز إلى المعركة النهائية.

الاخير


كما كتبت بالفعل ، فإن التصنيف يتحدث فقط عن توازن القوى مع أقرب المنافسين ، ولم يكن لدي استقرار ضد المنافسين الأضعف. في هذا الصدد ، أدى إقصاء المشاركين في النهائيات إلى فوضى بالنسبة لي. من ناحية أخرى ، أدى الانتشار الواسع للأيديولوجية الإرهابية في اليوم الأخير إلى انتشار إضافي في توزيع القوات. باختصار ، على الرغم من القيادة الواثقة في الترتيب ، لم يكن هناك أي ثقة في المباراة النهائية ، كان هناك فقط أمل. بعد النصف الأول من النهائي ، أصبح من الواضح أن الصراع الرئيسي سيكون بيني وبين إيفان تيامجين. لقد قادت إلى عدد قليل من النقاط ، في حين أن البقية كانت بعيدة.

خلال الفاصل ، تلاعبتالتقاط التفجير الذاتي - تم إصلاح شيء ما (اتضح أنه لا ينبغي وضع الألغام في الجزء العلوي من الدرج) ، وأضاف بعض الإجراءات المضادة ضد التفجير. وأصلحت المحاكاة ، لأنه حتى الآن تمسك المنجم بالزاوية.

كانت بداية الجزء الثاني من الجولة النهائية ناجحة بالنسبة لي ، وبدأت الفجوة تنمو ببطء ووصلت إلى حوالي 20 نقطة كحد أقصى. لقد استرخيت قليلاً وبدلاً من تحديث صفحة النتائج كل 3 دقائق ، بدأت في لعب الشطرنج على الهاتف. عندما نظرت مرة أخرى ، كانت الفجوة بالفعل حوالي 7 نقاط ثم تدحرجت بسرعة إلى النقطة الأولى. أتساءل ما يعطونه للمركز الثاني؟ ساعة واحدة حتى النهاية ، مرة أخرى هناك فجوة. 30 دقيقة ، يتم تقليل الفجوة بشكل كارثي. 10 دقائق - 3 نقاط فقط! دقيقة واحدة ... يبدو النصر! خسرت فانيا بالنسبة لي 3 نقاط فقط. هذا ضمن مبعثر عشوائي. والباقي 50 نقطة أو أكثر.

حول البق مضحك


بالفعل بعد المباراة النهائية ، لاحظت أنه في بعض المباريات تتصرف وحدتي بشكل غريب - فهي لا تتجنب الرصاص عندما ، على ما يبدو ، يمكنهم ذلك ، وحتى ، كما لو تم التقاطهم بشكل خاص. اتضح أنه خلال استراحة المباراة النهائية ، أخطأت - عندما تم تحديد ما إذا كان العدو يمكن أن يفجرني ، كان من الضروري حساب أي من الألغام كان في دائرة نصف قطر الانفجار. هنا قمت بخلط إحداثيات الوحدة الخاصة بي ووحدة أخرى وافترضت خطأً أن الانفجار سيحدث في مكاني ، وبالتالي مضمون الوقوع في نصف قطر الانفجار. تم اعتبار الانفجار الحقيقي بالفعل من النقطة الصحيحة ، لذلك في المحاكاة يمكن أن ينفجر العدو نفسه بعيدًا عني. عادة ما يضيف ثابتًا كبيرًا إلى التقدير ، لكنه لم يؤثر حقًا على أي شيء. ومع ذلك ، إذا لم يكن لدى العدو ما يكفي من الألغام لتفجير لي ، اتضح أنه من المربح بالنسبة لي أن أصاب برصاصةحتى يكون لدى العدو بالفعل ما يكفي من الألغام ، وحصلت على الإضافة إلى التقييم. ربما كان ذلك بسبب قلة النوم ، أو علبة البيرة في حالة سكر ، ولكن في الواقع ، تحدث الأخطاء دائمًا.

استنتاج


اللعبة ، على الرغم من أنها ليست مذهلة مثل كرة القدم ، لم تكن أقل إثارة للاهتمام من وجهة نظر الإستراتيجية. كان دخول العتبة منخفضًا نسبيًا ، مما أثر بشكل إيجابي على عدد المشاركين. لقد استقبلت الكثير من المشاعر خلال شهر البطولة ، سواء الفرح أو العواطف ، ولهذا أنا ممتن للمنظمين. كما أشكر جميع المشاركين ، وخاصة فانيا تيامجينا ، على عدم إصابتي بالملل في النهائيات.

All Articles