Satranç için mükemmel bir algoritma var mı? [kapalı]


109

Yakın zamanda kodlayıcı olmayan bir kişiyle satranç bilgisayarlarının olasılıkları hakkında bir tartışma içindeydim. Teoride çok bilgili değilim ama yeterince bildiğimi düşünüyorum.

Satrançta her zaman kazanan ya da çıkmaza giren deterministik bir Turing makinesi olamayacağını savundum. Bence, oyuncu 1/2 hamlelerinin tüm kombinasyonlarının tüm alanını araştırsanız bile, bilgisayarın her adımda karar verdiği tek hareket bir sezgiye dayanıyor. Sezgisel bir temele dayandığından, rakibin yapabileceği TÜM hamleleri yenmek zorunda değildir.

Arkadaşım, tersine, bir bilgisayarın asla bir "hata" hareketi yapmaması durumunda her zaman kazanacağını veya eşitleyeceğini düşündü (bunu nasıl tanımlıyorsunuz?). Ancak, CS almış bir programcı olarak, iyi seçimlerinizin bile - bilge bir rakip verildiğinde - sonunda sizi "hata" yapmaya zorlayabileceğini biliyorum. Her şeyi bilseniz bile, bir sonraki adımınız bir buluşsal yöntemi eşleştirmede açgözlüdür.

Çoğu satranç bilgisayarı olası bir son oyunu devam eden oyunla eşleştirmeye çalışır, bu da esasen dinamik bir programlama geri dönüşüdür. Yine, söz konusu oyunsonu kaçınılabilir.

Düzenleme: Hmm ... Burada bazı tüyleri karıştırmışım gibi görünüyor. Bu iyi.

Tekrar düşününce, satranç gibi sonlu bir oyunu çözmenin teorik bir problemi yokmuş gibi görünüyor. Satrancın pullardan biraz daha karmaşık olduğunu, zira galibiyetin mutlaka taşların sayısal olarak tükenmesi değil, bir eş tarafından kazandığını iddia ediyorum. İlk iddiam muhtemelen yanlıştır, ancak yine de sanırım henüz tatmin edici bir şekilde (resmi olarak) kanıtlanmamış bir şeye işaret ettim.

Sanırım benim düşünce deneyim, ağaçta bir dal alındığında, o zaman algoritmanın (veya ezberlenmiş yolların), rakibin hareketlerindeki olası herhangi bir dal için bir eşe giden yolu (çiftleşmeden) bulması gerektiğiydi. Tartışmadan sonra, hayal edebileceğimizden daha fazla anı verildiğinde, tüm bu yollar bulunabilirdi.


1
+1: mükemmel konu. Ancak, cevapların çeşitliliği ve hacminin de gösterdiği gibi bunun wiki-fied edilmesi gerektiğini düşünüyorum.
IAbstract

1
"Henüz tatmin edici bir şekilde kanıtlanmamış bir şeye işaret ettiğimi düşünüyorum"? Resmi olarak kanıtlanmamış neye işaret ettiniz?
S.Lott

2
ack! böylesine siyah beyaz bir sorunun 20 farklı cevabı nasıl olabilir! (kelime oyunu yok).
Peter Recore

5
Cevabın aslında matematiksel olarak belirlendiğinin farkında olmadan spekülatif cevaplarını gönderenlerin sayısı beni de şaşırttı - satrancın bir çözümü olduğu kanıtlanmış olması anlamında cevap - bunu hesaplamak pratik değil.
DJClayworth

3
Bana Mükemmel Satranç Oynayan Bilgisayar hakkındaki şakayı hatırlattı. Beyaz oynamak, düşünür, düşünür ve düşünür ve sonra .... istifa eder!

Yanıtlar:


104

"Her zaman satrançta kazanan veya çıkmaza giren deterministik bir Turing makinesi olamayacağını savundum."

Pek haklı değilsin. Böyle bir makine olabilir. Sorun, araştırması gereken devlet uzayının büyüklüğüdür. Sonlu, sadece GERÇEKTEN büyük.

Bu yüzden satranç sezgisel yöntemlere geri döner - durum uzayı çok büyük (ama sonlu). Hatta numaralandırmak - mümkün olan her oyun boyunca her mükemmel hamleyi çok daha az aramak - çok, çok büyük bir arama problemi olacaktır.

Açılışlar, sizi "güçlü" bir pozisyon sağlayan bir oyunun ortasına götürmek için yazılmıştır. Bilinen bir sonuç değil. Son oyunları bile - daha az parça olduğunda - bir sonraki en iyi hamleyi belirlemek için sıralamak zordur. Teknik olarak sonludurlar. Ancak alternatiflerin sayısı çok fazla. 2 kale + şah bile sonraki 22 hamle gibi bir şeye sahiptir. Ve çiftleşmek için 6 hamle gerekiyorsa, 12.855.002.631.049.216 hamleye bakarsınız.

Açılış hamlelerinin matematiğini yapın. Sadece yaklaşık 20 açılış hamlesi varken, 30 veya daha fazla ikinci hamle gibi bir şey var, bu yüzden üçüncü hamlede 360.000 alternatif oyun durumuna bakıyoruz.

Ancak satranç oyunları (teknik olarak) sonludur. Büyük ama sınırlı. Mükemmel bilgi var. Tanımlanmış başlangıç ​​ve bitiş durumları vardır, Yazı-tura veya zar atma yoktur.


22
6 parça veya daha az olan tüm oyunsonları numaralandırılmış ve çözülmüştür. Burada tablo tabanı ve bit tabanına bakın: en.wikipedia.org/wiki/Tablebase . Örneğin, bir matı zorlamak için 517 hareketin gerekli olduğu bir KQNKRBN oyunsonu var! Ancak toplam satranç oyunu sayısı (10 ^ (10 ^ 50)) civarındadır.
HTTP 410

2
Kazanmak için yazılmış bir şey var. Kapsamlı bir şekilde numaralandırılması farklı bir şeydir. Her iki durumda da, bilgi mükemmeldir - her şey bilinir - oyun tanımı gereği belirleyicidir.
S.Lott

11
@RoadWarrior: katılmıyorum. Rastgele hava durumu için geçerlidir. Tanrı zar atar. Tanım gereği rastgele satranç için geçerli değildir. Satranç tam bilgiye sahiptir. Havanın kuantum etkileri vardır - tamamlanamaz.
S. Lot

3
Havayı tahmin etmeyi zorlaştıran şey, herhangi bir kuantum etkisi değil, kaotik doğrusal olmayan faktörlerdir. Yeterli bilgi işlem gücü ve bilgisi verildiğinde, teoride "doğru" bir hava tahmini oluşturabiliriz.
HTTP 410

3
@monojohnny: Kurallar aynı pozisyonun üç tekrarını yasaklıyor. Satranç basitçe sonludur. Büyük ama sınırlı.
S.Lott

72

Satranç hakkında gerçekte keşfedilenler hakkında neredeyse hiçbir şey bilmiyorum. Ama bir matematikçi olarak, işte benim gerekçem:

İlk önce Beyaz'ın önce gideceğini ve belki bu ona bir avantaj sağladığını hatırlamalıyız; belki Siyah'a bir avantaj sağlar.

Şimdi , Siyah için her zaman kazanmasına / çıkmaza girmesine izin veren mükemmel bir stratejinin olmadığını varsayalım . Bu, Siyah ne yaparsa yapsın, Beyazın kazanmak için izleyebileceği bir strateji olduğu anlamına gelir. Bir dakika - bu , Beyaz için mükemmel bir strateji olduğu anlamına gelir !

