Recension av schackdator. Schackdatorer

När jag var säker på att schackprogram (de är motorer, men mer om det senare), helt enkelt komma ihåg ett stort antal spel som spelas och hitta den aktuella positionen i dem och göra rätt drag. Jag tror jag läst om det i någon bok.

Detta är utan tvekan en mycket naiv åsikt. En ny position i schack kan erhållas genom det tionde draget. Även om det finns färre positioner i schack än i Go, så består dragträdet av nästan 120 miljoner noder efter 3 drag (ett drag är ett drag av vit och svart, ett halvt drag är ett drag av bara en sida). Dessutom har entusiaster räknat storleken på trädet efter 14 halva drag från startpositionen i mer än ett år, och gått framåt med ungefär en tredjedel hittills.

Jag trodde också att schackprogram, trots att de vunnit länge mot världsmästaren, fortfarande var inom räckhåll för de bästa människorna. Detta är inte heller sant.

Alfa beta

Den första optimeringen är alfabeta. Idén med en alfa-beta är enkel - om jag redan har ett bra drag kan jag skära bort drag som uppenbarligen är värre. Tänk på exemplet i den läskiga bilden till vänster. Låt oss säga att spelare A har 2 möjliga drag - a3 och b3. Efter att ha analyserat draget a3 fick programmet betyget +1,75. När programmet började utvärdera draget b3, såg programmet att spelare B har två drag - a6 och a5. Bedömning av flytten a6 +0,5. Eftersom spelare B väljer ett drag med en lägsta poäng, kommer han aldrig att välja ett drag med en poäng högre än 0,5, vilket innebär att poängen för drag b3 är mindre än 0,5, och det är ingen idé att överväga det. Således skärs hela det återstående underträdet av b3 av.

För klippning lagrar vi de övre och nedre gränserna - alfa och beta. Om draget under analysen får en poäng högre än beta, då avbryts den aktuella noden. Om poängen är högre än alfa, uppdateras alfa.

Noder i alfabeta är indelade i tre kategorier:

  1. PV-noder- noder vars poäng föll in i fönstret (mellan alfa och beta). Roten och noden längst till vänster är alltid noder av denna typ.
  2. Klipp-noder(eller felhöga noder) - noder där betaklippning inträffade.
  3. Alla noder(eller fel-låg noder) - noder där inte ett enda drag överskred alfavärdet.

Sortera drag

När du använder alfabetan blir ordningen på dragen viktig. Om vi ​​kan sätta det bästa draget först, kommer de återstående dragen att analyseras mycket snabbare på grund av beta cutoffs.

Förutom att använda hashen och det bästa draget från föregående iteration, finns det flera tekniker för att sortera drag.

För att ta till exempel kan en enkel heuristik användas MVV-LVA(Most Valuable Victim - Minst Valuable Aggressor). Vi sorterar alla fångster i fallande ordning efter värdet på "offret", och inuti sorterar vi igen i ordningen med ökande värde för "angriparen". Uppenbarligen är det oftast mer lönsamt att fånga drottningen med en bonde än vice versa.

För "tysta" drag används metoden "killer" drag - drag som orsakade beta cutoff. Dessa drag kontrolleras vanligtvis omedelbart efter hash-dragen och tagen.

Hashtabell eller permutationstabeller

Trots trädets enorma storlek är många av noderna i det identiska. För att inte analysera samma position två gånger lagrar datorn analysresultaten i en tabell och kontrollerar varje gång om det finns en färdig analys av denna position. Vanligtvis lagrar en sådan tabell den faktiska hashen för positionen, poängen, det bästa draget och poängens ålder. Ålder krävs för att ersätta gamla positioner när du fyller i tabellen.

Iterativ sökning

Som ni vet, om vi inte kan analysera hela trädet fullständigt, behöver minimax en utvärderingsfunktion. Sedan, efter att ha nått ett visst djup, stoppar vi sökningen, uppskattar positionen och börjar klättra i trädet. Men denna metod kräver ett förutbestämt djup och ger inte mellanresultat av hög kvalitet.

Dessa problem löses genom iterativ sökning. Först analyserar vi till djup 1, sedan till djup 2, och så vidare. Varje gång går vi alltså ner lite djupare än förra gången, tills analysen stoppas. För att minska storleken på sökträdet används vanligtvis resultaten från föregående iteration för att skära bort uppenbart dåliga drag på det aktuella. Denna teknik kallas aspirationsfönstret och används genomgående.

Quiescence-sökning

Denna metod är utformad för att bekämpa "horisonteffekten". Att bara stoppa din sökning på rätt djup kan vara mycket farligt. Låt oss föreställa oss att vi stannade mitt i ett dambyte - vit tog den svarta drottningen, och vid nästa drag borde svart ta vitt. Men för tillfället på brädet - Vit har en extra dam och den statiska uppskattningen kommer att vara fundamentalt felaktig.

För att göra detta, innan vi gör en statisk bedömning, kontrollerar vi alla fångster (ibland även kontroller) och går ner i trädet till en position där det inte finns några möjliga fångster och kontroller. Naturligtvis, om alla fångar försämrar uppskattningen, returnerar vi uppskattningen av den aktuella positionen.

