Особенности эволюционного моделирования. Актуальность и возможность реализации универсальной среды поддержки генетических алгоритмов. Средства помощи кругов потоков ввода-вывода рабочих программ. Применение конструкторов для различных описаний задачи.
Аннотация к работе
Именно на пути применения перспективных интеллектуальных технологий большинство исследователей надеется найти решение стоящих перед учеными и инженерами проблем и задач. Отметим, что в последнее время проявляется тенденция использования естественных аналогов при создании моделей, технологий, методик, алгоритмов для решения тех или иных задач проектирования, конструирования и производства, стоящих перед человечеством. Но разработка и программная реализация ГА, а также их применение и распространение, совершенствование и развитие сдерживаются целым рядом причин, среди которых доминируют следующие: · разработка практически каждого ГА является уникальной ввиду жесткой привязки к задаче на этапах кодирования и декодирования ее решений в виде генов и хромосом. O построить некоторую систему сведения многих задач, подлежащих решению, к ограниченному числу известных постановок задач поисковой оптимизации на основе генетического поиска решений.
Введение
Одной из основных проблем науки и техники является разработка теории, принципов, математических методов и моделей для эффективного принятия решений в сложных системах. Сложность и уникальность реальных систем, отсутствие адекватного математического аппарата приводят к необходимости поиска новых направлений моделирования и синтеза. Эти направления в настоящее время активно разрабатываются и составляют основы понятия «искусственный интеллект». Именно на пути применения перспективных интеллектуальных технологий большинство исследователей надеется найти решение стоящих перед учеными и инженерами проблем и задач. При этом важнейшими задачами являются: оптимизация, построение интеллектуальных искусственных систем (ИИС) поддержки принятия решений; моделирование процессов эволюционного развития природы; адаптация и взаимодействие ИИС с внешней средой; исследование открытых систем; построение порядка из хаоса; поддержание гомеостаза в ИИС; использование иерархической самоорганизации.
При построении общей стратегии создания ИИС перед учеными все время возникают аналогии, связанные с развитием природы. Какие пути эволюции выбирает природа? Почему природа экономна? Почему она идет оптимальным путем? Каким образом природе удается найти наиболее устойчивые формы? Каким образом происходит самоорганизация? Какие механизмы лежат в основе алгоритмов построения порядка из хаоса? Как природа научилась ускорять эволюцию? И многие другие. Д. Дидро говорил: «Похоже природе доставляет удовольствие варьировать один и тот же механизм бесконечным числом различных способов». Моделирование развития и совершенствования природы позволяет найти новые пути построения ИИС. При этом перспективными становятся эволюционные стратегии, генетические алгоритмы (ГА) и генетическое программирование [1 - 6].
Основным языком ИИС является математический аппарат системного анализа, теории сложных систем, графов и множеств, математического моделирования, имитации. Способность формировать математические структуры и оперировать с ними - краеугольный камень человеческого интеллекта. Математические модели и алгоритмы - это те формы, в которых теория эволюционного моделирования и искусственного интеллекта описывают знания и способы работы с ними.
1. Некоторые особенности эволюционного моделирования
Отметим, что в последнее время проявляется тенденция использования естественных аналогов при создании моделей, технологий, методик, алгоритмов для решения тех или иных задач проектирования, конструирования и производства, стоящих перед человечеством. В большинстве случаев использование естественных аналогов дает положительные результаты. Как правило, это объясняется тем, что аналог, взятый из природы, совершенствовался в течение многих лет эволюции и имеет на данный момент самую совершенную в своем роде структуру.
Эволюционное моделирование (ЭМ) представляет собой одно из быстро развивающихся направлений математического моделирования, объединяющее компьютерные методы моделирования эволюционных процессов в естественных и искусственных системах, такие как ГА, эволюционные стратегии, эволюционное программирование и другие эвристические методы. Характерно, что моделируемые биологические системы, в отличие в моделирующих их ИИС, достаточно хаотичны, не имеют очевидных целей или ограничений своего развития, но обладают завидными свойствами воспроизводства, адаптации, самоисправления, устойчивости, гибкости и многими другими, которые могут радикально изменить облик ИИС.
ЭМ - хорошо известная и эффективная оптимизационная методология, которую применяют для решения различных оптимизационных задач в науке и технике. Она основана на аналогии с естественными процессами селекции и генетическими преобразованиями, протекающими в природе [4 - 6]. В быстро прогрессирующей теории ЭМ содержится анализ класса адаптивных, управляющих, ИИС, в которых структурные модификации осуществляются последовательными и параллельными преобразованиями.
ЭМ может предоставить алгоритмические средства для решения комплексных задач науки и техники (с использованием хаотических возмущений, вероятностного подхода, нелинейной динамики), которые нельзя было решить традиционными методами. В общих чертах, эволюция может быть описана как многоступенчатый итерационный процесс, состоящий из случайных изменений и последующей затем селекции. Таким образом, достаточно просто обнаружить взаимосвязь между таким определением эволюции и оптимизационными алгоритмами [7 - 9].
При использовании для решения задач традиционных методов все вычисления обычно приходится начинать заново, что приводит к большим затратам машинного времени. При эволюционном подходе популяцией служит база знаний, которую можно анализировать, дополнять и видоизменять применительно к изменяющимся условиям. Для этого не требуется полный перебор вариантов решения задачи. Кроме того, ЭМ обеспечивает быструю генерацию достаточно хороших решений [7 - 9].
При решении практических задач с использованием ЭМ необходимо выполнить четыре следующих предварительных этапа: · выбрать способ представления решения;
· разработать операторы случайных изменений;
· определить законы выживания решения;
· создать начальную популяцию.
Для представления решения в виде, понятном компьютеру, требуется такая структура, которая позволит кодировать любое возможное решение и производить его оценку. Математически доказано, что идеальной структуры представления не существует. Поэтому для создания хорошей структуры требуются анализ, перебор и эвристические подходы [7 - 9].
«Двигателем» ЭМ являются ГА - эффективный аппарат оптимизации, моделирующий процессы селекции и генетических преобразований в биологии. Основой ГА явилась модель эволюции Ч. Дарвина [1, 4].
Обычно трудоемкость оптимизационных задач с ростом числа элементов резко возрастает, делая невозможным использование алгоритмов полного перебора. Поэтому требуется проведение модернизации структуры, как самих традиционных ИИС, так и основных блоков, стратегий, концепций, алгоритмов и методов решения оптимизационных задач. Перспективным подходом является использование альтернативных принципов и моделей различных эволюций: Ч.Дарвина («выживание сильнейших»), Ж. Ламарка («наследование благоприобретенных признаков»), де Фриза («внезапные скачки»), К. Поппера («проб и ошибок»), М. Кимуры («нейтральный отбор»), Н. Дубинина («самоорганизация под воздействием внешней среды»), а также их комбинаций [4 - 10]. Ключевыми в каждой модели являются: анализ популяции, ее направленное преобразование и эволюционная смена форм, что реализуется на основе поиска с использованием ГА и эволюционных алгоритмов. ГА начинают работать с несколькими начальными решениями, распараллеливая процесс, и позволяют частично решать проблему выхода из локальных оптимумов, при этом комбинируя, изменяя и наследуя элементы и ансамбли элементов качественных альтернативных решений за приемлемое время.
2. Актуальность и возможность реализации универсальной среды поддержки ГА
ГА сегодня стали мощным средством эффективного решения многих задач поиска и оптимизации решений в различных областях техники. Но разработка и программная реализация ГА, а также их применение и распространение, совершенствование и развитие сдерживаются целым рядом причин, среди которых доминируют следующие: · разработка практически каждого ГА является уникальной ввиду жесткой привязки к задаче на этапах кодирования и декодирования ее решений в виде генов и хромосом. Разработчики обычно «наследуют» и развивают только опыт построения отдельных генетических операторов (ГО) и общей организации процедур генетического поиска (ПГП) решений в ГА;
· программная реализация ГА производится практически с нуля. При этом в новых проектах обычно теряются все наработки программистов, связанные с оптимизацией структур данных, построения и кода самой программы, а также средствами повышения эффективности вычислений на основе различных эвристик;
· программная реализация ГА, как правило, заканчивается разработкой «вещи в себе» - программного продукта, ни в коей мере не относящегося к категории открытых систем. При этом теряется возможность оперативных сравнительных исследований эффективности применения для решения рассматриваемой задачи данного ГА наряду с ему подобными или алгоритмами других классов;
· ГА относятся к алгоритмам случайно-направленного поиска. Поэтому программы ГА, как правило, не позволяют воспроизводить при новых запусках программы поведение ГА и результаты поиска лучших решений, достигнутые при определенных сочетаниях значений управляющих параметров генетического поиска. При этом теряется уникальная по сути и ключевая по своей роли информация о поведении самой задачи, отражающая взаимное влияние основных факторов (ГА, данные, общая организация ПГП);
· Разработчики отдельных ГА часто ограничиваются использованием лишь самых распространенных схем ГА и ГО, после чего делают упрощенные выводы о применимости или недостаточно обоснованные выводы-приговоры, касающиеся ГА или самой решаемой задачи. В то же время весь спектр возможностей применения математического аппарата ГА для решения любой и каждой конкретной задачи не используется.
Наличие отмеченных факторов подчеркивает актуальность создания универсальной инструментальной интегрированной среды поддержки ГА (СПГА) для решения целого множества различных задач поисковой оптимизации [11].
Возможность реализации СПГА. Возможность реализации подобной среды поддержки основана на следующих положениях.
1. Число математических моделей, используемых для решения задач поисковой оптимизации конечно. Поэтому можно: O систематизировать их;
O построить некоторую систему сведения многих задач, подлежащих решению, к ограниченному числу известных постановок задач поисковой оптимизации на основе генетического поиска решений.
2. Число известных элементов ГА и процедур генетического поиска конечно. Поэтому можно: O систематизировать их;
O выявить их структурную общность;
O на ее основе построить систему автоматизированной генерации генетических алгоритмов и процедур различной сложности на заказ, например, для решения различных народно-хозяйственных задач упаковки, размещения, назначения, разбиения и объединения объектов.
3. ГА направлены на многократную обработку общей информации по разным правилам (модификациям ГО, модифицированным маршрутам генетического поиска, различным вариантам селекции и т.п.). Следовательно, актуальна разработка эффективных средств распараллеливания процессов генетического поиска. Это возможно в двух вариантах: O использование многозадачных режимов работы операционной системы персонального компьютера;
O построение новых схем распараллеливания процедур генетического поиска для решения задач в сетевой среде распределенной обработки с несколькими узлами (компьютерами).
4. ГА не обладают свойством воспроизводимости результатов своей работы. Поэтому для повышения эффективности их применения следует обеспечить реализацию «памяти» в ПГП, что можно обеспечить путем сохранения, например: O фрагментов лучших популяций;
O фрагментов лучших решений;
O лучших сочетаний значений параметров генетического поиска.
5. В конечном счете, эффективность применения ГА во многом определяется качеством декодирования хромосом-результатов. Большинство реализаций ориентированы на простейшие варианты последовательных алгоритмов декодирования. Повысить эффективность декодирования можно, обеспечив более тесную связь с природой задачи с помощью дополнительных эвристик, функции и ограничений, или сделав его процессом итерационной оптимизации.
3. Основные идеи реализации СПГА
При реализации программ решения задач на основе ПГП аппарат ГА обычно встраивается в вычислительную среду задачи, по сути перехватывая поток ввода ее данных. Поэтому предлагаемая СПГА должна обеспечивать поддержку следующих информационных потоков: внутренний (результаты вычислений) и ввода-вывода решаемой задачи, внутренний и ввода-вывода ГА. При этом поток вывода окончательных результатов работы ГА образует исходные данные для формирования потока вывода задачи.
В основу построения СПГА положены следующие соображения.
1. СПГА должна моделировать действия разработчика ГА.
Процесс решения некоторой задачи генетического поиска может быть представлен следующей укрупненной и обобщенной последовательностью действий (рис.1).
В общем случае ПГП может быть обычной циклической, альтернативной или параллельной.
2. При разработке средств пользовательского интерфейса СПГА целесообразно найти удачное сочетание средств разработчика и пользователя.
Рис.1
Использование различных, избыточных или альтернативных возможностей организации ГО и ГА может быть осуществлено на одном из двух следующих уровней: · на уровне разработчика программы ГА, когда все возможности ГА запрограммированы в составе программного продукта его разработчиком, функционируют независимо от желания пользователя;
· на уровне интерфейса пользователя, когда решение о применении избыточных или альтернативных компонент принимает пользователь программы, делая их выбор и настройку. Конечно, второй вариант обеспечивает бoльшую гибкость и универсальность системы.
3. Обеспечить возможность замены синтеза варианта элемента ГА его выбором из имеющихся готовых к применению.
В общем случае различные варианты элемента ГА, некоторой функции или получения решения некоторой задачи по степени повышения их эффективности можно упорядочить следующим образом: · выбор готового варианта из имеющихся;
· выбор варианта и параметрическая адаптация модели;
· выбор варианта и структурная адаптация модели;
· разработка (задание, описание) алгоритма
O на языке описания поведения, O на языке интерпретации сценариев, O на алгоритмическом языке высокого уровня, O на алгоритмическом языке низкого уровня.
4. Действия, связанные с описанием, выбором варианта какого-то решения, сборкой целого из частей и т.п. удобно выполнять в среде визуального мастера - конструктора.
Такой конструктор отвечает, в частности, за выбор элемента ГА из соответствующего перечня имеющихся - банка. А конструктор более высокого уровня обеспечивает сборку ПГП из элементов.
Связь элементов среды конструкторов с банками элементов ГО и ГА показана на рис.2. Но сложность состоит в том, что для решения своей задачи конструктору может понадобиться не только информация из одного или нескольких банков, но и помощь одного или даже нескольких конструкторов, а также информация их банков. Последнее обстоятельство может вызывать дополнительные организационные проблемы взаимодействия конструкторов.
5. СПГА должна поддерживать определенные типовые варианты математического описания природы решаемой задачи.
К ним относятся варианты структурного описания ее элементов (списки, кортежи, матрицы, графы и др.), а также функционального описания зависимостей и ограничений, которыми связаны элементы задачи.
6. СПГА должна поддерживать определенные типовые варианты кодирования и декодирования хромосом.
Возможность их выбора обеспечивается также с помощью соответствующих конструкторов.
Рис.2
7. При декодировании хромосом должны поддерживаться типовые варианты интерпретации результатов решения задачи.
К ним относятся естественная визуально-графическая или некоторая условная (перечень, последовательность, порядок, условное взаимное расположение объектов и т.п.).
8. СПГА должна быть ориентирована на самый сложный вариант интерпретации результатов решения задачи.
Поэтому в общем случае должен обеспечиваться вывод пространственного взаимного расположения (в общем случае разногабаритных) 3D-объектов в объеме некоторого конструктива заданных габаритов. Тогда вывод одномерных последовательностей объектов или расположений 2D-объектов на плоскости ограниченных размеров является частным случаем. эволюционный моделирование генетический алгоритм
4. Система элементов ГА
Анализ известных разработок [2-6] позволил выявить и систематизировать все важнейшие элементы ГА, необходимые и достаточные для построения процедур генетического поиска для новых ГА. Наполнение банков СПГА (рис.2) составляют различные
· типы функций (аддитивная, мультипликативная, комбинированная);
· типы генов (двоичный, десятичный, символьный);
· типы хромосом (гомологичные, негомологичные);
· типы и виды ГО [4 - 9, 11]: O оператор кроссинговера (одноточечный, двухточечный, многоточечный, порядковый, частично соответствующий, циклический, универсальный, «жадный», на основе множества Кантора, на основе дихотомии, на основе метода «золотого сечения», на основе чисел Фибоначчи), O оператор мутации (одноточечный, двухточечный, многоточечный, порядковый, универсальный, «жадный», на основе множества Кантора, на основе дихотомии, на основе метода «золотого сечения», на основе чисел Фибоначчи, аргументированный знаниями, дупликация, делеция, внутрихромосомный, межхромосомный), O оператор инверсии (перецентрический, параценрический, одноточечный, двухточечный, многоточечный, порядковый, универсальный, «жадный», на основе множества Кантора, на основе дихотомии, на основе метода «золотого сечения», на основе чисел Фибоначчи), O оператор транслокации (реципрокный, нереципрокный, полицентрический, робертсоновский, комбинированный «кроссинговер инверсия», «жадный», на основе множества Кантора, на основе дихотомии, на основе метода «золотого сечения», на основе чисел Фибоначчи), O оператор сегрегации (одноточечный, двухточечный, «жадный», на основе множества Кантора, на основе дихотомии, на основе метода «золотого сечения», на основе чисел Фибоначчи), O оператор удаления и вставки (одноточечный, двухточечный);
· стратегии формирования популяции (случайная, направленная, комбинированная);
· варианты селекции или оператор репродукции («колесо рулетки», случайный, на основе заданной шкалы, турнирный, элитный, вероятностный, детерминированный, комбинированный);
· стратегии усечения пространства решений (проверка легальности хромосом, эвристические);
Архитектура предлагаемой универсальной СПГА представлена на рис.3. Ее основу составляют две части: · общесистемная (управляющая) среда, которая включает управляющую программу (монитор), банк данных и знаний СПГА, представляющий базу данных (БД) и знаний (БЗ) об элементах ГО, ПГП и ГА со своими системами управления БД и БЗ, а также среду сборки рабочих программ формируемых ГА;
· среда поддержки действий пользователя, включающая интерфейсы и среды поддержки четырех основных групп действий пользователя при построении новых ГА: · среда выбора варианта реализации искомого элемента ГА с использованием соответствующего конструктора элемента;
· среда описания функции элемента ГА с использованием конструктора описания программы его работы на выбранном языке программирования процедурного или сценарного типа;
· среда настройки параметров разработанных (выбранных) ГО и ГА с помощью соответствующих диалоговых окон;
O среда потоков ввода-вывода рабочих программ ГА, обеспечивающая подготовку определенных форматов исходных данных для решения конкретных задач, а также графическую или иную интерпретацию результатов генетического поиска (на основе типовых вариантов декодирования хромосом).
6. Средства поддержки среды потоков ввода-вывода рабочих программ ГА
При создании рабочей программы ГА пользователь СПГА должен обеспечить поддержку последовательности преобразований (рис.4), что по сути представляет определение потоков ввода-вывода рабочей программы ГА. При этом для потока ввода должны быть осуществлены: выбор форматов представления, функциональное описание критериев и ограничений, а также ввод конкретных значений исходных данных решаемой задачи. Для потока вывода
Рис.4
Для различных описаний задачи используются следующие конструкторы: · конструктор соответствия: «объект - ген», «группа объектов - хромосома»;
· конструктор 3D-объектов и их ориентаций. Для каждого объекта i задаются размеры (xi, yi, zi) в трехмерной системе координат (рис.5) и пространственная ориентация каждого объекта (в общем случае для 3D-объекта можно задать до 12 вариантов ориентации (k=1,…,12) - по 4 для каждой из трех осей координат). Универсальной точкой «привязки» объекта служит его точка, являющаяся ближайшей к началу координат. Тогда задачи пространственного расположения объекта решаются по отношению к координатам (xi*, yi*, zi*) этой точки привязки. Отметим, что тройка {(xi, yi, zi), k, (xi*, yi*, zi*)} однозначно определяет пространственное расположение объекта i в объеме конструктива. Альтернативой является задание для каждого объекта координат двух его противоположных точек в трехмерном пространстве, что не всегда удобно изза отсутствия и необходимости многократных вычислений ориентации объекта;
· конструктор объемов (площадей, полос) и их ограничений. Задаются габариты (X, Y, Z) конструктивов, а также габариты и точки привязки их запрещенных областей;
· конструктор последовательного пространственного (3D-) расположения объектов. На рис.5 номерами в скобках показан естественный порядок использования направлений расположения объектов, полученный в результате анализа многих реальных задач. Такое расположение для организации «сканирования», кроме собственно расположения по выбранному направлению di (i = 1, 2,…, 6), может содержать еще и смещение sj (j = 1, 2,…, 6) в определенном направлении, перпендикулярном выбранному (рис.6). Отметим, что расположение и смещение производится до достижения соответствующей границы объема. В общем случае порядок пространственного расположения объектов может быть задан циклическим, последовательным или комбинированным описанием. Примеры: циклического описания для рис.6 - (d1, s2); последовательного - d3, d1, d6, d4 ; комбинированного - (d2, d1, d5, d3). Последний пример задает расположение по сужающейся «спирали»;
· конструктор структур - математических описаний взаимных связей объектов задачи, поддерживающий списки, матрицы, графы, гиперграфы и др.;
· конструктор зависимостей (дополнительных формул поиска оптимальных решений - критериев и оценок качества решения задачи). Задаются функциональные зависимости и наборы ограничений, обязательные соответственно для вычислений и проверки в ходе решения задачи.
7. Возможности интеграции компонент СПГА как открытой системы
Предлагаемая СПГА должна поддерживать концепцию построения открытых систем, в соответствии с которой ее элементы должны строиться с использованием типовых интерфейсов (стандартных или специально разработанных удобных средств информационного и программного сопряжения). Например, взаимодействие элементов ГА посредством системы управления БД удобно организовать на основе типовых конструкций (форматов) языка SQL. Кроме того, пополнение и развитие среды возможно только на основе использования единых форматов обмена данными между ее программными компонентами, реализующими элементы ГА.
Еще более перспективным является использование в качестве интегрирующей основы СПГА набирающей популярность платформы .Net, разработанной и активно развиваемой компанией Microsoft. На ее основе организовано комплексное использование целого ряда новых технологий и языков программирования, облегчающих как включение в приложение новых элементов (модулей), так и передачу данных между этими элементами. В первую очередь, это технология и среда разработки Visual Studio for Applications (VSA), являющаяся развитием технологии Active Script в рамках в рамках платформы .Net [12]. Технология Active Script поддерживает набор спецификаций основных компонентов приложений - интерпретатора языка сценариев (script engine) и приложения-хозяина (script host), реализующих среду выполнения сценариев на языках JSCRIPT, VBSCRIPT и других. Кроме того, она поддерживает автоматическое связывание и встраивание объектов (Object Linking and Embeding, OLE).
В рамках платформы .Net для взаимодействия сценариев используется уже не OLE-автоматизация, так называемый управляемый код (Managed Code). Бинарные модули (EXE- и DLL-файлы) предоставляют динамическую информацию обо всех своих типах данных и функциях. Благодаря этому стала возможной полная интеграция сценариев в платформу .Net, не только предоставляя им возможность пользоваться ее компонентами, но и самим удовлетворять спецификациям платформы Net. Это означает, что объекты, созданные, например, на языке JSCRIPT.Net, могут быть доступны для программы, написанной на языке VBSCRIPT.Net или VISUALBASIC.Net и наоборот. В принципе, технология VSA позволяет одинаково легко использовать любой язык, удовлетворяющий новой спецификации Common Language Specification [12].
Использование такого подхода выводит СПГА на принципиально новый уровень гибкости и функциональности. Например, включение элементов ГА в среду можно существенно упростить, используя конструкции языка XML - в качестве средства описания данных (представлений, структур, расположений и т.п.) и обмена данными, а также JSCRIPT.Net наряду с Visual C .Net или совершенно новым языком C# и другими - для программирования элементов (ГО, ПГП, зависимостей и т.п.).
Таким образом обеспечиваются: · возможность реализации СПГА посредством разработки новой среды управления (монитор, пользовательские интерфейсы представления (конструкторы) и диалоги, средства сборки рабочих программ ГА) с использованием и включением уже имеющихся наработок, программных и информационных компонент;
· возможность развития СПГА на основе известного принципа «поэтапного ввода» с использованием как испытанных временем технологий разработки программного обеспечения с использованием языков C/C , так и новых технологий его интеграции, с последующим постепенным вытеснением старых технологических программных решений компонентов СПГА новыми.
Вывод
Разработка и реализация предлагаемой универсальной СПГА обеспечивает: · существенное сокращение сроков разработки, программной реализации и практического применения новых ГА для решения различных практических задач;
· учет накопленного опыта предшествующих разработок элементов ГА и возможность использования компонентов ранее разработанного программного обеспечения;
· снижение сложности и повышение степени интуитивности действий пользователя на основе использования визуальных средств интерфейса (конструкторов и диалогов);
· расширенные возможности оперативного исследования эффективности сведения реальных задач к различным ПГП, вопросов повышения эффективности применения конкретных схем поиска, настройки и использования отдельных ГО;
· возможность постепенного повышения степени интеллектуализации ГА на основе накопления и совершенствования механизмов представления знаний как о конкретных решаемых задачах, так и об элементах ГА;
· возможность достижения новых уровней функциональности и соответствия новым промышленным стандартам в области разработки программного обеспечения.
Список литературы
1. Дубинин Н.П. Избранные труды. Том 1. Проблемы гена и эволюции. - М.: Наука, 2000.
2. Букатова И.Л. Эволюционное моделирование и его приложения. - М.: Наука, 1994.
3. Тарасов В.Б. От многоагентных систем к интеллектуальным организациям: философия, психология, информатика. - М.: Эдиториал УРСС, 2002. - 352 с.
4. Holland John H., Adaptation in Natural and Artificial Systems: An Introductory Analysis with Application to Biology, Control, and Artificial Intelligence. USA: University of Michigan, 1975.
5. Goldberg David E. Genetic Algorithms in Search, Optimization and Machine Learning. USA: Addison-Wesley Publishing Company, Inc., 1989.