Tic Tac Toe həll edir, maraqlı edirsiniz?

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

Tic Tac Toe (TTT) minimal dərəcədə mürəkkəb bir oyundur, buna görə mümkün olan bütün hərəkətləri tapmaq və sizi qələbə, bərabərlik və ya məğlubiyyətə aparacaqları görmək nisbətən asandır. Daha əvvəl TTT-ni heç həll etməmişəm, buna görə bir neçə kodu bir yerə topladım!

Tic Tac Toe həll olunur

Effektiv şəkildə eyni olan lövhələr çıxarmadan (fırlanma və yansıtma yolu ilə) 5.478 mümkün lövhə konfiqurasiyası mövcuddur. Bunlardan 1 nömrəli oyunçunun (P1) qazandığı 626, P2 üçün 316, bağladıqları 16 lövhə var.

Optimal strategiya nədir? Əvvəlcə hər nəticə üçün bir xal hesabı verək. Qələbə +1, məğlubiyyət -1 və bərabərlik 0-a bərabərdir. Əsas fikir mümkün hərəkətlərə baxmaq və xallarınızı artıran birini seçməkdir. Sadə!

Bunun üçün iş bitmə ehtimalı p= (P1 qazanma ehtimalı, P2 qazanma ehtimalı, qalib gəlmə ehtimalı) tapmaq lazımdır . Bitmiş oyunu təsvir edən lövhələr üçün yoxlama yolu ilə pbilirik . P1 qalib gəlsə, p= [1,0,0]. P2 qalib gəlsə, p= [0,1,0]. Və bərabərlik varsa, p= [0,0,1].

Hər hansı bir lövhə üçün ptapmaq daha çox iş tələb edir. Bunu praktik olaraq etmək üçün 'valideynlər' (mövcud olana aparan lövhələr) və 'uşaqlar' (hərəkət etdikdən sonra mümkün lövhələr) siyahılarınız olmalıdır. Sonra müəyyən bir lövhə üçün hər bir uşaq üçün fərqli ptapa bilərik . Bundan sonra P1 üçün optimal strategiya gözlənilən xalı maksimuma çatdıran uşağı seçməkdir: 1 * p (P1 qalib gəlir) -p (P2 qalib gəlir) + 0 * (p (bərabərlik)).

Bu analiz metodu, birinci cərgədə və birinci sütunun fərqli oyunçuların strategiyasını göstərdiyi növbəti cədvəldə ümumiləşdirilən fərqli strategiyaların nəticələrini müqayisə etməyə imkan verir. Məsələn, hər iki oyunçu təsadüfi oynayırsa, P1 vaxtın 58% -ni qazanır. Bacarıqların təsiri yuxarı sağ və aşağı sol künclərdə görünə bilər. Təsadüfi seçiciyə qarşı oynamaq, ağıllı strategiyalar demək olar ki, həmişə qazanır! Əlbətdə ki, hər ikisinin optimal oyunu bərabərliyə gətirib çıxarır: p= (0%, 0%, 100%). Yəqin ki, bunu illər əvvəl öyrənmisiniz.

P1 təsadüfiP1 Optimal
P2 təsadüfi (58%, 29%, 13%) (% 99.5, 0,% 0.5)
P2 Optimal (% 0.7, 93%, 6%) (0, 0, 100%)

Tic Tac Toe niyə əylənmir?

Yəqin ki, uşaq yaşınızdan böyüklərə qarşı TTT oynamamısınız, elədir? TTT-nin hər zaman heç-heçəyə səbəb olduğunu başa düşdükdən sonra maraqlı olmağı dayandırır.

Bunu necə düzəldə bilərik? Bunu daha mürəkkəb və ya qeyri-deterministik etmək üçün bir yol lazımdır. İdeal olaraq, bu çox sayda əlavə avadanlıq və ya kompleks qaydaları öyrənmək tələb etməyən kiçik bir dəyişiklik olardı. Bir çox müxtəlif TTT növü var (bu kitaba və ya Wikipedia-ya baxın), lakin əksəriyyəti təsadüfi olmaqdan çəkinir. Nişanı təsadüfi seçməyin maraqlı bir başlanğıc olacağını düşünürəm.

Təsadüfi TTT

Nişanı təsadüfi edək və üçlü bir sətir edən ilk oyunçu qalib olacaq! Bu yeni stil üçün optimal strategiya nədir?

Təsadüfi təyin edilmiş ayələr ilə X, x və O, (1-x) istifadə ehtimalına ehtiyacımız var. Hər lövhə üçün bütün uşaqları və o uşağa çatmaq üçün lazım olan işarəni tapın. X oynayarkən ən yaxşı nəticə üçün ehtimalı ( pX), O ( pO) üçün də eyni tapın . Hər nişanın çəkilmə nisbətlərini ən yaxşı qazanma ehtimalı ilə birləşdirərək sonlandırma əmsalları p= x * pX + (1-x) * pO-dur.

Tokenlərin necə seçildiyini izah etməmişəm! Əvvəlcə bir sikkə fırlatmağa çalışaq: X və ya O üçün 50/50 əmsal. Bu sadə dəyişiklik oyunun əhəmiyyətli dərəcədə daha mürəkkəb olduğunu göstərir. İndi 18.753 mümkün lövhə var, bunlardan P1 qalib gəldiyi 3.820, P2 qazandığı 3.808, bağladığı yer 32-dir. Aşağıdakı cədvəldə fərqli strategiyaların nəticələri göstərilir.

P1 təsadüfiP1 Optimal
P2 təsadüfi(49%, 45%, 6%) (86%, 9%, 6%)
P2 Optimal(15%, 84%, 1%)(69%, 27%, 4%)

