Какво е генетично програмиране?

Генетичното програмиране е процес на повишаване на компютърните програми, използвайки алгоритми, вдъхновени от биологичната еволюция. Езиците за програмиране, които естествено се поддават на генетичното програмиране, са тези, които могат да оценят собствения си код. Класически пример е LISP, чиято характеристична структура на данни е списък. Всяка LISP програма е написана като списък, така че LISP програмите са много добри в манипулирането и генерирането на LISP програми.

Как работи?

Генетичната програма започва с набор от инструкции, служещи като "хромозоми", и "фитнес функция", която определя кои резултати са идеални. Инструкциите се комбинират на случаен принцип, за да се получи първото "поколение" от програми, след което тези индивидуални програми се тестват за тяхната годност.

Най-приспособените програми - тези, които са най-близо до постигането на поведението, определено от фитнес функцията - са избрани за "размножаване". Хромозомите на най-силните програми са комбинирани, подобно на генетичния код, комбиниран в биологичното размножаване. Някои хромозоми се "кръстосват" (обменяни) с тези в други програми, а някои са "мутирани" - променени на случаен принцип по предварително определен начин. Може да се произвеждат хиляди или дори милиони програми, като всяко поколение се приближава все по-близо до постигането на желания резултат.

Инструкции, програмни условия