Satrançtaki her olası hareketin veritabanı


14

Mümkün olan her hareket ve pozisyon için bir satranç veritabanı olduğunu düşünün. Bu veritabanı açılıştan bitişe kadar tüm olası hareketleri içerir.

Bir satranç motoruna karşı sezgilerimi kullanarak oynasaydım, hangi hareketin beni kaybedip kazanacağımı tahmin edebilir.

Yani bu, "satranç motoruna" gerek olmadığı anlamına gelir, çünkü olası tüm hamleler zaten kaydedilmiştir.

Böyle bir veritabanı mevcutsa, aşağıdaki avantajlara sahip olacaktır:

  • Hızlı yıldırım oyunlarında, satranç motoru kesinlikle satranç olasılık hareket veritabanına karşı kaybedecektir.
  • Hangi açılışın diğerlerine karşı kazanmak için daha fazla fırsata sahip olacağını tam olarak bilebiliriz.

Ya da böyle bir veritabanı zaten mevcut değilse, açılıştan bitiş oyununa kadar tüm olası hareketlerin matematiksel bir hesaplamasını yapabilirdik.

Böyle bir veritabanının olması mümkün müdür?


5
Hayır, hayal edilebilir herhangi bir teknoloji ile mümkün değildir.
Tony Ennis

Bir süre dolaşıyorum .. Ve hala yaratmadı. Haklısın. Ahaha.
Ahmad Azwar Anas

3
Evrendeki atomlardan daha fazla bayt ile bir veritabanı oluşturmakta bol şans
David

Hey, bu toplulukta yeniyim ve MathStack'tanım. Evrende, bir satranç maçında mümkün olan Satranç Oyunları sayısından daha az atom olduğunu paylaşmak için. Shannon Numarasını deneyin ( youtube.com/watch?v=Km024eldY1A ).
Sujit Bhattacharyya

Yanıtlar:


32

Sorunuzun aslında satrancı tamamen "çözmenin" mümkün olup olmadığı konusuna bağlı olduğuna inanıyorum. Wikipedia size konuyla ilgili iyi bir genel bakış sunacak mükemmel bir makaleye sahiptir .

Özetlemek gerekirse, satrançtaki olası oyun varyasyonlarının sayısının 10 ^ 120 olduğu tahmin edilmektedir. Bu şaşırtıcı derecede büyük bir sayıdır, karşılaştırma için, gözlemlenebilir evrendeki atom sayısının 10 ^ 80 civarında olduğu tahmin edilmektedir . Başka bir deyişle, tüm gözlemlenebilir evreni sabit diskiniz olarak kullanıyorsanız, her şeyi basitçe saklamak için her bir atomda 10 ^ 40 satranç oyunu kombinasyonu depolamanız gerekir. Söylemeye gerek yok, bu mevcut ve öngörülebilir teknolojilerimizin çok ötesinde, çoğu insanın tamamen imkansız olduğunu düşünüyor.

Satranç oyunsonları oldukça az karmaşıktır ve beş parçalı ve altı parçalı oyun için olası tüm kombinasyonları hesaplamanın mümkün olduğu bir noktaya geldik . Bunlar genellikle süper bilgisayarlara erişimi olan araştırmacılar tarafından yapılan büyük taahhütlerdir ve sonuçta ortaya çıkan oyunsonu veritabanları çok büyüktür (yüzlerce terabayt civarında). Yeni bir parça eklendiğinde, hesaplamaların boyutu ve karmaşıklığı katlanarak artar, bu da öngörülebilir gelecekte bu sonuçların sadece birkaç parça genişlemesini bekleyebiliriz.


Şimdi Oyun Sonu Tablosunu temsil eden algoritma olduğunu hayal ediyorum .. ^^
Ahmad Azwar Anas

3
@AhmadAzwarAnas Bence basit olanlar satranç motorlarında zaten kullanılıyor ve daha eksiksiz olanlar teknoloji izin verdiği sürece eklenecek. Bir algoritma açısından, bir oyun tablosunu kalıplar için analiz ederek ve bunları net bir şekilde sonuca götüren bir dizi kural halinde genelleştirerek "sıkıştırabilirsiniz" sanırım. Bununla birlikte, tüm olasılıklarda, bu kurallar dizisi kesinlikle büyük olacaktır, çünkü küçük varyasyonlar (muhalefet olsun veya olmasın) oyunun sonucunu değiştirebilir.
Daniel B

@AhmadAzwarAnas aslında, neden sadece satranç için bir algoritma değil? her kayıp oyunda yanlış olan bir hamle olmalı, değil mi? yani daha önceki hamle, rakiplerin hamlesinden bağımsız olarak kaybetmemek için bir yol vardı, ancak bundan sonra artık doğru değil. algoritmanın yapması gereken "tümü" bu hareketleri tanımlamaktır.
Michael

