kobeilprofeta ha scritto:Grazie mille per la risposta. Considera peró questa posizione:
Pedone bianco in b2
Cavallo bianco in c3
Donna nera in c7
Tratto al nero (computer).
Se considerasse solo la propria mossa troverebbe un guadagno a fare Dxc3. Come fa a sapere cosa muoverà l'avversario? Nel esempio che ho riportato io è ovvia una risposta b2xc3, ma con una posizione più complessa la scelta della mossa variarebbe probabilmente a seconda dell'Elo del giocatore.
ciao kobeil,
anch'io tempo fa avevo iniziato a preparare un programma, e avevo quasi finito la scacchiera con tutti i pezzi e pedine e annessi movimenti e regole, ma poi mi sono stancato e attualmente ho messo tutto nel cassetto.
Avevo trovato, circa 3 anni fa, una paginetta molto istruttiva e l'avevo salvata, vedo se la trovo e te la posto. Non era comunque (e ovviamente) qualcosa di esaustivo, solamente un'introduzione alle problematiche connesse a un tale tipo di programmazione.
Personalmente trovo interessante la tecnica che si basa sul criterio del minimax della teoria dei giochi, magari praticando un discreto sfoltimento in fase di analisi delle diramazioni delle varianti. Va tenuto presente infatti che il gioco degli scacchi è a informazione completa (tutta l'informazione è nota a priori).
Collegandomi al tuo discorso che ho citato sopra, se ho ben capito quello che intendi, ti faccio osservare che in errori così grossolani una macchina non può incorrere, e questo per il semplice fatto che la macchina non dovrebbe essere programmata per valutare una posizione (terminale) in cui sia essa a muovere. Il software, ammettendo che sondi ad una profondità dell'albero delle varianti pari a uno, lo farà valutando DUE semimosse: la sua e quella dell'avversario; quindi esso analizzerà sempre multipli di mosse (cioè coppie di semimosse).
Il problema legato ai limiti della profondità (stai pur sicuro che con un normale pc oltre le 5/6 posizioni non si va, mantenendo tempi ragionevoli) è che fermandosi a una certa posizione, il computer potrebbe non vedere qualcosa di interessante o minaccioso (ambedue forzatamente), ma che si manifesteranno con chiarezza solo nel proseguimento delle posizioni. A tale riguardo, ricordo che in una partita contro Deep Fritz, io avevo intuito un vantaggio decisivo compiendo un sacrificio di pezzo, mentre il software (impostato a profondità 4) rimaneva su una linea più sobria, che tuttavia portava ad una situazione di parità.
Insomma, come si suol dire, al pc manca il famoso "colpo d'occhio". Questo, almeno, per il momento. Tuttavia, sono abbastanza convinto che se si riuscisse a trovare un sistema di apprendimento diverso da quello classico basato sull'esperienza (ovvero, memorizzo una certa posizione come deleteria e, in futuro, se la ritrovo, la scarto immediatamente) allora la macchina potrebbe pure dotarsi del colpo d'occhio. Un tale sistema, a mio parere, dovrebbe consistere di un'intelligenza artificiale basata su schemi (noti). Non credo che questo sia preso in considerazione dalla teoria (ma potrei sbagliarmi). Sono convinto, inoltre, che con una capacità, per esempio, di sondare fino ad una profondità di 15 nodi, il computer sia a tutti gli effetti imbattibile: quale umano, a meno di uno studio teorico approfondito e particolareggiato a parte di una data apertura, avrebbe una tale vista?
Dal punto di vista tattico (combinazione), poi, la macchina è imbattibile (non sbaglia mai il calcolo). E per i finali? Esistono algoritmi che consentono l'esecuzione perfetta di tutti i finali (noti). Ricordo che da una famosa posizione vincibile, avendo il bianco il tratto, con la (difficile) regola delle case corrispondenti, il computer venne fuori in maniera impeccabile. Quindi!