Кіріспе

Компьютерлік шахматқа арналған аппараттық және бағдарламалық қамтамасыз ету. Компьютерлік шахматқа шахмат ойнауға қабілетті аппараттық (арнайы компьютерлер) және бағдарламалық қамтамасыз ету кіреді. Компьютерлік шахмат ойыншыларға адамдық қарсыластар болмаған кезде де жаттығу мүмкіндігін береді, сонымен қатар талдау, ойын-сауық және оқыту үшін де пайдалы. Шахмат шебері деңгейінде немесе одан да жоғары деңгейде ойнайтын компьютерлік шахмат қолданбалары суперкомпьютерлерден бастап смартфондарға дейін қолжетімді. Жеке шахмат ойнайтын машиналар да бар. Stockfish, Leela Chess Zero, GNU Chess, Fruit және басқа да ашық бастапқы кодты тегін қолданбалар әртүрлі платформалар үшін қолжетімді. Компьютерлік шахмат қолданбалары, аппараттық немесе бағдарламалық қамтамасыз етуде іске асырылғаннан кейін, адамдардан өзгеше стратегияларды қолданады: олар ағымдағы позициядан бастап қадамдар тізбегін көрсететін ағаштарды құру, іздеу және бағалау үшін эвристикалық әдістерді пайдаланады және ойын барысында ең жақсы тізбекті орындауға тырысады. Мұндай ағаштар әдетте өте үлкен, мыңдағаннан миллиондаған түйіндерден тұрады. Қазіргі заманғы компьютерлердің есептеу жылдамдығы, секундына ондаған мыңнан жүздеген мың түйінді немесе одан да көп өңдей алатындығы, сондай-ақ ағашты көбінесе маңызды түйіндерге дейін тарылтатын кеңейту және қысқарту эвристикасы осы тәсілді тиімді етеді. Шахмат ойнауға немесе шахматқа ұқсас ойындар ойнауға қабілетті алғашқы шахмат машиналары вакуумдық лампалы компьютерлер дәуірінде (1950-ші жылдар) цифрлық компьютерлерде жұмыс істейтін бағдарламалар болды. Алғашқы бағдарламалар нашар ойнағандықтан, тіпті бастауыш деңгейдегі ойыншы да оларды жеңе алатын. 40 жыл ішінде, 1997 жылы, суперкомпьютерлерде немесе арнайы аппараттық құралдарда жұмыс істейтін шахмат қозғалтқыштары ең жақсы адам ойыншыларын жеңе алды. 2006 жылға қарай үстел үстіндегі компьютерлерде жұмыс істейтін бағдарламалар да осы мүмкіндікке қол жеткізді. 2006 жылы Макгилл университетінің компьютерлік ғылым профессоры Монти Ньюборн: "Ғылым өз жұмысын істеді" деді. Дегенмен, шахматты толық шешу қазіргі заманғы компьютерлер үшін мүмкін емес, өйткені ойынның мүмкін болатын вариацияларының саны өте көп. Компьютерлік шахмат бір кезде "Жасанды интеллекттің дрозофиласы" деп есептелді, білімдік инженерияның шегі. Қазіргі таңдағыда бұл сала ғылыми тұрғыдан толыққанды парадигма деп саналады, ал шахмат ойнау – күнделікті есептеу операциясы.

Қолжетімділік және ойын күші

Шахмат машиналары/бағдарламалары бірнеше түрлі форматта қолжетімді: жеке шахмат машиналары (әдетте бағдарламалық шахмат бағдарламасын іске қосатын микропроцессор, бірақ кейде арнайы аппараттық машина ретінде), стандартты дербес компьютерлерде (ПК), веб-сайттарда және мобильді құрылғыларға арналған қосымшаларда жұмыс істейтін бағдарламалар. Бағдарламалар суперкомпьютерлерден бастап смартфондарға дейін кез келген құрылымда жұмыс істейді. Бағдарламалар үшін аппараттық талаптар минималды: қосымшалар дискіде бірнеше мегабайттан аспайды, бірнеше мегабайт жадты пайдаланады (бірақ жеткілікті болса, одан да көп пайдалана алады), ал 300 МГц немесе одан жоғары жылдамдығы бар кез келген процессор жеткілікті. Процессордың жылдамдығына байланысты өнімділік шамалы өзгереді, бірақ үлкен транспозициялық кестеге (бірнеше гигабайтқа дейін немесе одан да көп) жеткілікті жад, процессор жылдамдығынан гөрі ойын күші үшін маңыздырақ. Көптеген қолжетімді коммерциялық шахмат бағдарламалары мен машиналары супер гроссмейстер деңгейінде (Elo 2700 немесе одан да жоғары) ойнай алады және көп ядролы және гипертізбекті компьютерлік процессор архитектураларын пайдаланады. Stockfish сияқты ең жақсы бағдарламалар тіпті әлем чемпионы деңгейіндегі ойыншылардан да асып түсті. Көптеген шахмат бағдарламалары Winboard немесе Chessbase сияқты графикалық интерфейске (GUI) қосылған шахмат қозғалтқышынан тұрады. Ойын күші, уақыт бақылауы және басқа да өнімділікке қатысты параметрлер GUI арқылы реттеледі. Көптеген GUI ойыншыға позицияларды орнатуға және өңдеуге, жүргізілген қадамдарды кері қайтаруға, теңдік ұсынуға және қабылдауға (және жеңіліске ұшырауға), қадамдарды ұсынуды сұрауға және алуға, сондай-ақ ойын барысында қозғалтқыштың талдауын көрсетуге мүмкіндік береді. Sargon, IPPOLIT, Stockfish, Crafty, Fruit, Leela Chess Zero және GNU Chess сияқты мыңдаған шахмат қозғалтқыштарын Интернеттен тегін жүктеуге болады (немесе бастапқы коды басқа жолмен алуға болады).

Шахмат бағдарламалық жасақтамасының түрлері мен ерекшеліктері

Шахмат бағдарламаларының ең көп таралған түрі – шахмат ойнайтын бағдарламалар. Адам ойыншы тақтада қадам жасаса, жасанды интеллект (ЖА) келесі қадамды есептеп, жасайды, ал адам мен ЖА ойын біткенше кезекпен жүреді. Қимылдарды есептейтін шахмат қозғалтқышы және графикалық интерфейс (GUI) кейде жеке бағдарламалар болып табылады. Әртүрлі қозғалтқыштарды GUI-ге қосып, түрлі стильдегі қарсыластармен ойнауға болады. Қозғалтқыштар көбінесе қарапайым мәтіндік командалық интерфейске ие, ал GUI түрлі піше жиынтығын, тақта стилін, тіпті 3D немесе анимациялық пішелерді ұсына алады. Жақындағы қозғалтқыштардың мүмкіндіктері жоғары болғандықтан, олар немесе GUI ойыншының жеңіс мүмкіндігін арттыру үшін қозғалтқыштың қабілетін шектеудің әртүрлі тәсілдерін ұсынады. Universal Chess Interface (UCI) форматындағы Fritz немесе Rybka сияқты қозғалтқыштарда қозғалтқыштың Elo рейтингін төмендетуге арналған құрастырылған механизмдер болуы мүмкін (UCI-дің uci limitstrength және uci elo параметрлері арқылы). Fritz-дің кейбір нұсқаларында ағымдағы қозғалтқышты шектеуге, қателіктер пайызын өзгертуге немесе оның стилін өзгертуге мүмкіндік беретін «Мүгедектік және ойын режимі» бар. Фрицтің «Достық режимде» ойын кезінде ойыншының деңгейіне бейімделуге тырысатын мүмкіндігі бар. Шахмат деректер базалары пайдаланушыларға тарихи ойындардың үлкен кітапханасын іздеуге, оларды талдауға, статистиканы тексеруге және дебюттік репертуар құруға мүмкіндік береді. Chessbase (PC үшін) – кәсіби ойыншылар арасында осы мақсаттар үшін кең таралған бағдарлама, бірақ Windows, Mac немесе Linux үшін Shane's Chess Information Database (Scid), PC үшін Chess Assistant, Android үшін Gerhard Kalab's Chess PGN Master немесе iOS үшін Giordano Vicoli's Chess Studio сияқты баламалары да бар. Playchess сияқты бағдарламалар ойыншыларға интернет арқылы бір-бірімен ойнауға мүмкіндік береді. Шахматты оқыту бағдарламалары шахматқа үйретеді. Chessmaster IM Джош Уэйтскин мен GM Ларри Кристиансеннің оқулықтарымен жабдықталған. Стефан Мейер Кален Роб Бруния мен Кор Ван Виджерденнің Step оқулықтарына негізделген Shredder Chess Tutor ұсынады. Бұрынғы әлем чемпионы Магнус Карлсеннің Play Magnus компаниясы Android және iOS үшін Magnus Trainer қосымшасын шығарды. Chessbase балаларға арналған Fritz және Chesster бағдарламаларын ұсынады. Convekta GM Александр Калинин мен Максим Блохтың оқулықтарына негізделген CT ART және Chess King сияқты көптеген оқу бағдарламаларын ұсынады. Шахмат есептеуіштерін шешуге арналған бағдарламалық құралдар да бар.