Selektiv sökning

Tanken med en selektiv sökning är att överväga "intressanta" drag längre och mindre intresse till ointressanta. För detta används tillägg, som ökar sökdjupet i vissa positioner, och förkortningar, som minskar sökdjupet.

Djupet ökas vid tillfångataganden, kontroller, om det enda draget eller mycket bättre än alternativen, eller i närvaro av en godkänd bonde.

Klippning och klipp

Nedskärningar och nedskärningar är mycket mer intressant. De kan avsevärt minska storleken på trädet.

Kort om nedskärningar:

  • Deltaklippning- kontrollera om infångningen kan förbättra den aktuella alfa. För att göra detta, lägg till värdet av den tagna formen till utvärderingen av noden, och lite mer och se om det resulterande värdet är större än alfa. Till exempel, om vit saknar ett torn, är det osannolikt att fånga en bonde hjälpa honom, å andra sidan kan det hjälpa att fånga en biskop.
  • Klippande värdelöshet- samma, endast för icke-fångst. Om den aktuella uppskattningen är så mycket mindre än alfa att ingen positionsfördel kan kompensera för detta, avbryts sådana noder. Används vanligtvis på låga djup (1-2).
  • Historisk cut-off- för varje drag lagrar vi hur många gånger detta drag utlöste en cutoff, oavsett position. Rörelser med ett högt värde av denna heuristik avbryts. Används vanligtvis från ett visst djup och appliceras inte på PV-noder. Ibland kombinerat med den tidigare metoden.
  • Multi-Cut- om från de första M (till exempel 6) noderna åtminstone C (till exempel 3) är Cut-nod, så skär vi av alla noder.
  • Trimma på null- om poängen efter ett nolldrag (en enkel överföring av tur till motståndaren) fortfarande är högre än beta, då klipper vi av noden. Enkelt uttryckt, om positionen är så dålig att spelaren fortfarande inte kan förbättra den efter att ha gjort två drag i rad, så är det ingen idé att överväga denna position.

Förkortningar används när vi inte är så säkra på att flytten är dålig, och därför skär vi inte bort den, utan minskar helt enkelt djupet. Till exempel, rakningär en förkortning förutsatt att den statiska uppskattningen av den aktuella positionen är mindre än alfa.

Tack vare den högkvalitativa sorteringen av rörelser och snitt lyckas moderna motorer uppnå ett förgreningsförhållande under 2. På grund av detta märker de tyvärr ibland inte icke-standardiserade uppoffringar och kombinationer.

NegaScout och PVS

Två mycket liknande tekniker som drar fördel av det faktum att efter att vi hittat PV-noden (förutsatt att våra drag är någorlunda välsorterade), så förändras den med största sannolikhet inte, det vill säga alla återstående noder kommer att returnera en poäng lägre än alfa. Så istället för att söka med ett fönster från alfa till beta, söker vi med ett fönster från alfa till alfa + 1, vilket gör att vi kan snabba upp sökningen. Naturligtvis, om vi vid någon nod får en cutoff av beta, bör det uppskattas igen, redan med en normal sökning.

Skillnaden mellan de två metoderna ligger bara i formuleringen - de utvecklades ungefär samtidigt, men oberoende, och är därför kända under olika namn.

Parallell sökning

Parallellisering av alfabeta är ett separat stort ämne. Jag ska gå igenom det kort, och om någon är intresserad, läs Parallell Alpha-Beta Search on Shared Memory Multiprocessors. Svårigheten är att i en parallell sökning analyseras många Cut-noder innan en annan tråd hittar en retraktion (sätter beta), medan i en sekventiell sökning, med en bra sortering, skulle många av dessa noder skäras av.

Lat SMP

En mycket enkel algoritm. Vi kör bara alla trådar samtidigt med samma sökning. Kommunikationen av strömmar sker på bekostnad av en hashtabell. Lazy SMP visade sig vara förvånansvärt effektiv, så mycket att den översta Stockfish bytte till den från YBW. Det är sant att vissa tror att förbättringen berodde på dålig YBWC-implementering och alltför aggressiv klippning snarare än fördelen med Lazy SMP.

Young Brothers Wait Concept (YBWC)

Den första noden (äldre syskon) ska analyseras färdigt, varefter en parallell analys av de återstående noderna (yngre syskon) startar. Tanken är fortfarande densamma, det första draget kommer antingen att förbättra alfasiffran avsevärt eller till och med låta dig klippa bort alla andra noder helt och hållet.

Dynamisk träddelning (DTS)

Snabb och komplex algoritm. Lite om hastighet: sökhastighet mäts genom ttd (tid till djup), det vill säga tiden det tar för en sökning att nå ett visst djup. Detta mått kan vanligtvis användas för att jämföra prestanda för olika versioner av en motor eller en motor som körs på ett annat antal kärnor (även om Komodo, till exempel, ökar trädets bredd med fler tillgängliga kärnor). Dessutom, under drift, visar motorn sökhastigheten i nps (noder per sekund). Detta mått är mycket mer populärt, men det tillåter inte ens att jämföra motorn med sig själv. Lazy SMP, som inte har någon synk alls, ökar nps nästan linjärt, men på grund av mängden overhead är dess ttd inte så imponerande. Medan för DTS ändras nps och ttd på nästan samma sätt.

