İl: Dominion üçün bir krallığa uyğunlaşan AI

Göndərildi: 08.09.2021
Məqalənin müəllifi Adəm Quliyev

Bu AI təcrübəli Dominion oyunçuları ilə asanlıqla rəqabət aparır. Dominion üçün AI yazma nəzəriyyəsi ilə maraqlanmırsınızsa, Satınalma Strategiyaları bölməsinə keçin və ya yuxarıda əlaqəli tətbiqlə oynayın.

Məzmun

Dominion, Donald X. Vaccarino tərəfindən hazırlanan və Rio Grande Games tərəfindən nəşr olunan bir göyərtə qurma kart oyunudur. Goko və Isotropic kimi saytlarda mürəkkəb kart qarşılıqlı əlaqələri və əhəmiyyətli bir onlayn izləmə ilə çox populyar bir kart oyunudur, halbuki hazırda bacarıqlı oyunçularla rəqabət edə biləcək bir AI rəqib tapmaqda çətinlik çəkəcəksiniz. Dominionun əsas cazibədar yerlərindən biri, oyunun təsadüfi olaraq tədarük kartları dəsti ("krallıq kartları" və ya sadəcə oyun üçün "səltənət" olaraq adlandırmaq üçün) seçilməsi ilə başlamasıdır. Bu, oyunu yaxşı oynamağı çox çətinləşdirir, çünki əvvəllər bu dəqiq kart dəsti ilə oynamamağınıza baxmayaraq, hər oyunda bir krallığı necə oynayacağınıza dair qərar verməli olacaqsınız. Təcrübəli oyunçular, bənzərləri olan əvvəlki oyunlara əsasən qərar verəcəklər.amma yenə də tamamilə fərqli, krallıqlar. Bu, birlikdə işləyən kartların birləşmələri və nisbətləri haqqında biliklərin ötürülməsini mümkün etsə də, hələ də bu kartlarla geniş oyun oynamadan başa düşmək çox çətin olan yeni krallığın aspektləri ola bilər. Yeni krallıqda birlikdə çox yaxşı işləyən yeni kart birləşmələri ola bilər və ya başqa güclü strategiyaları pozmaqda təsirli olan kartlar ola bilər. Mütəxəssis oyunçular, yeni bir krallıq üçün dominant strategiyaların nə olduğu və bu strategiyaların bir -birinə qarşı nə qədər təsirli olacağı ilə bağlı çətin qərarlar verməlidirlər. İşləri daha da çətinləşdirmək üçün Dominion xeyli miqdarda təsadüfi davranışa sahib bir oyundur. Çox təsirli bir strategiyanın vasat bir strategiyaya məğlub olma şansı olduğu üçünOyunçular, yaxşı qərarlar verməyi öyrənmək üçün çox sayda fərqli oyun üzərində təcrübələrini ortalamalıdır.

1. Dominion üçün Süni Zəka Dizaynı

Dominionu insanlar üçün həm maraqlı, həm də çətin edən eyni xüsusiyyətlər, Dominion üçün təsirli AI -lərin dizaynına qədər uzanır. Dominion üçün bir AI -nin ola biləcəyi bir çox fərqli məqsəd və məhdudiyyət və bir dizayn hazırlamaq üçün istifadə edilə bilən geniş yanaşmalar var. Spektrin bir ucunda, diqqət layihənin akademik dəyərinə yönəldilə bilər: məsələn, hər hansı bir evristik oyundan qaçınmaq və rəqabətli birgə təkamül kimi bilinən AI texnikaları ilə müqayisə etmək. Bu layihələr çox maraqlıdır, amma təəssüf ki, bu cür akademik ümumilik çox vaxt həm oyun effektivliyini (AI -nin zəifləməsi ilə nəticələnir), həm də hesablama səmərəliliyini (son dərəcə uzun təlim müddətləri ilə nəticələnir) qurban verir. Dominion AI-yə akademik mərkəzli bir yanaşma burada tapa bilərsiniz. Maraqlı olsa da, bu iş əsas oyunla məhdudlaşır,nisbətən sadə strateji davranışa malik olan və xüsusi krallıqlar üzrə təhsil almayan, bu da təsirli oynamağı çox çətinləşdirir.

Spektrin digər ucunda, Goko -nun istifadə etdiyi yanaşma var, burada AI -nin hansı kart birləşmələrini və hansı nisbətlərdə satın alacağına dair xüsusi qaydaların uzun bir siyahısını və hər bir kartı sınamaq üçün dəqiq üsulları istifadə edərək öyrədir. mümkün olan bütün ssenariləri nəzərə almaq. Praktikada belə bir AI olduqca kövrəkdir, yeni kartlara asanlıqla uyğunlaşa bilmir və Dominion, ehtimal ki, ümumi halları və effektivliyini azaldaraq əhəmiyyətli halları qaçıracaq.

