Newsgroup: it.lavoro.informatica
Titolo: Re: algoritmo orario lezioni scuola

 (non vi dico quanto darei per rileggere quel listato)
 
mah.
 

 già a quei tempi (immagino non prima di 20 anni fa) 
 
ah scusa leggo negli anni 80. ma cambia poco, non c'è nulla di 
"artificialmente intelligente" in quel codice.
 

 Mai detto che ci fosse alcunche' di AI.
 
e ci mancherebbe altro.
 
era il periodo in cui c'erano praterie di cose fatte a mano che chiunque 
avesse tre nozioni in croce di basic poteva automatizzare e così si 
sentiva programmatore. 
nel tuo caso si trattava di sfruttare l'ovviamente enorme maggiore 
velocità del computer rispetto alla manualità umana, per applicare la 
metodologia più elementare e al contempo più inefficiente quale appunto 
il brute force. 

 potrebbe verificarsi nelle mosse successive?
 
Gli algoritmi piu' classici utilizzano forza bruta, ma non le provano
tutte. Guardati Minimax e alpha-beta pruning.
 
Cosa faccia Alpha Zero di Google (probabilmente il chess engine piu'
forte mai creato), invece, non ne ho la piu' pallida idea. Ma non credo
usi i suddetti algoritmi.

 quella direzione tanto sai già che è una mossa svantaggiosa.
 
non sono un giocatore di scacchi ma da quel poco che ne so un computer 
che gioca in questo modo viene battuto da un umano a mani basse. 
io credo che in questi software (intendo quelli che competono, non i 
motori installati come giochi sui pc) ci sia ben poco di brute force e 
molto di machine learning. 

 
Questa estate ho studiato alcuni algoritmi descritti da un paper 
pubblicato alcuni anni fa da Andrea Schaerf (docente italiano di 
informatica) che presentava le diverse filosofie di implementazione.
 
Potrei scriverne per ore ma non credo interessi a nessuno, se vuoi 
contattami in privato.
 
Riassumo solo dicendo che è un problema di ricerca operativa e di 
minimizzazione della "funzione obiettivo" (il tuo valore "sfiga") alla 
ricerca di una soluzione "accettabile" e non della migliore in assoluto...
 
Nella scuola delle mia figlie ho fatto usare il programma opensource 
FET, molto potente ma non semplice da usare, nel cui sito potrai trovare 
informazioni sull'algoritmo usato e il codice.
 
https://lalescu.ro/liviu/fet/
 
 
Per documentarti cerca su internet TIMETABLE, addirittura c'era un 
campionato fra università per gli algoritmi di timetable scolastici...

>>>>  
http://www.bb2002.it
 :)  <<<<<
........... [ al lavoro ] ...........

 era il 1978 circa...
 
largocirca coetaneo, quindi.
d'altronde "applicazioni tecniche" mi suonava familiare.

 risultato non dovrebbe ottenersi appunto col brute force? 
 
il tempo di computazione è parte del risultato, spesso determinante. 
quindi direi la risposta è no secco.
 


non direi, mi sa che ha ragione lui. Quasi tutti gli engine di base
usano questo algoritmo
 
https://it.wikipedia.org/wiki/Potatura_alfa-beta
 
 
e di AI credo non abbiano nulla.  Fa eccezione AlphaZero (e ora ne 
stando spuntando altri), che pero' merita un discorso a parte.
 

 ha scritto nel messaggio 
news:nZrDC.10480$I77....@fx44.am4...

Ricordo uno *straordinario* articolo di Martin Gardner intitolato
"Scatole di fiammiferi e macchine che imparano a giocare",
pubblicato sia su Scientific American sia nella collana di
libri "Enigmi e giochi matematici".
 
A suo tempo la macchina l'ho fisicamente costruita
e fatta giocare.
 
Gioca a filetto con un algoritmo  banale
 (l'ultima mossa di una  partita persa viene eliminata)
e dopo un po' di partite e' imbattibile
Il filetto e' un gioco equo, fra avversari di uguale capacità,
finisce sempre pari.
 
Potete anche cercare su google "robot a scatoline"   :-)
 
ciao
fm 
 
 

 "numero dei giocatori: zero" :-)
 
 
Ho scritto velocemente e forse non mi sono spiegato bene.
 
