Symmetrireducering av slutspelsdatabas i Schack



Relevanta dokument
Schackledarens blad Lektion 1

Handbok Knights. Översättare: Stefan Asserhäll

Sagaforms spelregler SCHACK, FIA MED KNUFF, BACKGAMMON, DOMINO

Steg 2 plus. 3 Matt i ett / Dubbelschack: A. 4 Matt i ett / Dubbelschack: B. 1) 1. Te8# 2) 1... Tb1# 3) 1... Sg3# 4) 1... Lxc3# 5) 1. Lxd5# 6) 1.

2MA105 Algebraiska strukturer I. Per-Anders Svensson

Lösningsförslag till Tentamen i 5B1118 Diskret matematik 5p 11 april, 2002

Fem schackmattelektioner för årskurserna F-3 av Fredric Hillertz och Jesper Hall

Övningshäfte 2: Induktion och rekursion

Helgrapport från Örebro-SM

Två stormästarremier från Lag-EM för seniorer i Wien

XABCDEFGHY. xabcdefghy Vit tänker nu spela Td1-d5. Med kort notation skulle det bli T1d5.

Att utveckla den sociala samvaron genom schack Författare: Jonas Nilsson

Infobrev (174) till Täby SK:s medlemmar

Lutande torn och kluriga konster!

Funktioner och kombinatoriska tillämpningar. Mars

Lösningsförslag till Tentamen i 5B1118 Diskret matematik 5p 14 augusti, 2002

SF2715 Tillämpad kombinatorik Kompletterande material och övningsuppgifter Del IV

Beska piller i Reykjavik

Matematiska Institutionen KTH. Lösningar till några övningar inför lappskrivning nummer 7, Diskret matematik för D2 och F, vt08.

Tentamen TMV210 Inledande Diskret Matematik, D1/DI2

Från Hasselbacken Chess Open.

Kort Sammanfattning av Schack MAS

NÄMNARENs. problemavdelning

Dam-NM Partibulletin. Rond 3. Ställning efter rond 3

AGA-regler. goforbundet.se/ Referens: AGA 1991

Lässtrategier för att förstå och tolka texter samt för att anpassa läsningen efter textens form och innehåll. (SV åk 1 3)

[][] Arrayer med två index

Nätverksprogrammering, EDA095

Resurscentrums matematikleksaker

MinMax Algoritmen Implementation och optimering. Joakim Östlund 15 juni 2004

Handbok Othello. Clay Pradarits Utvecklare: Mario Weilguni Granskare: Lauri Watts Översättare: Stefan Asserhäll

Komposanter, koordinater och vektorlängd Ja, den här teorin gick vi igenom igår. Istället koncentrerar vi oss på träning inför KS3 och tentamen.

CHESS & GAMES INSTRUKTIONSMANUAL

Modelltentamen. Ditt svar ska vara ett ändligt uttryck utan summationstecken.

Rektangelpussel 1. Använd tre bitar vilka som helst och gör en 3 5-rektangel.

UPPGIFT 1 V75 FIGUR 1.

Känguru 2013 Cadet (åk 8 och 9) i samarbete med Jan-Anders Salenius vid Brändö gymnasium

UPPGIFT 1 TVÅPOTENSER. UPPGIFT 2 HISSEN I LUSTIGA HUSET.

Institutionen för matematik, KTH Mats Boij. Lösningsförslag till Tentamen i 5B1118 Diskret matematik 5p 20 december, 2000

Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret Lektion 4

Lösning till fråga 5 kappa-06

Lösning till tentamensskrivning i Diskret Matematik för CINTE, CL2 och Media 1, SF1610 och 5B1118, onsdagen den 17 augusti 2011, kl

Handbok Othello. Clay Pradarits Utvecklare: Mario Weilguni Granskare: Lauri Watts Översättare: Stefan Asserhäll

BLASKAN # 3. VECKA Den 30 oktober fyller LASK år. Tävling för schackskoledeltagare.