İl, bir akademik dəyər, təsirli oyun və ümumi istifadə qabiliyyəti arasında bir tarazlıq yaratmağa çalışdığımı yazdığım bir Dominion AI -dir. Dizayn edərkən əsas məqsədim təcrübəli Dominion oyunçuları üçün faydalı nəticələr çıxarmaq idi. Bunun üçün AI -nin insanlar tərəfindən asanlıqla başa düşüləcək şəkildə parametrləşdirilməsi lazımdır - sinir şəbəkələri və vektor maşınlarını dəstəkləmək kimi texnikalar, maşın öyrənmə vəzifələrində çox təsirli olsa da, daxili davranışları təsirli olan qara qutulardır. hətta maşın öyrənmə mütəxəssislərinin də başa düşməsi çətindir. Bacarıqlı oyunçulara faydalı olmaq üçün, AI -nin də yüksək oyun səviyyəsində rəqabət aparması və ağlabatan müddətdə nəticə çıxarması lazımdır.Əyalətin nüvəsi, müəyyən bir səltənəti ələ keçirən və özünə qarşı milyonlarla oyun keçirən, dominant strategiyaların inkişaf edən bir siyahısını hazırlayan rəqabətçi coevolutionə əsaslanan çox aqressiv bir strategizasiya çərçivəsidir. Daha sonra bütün aparıcı strategiyalar və istifadəçiyə görünən nəticələr arasında bir turnir keçirilir (bir neçə nümunə üçün aşağıya baxın). Burada əyalətin bəzi əsas xüsusiyyətlərinin xülasəsi verilmişdir:

  • Krallığa xas təlim-İldəkiAI, müəyyən bir krallığı araşdırır və krallığa xas bir sıra strategiyalar hazırlayır. Bu, təcrübəli insanların oyunu necə oynadığını və çox təsirli bir oyunçu ilə nəticələndiyini təqlid edir, həm də bir çatışmazlıqdır, çünki AI -nin hər yeni krallığa qarşı yenidən hazırlanması lazımdır. AI, öyrədilməmiş bir krallığa qarşı oynayırsa, çox pis performansa səbəb olan təsadüfi oyun qərarları verəcəkdir.
  • Nəsillərin birgə təkamülü-Hansı strategiyaların ən yaxşı olduğunu müəyyən etmək üçün, AI təsadüfi namizəd strategiyalarından və daha kiçik dominant strategiyalardan ibarətdir. Namizəd havuzundakı bütün strategiyalar daha sonra aparıcı strategiyalara qarşı sınaqdan keçirilir və ən yaxşısını edənlər gələcək nəsildə lider olurlar. Yeni namizəd hovuzu yeni liderlərin mutasiyaları olaraq formalaşır və dövr təkrarlanır.
  • İnsanların oxunaqlılığı - Süniintellekt, Dominion strategiyalarının məkanında aşağıda daha ətraflı izah edilən olduqca sadə bir parametrdən istifadə edir. Bu daha məhdudlaşdırılmış parametrləşdirmə, daha mürəkkəb maşın öyrənmə texnikalarının təklif etdiyi gücün bir hissəsini istismar etməsə də, insanlar tərəfindən təhlil edilmə qabiliyyəti AI -ni daha da maraqlı edir. Gələcək İş bölməsində daha mürəkkəb, lakin qeyri -şəffaf bir model istifadə edərək hansı üstünlüklərin əldə oluna biləcəyini danışacağam.
  • Performans -AI oyunları son dərəcə sürətli idarə edir. Səkkiz nüvəli bir maşında tipik bir sürət saniyədə 40.000 oyundur. Bu qismən arxa plan üçün dil seçimi (C ++), qismən çox işləmə və qismən Dominionun sadəliyi ilə əlaqədardır. Tipik bir Dominion oyunu 20 ilə 30 növbə arasında davam edir və növbələrin əksəriyyəti xəzinələri oyuna qoymaq və ya nə alacağınıza qərar vermək kimi yalnız bir neçə sadə davranışı əhatə edir. Buna baxmayaraq, yeni bir krallıq üzərində təhsil hələ bir neçə dəqiqə çəkir, çünki hər nəsil üçün yüz minlərlə oyun aparılmalıdır.

2. Bir Dominion Strategiyasının Parametrləşdirilməsi

Ən ümumi formada, oynamaq üçün xüsusi bir krallıqla təqdim olunan bir Dominion AI üçün problem ifadəsi belədir:

  • Bütün digər mümkün strategiyalara qarşı oynanılan oyunların ən yüksək faizini qazananları tapmaq üçün bütün mümkün strategiyalar üzərində axtarış aparın.

Bu bəyanat strateji üstünlük və Nash tarazlığı kimi bir çox vacib incəliklərə baxmır. Bu maraqlı mövzular bir yana, əsl sual qalır: Dominionda bir strategiyanı kəmiyyətcə necə təyin edə bilərik?

Süni intellekt ədəbiyyatında bu problemə yanaşmağın klassik üsullarından biri, Dominionu qismən müşahidə oluna bilən Markov qərar prosesi olaraq modelləşdirməkdir. Bu paradiqmada, Dominiondakı strategiya, mövcud oyun vəziyyətindən (cari oyunçunun müşahidə edə biləcəyi bütün məlumatları kodlaşdıran), cari qərarı idarə edən oyunçunun etməli olduğu bir hərəkətdir. Təəssüf ki, belə bir ümumi bir strategiya təyin etmək üsulu məqsədlərimiz üçün praktik deyil, çünki Dominion oyunu təsirli bir şəkildə məhdudiyyətsiz və davamlı bir sıra dövlətlərdə ola bilər və biz vəziyyətlərin hərəkətlərdən insanlara oxunaqlı olmasını tələb edirik.

Əyalət, bir krallıq üçün bir Dominion strategiyasını böyük ölçüdə bir -birindən ayrılmış iki komponentə bölür: satın alma mərhələsində və ya qazanc hadisəsinə cavab olaraq hansı kartların alınacağını nəzarət edən alış strategiyasıvə kartların necə oynanacağını və ya başqa bir şəkildə idarə edən bir oyun strategiyası.qərarlara cavab vermək. Bu parçalanma altında satın alma strategiyası, AI-nin uzunmüddətli məqsədlərini kodlaşdırır-hansı kart birləşmələri və nisbətləri oyunun sonuna qədər ən yüksək qələbə nöqtəsi ilə nəticələnəcək, oyun strategiyasıisə AI-nin dərhal hədəflərini kodlayır-bu nədir? hazırda əlinizdə olan kartları oynamağın ən yaxşı yolu. Yaxşı alış strategiyalarınınmüəyyən edilməsiindiyə qədər bu iki komponentdən daha çətin olanı və krallıq üçün ən ixtisaslaşmış olanıdır; demək olar ki, bütün AI -lərin hesablama vaxtı, hansı kart birləşmələrinin ən təsirli olduğunu öyrənməyə sərf olunur. Digər tərəfdən, yaxşı oyun strategiyalarıfərqli krallıqları yaxşı ümumiləşdirir və nadir hallarda AI-nin uzunmüddətli davranışını başa düşməyi tələb edir.