Mi riferivo al tris ( o filetto)  3x3 e ovviamente a due giocatori... :-)
 
ciao
fm 
 
 

 Oppure preferisci un orario di merda generato in 2 millisecondi?
 
non usare straw man arguments. gli algoritmi efficienti per un dato 
problema non restituiscono (ovviamente) risultati di merda. 
 
e il "che te ne fotte" dipende (sempre ovviamente) da cosa stai 
computando: se le pianificazioni devi generarle in real time e magari ne 
devi generare qualche centinaio, la differenza fra 2 millisecondi e pochi 
secondi è determinante. 
 
poi, per carità, capisco per l'ambito di cui stai parlando il risparmio 
di tempo non sia determinante (anzi). ciò non toglie che, per rispondere 
alla tua domanda, un risultato restituito in un tempo minore sia un 
risultato migliore.

 Mi riferivo al tris ( o filetto)  3x3 e ovviamente a due giocatori... :-)
 
L'avevo capito, e confesso che immediatamente ho pensato:
 
"Strano gioco. L'unica mossa vincente è non giocare. Che ne dice di una bella partita a scacchi?"
 
Ma questa è cosa per chi è diversamente giovane, come me. 
 
-- 
Ciao!
Luca

 Mi riferivo al tris ( o filetto)  3x3 e ovviamente a due giocatori... :-)
 
L'avevo capito, e confesso che immediatamente ho pensato:
 
"Strano gioco. L'unica mossa vincente č non giocare. Che ne dice di una 
bella partita a scacchi?"
 
Ma questa č cosa per chi č diversamente giovane, come me.
 
 
Wargames.
 
Imvho un film da bambocci,
preferisco "Il dottor Stranamore" :-)
 
 
ciao
fm
 
 
ciao
fm 
 
 

 preferisco "Il dottor Stranamore" :-)
Bambocci di una certa eta', trattandosi che il film e' del 1983. :)
 

 se il tempo di computazione è pochi secondi, che te ne fotte?
 
Forse non hai chiare le grandezze in gioco...
 
Se inizi a leggere qualcuno dei numerosissimi paper universitari 
sull'argomento capirai che NESSUNO propone un brute-force... NESSUNO... 
e un motivo ci sarà...
 
Una classe di prima media sta a scuola 6 ore per 5 giorni alla settimana 
(o 6 giorni per 5 ore se vanno il sabato)... in pratica occorre riempire 
30 caselle...
 
Ha le seguenti materie:
italiano 6 ore
matematica 6 ore
storia/geografia 4 ore
inglese 3 ore
seconda lingua 2 ore
musica 2 ore
tecnica 2 ore
artistica 2 ore
sport 2 ore
religione 1 ore
 
Per favore calcola tutte le combinazioni possibili per questa classe.
Poi per la scuola di mia figlia moltiplica il tutto per 27 classi.
 
Poiché i docenti sono assegnati alle sezioni, ad esempio la docente D1 
alla sezione S5, è inutile con il brute-force provare la combinazione 
della docente D1 nella sezione S3, oppure dandole lezione il giovedì se 
è il suo giorno libero...
 
NON ESISTE UNA soluzione migliore in assoluto ma esiste quella che ha un 
punteggio "accettabile" della funzione obiettivo... funzione obiettivo 
che è complessa e prevede un numero sostanzioso di calcoli e basta che 
si cambiano alcuni parametri che cambia tutto....
 
 
Chiudo con un aneddoto: dopo aver inserito tutti i vincoli nel programma 
FET ha fatto girare l'elaborazione su due server di classe enterprise di 
cui dovevamo fare il burn-test... dopo 48 ore ho fermato l'elaborazione 
senza avere risultati apprezzabili.
 
Sono andato a scuola proponendo di allentare i vincoli ma nel frattempo 
ho lanciato l'elaborazione (sempre con il programma FET) sul pc usato 
per la configurazione... e dopo TRE MINUTI ha trovato un buon risultato!!!!
 
 

 preferisco "Il dottor Stranamore" :-)
 
Oh, all'epoca aveva un'altra età, che ti devo dire....
IMHO belli entrambi, con sicuramente qualche ingenuità in più in Wargames. Anche se la scena di Broderick che attacca la cornetta del telefono al modem è storica.
 
