Algoritmo :: Evolve :: util

Alcune utili funzioni di utilità per l'uso in algoritmi evolutivi.
Scarica ora

Algoritmo :: Evolve :: util Classifica e riepilogo

Annuncio pubblicitario

  • Rating:
  • Licenza:
  • Perl Artistic License
  • Prezzo:
  • FREE
  • Nome editore:
  • Mike Rosulek
  • Sito web dell'editore:
  • http://search.cpan.org/~rosulek/Weather-Bug-0.01/lib/Weather/Bug.pm

Algoritmo :: Evolve :: util Tag


Algoritmo :: Evolve :: util Descrizione

Alcune utili utility funzioni per l'uso in algoritmi evolutivi. Algoritmo :: Evolve :: Util è un modulo perl con alcune utili funzioni di utilità per l'uso in algoritmi evolutivi .synopsis Utilizzare l'algoritmo :: Evolve :: Util ': str'; Utilizzare Algoritmo :: Evolve :: Util ': ARR'; SYNTAXAT Il momento, questo modulo fornisce solo utilità di stringhe e array-matrici. Possono essere importati con gli argomenti di utilizzo ": str 'e': ARR 'rispettivamente. Nella seguente descrizione, un gene si riferisce a una stringa o un riferimento di array. Una posizione nel gene si riferisce a un singolo carattere per i geni di stringa e un elemento di array per Genes.Str_Crossover ($ String1, $ string2 ) ARR_CROSOVER (@ array1, @ array2 ) restituisce un casuale Crossover del punto N tra i due geni dati. $ N Impostazioni predefinite a 2. I due ingressi dovrebbero essere la stessa lunghezza, anche se questo non è applicato. $ N deve essere anche meno della dimensione dei geni. Se non sei familiare con l'operazione di crossover, funziona in questo modo: sdraiati i due geni uno sopra l'altro. Pick n posizioni a caso e tagliare entrambi i geni in ogni posizione. Ora scambia ogni altra coppia di segmenti, e nastri il backup dei geni. Quindi un possibile crossover a 2 punti sui geni di stringa AAAAAA e BBBBBB produrrebbe i due geni Abbaaa e Baabbb (i due "tagli" qui erano qui dopo la prima e 3a posizioni) .str_aggrement ($ string1, $ string2) arr_agrement (@ array1 , @ array2) restituisce il numero di posizioni in cui i due geni sono d'accordo. Non applichi che hanno le stesse dimensioni, anche se il risultato è in qualche modo insignificante in quel caso. Il confronto genico è stato effettuato in modo non unicode-friendly. Per sovrascrivere questo e utilizzare un confronto stringa unicode-amichevole (più lento), impostare $ algoritmo :: Evolve :: Util :: Unicode_Strings a un vero valore .In Geni di array, il confronto dei singoli elementi è fatto con EQ.note che questo è La metrica di hamming, e non la metrica di modifica della distanza. La distanza di modifica potrebbe essere anche un'interessante fitness da usare. Ci sono almeno due moduli (testo :: Levenshtein e testo :: Levenshteinxs) che so che calcola la distanza di modifica di due stringhe.str_mutate ($ string1 ]) Arrt_Mutate (@ Array1 ]) restituisce una mutazione casuale del gene secondo l'alfabeto indicato (inadempiente a {0,1}). Se $ NUM è inferiore a 1, esegue una mutazione probabilistica, con ogni posizione avente una probabilità di $ NUM di essere mutato. Se $ num è maggiore o uguale a 1, esegue la mutazione N-PINT: esattamente $ le posizioni num vengono scelte a caso e mutate. $ NUM Default a 1. Una comoda regola del pollice è iniziata con un tasso di mutazione di 1 / genice_length.a mutazione cambierà sempre il carattere in questione: una "A" non verrà mai scelta per sostituire un "A" esistente in una mutazione . La seguente identità tiene per mutazioni N-Punto: Str_agrement (Str_Mutate ($ STER_STRING, $ N, @ALPH), $ somestring) == lunghezza ($ somestring) - $ n; l'alfabeto per un gene stringa dovrebbe essere costituito da solo singoli caratteri A meno che tu sappia cosa stai facendo. Proceibilmente, è possibile implementare una mutazione "Aggiungi" e "rimuovi" utilizzando un alfabeto che contiene stringhe con lunghezza! = 1. Ma questo sembra un po 'hackish per me. Per i geni dell'array, l'alfabeto può essere praticamente qualcosa di significativo per te.str_random (Dimensione $ ) Arr_random ($ Dimensione ) restituisce un gene casuale della dimensione indicata sull'alfabeto specificato, inadempiente {0,1}. Requisiti: · Perl.


Algoritmo :: Evolve :: util Software correlato