För att vara ärlig har jag inte helt kunnat förstå denna algoritm, som trots sin höga effektivitet bokstavligen används i ett par motorer. Om du är intresserad, följ länken ovan.

Kvalitet

Så vi har nått det nödvändiga djupet, sökt lugn och slutligen måste vi utvärdera den statiska positionen.

Datorn utvärderar positionen i bönder: +1,0 betyder att vit har en fördel lika med 1 bonde, -0,5 betyder att svart har en halvbonde fördel. Schackmatt uppskattas till 300 bönder, och positionen där antalet drag till schackmatt x är känt är (300-0,01x) bönder. +299,85 betyder att vit parar sig i 15 drag. I det här fallet arbetar själva programmet vanligtvis med hela uppskattningar i centipoints (1/100 av en bonde).

Vilka parametrar tar datorn hänsyn till vid utvärdering av en position?

Material och rörlighet

Det lättaste. Drottning 9-12 bönder, torn 5-6, riddare och biskop 2,5-4 respektive bonde en bonde. I allmänhet är material en anständig heuristik för att utvärdera en position, och alla positionsfördelar omvandlas vanligtvis till slut till en materiell fördel.

Rörlighet anses vara enkel - antalet möjliga drag i den aktuella positionen. Ju fler det finns, desto mer rörlig är spelarens armé.

Formpositionstabeller

Riddaren i hörnet av brädet är vanligtvis dålig, bönderna närmare fiendens rygg blir mer och mer värda osv. För varje pjäs upprättas en tabell med bonusar och straff, beroende på dess placering på brädet.

Pantstruktur

  • Dubblade bönder- två bönder på en fil. De är ofta svåra att försvara med andra bönder och anses vara svagheter.
  • Släpande bönder- bönder vars grannar står framför dem. Sådana bönder kan inte försvaras av andra bönder och anses därför vara svaga.
  • Passerade bönder- bönder som kan nå den sista rangen utan inblandning från fiendens bönder. Starkt hot mot fienden, speciellt i slutspelet
  • Isolerade bönder- bönder som inte har några grannar. Sådana bönder kan inte försvaras av andra bönder alls, och anses därför vara en allvarlig svaghet.

Speletapper

Alla ovanstående parametrar påverkar spelets poäng på olika sätt, beroende på spelets skede. I öppningen är det ingen mening med en passerad bonde, och i slutspelet måste du föra kungen till mitten av brädet och inte gömma den bakom bönderna.

Därför har många motorer en separat poäng för slutspelet och för öppningen. De utvärderar spelstadiet beroende på det material som finns kvar på spelplanen och beräknar enligt detta poängen - ju närmare slutet av spelet, desto mindre påverkar öppningsresultatet och desto mer slutresultatet.

Övrig

Utöver dessa grundläggande faktorer kan motorerna tillföra en del andra faktorer till bedömningen – till exempel säkerheten för kungen, låsta pjäser, bondeöar, mittkontroll osv.

Exakt uppskattning eller snabbsökning?

En traditionell debatt: vilket är mer effektivt, för att exakt bedöma positionen eller för att uppnå ett större djup av sökning. Erfarenheten visar att alltför "tunga" utvärderingsfunktioner är ineffektiva. Å andra sidan leder en mer detaljerad bedömning, med hänsyn till fler faktorer, vanligtvis till mer "vackert" och "aggressivt" spel.

Öppningsböcker och slutspelstabeller

Debutböcker

Vid datorschackets gryning spelade programmen mycket dåligt vid öppningen. Att öppna kräver ofta strategiska beslut som påverkar hela spelet. Å andra sidan hade folk en välutvecklad öppningsteori, öppningar analyserades många gånger och spelades upp från minnet. Så ett liknande "minne" skapades för datorer. Med utgångspunkt från startpositionen byggdes ett träd av drag och varje drag utvärderades. Under spelets gång valde motorn helt enkelt ett av de "bra" dragen med en viss sannolikhet.

Sedan dess har öppningsböckerna vuxit, många öppningar har analyserats med hjälp av datorer ända fram till slutspelet. Det finns inget behov av dem, starka motorer har lärt sig att spela öppningen, men de lämnar huvudlinjerna tillräckligt snabbt.

Slutspelstabeller

Låt oss gå tillbaka till inledningen. Kom ihåg tanken på att lagra många positioner i minnet och välja den du vill ha. Där är hon. För ett litet (upp till 7) antal siffror beräknas alla befintliga positioner. Det vill säga, i dessa positioner börjar datorn spela idealiskt och vinner i det minsta antalet drag. Nackdelen är storleken och generationstiden. Skapandet av dessa tabeller hjälpte till vid studiet av slutspel.

Generera tabeller

Låt oss generera alla möjliga (med hänsyn till symmetri) positioner med en viss uppsättning former. Bland dem kommer vi att hitta och utse alla positioner där schackmatten är. Nästa pass kommer att beteckna alla positioner där man kan komma in i positionerna med schackmatt - i dessa positioner sätts schackmatten i 1 drag. Därmed hittar vi alla positioner med schackmatt 2,3,4, drag. På alla omarkerade positioner - oavgjort.