Ciao!
Luca

 stando spuntando altri), che pero' merita un discorso a parte.
 
non sono d'accordo. o meglio, il fatto che usino degli algoritmi di 
riduzione non significa che abbiano un approccio al gioco del tipo brute 
force. al di la della fattibilità per un gioco prettamente di strategia 
non vedo come possa avere successo.
 
 
 
 

 Poi per la scuola di mia figlia moltiplica il tutto per 27 classi.
 
mi permetto di aggiungere due numeri, giusto per spiegare meglio 
all'amico come non abbia idea delle grandezze in gioco.
 
lui sostiene di provare *tutte* le soluzioni, ben sottolineando il 
*tutte*. facendo due conti: dieci materie su trenta caselle producono 
10^30 combinazioni, ovvero 1 con trenta zeri soluzioni diverse. 
 
questo per *una* classe.
 
su 27 classi, non trattandosi di elaborazioni indipendenti (essendo che i 
docenti hanno lezioni in classi diverse e ovviamente devono incastrarsi 
fra loro), in realtà non si moltiplicano le combinazioni ma... 
l'esponente. 2 classi sono 60 caselle da riempire con le solite 10 
materie, 3 classi 90 e così via. per assurdo si potrebbe arrivare a 
sviluppare 10^810 diverse soluzioni; a quel punto si farebbe prima a 
contare certosinamente tutti i protoni, elettroni e neutroni 
dell'universo che a trovare un fottuto orario a quella scuola con il 
"metodo unilì".
 
ma che te ne fotte del tempo, tanto son pochi secondi :-)


A suo tempo implementai un motore per la dama, niente di che, lo feci 
per gioco, ma qualche nozione mi e' rimasta.
 
Sostanzialmente, la parte strategica di cui parli, te la giochi sulla 
valutazione della posizione presa in esame. Ovvero data una posizione 
sulla scacchiera che punteggio do al bianco e che punteggio do al nero.
 
Per tale valutazione e' sufficiente applicare alcune veloci euristiche, 
tipo numero dei pezzi, dinamicita' dei pezzi, negli scacchi almeno in 
apertura il centro scacchiera ha un peso maggiore rispetto alle ali, 
eccetera.
 
Non credo neppure che per tale valutazione i principali engine 
utilizzino reti neurali o affini, in quanto e' essenziale che la 
valutazione sia il piu' veloce possibile. Piu' veloce e' la valutazione 
maggiore e' il numero di posizioni che riesci a valutare.
 
A questo poi agguingi librerie per le aperture e posizioni precompilate 
per i finali, piu' svariate altre ottimizzazioni (caching delle 
posizioni, eccetera), molte delle quali non le conosco :D
 
Comunque, come detto, AlphaZero di Google usa effettivamente reti 
neurali, ma e' un tipo di engine completamente diverso. Non classico almeno.
 

 force.
 
Non capisco.
Mi aspettavo che sostenessi che l'uso di algoritmi di riduzine esclude 
l'approccio /brute force/ , il mio italiano e' scarso.
L'algoritmo normalmente tende a /ridurre/ l'approccio brutale.
Se l'algoritmo e' polinomiale  la forza bruta e' esclusa ma algoritmi
ricorsivi, in genere, riducono ma /non/ escludono il  bf
Esempio:
i numeri primi di natura x^2+1 (primi di Landau, es 5,17,37...)
Applicando un /algoritmo/ riduce a meta' i tentativi
e, se sei furbo, esclude anche i valori terminati 1,4,6,9
e se sei ancora piu' furbo ti consente la verifica solo su
33/65 o 495/1105
 
e.... ,se sei come me, esclude anche, progressivamente,
altre robe ;-)
 
 
-- 
ac (x=y-1)
Aborro il Killfile
(La violenza e' l'ultimo rifugio degli incapaci -Salvor Hardin-)

 ha scritto nel messaggio 
news:PcNDC.8148$RH3....@fx27.am4...

qui sotto come DeepBlue ha spacciato Kasparov, mica pizza e fichi  :-)
 
https://www.youtube.com/watch?v=cwmIHnEHfr8
 
 
ciao
fm 
 
 

 l'approccio /brute force/ , il mio italiano e' scarso.
 
severo ma giusto. nella sostanza intendevo questo.

 
 
si potrebbe fare un confronto con questo ;)
 