Daha maraqlı bir oyun kimi səslənir! İstədiyim çox az bağ var. Bacarıqsız oyunçuların demək olar ki, bərabər qalib gəlmə ehtimalı var, buna görə əvvəlcə getməyərək özlərini sönük hiss etmirlər. Optimal oyunçu təcrübəsiz birinə qarşı çıxdıqda, optimal oyunçunun birinci və ya ikinci olmasından asılı olmayaraq qazanma şansı ən azı 69% daha yüksəkdir. İki optimal oyunçunun rəqabət etdiyi vəziyyətdə, P1 42% daha çox qazanır, bu da əsas tic-tac-barmaqla əbədi əlaqələrdən daha maraqlıdır.

Digər variantlar

Fərqli bir qol stili necədir? Burada ayələr təsadüfi olsa da, birinci sətir X-lərdən düzəldildiyi təqdirdə P1, Os olduqda P2 qalib gəlir. Təsadüfi oynanır, əlaqələr nadir hallarda olur. Təsadüfi oyunçulara qarşı bacarıqlı olmağın əhəmiyyətli bir faydası var. Optimal oyun əvvəlki versiya ilə müqayisədə daha kiçik bir hərəkət üstünlüyünə səbəb olur. Maraqlı bir variant, amma nədənsə mənim marağımı ala bilmir.

P1 təsadüfiP1 Optimal
P2 təsadüfi(47%, 47%, 6%) (74%, 23%, 2%)
P2 Optimal(24%, 73%, 3%)(43%, 35%, 22%)

Birinci xətt çəkmək metoduna qayıdaq, ancaq jetonların paylanmasını dəyişdirək. Cəmi 5 Xs və 5 Os olmaqla cəmi 10 jeton varsa? Bu bir çantadan rəngli daşlar çəkməyə bərabərdir. Bu, mümkün lövhələrin sayını 17.713-ə endirir. Bu, oyunun yüksək səviyyələrdə daha maraqlı olmasına səbəb ola biləcək ilk hərəkət-üstünlüyünün orta səviyyəsinə malikdir. Bir çantadan rəngli daşlar çəkmək fikrini də sevirəm.

P1 təsadüfiP1 Optimal
P2 təsadüfi(46%, 41%, 13%) (84%, 12%, 4%)
P2 Optimal(15%, 84%, 1%)(55%, 31%, 14%)

Gələcək iş

Nx * Ny deyərək, yalnız 3 * 3 deyil, daha da böyük versiyalara nəzər salmaq istərdim. Təəssüf ki, taxta konfiqurasiyalarının yuxarı həddi 3 ^ (Nx * Ny) olaraq ölçülür, beləliklə 4 × 4 lövhənin 3 × 3 lövhədən təxminən 2000 dəfə çox mümkün konfiqurasiyaları var. Çözümləri kobud şəkildə məcbur etməkdənsə, Gücləndirmə Öyrənməyimi təmizləmək məcburiyyətindəyəm!

Nümunə oyun

Nişanın sikkə çevirməsi ilə seçildiyi ilk təsadüfi versiyanın oyununa baxaq. Oyunçu 1 əvvəlcə X ilə gedir və hər addımdan sonra gözlənilən əmsalları bildirəcəyəm.

P1 mərkəzdə oynayır. p= (% 69,% 27,% 4)

. . .

.X.

. . .

P2 bir O çəkir və nədənsə orada yerləşdirir. p= (% 60,% 36,% 4)

. . .

.XO

. . .

P1 başqa bir yerdə X oynayırsa, P2-nin növbəti növbədə 50% qazanma şansı var. p= (% 56,% 38,% 6)

. . .

XXO

. . .

P2, P1 üçün 50% qazanma şansını aradan qaldırmaq üçün lövhənin sağ tərəfindən qaçır. Ortanın niyə soldan daha yaxşı olduğu aydın deyil. p= (% 50,% 38,% 13)

. O.

XXO

. . .

P1 bir O çəkir və orada oynayır? Niyə aydın deyil! p= (% 50,% 25,% 25)

. O.

XXO

O. .

P2 nədənsə orada X oynayır ... p= (% 38, 25%, 38%)

. O.

XXO

OX.

P1 küncdə O oynayır və P2-yə 50% qazanma şansı verir. p= (50%, 50%, 0%)

. OO

XXO

OX.

P2 bir O almadı və növbəti növbədə itirmək məcburiyyətində qaldı. p= (100%, 0%, 0%)

. OO

XXO

OXX

P1 X ilə qalib gəlir, ancaq O.

XOO

XXO

OXX ilə qazana bilərdi

Bu sadə oyun gözlədiyimdən daha çox düşündürücüdür! Bu hərəkətlərdən bəziləri məni hələ də təəccübləndirir.

Bir az daha çox analiz apararaq, həqiqətən bu versiya üçün 1359 bənzərsiz lövhə var (fırlanma, əks olunma və işarələrin dəyişdirilməsindən sonra). Əksinə, əsas TTT yalnız 608 bənzərsiz lövhəyə malikdir.

10.000 süni oyundan sonra optimal oyunçular yalnız 118 mümkün lövhədən istifadə etdilər. Yuxarıdakı ilk üç hərəkət, çəkilmiş ayələrindən asılı olmayaraq standart açılışdır: oyun mərkəzi, bir tərəf, sonra digər. Bu oyun 3-də bitən oyunların təxminən 25% -i ilə nəticələnir. Bundan sonra oyun ağacı kifayət qədər sürətlə böyüyür.

İndi ən azı bu açılan Tic Tac Toe oynasanız, standart açılışı bilirsiniz. Uğurlar!