Genetski algoritem je prilagodljiv hevristični iskalni algoritem, ki ga je navdihnila Darwinova teorija evolucije v naravi .' Uporablja se za reševanje problemov optimizacije pri strojnem učenju. Je eden izmed pomembnih algoritmov, saj pomaga pri reševanju zapletenih problemov, katerih rešitev bi trajala dolgo.
Genetski algoritmi se pogosto uporabljajo v različnih aplikacijah v realnem svetu, npr. Oblikovanje elektronskih vezij, razbijanje kod, obdelava slik in umetna ustvarjalnost.
V tej temi bomo podrobno razložili genetski algoritem, vključno z osnovno terminologijo, ki se uporablja v genetskem algoritmu, kako deluje, prednosti in omejitve genetskega algoritma itd.
pande ustvarjajo podatkovni okvir
Kaj je genetski algoritem?
Preden razumemo genetski algoritem, najprej razumemo osnovno terminologijo, da bi bolje razumeli ta algoritem:
Po izračunu primernosti vsakega prisotnega v populaciji se s selekcijskim postopkom določi, kateri posamezniki v populaciji se bodo lahko razmnoževali in proizvedli seme, ki bo tvorilo prihajajočo generacijo.
Razpoložljive vrste izbirnih slogov
Torej, zdaj lahko definiramo genetski algoritem kot algoritem hevrističnega iskanja za reševanje problemov optimizacije. Je podmnožica evolucijskih algoritmov, ki se uporablja v računalništvu. Genetski algoritem uporablja koncepte genetske in naravne selekcije za reševanje problemov optimizacije.
Kako deluje genetski algoritem?
Genetski algoritem deluje na evolucijskem generacijskem ciklu za ustvarjanje visokokakovostnih rešitev. Ti algoritmi uporabljajo različne operacije, ki izboljšajo ali nadomestijo populacijo, da zagotovijo izboljšano rešitev za prileganje.
V bistvu vključuje pet faz za reševanje kompleksnih optimizacijskih problemov, ki so podani spodaj:
1. Inicializacija
Proces genetskega algoritma se začne z generiranjem nabora posameznikov, ki se imenuje populacija. Tu je vsak posameznik rešitev za dano težavo. Posameznik vsebuje ali je značilen nabor parametrov, imenovanih Geni. Geni so združeni v niz in ustvarijo kromosome, kar je rešitev problema. Ena najbolj priljubljenih tehnik inicializacije je uporaba naključnih binarnih nizov.
primerljiv seznam
2. Naloga za fitnes
Funkcija fitnesa se uporablja za ugotavljanje, kako fit je posameznik? Pomeni sposobnost posameznika, da tekmuje z drugimi posamezniki. V vsaki ponovitvi so posamezniki ocenjeni na podlagi njihove funkcije telesne pripravljenosti. Funkcija telesne pripravljenosti zagotavlja oceno telesne pripravljenosti za vsakega posameznika. Ta rezultat nadalje določa verjetnost, da bo izbran za razmnoževanje. Višja kot je ocena telesne pripravljenosti, večja je možnost, da bo izbran za razmnoževanje.
3. Izbira
Izbirna faza vključuje izbiro osebkov za razmnoževanje potomcev. Vsi izbrani posamezniki so nato razporejeni v par po dva, da se poveča razmnoževanje. Nato ti posamezniki prenesejo svoje gene na naslednjo generacijo.
Na voljo so tri vrste izbirnih metod, ki so:
- Izbira kolesa rulete
- Izbor turnirja
- Izbor na podlagi ranga
4. Razmnoževanje
Po postopku izbire pride do ustvarjanja otroka v koraku reprodukcije. V tem koraku genetski algoritem uporablja dva variacijska operaterja, ki se uporabita za starševsko populacijo. Dva operaterja, vključena v fazo reprodukcije, sta navedena spodaj:
- Crossover za eno točko
- Dvotočkovno križišče
- Križanec v livreji
- Crossover dednih algoritmov
Geni staršev se izmenjujejo med seboj, dokler ni dosežena točka križanja. Ti na novo ustvarjeni potomci se dodajo populaciji. Ta proces se imenuje tudi križanje. Vrste navzkrižnih slogov, ki so na voljo:
Operater mutacije vstavi naključne gene v potomce (novega otroka), da ohrani raznolikost v populaciji. To lahko storite tako, da obrnete nekaj bitov v kromosomih.
Mutacija pomaga pri reševanju vprašanja prezgodnje konvergence in povečuje diverzifikacijo. Spodnja slika prikazuje postopek mutacije:
Razpoložljive vrste stilov mutacije,
arašidi proti arašidom
5. Odpoved
Po fazi razmnoževanja se kot osnova za prekinitev uporabi merilo za ustavitev. Algoritem se zaključi, ko je dosežena rešitev primernosti praga. Končno rešitev bo identificiral kot najboljšo rešitev v populaciji.
Splošni potek dela preprostega genetskega algoritma
Prednosti genetskega algoritma
- Vzporedne zmožnosti genetskih algoritmov so najboljše.
- Pomaga pri optimizaciji različnih problemov, kot so diskretne funkcije, problemi z več cilji in zvezne funkcije.
- Zagotavlja rešitev za težavo, ki se sčasoma izboljša.
- Genetski algoritem ne potrebuje izvedenih informacij.
Omejitve genetskih algoritmov
- Genetski algoritmi niso učinkoviti algoritmi za reševanje preprostih problemov.
- Ne zagotavlja kakovosti končne rešitve problema.
- Ponavljajoče se izračunavanje vrednosti primernosti lahko povzroči nekaj računskih izzivov.
Razlika med genetskimi algoritmi in tradicionalnimi algoritmi
- Iskalni prostor je skupek vseh možnih rešitev problema. V tradicionalnem algoritmu se ohrani le en niz rešitev, medtem ko je v genetskem algoritmu mogoče uporabiti več nizov rešitev v iskalnem prostoru.
- Tradicionalni algoritmi potrebujejo več informacij za izvedbo iskanja, medtem ko genetski algoritmi potrebujejo samo eno objektivno funkcijo za izračun sposobnosti posameznika.
- Tradicionalni algoritmi ne morejo delovati vzporedno, medtem ko lahko genetski algoritmi delujejo vzporedno (izračuni primernosti individualnosti so neodvisni).
- Ena velika razlika v genetskih algoritmih je ta, da dedni algoritmi delujejo namesto neposredno na rezultatih iskanja na podlagi svojih predstavitev (ali upodabljanja), ki jih pogosto imenujemo kromosomi.
- Ena od velikih razlik med tradicionalnim algoritmom in genetskim algoritmom je, da ne deluje neposredno na možnih rešitvah.
- Tradicionalni algoritmi lahko na koncu ustvarijo samo en rezultat, medtem ko lahko genetski algoritmi ustvarijo več optimalnih rezultatov iz različnih generacij.
- Tradicionalni algoritem verjetno ne bo ustvaril optimalnih rezultatov, medtem ko genetski algoritmi ne zagotavljajo ustvarjanja optimalnih globalnih rezultatov, vendar obstaja tudi velika možnost, da dobite optimalen rezultat za problem, saj uporablja genetske operaterje, kot sta Crossover in Mutation.
- Tradicionalni algoritmi so po naravi deterministični, medtem ko so genetski algoritmi po naravi verjetnostni in stohastični.