http://olivier.poudade.free.fr/src/BootChess.asm
 


 
 
dimenticavo l'articolo:
http://www.bbc.com/news/technology-31028787
 


Il 24/04/2018 16:22, rootkit ha scritto:

Se a qualcuno interessa, si puo' prendere spunto dai seguenti link
per eventuali approfondimenti sulla programmazione di chess engines
(anche se purtroppo e' probabile che il primo link tra un po' verra' 
chiuso, come credo accadra' per tutti i "wikispaces").
 
https://chessprogramming.wikispaces.com/
 
 
http://www.g-sei.org/
 
 
 
In realta' non so bene quale sia la definizione esatta di "brute force", 
ma di solito i programmatori di software scacchistici che ho conosciuto 
io dicevano che l'approccio era quello di applicare un approccio "brute 
force" con una correzione data appunto dall'algoritmo di pruning 
alfa-beta e altre correzioni, ad esempio per tenere conto del tempo che 
rimane per giocare le varie mosse (perche' se si deve fare una mossa in 
2 secondi anche la potatura deve essere veloce, mentre se mancano 90 
miunuti il software può elaborare piu' a lungo).
 
Poi ci sono altre "correzioni", ad esempio quella di usare un "libro 
delle aperture", visto che ancora oggi nelle fasi iniziali della 
partita, quando ci sono ancora tutti i pezzi sulla scacchiera sembra
preferibile scegliere le mosse piu' giocate dai giocatori migliori del 
passato (eventualmente includendo tra questi anche i software 
scacchistici piu' forti) piuttosto che lasciare che il software perda 
tanto tempo ad elaborare la mossa migliore in posizione complessa, anche
se in realta' credo che nelle competizioni tra motori scacchistici sia 
vietato l'uso di un libero di aperture.
 
 
Comuqnue nel caso di competizioni agonistiche, sia tra umani che tra 
motori scacchistici, risparmiare tempo e' (o almeno puo' essere, in 
certe situazioni) una parte importante della competizione, quindi a 
volte può essere preferibile una valutazione meno accurata della 
posizione, purche' si possa prendere una decisione in tempi rapidi.
 
I risultati dell'ultima competizione agonistica tra motori scacchistici 
si possono trovare qui:
 
http://tcec.chessdom.com/live.php
 
 
 
Attualmente e' in corso la season 12, ma l'ultima conclusa e' la season 
11, i cui risultati dovrebbero essere rintracciabili alla voce 
"Archive". Nella season 11 un motore scacchistico italiano si e' 
classificato al 5. posto.
 
 
 
Dal punto di vista teorico  la partita si puo' rappresentare con un 
albero in cui la radice e' la posizione iniziale e da questa ci si muove 
nei nodi sottostanti a seconda delle (semi)mosse che si fanno.
 
Di solito tutti i motori scacchistici permettono sia di giocare contro 
di loro (nel qual caso devono per forza scegliere un qualche algoritmo 
di potatura, perche' le mosse vanno fatte entro un certo tempo finito) 
che di analizzare una posizione data.
 
In questo ultimo caso l'algoritmo può essere veramente del tipo "brute 
force", solo che io con un PC
con processore Intel i5 e 16 GB di RAM se lo lascio acceso 8-10 ore ad 
analizzare una posizione, di solito riesce ad analizzare scendendo 
nell'abero a profondita' comprese tra 25 e 35, a seconda della 
complessita' della posizione da analizzare (e ovviamente il tempo che 
serve per passare da profondita' n a profondita' n+1 in genere e' molto 
maggiore di quello che serve per passare da profondita' n-1 a 
profondita' n, direi con crescita esponenziale del tempo che serve per 
passare al livello successivo man mano che la profondita' aumenta).
 
Dato che ogni livello di profondita' dell'albero corrisponde ad una 
semimossa, questo significa che al massimo il software ha analizzato 35 
mosse e, se non ricordo male, sempre secondo alcune stime, una partita 
di scacchi può avere teoricamente una lughezza intorno alle 5000 
semimosse, tenendo conto delle regole del gioco. E se la crescita dei 
tempi man mano che si aumenta la profondita' di analisi, per passare da 
profondita' 35 a profondita' 5000 mi da che ci vuole un bel po' di tempo 
(ammesso che altre risorse, tipo la memoria, siano sufficienti)
 
 
PS:
Potresti dire dove hai trovato il 10^120 che hai scritto nell'altro post?
 
Nei vari corsi da istruttore di scacchi che ho frequentato io si e' 
quasi sempre parlato di 10^43, pero' come numero di possibili posizioni 
sulla scacchiera (se non sbaglio si parlava di 10^43 come posizioni 
"legali", quindi escludendo quelle che e' impossibile che si verifichino 
in base alle regole del gioco).
Anche in un libro in tedesco su scacchi e matematica (che pero' ora non 
trovo) avevo letto 10^43. Tu pero' parli di "numero di partite di 
scacchi" che e'  una cosa un po' diversa
 
---
Questa e-mail è stata controllata per individuare virus con Avast antivirus.
https://www.avast.com/antivirus
 
 

 mosse 
 
ovviamente era 35 semimosse


 miunuti il software puÃ² elaborare piu' a lungo)
 
sargon iii di apple fu un precursore: pensava alla sua mossa anche durante 
il tempo avversario
 
http://www.digitanto.it/mc-online/PDF/Articoli/034_042_042_0.pdf
 
 
effettuata la mossa un piccolo asterisco comincia a lampeggiare in alto a 
destra dello schermo. È  questa la maggiore novità del Sargon III: 
l'asterisco infatti ci comunica che il Sargon ha cominciato già a pensare 
alla sua prossima mossa e continuerà per tutto il tempo che voi impiegate 
ad effettuare la vostra scelta.


 bitcoin al fine di velocizzare il brute force?
 
L'argomento sul gioco degli scacchi è un po' OT qui. Ci sono mille-mila 
altri gruppi fatti apposta. Oltre a quelli già segnalati consiglio 
talkchess.com
 
 
Oggi (2018) un modesto smartphone con installato l'engine Stockfish 
(free e open source) per Android (chiamato Droidfish) ti asfalta il 
campione mondiale di scacchi nel 98.95% dei casi (nel restante 1.05% 
patta). Quindi non serve nessun TIR.


e quindi?

 calcolo?
 
Hanno smesso di sfidare scacchisti umani da  un bel po' visto che non 
c'e' piu' storia.

 post?
 
è detto "numero di shannon" dal matematico che l'ha teorizzato, definito 
come limite inferiore del numero di possibili partite a scacchi (ovvero 
approssimato per difetto).
 
lo trovi un po' ovunque, io che non sono appassionato di scacchi l'ho 
incrociato leggendo fra le curiosità matematiche e astronomiche.

 ha scritto nel messaggio 
news:d8cad921-5473-969a...@gmail.com...

Era 20 anni fa.
Immaginiamo oggi, forse l'AI non e' neppure necessaria.
 
ciao
fm
 
 

 Immaginiamo oggi, forse l'AI non e' neppure necessaria.
Visto che le mamme dei coglioni sono sempre incinte, magari un po' di AI 
iniettabile ... chissa'?
:-)

 su 27 classi, [...]
 
Però ricordando come mia moglie risolveva il tutto in un paio di pomeriggi 
o serate, a mano con foglio quadrettato, matita e gomma... ora mi tocca 
riconsiderarla come un Karpov o Fischer qualsiasi ;-)
 
-- 
Sans

 mi tocca riconsiderarla come un Karpov o Fischer qualsiasi ;-)
 