Компьютерлер мен адамдар

1957 жылы Карнеги Меллон университетінің командасы альфа-бета кесуді – «жалғандықты жоққа шығару» әдісін қолданғаннан кейін, 1967 жылы компьютер әлем чемпионы адамды жеңеді деп болжады. Олар қимылдарды бағалаудың дұрыс реттілігін анықтаудың қиындығын ескермеді. Зерттеушілер бағдарламалардың басқа тармақтарды бағалау кезінде қайта қарастыру үшін жоғары ұпай жинаған «өлтіруші эвристикаларды» анықтау қабілетін жақсартуға тырысты, бірақ 1970-ші жылдарға дейін ең үздік шахматшылар компьютерлердің жақын арада шеберлік деңгейінде ойнай алмайды деп сенді. 1968 жылы Халықаралық шебер Дэвид Леви он жыл ішінде оны ешқандай компьютер жеңе алмайтынына белгілі ставка жасады, ал 1976 жылы Индиана университетінің аға шебері және психология профессоры Элиот Хёрст «қазіргі компьютерлік бағдарламаның шебер ойыншыға қарсы бір ойын жеңуінің жалғыз жолы – шебердің, мүмкін, бір мезгілде 50 ойын ойнап жатып, мас күйінде бір рет қателік жасауы» деп жазды. 1970-ші жылдардың соңында шахмат бағдарламалары кенеттен өте білікті адам ойыншыларын жеңе бастады. Хёрст мәлімдеген жылы, Пол Массонның американдық шахмат чемпионатының B класындағы Норт-Уэстерн университетінің Chess 4.5 адамдар турнирінде бірінші болып жеңіске жетті. Леви 1978 жылы Chess 4.7 есебімен жеңіске жетті, бірақ ол турнир деңгейінде шеберлік сыныптың ойыншысына қарсы алғашқы компьютерлік жеңіске жетіп, алты ойынның бірінде жеңіске жетті. 1980 жылы Belle Мастерлерді жиі жеңе бастады. 1982 жылы екі бағдарлама Мастер деңгейінде ойнады және үшеуі сәл әлсіз болды. Теориялық жетістіксіз кенеттен жақсару күтпеген жағдай болды, өйткені көптеген адамдар Belle-дің секундына 100 000 позицияны тексеру қабілеті – шамамен сегіз қабат – жеткілікті болады деп күтпеген. Сәтті микрокомпьютерлік бағдарламаны – Sargon-ды жасаған Спраклендер, жақсартудың 90% -ы бағалау жылдамдығынан, ал тек 10% -ы бағалаудың жақсаруынан деп есептеді. New Scientist журналында 1982 жылы айтылғандай, компьютерлер «шахматты өте нашар, тиімсіз, шашыраңқы және жай ғана сұмдықпен ойнайды», бірақ адамдар оларға «жаман қателесулер, таңғажайып қателіктер, түсініксіз қателіктер, үлкен қателіктер және осыған ұқсас» олар ойлағаннан әлдеқайда жиі жасауы арқылы жеңіліске ұшырады; «қысқаша айтқанда, компьютерлер ең алдымен адамның бастамаларындағы қателіктерді табу және пайдалану қабілеті арқылы жеңіске жетеді». 1982 жылы Солтүстік Америка компьютерлік шахмат чемпионатында Монро Ньюборн шахмат бағдарламасы бес жыл ішінде әлем чемпионы болатынын болжады; турнир директоры және Халықаралық шебер Майкл Вальво он жыл болжады; Спраклнздер 15-ті болжады; Кен Томпсон 20-дан астамды болжады; және басқалары бұл ешқашан болмайды деп болжады. Алайда, ең көп тараған пікір бойынша, бұл 2000 жылдың шамасында болады. 1989 жылы Леви көрсету матчында Deep Thought командасынан жеңілді. Дегенмен, Deep Thought әлі де әлем чемпионатының деңгейінен төмен болды, өйткені әлем чемпионы Гари Каспаров 1989 жылы екі күшті жеңіске жетті. 1996 жылы IBM-нің Deep Blue командасымен болған матчта ғана Каспаров өзінің алғашқы ойынын Deep Blue мен Каспаров арасындағы турнирдегі уақыт бақылауында компьютерден жоғалтты. Бұл ойын, шын мәнінде, әлем чемпионы компьютерден қалыпты уақыт бақылауын пайдаланып жеңілген бірінші ойын болды. Алайда Каспаров үш ойын жеңіп, қалған бес ойынның екеуінде тең ойнады. 1997 жылдың мамыр айында Deep Blue-ның жаңартылған нұсқасы Каспаровты қайтару матчында 3½–2½ жеңді. 2003 жылы «Ойын аяқталды: Каспаров және машина» атты қарсыластық туралы деректі фильм түсірілді. Өңдеу қуатының артуы және бағалау функцияларының жақсаруы саяхатта қолданылатын жұмыс станцияларында жұмыс істейтін шахмат бағдарламалары жоғарғы деңгейдегі ойыншылармен бәсекелесе бастады. 1998 жылы «Төңкеріш 10» командасы әлемдегі екінші орынды иеленген Висванатан Анандты 5–3 ұпаймен жеңді. Алайда, бұл ойындардың көпшілігі қалыпты уақыт бақылауында өткізілген жоқ. Сегіз ойынның төртеуі жарық ойындар болды (әр қимыл үшін бес минут пен бес секунд Фишердің кешігуі); бұл бүлікшілер 3–1 жеңді. Екі жартылай жарық ойындар (әр тарап үшін он бес минут) болды, олар да жеңіске жетті (1½–½). Соңында екі ойын тұрақты турнирлік ойындар ретінде өткізілді (екі сағат ішінде қырық қимыл, бір сағат кенеттен өлім); мұнда Ананд жеңіп алды (½–1½). Тез ойында компьютерлер адамдардан жақсы ойнады, бірақ классикалық уақыт бақылауында ойыншының рейтингі анықталатын артықшылық соншалықты айқын емес еді. 2000-жылдардың басында Junior және Fritz сияқты коммерциялық бағдарламалар бұрынғы әлем чемпионы Гари Каспаровқа және классикалық әлем чемпионы Владимир Крамникке тең матчтарды өткізе алды. 2002 жылдың қазанында Владимир Крамник пен Deep Fritz «Brains in Bahrain» матчында екі ойын тең ойнады. Крамник 2 және 3 ойындарында «дәстүрлі» компьютерге қарсы тактиканы қолданды – компьютер көре алмайтын ұзақ мерзімді артықшылық үшін консервативті ойнау. Fritz, алайда, Крамник жасаған ауыр қателікке байланысты 5-ші ойында жеңіске жетті. 6-шы ойын турнир комментаторлары «керемет» деп сипаттады. Крамник, ерте орта ойында жақсырақ жағдайда болғанда, компьютерлердің ең күшті қорғаныс көрсететін шабуылға қол жеткізу үшін бір пішені құрбан етуге тырысты. Күтілгендей, Fritz қатесіз қорғаныс тапты және Крамник шабуылы сәлсізденіп, оны жаман жағдайда қалдырды. Крамник ойынды жеңіліске ұшырады, жағдайдың жоғалғанына сенді. Алайда, ойыннан кейінгі адам және компьютерлік талдау көрсеткендей, Fritz бағдарламасы жеңіске жетуі екіталай болды және Крамник тиімді түрде тең жағдайды құрбан етті. Соңғы екі ойын тең аяқталды. Қазіргі жағдайды ескеретін көптеген комментаторлар Крамник матшта күшті ойыншы деп санайды. 2003 жылдың қаңтарында Каспаров Нью-Йорк қаласында Junior, тағы бір шахматтық компьютерлік бағдарламамен ойнады. Матч 3–3 аяқталды. 2003 жылдың қарашасында Каспаров X3D Fritz-бен ойнады. Матч 2–2 аяқталды. 2005 жылы Hydra, арнайы шахматтық компьютер, арнайы аппараттық құралдармен және алпыт төрт процессормен жабдықталған және 2005 жылғы 14-ші IPCCC жеңімпазы, жетінші орындағы Майкл Адамсты 5½–½ есебімен жеңді (дегенмен Адамстың 2002 жылғы серияға қарағанда дайындығы нашар болды). 2006 жылдың қараша-желтоқсан айларында әлем чемпионы Владимир Крамник Deep Fritz-бен ойнады. Бұл жолы компьютер жеңіске жетті; матч 2–4 аяқталды. Крамник компьютердің ашылу кітабын көре алды. Бірінші бес ойында Крамник ойынды әдеттегі «компьютерге қарсы» позициялық бәсекеге бағытталды. Ол бір ойынды ұтып алды (бір қадамдық матты жіберіп алды) және келесі төрт ойында тең ойнады. Соңғы ойында матчты теңдету үшін Крамник агрессивті Сицилиялық қорғанысын ойнады және ойсырап қалды. 2006 жылғы Крамник-Deep Fritz матчының нәтижесінде адам-компьютер шахмат бәсекесіне қызығушылық азайды деген болжамдар пайда болды. Мысалы, Ньюборнның пікірінше, «ғылым аяқталды». Адам-компьютер шахмат матчтары 1990-жылдардың соңында ең жақсы компьютерлік жүйелер адам шахмат чемпиондарын басып өтуін көрсетті. Оған дейінгі 40 жыл ішінде ең жақсы машиналар Elo рейтингінде жылына шамамен 40 ұпайға, ал ең жақсы адамдар шамамен 2 ұпайға өсті. Компьютердің адамдармен бәсекеде алған ең жоғары рейтингі – 1988 жылы Deep Thought-тың USCF рейтингі 2551 болды және FIDE енді адам-компьютер нәтижелерін өз рейтингілік тізімдеріне қабылдамайды. Машиналардың рейтингін анықтау үшін арнайы машиналық Elo жинақтары құрылды, бірақ мұндай сандар сырт көрінісіне қарамастан, тікелей салыстырылмайды. 2016 жылы Швеция шахматтық компьютер қауымдастығы Komodo бағдарламасын 3361 рейтингімен бағалады. Шахмат қозғалтқыштары жақсаруын жалғастыруда. 2009 жылы нашар аппараттық құралдарда жұмыс істейтін шахмат қозғалтқыштары гроссмейстер деңгейіне жетті. Ұялы телефон 2898 өнімділік рейтингімен 6-санатты турнирде жеңіске жетті: Pocket Fritz 4 ішіндегі Hiarcs 13 шахмат қозғалтқышы...

