Domanda

Sono ancora l'hacking sul mio vecchio rubino per i non morti post (lo so, lo so, smettere di cercare di portare il palo dai morti Chuck). Ma il codice ha ottenuto un po 'fuori mano e ora sto lavorando su un algoritmo genetico per creare la battaglia finale di vivi e morti con l'essere l'idoneità per quanto tempo la battaglia dura.

Quindi, ho le basi di giù; come regolare gli attributi del gioco e come acquisire l'idoneità di una soluzione, quello che non riesco a capire è come memorizzare la forma fisica in modo che so che quando ho provato una combinazione prima.

Non sono stato in grado di trovare molto codice genetico da guardare lasciare il codice da solo che posso leggere abbastanza bene per dire che cosa sta succedendo. Qualcuno ha idea di come questo avviene normalmente o semplicemente un algoritmo che potrebbe aiutarmi a punto nella giusta direzione?

È stato utile?

Soluzione

  

quello che non riesco a capire è come   conservare la forma fisica in modo che io so quando   Ho provato una combinazione prima.

Normalmente in una soluzione GA non siete preoccupati per generare la stessa "soluzione" che cosa siete preoccupati è quando il tasso di miglioramento nel vostro 'punteggio' si stabilizza.

Ora, se la vostra voglia di log / tracciare la storia "soluzione" si molti vogliono sapere quando riappare quest'ultimo, ma suppongo ci sia qualche natura casuale al "gioco", quindi si vorrebbe oggetto di ripetere piste.

Altri suggerimenti

In un GA non si vuole rivalutare una soluzione se il test di idoneità richiede molto tempo. Utilizzare una tabella hash per memorizzare i valori di fitness e fare il tasto cancelletto cromosoma. Utilizzare la "Manovra degli Orchi"; controllare la cache di primo, se è lì recuperarlo e continuare, altrimenti calcolare e metterlo nella hash per la prossima volta.

Se volete un esempio completo di un GA si potrebbe ottenere il libero, open source, Matlab GA Toolbox dal team di calcolo evolutivo presso l'Università di Sheffield nel Regno Unito, disponibile qui:

http://www.sheffield.ac.uk/acse/ ricerca / ecrg / gat.html

Anche se non si vuole guardare il codice MATLAB, il manuale che viene fornito con la casella degli strumenti ha una veramente buona e accessibile descrizione di esattamente come il lavoro di gas che possono aiutarvi con il vostro codice Ruby.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top