1
@Michael bundan daha zor - rakibin ne hareket ettiğinden bağımsız olarak kazanmak için bir yol olduğunu nasıl bilebilirsiniz? en iyisi, zamanın sadece% 50'si olurdu, çünkü bir kişi kazanırsa, diğeri kaybetmek zorunda kalır. Aslında başlangıç ​​pozisyonlarına geri dönelim - oyunda daha ileri bir yol olması için, o noktada bir "mutlak kazanma yolu" bulunmalıdır - eğer bunu anladıysak, neden kimse artık kaybetme rengini oynayacaktı? , ne hareket ettiklerine bakılmaksızın kaybedeceklerini bilerek? bunu yapabilseydik neden kimse artık satranç oynasın ki?
user2813274

2
+1 ancak analiziniz yanlış. Bir masa tabanını saklamak için, olası her oyunu değil, sadece her pozisyonu saklamanız gerekir. Shannon , yeryüzünde yaklaşık 10 ^ 50 atomla karşılaştırılan yaklaşık 10 ^ 43 pozisyon olduğunu tahmin eder . Böylece satrancı tüm dünyayı bir bilgisayara dönüştürerek çözebilirsiniz .
David Richerby

8

Hayır, böyle bir veritabanının olması mümkün olmazdı. Hesaplamak son derece büyük bir bilgisayar gerektirir ve hesaplama o kadar uzun sürer ki, bilgisayarınız görevi tamamlayacak kadar uzun süre var olmaz.

Claude Shannon , satrançta yaklaşık 10 43 olası pozisyon bulunduğunu ve veritabanınızın tüm bunların sonuçlarını saklaması gerektiğini tahmin etti (bu aslında 32 kişilik bir masa tabanı olacaktır ). Bununla birlikte, Dünya'nın sadece yaklaşık 10 50 atom içerdiği tahmin edilmektedir, bu nedenle, sadece 10.000.000 atomdan bir bellek hücresi inşa etseniz bile, tüm konumları saklamak için Dünya'nın büyüklüğünde bir bilgisayara ihtiyacınız olacaktır.

Ama böylesine büyük bir bilgisayar büyük sorunlar getiriyor. Dünyanın çapı yaklaşık 12.800 kilometredir ve ışığın bu mesafeyi geçmesi yaklaşık 43ms sürer. Bu, bir saat döngüsü 43ms'den daha uzun sürerse, sadece korkunç saat eğimine sahip olmakla kalmaz, aynı zamanda bilgisayarınızın farklı bölümleri de aynı saat döngüsünde değildir. Bundan kaçınmak saat hızınızı yaklaşık 23.5Hz ile sınırlar (GHz veya MHz değil; sadece Hz). Tek bir saat döngüsünde bir konumu tamamen değerlendirebilseniz bile, bilgisayarınızın görevini tamamlaması yaklaşık 4.3x10 41 saniye sürer. Bu yaklaşık 1.4x10 34 yıl. Bu 14 milyon milyar milyar milyar yıl.

Astrofizikçiler, evrenin 1.4x10 34 yıl içinde şimdi olduğundan çok farklı görüneceğine inanıyorlar . O zamana kadar, yıldızlar uzun zaman önce ortadan kalkmış olacak ve anlamlı bir şekilde radyoaktif olmayan elementler bile büyük miktarlarda radyoaktif bozunmaya maruz kalacaklardı. Atom çekirdeği oluşturan protonlar bile önemli radyoaktif bozunma geçirmiş olacak. Yani dünyadaki bilgisayarınız artık var olmayacak.


2
Yani bir şans var mı?
bpromas

6

Daniel'in cevabı mükemmel (+1) ama yine de birkaç düşünce eklemek istiyorum.

32 parçalı bir masa tabanı gerçekten satranç motorlarının yerini alacak mı? Cevap kesinlikle hayır!

İyi satranç oynamak için bir hamlenin kazanması, çizilmesi veya kaybedilmesinden daha fazla bilgiye ihtiyaç vardır. Tabii ki böyle bir veritabanı rakipsiz olurdu, ama hiç kimseyi yenemezdi.

Güçlü bir şekilde satranç oynamak için her turda kaybetmeyen bir hamle seçmek yeterli değildir. Her pozisyondaki birçok çizim hareketinden, rakibe gerçek baskı yapan sadece birkaç hareket var.

Mevcut satranç motorları masa tabanlarına erişerek önemli ölçüde daha güçlü hale getirildi. Ancak veritabanları büyüdükçe, erişim süresi evrendeki her atomu bellek için kullanmadan çok önce yasaklayıcı bir faktör olur ;-).

