Сегодня 22 ноября 2024
18+
MWC 2018 2018 Computex IFA 2018
реклама
Offсянка

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

⇣ Содержание

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

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

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

#Что это?

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

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

Первый этап — создание популяции. В данном случае популяция — это не совокупность биологических особей, а множество возможных решений имеющейся проблемы, которые образуют пространство поиска (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.
Вечерний 3DNews
Каждый будний вечер мы рассылаем сводку новостей без белиберды и рекламы. Две минуты на чтение — и вы в курсе главных событий.

window-new
Soft
Hard
Тренды 🔥
В программу сохранения классических игр от GOG вошли S.T.A.L.K.E.R. Shadow of Chernobyl и Call of Pripyat, а Clear Sky — на подходе 51 мин.
Star Wars Outlaws вышла в Steam с крупным обновлением и дополнением про Лэндо Калриссиана 3 ч.
Миллионер с зарплатой сантехника: выяснилось, сколько зарабатывает глава OpenAI 4 ч.
Рекордная скидка и PvP-режим Versus обернулись для Warhammer: Vermintide 2 полумиллионом новых игроков за неделю 4 ч.
Роскомнадзор с декабря начнёт блокировать сайты за публикацию научной информации о VPN 4 ч.
Новый трейлер раскрыл дату выхода Mandragora — метроидвании с элементами Dark Souls и нелинейной историей от соавтора Vampire: The Masquerade — Bloodlines 5 ч.
В Японии порекомендовали добавить в завещания свои логины и пароли 7 ч.
Обновления Windows 11 больше не будут перезагружать ПК, но обычных пользователей это не касается 7 ч.
VK похвасталась успехами «VK Видео» на фоне замедления YouTube 9 ч.
GTA наоборот: полицейская песочница The Precinct с «дозой нуара 80-х» не выйдет в 2024 году 10 ч.
Redmi показала флагманский смартфон K80 Pro и объявила дату его премьеры 2 ч.
SpaceX рассказала, почему затопила ракету Super Heavy во время последнего запуска Starship 3 ч.
Астрономы впервые сфотографировали умирающую звезду за пределами нашей галактики — она выглядит не так, как ожидалось 5 ч.
Японская Hokkaido Electric Power намерена перезапустить ядерный реактор для удовлетворения потребности ЦОД в энергии 6 ч.
Meta планирует построить за $5 млрд кампус ЦОД в Луизиане 7 ч.
Arm задаёт новый стандарт для ПК, чтобы навязать конкуренцию x86 7 ч.
HPE готова ответить на любые вопросы Минюста США по расследованию покупки Juniper за $14 млрд 7 ч.
Thermaltake представила компактный, но вместительный корпус The Tower 250 для игровых систем на Mini-ITX 9 ч.
Флагманы Oppo Find X8 и X8 Pro на Dimensity 9400 стали доступны не только в Китае — старший оценили в €1149 9 ч.
«ВКонтакте» выросла до 88,1 млн пользователей — выручка VK взлетела на 21,4 % на рекламе 10 ч.