تطوير الذكاء الاصطناعي الماكرة في لعبة تكتيكية تعتمد على الاستدلال والطفرات

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

القط المنهي من قبل CoolAI

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

وصف قصير


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

على سبيل المثال ، يتم إنشاء ثلاث استراتيجيات:

  1. تشغيل المحموم جميع إلى الأمام ومهاجمة جميع الذين يحضرون الذراع. نقاط الحالة النهائية: 37000 نقطة.
  2. مهاجمة الرماة من مسافة آمنة ، في حين أن البقية يختبئون في الزوايا. 45000 نقطة.
  3. كل التراجع ، مجموعة والاختباء من الأعداء. إذا كنت تستطيع إصابة أي عدو من مسافة آمنة ، فقم بالهجوم. 18000 نقطة.
  4. في هذه الحالة ، سيتم اختيار الاستراتيجية الثانية.


حسنًا ، يبدو أن كل شيء قياسي. ليس حقا

كل اللب هو كيفية إنشاء البرامج النصية وكيفية حساب معامل قيمة البرنامج النصي. فرض في واحد منهم ، والنتيجة سوف يحزنك.

قواعد اللعبة


لدى اللاعب و AI في البداية 6 وحدات متطابقة في الزوايا. يتناوب كل فريق بدوره من قبل جميع الوحدات في وقت واحد. خيارات تقدم كل وحدة:

  • تخطي خطوة
  • التحرك وتخطي.
  • التحرك والهجوم ( يمكنك وأحيانا تحتاج إلى مهاجمة الخاصة بك ).

يتم إنشاء الملعب وتكوين الفريق من الناحية الإجرائية ( أي ، بشكل عشوائي ، ولكن مع عمليات التحقق من المباح و "اللباقة" مقبولة ). أنواع الوحدات:

  1. Fighter F ، وحدة المشاجرة التي تتمتع بأكبر قدر من النجاة والأضرار والتنقل. وهناك نوع من خزان + الضرر.
  2. آرتشر ، وهو أقل الأضرار ، ولكن الهجوم على مسافة 1-7 في خط مستقيم.
  3. تموت الساحرة W بضربة واحدة من مقاتلة ، ولكن الهجوم كان على مسافة 1-5 في خط مستقيم عبر جميع الوحدات.

حجم الملعب دائمًا 10 * 10.

الحقول الممكنة على الخريطة:

  • الأرض - لا تفرض أي قيود.
  • الجدار - من خلاله لا يمكنك إطلاق النار أو المرور.
  • الماء - من المستحيل المرور من خلاله ، ولكن يمكن لرماة السهام إطلاق النار من خلاله ( الساحر الناري لا يستطيع ).



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

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

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

تم تطوير اللعبة على javascript الأصلي: على divs و css ، وكان هذا هو الحل الأكثر سوء الحظ الممكن [ 2 ]. هذه هي لعبة المتصفح. لم يتم استخدام المحرك. الهدف الوحيد من المشروع هو إنشاء مشغل كمبيوتر قوي "ذو طابع" والقدرة على تغيير هذه الشخصية (حساب cyborgs ، العفاريت العدوانية ، والجان الغادرة ، الزومبي الغبي).

لتقليل "نمط الكمبيوتر" للعدو ، تم تطبيق بعض الحيل:

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

وما هو معقد جدا؟


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

أولا ، لأن في كل منعطف ، تسير وحدات الفريق في وقت واحد ، ثم قد يكون تسلسلها مختلفًا. ومع وجود 6 وحدات في فريق هذه المجموعات يصبح 720 (1 * 2 * 3 * 4 * 5 * 6). إذا كان هناك المزيد من الوحدات ، فسيكون هناك عدد كبير من المجموعات (في 7 - 5040 ، في 8 - 40320 ...). إذا لم تأخذ في الاعتبار الحد الأقصى للنتيجة ، فسيخاطر اللاعب بتجربة السعادة تحسباً للخطوة التالية لمدة 5-10 دقائق ( وإذا كان ثابتًا ، فسوف يزداد التأخير إلى ملايين السنين ، ولن يعاني الجميع ). وبسبب هذه الخاصية ، فإن الذكاء الاصطناعي في بداية المعركة أقل فاعلية منه في النهاية. في الواقع ، في النهاية ، مات نصف الفريق بالفعل.

