Сегодня 19 апреля 2025
18+
MWC 2018 2018 Computex IFA 2018
реклама
Искусственный интеллект

Искусственный интеллект. Генетический алгоритм и его применения

⇣ Содержание

„Выживает не самый сильный и не самый умный, а тот, кто лучше всех приспосабливается к изменениям.“
Чарльз Дарвин

“Даже если у одного прочитавшего из тысячи появится интерес к этим алгоритмам, и он решит углубиться — это уже отлично.”

Внимание, вопрос: помните ли вы движущие силы эволюции по Дарвину? Эти знания нужны для понимания работы генетического алгоритма, так как он пытается имитировать процессы, действительно происходящие в природе. Итак, основной предпосылкой эволюции является наследственная изменчивость, а её движущими силами — борьба за существование и естественный отбор. Используя генетический алгоритм, вы действуете по сути как творец и сами устанавливаете законы эволюции, позволяющие достичь оптимальности в популяции. В идеале должны выработаться необходимые для выживания и адаптации качества, которые и будут искомым решением. Посмотрим, как реализуются эти принципы в генетическом алгоритме.

#Что это?

Генетический алгоритм (ГА) — это алгоритм поиска и оптимизации, прообразом которого стал биологический принцип естественного отбора.

#Как он работает?

Первый этап — создание популяции. В данном случае популяция — это не совокупность биологических особей, а множество возможных решений имеющейся проблемы, которые образуют пространство поиска (space search).

Второй этап — подсчёт функции пригодности (приспособленности, fitness function). Данная функция принимает на вводе потенциальное решение проблемы (candidate solution), а выдаёт значение, оценивающее его пригодность. В случае с классическим генетическим алгоритмом целевая функция и функция пригодности — это одно и то же. Далее проверим, выполнено ли условие остановки алгоритма. Алгоритм прекратит исполняться, если достигнуто ожидаемое оптимальное значение, если полученное значение больше не улучшается или по истечении заданного времени/количества итераций. После остановки происходит выбор самой приспособленной хромосомы (по наибольшему значению функции). Если же условие остановки не выполнено, то по результатам естественного отбора будет производиться селекция хромосом для производства потомков.

Третий этап – скрещивание ( в русских источниках — «кроссинговер», реже «кроссовер») и мутация.

 Блок-схема генетического алгоритма.

Блок-схема генетического алгоритма

Скрещивание, мутация и селекция – это генетические операторы. Как и в природе, вероятность скрещивания на несколько порядков выше вероятности мутации. Скрещивание поддерживает бесконечное разнообразие в популяции, это перераспределение генетического материала родителей, благодаря которому у потомков появляются новые сочетания генов. Но о каких «генах» и «хромосомах» может идти речь вне контекста живой природы? В генетическом алгоритме «хромосома» — набор параметров, определяющих предлагаемое возможное решение, а «ген» — это одна из «букв» строки «хромосомы», как правило, имеющая двоичное значение. Как мы помним, в результате селекции отбираются самые приспособленные хромосомы — к ним и применяются эти генетические операторы. Наверное, вы сейчас думаете, каким же образом может происходить скрещивание у таких «хромосом». Возможно несколько сценариев, упомянем лишь некоторые из них.

Одноточечный кроссинговер (single-point crossover): есть пара родительских хромосом с набором генов L, для них случайным образом выбирается так называемая точка скрещивания Px – это некая позиция гена в хромосоме. К [1; Px] одной родительской хромосомы присоединяется [Px+1; L] другой, и получается первый потомок. Второй потомок получается также скрещиванием, но «в обратную сторону».

 Одноточечный кроссинговер

Одноточечный кроссинговер

Двухточечный кроссинговер (two-point crossover): обмен генетическим материалом, (то есть, битами) происходит в двух точках скрещивания.

 Двухтотечный кргоссинговер

Двухточечный кргоссинговер

Однородный кроссинговер (uniform crossover): значение каждого бита в хромосоме потомка определяется согласно случайно сгенерированной маске кроссинговера. Если в маске стоит 0 – берется ген от первого родителя, если 1 – от второго.

 Однородный кроссинговер

Однородный кроссинговер

Для более глубокого погружения в тему эволюционных алгоритмов реокмендуем изучить статью F.Herrera, M.Losano, A.M.Sanches Hybrid Crossover Operators for Real-Coded Genetic Algorithms: An Experimental Study.

Мутация — генетический оператор, который с некой вероятностью меняет один или несколько «генов» в случайных позициях «хромосомы». Для чего он нужен? Зачем мутации (изменения в генетическом коде) существуют в природе, могут ли они способствовать лучшей выживаемости вида? Эта статья не о генетике, но не будем забывать, что именно она послужила источником вдохновения для Холланда, создателя генетического алгоритма (1975). Потомки, которые подверглись воздействию генетических операторов, образуют новую популяцию – и в ней начинается очередная итерация ГА. Снова идет подсчет функции пригодности, происходит естественный отбор, а дальше алгоритм либо остановится, если заданное условие выполнено, либо вновь перейдет к селекции. Если хочется посмотреть интересное применение, можно почитать разбор задачи коммивояжера (travelling salesman problem) и задачи об укладке рюкзака (knapsack problem) с применением ГА. Обе эти задачи являются задачами комбинаторной оптимизации, то есть в конечном множестве объектов мы ищем оптимальный. Сами того не подозревая, мы решаем подобные задачи каждый день. Теперь посмотрим на преимущества и недостатки этого метода.

Плюсы ГА