3. Strategiyalar Alın

İl, müəyyən bir AI -nin hansı kartları almalı olduğunu göstərmək üçün sadə bir model istifadə edir. Satın alma strategiyasının əsas komponenti, satın alma menyusuolaraq istinad edəcəyimiz kart-tam ədəd cütlərinin sifarişli siyahısıdır. Kart hansı kartın alınacağını və bu kartın neçə ədədinin alınması lazım olduğunu göstərir. Görünən səbəblərə görə eyni kart menyuda fərqli girişlər kimi dəfələrlə görünə bilər. Alış qaydası sadədir: ödəyə biləcəyiniz ən sol kartı satın alın. Bir kart alındıqdan sonra müvafiq menyu girişi azaldılır. Təbii ki, bir kart ala bilmirsinizsə və ya tədarükdə heç bir şey yoxdursa, onu növbəti karta keçirirsiniz və ya menyu girişləriniz bitərsə heç nə almırsınız. Bu menyu ən çox Alış mərhələsi üçün istifadə olunur, eyni zamanda Workshop və Saboteur kimi bir kart əldə etməyinizə səbəb olan hər hansı bir hadisəyə cavab olaraq da çağırılır. Satınalma strategiyasının ikinci komponenti, oyunun bitməsinə nə qədər yaxın olduğuna bağlı olaraq mülklərin, hersoqluqların və əyalətlərin nə vaxt alınacağını nəzarət edir. Hələlik bunun üçün sadə bir modeldən istifadə edirik:AI, AI -nin satın alma menyusunu ləğv etməsinə və bunun əvəzinə qələbə kartları almasına qədər neçə əyalətin (və ya koloniyanın) qalması lazım olduğunu nəzarət edən 2 tam ədəd (Tərəqqi kartları olan krallıqlar üçün 3) ilə parametrləşdirilmişdir. Vizualizasiyanı mümkün qədər qısa etmək üçün, AI ən bahalı qələbə kartını almaqda həmişə acgözdür, baxmayaraq ki, bu tələb aradan qaldırıla bilər (Gələcək İş bölməsinə baxın).

İl bir krallıq üçün yaxşı alış strategiyaları hazırlayır və ortaya çıxan vizualizasiyalar onun ən güclü xüsusiyyətlərindən biridir. Bu satınalma prosesini daha konkret etmək üçün nümunə görselleştirmeye baxaq:

Bu tip vizualizasiyanı lider lövhəsi adlandırırıq. Mövcud krallığı, indiki nəsildə beş dominant strategiyanı və strategiyalar bir -birinə qarşı istifadə edildikdə gözlənilən qazanma nisbətini kodlaşdırır.

  • Krallıq kartları-On tədarük kartını, başlanğıc əl vəziyyətini (3-4 qarşı 2-5 mis parçalanması) və təchizatda platin və firavanlıqdan koloniyalar və ya qaranlıq əsrlərdən sığınacaqlar kimi genişlənməyə xüsusi dəyişikliklərin olduğunu göstərir.
  • Dominant strategiyalar -Beş strategiyanın hər biri üçün alış menyusunun vizual təsviri və hər bir strategiyanın mülkləri, hersoqluqları və vilayətləri satın alacağı şərtlər. Bunlar yuxarıda təsvir edilən alış menyusu alqoritminə uyğundur. Məsələn, A strategiyasında 3 sikkə varsa, əvvəlcə Gümüş alacaq. İkinci dəfə 3 qəpiyə sahib olduqda, bir Şapel alacaq və sonra Şanti şəhərlərini almağa keçəcək. Digər tərəfdən, B strategiyası ilk dəfə 3 sikkəyə sahib olduğu zaman Şapel alacaq. Strategiya, strategiyanın nə vaxt qələbə kartları almağa keçdiyini də göstərir. Məsələn, A strategiyası yalnız bir müstəmləkə qalanda mülk alacaq, iki və ya daha az koloniya qalanda hersoqluqları və əyalətləri satın alacaq. Hər bir strategiyanın yanında göstərilən rəqəm, digər dörd aparıcı strategiyaya qarşı oynandığı zaman bu strategiyanın gözlənilən qazanc nisbətidir.
  • Turnir -Bu cədvəl, hər beş strategiyanın hər biri 10.000 -dən çox oyunda bir -birinə qarşı oynadığı zaman gözlənilən qələbə nisbətini göstərir. Göstərilən dəyər, satır oyunçusunun sütun oyunçusu ilə müqayisədə qazana biləcəyi oyunların faizidir. Konkret olaraq, oyunçu oyunların X% -ni və sütun oyunçusu oyunların% Y -ni qazanırsa, müvafiq giriş (X - Y)% olacaq. +100% dəyəri, sıralanan oyunçunun həmişə qalib gəldiyini, -100% dəyərinin sütun oyunçusunun hər zaman qazandığını və +50% dəyərinin 75% -dən 25% -ə qədər olan qalibiyyət nisbətinə uyğun olduğunu göstərir. Boz rəngdə göstərilən dəyərlər statistik baxımdan əhəmiyyətli deyil və iki oyunçunun mahiyyətcə bağlı olduğunu göstərir. Statistik anomaliyalar hələ 10.000 oyun işləyərkən belə baş verə bilər; məsələn, E strategiyasını oynayan E strategiyasında 0% gözlənilən qələbə nisbəti olmalıdır, lakin -2.3% kimi görünür.