لا وحدة - لا مشكلة

ثانياً ، يمكن لكل وحدة الانتقال إلى نقاط مختلفة من الخريطة . قد يشبه المقاتلون بمجموعة من الحركة من 1 إلى 41 موقعًا مختلفًا. بالنسبة للسحرة والرماة الذين يتحركون في 3 ، يكون العدد المحتمل للحركات 1-25. على سبيل المثال ، يمكن أن يكون تكوين الفريق هو: 4 مقاتلين ، 1 بركان و 1 رماة. نحصل على إجمالي مجموعات التحركات المختلفة لهذا العنصر: 41 * 41 * 41 * 41 * 25 * 25 = 1766100625. في الواقع ، نظرًا للتقاطعات المتبادلة والتضاريس غير السهلة ، سيكون هناك عدد أقل من المجموعات ، ولكن في حالة نادرة من "الانتثار على الخريطة" ، سيكون عدد المجموعات اقترب من هذا الرقم.

ثالثًا ، يمكن لكل وحدة بعد الحركة تخطي التحرك أو الهجوم في أحد الاتجاهات الأربعة. هذا هو ، لدينا 5 إجراءات نهائية محتملة لكل وحدة. مجموع المجموعات: 5 ^ 6 = 15625.

مجموع المجموعات: 720 * 1766100625 * 15625 = 19868632031250000.

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

كيف يتم ذلك؟


لحل مشكلة مماثلة ، تم استخدام نهج ارشادي ، يمكن وصف الخوارزمية المعممة له على النحو التالي:

  1. قم بإنشاء سيناريوهات مختلفة استنادًا إلى استراتيجيات محددة مسبقًا (~ 20 قطعة).
  2. طالما كان هناك وقت ، قم بتحويل النصوص ، تاركًا الأكثر ربحية.
  3. في النهاية ، حدد السيناريو بأعلى تصنيف.
  4. نفذ الخطوة الأولى للوحدة من البرنامج النصي ، ولكن لا تمشي البقية. ابدأ في تشغيل الحركة الأولى ، وأثناء عرض الرسوم المتحركة ، استمر في تحسين البرامج النصية للوحدات المتبقية.
  5. كرر للوحدات المتبقية من الخطوة 1.

طريقة الاستدلال هي طريقة يمكن أن تعمل (وفقًا لماكونيل [ 4 ]). أكثر وأكثر صرامة على ويكيبيديا [ 5 ].

النقاط الرئيسية في هذه الخوارزمية هي: توليد السيناريو ، والطفرات ، والتقييم الصحيح لربحية الدولة. كل من هذه النقاط يستخدم الاستدلال المحلي الخاص به. ومع ذلك ، حيثما أمكن ، تم استخدام الخوارزميات بنتيجة مثالية مضمونة ، على سبيل المثال ، A * لإيجاد المسار [ 6 ].

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



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

تطور احمق اصطناعي في الذكاء الاصطناعي


