{"id":2129,"date":"2005-07-25T00:00:00","date_gmt":"2005-07-24T22:00:00","guid":{"rendered":""},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T22:00:00","slug":"2129","status":"publish","type":"post","link":"https:\/\/www.vialattea.net\/content\/2129\/","title":{"rendered":"&Egrave; possibile costruire un algoritmo che permetta di calcolare tutto l&#8217;albero di varianti in una partita a scacchi?\r\nCos\u00ec da poter ottenere una sequenza di mosse fino ad una posizione teoricamente vinta.\r\nPer essere pi\u00f9 realistici, considerando l&#8217;enorme numero di mosse da calcolare, \u00e8 possibile eseguire questo calcolo in parallelo?\r\nGrazie fin d&#8217;ora"},"content":{"rendered":"<p>Il problema della valutazione delle mosse per risolvere il problema degli scacchi, ovvero per giocare in modo esatto, non \u00e8 un problema di algoritmo, che anzi \u00e8 concettualmente molto semplice: <br \/>data una configurazione valida della scacchiera, con la mossa al giocatore A, si pu\u00f2 generare una lista di tutte le mosse permesse, ogni mossa porta ad una nuova configurazione valida, o ad uno scacco matto, o ad una patta; per tutte le mosse che portano a configurazioni valide si ripete il procedimento (ricorsione) generando cos\u00ec &#8220;l\u2019albero delle mosse&#8221;. <br \/>Alla fine si avrebbe la radice con la posizione di partenza, tutte le possibili ramificazioni, e le &#8220;foglie&#8221; sarebbero tutte costituite da &#8220;scacchi matti&#8221; o &#8220;patte&#8221;. <br \/>Si scoprirebbe allora se per il giocatore bianco \u00e8 possibile vincere con certezza, o se la soluzione esatta \u00e8 la patta; <br \/>oppure, cosa assai meno probabile, il nero potrebbe avere sempre delle contromosse vincenti. <\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" width=\"400\" height=\"308\" border=\"1\" src=\"http:\/\/www.vialattea.net\/spaw\/image\/informatica\/scacchi.jpg\" alt=\"\"\/><\/p>\n<p>Come giustamente intuisce chi ha posto la domanda, e per la fortuna di tutti quelli che giocano a scacchi, il problema \u00e8 la complessit\u00e0 computazionale dell\u2019algoritmo, che \u00e8 di tipo esponenziale: il numero di mosse da analizzare (e da memorizzare da qualche parte) cresce esponenzialmente col numero di mosse della partita. <br \/>Questo significa che si raggiungono presto dei numeri grandi ma cos\u00ec grandi che non bastano tutti i computer costruiti nel mondo per analizzare tutte le mosse in un tempo ragionevole; oppure se il pi\u00f9 potente supercomputer mai costruito si imbarcasse in questa avventura gli ci vorrebbe un tempo pari a molte volte l\u2019et\u00e0 dell\u2019universo&#8230; d\u2019altra parte il gioco degli scacchi a quanto si dice \u00e8 cominciato proprio con un aneddoto &#8220;esponenziale&#8221;: il famoso compenso che il suo inventore, il bramino Sissa, avrebbe &#8220;modestamente&#8221; chiesto al Re, un chicco di riso per la prima casella, due chicchi per la seconda, quattro per la terza e cos\u00ec via&#8230; fanno per la sessantaquattresima casella circa sedici miliardi di miliardi di chicchi,<\/p>\n<p>tenete presente la scorciatoia: 2<sup>10<\/sup>~1000, 2<sup>60<\/sup>~1000<sup>6<\/sup>=10<sup>18<\/sup> <\/p>\n<p>Proviamo a fare qualche conto di massima: <br \/>supponiamo per semplicit\u00e0 che ad ogni turno ogni giocatore abbia la possibilit\u00e0 di fare 10 mosse, (in realt\u00e0 il numero di mosse possibili dipende dalla posizione, e spesso \u00e8 molto maggiore di 10; ad esempio in apertura ciascuno ha a disposizione 20 mosse: 16 di pedone e 4 di cavallo); una partita di media lunghezza di solito supera le 50 mosse, <br \/>fanno 10<sup>50<\/sup> posizioni da analizzare! <br \/>Per chi non ama gli esponenziali lo scrivo per esteso: 100.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000. <\/p>\n<p>Deep Blue analizza un miliardo di posizioni al secondo; supponiamo che un supercomputer possa analizzare 1 milione di miliardi di mosse al secondo, cio\u00e8 10<sup>15<\/sup> mosse al s; \u00a0<br \/>il tempo impiegato sarebbe 10<sup>50<\/sup>\/10<sup>15<\/sup>=10<sup>50-15<\/sup>s=10<sup>35<\/sup> s , peggio del decadimento del protone! <br \/>Supponiamo allora di far girare in parallelo un miliardo di questi supercomputer; <br \/>avremmo una capacit\u00e0 di calcolo pari a 10<sup>9<\/sup>\u00b710<sup>15<\/sup> = 10<sup>24 <\/sup>mosse al secondo, <br \/>ma ci vogliono comunque 10<sup>26<\/sup> secondi, cio\u00e8 sempre alcuni miliardi di volte l\u2019et\u00e0 dell\u2019universo. <\/p>\n<p>Quindi possiamo essere sicuri che con le attuali tecnologie il problema degli scacchi rimarr\u00e0 insoluto. <br \/>Una possibilit\u00e0 futura potrebbe risiedere nel calcolo quantistico, che si dovrebbe prestare bene a questo tipo di problemi. <\/p>\n<p>Gli attuali programmi per computer invece, per cavarsela analizzano solo alcuni rami dell\u2019albero, quelli pi\u00f9 appetibili, e solo fino ad un certo livello di profondit\u00e0; per scegliere il ramo migliore utilizzano un punteggio legato alla posizione e alla quantit\u00e0 di materiale (i pezzi). <\/p>\n<p>Gli esseri umani giocano in modo ancora diverso: i rami analizzati sono molti meno di quelli presi in considerazione da un computer, ma il giocatore umano si basa su un piano strategico, che magari si realizzer\u00e0 in un numero di mosse superiore alla visibilit\u00e0 del computer.<\/p>\n<p style=\"font-weight: bold;\">Link:<\/p>\n<p>Potete trovare quasi tutto sugli scacchi su questo splendido sito:<\/p>\n<p><a href=\"http:\/\/scacchi.qnet.it\/\">http:\/\/scacchi.qnet.it<\/a><\/p>\n<p>in particolare potete trovare le partite Deep Blue &#8211; Kasparov<\/p>\n<p><a href=\"http:\/\/scacchi.qnet.it\/manuale\/comp02.htm\">http:\/\/scacchi.qnet.it\/manuale\/comp02.htm<\/a><\/p>\n<p\/>\n<p\/>\n","protected":false},"excerpt":{"rendered":"<p>[&#8230;]<\/p>\n","protected":false},"author":155,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[60],"tags":[],"class_list":["post-2129","post","type-post","status-publish","format-standard","hentry","category-domande-varie-informatica-e-telecomunicazioni"],"_links":{"self":[{"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/posts\/2129","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/users\/155"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/comments?post=2129"}],"version-history":[{"count":0,"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/posts\/2129\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/media?parent=2129"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/categories?post=2129"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/tags?post=2129"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}