ma perché giustamente tua moglie usava testa e metodo :-) 
quando implementammo un algoritmo genetico il principio era logicamente 
simile a quello umano della matita e gomma. nella sostanza si partiva da 
orario compilato in modo casuale le caselle con le materie (ovviamente 
casuale era la posizione, non il numero di ore per materia/classe), 
dopodiché si iniziavano le mutazioni (sostanzialmente scambiare a coppia 
le caselle). ogni generazione veniva valutata se è migliore, peggiore o 
invariata rispetto al genitore e nel caso si decideva in base a dei 
criteri se poteva "procreare". quando non si aveva miglioramenti per un 
dato numero di mutazioni si archiviava il dato e si riprendeva daccapo 
con un altro seme. la pseudo-casualità del seme in questo caso è 
fondamentale perché una distribuzione statistica corretta in primis 
permette di trovare i risultati in un tempo ragionevole. 
 
 
 

 bitcoin al fine di velocizzare il brute force?
 
Oggi come oggi non vengono praticamente piu' effettuate sfide tra
i software e gli umani, anche perche' i software che girano su un 
normale PC sono tranquillamente in grado di battere il campione del 
mondo di scacchi. Questo direi che accade ormai da almeno 10-15 anni e 
quindi non c'e' bisogno di portarsi dietro carrettate di Hardware dedicato.
 