Nalimovs bord

De första slutspelstabellerna publicerades redan 1998. För varje position lagras resultatet av spelet och antalet drag till schackmatt för ett idealiskt spel. Storleken på alla sexsiffriga ändelser är 1,2 terabyte.

Lomonosov bord

År 2012 räknades alla sjusiffriga slut (förutom 6 mot 1) på Lomonosov-superdatorn vid Moscow State University. Dessa baser är bara tillgängliga för pengar och är de enda kompletta sjudelade slutspelsborden som finns.

Syzygy

De facto standarden. Dessa baser är mycket mer kompakta än Nalimovs baser. De består av två delar - WDL (Win Draw Lose) och DTZ (Distance to zeroing). WDL-baser är avsedda att användas under sökningar. När trädnoden hittas i tabellen har vi det exakta resultatet av spelet på den positionen. DTZ är avsedda för rotanvändning - de lagrar antalet drag innan draget (bonde drag eller fånga) rensar räknaren. alltså räcker WDL-baser för analys, och DTZ-baser kan vara användbara för slutspelsanalys. Storleken på Syzygy är mycket mindre - 68 gigabyte för sexsiffrig WDL och 83 för DTZ. Sjusiffriga baser finns inte, eftersom deras generering kräver ungefär en terabyte RAM.

Användande

Slutspelstabeller används främst för analys, ökningen av styrkan i motorernas spel är liten - 20-30 poäng av ELO. Ändå, eftersom sökdjupet för moderna motorer kan vara mycket stort, uppstår frågor till slutspelsdatabaser från sökträdet i öppningen.

Giraffer eller neurala nätverk spelar schack

Några av er kanske har hört talas om en schackmotor för neuralt nätverk som har nått IM-nivån (vilket, som vi förstod i inledningen, inte är så coolt för en motor). Den skrevs och lades upp på Bitbucket av Matthew Lai, som tyvärr slutade arbeta med den på grund av att han började jobba på Google DeepMind.

Inställningsparametrar

Det är inte svårt att lägga till en ny funktion i motorn, men hur kan man kontrollera att den har gett ett lyft? Det enklaste alternativet är att spela flera spel mellan den gamla och nya versionen och se vem som vinner. Men om förbättringen är liten, och detta vanligtvis händer efter att alla huvudfunktioner har lagts till, bör det finnas flera tusen spel, annars kommer det inte att finnas någon tillförlitlighet.

Lutfisk

Många människor arbetar med den här motorn, och var och en av deras idéer måste testas. Med motorns nuvarande styrka ger varje förbättring ett par betygspoäng, men slutresultatet är en stabil tillväxt på flera tiotals poäng årligen.

Deras lösning är typisk för öppen källkod - volontärer ger sina krafter att köra hundratusentals spel på dem.

Endast registrerade användare kan delta i undersökningen. , snälla du.


Litteratur och film under andra hälften av 1900-talet är fulla av berättelser om att fånga mänskligheten med maskiner, införandet av artificiell intelligens i våra liv och krig för överlevnad. Det har inte gått mycket tid sedan dess, och i dag kan man säkert säga att framtiden har kommit. En person slåss med en dator, inte bara för överlevnad, utan för titeln som den starkaste schackspelaren i världen. Spänningen som Deep Blue vann med 1997 är svår att förmedla med ord. Det är märkligt att spänningen och pressen som både stormästaren och publiken upplevde inte mattades av med tiden, utan tvärtom blev starkare för varje år.


De starkaste schackspelarna i världen

Titeln schackmästare dök upp 1886, när österrikaren Wilhelm Steinitz slog den preussiske schackspelaren Johann Zukertort. Turneringen spelades upp till 10 segrar, och för segern fick den österrikiske schackspelaren 1000 dollar, en enorm summa för den tiden.

Historien har dussintals geniala schackspelare, som Emanuel Lasker, som slog den då fyrfaldige schackvärldsmästaren Wilhelm Steinitz 1894, ryske stormästaren Alexander Alekhin, vars seger var plötslig för alla, Mikhail Botvinnik, Anatoly Karpov, Garry Kasparov och många andra...
Det är värt att notera separat duellen mellan Boris Spassky och Robert Fischer, som ägde rum 1972, på höjden av det kalla kriget. På grund av stark politisk press och Fischers upprörande beteende gick segern till den amerikanske schackspelaren.

Schackmästerskapets historia har många intressanta och extraordinära fall. Och om mänsklighetens sinnen under det första århundradet var upptagna av konfrontationer mellan människor, så vid gryningen av 2000-talet var de mest diskuterade striderna mellan en person och en dator.




Kasparov vs dator

Fram till mitten av 90-talet var Garry Kimovich Kasparov inte bara känd som historiens största schackspelare, världsmästare 1986, utan också som vinnare av strider med de starkaste schackdatorerna Deep Thought två gånger 1991 och Deep Blue 1996.