Bu iki oyuncudan en az birini söyler gelmez o oyuncu her zaman kazanmak ya da çizme olanağı sağlayan mükemmel bir strateji var.

O halde sadece üç olasılık vardır:

  • Beyaz mükemmel oynarsa her zaman kazanabilir
  • Siyah mükemmel oynarsa her zaman kazanabilir
  • Bir oyuncu mükemmel oynarsa kazanabilir veya berabere kalabilir (ve her iki oyuncu da mükemmel oynarsa, her zaman çıkmaza girerler)

Ama bunlardan hangisinin aslında doğru olduğunu asla bilemeyebiliriz.

Sorunun cevabı evet : En azından iki oyuncudan biri için satranç için mükemmel bir algoritma olmalı.


2
+1, Bu, bunu açıklamanın gerçekten harika bir yolu. Bunu hiç düşünmediğime inanamıyorum!
Zifre

2
Siyahın mükemmel stratejisi olmaması neden beyazın mükemmel bir stratejisi olduğunu ima ediyor? Her iki oyuncunun da mükemmel bir stratejiye sahip olmaması ne olacak? Çıkarımınız doğruysa, bu her 2 oyunculu oyun için doğru olmaz mıydı, yani her oyunun mükemmel bir stratejisi vardır?
John M Naglick

8
@john: Satranç mükemmel bilgiye sahip olduğu ve rastgele unsurları olmadığı için (diğer birçok 2 oyunculu oyunun aksine), siyah için mükemmel bir stratejinin var olmamasının tek yolu, beyazın herhangi bir girişimde bulunmasına rağmen galibiyeti zorlaması olabilir. siyah - diğer bir deyişle, beyaz için mükemmel bir strateji varsa.
Dave Sherohman

2
Aslında bu mantık her zaman geçerli değildir , ancak bu durumda doğru mu?
BlueRaja - Danny Pflughoeft

4
@john "neden bu kadar çok tartışma burada" - çünkü bazı insanlar cevabı bilmiyor, ancak yine de buraya gönderin.
DJClayworth

30

Bir programın oyunu her zaman kazanabileceği veya eşitleyebileceği dama oyununda kanıtlanmıştır . Diğer bir deyişle, bir oyuncunun diğer oyuncuyu kaybetmeye zorlayabileceği bir hamle seçeneği yoktur.

Araştırmacılar, neredeyse yirmi yılını , satranç pozisyonlarının sayısının hâlâ son derece küçük bir bölümü olan 500 milyar olası dama pozisyonunu geçerek geçirdiler . Dama çabası, araştırma ekibinin, hareketleri başarılı veya başarısız olarak kategorize eden yazılıma temel kuralları kontrol etmesine yardımcı olan en iyi oyuncuları içeriyordu. Daha sonra araştırmacılar, programın günde ortalama 50 bilgisayar çalıştırılmasına izin verdi. Bazı günler program 200 makinede çalıştı. Araştırmacılar ilerlemeyi izlerken ve programı buna göre değiştirirken. Aslında Chinook, 1994'te dama dünya şampiyonasını kazanmak için insanları yendi.

Evet, satrancı çözebilirsin, hayır, yakın zamanda çözemezsin.


6
"[Y] ou yakında bir yz daha olmayacak" biraz yetersiz kalıyor. Evrenin beklenen süresinin sınırının yanı sıra, bir depolama sorununuz var - Satranç'taki durumların sayısı 500 milyar milyarı aşıyor; aslında, evrendeki parçacıkların sayısını aşıyor.
Michael Dorfman

30
"[...] aslında, evrendeki parçacıkların sayısını aşıyor." Evrendeki parçacıkların durum sayısını aşmadığı sürece hala umut var ;-)
Carsten

1
rakibi her zaman kaybetmeye zorlayan program kendine karşı oynuyorsa ne olur ????
John Demetriou

1
@BCS hmm, peki ya ben ikinci oyuncu olarak oynuyorsam ve diğerinin de benimle aynı buluşsal yöntemi kullanması durumunda kazanmak için bu buluşsal yöntemi takip et ve ilk oyuncunun da benzer bir buluşsal yöntemi varsa ???? ?
John Demetriou

1
Demek istediğim, eğer mükemmel bir algoritma varsa ve her iki oyuncuda da varsa, algoritmanın mükemmel olması için değiştirebileceği belirsiz sayıda olasılık olacaktır
John Demetriou

15

Bu bilgisayarlarla ilgili bir soru değil, sadece satranç oyunuyla ilgili.

Soru şu ki, oyunu asla kaybetmemek için güvenli bir strateji var mı? Böyle bir strateji varsa, her şeyi bilen bir bilgisayar onu her zaman kullanabilir ve artık bir buluşsal değildir.

Örneğin, tic-tac-toe oyunu normalde buluşsal yöntemlere göre oynanır. Ancak, güvenli bir strateji var. Rakip ne hareket ederse etsin, her zaman oyunu kaybetmekten kaçınmanın bir yolunu bulursunuz, eğer bunu baştan itibaren doğru yaparsanız.

Dolayısıyla, böyle bir stratejinin satranç için de var olup olmadığını kanıtlamanız gerekir. Temelde aynı, sadece olası hareketlerin alanı çok daha büyük.


Öyleyse, cevabımı olumsuz oylama dürtüsü kimde vardı? İçinde bir sorun mu var? Kendinizi öne çıkarmak ister misiniz?
ypnos

@ypnos, cevabınızı hiç olumsuz oylamadım. Sadece rastgele seçmenlerin sizi hayal kırıklığına uğratmasına izin vermeyin demek için yorum yaptım. 30 rep kazandınız ve sadece 1 kaybettiniz. Ayrıca +1;)
mmcdole

1
Olumsuz oy kullanmanın çeşitli nedenleri. 1) Oyunu çözmek için bir algoritma olduğu biliniyor, bu sadece algoritmanın akla gelebilecek herhangi bir teknolojiyi kullanarak hesaplamanın pratik olmadığıdır. 2) Oyunu çözmek, bunların güvenli bir strateji olduğu anlamına gelmez. Tic-tac-toe çözüldü, ancak ikinci oyuncu için bir kayıptan kaçınan bir strateji yok.
DJClayworth

2
"Bu bilgisayarlarla ilgili bir soru değil, sadece satranç oyunuyla ilgili." Bilgisayar bilimi aslında bilgisayarlarla ilgili değildir. Onlar sadece bir araçtır. Bilgisayar bilimi bilgisayarlar olmadan çalışır.
Janus Troelsen

1
Bu aslında bilgisayarlar hakkında bir sorudur, çünkü sorular satrancı çözen bir Turing Makinesinin (= Bilgisayar) var olup olmadığıdır.
SDwarfs

14

Bu konuya çok geç geliyorum ve bazı sorunların farkına vardınız. Ancak eski bir usta ve eski bir profesyonel satranç programcısı olarak, birkaç yararlı gerçek ve rakam ekleyebileceğimi düşündüm. Satrancın karmaşıklığını ölçmenin birkaç yolu vardır :

  • Toplam satranç oyunu sayısı yaklaşık 10 ^ (10 ^ 50) 'dir. Bu sayı hayal edilemeyecek kadar büyük.
  • 40 hamle veya daha az satranç oyunu sayısı 10 ^ 40 civarındadır. Bu hala inanılmaz derecede büyük bir sayı.
  • Olası satranç pozisyonlarının sayısı 10 ^ 46 civarındadır.
  • Tam satranç arama ağacı (Shannon sayısı), ortalama 35 dallanma faktörüne ve 80 ortalama oyun uzunluğuna göre 10 ^ 123 civarındadır.
  • Karşılaştırma için, gözlemlenebilir evrendeki atom sayısının genellikle 10 ^ 80 civarında olduğu tahmin edilmektedir.
  • 6 parça veya daha az tüm oyunsonları harmanlandı ve çözüldü .