Sonuç olarak yanlış olduğunu düşünüyorum: Böyle bir veritabanı asla kaybetmez ve neredeyse hiç kazanmaz. Neredeyse hepsinin berabere kalması dışında bize açıklıklar hakkında hiçbir şey söylemezdi. Muhtemelen bu veritabanını benimsemek ve her türlü pozisyon hakkında ilginç sonuçlar çıkarmak için yeni algoritmalar tasarlayabiliriz, ancak bunun satranç dünyasını önemli bir şekilde değiştirmeyeceğini düşünüyorum.


Veritabanının ne içereceğini yanlış anladınız. Olası her hamle ya "Bunu oynarsam rakibim ne yaparsam yapayım kazanabilir", "Bunu oynarsam rakibimin bir sonraki adımda ne yaparsa kazansın" ya da "berabere" getirebilirdi. Yani "her turda kaybetmeyen hamle" oynamazsınız: böyle bir hamle olduğu sürece her turda zorla kazanırsınız.
David Richerby

1
Aslında, veritabanının tam olarak ne içereceğini anladım… Yapmaya çalıştığım nokta, yüksek seviyeli satranç oyunlarında "Zorunlu Galibiyet Yok!" pozisyonların% 90'ından fazlasında. Ve aslında iyi bir oyuncuya karşı kazanan bir pozisyon elde etmek için "bu hamle berabere ve bu hamle kaybeder" den daha fazla bilgiye ihtiyacınız var.
BlindKungFuMaster

2
Bir örnek vermek gerekirse: Başlangıç ​​pozisyonunda, her durumda, veritabanındaki tek bilgi "Tüm hamleler çizilir" olacaktır. Yani tamamen kendi başınıza olacaksınız. Tamamen kendi başınıza iseniz, güçlü bir oyuncuya karşı nasıl kazanma pozisyonu alırsınız? Cevap: Yapmazsınız. Bir ve tek çizim çizgisini takip ettiğinizde pozisyonunuz daha da kötüleşecek.
BlindKungFuMaster

Hayır, bu doğru değil. Kazanan hamlenizi almak önemsizdir. Geçerli konumdan tüm olası hareketleri hesaplayın, DB'de ortaya çıkan konumları kontrol edin ve kazanan veya çizen birini seçin. Tanım olarak, mevcut konumunuz "kazanırsanız", sonraki konumlarda "kazanırsınız" en az bir tane olacaktır; ve şu anki pozisyonunuz "berabere" ise, bir sonraki pozisyonlardan en az biri "berabere" olacaktır (ve rakibiniz mükemmel bir şekilde oynamazsa muhtemelen bazı "kazanırsınız").
Ignacio Calvo

1
Mesele şu ki, mevcut pozisyon genellikle "kazanırsınız". Örneğin, başlangıç ​​pozisyonunda zorla kazanma olasılığı yoktur.
BlindKungFuMaster

3

Sanırım bir gün satranç çözülecek. Neden? Çünkü, uzun zaman önce, bir bilgisayara karşı satranç oynamak garip ve düşünülemezdi! Satranç oynamak için bir bilgisayarı nasıl eğitebilirsiniz? Peki, yaptılar! (Buna ek olarak, bir bilgisayar fikri garipti ...) Demek istediğim, garip görünebilir çünkü onu hiç görmedik ya da duymadık. Kolayca hayal edebileceğimiz bir şey değil. Ancak teknoloji katlanarak artıyor. Yakın gelecekte (10+ yıl) bir şekilde veya başka bir şekilde çözülürse şaşırmam.


1
Satranç çözümünün önündeki engel, sıralamanız gereken tam anlamıyla astronomik veri miktarıdır. Shannon , satrançta yaklaşık 10 ^ 43 pozisyon olduğunu ve bunların her biri için sonucu saklamanız gerektiğini tahmin etti . Bunu perspektife sokmak için, dünya yaklaşık 10 ^ 50 atom içerir, bu yüzden 10.000.000 atomdan bir bellek hücresi inşa edebilseniz bile, sadece sonucu depolamak için tüm dünyayı bir bellek bankasına dönüştürmeniz gerekir!
David Richerby

1
@DavidRicherby Diyelim ki satranç en iyi oyun ile beraberliktir. Sonra her beyaz hareket için siyah için yeterli bir tepki var. Bir sonraki beyaz hamleye, siyahın da yeterli bir yanıtı vardır. Böyle bir "çizim ağacı" inşa etmenin 10 ^ 43 pozisyondan çok daha azını gerektirdiği düşünülebilir.
Dag Oskar Madsen

4
@DagOskarMadsen Evet, aslında ağacı saklamak çok daha az bellek gerektirebilir (yine de astronomik bir miktar). Bununla birlikte, bu tür ağaçları inşa etmek için mevcut teknik , en azından bir ara aşama olarak, her pozisyonda ne yapılacağına dair tam veri tabanının oluşturulmasını gerektiren tüm son konumlardan geriye doğru analiz yapmaktır.
David Richerby