Этот алгоритм имеет уникальные сильные стороны:

  • предлагает на выборнесколько решений, а не одно;
  • исследует сразу несколько точек, а не одну за другой, благодаря чему целевая функция не упрётся в локальный экстремум;
  • оптимизация происходит непрерывнопри меняющихся условиях среды, а популяции приходится приспосабливаться;
  • может предложить удовлетворительное решение для NP-hard проблемы;
  • допускает параллельные вычисления;
  • подходит для решения задач с самыми разными параметрами (главное — задать подходящую функцию пригодности).

Минусы ГА

  • «просто хорошее решение» — это тоже иногда недостаток;
  • много точек в пространстве поиска – это тоже иногда недостаток;
  • не всегда удобно представить задачу в терминах генов и хромосом.

#Для каких задач используется ГА?

С помощью ГА решается целый спектр задач: от разработки антенн NASA до программ распознавания структуры белков.

В финансах ГА успешно используется для моделирования экономических агентов с ограниченно рациональным поведением: финансового прогнозирования, инвестирования, и т. д. Одна из интересных задач — оптимизация финансового портфеля (portfolio optimization). В теории игр ГА применяется, например, для разрешения дилеммы узника. Его можно применять в играх с двумя участниками для оптимизации стратегий.

В робототехнике ГА прекрасно применяется для управления человекоподобным роботом, оптимизации планирования маршрута (routing). В авиации — для системы контроля полетов. Кстати об авиации: ученые General Electric и Ренсселеровского политехнического института применили ГА для конструирования турбины реактивного двигателя, который применяется в современных авиалайнерах.

Можно использовать ГА и в более близких для нас ситуациях, например, для планирования расписания на производстве или в крупном учебном заведении. В первом случае фитнес-функция может задавать количество деталей, изготовленных за определенное количество времени, а во втором – «штрафовать» конфликтующие ветки расписания. Возможности для творчества просто безграничны.

Что дальше? Читатель, который хочет знать больше, может обратиться к материалам GECCO conference — это конференция, которая посвящена эволюционному программированию, там самые горячие новости и обновления. Математическая сторона хорошо описана здесь:

https://loginom.ru/blog/ga-math

Ещё по применениям ГА на английском языке:

https://www.brainz.org/15-real-world-applications-genetic-algorithms/

Недавно вышла привлекающая внимание книга: Buontempo, Frances. Genetic algorithms and machine learning for programmers: create AI models and evolve solutions. Pragmatic Bookshelf, 2019.

Материалы, которые использовались для написания этой статьи:

  • Джон Х. Холланд. Генетические алгоритмы. "В мире науки", 1992
  • Hornby, Gregory, et al. "Automated antenna design with evolutionary algorithms." Space 2006. 2006. 7242.
  • Darrel Whitley "A Genetic Algorithm Tutorial", 1993.
  • F.Herrera, M.Losano, A.M.Sanches. "Hybrid Crossover Operators for Real-Coded Genetic Algorithms: An Experimental Study".
  • Guennoun, Z., and F. Hamza. "Stocks portfolio optimization using classification and genetic algorithms." Applied Mathematical Sciences 6.94 (2012): 4673-4684.
  • Блок-схема: intuit.ru
  • Диаграммы кроссовера: geeksforgeeks.org

Другие материалы цикла:

 
 
⇣ Содержание
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.

window-new
Soft
Hard
Тренды 🔥
Свежий драйвер Nvidia ускорил видеокарты в синтетических тестах, но проблемы со стабильностью остались 6 ч.
«Копидел» поможет в клонировании и массовом развёртывании ОС «Альт» 8 ч.
EA показала суровую тактическую стратегию Star Wars Zero Company от ветеранов XCOM — первый трейлер и подробности 11 ч.
Новая статья: South of Midnight — соткана по лекалам. Рецензия 23 ч.
Вежливость — это дорого: OpenAI тратит миллионы долларов на «спасибо» и «пожалуйста» в ChatGPT 24 ч.
Спустя восемь лет «беты» Escape from Tarkov взяла курс на версию 1.0 — план обновлений игры на 2025 год 18-04 21:59
ChatGPT научился использовать воспоминания о пользователе для персонализации веб-поиска 18-04 21:37
Создатели следующей Battlefield рассказали о новом «языке разрушения» и показали его в деле 18-04 20:36
Глава Microsoft Gaming Фил Спенсер намекнул на продолжение Indiana Jones and the Great Circle 18-04 19:43
Разработчики Everspace 2 решили снизить цену на дополнение Wrath of the Ancients, потому что «вокруг дорожает буквально всё» 18-04 18:32
У земных лишайников обнаружился потенциал для выживания на Марсе 5 ч.
Nvidia, AMD и другие американские чипмейкеры опасаются, что проиграют Huawei из-за антикитайских санкций США 6 ч.
QNAP выпустила хранилище ES1686dc R2 на 16 SAS-накопителей 8 ч.
Беспилотные автомобили выйдут на российские дороги общего пользования к 2027 году 8 ч.
Tesla без объяснения причин отложила запуск производства доступной версии Model Y 8 ч.
Китайские передовые спутники связи и дальнего зондирования Земли теперь предлагают оптом и в розницу 8 ч.
Багамы отозвали разрешение на посадку ракет SpaceX Falcon 9 у своих берегов 10 ч.
В Пекине прошёл первый в мире полумарафон с участием людей и роботов 10 ч.
Synology подтвердила, что для флагманских NAS подойдут только избранные жёсткие диски 10 ч.
Looking Glass представила 27-дюймовый голографический 3D-монитор с разрешением 5K и ценой $10 тысяч 11 ч.