[go: up one dir, main page]

Hoppa till innehållet

Schackdator

Från Wikipedia

En schackdator är maskinvara och programvara som utvecklats för att spela schack.

Idén att bygga en schackspelande maskin går tillbaka till 1700-talet.[1] Runt 1769 kom Wolfgang von Kempelen med en schackspelande maskin som blev berömd men så småningom avslöjad som en bluff, nämligen att en människa satt inne i maskinen.[2] Ett senare försök kom år 1912, då Torres y Quevedo demonstrerade sin maskin El Ajedrecista ("Schackspelaren"). Det var en mekanisk maskin som kontrollerade en kung och ett torn, och kunde vinna över en mänsklig spelare som kontrollerar en kung.[3] Sedan mitten av 1900-talet har dock utvecklingen av schackspelande maskiner främst skett med hjälp av digital teknik.

Alan Turing påbörjade ett arbete med en algoritm som kan spela schack år 1948. Algoritmen, med namn Turbochamp, blev färdigställd år 1950. Då den tidens datorer ej var kraftfulla nog så kunde den inte implementeras på en riktig maskin. Istället så testades den manuellt i en match år 1952, där Alan Turing med papper och penna räknade fram vilket drag som algoritmen skulle genomföra.[4]

Den första vetenskapliga artikeln om schackdatorer skrevs av Claude Shannon 1950. [5] Han förutsåg två huvudsakliga strategier som skulle användas. Den ena var en "brute force"-teknik där alla möjliga drag beräknades ett visst antal drag framåt. Den andra strategin var att välja ut de bästa dragen i varje ställning och fortsätta beräkningen bara på dessa.

År 1951 så skriver Dietrich Prinz ett av de första automatiserade schackprogrammen, till en Ferranti Mark 1-maskin. Programmet kunde inte hantera ett helt parti schack, men det kunde vinna i ställningar där det går att forcera matt inom två drag. [6]

År 1957 skriver IBM-forskaren Alex Bernstein det första kompletta schackprogrammet, som körs på IBM 704.[6]

I början på 60-talet så skriver en grupp MIT-studenter det första programmet som kan vinna över en nybörjare. [7]

År 1967 skriver Richard Greenblatt programmet MacHack VI, vilket blir det första programmet som besegrar en människa i en turnering. Programmet får en rating på 1400. [7]

Under 1970-talet så vidareutvecklas och förbättras teknikerna som tidigare använts. I samband med att datorerna även blev snabbare så gjorde detta att schackprogrammen i början av 1980-talet kunde tävla mot internationella mästare, och under 1980-talet mot stormästare. [6]

I slutet på 1980-talet påbörjar IBM utvecklingen av Deep Thought, vilket var föregångaren till Deep Blue. Deep Blue besegrar år 1997 dåvarande regerande världsmästare i schack, Garri Kasparov med slutresultat 3,5-2,5.

Svårigheter

[redigera | redigera wikitext]

Det huvudsakliga problemet är att det finns ett så stort antal möjliga drag, typiskt 40 drag i varje ställning. Efter varje drag (två halvdrag) finns det därför 40x40=1600 ställningar som ska utvärderas. Efter två drag är det 2,5 miljoner ställningar och efter tre drag 4,1 miljarder. Ett normalt schackparti varar i ca 40 drag och antalet möjliga ställningar i ett schackparti är cirka 10128. Detta tal kan jämföras med antalet atomer i universum som är 1080.[1] Det verkligt svåra för schackprogrammerare är dock inte att kunna räkna ett visst antal drag framåt - utan att därefter bedöma vilken uppkommen ställning som är bäst. Det är komplicerat att värdera en schackställning i siffror, men programmet måste ändå göra detta för att kunna välja ett drag. Moderna schackdatorer och PC-program har enorma bibliotek för öppningar och slutspel. Dessa program (tex Houdini, Shredder, Rybka mm) har på en modern PC (Core i7) i alla avseenden passerat stormästarnivå, och får betraktas ur mänskligt spelarperspektiv som oslagbara.

Datorer och datorprogram

[redigera | redigera wikitext]