1
Yanıldığını sana bildirdiğim için üzgünüm! @DagOskarMadsen Ama "yetersiz" yanıtları nasıl çürüteceğinizi bilmiyorsanız, oyunu çözdüğünüzü gerçekten iddia edebilir misiniz?
David

2

1980'lerin başında koleje döndüğümde, bir bilgisayar oyunun başlangıcından nanosaniyenin her 1 / 3'ünde olası tüm sonuçlara kadar bir hamle, herhangi bir hamle planlayabilir, değerlendirebilir ve gerçekleştirebilirse, saniyede yaklaşık 3 milyar hamle, akla gelebilecek her sonuç için bunu yapmak 10 ila 120. yüzyılları tamamlayacaktır. Ve kimin bu kadar beklemesi gerekiyor?

Başka bir şaşırtıcı istatistik? Bir googol duydunuz mu? Google değil numara mı? 10'dan 100. güce kadar. A 10 ve ardından 100 sıfır. Şimdi googolplex'i hayal edin. Bu googolün gücünün 10'u.

Bilinen evrende atomların değil, googleplex'in kullanılmasını gerektiren hiçbir şey olmadığını okudum . Aslında, googol bile bir şeyi tanımlamak için çok büyük. Bu sayılarla ilgili şaşırtıcı bazı bilgileri kontrol etmelisiniz.


1

"Budama" kullanıyorsanız, kötü seçenekleri (sizi kesinlikle bir zarara götürecek olanları) silebilir ve budama sırasında döngüye devam edebilirsiniz. Bu şekilde "iyi" seçenekleri depolamak için yeterli belleğe sahip olabilirsiniz.


0

Bu evrende satrancı bir veritabanında gerçekleştirmek mümkün olmasa da, oyunun soyut yapısının sınırlı bir matematiksel nesne olarak var olduğu söylenebilir. Bunun ne olduğunu bilmesek de, bunun hakkında bir neden ortaya çıkabilir ve kesin bir sonucu olduğu sonucuna varılabilir. Ve sonra bir matris olarak görürseniz, satrancın maksimum özdeğerinin ne olduğu gibi sorular sorabilirsiniz. Gerçekten de Plato sayıların gerçek varolduğunu düşündü, bu yüzden sanırım satranç oyununun aynı yüce ve yararsız bir şekilde var olduğunu söylerdi.

Ama daha pratik olarak, gelişmiş bir kuantum bilgisayarının bunu gerçekten temsil edebileceğini ve gerçekten satrancı çözebileceğini hayal edebilirim. Jüri hala bu teknolojinin yetenekleri hakkında, ama prensip olarak bunun imkansız olduğunu göremiyorum


-1

Evet, bunun mümkün olacağını düşünüyorum. Ancak, veritabanı daha çok bir sinir ağı gibiyse, kaybına neden olan hamleleri alıp siler. Bu hesaplama, bir satranç oyunundaki tüm olası eylemleri bir hamle, 100 veya daha fazla hareket ettirmek için üstlenmeye (benimle birlikte) dayanır. Bu arada tekrarlardan kurtulursak, ((Ke3 Ke4 Ke3 Ke4) döngü) 10 ^ 120 muhtemelen 10 ^ 70 gibi bir şey olabilir. Bu hala gülünç derecede büyük ama bir şekilde bir 4D düzlemine (eğer mümkün olduğuna inanıyorum) kodlayabilseydik, çocuk oyuncağı olurdu.


2
Satranç'a hoş geldiniz ! Lütfen tura çıkarken katılın. Gönderiniz aşağıya çevrilmiş olabilir, çünkü burada beklediğimizden daha fazla fikir ve cevap daha az; Nasıl Yanıtlanır başlıklı Yardım Merkezi makalesine bakın .
Glorfindel

2
Ben satranç adam değilim ve kayıt için, ben de aşağı oy veren insanlardan biri değilim, ama 10 ^ 43 farklı pozisyon olduğunu okudum. Bazı verilerin filtrelenmesine izin veren bir yönteminiz olduğu için, bunun neden bunu mümkün kıldığını otomatik olarak kabul ediyorsunuz? Bence bu veritabanının ne kadar büyük olması gerektiğini tam olarak küçümsüyorsunuz. Bu, günümüz bilgi işlem teknolojisinin kapsamının çok ötesinde, bundan bir asır sonra bile bunun için bir yörüngede olduğumuzu hayal edemiyorum. Ama SE Satranç'a hoş geldiniz. (Ve ben de hoş geldiniz, sanırım: P)
Joe Majewski
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.