Algorithmus :: Evolve :: util

Einige nützliche Dienstprogrammfunktionen zur Verwendung in evolutionären Algorithmen.
Jetzt downloaden

Algorithmus :: Evolve :: util Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • Perl Artistic License
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Mike Rosulek
  • Website des Verlags:
  • http://search.cpan.org/~rosulek/Weather-Bug-0.01/lib/Weather/Bug.pm

Algorithmus :: Evolve :: util Stichworte


Algorithmus :: Evolve :: util Beschreibung

Einige nützliche Dienstprogrammfunktionen zur Verwendung in evolutionären Algorithmen. Algorithmus :: Evolve :: util ist ein Perl-Modul mit einigen nützlichen Utility-Funktionen zur Verwendung in evolutionären Algorithmen.Synopsis Verwenden Sie den Algorithmus: Evolve :: util ': str'; Verwenden Sie Algorithmus :: Evolve :: util ': arr'; Syntaxat Derzeit bietet dieses Modul nur String- und Array-Mangling-Dienstprogramme. Sie können mit den Einsatzargumenten importiert werden ': str' und 'arr' jeweils. In den folgenden Beschreibungen bezieht sich ein Gen entweder auf eine Zeichenfolge oder eine Array-Referenz. Eine Position im Gen bezieht sich auf ein einzelnes Zeichen für String-Gene und ein Array-Element für Array Genes.Stre_crossover ($ string1, $ string2 ) arr_crossover (@ array1, @ array2 ) gibt einen zufälligen zurück N-Punkt-Crossover zwischen den beiden gegebenen Genen. $ N Standards auf 2. Die beiden Eingänge sollten die gleiche Länge sein, obwohl dies nicht durchgesetzt wird. $ N muss auch weniger als die Größe der Gene sein. Wenn Sie mit dem Crossover-Vorgang nicht vertraut sind, funktioniert er so: Legen Sie die beiden Gene aufeinander auf. Nehmen Sie N-Positionen zufällig ein und schneiden Sie beide Gene an jeder Position ein. Swap nun jedes andere Paar von Segmenten und kleben Sie die Gene wieder an. So erzeugt ein möglicher 2-Punkt-Crossover an den Sait-Genen AAAAAA und BBBBBB die beiden Gene Abbaaa und Baabbb (die beiden "Kürzungen" waren hier nach den ersten und dritten Positionen) .StR_Agreement ($ string1, $ string2) arr_agreement (@ array1 , @ Array2) Gibt die Anzahl der Positionen zurück, in denen die beiden Gene einig sind. Erzwingt nicht, dass sie dieselbe Größe haben, obwohl das Ergebnis in diesem Fall etwas sinnlos ist Um dies zu überschreiben und einen (langsameren) unicode-friendly-Zeichenfolgenvergleich zu überschreiben, setzen Sie $ Algorithmus: die Hamming-Metrik und nicht die EDIT-Distanzmetrik. Die Bearbeitungsdistanz kann auch eine interessante Gebrauchsfitness sein. Es gibt mindestens zwei Module (Text :: Levenshtein und Text :: levenshteinxs), von dem ich weiß, welche den Bearbeitungsabstand von zwei Strings. , $ num ]) Gibt eine zufällige Mutation des Gens gemäß dem angegebenen Alphabet zurück (Standardeinstellung auf {0,1}). Wenn $ Num weniger als 1 ist, führt sie eine probabilistische Mutation durch, wobei jede Position mit einer $ num-Wahrscheinlichkeit, mutiert zu werden. Wenn $ Num größer oder gleich 1 ist, führt sie n-Punkt-Mutation aus: Genaue $ num-Positionen werden zufällig gewählt und mutiert. $ num standards auf 1. Eine praktische Faustregel ist mit einer Mutationsrate von 1 / gene_length gestartet. Eine Mutation ändert immer das betreffende Zeichen: Ein 'A' wird niemals ausgewählt, um ein vorhandenes 'A' in einer Mutation zu ersetzen . Die folgende Identität gilt für N-Point-Mutationen: STR_Agreement (STR_Mutat ($ ny_string, $ n, @alph), $ Some_String) == Länge ($ ty_string) - $ n; Das Alphabet für ein Zeichenfolge-Gen sollte nur aus einzelnen Zeichen bestehen Es sei denn, Sie wissen, was Sie tun. Denkbar können Sie eine "Hinzufügen" und "Entfernen" Mutation mithilfe eines Alphabets mit einem Alphabet implementieren, das Saiten mit Länge enthält! = 1. Aber das scheint mir ein wenig zu hacken. Für Array-Gene kann das Alphabet nur um alles aussagekräftig sein {0,1}. Anforderungen: · Perl.


Algorithmus :: Evolve :: util Zugehörige Software