Algoritme :: evolueer :: util

Enkele nuttige utiliteitsfuncties voor gebruik in evolutionaire algoritmen.
Download nu

Algoritme :: evolueer :: util Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Mike Rosulek
  • Uitgever website:
  • http://search.cpan.org/~rosulek/Weather-Bug-0.01/lib/Weather/Bug.pm

Algoritme :: evolueer :: util Tags


Algoritme :: evolueer :: util Beschrijving

Enkele nuttige nutsfuncties voor gebruik in evolutionaire algoritmen. Algoritme :: Evolve :: Util is een PERL-module met een aantal nuttige utiliteitsfuncties voor gebruik in evolutionaire algorithms.synopsis Gebruik algoritme :: evolueer :: util ': str'; Gebruik Algoritme :: Evolve :: Util ': ARR' '; Syntaxat Het moment, deze module biedt alleen string- en array-mangling-hulpprogramma's. Ze kunnen respectievelijk worden geïmporteerd met de gebruiksargumenten ': Str' en ': ARR'. In de volgende beschrijvingen verwijst een gen naar een string of een array-referentie. Een positie in het gen verwijst naar een enkel teken voor stringgenen en een arrayelement voor array genen.str_crossover ($ string1, $ string2 ) arr_crossover (@ array1, @ array2 ) retourneert een willekeurige N-punts cross-over tussen de twee gegeven genen. $ N Defaultes to 2. De twee inputs moeten dezelfde lengte hebben, hoewel dit niet wordt afgedwongen. $ N moet ook minder zijn dan de grootte van de genen. Als u onbekend bent met de cross-over operatie, werkt het als deze: plaats de twee genen op elkaar. Pick N-posities willekeurig en snijd beide genen op elke positie. Swappen nu elk ander paar segmenten en plak de genen weer een back-up. Dus één mogelijke 2-punts cross-over op de string-genen Aaaaaa en BBBBBB zouden de twee genen Abbaaa en Baabbb (de twee "snijwonden" hier zijn na de 1e en 3e posities) .Str_agreement ($ string1, $ string2) arr_agreement (@ array1 , @ array2) retourneert het aantal posities waarin de twee genen het eens zijn. Is niet handhaaft dat ze dezelfde grootte hebben, hoewel het resultaat in dat geval enigszins zinloos is ..String-genvergelijking wordt op een niet-Unicode-vriendelijke manier gedaan. Om dit te negeren en een (langzamere) Unicode-vriendelijke string-vergelijking te gebruiken, set $ algoritme :: evolueer :: util :: Unicode_strings naar een echte waarde.In array-genen, de vergelijking van individuele elementen is gedaan met EQ.Note dat dit is de hamming metric, en niet de statistische bewerking. De afstandsafstand kan ook een interessante fitheid zijn om te gebruiken. Er zijn ten minste twee modules (Tekst :: Levenshtein en Tekst :: Levenshteinxs) waarvan ik weet welke de bewerkingsafstand van twee strings.Sstr_Mutate ($ String1 ]) arr_mutaat (@ array1 ]) retourneert een willekeurige mutatie van het gen volgens het gegeven alfabet (in gebreke blijven naar {0,1}). Als $ NUM minder is dan 1, voert het probabilistische mutatie uit, waarbij elke positie een $ num waarschijnlijkheid van gemuteerd is. Als $ Num groter is dan of gelijk aan 1, voert het N-Point-mutatie uit: precies $ Num-posities worden willekeurig gekozen en gemuteerd. $ NUM DEFAULTS TOT 1. Een handige vuistregel begint met een mutatiesnelheid van 1 / Gene_Length.A-mutatie zal altijd het betreffende karakter veranderen: een 'A' zal nooit worden gekozen om een bestaande 'A' in een mutatie te vervangen . De volgende identiteit houdt voor N-Point Mutations: Str_agreement (Str_Mutate ($ some_string, $ n, @alph), $ some_string) == lengte ($ some_string) - $ n; het alfabet voor een string-gen moet uit slechts enkele tekens bestaan Tenzij je weet wat je doet. Moedbaar, u kunt een 'Toevoegen' en 'Verwijderen "-mutatie implementeren door een alfabet te gebruiken dat snaren bevat met lengte! = 1. Maar dit lijkt mij een beetje hackish. Voor array-genen kan het alfabet zo ongeveer alles wat zinvol zijn voor u.Str_random ($ size ) arr_random ($ size ) retourneert een willekeurig gen van de gegeven grootte over het gegeven alfabet, in gebreke blijven {0,1}. Vereisten: · Perl


Algoritme :: evolueer :: util Gerelateerde software