1997 ägde ytterligare en duell rum mellan en man och en maskin. Garry Kasparov mot den nya versionen av Deep Blue. Och det var en revolution i schackvärlden. Garry Kasparov, en internationell stormästare, förlorade mot bilen med poängen 3,5: 2,5 till förmån för Deep Blue. Beträffande orsakerna till stormästarens förlust var åsikterna delade, någon trodde att ett misstag i programkoden, som Kasparov av misstag tog för en djupt genomtänkt och stark strategi, spelade ett grymt skämt, någon försvarade åsikten att den ökända mänskliga faktorn var skyldig, ibland nådde antaganden till och med världsomspännande konspiration och ersättning av en dator med en levande person.

Kasparov själv kunde inte tro på sin förlust på länge och tillkännagav i slutet av mästerskapet ett fulspel som krävde en ommatch, men IBM, som var tillverkaren av Deep Blue, vägrade och upplöste laget som skötte schackmaskinen.

Trots alla kontroverser angående fulspel med en dator blev det efter denna incident uppenbart att nivån på teknisk utveckling av datorprogram närmade sig det ögonblick då han kunde överträffa människor.




Dess ursprung datorschackturneringar har tagit sedan 1968, när stormästaren David Levy i världsklass hävdade att ingen maskin kunde slå honom i schack under de kommande nio åren. Han vann argumentet och besegrade 1978 tidens starkaste bil, Chess 4.7. Men den växande kraften hos artificiell intelligens tog så småningom ut sin rätt, och 1989 dukade Levy efter för programmet Deep Thought.

Naturligtvis nådde inte 70- och 80-talens schackprogram nivån för de starkaste spelarna i världen. Som vi redan nämnt, slog Garry Kasparov Deep Thought flera gånger under 1991 och 1996.

Revolutionen lanserades av IBM 1997. Från det ögonblicket, schackprogram började aktivt öka sin datorkraft, vilket i slutändan gjorde det möjligt för dem att nå nivån med världens starkaste schackspelare.

Så 1998 besegrade Rebel 10-programmet Viswanathan Ananda, den andra i världsrankingen av schackspelare. År 2000 gjorde Kasparov och Kramnik oavgjort mot schackprogrammen Junior och Fruitz. Hösten 2006 förlorade Vladimir Kramnik, den nuvarande världsmästaren vid den tiden, mot Deep Fitz-programmet med en poäng på 2:4. Schackdueller mot datorn fortsätta till denna dag. Idag, enligt utvecklarna, är skapandet av schackprogram inte det svåraste arbetsflödet. Därför kan datorprogram för att spela schack nu inte bara hittas på kraftfulla bärbara datorer och datorer, utan också i vanliga smartphones och surfplattor. Om du vill testa att tävla med datorn kommer du att trivas med att spela schack online - gör det: http://quicksave.su/chess- games.

Hur en schackdator fungerar

De första principerna för schackdatorer utvecklades 1951, och det första schackprogrammet publicerades 1957. Med tiden har programmen förbättrats och förfinats, och i vår tid har programmerare och utvecklare lyckats skapa ett som kan besegra de starkaste schackspelarna.
Trots att principerna för schackprogrammet inte är så komplicerade är de inte bekanta för alla.

Var och en av spelarna kan när som helst av spelet göra ett visst antal drag som tillåts enligt spelets regler. Och antalet av dessa drag är inte oändligt, om du utesluter strategier som leder till en loop i spelet. Schackreglerna bestämmer det ändliga antalet tillåtna drag för var och en av spelarna.

Slutsatsen antyder sig själv: datorn behöver bara reda ut alla möjliga kombinationer av spelets utveckling och, voila, när alla varianter av drag och motåtgärder är kända är det omöjligt att förlora. Men allt är inte så enkelt som det verkar vid första anblicken. Den amerikanske vetenskapsmannen beräknade att efter tre drag på varje sida är antalet tillåtna kombinationer nio miljoner, och antalet möjliga kombinationer överstiger antalet atomer i det synliga universum. Om datorn försökte alla möjliga kombinationer i en duell mot en person skulle vårt liv inte ens räcka till ett schackspel.

För att slagsmålen med datorn ska bli verkliga, styrs utvecklarna av schackprogram av följande algoritm:

  1. Bygga upp en funktion för att utvärdera en befintlig position i styrelsen. Rangordning sker som regel längs axeln, det vill säga ju större den är, desto mer fördelaktig är den för vita, desto mindre är den för svart.
  2. Att bygga ett träd av möjliga drag, medan antalet möjliga drag bestäms av inget annat än processorns tillgängliga produktionskapacitet.
  3. Analys av trädet av alla möjliga rörelser och skära av föga lovande alternativ. De mest lovande grenarna beräknas noggrant, varefter datorn väljer den optimala.

Ett av problemen med schackdatorns arbete för utvecklarna var början på ett schackspel, eftersom det för närvarande är mycket svårt att bedöma framtidsutsikterna i spelet och välja en specifik strategi. Vanligtvis, i det här fallet, används bibliotek med undersökta öppningar, men om motståndaren gör ett icke-trivialt drag, utlöses den ovan beskrivna algoritmen för att analysera åtgärder i programmet.

