Proiect educațional șah și inteligență artificială. Inteligența artificială și bazele de cunoștințe. Nu mai este necesar să visezi la victoria asupra inteligenței artificiale

Să ne uităm la câteva concepte de bază care ne vor ajuta să creăm o inteligență artificială simplă care poate juca șah:

  • in miscare;
  • evaluarea tablei de șah;
  • minimax;
  • decuparea alfa beta.

La fiecare pas, ne vom îmbunătăți algoritmul cu una dintre aceste tehnici de programare a șahului testate în timp. Veți vedea cum fiecare dintre ele afectează stilul de joc al algoritmului.

Algoritmul terminat poate fi găsit pe GitHub.

Pasul 1. Generarea mutărilor și vizualizarea tablei de șah

Vom folosi bibliotecile chess.js pentru a genera mișcări și chessboard.js pentru a reda tabla. Biblioteca pentru generarea mutărilor implementează toate regulile șahului. Pe baza acestui lucru, putem calcula toate mișcările pentru o anumită stare a tablei.

Vizualizarea funcției de generare a mișcării. Poziția de pornire este folosită ca intrare, iar ieșirea este toate mișcările posibile din acea poziție.

Folosirea acestor biblioteci ne va ajuta să ne concentrăm doar pe cea mai interesantă sarcină - crearea unui algoritm care găsește cea mai bună mișcare. Vom începe prin a scrie o funcție care returnează o mișcare aleatorie din toate mișcările posibile:

Var calculateBestMove = function(joc) ( //Genereaza toate miscarile pentru o pozitie data var newGameMoves = game.ugly_moves(); return newGameMoves; );

Deși acest algoritm nu este un jucător de șah foarte solid, este un bun punct de plecare, deoarece nivelul său este suficient pentru a juca cu noi:

Negrul joacă mișcări aleatorii

JSFiddle .

Pasul 2. Evaluează placa

Acum să încercăm să înțelegem care parte este mai puternică într-o anumită poziție. Cel mai simplu mod de a realiza acest lucru este de a calcula rezistența relativă a pieselor de pe tablă folosind următorul tabel:

Cu funcția de scor, putem crea un algoritm care alege mutarea cu cel mai mare scor:

Var calculateBestMove = funcție (joc) ( var newGameMoves = game.ugly_moves(); var bestMove = null; //Folosiți orice număr negativ var bestValue = -9999; for (var i = 0; i< newGameMoves.length; i++) { var newGameMove = newGameMoves[i]; game.ugly_move(newGameMove); //Возьмите отрицательное число, поскольку ИИ играет черными var boardValue = -evaluateBoard(game.board()) game.undo(); if (boardValue >bestValue) ( ​​​​bestValue = boardValue; bestMove = newGameMove ) ) returnează bestMove; );

Singura îmbunătățire tangibilă este că algoritmul nostru va mânca acum o bucată dacă este posibil:

Negrul joacă cu o funcție simplă de evaluare

Puteți vedea ce sa întâmplat în această etapă pe JSFiddle.

Pasul 3 Căutați Arborele și Minimax

Vom crea apoi un arbore de căutare din care algoritmul poate alege cea mai bună mișcare. Acest lucru se face folosind algoritmul minimax.

Notă. transl. Într-unul dintre articolele noastre, ne-am ocupat deja - am învățat cum să creăm un AI care nu poate fi învins în tic-tac-toe.

În acest algoritm, un arbore recursiv al tuturor mișcărilor posibile este explorat la o adâncime dată, iar poziția este evaluată pe „frunzele” arborelui.

După aceea, returnăm fie cea mai mică, fie cea mai mare valoare copil nodului părinte, în funcție de a cărui tură este calculată (adică încercăm să minimizăm sau să maximizăm rezultatul la fiecare nivel).

Vizualizare minimă în poziție artificială. Cea mai bună mișcare pentru alb este b2-c3, așa că putem garanta că ajungem într-o poziție în care scorul este -50

Var minimax = funcție (adâncime, joc, isMaximisingPlayer) ( if (adâncime === 0) ( return -evaluateBoard(game.board()); ) var newGameMoves = game.ugly_moves(); if (isMaximisingPlayer) ( var bestMove = -9999; pentru (var i = 0; i< newGameMoves.length; i++) { game.ugly_move(newGameMoves[i]); bestMove = Math.max(bestMove, minimax(depth - 1, game, !isMaximisingPlayer)); game.undo(); } return bestMove; } else { var bestMove = 9999; for (var i = 0; i < newGameMoves.length; i++) { game.ugly_move(newGameMoves[i]); bestMove = Math.min(bestMove, minimax(depth - 1, game, !isMaximisingPlayer)); game.undo(); } return bestMove; } };

Cu minimax, algoritmul nostru începe să înțeleagă tacticile de bază ale șahului:

Minimax cu nivel de adâncime 2

Puteți vedea ce sa întâmplat în această etapă pe JSFiddle.

Eficacitatea minimax depinde în mare măsură de adâncimea de căutare realizabilă. Acesta este ceea ce vom îmbunătăți în pasul următor.

Pasul 4: Alpha Beta Clipping

Poziții de care nu avem nevoie dacă se folosește tăierea alfa-beta. Arborele este vizitat în ordinea descrisă.

Cu tăierea alfa-beta, obținem o îmbunătățire semnificativă a minimax, așa cum se arată în următorul exemplu:

Numărul de poziții de evaluat în cazul unei căutări cu adâncimea de 4 și poziția de plecare prezentată în imagine.

Puteți vedea ce sa întâmplat în această etapă pe JSFiddle.

Pasul 5. Funcția de scor îmbunătățită

Funcția de scor inițială este destul de naivă, deoarece pur și simplu calculăm scorurile pieselor care se află pe tablă. Pentru a-l îmbunătăți, vom începe să ținem cont de poziția figurilor. De exemplu, un cavaler din centrul tablei este „mai scump” deoarece are mai multe mișcări disponibile și, prin urmare, este mai activ decât un cavaler de pe marginea tablei.

Dezvoltat de inginerii de la Massachusetts Institute of Technology. Fischer a șahmat computerul de trei ori și a câștigat cu o alunecare de teren. În scrisorile sale, jucătorul de șah a scris că programele fac „gafe” și a numit computerele în sine „bucăți inutile de fier”.

Dar în același an, Monty Newborn, unul dintre primii oameni de știință care a studiat șahul pe computer, a spus cuvinte profetice:

„Granii maeștri veneau la turneele de șah pe computer pentru a râde. Acum vin să observe, iar în viitor vor studia acolo.”

Bobby Fischer după ce a învins computerul. Foto: Getty Images

Se pare că oamenii au un fel de dragoste înnăscută pentru jocurile minții. Când regele Carol I al Angliei a fost condamnat la moarte în 1649, el a luat două lucruri cu el la execuție - o biblie și un set de șah. Celebrul artist al secolului XX, Marcel Duchamp, aflat în vârful carierei sale, a plecat brusc în Argentina și a început să sculpteze piese de șah din lemn și, în general, a devenit interesat de șah. În secolul al XIX-lea, în Japonia a avut loc o poveste misterioasă legată de jocul Go. Potrivit legendei, spiritele au determinat unui jucător celebru trei mișcări geniale. Drept urmare, a reușit să câștige, iar adversarul său după meci a căzut la podea, s-a sufocat cu sânge și a murit.

Calculatoarele sunt departe de tot acest misticism, dar în doar câteva decenii au studiat jocurile minții mai profund decât a făcut omenirea în milenii. În 2014, compania a achiziționat DeepMind pentru 400 de milioane de dolari pentru „a desfășura cea mai neobișnuită și mai complexă cercetare, al cărei scop final este dezvăluirea esenței inteligenței”. În special, oamenii de știință au vrut să învețe un computer să joace Go. Acest joc este mult mai dificil decât șahul. În 1985, un magnat industrial din Taiwan a spus că va plăti 1,4 milioane de dolari pentru un program care ar putea învinge cel mai bun jucător Go. În 1997, magnatul a murit, iar trei ani mai târziu oferta sa a expirat - nimeni nu a putut lua premiul.

Acum ar putea aparține programului DeepMind AlphaGo, care folosește rețele neuronale moderne. Acum un an, ea a fost campioană internațională la go Lee Sedol. În luna mai a acestui an, ea l-a învins din nou pe cel mai bun jucător Go, precum și pe o echipă de alți cinci jucători profesioniști.

AlphaGo a devenit campionul absolut. Dar, la scurt timp după victoriile ei de mare profil, o așteaptă uitarea. La sfârșitul lunii mai, DeepMind a anunțat în liniște că AlphaGo părăsește scena competitivă. Pentru a marca ocazia, compania a publicat 50 de variante ale jocurilor pe care programul le-a jucat împotriva lui însuși. În viitor, DeepMind dorește să lanseze o lucrare finală de cercetare care va descrie eficiența algoritmului programului.

În ceea ce privește șahul, omenirea a pierdut palma în ele cu 20 de ani înainte de aceste evenimente, când jucătorul de șah Garry Kasparov a pierdut în fața supercomputerului IBM Deep Blue. Chess and Go nu sunt singurele jocuri pe care AI încearcă să le predea. Ei au încercat să-i învețe pe computere dame, table scurte, reversi, poker și multe alte jocuri de societate. Iar inteligența umană nu mai poate fi comparată cu inteligența artificială. Acest lucru se datorează parțial progreselor tehnologiei. De exemplu, în 1997, computerul Deep Blue ocupa locul 259 în lista celor mai rapide supercomputere din lume și putea efectua aproximativ 11 miliarde de operațiuni pe secundă. Acum, datorită algoritmilor moderni, chiar și smartphone-ul tău este capabil să-l învingă pe Kasparov.

Garry Kasparov vs computerul Deep Blue. În stânga este unul dintre inginerii IBM, Xiong Feixiong. Foto: Getty Images

Astfel de realizări ale AI au provocat emoții destul de umane în oameni: tristețe, depresie și disperare. După ce Lee Sedol a fost învins de AlphaGo, a trecut printr-o criză existențială. „Am pus la îndoială ingeniozitatea umană”, a recunoscut el după meci. „M-am întrebat dacă toate mișcările din Go pe care le știam sunt corecte.” Potrivit unui martor ocular, după înfrângere, Lee părea „bolnav din punct de vedere fizic”. Kasparov nu s-a simțit mai bine după ce a pierdut în fața computerului. Când s-a întors la hotel, s-a dezbrăcat pur și simplu, s-a urcat în pat și s-a uitat în tavan.

„Computerul analizează unele poziții atât de profund încât joacă ca un zeu”, a spus Kasparov.

Deep Blue a arătat publicului pentru prima dată că un computer poate depăși oamenii în rezolvarea problemelor intelectuale. „Atunci a fost un șoc”, a spus Murray Campbell, cofondatorul Deep Blue. „Acum ne obișnuim treptat cu această idee.” Cu toate acestea, nu este clar ce așteaptă umanitatea în viitor. Cum pot fi folosite realizările în lumea reală în jocuri? Răspunsul lui Campbell la această întrebare sună pesimist. „Este greu de găsit un exemplu bun de astfel de succes în jocurile de societate”, a spus el. - La începutul anilor 90, un angajat IBM pe nume Gerald Tesauro a încercat să învețe AI să joace table și a făcut unele progrese în învățarea stimulată. Acum metodele sale sunt adesea folosite în robotică. Cu toate acestea, cazul lui este mai degrabă o excepție de la regulă.

Din păcate, nu există încă algoritmi mai buni pentru șah decât enumerarea a foarte multe poziții. Adevărat, enumerarea este în ordine (și nu una) optimizată, dar totuși este o enumerare mare. Pentru a căuta o mișcare de răspuns, se construiește un arbore cu mișcarea originală la rădăcină, margini - mișcări-răspunsuri și noduri - poziții noi.

Este ușor de explicat cum este aleasă următoarea mișcare în algoritmi elementari. La rândul tău, alegi o mișcare (după părerea ta) care va aduce cel mai mare beneficiu (îți maximizează beneficiul), iar adversarul, la următoarea lui mișcare, încearcă să aleagă o mișcare care îi va aduce cel mai mare beneficiu (își maximizează beneficiul). și le minimizează pe a ta). Un algoritm cu acest principiu se numește minimax. În fiecare etapă, alocați o estimare de poziție fiecărui nod din arbore (mai multe despre asta mai târziu) și o maximizați în propria mișcare și o minimizați la mișcarea adversarului. Algoritmul în timpul funcționării trebuie să treacă prin toate nodurile arborelui (adică prin toate pozițiile de joc posibile din joc), adică este complet nepotrivit din punct de vedere al timpului.
Următoarea sa îmbunătățire este tăierea alfa-beta (metoda ramurilor și marginilor).

Din nume rezultă că algoritmul se oprește cu doi parametri - alfa și beta. Ideea principală a tăierii este că acum vom păstra intervalul de tăiere (limitele inferioare și superioare - alfa și, respectiv, beta - K.O.) și nu vom lua în considerare estimările tuturor nodurilor care nu se încadrează în intervalul de jos ( deoarece nu afectează rezultatul - acestea sunt doar mișcări mai rele decât cea deja găsită), iar intervalul în sine se va restrânge pe măsură ce se găsesc cele mai bune mișcări. Deși tăierea alfa-beta este mult mai bună decât minimix, timpul de funcționare al acestuia este, de asemenea, foarte lung. Dacă presupunem că la mijlocul jocului există aproximativ 40 de mișcări diferite pe o parte, atunci timpul algoritmului poate fi estimat ca O(40^P), unde P este adâncimea arborelui de mișcare. Desigur, cu minimax poate exista o astfel de secvență de mișcări luate în considerare atunci când nu facem nicio tăietură, atunci tăierea alfa-beta se va transforma pur și simplu într-un minimax. În cel mai bun caz, tăierea alfa-beta poate evita verificarea rădăcinii tuturor mișcărilor în minimax. Pentru a evita un timp lung de rulare (cu o complexitate atât de mare a algoritmului), căutarea în arbore se face după o valoare fixă ​​și acolo se evaluează nodul. Această estimare este o aproximare foarte mare a estimării reale a nodului (adică, repetând până la sfârșitul arborelui, iar acolo rezultatul este „câștigă, pierde, egalează”). În ceea ce privește evaluarea unui nod, există doar o grămadă de metode diferite (o puteți citi în linkurile de la sfârșitul articolului). Pe scurt - atunci, desigur, număr materialul jucătorului (după un sistem - cu pion întreg - 100, cavaler și episcop - 300, turn - 500, damă - 900; conform altui sistem - real în părți dintr-unul) + poziție pe tabla acestui jucător. În ceea ce privește poziția, de aici începe unul dintre coșmarurile scrisului de șah, deoarece viteza programului va depinde în principal de funcția de evaluare și, mai precis, de evaluarea poziției. Există deja cineva în atât. Pentru tururile pereche, jucătorul +, pentru acoperirea regelui cu proprii pioni +, pentru un pion lângă celălalt capăt al tablei + etc., și piesele suspendate, regele deschis etc. minus poziția. etc. - Puteți scrie o grămadă de factori. Aici, pentru a evalua poziția în joc, se construiește o evaluare a poziției jucătorului, care face o mișcare, iar din ea se scade evaluarea poziției corespunzătoare a adversarului. După cum se spune, o fotografie este uneori mai bună decât o mie de cuvinte și poate o bucată de cod pseudo C# ar fi, de asemenea, mai bună decât explicații:

Enum CurrentPlayer (Eu, Adversar); public int AlphaBetaPruning (int alpha, int beta, int depth, CurrentPlayer currentPlayer) ( // valoarea nodului curent int valoarea; // numără nodul curent ++nodesSearched; // ajunge opus la currentPlayer CurrentPlayer adversarPlayer = GetOppositePlayerTo(currentPlayer); / / generează toate mișcările pentru jucător, care rândul său este pentru a face mutarea / / mișcările, generate prin această metodă, sunt libere de mișcări // după ce ați făcut ce jucător actual ar fi în lista de verificare mutari = GenerateAllMovesForPlayer(currentPlayer); // parcurge în buclă mișcările pentru fiecare mișcare în mișcări ( MakeMove(move); ++ply; // Dacă adâncimea este nemișcată, continuați să căutați mai profund dacă (adâncime > 1) valoare = -AlphaBetaTruning (-beta, -alpha, adâncime - 1, adversarPlayer); else // Dacă nu rămâne adâncime (nodul frunză), evaluează acea valoare a poziţiei = EvaluatePlayerPosition(currentPlayer) - EvaluatePlayerPosition(opponentPlayer); RollBackLastMove(); --ply; if (valoare > alfa) ( // Aceasta mutarea este atât de bună încât a provocat o tăiere a arborelui de odihnă dacă (valoare >= beta) returnează beta; alfa = valoare; ) ) if (mușcări.Număr == 0) ( // dacă nu se mișcă, atunci poziția este șahmat sau dacă ( IsInCheck(currentPlayer)) return (-MateValue + ply); altfel returnează 0; ) return alpha; )

Cred că unele explicații despre cod nu vor fi de prisos:

  • GetOppositePlayerTo() schimbă pur și simplu CurrentPlayer.Me în CurrentPlayer.Opponent și invers
  • MakeMove() face următoarea mișcare din lista de mișcări
  • ply - o variabilă globală (parte a clasei) care deține numărul de treceri de jumătate efectuate la o anumită adâncime
Un exemplu de utilizare a metodei:

(ply = 0; nodesSearched = 0; scor int = AlphaBetaPruning(-MateValue, MateValue, max_depth, CurrentPlayer.Me); )
unde MateValue este un număr suficient de mare.
Parametrul max_depth este adâncimea maximă la care algoritmul va coborî în arbore. Trebuie reținut că pseudo-codul este pur demonstrativ, dar destul de funcțional.

În loc să vină cu un nou algoritm, oamenii care promovează tăierea alfa-beta au venit cu multe euristici diferite. Euristica este doar un mic hack care uneori face un câștig foarte mare de viteză. Există o mulțime de euristici pentru șah, nu le poți număra pe toate. Voi da doar pe cele principale, restul le găsiți în linkurile de la sfârșitul articolului.

În primul rând, se aplică o euristică foarte cunoscută "zero miscare". Într-o poziție calmă, adversarului i se permite să facă două mișcări în loc de una, iar după aceea, copacul este examinat la o adâncime (adâncime-2), și nu (adâncime-1). Dacă, după evaluarea unui astfel de arbore secundar, se dovedește că jucătorul actual mai are un avantaj, atunci nu are rost să luăm în considerare subarborele în continuare, deoarece după următoarea sa mutare jucătorul nu va face decât să-și îmbunătățească poziția. Deoarece căutarea este polinomială, câștigul de viteză este vizibil. Uneori se întâmplă ca inamicul să-și uniformizeze avantajul, atunci trebuie să luați în considerare întregul subarboresc până la sfârșit. O mișcare goală nu trebuie făcută întotdeauna (de exemplu, când unul dintre regi este în șah, în zugzwang sau într-un final de joc).

Mai departe, ideea este folosită pentru a face mai întâi o mișcare, în care va exista o captare a piesei adversarului, care a făcut ultima mișcare. Deoarece aproape toate mișcările din timpul enumerarii sunt stupide și nu foarte rezonabile, o astfel de idee va restrânge foarte mult fereastra de căutare la început, întrerupând astfel multe mișcări inutile.

De asemenea stiut euristica istoriei sau cel mai bun serviciu de mutari. În timpul enumerarii, sunt salvate cele mai bune mișcări la un anumit nivel al arborelui, iar atunci când luați în considerare o poziție, puteți încerca mai întâi să faceți o astfel de mișcare pentru o anumită adâncime (pe baza ideii că la adâncimi egale în arbore, același cele mai bune mișcări sunt foarte des făcute).
Se știe că un astfel de tip de memorare în cache a mișcărilor a îmbunătățit de 10 ori performanța programului sovietic Caissa.

Există și câteva idei despre generarea de mișcări. În primul rând, sunt luate în considerare capturile câștigătoare, adică astfel de capturi atunci când o piesă cu un scor mai mic bate o cifră cu un scor mai mare. Apoi sunt luate în considerare promovările (când pionul de la celălalt capăt al tablei poate fi înlocuit cu o piesă mai puternică), apoi capturi egale și apoi mutări din memoria cache euristică de istorie. Restul mișcărilor pot fi sortate după controlul tablei sau alt criteriu.

Totul ar fi bine dacă tăierea alfa-beta ar fi garantată pentru a oferi cel mai bun răspuns. Chiar și având în vedere timpul îndelungat până la explozie. Dar nu era acolo. Problema este că după enumerarea cu o valoare fixă ​​se evaluează poziția și gata, dar, după cum s-a dovedit, în unele poziții de joc este imposibil să se oprească enumerarea. După multe încercări, s-a dovedit că enumerarea poate fi oprită doar în poziții calme. Prin urmare, în enumerarea principală a fost adăugată o enumerare suplimentară, în care sunt luate în considerare doar capturi, promovări și cecuri (numite enumerarea forţată). De asemenea, am observat că unele poziții cu un schimb la mijloc trebuie, de asemenea, considerate mai profunde. Deci au fost idei despre extensii і reduceri, adică adâncituri și scurtări ale arborelui de enumerare. Pentru aprofundare, cele mai potrivite poziții sunt ca finalul jocurilor cu pioni, evitarea verificării, schimbarea unei piese în mijlocul unui bust etc. Pentru scurtare, sunt potrivite pozițiile „absolut calme”. În programul sovietic Caissa, enumerarea forțată a fost puțin specială - acolo, după o captură în timpul enumerarii, a început imediat enumerarea forțată și profunzimea ei nu a fost limitată (deoarece se va epuiza într-o poziție calmă după ceva timp).

După cum spunea Anthony Hoare: Optimizarea prematură este rădăcina tuturor relelor în programare.„ (notă: pentru cei care cred că acest citat este din Knuth, există discuții interesante

Fotografii din surse deschise

Noua inteligență artificială a devenit cel mai bun jucător de șah de pe Pământ în doar 4 ore de antrenament! (site-ul web)

Îți amintești ce senzație a făcut supercomputerul de șah Deep Blue în 1996 când a câștigat primul joc împotriva campionului rus Garry Kasparov? În ciuda faptului că compatriotul nostru a câștigat încă acest joc, chiar și atunci a devenit clar că inteligența artificială progresează rapid și va deveni într-o zi cel mai bun jucător de șah, după care va fi inutil ca oamenii să se joace cu programul. Singura întrebare rămasă era când se va întâmpla asta.

Reprezentanții cunoscutei corporații „Google” au spus că această dată a sosit în sfârșit. Potrivit experților, rețeaua neuronală AlphaZero dezvoltată de ei în doar 4 ore de auto-studiu s-a transformat în cel mai virtuos și impecabil jucător de șah din istoria acestui joc. O inteligență artificială super-puternică a învățat să joace șah, cunoscându-și doar regulile. După ce s-a jucat 4 ore cu el însuși, robotul a învățat să joace perfect, învingând cu ușurință programul de șah Stockfish, care era considerat cel mai perfect înainte. Calculatoarele au jucat 100 de jocuri - „AlphaZero” a reușit să câștige 28 dintre ele și să atragă restul de 72. O rețea neuronală avansată care imită activitatea creierului uman este capabilă să-și asume riscuri și chiar să folosească un fel de intuiție.

Nu mai este necesar să visezi la victoria asupra inteligenței artificiale

Modelele anterioare „AlphaZero” au învățat jocul urmărind în direct jucătorii de șah. Dezvoltatorii au presupus că acest lucru ar ajuta inteligența artificială să înțeleagă mai bine strategiile jocului. De fapt, s-a dovedit că urmărirea oamenilor nu face decât să încetinească dezvoltarea programului. Când rețeaua neuronală a fost lăsată în voie, abilitățile ei au crescut vertiginos. Acum inginerii Google se gândesc cum să aplice astfel de tehnologii pentru un beneficiu real pentru omenire, deoarece un joc de șah, chiar și cel mai virtuos, nu are un scop practic.

În 1968, celebrul David Levy a făcut pariu că niciun program nu îl va învinge în următorul deceniu. În tot acest timp, marele maestru a concurat constant cu diverse computere de șah și de fiecare dată le-a învins. În 1978, a învins Chess 4.7, cel mai puternic program la acea vreme, câștigând un pariu. Din păcate, în aceste zile nu vor exista astfel de lupte interesante - acum trebuie să aflăm doar despre cum o rețea neuronală fantastică a învins-o pe alta. Jucătorii de șah în viață nici nu mai pot visa să învingă astfel de monștri. Și acesta este doar începutul unor astfel de victorii AI asupra oamenilor...

cultură. Disertație. Cand. Științe Ped. Rostov-pe-Don. 2003.

2. Azarova E.A. Forme distructive de educație familială, probleme de actualitate ale timpului nostru, crime din ultima vreme: aspecte spirituale, morale și criminalistice. - Rostov-pe-Don: Editura Universității Pedagogice de Stat din Rusia, 2005.

3.Gabdrev GSH. Principalele aspecte ale problemei anxietății în psihologie // Psiholog școlar. - 2004. - N° 8. - S. 9.

4. Enikolopov S.N. Probleme de violență în familie // Probleme de psihologie. -2002. -#5-6.

5. Tseluiko V.M. Psihologia unei familii disfuncționale: O carte pentru profesori și părinți. - M.: Editura VLADOS-PRESS, 2003.

6. Shapar V.B. Psihologie practică. Psihodiagnostica relațiilor dintre părinți și copii. - Rostov n/a: Phoenix, 2006.

© Azarova E.A., Zhulina G.N., 2016

A.I. Alifirov

cand. ped. Științe, profesor asociat, RSSU, Moscova, Federația Rusă

I.V. Mihailova Cand. ped. Științe, profesor asociat, RSSU, Moscova, Federația Rusă

„INTELEGENȚA ARTIFICIALĂ” LA ȘAH

adnotare

Articolul discută geneza utilizării software-ului și hardware-ului capabil să desfășoare o activitate intelectuală comparabilă cu activitatea intelectuală a unei persoane.

Cuvinte cheie

Tehnologii informatice în șah, programe de șah, șah.

Astăzi, termenul de „inteligență artificială” (IA) se referă la teoria creării de software și hardware capabile să desfășoare o activitate intelectuală comparabilă cu activitatea intelectuală umană. Atunci când rezolvă probleme practice, ei folosesc cel mai adesea sarcina din listă, considerând în același timp că dacă un sistem informatic este capabil să rezolve aceste probleme, atunci este un sistem AI. Adesea, această listă include jocul de șah, demonstrarea teoremelor, rezolvarea problemelor de diagnosticare pe un set inițial de date incomplet, înțelegerea limbajului natural, capacitatea de a învăța și de a auto-învăța, capacitatea de a clasifica obiecte și capacitatea de a genera noi cunoștințe bazate pe generație. a noilor reguli si modele de regularizare.cunoastere .

Una dintre cele mai importante probleme ale noii științe - cibernetica a fost problema modului de îmbunătățire a managementului, a modului de îmbunătățire a procesului decizional. Unul dintre fondatorii ciberneticii C. Shannon a propus să oficializeze și să programeze șahul pentru a utiliza un computer de șah ca model pentru rezolvarea unor probleme similare de control. Autoritatea lui K. Shannon a fost atât de mare încât ideile sale au pus imediat bazele unei noi direcții științifice. Ideile lui K. Shannon au fost folosite în lucrările lui A. Turing, K. Zuse, D. Prince.

Autor al teoriei informației. K. Shannon, a scris: „Mașina de șah este ideală pentru a începe, deoarece (1) sarcina este clar definită de operațiuni permise (mușcări) și scopul final (șahmat); (2) nu este prea simplu pentru a fi banal. , și nu prea greu de obținut o soluție satisfăcătoare; (3) credem că șahul necesită „gândire” pentru jocul abil, soluția acestei probleme ne va conduce fie să admirăm capacitatea gândirii mecanizate, fie să ne limităm conceptul de „gândire”. "; (4) Structura discretă a șahului se potrivește bine cu natura digitală a computerelor moderne."

Mai târziu, șahul a devenit subiectul unui concurs între inteligența naturală și cea artificială, iar o serie de meciuri au fost jucate de cei mai importanți jucători de șah din lume împotriva computerelor. În 1995, într-un interviu acordat revistei populare Wired, G.K. Kasparov și-a conturat viziunea despre jocul de șah: „Șahul nu este matematică. Este fantezie și imaginație, este logica umană, nu un joc cu un rezultat previzibil. Nu cred că teoretic jocul de șah se poate încadra într-un set de formule sau algoritmi”. Doi ani mai târziu, supercomputerul DEEP BLUE, după ce l-a învins pe al 13-lea campion mondial G.K. Kasparova, într-o revanșă de șase jocuri, a eliminat de pe ordinea de zi problema posibilităților inteligenței artificiale a șahului. DEEP BLUE a păstrat în memorie o bază de date completă cu toate jocurile și a analizat strategia doar prin calcul. După meci, G.K. Kasparov și-a schimbat punctul de vedere, admitând că: „Șahul este singurul domeniu în care se poate compara intuiția și creativitatea umană cu puterea și mașina”. Meciul a schimbat cursul dezvoltării atât a șahului clasic, cât și a celui pe computer. Asistența prin inteligență artificială a devenit utilizată pe scară largă în sistemul de instruire. DI. Bronstein în cartea sa „David vs. Goliath” (2003) a scris: „Botvinnik credea că șahul este arta analizei, iar vremea improvizatorilor singuratici precum Andersen, Morphy, Zukertort a dispărut pentru totdeauna. Privind la șahul modern, trebuie să recunoaștem. că Botvinnik s-a dovedit a avea dreptate. „Băieții computerului” au dus ideea lui despre necesitatea analizei acasă până la absurd. Ei nici măcar nu ascund faptul că șlefuiesc variațiile de deschidere pentru a obține un rezultat clar. turneu de la Linares (2000), ungurul Leko a recunoscut fără nicio urmă de jenă că tot jocul cu Anand a fost pe computerul lui!”.

Lista literaturii folosite:

1. Alifirov A.I. Lucrări de orientare în carieră în școlile secundare prin șah / Alifirov A.I. // Probleme de dezvoltare a științei și educației: teorie și practică. Culegere de lucrări științifice bazate pe materialele Conferinței internaționale științifice și practice 31 august 2015: în 3 părți. Partea a II-a. M.: „AR-Consult”, 2015 - S. 13-14.

2. Mihailova I.V., Alifirov A.I. Acțiuni tactice ale jucătorilor de șah / Mikhailova I.V., Alifirov A.I. // Rezultatele cercetării științifice Culegere de articole ale Conferinței științifice-practice internaționale. Redactor director: Sukiasyan Asatur Albertovich (15 februarie 2016) la 4 h. P/3 - Ufa: AETERNA. -2016.S. 119-121.

3. Mihailova I.V., Alifirov A.I. Fundamentele teoretice și metodologice ale metodei de gândire prin scheme ale jucătorilor de șah / Mikhailova I.V., Alifirov A.I. // Rezultatele cercetării științifice Culegere de articole ale Conferinței științifice-practice internaționale. Redactor director: Sukiasyan Asatur Albertovich (15 februarie 2016) la 4 h. P/3 - Ufa: AETERNA. - 2016. S. 123-125.

4. Mihailova I.V. Pregătirea tinerilor șahişti de înaltă calificare cu ajutorul programelor informatice de șah și al „Internetului”: autor. dis. ... cand. ped. Științe: 13.00.04 / Mikhailova Irina Vitalievna; RSUPC. - M., 2005. - 24 p.

© Alifirov A.I., Mikhailova I.V., 2016

UDC 378.046.2

A.I. Alifirov

Candidat la științe pediatrice, profesor asociat RSSU, Moscova, RF V.V. Fedchuk, Ph.D.

SRL „Prosperitate”, metodolog instructor principal, Moscova, Federația Rusă STUDIU AL NIVELULUI DE SĂNĂTATE FIZICĂ A ADOLESCENTELOR

adnotare

Articolul tratează problema sănătății fizice a adolescenților și influența diverșilor factori