Välkommen till Kängurutävlingen Matematikens hopp 17 mars Student för elever på kurs Ma 4 och Ma 5

Övningshäfte 1: Induktion, rekursion och summor

, S(6, 2). = = = =

Explorativ övning euklidisk geometri

Problemreduktion. Vad utmärker en matematiker? Valentina Chapovalova. 22 januari HMT-finalen

Diskret matematik: Övningstentamen 4

Om Schackma Gandhis djurdiplom

1 Positivt definita och positivt semidefinita matriser

Detta är en lektion utvecklad under Kleindagarna 2011, vidareutvecklad och testad i klassrum av

Matte att räkna med. Utdrag ur Lgr11 angående ämnet matematik

Explorativ övning euklidisk geometri

Läsanvisning till Discrete matematics av Norman Biggs - 5B1118 Diskret matematik

Tynker gratisapp på AppStore

Schackborgarmärket. Lär dig hur pjäserna går! Namn:

Känguru 2014 Student sida 1 / 8 (gymnasiet åk 2 och 3)

Resurscentrums matematikleksaker

TANA17 Matematiska beräkningar med Matlab

Student för elever på kurs Ma 4 och Ma 5

Mer om analytisk geometri

Begreppen "mängd" och "element" är grundläggande begrepp i matematiken.

Schackborgarmärket. Lär dig hur pjäserna går! Namn:

Begreppen "mängd" och "element" är grundläggande begrepp i matematiken.

Schacknotation i punktskrift

Lösningar för tenta i TMV200 Diskret matematik kl. 14:00 18: Svar: Ja, det gäller, vilket kan visas på flera sätt (se nedan).

Anteckningar propp SMT2

MS-A0409 Grundkurs i diskret matematik Appendix, del II

Bildkälla: Pixabay. 1) Timer: konstruktion av en maskin som skall välta en aluminiumburk vid en given tidpunkt.

Graärgning och kromatiska formler

Explorativ övning 9 RELATIONER OCH FUNKTIONER

f(x) = x 1 g(x) = x 2 2x + 3.

Lösningar och lösningsskisser

Grundläggande 1 övningar i kombinatorik

UPPGIFT 1 KANINER. Håkan Strömberg 1 Pär Söderhjelm

Sannolikhetsbegreppet

Finaltävling i Lund den 19 november 2016

Undersökande arbetssätt i matematik 1 och 2

Exempel :: Spegling i godtycklig linje.

Hästhopp. Detta är en övning som tränar olika problemlösningsstrategier och statistik. Den lämpar sig för år 4 och uppåt

ax + y + 4z = a x + y + (a 1)z = 1. 2x + 2y + az = 2 Ange dessutom samtliga lösningar då det finns oändligt många.

Tentamensskrivning i Diskret Matematik för CINTE och CMETE, SF1610, onsdagen den 20 augusti 2014, kl

Projektdokumentation för Othello

Föreläsning 9 Innehåll. Söndra och härska. Fibonaccitalen. Söndra och härska. Divide and conquer teknik för att konstruera rekursiva algoritmer.

Hemuppgift 1, SF1861 Optimeringslära, VT 2017

Om Veckans kluring serie 1

Kvalificeringstävling den 28 september 2010

MATEMATIKPROV, LÅNG LÄROKURS BESKRIVNING AV GODA SVAR

f(x) = x 1 g(x) = x 2 2x + 3.

Exempel :: Spegling i godtycklig linje.

4-8 Cirklar. Inledning

1 som går genom punkten (1, 3) och är parallell med vektorn.

Sänka schackskepp. Författare: Martin Borg. Examinatorer: Jesper Hall Lars Holmstrand Pesach Laksman. Lärande och samhälle

Schackborgarmärket. Matt med två torn! Namn:

Multiplicera 7med A λ 1 I från vänster: c 1 (Av 1 λ 1 v 1 )+c 2 (Av 2 λ 1 v 2 )+c 3 (Av 3 λ 1 v 3 ) = 0