Alla ovanstående algoritmer presenteras naturligtvis i en förenklad form, men trots detta har de inte mycket komplexitet. Mer än 20 år har gått sedan den första mannen förlorade mot maskinen i schack, nu förvånar detta ingen längre. Och det återstår bara att gissa om en person kommer att kunna besegra den artificiella intelligens som skapats av honom.


Under det nuvarande århundradet används datorschack i stor utsträckning av fans av detta uråldriga spel. Modern teknik har gjort det möjligt för människor att hitta en rival inför artificiell intelligens. Dessutom, med hjälp av schackprogram, har människor möjlighet att slåss med varandra, vara på vilket avstånd som helst, med hjälp av Internet.

Nedan hittar du 15 schackprogram för att spela schack på en dator. För att använda dem är vilken persondator som helst lämplig - dessa program kräver inte egenskaper, och de tar inte heller upp mycket utrymme på din disk. Det är bland annat gratis. De som är intresserade kan ladda ner schackspelet gratis genom att använda länkarna efter beskrivningarna av vart och ett av programmen.

Ladda ner schack gratis på din dator

Du kan ladda ner schack gratis på din dator med hjälp av följande tjänster, som vi nu kort kommer att diskutera. Du kan välja vilken som helst av dem och njuta av ditt favoritspel

Sten Schack

Klassiskt schack, tillverkat i 3D och dekorerat i stenstil. Spelet kan spelas mot en dator med 5 svårighetsgrader, såväl som mot en person på Internet eller bakom samma PC. Det finns en funktion för att visa farliga och säkra positioner, samt möjligheten att ta emot tips från en dator. Spelprocessen kan sparas och fortsätta när som helst. Statistiken för de spelade spelen stöds.

Chessimo

En schacksimulator som ger användaren möjlighet att lära sig i följande riktningar: kombination, strategi, slutspel, etc. Har ett 2D-gränssnitt. Det kommer att vara användbart för nybörjare schackspelare som vill förbättra sin spelnivå. Egentligen är det riktiga programmet en slags schacktränare. Tidigare hette den "Professionell schacktränare", senare färdigställdes den och fick sitt nuvarande namn. Har en liten volym.

Mefisto

Ett fullfjädrat schackprogram på CCM-nivå med snygg grafik och enkel anpassning. Den har funktionen att spara batcher till databasen, importera och exportera i PGN-format, samt ett analysläge, ställa in ett handikapp, olika tidskontroller etc. Gränssnittet är perfekt översatt till ryska, inklusive hjälpen.

ChessPartner

Ett program för att spela schack på Internet. Det intuitiva gränssnittet och den okomplicerade designen gör att du kan börja spela direkt efter att du har installerat programmet och välja din partner.

Schack Barn

Ett program för att lära barn schack. Har en grafisk design speciellt gjord för ett barn. Det utbildningssystem som ingår i programmet är inriktat på att engagera och motivera barnet att spela schack. En mätt och lekfull presentation av materialet kan glädja en framtida schackspelare.

Nagasaki

Schack med ett 2D-gränssnitt och tio svårighetsgrader (från nybörjare till proffs). Stöder spelplansstil och anpassning av pjäser. Det finns en sparfunktion.

Kasparov Schackkompis

Eller schack med Garry Kasparov. Skapad med direkt deltagande av den 13:e världsmästaren. Den innehåller ett antal av Kasparovs historiska spel, samt övningar och uppgifter som han sammanställt. Programmet har två enkellägen: i det första har spelaren förmågan att ta tips, ändra tiden per drag och svårighetsgraden; det andra läget är en turnering där nivån på motståndarna ökar från varje omgång, i den sista omgången måste spelaren spela med Kasparov själv.

Ett enkelt men gediget schackprogram med hyfsad spelnivå. Ingen installation krävs. Den har ett vänligt grafiskt gränssnitt med ett klassiskt whiteboard-utseende och liten storlek. Stöder arbete med FEN-formatet.

Dokumentförstörare Klassisk Schack

Ett välkänt program för schackälskare. Den har en analysfunktion och en inbyggd simulator. Nivån på spelet är tillräckligt hög, lämplig även för erfarna schackspelare.

Schack 3D

Schackprogram, intressant främst inom tredimensionell grafik. Resten är en typisk schacksimulator med en måttlig spelnivå. Liten i storleken.

Elit Schack

Klassiskt schack med ett bekvämt och diskret gränssnitt med bra spelnivå. Programmets ringa storlek och dess flerspråkighet är utan tvekan ett par andra fördelar.

BoxChess

Ett schackprogram i minimalistisk design utan anspråk på lyxiga effekter och högsta svårighetsgrad. Den spelar dock bra, och dess enkelhet och tillgänglighet skiljer den företrädesvis från sina kamrater.

Mini

Precis som det föregående är detta schackprogram en liten kompakt schacksimulator med jämn "pocket". Först och främst kan det vara av intresse för nybörjare; erfarna schackspelare kommer sannolikt inte att välja henne som partner för spelet.

Netto Schack

Ett program utformat för att spela schack på Internet eller på en dator. En dator med olika komplexitetsnivåer kan också fungera som en rival. Har förmågan att koppla ihop olika schackmotorer. Innehåller en positionsredigerare.

