Генетичний алгоритм
Генетичний алгоритм — це евристичний алгоритм пошуку, що використовується для вирішення завдань оптимізації та моделювання шляхом послідовного підбору.
Operators: 1. Selection (Roulette, Tournament). 2. Crossover (One-point, Multi-point). 3. Mutation (Bit flip, Swap). Termination conditions: Goal reached, fitness plateau, or max generations.
graph LR
Center["Генетичний алгоритм"]:::main
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 Простими словами
Це як намагатися намалювати шедевр, не вміючи малювати. Ти малюєш 10 закарлючок, вибираєш 2 найгарніші, поєднуєш їхні лінії і малюєш ще 10 нових. Знову вибираєш найкращі. Якщо робити це дуже довго, у тебе вийде справжня картина, хоча ти просто вибирав те, що тобі подобається. Це і є генетичний алгоритм.
🤓 Expert Deep Dive
На технічному рівні ми кодуємо параметри задачі в 'гени'. Головна складність — правильно придумати 'Функцію придатності' (Fitness Function). Якщо вона буде неправильною, алгоритм 'еволюціонує' не в той бік. Наприклад, якщо ви хочете зробити швидкого робота, а функція придатності оцінює тільки кількість кроків, робот може навчитися просто падати вперед, бо це зараховується як крок, хоча він і не став швидшим.