Що таке генетичне програмування?

Генетичне програмування - це процес удосконалення комп'ютерних програм з використанням алгоритмів, натхнених біологічною еволюцією. Мови програмування, які природним чином піддаються генетичному програмуванню, це ті, хто здатний оцінити свій власний код. Класичним прикладом є LISP, характерною структурою даних якого є список. Кожна програма LISP написана у вигляді списку, тому програми LISP дуже добре маніпулюють та генерують програми LISP.

Як це працює?

Генетична програма починається з набору інструкцій, які служать "хромосомами", і "функцією фітнесу", яка визначає, які результати є ідеальними. Інструкції поєднуються випадковим чином для створення першої «генерації» програм, а потім ці індивідуальні програми перевіряються на їх придатність.

Найбільш пристосовані програми - ті, які найбільш близькі до досягнення поведінки, визначеної функцією фітнесу - вибираються для "розведення". Хромосоми найбільш пристосованих програм поєднуються, подібно до генетичного коду, що поєднується в біологічному розведенні. Деякі хромосоми "перетинаються" (обмінюються) з тими в інших програмах, а деякі з них "мутуються" - змінюються випадковим чином заздалегідь. Можуть бути створені тисячі або навіть мільйони програм, при цьому кожне покоління наближається і наближається до досягнення бажаного результату.

Інструкції, терміни програмування