Avdelning 1, trepoängsproblem

i=1 β i a i. (Rudolf Tabbe.) i=1 b i a i n

Algebra och kryptografi Facit till udda uppgifter

Transkript:

Kungl. Tekniska Högskolan NADA Symmetrireducering av slutspelsdatabas i Schack (Symmetrical reduced tablebases in chess) Vårterminen 2004 Författare: Jonas Forsslund E-post: jofo02@kth.se Kursledare: Dmitry Kozlov

Innehåll 1 Problemformulering 3 2 Introduktion slutspelsdatabaser 3 3 Problemanalys 3 4 Symmetrioperationer 4 5 Antalet inekvivalenta ställningar 4 5.1 Antal ställningar och inekvivalenser Kung-Kung........ 5 5.2 Antal inekvivalenser Kung-Kung med Torn.......... 6 5.3 Antal inekvivalenser Kung-Kung med två Springare (eller två Torn)............................... 6 5.4 Antal inekvivalenser Kung-Kung med Springare och Torn.. 6 5.5 Antal inekvivalenser Kung-Kung med Bonde.......... 7 6 Praktisk implementering 7 7 Slutsats 7 8 Källor 8 2

1 Problemformulering En slutspelsdatabas för schack är en mängd av samtliga ställningar som kan uppkomma med givna pjäser. Ett exempel är Kung och Torn mot Kung. En schackspelare är väl medveten om att det inte spelar någon roll vilken kant hon driver motståndarens kung mot (det är endast möjligt att sätta matt på en kant med de givna pjäserna). Det torde finnas upprepningar av, positionellt sett, samma ställning på schackbrädet. Om det stämmer skulle det möjligen kunna reducera antalet ställningar som behöver lagras i databasen. Hur ser sådana ställningar ut, hur många finns det och hur kan man utnyttja situationen praktiskt? Vi ska se att likvärdiga ställningar kan fås genom symmetriska operationer på brädet, och att antalet ställningar kan reduceras till runt 1/8 av totala antalet kombinationer. 2 Introduktion slutspelsdatabaser Slutspel kallas den fas i ett schackparti då det bara är ett fåtal pjäser kvar på brädet. Vissa ställningar är triviala för ena spelaren att vinna, exempelvis då denna har dam och kung medan motståndaren endast har en kung. Andra ställningar är välkända remier, där ingen kan vinna vid korrekt spel av båda, som dam och kung mot torn och kung. Med andra kombinationer av pjäser kan det vara av stor betydelse hur ställningen ser ut, avståndet mellan kungarna och dylikt. En ställning kan dock aldrig vara annat än vinst för svart, vinst för vit eller remi. Ett sätt att bevisa vilket som är fallet för en given ställning är med hjälp av en slutspelsdatabas. I en slutspelsdatabas lagras samtliga ställningar med de givna pjäserna, tillsammans med en indikering om antingen forcerad matt inom ett visst antal drag, eller remi. Databasen skapas med utgångspunkt i de ställningar som är schack matt och hittar därefter tidigare möjliga ställningar rekursivt tills samtliga giltiga ställningar är inlagda. I dagsläget finns kompletta databaser med upp till fem pjäser. De större tar hundratals megabyte trots hård komprimering. 3 Problemanalys Ett schackbräde består av 8 x 8 fält där vi kan ställa olika pjäser med olika egenskaper. Förutom bönderna följer ingen pjäs någon speciell riktning på brädet. Vi kommer tills vidare betrakta ställningar utan bönder. Vi kan föreställa oss två schackspelare som sitter hukade över ett slutspel. Vi går fram, ursäktar oss, och roterar hela brädet ett kvarts varv. Ingen pjäs har bytt fält så spelarna kan lugnt fortsätta partiet. Vi kan fortsätta störa spelarna så brädet blir roterat ett halvt eller tre kvarts varv. De båda spelarna kanske muttrar lite, men kan ändå fortsätta. Nästa dag ber vi våra två vänner spela på ett dubbelsidigt bräde. Under varje pjäs limmar vi en magnet och under 3

