«Эволюционные алгоритмы» — это мультфильм, созданный в рамках совместного проекта ИД «ПостНаука» и Университета Иннополис. Мультфильм рассказывает об использовании идеи биологической эволюции в задачах искусственного интеллекта, истории эволюционных алгоритмов и принципах их работы. Все это подробно изучается на магистерской программе Университета Иннополис «Робототехника». Историю об эволюционных алгоритмах нам помог рассказать доцент, руководитель Лаборатории искусственного интеллекта в разработке игр Университета Иннополис Джозеф Браун.
Эволюционные алгоритмы — это направление в компьютерных науках, которое использует принципы биологической эволюции для решения задач искусственного интеллекта. Основной принцип биологической эволюции — это сочетание мутаций, естественного отбора и воспроизводства. Хотя эволюционные алгоритмы и пытаются имитировать биологическую эволюцию, они более схожи с искусственным разведением животных, то есть скрещиванием самых лучших представителей, отбором их лучших потомков и повторным скрещиванием уже этих потомков.
Идея эволюционных алгоритмов была предложена в конце 1960-х — начале 1970-х годов, когда ученые впервые попытались симулировать биологическую эволюцию на компьютере и использовать ее принципы для решения задач. Было предложено четыре основных типа алгоритмов, и все они работали по схожей схеме: сначала оценивалась эффективность решений, а после этого самые эффективные решения «разводились», подобно домашним животным, в результате чего получалось следующее поколение. Более того, скрещивания и мутации решений позволяли им приспосабливаться к окружающей среде (целевой функции).
Проблемы, которые решаются при помощи эволюционных алгоритмов, — это проблемы оптимизации, то есть постепенного улучшения какой-то вещи исходя из заданных критериев. Эволюционные алгоритмы используются в ситуации, когда можно сформулировать критерии хорошего решения, но трудно его придумать. Каждая задача может быть оптимизирована через улучшение входящих в нее компонентов. Например, наша задача — сделать текст более грамотным. Грамотный текст — это тот, который соответствует набору грамматических правил (в нашем случае — компонентов). Таким образом, наша задача оптимизируется, когда текст становится более грамотным с точки зрения грамматики, орфографии и пунктуации.
Все начинается со случайного набора решений, все из которых оцениваются по заданным критериям, и из них отбираются лучшие, которые проходят на следующую фазу. Следующая фаза — это либо скрещивание, либо мутация этих решений. Скрещивание — это комбинация двух наилучших решений: первого, у которого самый лучший показатель — Х (например, пунктуация), со вторым, у которого самый лучший — Y (например, орфография). В свою очередь, мутация — это внесение случайно сгенерированного небольшого изменения в какую-либо характеристику. И скрещивание, и мутация повторяются до тех пор, пока каждое новое поколение становится лучше, чем предыдущее.
Основная проблема эволюционных алгоритмов — это определение того, какое решение можно назвать оптимальным. Обычно мы определяем это исходя из предположения о том, что новые хорошие решения будут похожи на уже известные хорошие решения. Эволюционные алгоритмы применяются, например, в гейм-дизайне, а также в так называемом эволюционном искусстве, где картины генерируются компьютером на основании того, что было отмечено пользователем как понравившееся.
На чем основаны генетические алгоритмы? Как происходит создание различных уровней в компьютерной игре? Каковы перспективы применения эволюционных алгоритмов? На эти и другие вопросы отвечает доцент Университета Иннополис Джозеф Браун. Процедурная генерация контента в играх — это процесс автоматического создания различных ресурсов. Таким образом можно создавать повествование или сюжет игры или более простые объекты, такие как деревья. Или какие-нибудь элементы игрового процесса. Например, какие будут уровни. Этим я в основном и занимаюсь: как создать уровень, который отвечает некоторым ожиданиям игрока и некоторым ожиданиям в контексте повествования. Я использую много приемов из области, которая называется вычислительный интеллект. А вычислительный интеллект применяет биоинспирированные методы для решения сложных задач оптимизации.
Трансильванский университет Sapientia представил свой новый обучающий курс по алгоритмам сортировки. Стоит отметить талант создателей и высокую наглядность пособия.
Теория сложности вычислений — бурно развивающаяся область теоретической информатики (theoretical computer science) и охватывает как чисто теоретические вопросы, так и вопросы, непосредственно связанные с практикой. Среди наиболее важных приложений этой теории можно назвать способы построения и анализа эффективных алгоритмов, а также современные криптографические методы. Поэтому знакомство с основами теории сложности, безусловно, полезно любому, кто собирается серьезно заниматься практическим программированием или теоретическими исследованиями.
Какова история создания машины Тьюринга? Как она повлияла на развитие идей, лежащих в основе ряда современных технологий? Какие проблемы существуют в теории вычислительной сложности? И как математика рассматривает понятие случайность? Об идее универсальной машины, проблеме перебора и случайности рассказывает кандидат физико-математических наук Александр Шень.
Объявлено об успешном завершении работы компьютерной программы, просчитывавшей одну из версий покера — хедз-ап в лимитном техасском холдеме. Программа научилась принимать правильное решение в каждом из примерно 3,19×10^14 возможных состояний игры. Найденная таким образом стратегия на длинной дистанции должна обыгрывать остальные стратегии.
Каким образом в биологической эволюции появились системы, способные управлять процессом жизнедеятельности организма? Почему логический вывод, сделанный человеком, применим к реальному объекту в природе? Почему эволюционное развитие познавательных способностей животных привело к возникновению интеллекта человека? О моделировании работы мозга и искусственном интеллекте, — Владимир Георгиевич Редько — доктор физико-математических наук, ведущий научный сотрудник Института прикладной математики им. М. В. Келдыша РАН, Михаил Сергеевич Бурцев — программист-математик, аспирант Института прикладной математики им. М. В. Келдыша РАН.
«Типичный программист» в рубрике «Вопросы к экспертам» затронул извечный вопрос про программирование и математику. Итак, действительно ли программисту нужно знание математики для успешной работы и если нужно, то насколько?
Если живые существа уподобить часовым механизмам, то создавший их часовой мастер, по мнению Р.Докинза, биолога из Оксфорда, автора книги «Эгоистичный ген» (The Selfish Gene), должен быть слепым. В конце концов эволюцией управляют слепые физические силы. Докинз присоединился к полемике между креационистами и эволюционистами, поддерживая последних, о чем свидетельствует написанная им недавно другая книга - «Слепой часовой мастер» (The Blind Watchmaker). Чтобы проиллюстрировать одно из главных положений своей книги, Докинз написал компьютерную программу, которая позволяет пользователю моделировать эволюционный процесс, придумывая и графически изображая свои собственные формы жизни, абстрактные организмы, которые Докинз называет биоморфами.
Исходные понятия. Полиномиальные и экспоненциальные алгоритмы. Задачи распознавания и оптимизации. Определение классов P и NP. Совпадает ли P с NP или не совпадает — вопрос на миллион долларов. Машина Тьюринга как универсальный вычислительный прибор. Опорные комбинаторные задачи: коммивояжера, клика, изоморфизм графов, паросочетание, рюкзак, целочисленное линейное программирование (ЦЛП), транспортная задача. В двух словах о непрерывной задаче линейного программирования. Теорема Кука.
Возникновение сложного из простого — это, казалось бы, злостное нарушение второго закона термодинамики. Второй закон требует постепенного выравнивания градиентов, разупорядочивания элементов и увеличения энтропии в системе. Тем не менее жизнь так специально устроена, чтобы поддерживать градиенты, упорядочивать элементы и уменьшать энтропию. Эти принципы справедливы как для одного организма, так и для целых экосистем, биот, эволюционных последовательностей. Значит ли это, что жизнь действительно противоречит законам физики?