Stormästare

Ett schackprogram som kommer att tillfredsställa både nybörjare och erfarna schackspelare. Har vackert återgiven grafik och animation. Stöder två visuella lägen: 2D och 3D. Ett stort antal inställningar från algoritmen för en datormotståndare till ljud och visuella effekter.

Ladda ner spel schack på ryska

Modernt schack har varit känt sedan slutet av 1400-talet. Under hela dess historia krävde att spela ett schackspel tre komponenter:

  • schackbräde 8x8;
  • 16 svarta och 16 vita bitar;
  • och 2 personer.

Den nuvarande situationen är sådan att digital teknik gör det möjligt att klara sig inte bara utan fysiska, annars material, tavlor och figurer, utan också utan människor överhuvudtaget. Digitala modeller och algoritmer som består av ettor och nollor kan ersätta alla tre komponenterna. De kallas schackprogram. Dessutom, när det gäller komponenten - människor, har det redan kommit till den punkten att det för närvarande inte finns någon intriger i konfrontationen mellan en dator och en person och schackprogram konkurrerar med varandra, inom ramen för hela årliga turneringar. I datoriseringens tidevarv ser sådana turneringar naturliga ut.

Datorer har blivit en del av mänskligt liv och idag kan vem som helst få ett schackprogram - det finns en enorm variation som kommer att tillfredsställa den mest krävande användaren. Motivet att spela schack med datorn kan vara ett sportintresse eller träning i spelet. Dessutom fungerar schackprogram som ett sätt att analysera positioner. I den här artikeln gavs 15 schackprogram ovan med en kort beskrivning av deras förtjänster och länkar för nedladdning. Förutom att var och en av dem låter dig testa sina styrkor mot artificiell intelligens, ger många spelare möjlighet att spela med varandra, både på internet på avstånd från varandra och på samma dator.

För din bekvämlighet innehåller vår sida mer än ett dussin program för att spela schack och inte bara för att spela. De kan också hjälpa till med att lära sig schack och fungera som ett slags tränare. Naturligtvis är det viktigt för en rysktalande användare att dessa program är på ryska. Vissa av dem stöder faktiskt det ryska språket, och den andra delen, om de inte stöder det, behöver de det inte riktigt på grund av det intuitiva gränssnittet som alla kan förstå. Du kan ladda ner schackspelet på ryska från länkarna.

Jag har bara fyra modeller av inhemska schackdatorer. Det producerades faktiskt lite fler av dem. Jag har hört talas om namnen "Intellect-01", "Intellect-02", "Debut" och "Phoenix", men har inte sett dem live. Det finns också en serie "Kasparov", även om jag inte är säker på att de är av inhemsk produktion.

"Chess Partner" är gjord med en flytande kristallindikator. Bilden visar vilka element figurerna består av. Lite ovanligt, men det är bättre än vad de gjorde för MK-90-kalkylatorn. Inget är klart där alls ( Youtube länk)

Jag har inget speciellt att säga om "Chess Partner", men serierna "Electronics IM-01", "Electronics IM-01T" och "Electronics IM-05" är ganska intressanta schackdatorer.

På lådan med den första modellen "Electronics IM-01" finns ett etikettbeställningsdatum - 1986. I princip kan detta datum betraktas som början på frågan.
Ett av de första inhemska elektroniska spelen, helt av vår egen design (Leningrad-föreningen "Svetlana"). Innan dess producerade vi av de elektroniska spelen bara "Tja, vänta lite!" (se) sedan 1984 och olika versioner av spelet "" (cirka 1980). Den första var en klon av "Nintendo", och den andra, tydligen, en klon av AY-3-8500 från "General Instrument".

Vår schackdator använde mikroprocessorn K1801VM1 som var populär 1986. Detta är en 16-bitars mikroprocessor som ofta används i datorer DVK-2 eller BK-0010-familjen. Troligtvis felsöktes det på DVK-2. Det är anmärkningsvärt att själva processorn produceras av Moskva "Angstrem". På den tiden producerade "Svetlana" själv en mikroprocessor av sin egen produktion K586VM1 för datorer i "C5"-serien, och varför de tog någon annans är inte klart. Förmodligen på grund av den felsökningsförmågan.

Det här är en riktig dator. Den innehåller en processor, RAM och ROM. Bara skärmen är liten.

Observera att RAM-kretsarna (Random Access Memory) finns på panelerna och chipsen med programmet (ROM) är fastanslutna. Du kan se insidan av Eletkronika IM-01T-datorn. I den tidigare "IM-01" är både RAM och ROM lödda utan paneler. Det faktum att det är RAM, och inte ROM, finns på panelerna är väldigt ovanligt. Traditionellt på datorer var det firmware (BIOS) som fanns på panelerna.
Medan du förstår varför detta gjordes, kommer jag att säga att det är bra att jag är omgiven av mycket bra, kunniga och läskunniga människor (som du) som alltid kommer att berätta någon intressant historia. En av sådana berättelser, som jag hörde för ett år sedan, var en berättelse om att MY-typ-styrenheten för DVK-3-datorn testade minnet innan arbetet påbörjades och började arbeta i ett område som inte innehöll tillverkningsfel (trasiga bitar) . Denna mikrokrets kallades K1809RU1. Exakt samma levererades till "Electronics IM-01T". Uppenbarligen, under tillverkningen av datorer, slitna företagets tekniska kontrollavdelning (OTK) av dessa mikrokretsar och bestämde sig för att sätta dem på paneler för att snabbt kunna byta.