Графикалық пайдаланушы интерфейсі

Компьютерлік шахмат бағдарламалары әдетте бірқатар де-факто стандарттарды қолдайды. Бүгінгі бағдарламалардың көбісі ойын қозғалыстарын Портативті ойын нотациясы (PGN) түрінде оқи және жаза алады, ал жеке позицияларды Форсайт-Эдвардс нотациясы (FEN) түрінде оқи және жаза алады. Ескі шахмат бағдарламалары көбінесе тек ұзын алгебралық нотацияны ғана түсінетін, бірақ қазіргі қолданушылар шахмат бағдарламаларының стандартты алгебралық шахмат нотациясын түсінуін күтеді. 1990 жылдардың соңынан бастап бағдарламашылар жеке қозғалтқыштарды (позициядағы ең күшті қозғалысты есептейтін командалық қатар интерфейсі бар) немесе ойыншыға шахмат тақтасын көрсететін және фигураларды жылжытуға мүмкіндік беретін графикалық пайдаланушы интерфейсін (GUI) жасауды бастады. Қозғалтқыштар өз қозғалыстарын GUI-ге Шахмат қозғалтқышының коммуникациялық протоколы (CECP) немесе Универсалды шахмат интерфейсі (UCI) сияқты протоколдар арқылы жібереді. Шахмат бағдарламаларын осы екі бөлікке бөлу арқасында әзірлеушілер тек пайдаланушы интерфейсін немесе тек қозғалтқышты жаза алады, бағдарламаның екі бөлігін де жазу қажеттілігі болмайды. (Шахмат қозғалтқышын да қараңыз.) Әзірлеушілер қозғалтқышты бастапқы кітапханаға және/немесе ойын соңының базасына қосуды немесе оны графикалық пайдаланушы интерфейсіне қалдыруды шешуі керек.

Басқарма өкілдіктері

Шахмат позициясын бейнелеуге қолданылатын дерек құрылымы, қозғалыс жасау мен позицияны бағалаудың тиімділігі үшін өте маңызды. Әдістерге массивтерде ("пошта жәшігі" және "0x88"), тізімдерде ("бөлшектер тізімі") сақталатын фигуралар, фигуралардың орналасуын көрсету үшін бит жиынтықтары ("битбордтар"), сондай-ақ ұзақ мерзімді сақтау үшін Хаффман кодымен кодталған позициялар жатады.

Іздеу әдістері

Компьютерлік шахмат бағдарламалары шахмат қозғалыстарын ойын ағашы ретінде қарастырады. Теория бойынша, олар барлық қозғалыстарды, содан кейін оларға жасалған барлық қайыр қозғалыстарды, одан кейін оларға қарсы қозғалыстарды және т.б. қарастырады, мұнда бір ойыншының әрбір жеке қозғалысы "плай" деп аталады. Бұл бағалау белгілі бір максималды іздеу тереңдігіне дейін немесе бағдарлама соңғы "жапырақ" позициясына жеткенін анықтайды (мысалы, пат).

Ең аз іздеу

Компьютерлік шахматта қолданылатын іздеу алгоритмдерінің бір түрі – минимакс іздеу алгоритмдері, онда әр қабатта ойыншының «ең жақсы» қозғалысы таңдалады; бір ойыншы ұпайды максималдандыруға, ал екіншісі – азайтуға тырысады. Осы алмасу процесі арқылы, бағалауы позицияның ізделген мәнін көрсететін нақты бір терминалдық түйінге жетеді. Оның мәні түбірге дейін қайтарылады, және бұл бағалау тақтадағы позицияның бағасына айналады. Осы іздеу процесі минимакс деп аталады. Минимакс алгоритмінің қарапайым іске асырылуы нақты уақыт ішінде тек аз тереңдікке дейін іздеуге мүмкіндік береді, сондықтан жақсы қозғалыстарды іздеуді жылдамдату үшін түрлі әдістер ойлап табылды. Альфа-бета кесу, іздеу нәтижелерінің жоғарғы және төменгі шектерін анықтап, шектер сәйкес келгенше іздеу жүйесі, бағдарламаның іздеу кеңістігін азайту үшін әдетте қолданылады. Сонымен қатар, түрлі селективті іздеу эвристикалары, мысалы, тыныштық іздеу, алға кесу, іздеу кеңейтулері және іздеуді қысқартулар да қолданылады. Бұл эвристикалар белгілі бір шарттарға сүйене отырып, анық жаман қозғалыстарды (тарихи қозғалыстарды) жоюға немесе қызықты түйіндерді зерттеуге тырысады (мысалы, шахтыны тексеру, жетінші қатардағы өткен пешкаларды және т.б.). Дегенмен, бұл селективті іздеу эвристикаларын өте сақтап қолдану керек. Тым көпке созған жағдайда бағдарлама қызықты емес позицияларды қарауға тым көп уақыт жұмсайды. Егер тым көп бөлігі кесілсе немесе азайтылса, қызықты түйіндерді жоғалту қаупі бар.

