Aiuto funzione di fitness

marx1
bebbo realizzare la funzione di fitness in matlab per il seguente problema:
Cercare la stringa di 20 bit contenente il maggior numero di transizioni da 1 a 0, ovvero la successione 10101010101010101010
volevo presi i cromosomi in decimale trasformarli in binario fare un find per trovare le posizioni degli 1 e vedere se il contenuto della posizione dopo l'1 è 0
penso che come idea sia giusta ma ho qualche problema ha implementarla in matlab
Grazie

Risposte
_luca.barletta
per vedere quali posizioni hanno un bit che differiscono da quello precedente basterebbe fare una bitwise xor tra la parola binaria e la stessa shiftata di una posizione

marx1
facendo cisì dovrei usare un ciclo for ed il prof non li vuole

_luca.barletta
no, perché un ciclo for?

marx1
scusa ho cominciato da poco ad usare matlab come verrebbe implementata la tua idea

_luca.barletta
per lo shift cerca 'circshift' o qualcosa del genere, per la xor cerca 'xor'

marx1
un problema non esiste la funzione bitwise

_luca.barletta
sì, è solo un'espressione che indica la xor fatta bit per bit

_luca.barletta
sì, è solo un'espressione che indica un'operazione fatta bit per bit

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.