Schackdatorn består av ett fält för spelet, inmatningsknappar och en indikator. Indikatorn kan visa rörelsen för en person eller en dator (var och var han gick ifrån), svårighetsgraden, antalet gjorda drag och annan information.
I allmänhet är datorn "Electronics IM-01" ganska funktionell. Förutom själva spelet från startpositionen kan han även lösa schackproblem (schackmatt i N drag) eller starta spelet med en godtycklig inställning.
Om du inte tänker på något kan du anförtro jobbet till en dator. Det är också möjligt att spela en dator med en dator.

Jag hade turen att det finns instruktioner för "Electronics IM-01" och "Electronics IM-01T", och du kan jämföra deras funktioner. De är verkligen olika. Utvecklarna satt inte sysslolösa och gjorde ändringar i programmet.
En av de mest anmärkningsvärda förändringarna är spelnivåerna. I den första versionen finns det sex, och i den andra - sju. Här är en tabell över skillnader i tidpunkten för flytttänkandet.

Som du kan se behöver användaren inte längre vänta 8-24 timmar för att ta reda på datorns framsteg på den svåraste nivån, och den maximala räknetiden var begränsad till 10 minuter. Självklart är det få som väntar så länge på en flytt. Men trots allt brukade folk spela schack "per brev", och ingenting!

Men för IM-05 kunde vi inte hitta en instruktion. Inuti är det annorlunda, det finns andra mikrokretsar. Mikroprocessor K1801VM2 istället för K1801VM1. Knapparna har också ändrats, användargränssnittet har ändrats lite. Till exempel, nu istället för att överväga omväxlande blinkande punkt och nivånummer, visar skärmen tiden sedan spelets början. Vi tog också bort "Fig"-knappen och ersatte den med "Dir"-knappen.
Utgivningsår för "Electronics IM-05" - 1993. Branschens svänghjul, som stängdes av 1991, hade praktiskt taget slutat 1993, och på den här modellen var utvecklingen av schackdatorer troligen färdig. En ny era har börjat, andra varor, men det här är en helt annan historia.

Jag har skannat instruktionerna och du kan ladda ner dem från länken.

Schackdator

Schackdator- en specialiserad anordning för att spela schack. Det används vanligtvis för att underhålla och träna schackspelare i frånvaro av en mänsklig partner, som ett verktyg för att analysera olika spelsituationer, för datorernas konkurrens med varandra. De representerar utvecklingen av idén om en "schackmaskin" som uppstod på 1700-talet.

Konsumentschackdatorer är vanligtvis utformade som ett schackbräde med en display och en uppsättning nycklar för att utföra de nödvändiga spelåtgärderna. Beroende på designen så får brädan inte på något sätt kopplas ihop med datordelen och kanske inte ha elektronik, eller vice versa kan det vara en display som visar en grafisk representation av spelsituationen.


Wikimedia Foundation. 2010.

  • Schackpresenter
  • Schack i Sovjetunionen (tidning)

Se vad "Schackdator" är i andra ordböcker:

    Schackmaskin- Schackmaskin "Turk" på teckningen av Karl Gottlieb von Windisch från boken "Briefe über den Schachspieler des Hrn. von Kempelen", 1784 ... Wikipedia

    Datorschack– Det föreslås att denna sida kombineras med schackprogrammet. Förklaring av skälen och diskussionen på Wikipedia-sidan: Mot enande / 20 december 2011. Obs ... Wikipedia

    Elektronik (varumärke)- Den här artikeln eller avsnittet innehåller en lista med källor eller externa referenser, men källorna till enskilda påståenden är fortfarande oklara på grund av brist på fotnoter ... Wikipedia

    Mikroprocessorspel i serien "Electronics".- Mikroprocessorspel i "Electronics"-serien - en stor serie sovjetiska elektroniska spel, huvudsakligen kombinerade till en enda serie "Electronics IM" (IM är ett mikroprocessorspel). Denna serie innehåller både ficka och bordsskiva ... ... Wikipedia

    Elektronik (spel)– Denna term har andra betydelser, se Elektronik (disambiguation). Mikroprocessorspel av "Electronics"-serien en serie sovjetiska elektroniska spel, huvudsakligen kombinerade till en enda serie "Electronics IM" (IM är ett mikroprocessorspel) ... Wikipedia

    Commodore Chessmate- Tillverkare Commodore Type schackdator Utgivningsdatum juni 1978 Strömförsörjning 10V, 600 mA CPU 8 bitars MOS-teknik 6504 1 MHz RAM 5 KB ... Wikipedia

    Djupblå- Deep Blue schacksuperdator utvecklad av IBM, som den 11 maj 1997 vann en 6-partiers match mot världsmästaren i schack ... Wikipedia

Relaterade publikationer