Benim sonucum: satranç teorik olarak çözülebilirken, bunu yapacak paraya, motivasyona, hesaplama gücüne veya depolamaya asla sahip olamayacağız.


3
Hadi. Problemi farklı düşünmelisiniz. Oyunların sayısını düşünmeyin, çünkü transpozisyonlar ve alfa-beta algoritmaları ve benzeri şeyler bunu büyük ölçüde azaltır. Tahta pozisyonlarını (10 ^ 60) veya satranç taşlarının kombinasyonlarını (100 milyon) düşünün. Quantum Computing ile bu önemsizdir.
lkessler

2
Bu bağlamda alfa-beta (satrancı çözmek) mükemmel bir değerlendirme işlevi gerektirir. Tahta pozisyonları ve parça kombinasyonları da öyle. Mükemmel bir değerlendirme fonksiyonumuz yok, bu yüzden kuantum hesaplama bize yardımcı olmuyor.
HTTP 410

1
Ne zaman bir şeyin "önemsiz" olduğunu düşünsem ve kimsenin bunu yapmadığından eminim, en azından bir kez de yanılmışımdır.
Dean J

2
@lkessler: Kurul pozisyonları tüm hikayeyi anlatmaz. Yakalama veya piyon hareketinin olmaması nedeniyle rok atma veya geçerken yakalama veya beraberlik için en azından oyunun biraz geçmişi ve tekrarla beraberlik için tüm tarih gereklidir. Dahası, son zamanlarda bir kuantum bilgisayarın faktör 15'e ulaşması için dikkate değer bir araştırma sonucu olduğundan, şu anda kuantum hesaplamayla hiçbir şeyin önemsiz olmadığını söyleyebilirim.
David Thornley

2
Burada karşılaştırma yapmak için, eğer mümkün olan tüm satranç pozisyonlarını oluşturabilirseniz, 10 ^ 46 yaklaşık 2 ^ 152 veya 2 ^ 153 olduğundan, 128 bitlik bir anahtarla herhangi bir şifreyi önemsiz bir şekilde kaba kuvvet uygulayabilirsiniz. Evrenin ısı ölümünden önce bunun imkansız olduğunu düşünmek için mükemmel nedenler var.
David Thornley

9

Aslında bazı oyunlar çözüldü. Tic-Tac-Toe, her zaman kazanacak veya beraberlik sağlayacak bir AI oluşturmak için çok kolay bir oyundur. Son zamanlarda, Connect 4 de çözüldü (ve ikinci oyuncuya haksız olduğu gösterildi, çünkü mükemmel bir oyun kaybetmesine neden olacak).

Ancak satranç çözülmedi ve bunun adil bir oyun olduğuna dair herhangi bir kanıt olduğunu sanmıyorum (yani, mükemmel oyunun berabere sonuçlanıp sonuçlanmayacağı). Kesinlikle teorik bir perspektiften konuşmak gerekirse, Satranç'ın sınırlı sayıda olası taş konfigürasyonu vardır. Bu nedenle, arama alanı sonludur (inanılmaz derecede büyük olsa da). Bu nedenle, mükemmel şekilde oynayabilen deterministik bir Turing makinesi mevcuttur. Bununla birlikte, birinin inşa edilip edilemeyeceği farklı bir konudur.


8

Ortalama 1000 $ 'lık masaüstü bilgisayar, 2040 yılına kadar (5x10 ^ 20 hesaplama) damaları sadece 5 saniyede çözebilecek.

Bu hızda bile, satrancı çözmek bu bilgisayarlardan 100 tanesini yaklaşık 6,34 x 10 ^ 19 yıl alır . Hala mümkün değil. Yakınında bile değil.

2080 civarında, ortalama masaüstü bilgisayarlarımız saniyede yaklaşık 10 ^ 45 hesaplama yapacaktır. Tek bir bilgisayar, satrancı yaklaşık 27,7 saatte çözmek için hesaplama gücüne sahip olacaktır. Hesaplama gücü son 30 yılda olduğu gibi artmaya devam ettiği sürece, 2080 yılına kadar kesinlikle yapılacaktır.

2090'a kadar, satrancı yaklaşık 1 saniyede çözmek için 1000 $ 'lık bir masaüstünde yeterli hesaplama gücü mevcut olacak ... yani o tarihe kadar tamamen önemsiz olacak.

Dama 2007'de çözüldüğünde ve bunu 1 saniyede çözecek hesaplama gücünün yaklaşık 33-35 yıl gecikeceği düşünüldüğünde, satrancın 2055-2057 arasında bir yerde çözüleceğini kabaca tahmin edebiliriz. Muhtemelen daha fazla hesaplama gücünün mevcut olduğu zamandan bu yana (45 yıl sonra durum bu olacak), bunun gibi projelere daha fazlası tahsis edilebilir. Ancak en erken 2050, en geç 2060 diyebilirim.

2060'da satrancı çözmek 100 masaüstünün 3.17 x 10 ^ 10 yılını alacaktı. Kıyaslama olarak 1000 $ 'lık bir bilgisayar kullandığımı fark edin, oysa daha büyük sistemler ve süper bilgisayarlar fiyat / performans oranları da arttığı için büyük olasılıkla mevcut olacaktır. Ayrıca, hesaplama gücünün büyüklük sıralaması daha hızlı bir şekilde artar. Şimdi bir süper bilgisayarın saniyede 2,33 x 10 ^ 15 hesaplama ve yaklaşık 2 x 10 ^ 9 1000 dolarlık bir bilgisayar yapabildiğini düşünün. Karşılaştırıldığında, 10 yıl önce fark 10 ^ 6 yerine 10 ^ 5 idi. 2060'a kadar büyüklük farkı muhtemelen 10 ^ 12 olacak ve bu bile beklenenden daha hızlı artabilir.

Bunun çoğu, biz insanlar olarak satrancı çözme dürtüsüne sahip olup olmadığımıza bağlıdır, ancak hesaplama gücü bu süre zarfında bunu mümkün kılacaktır (hızımız devam ettiği sürece).

Başka bir kayda göre, çok, çok daha basit olan Tic-Tac-Toe oyunu 2.653.002 olası hesaplamaya sahiptir (açık tahta ile). Tic-Tac-Toe'yu kabaca 2,5 (saniyede 1 milyon hesaplama) saniyede çözmek için hesaplama gücü 1990'da elde edildi.