Монте-Карлодағы ағаш іздеу

Монте-Карло ағаштарын іздеу (MCTS) – іздеу кеңістігінің кездейсоқ үлгілерін алу арқылы іздеу ағашын кеңейтетін эвристикалық іздеу алгоритмі. Компьютерлік шахматта кеңінен қолданылатын Монте-Карло ағаштарын іздеудің бір түрі – ПУКТ (PUCT), болжамдағыш және жоғарғы сенімділік шектерінің ағаштарға қолданылуы. DeepMind-тың AlphaZero және Leela Chess Zero бағдарламалары minimax орнына MCTS-ті пайдаланады. Мұндай жүйелер бағалау функцияларын және стратегияны (қозғалысты таңдау) есептеу үшін графикалық процессорларда (GPU) жинақтық өңдеуді қолданады, сондықтан есептеулер GPU-да қатар орындалғандықтан, параллель іздеу алгоритмі қажет. Компьютерлік шахматта қолданылатын минимакс және альфа-бета қиып тастау алгоритмдері өзінен-өзі сериялық алгоритмдер болып табылады, сондықтан GPU-да жинақтық өңдеумен тиімді жұмыс істемейді. Ал MCTS жақсы балама болып табылады, себебі Монте-Карло ағаштарын іздеуде қолданылатын кездейсоқ үлгілеу параллель есептеуге өте ыңғайлы, сондықтан GPU-да есептеулерді қолдайтын барлық жүйелер альфа-бетаның орнына MCTS-ті қолданады.

Басқа оңтайландырулар

Шахмат ойнау бағдарламаларын күшейту үшін тағы да көптеген оңтайландырулар қолданылуы мүмкін. Мысалы, транспозиция кестелері бұрын бағаланған позицияларды жазу үшін пайдаланылады, осылайша оларды қайта есептеу қажеттілігінен сақтайды. Жалғызтартпа кестелері жақсы қадам сияқты көрінетін нәрсені "нақ өсекке" шығаратын маңызды қадамдарды тіркейді; мұндай қадамдар әдетте түрлі позицияларда бірінші болып тексеріледі (бір позицияны нақ өсекке шығаратын қадам, басқасын да шығаруы мүмкін). Бірақ мұның бір кемшілігі бар – терең іздеу деңгейлеріндегі транспозиция кестелерінің көлемі ондағаннан жүздеген миллион жазбаға дейін жетеді. Мысалы, IBM-нің Deep Blue бағдарламасындағы 1996 жылғы транспозиция кестесі 500 миллион жазбадан тұрды. Транспозиция кестелері тым кішкентай болса, табылған жазбалардың арқасында үнемделген уақыттан гөрі, жоқ жазбаларды іздеуге көбірек уақыт жұмсалуы мүмкін (мұны "үгітілу" деп атайды). Көптеген шахмат қозғалтқыштары ойлануды қолданады, яғни қарсыластың уақытында тереңірек іздеу жасайды, адамдар сияқты, осы арқылы олардың ойын күшін арттырады. Әрине, жылдам жабдық пен қосымша жад шахмат бағдарламасының ойын күшін жақсарта алады. Гипертізбектелі архитектуралар бағдарлама бір немесе бірнеше ядрода жұмыс істесе, өнімділікті шамалы түрде арттыра алады. Көптеген қазіргі заманғы бағдарламалар параллель іздеуді жүзеге асыру үшін бірнеше ядроны пайдалануға арналған. Ал кейбір бағдарламалар жалпы мақсаттағы компьютерде жұмыс істеуге және қадамдарды жасауды, параллель іздеуді немесе бағалауды арнайы процессорларға немесе мамандандырылған копроцессорларға жүктеуге арналған.

Тарих