brädet placerar vi en likadan pjäs. När en pjäs flyttas kommer automatiskt samma pjäs under brädet flyttas. När de spelar som bäst går vi fram och helt sonika vänder på brädet. Liksom när vi roterade brädet har vi inte rubbat någon pjäs, så de kan fortsätta. En stund senare går vi fram och roterar det uppochnedvända brädet ett kvarts varv. Vi inser att vi även kan rotera det uppochnedvända brädet ett eller flera kvartsvarv utan att det påverkar partiet. Alla ställningar vi kan få fram genom dessa operationer, utan att rubba någon pjäs, kallar vi ekvivalenta. 4 Symmetrioperationer Vi har två funktioner σ, och τ sådana att σ roterar brädet ett kvarts varv medsols och τ vänder det i y-axeln. σ(x, y) = (7 y, x), τ(x, y) = (7 x, y). Alla möjliga ställningar kallar vi identitetsställningen. Följande åtta symmetrier kan åstadkommas genom kombinationer av de två funktionerna σ och τ: (1) Identitetsställningen 1 (x, y) = (x, y) (2) Brädet roterat 90 σ (x, y) = (7 y, x) (3) Brädet roterat 180 σ 2 (x, y) = (7 x, 7 y) (4) Brädet roterat 270 σ 3 (x, y) = (y, 7 x) (5) Brädet vänt τ (x, y) = (7 x, y) (6) Brädet vänt och roterat 90 τσ (x, y) = (y, x) (7) Brädet vänt och roterat 180 τσ 2 (x, y) = (x, 7 y) (8) Brädet vänt och roterat 270 τσ 3 (x, y) = (7 y, 7 x) En godtycklig ställning kan alltså hittas med någon av ovanstående funktioner i en reducerad databas av samtliga inekvivalenta giltiga ställningar. Det vill säga, har vi en databas med samtliga giltiga ställningar kan vi ta bort alla onödiga ställningar som ändå kan fås genom någon av ovanstående operationer. Operationerna kallar vi symmetrioperationer då de bibehåller pjäsernas symmetri. 5 Antalet inekvivalenta ställningar Vi numrerar vårt schackbrädes axlar a-h och 1-8, och kallar vit kung K, vit torn T, svart kung k och observerar följande: (1) ka1, Tb2, Kb3 (2) ka1, Tb2, Kc2 (3) ka8, Tb7, Kb6 (4) ka8, Tb7, Kc7 (5) kh8, Tg7, Kg6 (6) kh8, Tg7, Kf7 (7) kh1, Tg2, Kg3 (8) kh1, Tg2, Kf2 Är alla ekvivalenta med varandra. Står däremot pjäserna på samma diagonal har vi endast fyra olika ekvivalenta ställningar: 4