Qeyd etmək vacibdir ki, bu görselleştirmeler təkamül prosesinin müəyyən bir mərhələsindəki aparıcı strategiyaları təmsil edir. Süni intellekt hələ də hansı kart birləşmələrinin birlikdə yaxşı işlədiyini araşdırdığı üçün erkən nəsillərin strategiyaları çox keyfiyyətsiz ola bilər. Hətta sonrakı nəsillərin strategiyaları hələ də əhəmiyyətli təkamül dəyişikliklərinə məruz qala bilər, çünki strategiya məkanının bəzi hissələri incə və ya araşdırılması çətin ola bilər. Məsələn, Conspirator -un alınması kifayət qədər sayda digər "+hərəkət" kartları əlavə olunana və tətbiq oluna bilənə qədər bir strategiya üçün çox zərərli ola bilər.

Bir çox krallıq üçün AI, ağlabatan sayda nəsildə "klassik" strategiyaları ələ keçirməkdə çətinlik çəkməyəcək. Məsələn, kanonik "kral sarayı + körpü" oyunu:

4. Sadə və Kompleks Krallıqlar

Bəzi krallıqlarda dominant strategiyalar çox aydın şəkildə inkişaf edəcək: N nəslin liderləri, minlərlə oyunun ortalamasını alaraq, 1 -ci nəsildən N -ə qədər liderləri döyəcək və ya bağlayacaq; belə krallıqları sadə krallıqlar adlandırırıq. Digər tərəfdən, mürəkkəb krallıqlardastrategiyalar xeyli dəyişkən ola bilər, çünki bəzi strategiyalar rəqabətli strategiyaların etdiyi kart seçimlərinə cavab olaraq xeyir -dua verir. Bu davranış, güclü hücum və müdafiə kartları olan krallıqların və ya mürəkkəb qələbə hədəfləri olan kartların (Gardens, Duke) iştirakı ilə yaygındır və strateji metagaming olaraq adlandırılır. In sadə Krallığı, ümumiyyətlə, hər bir strategiyanı hər zaman uyğunlaşdırmaq və ya məğlub etməklə hansı strategiyanın seçiləcəyini aydınlaşdıraraq üstünlük təşkil edir. Heç bir strategiyanın güclü üstünlük təşkil etmədiyi daha maraqlı bir krallıqvəziyyətində, optimal oyunçu tarazlıq strategiyasına nail olmaq üçün namizəd strategiyaları arasında təsadüfi seçim etməlidir.

Metagamanın təkamülünü görmək üçün bir inkişaf vizualizasiyasındanistifadə edirik. Bu görselleştirme, N nəslindəki aparıcı strategiyanın 1 -ci N -dən N -ə qədər aparıcı strategiya ilə necə rəqabət apardığını göstərir. Aşağıda sadə bir krallıqüçün inkişaf vizualı verilmişdir :

"Aparıcı strategiya" indiki nəsildə dominant strategiyanı göstərir. "Rəqabətli strategiyalar" əvvəlki N nəslin aparıcı strategiyasını və nisbi qələbə nisbətini aparıcı strategiyaya qarşı 10.000 -dən çox oyunda göstərir (yer qənaət etmək üçün yalnız hər 4 -cü nəsil göstərilir). Sağda, bu qazanma nisbətini nəslin funksiyası olaraq qururuq. Bu sadə krallıqda, aparıcı strategiya, heç olmasa bütün əvvəlki nəsillər qədər yaxşıdır və təkamül davranışının yavaş -yavaş yaxşılaşdığını göstərir. AI daha yaxşı bir strategiyanı dəyişdirməyincə, gələcək nəsillər təxminən göstərilən strategiyaya yaxınlaşacaqlar, baxmayaraq ki, iki strategiyanın müqayisəsinə xas olan statistik fərqlilik səbəbiylə hələ də kiçik dalğalanmalar baş verəcək.

Bu davamlı inkişaf bütün krallıqların davranışı deyil. Burada mürəkkəb bir səltənətüçün bir inkişaf vizualını göstəririk :

Burada davranış sadə bir səltənətdə görülən yavaş və davamlı inkişafdan daha çox dəyişkəndir. 40 -cı nəsildə aparıcı strategiya bəzi əvvəlki liderlərdən xeyli üstündür, lakin digərlərindən daha pisdir. Bu krallıqları oynamaq daha maraqlıdır, çünki seçmək üçün ən yaxşı strategiya daha az aydındır. AI -nin bir çox nəsillər üçün məşq etməsinə icazə verilsə belə, bu dövri davranış davam edir. 132 -ci nəslin liderini bütün əvvəlki nəsillərlə müqayisə edən eyni süjetdir:

Təbii bir sual, kompleksin sadə krallıqlara nisbətinin nə qədər olmasıdır. Məlum olur ki, mürəkkəb krallıqlar mütləq istisnadır və krallıqların böyük əksəriyyəti sadədir və az sayda təkrarlarda çox yaxşı bir strategiyaya yaxınlaşır. Min krallıqdan yalnız hakim olmayan davranışları olan təxminən beşini tapa bildim. Nəzərə alın ki, irəliləmə əyrisinin adətən sadə davranışı olması, yalnız bir strategiyanın həyata keçə biləcəyi mənasına gəlmir. Bəzən çox fərqli kartlardan istifadə edən, lakin təxminən bərabər şəkildə bir -birinə uyğun gələn bir çox aparıcı strategiyanın olması halları olur. Bu vəziyyətdə, aparıcı strategiyalardan birini seçən bir oyunçunun çox güman ki, yaxşı iş görəcəyi ehtimal olunur.