Ai tempi di Kasparov era vero il contrario (cioe' all'epoca
i software erano meno forti degli scacchisti)
 
e il primo computer che vinse un match contro l'allora
campione del mondo (Kasparov, appunto)
 
fu Deep Blue, che pare fosse stato costruito appositamente da IBM per 
sfidare il campione del mondo di scacchi (e, dopo aver vinto il match, 
Deep Blue fu smantellato)
 
https://it.wikipedia.org/wiki/IBM_Deep_Blue
 
 
 
Addirittura, da quando i software scacchistici hanno
avuto il sopravvento sugli umani anche nelle competizioni
tra umani sono cambiate alcune regole (o almeno consuetudini).
 
Ad esempio non si gioca piu' con la "mossa in busta".
 
Una volta se la partita durava piu' di un certo tempo, la si 
interrompeva e la si riprendeva il giorno successivo.
 
Uno dei due giocatori (quello a cui toccava muovere) metteva in busta 
chiusa (consegnata all'arbitro) la mossa che avrebbe giocato il giorno 
successivo e il giorno successivo si riprendeva a giocare con la mossa
contenuta nella busta (a partire dall'ultima posizione del giorno 
precendente). Oggi questo non si fa piu' perche' se si mettesse
la mossa in busta i giocatori avrebbero tutto il tempo di consultare il
software e vedere quali sono le continuazioni migliori.
 
 
Ciao,
Marco.


 approssimato per difetto).
 
mi sa che è relativo al numero di mosse, non di partite.
 
poi c'è da tenere in considerazione il fatto che le mosse possono essere 
legali o illegali - per esempio una mossa "tecnicamente" ammissibile ma 
che non si può fare magari perché il Re è sotto scacco e bisogna parare 
lo scacco (da cui scaturiscono partite legali o illegali)
 
il numero di mosse legali - se non ricordo male - è di molto inferiore 
ma pure sempre enorme
 
e comunque - sempre per restare OT :) - a chi è interessato può andarsi 
a guardare su GitHub il progetto Leela Chess Zero, più o meno 
l'equivalente open source che gira su hardware "umano", di Alpha Zero

 mi sa che è relativo al numero di mosse, non di partite.
 
no credo sia proprio il numero di partite possibili, quindi combinazioni 
di mosse (quindi per questo un numero esagerato). non so quanto tenga 
conto delle mosse illegali, bisognava forse chiederlo a lui quando si 
poteva :-) 
siamo comunque nell'ambito della metafisica...


Forse? Guarda che e' assodato. Ripeto per l'ennesima volta, motori come Stockfish non fanno uso di AI e battono facilmente il campione del mondo girando su un cellulare.

 interruzioni e senza andare in bagno?
 
"Tutta una tirata senza interruzioni" si', "senza andare in bagno" no, 
anche se il regolamento dice che si puo' andare in bagno solo quando 
tocca all'altro.
 
Le partite anche oggi possono durare 4-5 ore, anche in tornei tra 
dilettanti, anche se i tempi medi sono comunque in diminuzione rispetto 
al passato; quelle
dei professionisti a volte possono durare anche 7 ore o piu'.
Se non sbaglio l'anno
scorso o due anni fa in un torneo valido per le qualificazioni per
decidere chi sarebbe stato lo sfidante del campione del mondo, una 
partita e' durata 7 ore e 40 minuti ed e' stata probabilmente la partita
che e' durata piu' a lungo, da quando non si gioca piu' su piu' giornate.
 
Pero' ci sono anche tornei in cui ogni giocatore ha 5 minuti per finire 
tutta la partita.
 
 
[]
Ciao,
Marco