0) في البداية ، تم تقديم 3 استراتيجيات فقط مع تحركات عشوائية في الذكاء الاصطناعي. { صعوبة اللعبة # 0 }. كانت نتيجة الحالة مجرد رقم عشوائي. وبما أن الذكاء الاصطناعي ليس هو عنصر التطوير الوحيد ، فقد اضطررت إلى تحمل سلوك الأسماك المجنونة لبعض الوقت.

1) ثم ، عند حساب تقييم الإستراتيجية ، تمت إضافة عمليات فحص الوحدات المتبقية وحياتها مع الذكاء الاصطناعي واللاعب. { صعوبة اللعبة # 10 }. للحصول على وحدة ميتة ، حصل الفريق على 0 نقطة. للحصول على نقاط X صحية تمامًا (على سبيل المثال ، 100000 للمقاتلة F ، و 70،000 للراشر A ، و 85000 لل الساحر W). للجرحى اتهم 50 ٪ من القيمة الأساسية ، والباقي 50 ٪ بما يتناسب مع ما تبقى من حياة الحد الأقصى. بفضل هذا ، كان من الأكثر ربحية أن تقتل منظمة العفو الدولية الأعداء ، وإذا استطاع أن يصيب فقط ، فاختار خصومًا لهم عدد أقل من الأرواح - أكثر عرضة للخطر.

أصبحت التحركات العشوائية أكثر وضوحًا - ردت الذكاء الاصطناعي أحيانًا.

2) ثم أضيفت استراتيجية انطلاق أكثر وضوحا:
max_agro - ركض جميع الجنود أقرب ما يمكن إلى الأعداء وحاولوا إلحاق أكبر قدر ممكن من الضرر . { صعوبة اللعبة # 20 }. استخدمت إحدى الإستراتيجيات ترتيب النقل الأصلي للوحدة ، بينما ذهبت الإستراتيجية الثانية بترتيب عكسي.

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

هذا هو بالضبط ما يبدو عليه سلوك الذكاء الاصطناعى في لعبة Master of Monsters - Disciples of Gaia الفاشلة ، مما يجعل اللعب فيها مملاً [ 10 ].

ماجستير الوحوش - تلاميذ غايا

3) ثم تمت إضافة الاستراتيجيات التي تأخذ في الاعتبار الأضرار المحتملة من الأعداء أثناء الحركة ، واختيار تلك التحركات التي أدت إلى أقل خطر - ويفضل الصفر. { صعوبة اللعبة # 30 }. وأصبحت منظمة العفو الدولية على الفور جبانة مفرطة ، متجنبة أي تقارب مع العدو - من الأفضل الهرب من الهجوم والإصابة ، لأن العدو يمكن أن يحدث المزيد من التغيير!

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

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

لذلك ، عندما قدمت تقنية الحساب مع التنبؤ بعدة خطوات إلى الأمام ، استغرق وقت الحساب لعمق حركات فقط 2 (العدو و AI) بالفعل +700 ميلي ثانية. في هذه الحالة ، يتم استخدام التحسين بقطع الفروع "الضعيفة". إذا استخدمنا استراتيجية max_agro البدائية لهذا ، فكانت الزيادة في الوقت +30 مللي ثانية وكان التخزين المؤقت تقريبًا لم يقلل هذا الاختلاف ( لأن الموضع على الخريطة كان جديد تمامًا ).

كنتيجة لذلك ، قمت بطرح 5 طرق مختلفة لتطوير هذا النهج ، لكنني في النهاية تخلت عن ذلك تمامًا ، لأنه الطفرات مع الاستدلال أعطت نتائج أفضل وأسرع.

4) تهدف الاستراتيجيات التالية إلى توسيع التنوع الأولي للاستراتيجيات:
far_attack_and_hide - تحاول الوحدات مهاجمة العدو قدر الإمكان ، وإذا لم تهاجم ، فإنها تختبئ من أي هجوم.

