Турнирна селекция () е една от разновидностите на генетичния оператор селекция, посредством който определен брой индивиди от дадено поколение на генетичен алгоритъм биват избирани да продължат в следващото поколение. Турнирната селекция включва провеждането на няколко „турнира“ помежду индивидите („хромозомите“, кандидат-решенията на оптимизационната задача), избрани на случаен принцип от популацията. Победителят от всеки от турнирите, т.е. индивидът с най-висока стойност на фитнес функцията, се избира за кръстосване.

Размерът на турнира може да се регулира, като по-големият размер означава, че индивидите с по-ниски фитнес функции имат по-малък шанс да бъдат избрани да продължат към следващото поколение.

Методът на турнирната селекция може да се опише в псевдокод по следния начин:

избират се k (размер на турнира) индивиди от популацията на случаен принцип най-добрият индивид (измежду индивидите) в турнира се избира с вероятност p вторият най-добър индивид в турнира се избира с вероятност p*(1-p) третият най-добър индивид в турнира се избира с вероятност p*((1-p)^2) и т.н.

Детереминистичната турнирна селекция при p = 1 избира най-добрия индивид във всеки турнир. Турнирна селекция при k = 1 е равнозначна на случайна селекция. Веднъж избран да продължи към следващото поколение, един индивид следва да бъде отстранен от популацията, за да не бъде избран повторно. В сравнение със стохастичната селекция на принципа на рулетката, турнирната селекция често се имплементира на практика заради липсата при нея на стохастичен шум.

Турнирната селекция има няколко предимства пред други алтернативни техники на селекция, като селекцията на принципа на рулетката и селекцията с награди (reward-based selection): лесна е за програмиране, работи на паралелни архитектури позволява лесно да се настройва размерът на турнира. Показано е, че в някои класификатори (classifier systems) турнирната селекция е независима от мащаба на фитнес функцията на генетичния алгоритъм.

Източници

Категория:Генетични алгоритми