Geriye doğru gidersek, 1955'te bir bilgisayar Tic-Tac-Toe'yu yaklaşık 1 ayda (saniyede 1 hesaplama) çözme gücüne sahipti. Yine, bu, bir bilgisayara paketleyebilseydiniz (1000 dolarlık bir masaüstü açıkça 1955'te yoktu) ve bu bilgisayar Tic-Tac-Toe'yu çözmeye adanmıştı. 1955'teki durum böyle değildi. Hesaplama pahalıydı ve bu amaçla kullanılmazdı, ancak Tic-Tac-Toe'nun bir bilgisayar tarafından "çözüldüğünü" kabul ettiğine inanmıyorum, ancak ben elbette gerçek hesaplama gücünün gerisinde kaldı.

Ayrıca 45 yılda 1000 $ değerinin şimdikinden yaklaşık 4 kat daha az olacağını da hesaba katarsak, bu gibi projelere çok daha fazla para girebilirken, hesaplama gücü daha da ucuzlayacaktır.


9
"1976 ile biten yıl disko rekoru satışlarının% 400 arttığını biliyor muydunuz? Bu trendler devam ederse ... AAY!" - Disco Stu
Jeremy Friesner

2
Moore yasası - Bilgi işlem gücü her 18 ayda iki katına çıkar - 2015 yılı civarında başarısız olma olasılığı yüksektir. Veya bilgisayar işlemci tasarımının kökten farklı olması gerekecek. Dolayısıyla 2080 gerçekçi bir hedef değil.
Philip Smith

3
@Philip: Masaüstü bilgisayarların işlemci saat hızları 2003'ten bu yana yalnızca biraz arttı ve o zamandan beri yapılan iyileştirmeler çoğunlukla önbellek ve çoklu çekirdek olarak artırıldı. 3 GHz'lik bir işlemci, ışığın 4 inç / 10 cm hareket etmesi için gereken sürede bir saat döngüsüne sahip olduğundan, saat hızının sonsuza kadar artması beklenemez. Dahası, paralellik genellikle zordur. Yedi yıl önce çökmeye başladığında elli yıl boyunca üstel bir artış öngörmek güvenli bir bahis gibi görünmüyor.
David Thornley

1
@David - hepsi doğru. Ama asıl noktayı kaçırıyor. Çipteki bileşenlerin yarısı kadar büyüklüğünüz varsa, elektronlar aynı saat hızında iki kat daha fazla iş yapar. Moore yasasını besleyen şey budur.
Philip Smith

3
@Philip: Yarılanma elbette sonsuza kadar devam edemez. Bir silikon atomu yaklaşık bir nanometrenin dörtte biri çapındadır ve çip üretimi zaten onlarca nanometreye inmiştir. Dahası, kuantum seviyelerinde parçacıklar mutlak kurallara değil istatistiksel kurallara uyarlar, bu nedenle büyük sayılar yasasını çağırmak için bir seferde yeterli elektronun etrafında hareket etmek gerekir. Şimdiye kadar, Moore yasası bir yasa ile kendi kendini gerçekleştiren bir kehanet arasında bir yerdeydi, ancak bu oldukça yakında sona eriyor.
David Thornley

7

Aslında her iki oyuncunun da iyi sıralama olmaksızın sonsuz oyunlarda kazanma stratejilerine sahip olması mümkündür ; ancak, satranç iyi düzenlenmiştir. Aslında, 50 hamle kuralı nedeniyle, bir oyunun sahip olabileceği hamle sayısının bir üst sınırı vardır ve bu nedenle yalnızca sonlu sayıda olası satranç oyunu vardır (tam olarak çözmek için numaralandırılabilir .. teorik olarak, en azından :)


4
Teknik olarak elli hamle kuralı, üç hamle tekrarı gibi (aynı zamanda işleri de sınırlar - sınırlı sayıda olası konum vardır, bu nedenle bu sayıyı üç ile çarpmak bize bir üst sınır verir) bir berabere neden olmaz . Aksine, her iki oyuncuya da beraberlik talep etme fırsatı verir . Normalde kaybeden oyuncu bunu yapacaktır, ancak gerekli değildir. Bu nedenle, aşağıdaki tamamen yasal bir oyundur: 1. Ac3 Ac6 2. Ab1 Ab8 3. Ac3 Ac6 4. Ab1 Ab8, sonsuza kadar tekrarlandı. Ve yanılmıyorsam, bunun beyaz ve siyah olarak oynayan iki mükemmel algoritmanın sonucu olmadığı kanıtlanmadı.
Lenoxus

6

Tartışmayı sonlandırmanız, modern satranç programlarının şu anki çalışma biçimiyle destekleniyor . Bu şekilde çalışırlar çünkü bir satranç programını deterministik olarak işlemesi için kodlamak çok yoğun kaynak gerektirir. Onlar mutlaka alışkanlık hep bu şekilde çalışmaz. Satrancın bir gün çözülmesi mümkündür ve bu olursa, muhtemelen bir bilgisayar tarafından çözülecektir.


5

Kayıt için, dama kazanabilen veya bağlanabilen bilgisayarlar var . Aynı şeyin satranç için de yapılabileceğinden emin değilim. Hamle sayısı çok daha fazla. Ayrıca işler değişir çünkü parçalar sadece ileri ve geri değil, herhangi bir yönde hareket edebilir. Emin olmasam da satrancın deterministik olduğunu düşünüyorum, ancak bir bilgisayarın şu anda tüm hareketleri makul bir süre içinde belirlemesi için çok fazla olası hareket olduğunu düşünüyorum.


1
Yapılabilir, ancak görebileceğimiz bir bilgisayarda yapılabilir mi?
BCS

1
Muhtemelen bizim hayatımızda değil. Alandaki gerçekten ilginç araştırmaların tümü Go oyununda yapılıyor. :)
Bill the Lizard

IIRC çoğu 6 yaşındaki çocuk Go'da herhangi bir bilgisayar olabilir.
BCS

2
@BCS: Artık değil. En iyi Go programları artık dan (profesyonel) seviyesindeki oyuncuları yeniyor.
Bill Lizard

1
@BlueRaja: 2008 yılındaydı. Şu anki rekorun ne olduğunu bilmiyorum ama MoGo profesyonelleri 19x19'da 6 ve 7 taşla yendi. ireport.cnn.com/docs/DOC-214010
Bill the Lizard

5

Bence öldün Deep Blue ve Deep Thought gibi makineler, önceden tanımlanmış bir dizi oyunla ve ağaçları bu oyunların sonlarına ayırmak için akıllı algoritmalarla programlanmıştır. Bu, elbette, dramatik bir aşırı basitleştirmedir. Bir oyun boyunca bilgisayarı "yenme" şansı her zaman vardır. Bununla bilgisayarı optimalden daha az (her ne ise) bir hareket yapmaya zorlayan bir hareket yapmayı kastediyorum. Bilgisayar hareket için zaman sınırından önce en iyi yolu bulamazsa, daha az istenen yollardan birini seçerek bir hata yapabilir.

Gerçek makine öğrenimini veya genetik programlama / evrimsel algoritmaları kullanan başka bir satranç programı sınıfı daha var. Bazı programlar geliştirildi ve karar vermek için sinir ağlarını vb. Kullandı. Bu tür bir durumda, bilgisayarın "hatalar" yapabileceğini, ancak yine de bir zaferle sonuçlanabileceğini hayal ederdim.

Bu tür GP hakkında okuyabileceğiniz Blondie24 adlı büyüleyici bir kitap var . Dama ile ilgili ama satranç için de geçerli olabilir.


Bugünün bilgisayarlarını satrançta böyle yendiniz. Yarın daha iyi olacak. Yine de Blondie24'ün büyüleyici olduğu konusunda size katılıyorum.
Bill the Lizard

Yedek oy verildi. Bu gönderi negatif bir puanı hak etmiyor.
Cybis

Ne yazık ki, satranç oyunu sorunu, makine öğreniminin işe yaraması için çok büyük. Hatasız bir şekilde oynayabilecekleri bir satranç öğrenimi programını asla elde edemezlerdi. Buluşsal yöntemler daha iyidir. Ancak Brute Force daha da iyiydi. Makine öğrenimi alanı sadece satrançtaki başarısızlığından ders aldı.
lkessler