close_group_flee - تتراجع الوحدات بعيدًا عن المعركة وتكون المجموعة أقرب ما تكون إلى بعضها البعض. إذا استطعت مهاجمة العدو بأمان في نفس الوقت ، فهاجم.
{ صعوبة اللعبة # 40 }.

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

5) ثم حان وقت الطفرات . { صعوبة اللعبة # 50 }.

كانت خوارزمية الطفرة بسيطة للغاية:

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

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

في البداية ، تم تنفيذ النوع الأكثر بدائية من الطفرة: من 1 إلى 3 حركات تم استبدالها بحركات عشوائية ، ظل ترتيب الحركات كما هو. خلال تكرار واحد للحسابات ، تم إنشاء حوالي 5-15 طفرة في المتوسط ​​لكل استراتيجية. علاوة على ذلك ، في المتوسط ​​، كان كل طفرة خامسة أكثر ربحًا واستبدل استراتيجية الوالد.

6) الطعم الاسترشادي . { صعوبة اللعبة # 60 }.

كرر هذا الاستدلال التكتيكية التي استدرت بها منظمة العفو الدولية للهجوم بوحدة واحدة لقتله واحدًا تلو الآخر. تم تدريس هذه الحيلة أيضًا لمنظمة العفو الدولية.

للقيام بذلك ، في وظيفة حساب النقاط لحالة الاستراتيجية ، يتم التحقق مما إذا كانت الحالة الحالية تتوافق مع حالة الطعم:

  • جندي واحد من منظمة العفو الدولية يمكن مهاجمته ؛
  • يستطيع عدو واحد فقط مهاجمة وحدة تم الزحف إليها ؛
  • يجب أن تبقى وحدة مشغل الكمبيوتر بعد هذا الهجوم ؛
  • ستتمكن وحدتان على الأقل من الكمبيوتر من الهجوم استجابة لذلك. لمزيد من هذه الوحدات العقابية ، والمزيد من النقاط للاستدلال.

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


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

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

8) ثم حان الوقت لتوسيع الاستراتيجيات. { صعوبة اللعبة # 80 }. لم أتمكن من إضافة تعداد كامل للترتيب المحتمل لحركات الوحدة ، لكنني استطعت أن أعدد تحركاتهم حسب النوع : مقاتلة ، آرتشر ، ساحر. لذلك ، ظهرت استراتيجيات لتسلسل التحركات ، من النموذج W_A_F: أولاً يسير جميع السحرة ، ثم كل الرماة ، ثم كل المقاتلين.

وبالتالي ، تمت إضافة 6 استراتيجيات جديدة: W_A_F ، W_F_A ، A_W_F ، A_F_W ، F_A_W ، F_W_A. لم يحلوا جميع المشاكل ، لكنهم تحسنوا بشكل كبير في جودة اللعبة.

9) كان لدي طفرات ، لكنها كانت قليلة الفائدة. { صعوبة اللعبة # 90 }. في الغالب قاموا بتحسين الاستراتيجيات الضعيفة ، بينما نادراً ما تحسنت الاستراتيجيات الناجحة. لذلك ، تم تعديل الطفرات وفي كل مرة يعمل أحد الأنواع العشوائية من الطفرات:

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

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

10) ثم ، تم إضافة المزيد من الاستراتيجيات شبه العشوائية . { صعوبة اللعبة # 100 }. تم إنشاء ترتيب الحركات بشكل عشوائي ، وتم اختيار الحركات نفسها وفقًا للمبادئ التالية (لتقليل أهميتها):

  • إلحاق أقصى ضرر ؛
  • تأخذ أقل قدر ممكن من الضرر ردا على ذلك ؛
  • اقترب من أعدائك قدر الإمكان.

لم أشاهد تحسنًا ملحوظًا هنا ، لكن المشروع قد انتقل بالفعل إلى المرحلة التي يؤدي كل تحسين فيها إلى آثار أقل تكرارًا ملحوظة.

11) لقد سئمت من الأخطاء الفادحة التي ارتكبتها منظمة العفو الدولية ، عندما هاجم جندي أثناء الهجوم مع الساحر ، لكن في الوقت نفسه أصاب حلفائه. { صعوبة اللعبة # 110 }. رغم أنه قبل ذلك ، كان بإمكانه التجول معهم وإخراجهم من خط النار. لذلك ، تم إنشاء إستراتيجية منشورة مع الشيكات اليدوية :

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

يمكن وصف الاستراتيجية بسهولة بالكلمات ، لكن من الجيد برمجتها.

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

1. إذا هاجمت الوحدة هذا المنعطف ، فستتلقى +1500 نقطة.
2. إذا لم تقم بالهجوم ، فسيتم حساب المواقف التي يمكن أن يتسبب فيها الأعداء في إلحاق الضرر بالحلفاء. تابع العد إذا كان هناك أكثر من 0 من هذه المواضع (N> 0).
2.1. إذا لم تتمكن الوحدة من الوصول إلى أي موقف وضربه (ن = 0) ، فستحصل على غرامة قدرها 1000 نقطة.
2.2. إذا تمكنت الوحدة من الوصول إلى جميع المراكز ، فستحصل على +1200 نقطة.
2.3. إذا تمكنت الوحدة من مهاجمة مواقع معينة ، فستحصل على + (n / N) * 1000 نقطة.

«» . , « », , , . , 2 , 3 . :

IF ("   ,   " AND "    3 ") THEN "      " 

13) في نهاية إدخال الاستراتيجيات ، تراكمت لديهم بالفعل أقل من 25 قطعة. { صعوبة اللعبة # 130 }.

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

14) في البداية ، كان هناك مراجعة مثيرة للاهتمام. في البداية ، تم حساب قيمة السيناريو كالفرق في مجموع النقاط:

 _ = _ - _ 

لكن بعد العديد من التحسينات ، تذكرت أن هذا ليس هو الحل الأفضل ، لأنه ثم بالنسبة لمنظمة العفو الدولية ، فإن المواقف "2 جنود مقابل جندي واحد" و "4 جنود مقابل 3 جنود" ستكون هي نفسها. لذلك ، بدأت تحسب النقاط كنسبة:

 _ = _ / _ 

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

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

