Genetische algoritmen zijnheuristische, stochastische optimalisatiemethoden die in 1975 door Holland voor het eerst werden voorgesteld. Ze zijn gebaseerd op het idee van evolutie met natuurlijke selectie, dat werd voorgesteld door Darwin.
Genetische algoritmen werken met veelindividuen, dat wil zeggen, een populatie waar elk individu kan dienen als een oplossing voor een specifiek probleem. Elk individu moet worden beoordeeld op de mate van fitheid, afhankelijk van hoe goed de oplossing voor het bijbehorende probleem is. Als we dit in relatie tot de natuur beschouwen, wordt daar beoordeeld in hoeverre het organisme efficiënt is in de strijd om hulpbronnen. Personen die merkbaar beter zijn aangepast, kunnen nakomelingen voortbrengen door kruisingen met andere vertegenwoordigers van de bevolking. Dit wordt de reden voor het verschijnen van nieuwe individuen, die enkele kenmerken combineren die zijn geërfd van hun ouders.
Minder fitte individuen zullen zich kunnen voortplantennakomelingen zijn minder waarschijnlijk, zodat de eigenschappen die ze bezitten in de loop van de evolutie geleidelijk uit de hele populatie zullen verdwijnen. Soms zijn er spontane veranderingen in genen of mutaties. Het blijkt dat goede eigenschappen van generatie op generatie over de bevolking zullen worden verspreid. Het kruisen van personen die het meest geschikt zijn, leidt ertoe dat de zoeksites die het meest veelbelovend zijn, worden verkend. Uiteindelijk wordt er een oplossing voor het probleem gevonden. Genetische algoritmen hebben het voordeel dat ze in relatief korte tijd benaderende oplossingen vinden die optimaal zijn. Het is de moeite waard om dit probleem met betrekking tot programmeren te overwegen.
Genetische algoritmen zijn samengesteld uit de volgende componenten:
- het chromosoom, dat de oplossing is voor het betreffende probleem, bestaat uit genen. Deze populatie chromosomen wordt als initieel beschouwd;
- een reeks operatoren (bedoeld om nieuwe oplossingen te genereren op basis van nieuwe populaties);
- objectieve functie (ontworpen om de geschiktheid van oplossingen te beoordelen).
Voor genetische algoritmen is erstandaard set operatoren: selectie, mutatie en kruising. U kunt de toepassing van genetische algoritmen overwegen door te verduidelijken waarvoor elke specifieke operator is bedoeld. De selectieoperator selecteert chromosomen in overeenstemming met de waarden van hun fitnessfuncties. Minstens twee van de meest populaire operators zijn hier vertegenwoordigd: toernooien en roulette. De roulettemethode gaat uit van selectie van individuen op n starts. Voor elk lid van de gebruikte populatie bevat het roulettewiel één sector van de vereiste grootte. Leden van een populatie met een duidelijk hogere fitnessindex met deze selectie zullen vaker worden geselecteerd dan vertegenwoordigers met een lage fitness. Bij de toernooimethode worden n toernooien geïmplementeerd, waardoor u n individuen kunt selecteren. Elk toernooi is gebaseerd op een steekproef van k elementen uit de populatie, en de beste persoon moet daaruit worden gekozen.
Als we de algoritmen blijven bekijkenprogrammeren, is het de moeite waard om een methode te noemen die kruisingen wordt genoemd. De crossover-operator wisselt delen van chromosomen uit tussen een paar of chromosomen in één populatie.
De laatste operator, mutaties, is een stochastische verandering in een deel van chromosomen.
Een specifieke overweging van de toepassing van genetische algoritmen is een omvangrijker materiaal dan in het artikel past, dus het moet apart worden bekeken.