Кръстосване (генетичен оператор)

от Уикипедия, свободната енциклопедия
Направо към навигацията Направо към търсенето

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

Операторът е в общия случай бинарен, тъй като на входа му се подават две „родителски“ решения („хромозоми“) от предното поколение еи от тях се генерира ново кандидат-решение в текущото. В процедурата на генетичния алгоритъм, операторът кръстостване следва оператора селекция, който решава по зададени правила кои от решенията от текущото поколение на популацията да бъдат избрани за кръстосване.[1]

Видове кръстосване[редактиране | редактиране на кода]

Съществуват много техники на кръстосване, вдъхновени от различни биологични видове.

Кръстосване в единична точка[редактиране | редактиране на кода]

„Хромозомите“ на двете родителски решения се представят във вид на низове (числови, символни и др.) Избира се само една точка на кръстосване по схемата по-долу:

OnePointCrossover.svg

Кръстосване в две точки[редактиране | редактиране на кода]

При този вариант трябва да се изберат две точки на кръстосване. Отново се получават две решения-деца, като, редувайки се, се взимат сегменти ту от единия, ту от втория родител.

TwoPointCrossover.svg

Вижте също[редактиране | редактиране на кода]

Източници[редактиране | редактиране на кода]

  1. Hartmut Pohlheim, "Evolutionary Algorithms: Overview, Methods and Operators. Documentation for GEATbx v. 3.7, Genetic and Evolutionary Algorithm Toolbox for Matlab, 2005
Криейтив Комънс - Признание - Споделяне на споделеното Лиценз за свободна документация на ГНУ Тази страница частично или изцяло представлява превод на страницата „Crossover (genetic algorithm)“ в Уикипедия на английски. Оригиналният текст, както и този превод, са защитени от Лиценза „Криейтив Комънс - Признание - Споделяне на споделеното“, а за съдържание, създадено преди юни 2009 година — от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница. Вижте източниците на оригиналната статия, състоянието ѝ при превода и списъка на съавторите.