إليك طريقة لعب AI النهائي { Difficulty of game # 9999 }:


يسير الذكاء الاصطناعي على الفور ، وليس إضاعة الوقت في التفكير


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

التكنولوجيا الرئيسية للسرعة العالية هي الحسابات الأولية خلال فترة التوقف. تتكون هذه الطريقة من تقسيم العملية إلى جزأين: العمليات الحسابية نفسها والرسوم المتحركة لنتائج الحساب:

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

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

من خلال القيام بذلك ، أردت التخلص من نافذة الانتظار المزعجة "مناحي الكمبيوتر". مثل هذا الموت غير السار هو في العديد من الألعاب الجيدة ، على سبيل المثال ، في Xenonauts [ 12 ]. أعتقد أنني كنت قادرًا على التعامل مع هذه المشكلة.

Xenonauts - حركة خفية

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

ما هي النتيجة وما هي عيوبها


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

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

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

ميزات إضافية


تتيح لك طريقة التنفيذ هذه تحقيق مكافآت إضافية في تطوير اللعبة ( في كثير من النواحي من وجهة نظر المطور وشروطه الملحة ):

  1. ظهور ميكانيكا جديدة في اللعبة لن يدمر قوة مشغل الكمبيوتر ، على الرغم من أنه سيضعفه تدريجيا مقارنة باللاعب. يمكن تعويض هذا الضعف عن طريق إدخال استدلال إضافي. حتى لا يؤدي هذا إلى نفقات تدريجية للموارد ، لا يمكن تطبيق هذه الأساليب الجديدة إلا إذا كانت هذه الآليات الجديدة موجودة في المعركة الحالية.
  2. مستويات صعوبة ذكي حقا. الآن يحدد مستوى الصعوبة أساسًا المكافآت التي سيحصل عليها مشغل الكمبيوتر كموارد ( المزيد من الذهب في البداية أو كمكافأة في التعدين ) أو مقدار ما سيهزمه جنوده ( + 50٪ للتلف ). إنه يعمل ، لكن يمكنك جعل الذكاء الاصطناعي أقل ذكاءً فقط عن طريق تعطيل بعض الاستدلال تدريجياً مع انخفاض التعقيد.
  3. في استمرار الفقرة الثانية ، يمكنك إنشاء أعراق / فصائل مختلفة من خصوم الكمبيوتر : فقط الاستراتيجيات العدوانية تعمل من أجل العفاريت ؛ في حشود من الزومبي ، فقط البدائي "الجري والهجوم" ؛ و cyborgs استخدام القوة الكاملة لمنظمة العفو الدولية. بفضل هذا اللاعب قبل الهجوم سيتعين عليه تقييم ليس فقط أعداد المعارضين ، ولكن أيضًا تقييم ذكائهم.

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

أين تشعر


يمكنك اختبار قوة هذا الذكاء الاصطناعي في متصفح الدمدمة التكتيكي لمنظمة العفو الدولية. اختبار الموضوع "مجاني على مواقع مثل itch.io [ 13 ]. ستعمل المعلمة GET ai (القيم من 0 إلى 140 في الخطوات من 10) على تقليل تعقيد الذكاء الاصطناعي.

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

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

مراجع


1. DeepMind - مقالات عن حبري .
2. ألعاب HTML5: Canvas vs. SVG مقابل div على stackoverflow .
3. انفجار اندماجي - ويكيبيديا .
4. كود ستيف ماكونيل المثالي هو هبر .
5. طرق ارشادية - ويكيبيديا .
6. A * - ألعاب ريد بلوب .
7. الخوارزمية الجينية. فقط عن الصعب - هبر .
8. ثماني مباريات مذهلة مع الذكاء الاصطناعي من شركة جوجل - هبر .
9. لفترة وجيزة جدا عن سوفوروف وكوتوزوف .
10. ماجستير الوحوش - تلاميذ غايا - مراجعة على IGN .
11. شرح مفصل لحلقات لعبة JavaScript وتوقيتها .
12. Xenonauts وشاشة الاستعداد الطويلة لمنظمة العفو الدولية .
13. منظمة العفو الدولية الدمدمة التكتيكية. موضوع الاختبار - على حكة.

Source: https://habr.com/ru/post/ar461287/


All Articles