5. Yeni Kartların Qiymətləndirilməsi

Provincial -dan maraqlı bir istifadə dizayn qərarlarını sınamaq və ölçməkdir. Bayram çox zəifdirmi? Wharf çox güclüdür? Kansler yaxşı varmı? İskele 6 -ya başa gəlsə, yenə də yaxşı olarmı? İl oyunları çox tez idarə etdiyi və rəqabətli strategiyalar hazırladığı üçün bu suallara cavab verməyə çalışa bilərik. Əvvəlcə yaxşı dizayn edilmiş bir kartın nədən ibarət olduğunu ölçməyə çalışaq.

Yaxşı bir oyunçu bir krallıqda gördükdə bu mövzuda qeyri-ciddi qərarlar verməlidirsə, kart maraqlıdır. Bunun səbəbi, kartın Stüard və Çırak kimi oyunun bir hissəsi olaraq qərar verməsi ola bilər. Ancaq ən çox görülən qərar, bir kart alıb -almamaqdır və əgər varsa neçə ədəddir. Ümumi bir dizayn qaydası, təcrübəli bir oyunçu həmişə alsaydı kartın çox güclü olması və təcrübəli oyunçu heç almaması halında çox zəif olmasıdır.

İl, bu funksiyanı birbaşa qiymətləndirən təcrübələr aparmaq üçün istifadə edilə bilər. İskele və Talan iki konkret nümunəyə baxacağıq:

Wharf ilə başlayacağıq. Hamısı Wharfdan istifadə etmək üçün məhdudlaşdırılmış 30 təsadüfi krallıq seçirik. Daha sonra hər bir krallıq üçün nə yaxşı bir strategiya təşkil etdiyini təxmin etmək və Wharf'ın ən yaxşı üç strategiyadan birində olduğu krallıqların faizini hesablamaq üçün İlləri bu krallıqlarda idarə edirik. Bu təcrübədə, Wharf 30 krallıqdan 28 -də seçildi. Bu, Wharfın əlbəttə güclü olmasına baxmayaraq, çox nadir hallarda digər güclü kartların olması, bacarıqlı bir oyunçunu Wharfı satın alması və ya almaması ilə bağlı qərar verməyə məcbur etmək potensialına sahib olduğunu göstərir. Daha sonra Wharf -ı 6 -a başa çatdıra bilərik və eyni təcrübəni təkrarlaya bilərik. Bu vəziyyətdə, 18 krallıq, ən yaxşı oyunçunun iskele satın aldığı, 12 -nin isə olmadığı bir strategiya ehtiva edir. Çarpıcı dərəcədə zəif olsa da, Wharf hələ də bir oyunçunun düşünə biləcəyi bir şeydir. Təsadüfən,Dominion simmetrik bir oyundur, buna görə də çox güclü və ya çox zəif kartlar olsa belə ədaləti qoruyur.

Hələ çap olunmamış kartların parametrlərini qiymətləndirmək üçün İldən istifadə edə bilərik və yalnız bir kartın dəyərini deyil, hər hansı bir parametrin dəyişdirilməsinə baxa bilərik. Yuxarıda göstərilən (hipotetik) talan kartını nəzərdən keçirin. Wharf ilə eyni təcrübəni həyata keçiririk və yuxarıda təsvir edildiyi kimi, 30 krallıqdan 3 -də seçildiyini görürük. Kartla oynadıqdan sonra qərara gəldim ki, bu zəifliyin əsas səbəbi 0 pul təmin etməsidir, buna görə də Zəfər kartları almağa həm zərər verir, həm də Xəzinələri almağa kömək etmək üçün çox şanslı əllər lazımdır, çünki digər kartlarla müşayiət olunmalıdır. yüksək qiymətli xəzinələr. Kartı gücləndirmək üçün onu Quarry -ni daha yaxından təqlid etmək üçün dəyişdirdim və 0 sikkə əvəzinə 1 sikkə verdim. Təcrübəni təkrar edən Plunder 30 krallıqdan 10 -da seçildi.Hələ də Wharf qədər güclü olmasa da, xeyli daha canlı bir kartdır və bir çox digər 5 xəritəli kartlarla rəqabət aparır. Talanın, Venture kimi digər yaxşı xəzinələr mövcud olduqda xüsusilə güclü olduğu təsbit edildi:

6. Alqoritm təfərrüatları

Burada əyalətin əsas AI təlim alqoritminin əsas komponentlərindən bir neçəsini əhatə edirik.

Təkamül prosesi

Alqoritmin hər təkrarlanmasında iki vacib obyekt iştirak edir: qiymətləndirilən ümumi strategiyalar hovuzu və daha kiçik bir aparıcı strategiya dəsti. Liderlər və ümumi hovuz təsadüfi strategiyalar olaraq başlayır və sonra hər bir iterasiya aşağıdakı kimi davam edir:

Üç çox vacib parametr var: ümumi hovuzdakı strategiyaların sayı, liderlərin sayı və alqoritmin işlədildiyi nəsillərin sayı. Bir az sınaqdan sonra 5 ilə 10 arasında liderin yaxşı işlədiyini gördüm və səmərəlilik naminə 5 liderlə getməyə meylliyəm. Ümumi hovuz üçün, adətən, hər nəsil üçün yaxşı bir çeşid təmin edən 100 strategiyadan istifadə edirəm. Hovuzun ölçüsünü artırmaq, bir nəsil idarə etmək üçün lazım olan vaxtı artırır, eyni zamanda, idarə edilməsi lazım olan nəsillərin sayını da azalda bilər. Yuxarıda göstərildiyi kimi, lazım olan nəsillərin sayı krallıqdan çox asılıdır. Bəziləri 20 nəslə yaxınlaşır, bəziləri hələ də 100 və ya daha çox nəsildə yaxşı şəkildə inkişaf edir. İl tərəfindən istifadə olunan standart nəsil sayı, əksər krallıqlar üçün kifayətdir, 32lakin bu müddətdən sonra əhəmiyyətli strateji inkişafların edildiyi bir çox vəziyyət gördüm.

Menyu Şablonları

Strategiyaların hər hansı bir quruluş forması olmadan mutasiya edilməsinə icazə verilsə, alqoritm hələ də yaxşı işləyəcək, lakin çoxlu hesablamalar boşa çıxacaq, çünki mutasiyaların böyük əksəriyyəti həssas strategiyalar deyil. Məsələn, Platin üzərində Gümüş, Soylular üzərində Smithy almağı və ya heç bir halda Lənət və ya Qalıqlar almağı üstün tutan strategiyalar demək olar ki, yoxdur. Eynilə, Platinum və Gold kimi bəzi kartlar çox yaxşıdır və demək olar ki, həmişə geri satınalma hesab edilməlidir. Yaşamaq ehtimalı olmayan strategiyalara çox vaxt sərf etməmək üçün, İl satın alma menyularında əvvəlcədən paylanaraq strategiyalardan nümunələr götürün. Bu menyu şablonu, iskele olaraq Big Money strategiyasından istifadə edir. Rifah oyunları üçün belə görünür:

Bu strategiya yığınlar tükənənə qədər Gümüş, Qızıl və Platin alacaq (x99 ilə göstərilir). Digər kartlar, hər bir yuvanın icazə verilən qiymət aralığında bir məhdudiyyətə sahib olmasına baxmayaraq, hər hansı bir təchizat kartı ola bilər. Məsələn, son menyu yuvasının qiyməti 2 -dən çox ola bilməz, çünki həmişə Gümüşün xeyrinə nəzərə alınmayacaq.

Əsas oyunun bir hissəsi olan Zəfər kartlarının (Mülkiyyətlər, Hökumətlər, Əyalətlər və Koloniyalar), seçimləri oyun mərhələsindən asılı bir alış modelinə uyğun olaraq dəyişən girişlərdə kart olaraq seçilməsinə icazə verilmir. Yenə də daha mürəkkəb alış strategiyalarına imkan vermək üçün bu menyu quruluşundan istifadə etmək asandır. Məsələn, aşağıdakı şablondan istifadə edərək AI -nin Koloniyaların nə vaxt satın alınacağına qərar verməsinə asanlıqla icazə verə bilərik.

Burada AI ilk Koloniyasını almadan əvvəl bir kart və iki Platinum alacaq və sonra Koloniyalarda sonsuza qədər tamahkar olacaq. Təbii ki, bu krallıq üçün üstün bir alış strategiyası olduğu təsbit edilərsə, mutasiya prosesi bu kartları dəyişə və ya silə bilər və Koloniyalarda tamahkarlığa dönə bilər. Bu daha ifadəli modelə defolt etməməyimin yeganə səbəbi alış strategiyası vizuallarının artıq kifayət qədər çox ekran sahəsi tutmasıdır. Bu davranışı dəyişdirmək sadədir, bax BuyAgenda.cpp.

Burada bu daha çevik modeldən istifadə edərək öyrədilmiş bir AI ilk əyalətindən əvvəl bir iskele və iki qızıl almağı seçir:

Soruşmaq lazım olan təbii bir sual, Big Money strategiyalarına qarşı bu qərəzin son nəticələrə təsir edib etməməsidir. Tamamilə məhdudlaşdırılmayan menyulardan istifadə edən strategiyaların Big Money -ə əsaslananlarla müqayisə edildiyi bir neçə təcrübə apardım. Kartların sıralanması səbəbindən məhdudiyyətsiz strategiyalar bir az qəribə görünsə də, nəticədə strategiyalar Big Money ilə başlayan strategiyalarla müqayisədə demək olar ki, eyni performansa malikdir. Budur, məhdudlaşdırılmamış bir menyu istifadə edərək öyrədilmiş bir lövhə:

Mutasiyalar

Hər nəsildə yeni strategiya hovuzu əvvəlki nəslin liderlərinin mutasiyaları şəklində formalaşır. Satınalma menyu mutasiyalarının növləri bunlardır:

  • Təchizat kartınıdəyişdirin -Menyudakı təchizat kartını təsadüfi olaraq seçilmiş başqa bir kartla əvəz edin.
  • Alış sayınıdəyişdir -Təsadüfi məbləğlə alınan kart sayını dəyişdirin.
  • Təchizat kartlarınıdəyişdirin -İki menyu girişinin sırasını dəyişdirin.
  • Zəfər kartı alış eşiklərinidəyişdirin -Mülkiyyət, Hersoqluq və Əyalətlərin satın alınmasına nəzarət edən eşikləri dəyişdirin.
  • Karta xüsusi oyun parametrini dəyişdirin-Xüsusibir krallıq kartına əlavə edilmiş "oyun parametrini" dəyişdirin. Məsələn, AI, AI -nin bir qızılı yenidən düzəltəcəyi həddi idarə edən parametri bir əyalətə köçürə bilər (Play Gündəmi bölməsinə baxın).