Іздеу туралы алғашқы мақала Клод Шеннонның 1950 жылы жазған еңбегі болды. Ол шахмат ойнауға компьютерді бағдарламалаудан бұрын, "А" және "В" типтері деп атаған екі негізгі іздеу стратегиясын болжады. "А" типті бағдарламалар "күшпен іздеу" әдісін қолданып, таза наивті минимакс алгоритмін пайдалана отырып, белгіленген сандағы қимылдар үшін барлық мүмкін жағдайларды қарастырады. Шеннон бұл екі себеппен мүмкін емес деп ойлады. Біріншіден, нақты өмірдегі қалыпты жағдайда шамамен отыз қимыл мүмкін болғандықтан, ол екі жақты үш қимылды (алты қабатты) алға қарай қараумен байланысты шамамен 109 позицияны іздеудің шамамен он алты минутқа созылатынын күтті, тіпті шахмат компьютері әр секунд сайын миллион позицияны бағалайтын "өте оптимистік" жағдайда да. (Бұл жылдамдыққа жету үшін қырық жылға жуық уақыт кетті. Кейінірек пайда болған альфа-бета кесу алгоритмі, мүмкін болатын іздеу нәтижелерінің жоғарғы және төменгі шектерін анықтау және шектер сәйкес келгенше іздеу жүйесі, ойын ағашының тармақталу факторларын логарифмдік түрде азайтты, бірақ сол кездегі шахмат бағдарламалары үшін ағаштың экспоненциалдық өсуін пайдалану мүмкін емес еді. Екіншіден, ол тыныштандыру мәселесін ескермеді, тек фигураларды айырбастаудың немесе басқа маңызды қимылдар ("жолдар") тізбегінің соңында болатын позицияны бағалауға тырысты. Ол осыған сай минимакс алгоритмін бейімдеу қарастырылуы тиіс позициялар санын арттырып, бағдарламаны одан әрі баяулатады деп күтті. Ол "А" типін осыған бейімдеу қарастырылуы тиіс позициялар санын арттырып, бағдарламаны одан әрі баяулатады деп күтті. Бұл табиғи түрде "таңдамалы іздеу" немесе "В типті іздеу" деп аталатын нәрсеге әкелді, шахмат білімін (эвристика) пайдаланып, іздеу үшін әр позициядан бірнеше жақсы қимылдарды таңдап, қалғандарын іздеусіз кесіп тастады. Жаман немесе тривиальды қимылдарды тексеру үшін процессорлық қуатты ысырап етудің орнына, Шеннон "В" типті бағдарламалар екі жақсартуды қолданатынын ұсынды: Тыныштандыру іздеуін қолдану. Алға қарай кесуді қолдану, яғни әр позиция үшін бірнеше жақсы қимылдарды қарастыру. Бұл оларға болашақты ("тереңдікті") қарауға мүмкіндік береді. Алайда, таңдамалы іздеудің алғашқы әрекеттері көбінесе ең жақсы қимылдарды кесіп тастаумен аяқталды. Нәтижесінде, келесі 25 жыл ішінде таңдамалы іздеу парадигмасының алғашқы ітерілісі басым болғандықтан, аз немесе еш прогресс жасалмады. Бұл ерте кезеңде шығарылған ең жақсы бағдарлама 1967 жылы Mac Hack VI болды; ол орташа әуесқоймен (АҚШ Шахмат федерациясының рейтингтік шкаласындағы C классы) шамамен бірдей деңгейде ойнады. Осы арада аппараттық жабдықтар жақсара берді, ал 1974 жылы алғашқы рет Солтүстік-Батыс университетінің Шахмат 4.0 бағдарламасында күшпен іздеу жүзеге асырылды. Бұл тәсілде түйіндегі барлық баламалы қимылдар іздестіріледі және ешқайсысы да кесілмейді. Олар барлық қимылдарды іздеу үшін қажетті уақыт, тек бірнеше қимылдарды таңдау үшін білімді қажет ететін эвристиканы қолдану үшін қажетті уақыттан әлдеқайда аз екенін анықтады, ал жақсы қимылдарды ертерек немесе байқаусыз кесудің болжамды пайдасы айтарлықтай күшті нәтижеге әкелді. 1980 және 1990 жылдары таңдамалы іздеу парадигмасында, ақыры, тыныштандыру іздеуі, нөлдік қимыл кесу және басқа да заманауи таңдамалы іздеу эвристикасының дамуымен жетістіктер жасалды. Бұл эвристиканың қателері бұрынғы эвристикаға қарағанда әлдеқайда аз болды және ол үнемделген қосымша уақытқа тұрарлық екені анықталды, өйткені ол тереңірек іздеуге мүмкіндік берді және көптеген қозғалтқыштар тарапынан кеңінен қабылданды. Көптеген заманауи бағдарламалар альфа-бета іздеуін іздеу алгоритмі үшін негіз ретінде қолданса, заманауи бағдарламаларда қолданылатын бұл қосымша таңдамалы іздеу эвристикасы бағдарлама енді "күшпен іздеуді" жасамайтынын білдіреді. Оның орнына, олар осы таңдамалы іздеу эвристикасына сүйеніп, бағдарлама жақсы деп санайтын жолдарды кеңейтеді және бағдарлама жаман деп санайтын жолдарды кесіп, қысқартады, іздеу ағашының түйіндерінің көпшілігі кесіліп тасталған, бұл заманауи бағдарламаларға өте терең іздеуге мүмкіндік береді. 2006 жылы Реми Кулом Монте-Карло ағаштарын іздеуді, "В" типті таңдамалы іздеудің басқа түрін жасады. 2007 жылы Левенте Коксис пен Чаба Сзепешвари ағаштарға қолданылатын жоғарғы сенімділік шекаралары, немесе қысқаша UCT деп аталатын Монте-Карло ағаштарын іздеудің бейімделуін жасады. 2011 жылы Крис Розин UCT-ның Predictor + Upper Confidence Bounds деп аталатын вариациясын жасады. PUCT кейін 2017 жылы AlphaZero-да, ал 2018 жылы Leela Chess Zero-да қолданылды.

Білім мен іздеу (процессор жылдамдығы)

1970 жылдары шахмат бағдарламаларының көпшілігі Control Data Cyber 176 немесе Cray 1 сияқты суперкомпьютерлерде іске қосылды, бұл компьютерлік шахматтың даму кезеңінде өнімділікті шектейтін фактор процессорлық қуат екенін көрсетеді. Көптеген шахмат бағдарламалары 3 қадамнан артық тереңдікке іздеуге тырысты. Тек 1980 жылдардағы арнайы шахмат машиналары процессордың жылдамдығы мен бағалау функциясында сақталған білім арасындағы байланысты анық көрсетті. Компьютердің жылдамдығын екі есе арттыру шамамен 50-70 Эло ұпайымен ойын күшін арттырады деп есептеледі.

Жапырақтарды бағалау

Шахматтың көпшілік позицияларында компьютерлер барлық мүмкін соңғы позицияларды алдын ала көре алмайды. Оның орнына, олар бірнеше қадамды алға қарап, «жапырақтар» деп аталатын мүмкін болатын позицияларды салыстыруы керек. Жапырақтарды бағалайтын алгоритм «бағалау функциясы» деп аталады, және бұл алгоритмдер әртүрлі шахмат бағдарламаларында көбінесе өте әртүрлі болады. Бағалау функциялары әдетте позицияны пешканың жүзден бір бөлігімен (центіпешка деп аталады) бағалайды, мұнда конвенция бойынша оң баға Аққа, ал теріс баға Қараға қолайлы. Дегенмен, кейбір бағалау функциялары центіпешканың орнына жеңіс/теңдік/жеңіліс пайызын көрсетеді. Тарихи тұрғыдан алғанда, қолмен жасалған бағалау функциялары әр тараптың күшін анықтайтын басқа факторлармен қатар материалдық құндылықты ескереді. Әр тараптың материалы есептелгенде, фигуралардың стандарттық құндылығы: пешка – 1 ұпай, ат немесе слон – 3 ұпай, мұнара – 5 ұпай, патшайым – 9 ұпай. (Шахмат фигураларының салыстырмалы құнын қараңыз.) Патшаға кейде Шеннонның еңбегінде көрсетілгендей, 200 ұпай сияқты өте жоғары мән беріледі, бұл маттың басқа барлық факторлардан маңыздырақ екенін қамтамасыз етеді. Фигуралардың ұпайларынан басқа, көптеген қолмен жасалған бағалау функциялары пешка құрылымы, екі слонның көбінесе құндырақ екендігі, орталықтандырылған фигуралардың артықшылығы сияқты көптеген факторларды ескереді. Патшаны қорғау, сондай-ақ ойынның кезеңі (дебют, миттельшпиль немесе эндшпиль) де қарастырылады. Текселді бұру, стохастикалық градиенттік түсіру немесе күшейту оқыту сияқты машиналық оқыту әдістері қолмен жасалған бағалау функцияларын оңтайландыру үшін көбінесе қолданылады. Көптеген қазіргі заманғы бағалау функциялары нейрондық желілерді пайдаланады. Бүгінгі таңда ең көп қолданылатын бағалау функциясы – тиімді жаңартылатын нейрондық желі, оның кірістері фигуралық квадраттық кестелер болып табылады. Фигуралық квадраттық кестелер – шахмат тақтасының квадраттарына сәйкес келетін 64 мәннің жиынтығы, әдетте әр фигура мен түс үшін бір квадраттық кесте болады, нәтижесінде 12 квадраттық кесте және осылайша нейрондық желіге 768 кіріс түседі. Сонымен қатар, кейбір шахмат қозғалтқыштары бағалау функциясында терең нейрондық желілерді қолданады. Нейрондық желілер әдетте күшейту оқыту алгоритмімен, қадағалаулы оқытумен немесе қадағалаусыз оқытумен бірлесіп оқытылады. Бағалау функциясының нәтижесі – центіпешкада немесе басқа бірліктерде квантталған бір скаляр шама, ол қолмен жасалған бағалау функциялары үшін сипатталған әртүрлі факторлардың салмақтық қосындысы, ал нейрондық желіге негізделген бағалау функциялары үшін – нейрондық желінің «бас» бөлігінен шығарылатын нәтиже. Бағалау, егер ағаш толыққанша ізделген болса, яғни ойын аяқталғанша ізделген болса, бағаланған түйіндің төменгі кіші ағашының мәнін көрсетеді немесе жуықтап бағалайды. Іздеу кезінде бағалау басқа жапырақтардың бағалауларымен салыстырылады, екі тараптың да нашар немесе дұрыс емес қимылдарын көрсететін түйіндер алынып тасталады, нәтижесінде конвергенция арқылы екі тараптың да ең жақсы ойынымен позицияның мәнін көрсететін түйін табылады.

Ойын аяқтау кестелері

Ойын соңы ұзақ уақыт бойы шахмат бағдарламаларының үлкен кемшілігі болды, себебі терең іздеу қажеттілігі туындады. Кейбір шеберлік деңгейіндегі бағдарламалар тіпті орташа ойыншылардың жеңіске жете алатын позицияларда жеңіске жете алмайтын. Бұл мәселені шешу үшін компьютерлер шахматтың кейбір ойын соңдағы позицияларын толық талдау үшін пайдаланылды, бастапқыда патша және пешкаға қарсы патшадан бастап. Мұндай ойын соңы үстелдері ретроградты талдаудың бір түрін қолдана отырып, алдын ала жасалады, соңғы нәтиже белгілі болған позициялардан басталады (мысалы, бір жақтың матталған жері) және олардан бір қадам қашықтықтағы басқа позициялар, содан кейін олардан бір қадам қашықтықтағылар және т.б. анықталады. Кен Томпсон осы саладағы пионер болды. Компьютерлік талдаудың нәтижелері кейде адамдарды таңқалдырды. 1977 жылы Томпсонның "Бель" шахмат машинасы патша және мұнараға қарсы патшайым және патша үшін ойын соңы үстелін пайдаланды және бірнеше шеберлерге қарсы теориялық жеңіліске ұшыраған аяқтауды теңдетуге қол жеткізді (Филидор позициясын қараңыз #Патшайымға қарсы мұнара). Бұл, қорғаныстағы патша мен мұнараны мүмкіндігінше ұзақ уақыт жақын ұстап, жеңілісті кешіктірудің әдеттегі стратегиясына қайшы болды. Бағдарламаның кейбір қимылдарының себептерін түсіндіруді сұрағанда, Томпсон бағдарламаның дерекқоры жай ғана ең жақсы қимылдарды қайтарады деп айта алмады. Көптеген гроссмейстерлер патшайымға қарсы мұнара ойын соңында компьютермен ойнаудан бас тартты, бірақ Уолтер Браун бұл шақыруды қабылдады. Патшайымның трицат қадамда жеңе алатын позиция құрылды. Браунға 50 қадам ойнауға 2,5 сағат уақыт берілді, әйтпесе 50 қадам ережесі бойынша теңдік жарияланады. 45 қадамнан кейін Браун теңдікке келісті, келесі бес қадамда шахматты мәжбүрлей алмады немесе мұнараны жеңе алмады. Соңғы позицияда Браун әлі де 17 қадамнан кейін шахматқа жете алатын, бірақ мұнараны жеңуге де жақын болды. Браун ойын соңын зерттеді және бір аптадан кейін компьютермен басқа позицияда қайта ойнады, онда патшайым трицат қадамда жеңіске жете алады. Бұл жолы ол 50-ші қадамда мұнараны басып алды, оған жеңімпаздық позициясын берді. Көптен бері жеңіске жетуге болатын басқа позициялар, кемелді ойынмен жеңу үшін шахматтың 50 қадам ережесінен көп қадамдар қажет екенін көрсетті. Нәтижесінде, бірнеше жыл бойы шахматтың ресми FIDE ережелері осы аяқтамаларда рұқсат етілген қадамдар санын ұзарту үшін өзгертілді. Біраз уақыттан кейін ереже барлық позицияларда 50 қадамға қайтарылды, одан да көп позициялар ашылды, бұл ережені одан әрі қиындатты, бірақ бұл адам ойынында ешқандай айырмашылық тудырмады, себебі олар позицияларды мінсіз ойнай алмады. Жылдар бойы басқа да ойын соңы деректер базасы форматтары шығарылды, соның ішінде Эдвард үстелі, Де Конинг деректер базасы және Налимов үстелі, оны Rybka, Shredder және Fritz сияқты көптеген шахмат бағдарламалары пайдаланады. Барлық позицияларға арналған алты фигуралық үстелдер бар. Марк Бурзуцкий және Яков Коновал жеті фигуралық ойын соңын талдады. Мәскеудегі Ломоносов суперкомпьютерлерін пайдаланатын бағдарламалаушылар жеті немесе одан аз фигуралы барлық ойын соңына арналған шахмат үстелін жасады (тривиальды ойын соңы позициялары алынып тасталды, мысалы, алты ақ фигура қара патшаға қарсы). Осы ойын соңы деректер базасында бұдан былай қамал салу мүмкін емес деп есептеледі. Көптеген үстел базалары 50 қадам ережесін қарастырмайды, оның негізінде 50 қадамнан кейін тұтқынға алу немесе пешканы жылжырусыз өткен ойынды кез-келген ойыншы тең деп санауы мүмкін. Бұл кейбір позицияларда үстел базасының "66 қадамда мәжбүрлі мат" сияқты нәтижелерді қайтаруына әкеледі, олар шын мәнінде 50 қадам ережесіне байланысты тең болар еді. Мұның бір себебі - шахмат ережелері тағы бір рет өзгертілсе, мұндай позицияларды жеңуге көбірек уақыт берілсе, барлық үстел базаларын қайта жасау қажет болмайды. Сонымен қатар, үстел базаларын пайдаланатын бағдарлама үшін осы "ерекшелікті" байқау және есепке алу өте оңай, және кез-келген жағдайда, егер ойын соңы үстелін пайдаланса, ең жылдам жеңіске әкелетін қадамды таңдайды (егер ол мінсіз ойналғанда 50 қадам ережесін бұзатын болса да). Егер қарсылас үстел базасын пайдаланбаса, мұндай таңдау 50 қадамның ішінде жеңіске жетудің жақсы мүмкіндіктерін береді. Налимов үстел базалары, соңғы технологияларды қолдана отырып, барлық бес фигуралық аяқтамалар үшін 7,05 ГБ дискілік кеңістік қажет. Барлық алты фигуралық аяқтамаларды қамту үшін шамамен 1,2 ТБ қажет. Жеті фигуралық үстел базасы 50 мен 200 ТБ арасында сақтау кеңістігін қажет етеді деп есептеледі. Ойын соңы деректер базалары 1999 жылы ерекше көзге түсті, қашан Каспаров әлемнің қалған бөлігіне қарсы интернетте көрсету ойынын ойнады. Әлем командасы теңдікті сақтап қалу үшін күрескен жеті фигуралық патшайым және пешка ойын соңына жетті. Евгений Налимов екі жақтың да екі патшайымы бар алты фигуралық аяқтама үстелін жасауға көмектесті, ол екі тараптың талдауына көмектесу үшін кеңінен қолданылды. Ең танымал ойын соңы үстелі - syzygy, ол Stockfish, Leela Chess Zero және Komodo сияқты көптеген жоғары компьютерлік бағдарламалармен қолданылады. Бұл басқа форматтарға қарағанда айтарлықтай кішкентай, жеті фигуралық үстел базалары үшін 18,4 ТБ қажет. Stockfish сияқты қазіргі заманғы шахмат қозғалтқышы үшін үстел базасы ойнау күшіне өте аз үлесе қосады (Stockfish 15 нұсқасы бойынша syzygy 6men үшін шамамен 3 Elo ұпайы).

Ашылу кітабы

Шахматтық бағдарламалар, адамдар сияқты, дискіде сақталған ашылу кітабына сілтеме жасау арқылы өңдеу уақытын үнемдеп, шеберлер түсіндіргендей, күшті вариацияларды таңдай алады. Ашылу кітаптары ойынның бастапқы жүргізілістерін әртүрлі тереңдікке, ашылу мен вариацияға байланысты, бірақ көбінесе алғашқы 10-12 жүргізіліске (20-24 ply) дейін қамтиды. Ашылулар ғасырлар бойы шеберлер тарапынан жан-жақты зерттелгендіктен, ал кейбіреулері орта ойынға дейін белгілі болғандықтан, шеберлердің нақты вариацияларға берген бағасы әдетте бағдарламаның жалпы эвристикасынан жоғары болады. Бір кезде шахмат бағдарламасын өз күшіне салу үшін кітаптан тыс жүргізіліс жасау тиімді стратегия болатын, себебі шахмат ашылу кітаптары бағдарламаның ойын стиліне сәйкес таңдалып алынған, ал бағдарламаларда адамдарға қарағанда айқын кемшіліктер болған. Бірақ қазір бұл дұрыс емес. Компьютерлік деректер базасында сақталған ашылу кітаптары тіпті ең жақсы дайындалған ойыншылардан да кеңірек болуы мүмкін, ал кітаптан ерте жүргізіліс жасау компьютердің кітаптағы ерекше жүргізілісті тауып, қарсыласты күшті кемшілікке ұшыратуы мүмкін. Егер олай болмаса да, кітаптан тыс ойнау тактикалық тұрғыдан өткір шахмат бағдарламалары үшін, тақтада беймәлім вариацияда күшті жүргізілістерді табуға тиіс адамдарға қарағанда әлдеқайда пайдалы болуы мүмкін. Қазіргі заманғы турнирлерде ашылу кітаптары ойынды теңгерімсіз ашылуларға итеру үшін қолданылады, бұл ойынның тең ойнау ықтималдығын азайтуға және ойындарға көбірек әртүрлілік қосуға мүмкіндік береді.

Компьютерлік шахмат рейтингтік тізімдері

CEGT, CSS, SSDF, WBEC, REBEL, FGRL және IPON қозғалтқыштардың күшін салыстыруға мүмкіндік беретін рейтингтік тізімдерді ұстап тұрады. 2020 жылдардың басында Stockfish, Komodo, Leela Chess Zero және Fat Fritz-тің түрлі нұсқалары осы рейтингтік тізімдерде көш бастап тұр. CCRL (Компьютерлік шахмат рейтингтік тізімдері) – компьютерлік шахмат бағдарламаларының күшін оларды бір-бірімен ойнату арқылы анықтайтын ұйым. CCRL 2006 жылы компьютерлік шахмат бәсекелестігін дамыту және нәтижелерді рейтингтік тізімге енгізу мақсатымен құрылды. Ұйым үш түрлі тізімді жүргізеді: 40/40 (әр 40 жүру үшін 40 минут), 40/4 (әр 40 жүру үшін 4 минут) және 40/4 FRC (уақыт бақылауы сол, бірақ Chess960 форматында).

Компьютерлік дәуірге дейінгі кезең

Шахмат ойнайтын машина жасау идеясы он сегізінші ғасырға дейін барады. 1769 жыл шамасында венгр өнертапқышы Фаркас Кемпелен жасаған "Түрік" деп аталған шахмат автоматтары әйгілі болды, бірақ ол алдамшылық екені ашыққа шықты. Цифрлық есептеу техникасы дамығанға дейін, испан инженері Леонардо Торрес Квеведоның 1912 жылы салған El Ajedrecista сияқты автоматтарға негізделген сынақтар, ол патша мен ладьяға қарсы патшаны жеңуді ойнады, толық шахмат ойынын ойнау үшін тым күрделі және шектеулі болды. Механикалық шахматты зерттеу саласы 1950-ші жылдарға дейін, цифрлық компьютерлер пайда болғанға дейін дамымады.

Бағдарламалық жасақтаманың ерте кезеңдері: селективті іздеу және Ботвинник

Содан бері шахматқа увлеськендер мен компьютерлік инженерлер шахмат ойнайтын машиналар мен компьютерлік бағдарламаларды жасады, олардың күрделігі мен табысы артты. Компьютерлік шахматқа адал қызмет еткен аз ғана гроссмейстерлердің бірі – бұл тақырыпта бірнеше еңбек жазған бұрынғы әлем чемпионы Михаил Ботвинник болды. Ботвинниктің компьютерлік шахматқа деген қызығушылығы 1950-жылдары басталды, ол Шеннонның таңдамалы B типі стратегиясына негізделген шахмат алгоритмдерін жақтады, бұл туралы 1958 жылы Макс Эуэмен бірге голланд теледидарында талқыланды. 1960-жылдардың басында Совет Одағында қол жетімді қарапайым аппараттық құралдармен жұмыс істеген Ботвинник бағдарламалық қозғалыс таңдау техникаларын зерттеуге мәжбүр болды; сол кезде тек ең қуатты компьютерлер ғана үш қадамдық толық енді іздеуден асып түсе алды, ал Ботвинникте мұндай машиналар болған жоқ. 1965 жылы Ботвинник АҚШ-КСРО компьютерлік шахмат матчында ITEP командасының консультанты болды, ол 1967 жылы Джон Маккарти басқарған Коток-Маккарти бағдарламасына қарсы корреспонденциялық шахмат матчында жеңіске жетті (Коток-Маккарти туралы қараңыз). Кейін ол Мәскеудегі Бақылау ғылымдары институтында шахмат бағдарламасын жасаған командаға кеңес берді. Ботвинник шахмат шеберінің ойлауын модельдеуге қатысты өз идеяларына ие болды. 1966 жылы Мәскеу Орталық шахмат клубында шабуыл карталары мен траекториялар туралы алғашқы идеяларын жариялап, талқылағаннан кейін, ол Владимир Бутенконы қолдаушы және әріптес ретінде тапты. Бутенко алғаш рет M20 компьютерінде 15x15 векторлық шабуылдар тақтасын бейнеледі, траекторияларды анықтады. 1970 жылы Ботвинник Аймақтар концепциясын енгізгеннен кейін, Бутенко одан әрі ынтымақтастықтан бас тартып, өзінің «Эврика» деп аталатын бағдарламасын жазуға кірісті. 1970-80 жылдары Борис Стилман, Александр Юдин, Александр Резницкий, Михаил Цфасман және Михаил Чудаков басқаратын командамен Ботвинник өзінің «Пионер» атты жасанды интеллектке негізделген шахмат жобасы бойынша жұмыс істеді. 1990-жылдары, 80 жасқа толған Ботвинник «CC Sapiens» жаңа жобасымен айналысты.

Кейінгі бағдарламалық жасақтама дәуірі: толық кеңістікте іздеу

Бір маңызды жетістікке солтүстік-батыс университетінің командасы қол жеткізді, олар шахмат бағдарламалары сериясын жасады және алғашқы үш ACM компьютерлік шахмат чемпионатын (1970–72) жеңіп алды. 1973 жылы олар B типті іздеу әдісінен бас тартты. Соның нәтижесінде пайда болған «Шахмат 4.0» бағдарламасы сол жылғы чемпионатта жеңіске жетті, ал оның ізінен келген бағдарламалар 1974 жылғы ACM чемпионатында және сол жылғы тұңғыш Дүниежүзілік компьютерлік шахмат чемпионатында екінші орын алды. Содан кейін, олар 1975, 1976 және 1977 жылдарғы ACM чемпионаттарында тағы да жеңіс туын көтерді. A типті жүзеге асыру да осыған дейін қаншалықты жылдам болса, дәл солай болды: бұрын қандай қимылдарды іздеуге лайық екенін анықтауға жұмсалатын уақытта, барлық қимылды іздеуге болатын. Шындығында, «Шахмат 4.0» бүгінгі таңға дейін барлық заманауи шахмат бағдарламаларында қолданылып келе жатқан үлгіні орнатты, ал бұл үлгі 1965 жылы ресейлік ITEP институты тарапынан сәтті қолға алынған болатын.

Шахмат машиналарының пайда болуы

1978 жылы Кен Томпсонның Belle шахмат машинасының алғашқы нұсқасы Солтүстік Америка компьютерлік шахмат чемпионатында жеңіске жетіп, сол кездегі көшбасшы Солтүстік-Батыс университетінің Chess 4.7 бағдарламасын басып өтті.

Микрокомпьютерлік революция

Технологиялық прогресс өңдеу қуатын бірнеше есе арттырып, күшпен есептеу әдісін алғашқы жылдарға қарағанда әлдеқайда тиімді етті. Соның нәтижесінде, бағалау функциясы және тармақтау/кесу ережелері арқылы енгізілген шектеулі позициялық білімге ие, өте күшті тактикалық AI ойыншысы әлемдегі ең жақсы ойыншылармен теңесті. Бұл, әсіресе шахмат саласында, компьютерлерді адамның ойлау процестерін және білімін имитациялауға мәжбүрлеудің орнына, олардың ең жақсы жасай алатынын (есептеуді) істеуге мүмкіндік берді, өте жақсы нәтижелерге әкелді. 1997 жылы секундына 500 миллион түйінге дейін тексеруге қабілетті Deep Blue машинасы әлем чемпионы Гарри Каспаровты жеңіп, стандартты уақыт бақылауында компьютердің әлем чемпионын жеңгенінің алғашқы жағдайы болды.

Адамнан жоғары шахмат

2016 жылы NPR сарапшылардан компьютерлік шахмат қозғалтқыштарының ойын стилін сипаттауды сұрады. IBM-нің Мюррей Кэмпбелл: «Компьютерлерде эстетика сезімі жоқ. Олар кез келген позицияда, тіпті ол абсурд көрінсе де, объективті түрде ең жақсы қадам деп санайды және олар қаншалықты нашар болса да, кез келген қадам жасауға қабілетті» деді. Грандмастерлер Эндрю Солтис және Сьюзан Полгар компьютерлердің адамдарға қарағанда жиірек кері шегінетінін айтты. 2020 жылдың жазында тиімді жаңартылатын нейрондық желілер пайда болғанға дейін, нейрондық желілер шахмат қозғалтқыштарында кеңінен қолданылмады. Тиімді жаңартылатын нейрондық желілерді алғаш рет 2018 жылы Ю Насу компьютерлік шогиде жасады, және олар 31 мамыр 2020 жылы Stockfish NNUE деп аталатын Stockfish туындысына портталды, ал 6 тамыз 2020 жылы ресми Stockfish қозғалтқышына енгізілді, содан кейін басқа шахмат бағдарламашылары өз қозғалтқыштарына нейрондық желілерді енгізе бастады. Кейбір адамдар, мысалы, Корольдік қоғамның Венки Рамакришнан, AlphaZero шахмат қозғалтқыштарында нейрондық желілерді кеңінен пайдалануға ықпал еткенін айтады. Дегенмен, AlphaZero аз ғана қозғалтқыштарды нейрондық желілерді пайдалануға бастады, және олар AlphaZero мақаласын қайта жасай алу үшін жасалған Leela Chess Zero сияқты жаңа тәжірибелік қозғалтқыштар болды. AlphaZero-ның бағалау функциясында қолданылған терең нейрондық желілерге қымбат графикалық процессорлар қажет болды, бұл қолданыстағы шахмат қозғалтқыштарымен үйлесімсіз болды. Шахмат қозғалтқыштарының басым көпшілігі тек орталық процессорларды қолданады, ал GPU-да есептеулер мен ақпаратты өңдеу үшін Nvidia-ның CUDA сияқты арнайы кітапханалар қажет, олардың ешқайсысына да қол жеткізілмеді. Осылайша, Komodo және Stockfish сияқты шахмат қозғалтқыштарының басым көпшілігі 2020 жылы компьютерлік шахматқа тиімді жаңартылатын нейрондық желілер портталғанға дейін қолмен жасалған бағалау функцияларын пайдалануды жалғастырды, бұл GPU немесе CUDA сияқты кітапханаларды пайдалануды қажет етпеді. Тіпті содан кейін де, компьютерлік шахматта қолданылатын нейрондық желілер салыстырмалы түрде шалқақ, ал AlphaZero-ның бастамасы болған терең күшейту оқыту әдістері компьютерлік шахматта әлі де сирек кездеседі.

Шахматты шешу

Шахматты толық шешу мүмкіндігі, әдетте, өте шалқақ деп есептеледі. Шахматты шешудің ешқандай есептеу жағынан арзан әдісі жоқ деп кеңінен болжанады, тіпті бастапқы позицияның мәнін анық түрде білудің қарапайым деңгейінде де, сондықтан шахматты екі тарап үшін де мінсіз ойын стратегиясының практикалық қолданылатын сипаттамасын алу арқылы шешу идеясы бүгінде шынайы емес көрінеді. Дегенмен, шахмат позициясындағы ең дұрыс жүруді анықтаудың есептеу жағынан арзан жолының жоқ екені дәлелденбеді, тіпті қазіргі есептеу құралдарында жұмыс істейтін дәстүрлі альфа-бета іздеуші бастапқы позицияны қанағаттанарлық уақыт ішінде шеше алмайды. Соңғысын дәлелдеудің қиындығы мынада: шахмат ойыны барысында пайда болатын тақта позицияларының саны өте көп (кем дегенде 1043-1047 шамасында), ал бастапқы позицияның екі тарапқа да шахмат қоюға немесе үш рет қайталауға мүмкіндік беретінін математикалық тұрғыдан жоққа шығару қиын, мұндай жағдайда іздеу ағашы мүмкін позициялардың жиынтығының өте шағын бөлігін ғана қамтиды. Математикалық тұрғыдан жалпыланған шахматтың (кез келген үлкен тақтада, кез келген санындағы фигуралармен ойналатын шахматтың) EXPTIME толық екені дәлелденді, яғни жалпыланған шахматтың кез келген позициясында жеңімпазды анықтау нашар жағдайда экспоненциалды уақытты қажет етеді; алайда, бұл теориялық нәтиже 8x8 стандартты шахматты шешуге жұмсалатын еңбек көлеміне ешқандай төменгі шек бермейді. Мартин Гарднердің 5x5 тақтада ойналатын Минишахматы, шамамен 1018 мүмкін тақта позициясымен шешілді; оның теориялық мәні 1/2 (яғни, екі тараптың кез келгені теңдікке қол жеткізе алады), және осы нәтижеге жетуге қажетті мәжбүрлеу стратегиясы сипатталды. Басқа жағынан да прогресс байқалды: 2012 жылға қарай, 7 және одан аз (2 патша және 5 басқа фигураға дейін) фигуралы соңғы ойындардың барлығы шешілді.

Шахмат қозғалтқыштары

"Шахмат машинасы" — белгілі бір позицияда қандай қимылдың ең күшті екенін есептеп, оларды реттейтін бағдарламалық қамтамасыз ету. Машина авторлары өз машиналарының ойын деңгейін жақсартуға баса назар береді, көбінесе оларды басқа біреу жасаған графикалық интерфейске (GUI) импорттайды. Машиналар GUI-мен Стефан Майер Кален мен Франц Губер жасаған, қазір кең таралған Универсалды шахмат интерфейсі сияқты стандартталған протоколдар арқылы байланысады. GNU Chess және Winboard үшін Тим Манн жасаған Шахмат машинасының байланыс протоколы сияқты басқа протоколдар да бар. Chessbase-тің өзіне тән протоколы бар, ал бір кезде Millennium 2000 ChessGenius үшін тағы бір протокол қолданған. Бір операциялық жүйе мен протоколға арналған машиналар басқа операциялық жүйелерге немесе протоколдарға көшірілуі мүмкін. Шахмат машиналары арнайы турнирлерде бір-бірімен үнемі сынақтан өтеді.

Шахмат веб-қосымшалары

1997 жылы Интернет шахмат клубы алғашқы Java клиентін шығарды, ол веб-браузерде басқа адамдармен онлайн шахмат ойнауға мүмкіндік берді. Бұл, мүмкін, алғашқы шахмат веб-қосымшаларының бірі болды. Тегін Интернет шахмат сервері де осыған ұқсас клиентпен көп ұзамай пайда болды. 2004 жылы Халықаралық корреспонденциялық шахмат федерациясы электрондық поштаға негізделген жүйесін алмастыру үшін веб-сервер ашты. Chess.com 2007 жылы «Тікелей шахмат» ұсынысын бастады. Chessbase/Playchess ұзақ жылдар бойы жүктеліп алынатын клиентке ие болды және 2013 жылы веб-клиент қосты. Тағы бір танымал веб-қосымша – тактикалық жаттығулар. Қазір тоқтатылған Chess Tactics Server 2006 жылы сайтының жұмысын бастады, ал келесі жылы Chesstempo пайда болды, Chess.com 2008 жылы өзінің «Тактикалық жаттықтырушысын» қосты. Chessbase 2015 жылы тактикалық жаттығуларға арналған веб-қосымшаны қосты. Chessbase шахмат ойындарының дерекқорын 1998 жылы онлайн режимінде жариялады. Шахмат ойындарының тағы бір ерте дерекқоры – 1999 жылы құрылған Chess Lab. New In Chess бастапқыда Windows 3.x үшін NICBase бағдарламасын шығару арқылы Chessbase-пен бәсекелесуге тырысты, бірақ ақырында бағдарламалық жасақтамадан бас тартып, 2002 жылдан бастап онлайн деректер базасына көшті. 2006 жылдан бастап Shredder шахмат қозғалтқышына қарсы онлайн ойнауға болады. 2015 жылы Chessbase Fritz веб-қосымшасын, сондай-ақ ойындарды сақтауға арналған «Менің ойындарымды» қосты. 2007 жылдан бастап Chess.com өз клиенттеріне «Шахмат-ментор» оқу бағдарламасының мазмұнын онлайн ұсынды. Сэм Шенкленд және Уолтер Браун сияқты мықты гроссмейстерлер сабақтармен үлесті.

Медиа

Компьютерлік шахмат тарихы: Жас өнімдердің (AI) көзқарасы – Мюррей Кэмпбелл (IBM Deep Blue жобасы), Эдвард Фейгенбаум, Дэвид Леви, Джон Маккарти және Монти Ньюборн қатысқан толық лекция. Компьютер тарихы мұражайында.