Satranç programları kısa vadeli hatalar yapmaz ve en iyi programlar dünya şampiyonlarından daha iyi oynar. Sanırım Rybka 64 bit'in en son sürümü 3200 ELO
Alex

5

Bu sorunun konusu olan oyun teorisine göre cevap evet, Satranç mükemmel oynanabilir. Oyun alanı biliniyor / tahmin edilebilir ve evet, torunun kuantum bilgisayarlarına sahip olsaydınız, muhtemelen tüm buluşsal yöntemleri ortadan kaldırabilirsiniz.

Her gün herhangi bir betik dilinde mükemmel bir tic-tac-toe makinesi yazabilir ve gerçek zamanlı olarak mükemmel şekilde oynayabilir.

Othello, mevcut bilgisayarların kolayca mükemmel şekilde oynayabileceği başka bir oyundur, ancak makinenin belleği ve CPU'su biraz yardıma ihtiyaç duyacaktır.

Satranç teorik olarak mümkündür ancak pratik olarak mümkün değildir (2008'de)

i-Go aldatıcıdır, olasılıklar alanı evrendeki atom miktarının ötesine düşer, bu yüzden mükemmel bir i-Go makinesi yapmak biraz zaman alabilir.



4
Teknik olarak, kombinatoryal oyun teorisidir.
Anaphory

5

Satranç, tanımı gereği optimal bir sonuca sahip olan bir matris oyunu örneğidir (Nash dengesini düşünün). Oyuncu 1 ve 2'nin her biri en iyi hamleleri yaparsa, HER ZAMAN belirli bir sonuca ulaşılacaktır (bunun bir kazan-beraber-kayıp olup olmadığı hala bilinmemektedir).


5

1970'lerden bir satranç programcısı olarak bu konuda kesinlikle bir fikrim var. Yaklaşık 10 yıl önce yazdıklarım, bugün hala temelde doğrudur:

"Bitmemiş Çalışma ve Satranç Programcılarının Karşılaştığı Zorluklar"

O zamanlar, düzgün yapılırsa satrancı geleneksel olarak çözebileceğimizi düşünmüştüm.

Dama son zamanlarda çözüldü (Yay, Alberta Üniversitesi, Kanada !!!), ancak bu etkili bir şekilde Brute Force yapıldı. Geleneksel olarak satranç yapmak için daha akıllı olmanız gerekir.

Tabii Kuantum Hesaplama bir gerçeklik haline gelmedikçe. Eğer öyleyse, satranç Tic-Tac-Toe kadar kolay çözülecektir.

1970'lerin başında Scientific American'da dikkatimi çeken kısa bir parodi vardı. Satranç oyununun bir Rus satranç bilgisayarı tarafından çözüldüğünü duyurdu. Beyaz için her iki tarafın da mükemmel oyunuyla galibiyet sağlayacak mükemmel bir hamle olduğunu belirlemişti ve bu hamle: 1. a4!


3

Buradaki pek çok cevap, önemli oyun teorik noktalarını ortaya koyuyor:

  1. Satranç, oyunun durumu hakkında eksiksiz bilgi içeren sonlu, belirleyici bir oyundur.
  2. Sonlu bir oyunu çözebilir ve mükemmel bir strateji belirleyebilirsiniz
  3. Ancak satranç, kaba kuvvet yöntemiyle tamamen çözemeyeceğiniz kadar büyüktür.

Ancak bu gözlemler önemli bir pratik noktayı gözden kaçırıyor: Yenilmez bir makine yaratmak için oyunun tamamını mükemmel bir şekilde çözmek gerekli değildir .

Aslında, olası durum uzayının çok küçük bir kısmını bile aramadan, rakipsiz bir satranç makinesi yaratmanız (yani asla kaybetmeyeceğiniz ve her zaman galibiyet veya beraberliğe zorlamanız) oldukça muhtemeldir.

Örneğin aşağıdaki tekniklerin tümü, gerekli arama alanını büyük ölçüde azaltır:

  • Alpha / Beta veya MTD-f gibi ağaç budama teknikleri , arama alanını zaten büyük ölçüde azaltmaktadır
  • Sağlanabilir kazanan pozisyon. Pek çok son bu kategoriye girer: Örneğin KR vs K araması yapmanıza gerek yok, bu kanıtlanmış bir galibiyet. Biraz çalışmayla daha birçok garantili galibiyeti kanıtlamak mümkündür.
  • Neredeyse belirli galibiyetler - herhangi bir aptalca hata olmadan "yeterince iyi" oyun için (örneğin ELO 2200+ hakkında?) Birçok satranç pozisyonu neredeyse kesin kazançlardır, örneğin telafi edici pozisyon avantajı olmayan makul bir materyal avantajı (örneğin ekstra bir At). Programınız böyle bir konumu zorlayabiliyorsa ve konumsal avantajı tespit etmek için yeterince iyi buluşsal yöntemlere sahipse,% 100 olasılıkla kazanacağını veya en azından berabere kalacağını güvenle varsayabilir.
  • Ağaç arama sezgisel tarama - Yeterince iyi örüntü tanıma ile, hızlı bir şekilde "ilginç" hareketlerin ilgili alt kümesine odaklanabilirsiniz. İnsan büyükustaları böyle oynuyor, bu yüzden açıkça kötü bir strateji değil ..... ve kalıp tanıma algoritmalarımız sürekli olarak daha iyi hale geliyor
  • Risk değerlendirmesi - bir pozisyonun "riskliliğine" ilişkin daha iyi bir kavrayış, hesaplama gücünü sonucun daha belirsiz olduğu durumlara odaklayarak çok daha etkili bir arama yapılmasını sağlayacaktır (bu, Sessiz Arama'nın doğal bir uzantısıdır )

Yukarıdaki tekniklerin doğru kombinasyonu ile, "yenilmez" bir satranç oynama makinesi yaratmanın mümkün olduğunu rahatlıkla söyleyebilirim. Muhtemelen mevcut teknolojiden çok uzakta değiliz.

Bu makinenin yenilemeyeceğini kanıtlamanın neredeyse kesinlikle daha zor olduğunu unutmayın . Muhtemelen Reimann hipotezi gibi bir şey olurdu - mükemmel bir şekilde oynadığından ve asla kaybetmediğini gösteren deneysel sonuçlara sahip olacağından oldukça emin olurduk (kendisine karşı birkaç milyar düz çekiliş dahil), ama aslında bunu yapma yeteneğimiz olmayacaktı. kanıtla.

"Mükemmelliğe" ilişkin ek not:

Makineyi oyun teorik anlamında "mükemmel" olarak tanımlamamaya dikkat ediyorum çünkü bu, alışılmadık derecede güçlü ek koşulları ifade eder, örneğin:

  • Kazanan kombinasyon ne kadar karmaşık olursa olsun, bir galibiyeti zorlamanın mümkün olduğu her durumda daima kazanmak. Galibiyet / berabere arasındaki sınırda bunun mükemmel bir şekilde hesaplanmasının son derece zor olduğu durumlar olacaktır.
  • Rakibinizin oyunundaki olası kusurlarla ilgili mevcut tüm bilgileri istismar etmek, örneğin rakibinizin çok açgözlü olabileceği ve rakibinizi hata yapmaya teşvik etme potansiyeli daha yüksek olduğu gerekçesiyle kasıtlı olarak normalden biraz daha zayıf bir çizgide oynayabileceği sonucuna varmak. Kusurlu rakiplere karşı , rakibinizin muhtemelen zorunlu galibiyeti fark etmeyeceğini tahmin ediyorsanız ve bu size daha yüksek bir kazanma olasılığı verirse , bir mağlubiyet yapmak en uygun yöntem olabilir .

Mükemmellik (özellikle kusurlu ve bilinmeyen rakipler göz önüne alındığında), yenilmez olmaktan çok daha zor bir sorundur.


Kusurlu rakiplere sahip olmak gerçek bir sorun değildir. Bu sadece mükemmel oyuncunun (mükemmel sonuç ne olursa olsun) daha az hamlede galibiyet / berabere olmasını sağlar. Her pozisyondaki en uygun hareket her zaman diğer olası hareketlere eşit veya daha iyidir (tanım gereği). Dolayısıyla, optimal olmayan bir hamle, rakibinizin daha erken bir optimal son durumuna (kazan / berabere) ulaşmasına ve hatta daha iyi bir sonuca zorlanmasına izin verir. Örneğin, beyaz mükemmel oynarsa siyah her zaman gevşek olursa, beyaz sadece tek bir yetersiz hamle oynarsa siyahın kazanması mümkündür. Ama evet, bu analizin karmaşıklığını biraz artırmalı.
SDwarfs

@Stefan - en iyi oyunu önemsiyorsanız, kusurlu rakipler büyük bir sorundur . Özellikle, rakibinizin hata yapma olasılığının yeterince yüksek olduğunu biliyorsanız, kaybeden bir hamle oynamanın gerçekten tercih edilebileceği durumları (yani, mükemmel bir rakibin sizi kesinlikle yeneceği bir hamle) düşünebilirsiniz.
mikera

Bana göre optimal oyun, sıfır riskle mümkün olan en iyi sonucu elde etmek anlamına geliyor. Rakibiniz muhtemelen "zayıftır" ancak bu kaybetme hamlesini oynadığınızda, maalesef kazara iyi bir hamle oynayabilir. Yetersiz rakipleri önemsemek, yalnızca birisinin rakibinin (optimumun altında oynama) hata yapma şansının daha yüksek olduğu ve gerçekte berabere veya galibiyete götüren kaybetme hamleleri arasında bir seçim varsa geçerlidir.
SDwarfs

1
Bu, oyun teorisinde optimalin olağan tanımı değildir. Optimal, genellikle beklenen sonucu maksimize etmek anlamına gelir . Bu durumda, optimal bir oyuncu , ortalama olarak daha iyi bir sonuç alması koşuluyla bazı riskleri kabul edecektir .
mikera

Bu durumda tamamen haklısın!
SDwarfs

2

Oyuncu1 / 2 hamlelerinin tüm kombinasyonlarının tüm alanını araştırırsanız, bilgisayarın her adımda karar verdiği tek hareket bir buluşsal yönteme dayanır.

Orada birbiriyle yarışan iki fikir var. Birincisi, olası her hareketi araştırmanız, diğeri ise bir buluşsal yönteme göre karar vermenizdir. Sezgisel, iyi bir tahmin yapmak için kullanılan bir sistemdir. Mümkün olan her hareketi araştırıyorsanız, artık tahmin edemezsiniz.


Aslında alıntı doğru. Programlar, geçerli konumda her iki taraf için olası tüm hareketlere bakar ve oyunu bilgisayar için uygun bir konuma doğru ilerletmek için iyi bir hareket bulmak için buluşsal yöntemleri kullanır.
Bill the Lizard

1
Hayır, olası tüm hareketlere bakmazlar. Ağaçları budamak için boş hareket buluşsal yöntemi kullanırlar.
Alex

2

"Satranç için mükemmel bir algoritma var mı?"

Evet var. Belki her zaman Beyaz'ın kazanması içindir. Belki de her zaman Siyah'ın kazanması içindir. Belki de en azından her zaman eşit olmak her ikisine de içindir. Hangisini bilmiyoruz ve asla bilemeyeceğiz, ama kesinlikle var.

Ayrıca bakınız


1
Oldukça iyi bir satranç oyuncusu olarak ve yıllar boyunca sorunu kapsamlı bir şekilde incelemiş biri olarak, satrançta her iki oyuncu için de mükemmel stratejinin berabere sonuçlandığından% 99,9 eminim (dama ile kanıtlandığı gibi). Oyuncu gücü arttıkça, beraberlik yüzdesinin de arttığına dair kanıtlar var.
mikera


2

Mükemmel bir şekilde çözülebilir.

10 ^ 50 garip pozisyon vardır. Benim hesabıma göre her pozisyon, saklamak için en az 64 yuvarlak bayt gerektirir (her karede: 2 bağlantı biti, 3 parça bit). Bir kez harmanlandıktan sonra, şah mat olan pozisyonlar belirlenebilir ve pozisyonlar, büyük bir sonuç ağacında hangi pozisyonların başka pozisyonlara yol açtığını gösteren bir ilişki oluşturmak için karşılaştırılabilir.

Daha sonra, programın, eğer böyle bir şey varsa, yalnızca en düşük tek taraflı mat köklerini bulması gerekir. Her halükarda, Satranç ilk paragrafın sonunda oldukça basit bir şekilde çözüldü.


1

Devlet uzayının büyüklüğünün bir çözüm ummayı imkansız kıldığı iddiasına yalnızca% 99,9 ikna oldum.

Elbette, 10 ^ 50 inanılmaz derecede büyük bir sayıdır. Durum uzayının büyüklüğüne n diyelim.

Mümkün olan en uzun oyunda hamle sayısının sınırı nedir? Tüm oyunlar sınırlı sayıda hamlede bittiği için böyle bir sınır var, buna m diyelim.

Başlangıç ​​durumundan başlayarak, O (m) uzayındaki tüm n hareketleri sıralayamaz mısınız? Elbette, O (n) zaman alıyor, ancak evrenin büyüklüğünden gelen argümanlar bunu doğrudan ele almıyor. O (m) uzay çok fazla olmayabilir. O (m) alanı için, bu geçiş sırasında, geçmekte olduğunuz yol boyunca herhangi bir durumun devamının EitherMayWin, EitherMayForceDraw, WhiteMayWin, WhiteMayWinOrForceDraw, BlackMayWin veya BlackMayWinOrForceDraw'a yol açıp açmadığını da izleyemezdiniz? (Sıranın kimde olduğuna bağlı olarak bir kafes vardır, geçişinizin geçmişindeki her duruma kafes buluşması ile açıklama ekleyin.)

Bir şeyi kaçırmıyorsam, bu satrancın olası kategorilerden hangisine girdiğini belirlemek için bir O (n) zaman / O (m) uzay algoritmasıdır. Wikipedia, yaklaşık 10 ^ 60. Planck zamanındaki evrenin yaşı için bir tahmin veriyor. Bir kozmoloji tartışmasına girmeden tahmin edelim ki sıcak / soğuk / evrenin ölümü ne olursa olsun önce bu kadar çok zaman kaldı. Bu, her 10 ^ 10. Planck zamanlarında veya her 10 ^ -34 saniyede bir hareketi değerlendirme ihtiyacına neden olur. Bu inanılmaz derecede kısa bir süredir (şimdiye kadar gözlemlenen en kısa sürelerden daha kısa olan yaklaşık 16 büyüklük sırası). İyimser bir şekilde, mevcut-veya-öngörülen-kuantum-olmayan-P-NP teknolojisinin-uygun-bir-alt-kümesidir, hattının üstünde çalışan süper iyi bir uygulama ile değerlendirmeyi umabileceğimizi söyleyelim. tek adım ileri Ortaya çıkan durumu 100 MHz hızında (her 10 ^ -8 saniyede bir) bir ara durum veya üç son durumdan biri olarak sınıflandırır. Bu algoritma çok paralelleştirilebilir olduğu için, bu tür bilgisayarların 10 ^ 26'sı veya vücudumdaki her atom için yaklaşık bir tane ve sonuçlarını toplama yeteneğine ihtiyacımız var.

Sanırım kaba kuvvet çözümü için her zaman biraz umut vardır. Şansımız yaver gidebilir ve beyazın olası açılış hareketlerinden sadece birini keşfederken, hem ortalamanın çok altında bir fanout'a sahip olanı hem de beyazın her zaman kazandığı ya da kazandığı ya da kazandığı bir galibiyet seçebiliriz.

Ayrıca satrancın tanımını bir şekilde küçültmeyi ve herkesi bunun ahlaki olarak aynı oyun olduğuna ikna etmeyi umabiliriz. Bir çekilişten önce pozisyonların 3 kez tekrarlanmasını gerçekten istememiz gerekiyor mu? Kaçma partisinin 50 hamle için kaçma yeteneğini göstermesine gerçekten ihtiyacımız var mı? Geçerken alma kuralının ne halt ettiğini anlayan var mı ? ;) Daha ciddisi, bir oyuncunun tek hamle kontrolden kaçmak için hareket etmesi veya bir çıkmazın geçerken yakalama olması durumunda bir oyuncuyu hareket etmeye zorlamamız gerekir mi (çizim veya kaybetmenin aksine) ? İstenilen vezir olmayan terfi anında bir kontrole veya şah matına yol açmazsa, piyonun terfi edebileceği taşların seçimini sınırlayabilir miyiz?

Ayrıca, her bir bilgisayarın geç oyun durumlarının büyük bir veritabanına karma tabanlı erişime izin vermenin ve bunların olası sonuçlarının (mevcut donanımda ve mevcut oyunsonu veritabanlarında nispeten uygulanabilir olabilen) aramanın daha erken budanmasına yardımcı olabileceği konusunda da emin değilim. Açıkçası, O (n) depolama olmadan tüm işlevi ezberleyemezsiniz, ancak büyük bir tamsayı seçebilir ve her olası son durumdan geriye doğru numaralandıran birçok oyunsonunu hatırlayabilirsiniz (ya da kolayca kanıtlanabilir şekilde imkansız değildir, sanırım).


1
Sizin m = 5898. FIDE satranç kuralları, en az 50 hamlede bir (50 hamle kuralı olarak adlandırılır) bir piyonu hareket ettirmeniz veya bir taş almanız gerektiğini (oyunu geri döndürülemez şekilde değiştiren bir şey) veya oyunculardan birinin beraberlik talep edebileceğini tanımlar. Her iki oyuncu da işbirliği yapar ve mümkün olan en kısa sürede beraberlik talep ederse, mümkün olan en uzun oyunun 5898 hamle uzunluğunda olduğu hesaplanmıştır. Her iki oyuncu da beraberlik talep edebiliyorsa, oynamaya devam etmenin bir anlamı yoktur. Bir oyuncu kaybettiğini fark ederse, aynı sonucu vererek beraberliği talep edebilir. Bakınız: chess.com/blog/kurtgodden/the-longest-possible-chess-game
SDwarfs

1
Not: m = 5898 "hareket" sayısıdır. Maksimum yarım hareket sayısı (118-3) * 100 + 3 * 99 = 11797'dir. Kanıtı burada bulabilirsiniz (almanca!): De.wikipedia.org/wiki/50-Z%C3%BCge-Regel# Schachmathematik
SDwarfs

1

Biliyorum, bu biraz engelli ama buraya 5 sentimi koymam gerekiyor. Bir bilgisayarın ya da bir kişinin katıldığı her satranç oyununu bir galibiyet ya da çıkmazda bitirmesi mümkündür.

Bununla birlikte, bunu başarmak için, olası her bir oyun sonucuna kadar mümkün olan her hareketi ve reaksiyonu vb. Kesin olarak bilmeniz ve bunu görselleştirmek veya bu bilgiyi analiz etmenin kolay bir yolunu yapmak için düşünün. sürekli dallanan bir zihin haritası olarak.

Merkez düğüm oyunun başlangıcı olacaktır. Her düğümden çıkan her dal, her biri kendi temel hareketlerinden farklı olan bir hareketi sembolize eder. Bu malikanede sunmak çok kaynak gerektirir, özellikle de bunu kağıt üzerinde yapıyorsanız. Dalları geri getirmediğiniz sürece, bir bilgisayarda bu, muhtemelen yüzlerce Terrabyte veri gerektirecektir.

Bununla birlikte, bu tür verileri ezberlemek, imkansız değilse, mantıksız olacaktır. Bir bilgisayarın (en fazla) anında olası 8 hamleyi çıkaracak en uygun hareketi tanımasını sağlamak mümkün olabilir, ancak makul değildir ... çünkü bu bilgisayarın hareket eden tüm dalları işleyebilmesi gerekeceğinden, bir sonuca varana kadar, bir galibiyet veya çıkmazla sonuçlanan tüm sonuçları sayın, ardından sonuçları kaybetmeye karşı bu sayıda kazanan sonuca göre hareket edin ve bu, Terrabyte'larda veri işleyebilen RAM veya daha fazlasını gerektirir! Ve günümüz teknolojisiyle, bunun gibi bir bilgisayar, dünyadaki en zengin 5 erkek ve / veya kadının banka bakiyesinden daha fazlasını gerektirecekti!

Yani bunca düşünmeden sonra yapılabilir, ancak kimse yapamaz. Böyle bir görev, yalnızca satrançta değil, bilim ve bilgisayar teknolojisinde de bugün yaşayan en parlak beyinlerin 30'unu gerektirecektir ve böyle bir görev ancak (tamamen temel bir perspektife koyalım) ... son derece hiper en az bir yüzyıldır var olamayacak olan süper bilgisayar. Tamamlanacak! Sadece bu yaşamda değil.


1

Düşünce deneyinizde iki hata var:

  1. Turing makineniz "sınırlı" değilse (bellekte, hızda, ...) sezgisel yöntem kullanmanıza gerek yoktur, ancak son durumları (kazanma, kaybetme, beraberlik) hesaplayabilirsiniz. Mükemmel oyunu bulmak için, her oyuncu için en uygun hareketleri hesaplamak için Minimax algoritmasını (bkz. Http://en.wikipedia.org/wiki/Minimax ) kullanmanız gerekir , bu da bir veya daha fazla optimal oyuna yol açar.

  2. Ayrıca kullanılan buluşsal yöntemin karmaşıklığı konusunda da bir sınır yoktur. Mükemmel bir oyunu hesaplayabilirseniz, ondan mükemmel bir buluşsal hesaplamanın da bir yolu vardır. Gerekirse, satranç pozisyonlarını "Bu durumdaysam S en iyi hamlem M" şeklinde haritalayan bir işlevdir.

Diğerlerinin daha önce de belirttiği gibi, bu 3 olası sonuçla sonuçlanacaktır: beyaz bir galibiyeti zorlayabilir, siyah bir galibiyeti zorlayabilir ve bunlardan biri beraberliği zorlayabilir.

Mükemmel dama oyunlarının sonucu zaten "hesaplanmıştır". İnsanlık daha önce kendini yok etmeyecekse, bilgisayarların yeterli hafıza ve hıza sahip olacak kadar geliştiği bir gün satranç için de bir hesaplama yapılacaktır. Ya da bazı kuantum bilgisayarlarımız var ... Ya da birisi (araştırmacı, satranç uzmanları, dahi) oyunun karmaşıklığını önemli ölçüde azaltan bazı algoritmalar bulana kadar. Bir örnek vermek gerekirse: 1 ile 1000 arasındaki tüm sayıların toplamı nedir? Ya 1 + 2 + 3 + 4 + 5 ... + 999 + 1000 hesaplayabilir ya da basitçe hesaplayabilirsiniz: N * (N + 1) / 2, N = 1000; sonuç = 500500. Şimdi bu formülü bilmediğinizi hayal edin, Matematiksel tümevarımı bilmiyorsunuz, sayıları nasıl çarpacağınızı veya toplayacağınızı bile bilmiyorsunuz ... Yani, Bu oyunun karmaşıklığını nihayetinde azaltan şu anda bilinmeyen bir algoritma olması mümkün olabilir ve mevcut bir bilgisayarda en iyi hamleyi hesaplamak sadece 5 dakika sürecektir. Belki biraz daha zaman verilirse kalem kağıtla, hatta zihninizde bir insan olarak tahmin etmek bile mümkün olabilir.

Öyleyse, hızlı cevap şu: Eğer insanlık yeterince uzun süre hayatta kalırsa, bu sadece bir zaman meselesi!


0

Çözülebilir olabilir, ama beni rahatsız eden bir şey var: Ağacın tamamı aşılsa bile, rakibin bir sonraki hamlesini tahmin etmenin hala bir yolu yok. Bir sonraki hamlemizi daima rakibin durumuna dayandırmalı ve "en iyi" hamleyi mümkün kılmalıyız. Sonra, bir sonraki duruma göre tekrar yapıyoruz. Bu nedenle, rakip belirli bir şekilde hareket ederse, optimal hareketimiz optimal olabilir. Rakibin bazı hareketleri için son hareketimiz yetersiz olabilirdi.

Her adımda nasıl "mükemmel" bir hareket olabileceğini göremiyorum.

Bunun olması için, [mevcut oyunda] her durumda, rakibin bir sonraki hamlesine bakılmaksızın (tic-tac-toe'da olduğu gibi), ağaçta zafere götüren bir yol olmalıdır ve benim zor bunu anlamak için zaman.


5
Mükemmel hamleye 'minmax' stratejisi karar verir: Olası minimum puanınızı en üst düzeye çıkaran harekettir (rakibin yapabileceği tüm olası hareketler göz önüne alındığında). Ya da başka bir deyişle, rakibin de mükemmel oynadığını varsayar.
Nick Johnson

Yine de bu ilginç bir nokta. Rakibiniz mümkün olan en iyi hamleyi yapmazsa, mümkün olan en iyi hamleye yanıt vermenin sizi dezavantajlı duruma düşüreceği bir durum ortaya çıkabilir mi? Bunun ne gibi etkileri var?
Nona Urbiz

Ben matematikçi değilim ve çok iyi bir satranç oyuncusu değilim; Ayrıca teoride (tüm oyun ağacının bilinmesi durumunda) buna cevabın 'evet' olduğunu varsaydım. Ancak, şimdi bu sorundan [diğer oyuncunun seçimi] söz ettiğinize göre, bu, sistemin potansiyel olarak tahmin edilemez olduğu anlamına mı geliyor? Oyunda diğer oyuncunun bir dezavantaja zorlayabileceği orta nokta var mı? Bu biraz, Perceptron'un (Sinir Ağı) 'VEYA' ve 'VE'yi öğrenebildiği, ancak' XOR'u asla kavrayamayacağı gerçeğine benziyor mu? Satranç 'Kaotik' sistemin bir örneği mi? FWIW, IMHO Cevabın bu noktada 'bilmediğini' düşünüyorum.
monojohnny

@Nona Tanım olarak, bu hareket en iyi hareket olacaktır. Herhangi bir varsayım yok.
piccolbo

@piccolbo: En iyi hamlelerden biri. Satrançta birden fazla hamlenin aynı sonuca yol açtığı pozisyonlar vardır (aynı sayıda hamlede galibiyet, beraberlik veya mağlubiyet).
SDwarfs

0

Matematiksel olarak satranç, 1920'lere kadar uzanan (Borel veya von Neumann tarafından bulunan) Minimax algoritmasıyla çözüldü . Böylece, bir turing makinesi gerçekten de mükemmel satranç oynayabilir.

Bununla birlikte, satrancın hesaplama karmaşıklığı onu pratik olarak olanaksız kılar. Mevcut motorlar çeşitli iyileştirmeler ve buluşsal yöntemler kullanır. Günümüzün en iyi motorları, oyun gücü açısından en iyi insanları geride bıraktı, ancak kullandıkları buluşsal yöntemler nedeniyle, sonsuz zaman verildiğinde mükemmel çalışmayabilirler (örneğin, hash çarpışmaları yanlış sonuçlara yol açabilir).

Şu anda mükemmel oyun açısından sahip olduğumuz en yakın oyunsonu masa tabanları . Bunları üretmenin tipik tekniğine retrograd analiz denir . Şu anda, altı parçaya kadar olan tüm pozisyonlar çözüldü.


-1

Evet , matematikte satranç belirli bir oyun olarak sınıflandırılır, bu da her ilk oyuncu için mükemmel bir algoritmaya sahip olduğu anlamına gelir, bunun sonsuz satranç tahtası için bile doğru olduğu kanıtlanmıştır, bu nedenle bir gün muhtemelen bir quantom AI mükemmel stratejiyi bulacaktır. ve oyun gitti

Bu videoda daha fazla bilgi: https://www.youtube.com/watch?v=PN-I6u-AxMg

Ayrıca, oyun http://store.steampowered.com/app/453870/Quantum_Chess/ olarak belirlendiğine dair hiçbir matematik kanıtı bulunmayan quantom satranç da vardır.

ve orada dörtlü satranç hakkında ayrıntılı video var https://chess24.com/en/read/news/quantum-chess


-2

Tabii ki, tahtadaki elli olası parça kombinasyonunun gücünde sadece 10 tane var. Bunu aklımızda tutarak, her compibation için oynamak için, elli hamlenin gücüne 10'un altında (bu sayıyı 3 ile çarpan tekrarlar dahil) yapmanız gerekir. Yani, satrançta yüz hamlenin gücünün ondan azı var. Sadece şah mat olmaya götürenleri seçin ve gitmeniz iyi olur


-3

64bit matematik (= satranç tahtası) ve bitsel operatörler (= sonraki olası hamleler) ihtiyacınız olan tek şey. Çok basit. Brute Force genellikle en iyi yolu bulacaktır. Tabii ki, tüm pozisyonlar için evrensel bir algoritma yoktur. Gerçek hayatta hesaplama da zamanla sınırlıdır, zaman aşımı onu durduracaktır. İyi bir satranç programı, ağır kod anlamına gelir (geçti, ikiye katlanmış piyonlar vb.). Küçük kod çok güçlü olamaz. Veritabanlarını açmak ve oyunsonu veritabanlarını sadece işlem süresinden, bir tür önceden işlenmiş veriden kurtarır. Cihaz, yani işletim sistemi, iş parçacığı olanakları, ortam, donanım gereksinimleri tanımlar. Programlama dili önemlidir. Her neyse, geliştirme süreci ilginç.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.