Направо към съдържанието

Генетичен оператор

от Уикипедия, свободната енциклопедия

Генетичен оператор е оператор, използван в генетичните алгоритми да насочи алгоритъма към определено решение на дадена задача за математическа оптимизация. Има три основни вида генетични оператори:

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

Видове в зависимост от броя операнди

[редактиране | редактиране на кода]

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

Комбиниране на операторите

[редактиране | редактиране на кода]

Докато всеки от трите оператора сам по себе си работи за подобряване на решенията, получени от генетичния алгоритъм, за откриване на добро решение на цялостната задача е необходимо операторите да работят конюнктивно, т.е. в комбинация.

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

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

  1. а б Introduction to Genetic Algorithms // Архивиран от оригинала на 2018-07-02. Посетен на 20 август 2015.
  2. Genetic operators // Архивиран от оригинала на 2017-12-30. Посетен на 20 август 2015.
  Тази страница частично или изцяло представлява превод на страницата Genetic algorithm в Уикипедия на английски. Оригиналният текст, както и този превод, са защитени от Лиценза „Криейтив Комънс – Признание – Споделяне на споделеното“, а за съдържание, създадено преди юни 2009 година – от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница, за да видите списъка на съавторите. ​

ВАЖНО: Този шаблон се отнася единствено до авторските права върху съдържанието на статията. Добавянето му не отменя изискването да се посочват конкретни източници на твърденията, които да бъдат благонадеждни.​