(1) ka1, Tb2, Kc3 (2) ka8, Tb7, Kc6 (3) kh8, Tg7, Kf6 (4) kh1, Tg2, Kf3 Två ställningar i samma slutspel kan med andra ord ha olika många ekvivalenser. Därmed går det inte att direkt dividera totala antalet ställningar med antalet symmetrioperationer. Vi har en mängd av alla ställningar, kallad X. En ställning i X betecknar vi x. Gruppen med de åtta symmetrioperationerna betecknar vi G. Varje symmetrioperation kan allmänt betecknas g = g(x) då de tar en ställning från X och transformerar den till en annan. För varje gig definierar vi en mängd F som innehåller alla ställningar i X sådana att g(x) ger exakt samma ställning. I diskret matematik har vi ett teorem som säger att antalet inekvivalenta ställningar i X är lika med medelstorleken av alla F. 5.1 Antal ställningar och inekvivalenser Kung-Kung På hur många giltiga sätt kan vi placera ut två kungar på ett schackbräde? Alla ställningar där kungarna inte står i direkt kontakt med varandra är giltiga. Man får nämligen inte ställa sin kung i slag, och står kungarna bredvid varandra måste någon ha utfört detta ogiltiga drag. Vi observerar att en ensam kung kan placeras antingen i ett hörn, på en kant eller ute på brädet, och täcker därmed 4, 6 respektive 9 fält. 4 Kung i hörn 60 fält för den andra kungen 240 24 Kung på kant ej i hörn 58 fält för den andra kungen 1 392 36 Kung ej på kant 55 fält för den andra kungen 1 980 64 Totalt antal kombinationer 3 612 F är alla ställningar där vi får samma ställning efter operationen som innan.storleken av F betecknas F. För identitetsfunktionen har vi alltså 3612 ställningar som uppfyller detta. Brädet roteras 90. Vi kommer aldrig att ha mer än en kung av en färg, och den kungen kan aldrig placeras så den står kvar efter rotation. F är här 0. Samma gäller rotation 180 och 270. Vänder vi brädet ser vi att inte häller här kan vi förmå kungen att stå kvar. Däremot när vi vänder och roterar brädet. Operationen kallas även diagonalreflektion från hörn a1 till a8. Här kan vi faktiskt ställa kungarna så de inte påverkas av operationen, nämligen på själva spegeln i den nämnda diagonalen. Antalet sätt att placera kungarna på här, så de ej står bredvid varandra är 6 om ena kungen står i hörnet och 5 annars, vilket ger 2 6 + 6 5 = 42. F = 42. Vänt och roterat 180 är liksom vändning i y-axeln som att vända i x- axeln. Ingen kung kan stå kvar. Den sista, vänt och roterat 270, är också diagonalreflektion men istället i diagonalen h1-a8. F = 42. 5

OPERATION g STORELEKEN AV F F (g) (1) Identitetsställningen F (1) = 3612 (2) Rotera 90 F (σ) = 0 (3) Rotera 180 F (σ 2 ) = 0 (4) Rotera 270 F (σ 3 ) = 0 (5) Vänd F (τ) = 0 (6) Vänd och rotera 90 F (τσ) = 42 (7) Vänt och rotera 180 F (τσ 2 ) = 0 (8) Vänd och rotera 270 F (τσ 3 ) = 42 Medeltalet för alla F är alltså: 1/8(3612 + 42 + 42) = 462 inekvivalenta ställningar. 5.2 Antal inekvivalenser Kung-Kung med Torn Vi undersöker vad som händer när vi tillsätter ett torn. Vi utgår från att spelaren som bara har en kung är vid draget. Detta för att undvika de ogiltiga ställningarna där kungen är hotad utan att vara vid draget. Liksom för bara två kungar är det bara vid diagonalreflektion som vi har fler än 0 ställningar som inte påverkas av symmetrioperationer. När kungarna står på diagonalen har vi 6 lediga fält för tornet. I identitetsställningen har vi 62 lediga fält. Således är antalet inekvivalenta ställningar: 1/8(3612 62 + 42 6 + 42 6) = 28056 5.3 Antal inekvivalenser Kung-Kung med två Springare (eller två Torn) Om vi utökar med två springare måste vi ta hänsyn till att dessa kan byta plats, och att vid diagonalreflektion kan de placeras utanför själva diagonalen. Identitetsställningen kan springarna placeras på (62 61)/2 per kungsställning. Vid diagonalreflektion har vi (6 5)/2 = 15 sätt att placera de båda springarna på de 6 lediga fälten på diagonalen. Men vi kan även placera en springare på vardera sida om diagonalen. För varje fält finns precis en på andra sidan som uppfyller reflektionen, och vi har 28 sådana fält. Dock, är ingen ställning där båda springarna hotar kungen giltig, och totalt finns det 112 sådana ställningar när springarna står symmetriskt på var sin sida om diagonalen. Efter avdrag av dessa har vi på diagonalen 42 15+42 28 112 = 1694 och antalet inekvivalenta ställningar: 1/8(3612 (62 61)/2 + 1694 + 1694) = 854210 5.4 Antal inekvivalenser Kung-Kung med Springare och Torn Med två olika pjäser utöver kungen kan de inte byta plats och därför kan vi som vanligt beräkna antalet inekvivalenta ställningar till: 1/8(3612 62 61 + 42 62 61 + 42 62 61) = 1747284 6