Alqoritmin yaxınlaşma sürətini artırmaq üçün hər bir mutasiya, bu cür mutasiyaların nə qədər faydalı olduğuna mütənasib olaraq sabit bir ehtimalla meydana gəlir. Yalnız bir mutasiya yerinə yetirilərsə, strategiya sahəsinin əhəmiyyətli hissələrinə əlçatmaz olmaq da mümkündür, çünki ara strategiyalar çox aşağı bala sahib ola bilər. Bu problemin öhdəsindən gəlmək üçün bir Gauss sayda mutasiya aparılır, buna görə də strategiya sahəsinin aşağı bal alanlarını atlamaq şansı həmişə var. Buna baxmayaraq, alqoritm çox sayda nəsil üçün işlənməyincə maraqlı strategiyaların atlanacağı ehtimalı hələ də mövcuddur. Bu problemin nə qədər geniş yayıldığını görmək üçün İl, paralel olaraq istifadə olunan "test otaqları" sayı olaraq adlandırılan bir çox müstəqil simulyasiyaların işləməsini dəstəkləyir.Sadə krallıqlar üçün ümumiyyətlə bir otaq kifayətdir. Mürəkkəb krallıqlar üçün, çoxsaylı test otaqlarından istifadə etməklə çox maraqlı davranışlar əldə edilə bilər. İl avtomatik olaraq hər bir palatanın bütün liderlərini bir -birinə qarşı idarə edəcək və ortaya çıxan lider lövhəsini görüntüləyəcək.

Gündəliyi Play

Dominiondakı bacarıqların böyük əksəriyyəti nəyi və nə vaxt alacağını təyin etməkdir. Əslində kart oynamaq, eyni zamanda vacib olsa da, ümumiyyətlə ümumi oyuna əhəmiyyətli dərəcədə daha az təsir edir. Kartların əksəriyyəti üçün sadəcə olaraq heç bir seçim yoxdur: Laboratoriya, Mountebank, Venture və s. Hamısı "özlərini oynayan" kartlardır. Yenə də bəzi strategiyalar daha mürəkkəb oyun üslubları tələb edən kartlardan istifadə edir. Məsələn, ümumiyyətlə bir Moat açmaq ağıllı olsa da, əlinizdə bir kitabxana varsa və rəqibiniz Militia oynayırsa, Moatınızı açmaq ümumiyyətlə ən yaxşı oyun deyil. Süni intellekt, PlayerHeuristic.cpp-də tapıla bilən sadə bir gözləmə oyun modelindən istifadə edir. Bir çox kart üçün bu, sadə heuristika deməkdir. Məsələn, Spy oynayarkən AI, Lənət, Mis, Qalıqlar olmadığı təqdirdə həmişə rəqibin kartını atacaq.və ya saf qələbə kartı. Daha mürəkkəb modellərlə bir neçə təcrübə apardım (Gələcək İş bölməsində müzakirə olunur), lakin hazırda AI -nin yaxınlaşdığı strategiyaları əhəmiyyətli dərəcədə dəyişdirə bilmədim. Demək olar ki, bütün krallıqlar üçün süni intellektin alış davranışı, həqiqətən də kart oynayarkən edilən seçimlərdən daha çox təsir göstərir.

Bir neçə kart daha mürəkkəb kart oyun davranışına ehtiyac olduğunu qəbul edir. Yaxşı nümunələr Salvager və Remodel -dir, oyun xüsusiyyətləri oyun boyu kəskin şəkildə dəyişə bilər. Məsələn, hal -hazırda liderlik edirsinizsə və İl yığınını daha tez tükəndirmək istəyirsinizsə, bir Vilayəti xilas edə bilərsiniz və eyni zamanda oyunda çox geciksəniz, bir Qızılı əyalətə dəyişə bilərsiniz. Krallıqda olduqda, bu cür kartlar, AI üçün mövcud olan parametrlər dəstinə əlavə edilən hər kart üçün parametrlər buraxır. Daha sonra AI menyusu bu cür kartlar üçün yaxşı oyun strategiyalarını uyğunlaşdırmağa imkan verən Alış menyusu parametrləri ilə eyni şəkildə mutasiya olunur.

7. Gələcək İş

