Клуб любителей генетического алгоритма (ГА).
- учится в магистратуре Казанского государственного технического университета имени А.Н. Туполева (ранее КАИ), на факультете технической кибернетики и информатикиСергей Анисимов - подробнее на странице Programming of Magic Games.
Гончаров Дмитрий Александрович - закончил Тульское высшее артиллерийское инженерное училище, начальник отделения программирования.
Яковенко Олег Юрьевич - 1965 г.р. В настоящее время работаю в Казахстане. ОАО "Алюминий Казахстана" Краснооктябрьский бокситовый рудник. Начальник бюро горного проектирования + ведущий инженер - программист. Образование : горный инженер + пользователь САПР. По опыту работу : инженер-проектировщик ( стаж 3 года ), инженер - программист ( стаж с 1992 года ). Языки : С++ Задачи : горно-геометрическое моделирования. Горно-технологическое моделирование. Оптимизация параметров карьеров. Смежные области : Нейронные сети, генетические алгоритмы, имитационное моделирование.
Дмитрий Горбиков - магистрант 2001 года Ульяновского государственного технического университета. Основная работа - Пенсионный фонд России, системщик.
Анюта - учится в МАИ на факультете "Системы автоматического управления ЛА"., тема диплома "Интеллектуальная многоуровневая система выбора маршрута движущегося объекта, основанная на ГА"
Алтынай - аспирантка, специальность математик, занимается задачей прогнозирования временных рядов, Алма-Ата, Казахстан.
Применение генетического алгоритма.
Генетический алгоритм обычно применяется в задачах поиска решения сложной, вычислительно трудоемкой задачи, чаще всего с огромным числом параметров. Например, поиск функции наилучшего приближения в виде полинома с наименьшим числом членов и достаточно большим числом независимых переменных при малом числе измерений.
В литературе встречаются и другие применения - для игры в покер, в сочетании с другими методами и более сложными задачами.
Описание общего генетического алгоритма.
1) Создание структуры решения искомой задачи в виде массива a[i], i=1,...n, где n - максимальное число компонент структуры
Пример: поиск функции y=f(x) наилучшего приближения экспериментальных точек {xi, yi}, j=1,...,m, m - число точек в классе полиномов.
Структура определяется битовым массивом , где каждому элементу массива сопоставлен простейший многочлен типа xi, i=1,...n, где n - максимальная степень полинома.
2) Создание показателя эффективности структуры, заполненной конкретными значе-ниями
Пример: Показателем эффективности для нашего примера будет невязка вида
Ja=I1+I2+..+Im, где Ij=(yj-fa(xj))2,
где fa(x) есть сумма всех элементов вида Baixai при ai = 1, где a - некоторый битовый массив, однозначно определяющий структуру объекта исследования, параметры ai определяются методом наименьших квадратов.
3) Задание некоторого массива различных структур Sk, k=1,...,N, размерностью N, большей чем число компонент n в структуре
Данный массив можно сгенерировать случайно задав нули и единицы в каждой структуре.
4) Расчет показателей эффективности Jk для каждой структуры Sk.
По формуле заданной в пункте 2.
5) "Естественный" отбор структур по некоторому правилу выбора наилучших струк-тур среди заданного массива структур
Пример: можно по правилу вида
J0=M(Jk) - среднее значение Jk, если Jk<J0, то структура остается, иначе "умирает".
Если разница между предыдущим J0 и новым J0 меньше какого-то малого числа, то конец расчета.
6) Замена выбывших структур на новые, "рожденные" от наиболее приспособленных структур с помощью генетических операторов
а) мутация
Замена в структуре одного из значений случайно выбранной компоненты
Пример: из (1, 1, 0, 1, 0, 0, 1, 0) получится (1, 1, 0, 1, 1, 0, 1, 0).
б) инверсия
Перестановка в структуре некоторой ее части наоборот
Пример: из (1, 1, 0, 1, 0, 0, 1, 0) получится (1, 1, 0, 0, 1, 0, 1, 0).
в) кроссинговер
Создание структуры, основанной на двух структурах - заменой одной части первой структуры на ту же область во второй.
Пример: из (A, B, C, D, E) и (a, b, c, d, e) получится (A, B, c, d, E).
7) Повторение этапа 4.
Пример минимизации любой функции.
Задача: min f(x) на [a,b]
Создаем структуру типа (n1, n2, n3, ..., nM), ni - 0 или 1. Вычислим x0 по следующему правилу
Первый бит отвечает за расположение точки в первой или второй половине отрезка [a,b] = [a1, b1]. Второй бит отвечает за расположение точки в первой или второй половине отрезка [a1,b1] и т.д. Итак, по структуре мы можем вычислить аргумент и значение функции и соответственно задав функцию эффективности - решить задачу. Для многомерного случая структура удлиняется на второй и следующие аргументы функции.
Русскоязычные ссылки
Генетические алгоритмы по-русски и многое другое. - Личная страница.
Генетический алгоритм - Личная страница
Англоязычные ссылки
Генетические алгоритмы на Yahoo.com - ссылки на известной поисковой машине Yahoo
The Genetic Algorithms Archive - огромный архив информации про генетические алгоритмы, исходные тексты на C++, Lisp, Fortran, большое количество ссылок на английские ресурсы и ассоциации по ГА
Genetic Java!!!! - генетический алгоритм на Java
genetic-programming.org-Home-Page - организация по генетическим алгоритмам
The Genetic Algorithms Group, George Mason University - ассоциация по ГА
Genetic Algorithms and Artificial Life Resources - ресурсы по ГА и моделирования жизни
Genetic Adaptive Systems LAB (GASLAB) - лаборатория адаптивных систем с помощью ГА
Colorado State Genetic Algorithms Group - исследования по ГА в университете Колорадо
MSU GARAGe home page - исследования по ГА в Мичиганском университете
Digital Genetic Research Group - рабочая группа UI Computer Science в UNIVERSITY OF IDAHO, Moscow, Idaho, USA
Контактная информация.
Пожалуйста, напишите мне или в Гостевую книгу если Вы заинтересовались.