Programarea genetică

Genetic Programming - un fel de algoritm genetic, în care în loc de reprezentările de nivel scăzut de obiecte sub formă de șiruri de biți folosite arbori parsa, diagrama de tranziție de stare a unui finite automate sau celulare, etc. Cu ajutorul programării genetice rezolvate mai eficient problema construcției automate a unor clase de probleme, automate finite si automate celulare.

Stagnarea algoritmului genetic - o stare a algoritmului, în care peste un număr mare de generații, nu a existat nici o modificare a valorii de fitness funcționează mai bine într-o populație, dar soluția actuală este foarte diferită de cea minimă la nivel mondial.

Se numește coborârea unei stări a populației, atunci când toate cromozomi din populație au o mulțime de piese similare, și sunt în unele extreme. În această situație, operațiunea de trecere aproape nimic nu se poate schimba populația. Și ieșind din zona din cauza indivizilor mutatie au tendinta de a muri ca o probabilitate mai mare de a avea o valoare a funcției de fitness, care este mai rău decât în ​​restul populației. În cazul în care acest lucru este extremelor un minim la nivel mondial, aceasta înseamnă că am găsit cel mai bun sau aproape de aceasta decizie.

Degenerarea din populație numit acest tip de convergență, în cazul în care valoarea extremă actuală diferă foarte mult de minimum la nivel mondial, care este, aproape întreaga populație îngrămădiți soluții care să îndeplinească orice minim local. Degenerarea din populație este o problemă majoră atunci când se utilizează un algoritm genetic.

Operații standard incrucisarea

o parte comună pentru toți următorii algoritmi: o populație intermediară de indivizi împărțiți aleator în perechi. Fiecare dintre ele cu cruci probabilitate pc, t. E. Este folosit Încrucișarea, producând astfel doi copii. Ele sunt scrise într-o nouă generație. În cazul în care cuplul nu a scăzut la încrucișa într-o nouă generație de indivizi se înregistrează de această pereche.

Punctul de Trecere: selectat perechi de cromozomi ai populației mamă. gena parentală în plus, pentru fiecare pereche, astfel selectat a jucat poziția (locus) pe un cromozom, care determină așa-numitul punct de trecere - lk. Dacă cromozom din fiecare genă părinte constă din L, este evident că punctul de lk trecere reprezintă un număr natural mai mic L. Prin urmare, fixarea punctelor de trecere este redusă la un număr de selecție aleatoare din intervalul [1, L-1]. Ca urmare a încrucișarea pereche de cromozomi parentale obține următoarea pereche de descendenți:

descendent al cărui cromozom în pozițiile 1 la lk include gene primul părinte, iar pe pozițiile de la lk + 1 prin L - gene de la celălalt părinte;

descendent al cărui cromozom în pozițiile 1 la lk include gene părinte al doilea și la pozițiile de la lk + 1 prin L - din genele primul părinte.

Două puncte de crossover: diferit de punctul de trecere ca cromozomi parentale schimb de porțiuni din codul genetic, care este situat între cele două puncte de trecere selectate aleatoriu.

Multi-punct incrucisari este o generalizare a operațiilor anterioare și se caracterizează prin număr corespunzător de mare de puncte de trecere.