Domanda

Ho trovato questo molto cool C ++ esempio , letteralmente il "Ciao Mondo !" degli algoritmi genetici.

I così deciso di ricodificare il tutto in C # e questo è il risultato.

Ora mi chiedo:? v'è alcuna applicazione pratica lungo le linee di generare una stringa di destinazione a partire da una popolazione di stringhe casuali

Modifica : il mio amico su twitter proprio Twitter che "è utile per tipo di trascrizione cose come la traduzione Non deve essere scimmia di." . Vorrei avere un indizio.

È stato utile?

Soluzione

  

C'è qualche applicazione pratica lungo le linee di generare una stringa di destinazione a partire da una popolazione di stringhe casuali?

Certo. Immaginate di qualsiasi scenario in cui si sa come valutare l'idoneità di una particolare stringa, e in cui le scelte sono discreti e costretto in qualche modo:

  • Picking nomi pronunciabili ( "Xhjkxc" ha una bassa fitness; "Artekzo" ha un alto fitness)
  • Provare una serie di mosse degli scacchi
  • Indovinare la combinazione di una cassaforte, supponendo che si può dire quanto ti manca per sbloccare ogni bicchiere
  • Picking numeri di telefono che restituiscono le parole (ad esempio "843-2378" ha alta forma fisica perché incantesimi "the-best")

Altri suggerimenti

No. Ogni volta che si esegue il GA, si sta dando l'eventuale risposta. Questo è grande per mostrare come funziona un GA e per mostrare quanto potente possa essere, ma non ha alcun scopo di là di questo.

Si potrebbe scrivere un EA che scrive codice in un linguaggio dinamico come IronPython con l'obiettivo di creare codice che a) esegue senza schiantarsi e b) analizza il mercato azionario e in modo intelligente compra e vende azioni.

Questo è un approccio molto semplicistico su quello che sarebbe necessario, ma è possibile. Si avrebbe bisogno di un host che fornisce un sacco di metodi per il codice IronPython (indicatori tecnici, ecc) e un database di zecche.

Inoltre, sarebbe intelligente per non solo di generare qualsiasi vecchio codice casuale, perché non si formatta il proprio disco rigido. Hai bisogno di una sandbox, ed è necessario limitare gli spazi dei nomi che sono accessibili, e si avrebbe bisogno di fornire un limite di tempo per evitare cicli infiniti. Si potrebbe anche fornire linee guida Symantic che gli permettono di scegliere le parole chiave appropriate approvato invece di tesatura lettere casuali insieme -. Questo sarebbe notevolmente accelerare l'evoluzione

Quindi, sono stato coinvolto con un progetto che ha fatto di tutto, ma la EA. Abbiamo avuto una parabola satellitare che ha ottenuto in tempo reale magazzino zecche dal NASDAQ, un servizio per la negoziazione che ha avuto un API, e una decisione primitiva fare "cervello" che ha fatto le decisioni, come le zecche è venuto in.

Purtroppo, uno dei partner andato fuori di testa, lasciato il suo lavoro, il progetto biforcuta (ha ottenuto il suo piatto proprio, ecc), e iniziato ad operare con una logica che non era pronto. Ha perso un mucchio di soldi. Si scopre che per alcune persone questo tipo di progetto è a un passo dal gioco d'azzardo comune. Ma in ogni caso, il progetto di tipo svanito dopo. Evolving la parte logica è l'anello mancante però. E so che ci sono persone là fuori che fanno questo tipo di cose.

Ho usato GA in 2 problemi di ricerca di vita reale.

Uno era un problema di ottimizzazione di potenza (massimizzare il numero di elettrodomestici acceso, incontrando il vincolo di potenza disponibile e garanzia per ogni apparecchio)

Un altro è stato per l'ottimizzazione della rete radio, massimizzando l'area di copertura di un bilancio impianti fissi

GA ha uno svantaggio principale, di solito funziona con la velocità genetica in modo da utilizzare in alcuni progetti dipendenti dal tempo gravi è molto rischioso.

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