İl hələ də davam edən bir işdir. Mövcud tətbiq və bəzi addımlar haqqında bəzi fikirlər:

  • Kart tətbiqləri -Base, Rifah, İntriqa və Dənizkənarı kartların əksəriyyəti və dostlarımın hazırladığı bir neçə xüsusi kart tətbiq edildi. Bu, kifayət qədər çox kart qalmasına baxmayaraq, krallıqları çox mürəkkəb strategiyalarla əhatə etmək üçün kifayət qədər çox kartı əhatə edir. Yeni kartların tətbiqi də olduqca sadədir, çünki "N kartlarına atın" və ya "göyərtənizin üstünə N kartları qoyun" kimi əvvəlki funksiyalardan yenidən istifadə etməyə meyllidirlər.
  • Birdən çox rəqib -Birdən çox rəqib olduqda Dominion oyunu dramatik şəkildə dəyişir. Hal -hazırda, İl birdən çox rəqibə qarşı oynaya bilər, ancaq simulyasiyalardan öyrəndiyi strategiyaları tək bir oyunçuya qarşı istifadə edir. İrəli irəliləyərkən, çoxlu rəqiblər üçün strategiyalar qurmağa baxmaq maraqlı olardı, baxmayaraq ki, canlı strategiyaların məkanı xeyli böyükdür və axtarış etmək daha çətindir.
  • Yeni krallıqlarla daha sürətli məşğul olmaq -Hal -hazırda İl hər yeni krallıq üçün fərqli bir strategiya hazırlamalıdır. Bir neçə dəqiqə ərzində keçilə bilən strategiyalar qura bilsə də, ideal olaraq strategiya məlumat bazasında əvvəllər hazırladığı krallıqlardan istifadə edərək bunu daha da sürətləndirərdi. Kritik bir krallıq kütləsi öyrənildikdən sonra, "yaxınlıqdakı krallıqlar" ın strategiyaları ilə (məsələn, ən azı 4 üst -üstə düşən tədarük kartı olanlarla) ilkin hovuzun əkilməsi mümkün olmalıdır. Bu, daha sürətli yaxınlaşma ilə nəticələnməli və bacarıqlı insan oyunçularının istifadə etdiyi prosesə bənzər əvvəlki oyunlardan məlumat ötürülməsini nümayiş etdirməlidir.
  • Onlayn əlçatanlıq-Provincial-ın əsas alış strategiyası yalnız kart-tam ədəd cütlərinin sifarişli siyahısı olduğundan, digər oyun sistemlərinə qoşulmaq olduqca asandır. Isotropic -də, Provincial artıq çox rəqabətlidir və simulyasiyalar işləyərkən iki dəqiqə ara verməyə ehtiyac duyduğu ilkin gecikmədən əziyyət çəksə də, yüksək oyun səviyyəsində olsa da oyunlarının yarısından çoxunu qazanır. Təəccüblü deyil ki, əyalət hazırda Goko'nun hökmranlıq tətbiqində istifadə olunan AI-ni də (əhəmiyyətsiz şəkildə) məhv edə bilər və əyalətin alqı-satqı strategiyalarının Goko AI-nin istifadə etdiyi ad-hoc alış strategiyasını əvəz etməsi olduqca sadə olardı.
  • Üstün satın alma strategiyaları -İl, strategiyalarının insan oyunçular tərəfindən görüntülənməsi və başa düşülməsi üçün kompleks maşın öyrənmə üsullarından istifadə etməkdən qəsdən çəkinir. Bu məhdudiyyəti aradan qaldıraraq, İl AI'si nəzərəçarpacaq dərəcədə daha yaxşı ola bilər. Məsələn, bir çox oyun oynayaraq, AI çox güman ki, AI-nin göyərtədə daha neçə qarışığı alacağını dəqiq təxmin edə bilər. Bu, tədarükdə qalan İllərin sayı ilə müqayisədə oyunun nə vaxt bitəcəyini müəyyənləşdirmək üçün daha yaxşı bir metrikdir və əyalətlərin, knyazlıqların və mülklərin satın alınmasına nə vaxt keçməli olduğuna qərar verərkən daha zərif davranışla nəticələnə bilər.
  • Daha inkişaf etmiş oyun strategiyaları -İl inkişaf etmiş bir alış strategiyasından istifadə etsə də, kart oynamaq alqoritmi nisbətən sadədir. Bunun vacib olduğu krallıqlar üçün klassik AI yanaşması qəbul edilə bilər. Bu modeldə əvvəlcə bir oyun vəziyyətini nə qədər bəyəndiyimizi və bəyənmədiyimizi göstərən bir dövlət dəyər funksiyasını təyin edirik. Süni intellekt, Minimax və ya Monte-Carlo ağac axtarışından istifadə edərək bir çox fərqli budaq götürməyi düşünür və ən yüksək gözlənilən balı verən variantı seçir. Tətbiq etmək çətin olmasa da, İl bu yanaşmanı istifadə etmir, çünki təlim müddətini kəskin şəkildə artıracaq. Ancaq satın alma strategiyası hazırlandıqdan sonra bir insana qarşı oynayarkən, bu üsul çox cəlbedicidir, çünki krallıqların əksəriyyəti üçün Dominion üçün budaqlanma faktoru çox aşağıdır.Bu, AI -nin, Penintimate Province Qaydası və dominionstrategy.com saytında tez -tez müzakirə olunan bir çox strategiya kimi bacarıqlı oyunçuların istifadə etdiyi bir çox taktikanı ələ keçirməsinə imkan verəcək.

Ümumi İl, çox təcrübəli oyunçuların istifadə etdiklərinə bənzər strategiyalar hazırlayan olduqca güclü bir AI -dir. Bununla birlikdə, AI -nin kartlarını oynayarkən hələ də səhvlər edə biləcəyini xatırlamaq vacibdir və Dominion yüksək dispersiyalı bir oyundur - oyunçunun bacarığını yüksək inamla qiymətləndirmək üçün yüzlərlə oyuna ehtiyac var.

8. Kod

Bu layihənin istifadəçi interfeysi hamısı C#, arxa tərəfi isə C ++ dilində yazılmışdır. C ++ arxa tərəfi heç bir xarici kitabxana istifadə etmədiyi üçün (sadəcə sürətli bir Dominion oyun motorudur) Linux və ya Mac əməliyyat sistemlərində işləyərkən tətbiqin Mono altında işləməsini təmin etmək çox çətin deyil. Provincial-da bir GitHub anbarı var və gələcəkdə UNIX əsaslı sistemlər üçün makefiles əlavə etməyi planlaşdırıram.

Kod, obyekt yönümlü bir hadisə yığını modeli istifadə edərək qurulmuşdur. Bir kart oynandıqda və ya başqa bir karta xüsusi hadisə tetiklendiğinde kart interfeysi çağırılır. Bir kartın istifadəçidən və ya digər oyun təşkilatlarından (reaksiyalara səbəb ola biləcək hücumlar) cavab tələb edə biləcək bir təsiri varsa, hadisə obyektini yığının üzərinə itələyir. Tədbir yığını boş olduqda, oyun oyunun cari mərhələsinin əsas qaydalarından istifadə edərək irəliləyir. Tədbir yığını boş olmadıqda, oyun hadisəni yığının yuxarısında işləyərək irəliləyir.