Mi sto chiedendo come interpretare l'aggiornamento della velocità in un binario Particle Swarm Optimization ( PSO). Per ricapitolare l'aggiornamento di velocità:
V(t+1) = V(t) + c1 * r1 * (XlocalBest  - X(t))
                + c2 * r2 * (XglobalBest - X(t))
 Capisco che il vettore di posizione binaria si rapporta ai valori nel dominio discreto. Tuttavia, il vettore binario contiene solo   0    e   1    s, dove la lunghezza di questo vettore è   n    -dimensionale. Quello che non ottengo è che il vettore di velocità con valore reale   n    prende il vettore binario% (%) di posizione e prende per esempio la differenza tra la migliore posizione locale a un dato indice e la posizione corrente. 
 È corretto che ci siano solo   n   ,   0    valori che vengono sottratti per ogni valore di   1    nell'aggiornamento? (Quindi, ad esempio,   X    viene solo moltiplicato con   c1 * r1   ,   0    o   1   )? 
 Come posso utilizzare queste informazioni in relazione alla  funzione sigmoid  che viene spesso utilizzata in questi OSP? Dovrei aggiornare le velocità, e per esempio prendere un vettore di velocità delle particelle in cui ogni elemento è nel dominio   -1   , e inserirlo nella funzione sigmoide, e attivare o disattivare le posizioni bit corrispondenti nel vettore binario della particella come   [0,1)   , dove   r < sigmoid(velocity value)    è casuale in   r   ? Questo suona giusto, o ho capito male?