5.5 Antal inekvivalenser Kung-Kung med Bonde Hittills har vi bara tittat på ställningar utan bönder. Bonden skiljer sig från övriga pjäser då den bara går i en riktning, framåt. Roterar vi brädet ett kvartsvarv har vi ändrat bondens genskap, då den kommer gå åt sidan. Vändning av brädet i y-axeln påverkar inte, så vi har fortfarande den möjligheten. Antalet symmetrioperationer är två, identiteten och vändning i y-axeln. Enligt reglerna förvandlas en bonde som når sista raden, och då den inte kan backa kan en bonde aldrig stå på den första. Som mest kan vi placera en bonde på 6 8 = 48 fält. Vi får: 1/2(3612 48) = 86688 6 Praktisk implementering Säg att vi redan har skapat en databas med samtliga giltiga ställningar med Kung + Torn mot Kung. Vi har enligt tidigare beräkningar 3612 62 = 223944 sådana ställningar. Nu går vi igenom dessa och för varje ställning tar bort vi bort alla ekvivalenser, det vill säga de ställningar som fås genom symmetrioperationerna. För varje mängd ekvivalenta ställningar har vi endast kvar en. Databasens storlek är nu 28 056, närmare en 1/8 av ursprungsdatabasen. För att hitta en given ställning i den reducerade databasen, kan vi behöva söka igenom den som mest åtta gånger, en gång för varje symmetrioperation. Den totala tiden för att söka igenom en 1/8 databas 8 gånger, är samma tid som söka igenom ursprungsdatabasen så reduceringen medför ingen tidsförlust. 7 Slutsats Vi har visat att det går att utnyttja tydliga samband mellan olika ställningar i schack och kraftigt reducera utrymmet som krävs för att kunna värdera en ställning entydigt. För att möjliggöra detta har vi studerat brädets symmetriska egenskaper och tagit hjälp av kända teorem i diskret matematik. Tillämpningen i det här fallet baseras på kunskaper om automorfier på en graf. Vårt schackbräde kan direkt ersättas med en kvadratisk figur, fyra punkter sammanbundna med fyra kanter. En sådan figur kallas graf, och dess hörn numrerar vi 1,2,3,4 medsols med 1 i övre vänstra hörnet. Så länge vi inte har bönder på brädet kan vi tillsätta en punkt (ett hörn) för varje pjäs som direkt har en relation till de fyra ursprungshörnen. En bonde kan betraktas som en punkt (5) kopplad till hörn 1 och 2 alternativt 3 och 4. En automorfi är en permutation (omnumrering) som bibehåller relationen mellan hörnen vi redan har. Är två hörn förenade med en kant ska de så förbli. I fallet med bonden kan vi byta plats på 1 och 2, om vi samtidigt byter plats på 3 och 4. Alla kanter bibehålls. Inga andra automorfier finns. 7

I fallet utan bönder är en pjäs kopplad till alla hörn och därmed kommer alla automorfier som finns på kvadraten gälla hela grafen inklusive pjäser. För en sådan graf har vi permutationerna, skrivna så att den förstnämnda flyttar till nästa, den sista med den första inom samma parantes, (1234), (13)(24), (1432), (24), (13), (12)(34) och (14)(23). Inga andra permutationer finns, då relationen mellan två hörn som tidigare fanns skulle brytas. Genom ytterligare studier av grafer som representerar schackställningar kan vi möjligen hitta andra samband att utnyttja. För den schacktekniskt intresserade studenten rekommenderas fördjupningar inom diskret matematik. 8 Källor Biggs, Norman L Discrete Mathematics", Oxford university press 8