Home › Forum › Vecchi ma interessanti post su Yahoo gruppi › UNA DOMANDA SULLA GESTIONE DELLE MOSSE PER NON RIPETERLE
Questo argomento contiene 0 risposte, ha 1 partecipante, ed è stato aggiornato da Administrator 4 anni, 7 mesi fa.
-
AutoreArticoli
-
14/09/2013 alle 18:19 #5429
Nel mio pseudo programma utilizzavo una struct con 2 puntatori partendo dalla
posizione 0 se la bitboard contenente la prima chiave della posizione era >
andavo a cercare verso il ramo > se era minore ripercorrevo il ramo minore;e
andavo avanti cosi’ su ogni elemento della catena finchè non trovavo una
bitboard == oppure se non trovavo + nulla, allora aggiungevo un nuovo elemento e
lo impostavo a quella posizione.
Ma sono certo che non è molto performante come sistema, qualcuno di voi ha
qualche idea da condividere in proposito?————————————————————————————————————–
Re: [g_6] una domanda sulla gestione della memoria per non ripetere le mosse doppieQuoting profankgs <etognoni@live.it>:> Nel mio pseudo programma utilizzavo una struct con 2 puntatori
[snip]
> a quella posizione.
.
Ma esattamente quale e’ il fine che vuoi raggiungere?
Per “non ripetere mosse doppie” intendi quando trovi un posizione
gia’ analizzata?
La tecnica standard in questi casi e’ quella della trasposition tables
(anche dette hash tables).
Rispetto all’albero binario che proponi tu hanno il vantaggio di avere
un tempo di accesso costante, invece che logaritmico. Certo, nel caso
delle TT ci sono casi di doppioni, ma ci sono modi per mitigare questo
effetto.A te esattamente cosa serve?bye^2, mr
———————————————————————————-Ogg: una domanda sulla gestione della memoria per non ripetere le mosse doppie— In g_6@yahoogroups.com, riccardi@… ha scritto:
> Quoting profankgs <etognoni@…>:
> La tecnica standard in questi casi e’ quella della trasposition tables
> (anche dette hash tables).
> Rispetto all’albero binario che proponi tu hanno il vantaggio di avere
> un tempo di accesso costante, invece che logaritmico.vorrei conoscere le tecniche di gestione delle Transposition Tables, l’albero
binario non mi sembra una soluzione logica dato che lo sviluppo delle mosse
avviene secondo determinate direzioni che potremmo definire predeterminate, cioè
ipotizzando un’area riservata alla memorizzazione non mi viene in mente un modo
di occupare lo spazio efficiente basato su una indicizzazione della memoria
magari che sia un po’ basata sulla grandezza del numero/posizione e su come
distribuirlo senza perdere tempo a spostare e ordinare i dati. Non mi interessa
come creare la chiave/posizione quello è un problema a parte, mi interessa una
volta costituita la chiave della posizione unica come la gestisco in memoria in
modo che sia + efficiente e veloce il reperimento delle informazioni?————————————————————————————————————Re: [g_6] Ogg: una domanda sulla gestione della memoria per non ripetere le mosse doppieQuoting profankgs <etognoni@live.it>:
>
> vorrei conoscere le tecniche di gestione delle Transposition Tables,
[snip]
> mi interessa una volta costituita la chiave della posizione unica
> come la gestisco in memoria in modo che sia + efficiente e veloce
> il reperimento delle informazioni?
.
.
Basta prendere solo i bit meno significativi della chiave, e usarli
come indice in un array. Quando salvi devi salvare le informazioni che
ti servono della posizione e in piu’ l’intera chiave (o perlomeno la
parte che non viene usata come indice); quando poi vai a recuperare le
info sulla posizione dalla hash, usi sempre la parte bassa della
chiave come indice, e stavolta devi prima validare il risultato, cioe’
devi confrontare che la chiave della posizione corrente e quella
salvata nella hash table (almeno la parte alta) coincidano.
Questa e’ perlomeno la tecnica standard.bye^2, mrLe faq sono nel menu principale, sotto Documentazione! 😉
-
AutoreArticoli
Devi essere loggato per rispondere a questa discussione.