che gioca in questo modo viene battuto da un umano a mani basse.
 
 
(molto) Tempo addietro ne ho sviluppato uno, di software che giocano a 
scacchi, venduto da una nota societa' (e che tra l'altro ho visto ancora 
esposto in qualche libreria).
L'approccio e' proprio quello del brute-force. Con tutti i "trucchetti" del 
caso, potatura alfa beta, euristiche varie, espansione delle foglie non 
"quescienti" e cosi' via (non mi ricordo come si chiama), ed e' un approccio 
vincente.
Ad oggi che io sappia non ci sono alternative. Fu calcolato che a ogni 
livello di profondita' dell'albero in piu' corrispondono X punti elo in piu' 
del giocatore con correlazione quasi lineare.
Oggi non c'e' storia, con i computer moderni nessun umano ha possibilita' 
contro un software. Pure se gli togli le tabelle di aperture e finali 
massacra senza ritegno il 99.99% delle persone.
Pure il mio programma, che non era dei migliori come gioco (era molto 
semplice, poco ottimizzato e senza particolari vezzi tipo appunto le 
tabelle), oggi ha diverse centinaia di punti elo in piu' solo perche' gira 
su pc piu' veloci. 
 

 Ad oggi che io sappia non ci sono alternative.
 
come hanno scritto in altri post del thread, ci sono

 suggerire la mossa da un computer in questo modo
[...]
 
Non è così semplice.
 
E' semplice soltanto se l'imbecille (perché di imbecille si tratta) usa 
un auito in modo costante, e questo aiuto è un software noto (di solito 
fra i più forti) perché alla fine della partita puoi confrontare le 
mosse e se coincidono per più di un certo tot % stai sicuro che ha 
barato. I software automatici che sgamano i bari fanno più o meno così, 
e tengono conto anche di altri parametri (tipo il tempo impiegato ad 
effettuare la mossa).
 
Una volta c'erano i client di scacchi (credo che qualcuno ancora sia in 
giro) che ti controllavano il carico della CPU e i processi in 
background, e robe che farebbero inorridire persino il più liberista, 
menefreghista della privacy.
 
Oggi coi browser è impossibile controllare lato client.
 
Se il baro utilizza il software "ogni tanto" e/o un software non 
fortissimo (non c'è bisogno di usare il top per battere un avversario 
umano) è difficilissimo da sgamare e quando arriva il momento di 
analizzare giocatori che son forti di loro i falsi positivi saltano 
fuori a iosa.

 
 
Siamo piuttosto ot, ma visto che casualmente
(molto casualmente, visto che cercavo tutt'altro) mi sono
imbattuto nella seguente tesi di laurea
 
tesi.cab.unipd.it/43100/1/tesi.pdf
 
 
riporto il link, visto
che la tesi mi pare spiegare abbastanza bene come vengono fuori i vari 
numeri o almeno l'origine delle teorie che hanno portato a questi numeri (
c'e' il 10^43 che dicevo io e c'e' anche il 10^120 che dicevi te, anche 
se le ultime stime sembra che siano
piu' dell'ordine 10^46 per il numero di possibili posizioni. Chi ha 
scritto la tesi azzarda poi anche un 10^123 come numero di possibili 
partite ).
 
Invece per essere un po' piu' IT, non tanto rispetto al thread, ma 
rispetto all'informatica in generale, l'autore della tesi (che credo sia 
del 2013) afferma che i computer attuali (all'anno della tesi) eseguono 
circa 10^18 operazioni al secondo (numero che non conoscevo e che avevo 
provato a chiedere anche qui sopra qualche anno fa, senza ottenere 
risposte precise).
 
Comunque...
'Azz! Quando studiavo io all'universita' mediamente un PC ne eseguiva 10^7!!
 
Inoltre la tesi da' qualche spiegazione piu' approfondita dell'algoritmo
di pruning alfa-beta e dell'algoritmo minimax utilizzato per tagliare 
rami dell'albero.
 
Poi sembra dare anche qualche indicazione sull'algoritmo utilizzato da
Deep Blue, oltre a menzionare quello che probabilmente e' stato il
primo scacchista di alto livello ad interessarsi di programmi di scacchi 
per computer, ovvero
Michail Botvinnik che, oltre ad essere stato tre volte campione del 
mondo di scacchi  tra il 1948 e il 1963 era anche laureato in ingegneria 
elettrica ed e' considerato (almeno tra gli scacchisti) un precursore 
dello sviluppo di software applicato agli scacchi.
 
Ciao,
Marco
