Научная статья на тему 'Объектно-ориентированная реализация алгоритма клональной селекции'

Объектно-ориентированная реализация алгоритма клональной селекции Текст научной статьи по специальности «Математика»

CC BY
489
100
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по математике, автор научной работы — В.И.Литвиненко, А.А.Фефелов, С.П.Горавский

В работе представлены результаты проектирования объектно-ориентированной библиотеки для решения оптимизационных задач при помощи алгоритма клональной селекции. Приводится модель алгоритма в виде его пошаговой реализации. Структура библиотеки и отношения между классами показаны на схемах и разъясняются в тексте статьи.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — В.И.Литвиненко, А.А.Фефелов, С.П.Горавский

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The paper deals with the model of clonal selection algorithm that is used to solve mathematical optimization problems and represented there as the object-oriented library of classes. The model of algorithm is shown as its step-by-step realization. The structure of library and relationships between its classes

Текст научной работы на тему «Объектно-ориентированная реализация алгоритма клональной селекции»

ПЕРЕЧЕНЬ ССЫЛОК

1. Трофимов A.M., Заботин Я.И., Панасюк М.В., Рубцов В.А. Количественные методы районирования и классификации.-Казань: изд-во Казанск. ун-та, 1985, 120 с.

2. Monmonier M.S. Maximum-difference barriers: alternative numerical regionalization method. - Geogr. Anal., 1973, vol.5, №3, p. 245-261.

3. Тикунов B.C. Классификации в географии: ренессанс или увядание? - Смоленск, Изд-во СГУ, 1997, 367 с.

4. Блануца В.И. Интегральное экологическое районирование:

концепция и методы. - Новосибирск, ВО "Наука", 1993, 159 с.

5. Жамбю М. Иерархический кластер-анализ и соответствия.-М: Финансы и статистика, 1989, 342 с.

6. Прохоров Б.Б. Медико-экологическое районирование и региональный прогноз здоровья населения России. - М: Изд-во МНЭПУ, 1996, 70 с.

7. Айвазян С.А, Мхитарян B.C. Основы эконометрики. Теория вероятностей и прикладная статистика. - М., Юнити, 2001, 656 с.

УДК 658.512

ОБЪЕКТНО-ОРИЕНТИРОВАННАЯ РЕАЛИЗАЦИЯ АЛГОРИТМА

КЛОНАЛЬНОЙ СЕЛЕКЦИИ

В.И.Литвиненко, А.А.Фефелов, С.П.Горавский

У poôomi подам результати проектування об'ектно-ор1ентованоЧ бiблiоmеки для розв'язання задач опmимiзацiï за допомогою алгоритму клональной селекцп. Наводиться модель алгоритму у виглядi його кpоковоï pеалiзацiï. Структура бiблiоmеки i вiдносини мiж класами показан на схемах та пояснюються у mексmi сmаmmi.

В работе представлены результаты проектирования объектно-ориентированной библиотеки для решения оптимизационных задач при помощи алгоритма клональной селекции. Приводится модель алгоритма в виде его пошаговой реализации. Структура библиотеки и отношения между классами показаны на схемах и разъясняются в тексте статьи.

The paper deals with the model of clonal selection algorithm that is used to solve mathematical optimization problems and represented there as the object-oriented library of classes. The model of algorithm is shown as its step-by-step realization. The structure of library and relationships between its classes

ВВЕДЕНИЕ

Иммунная система (ИС) позвоночных является одной из запутанных систем организма, а ее сложность сравнима только со сложностью нервной системы позвоночных. Развитие генетики, молекулярной биологии значительно увеличило наше понимание работы иммунной системы. Знание механизмов работы иммунной системы показывает, что они интересны не только с биологической, но и с вычислительной точки зрения. Подобно тому, как понимание работы нервной системы привело к созданию и разработке искусственных нейронных сетей, понимание работы иммунной системы привело к созданию иммунных систем - новой вычислительной парадигмы.

Искусственные иммунные системы (ИИС) определяются как метафоры или абстракции разрабатываемых вычислительных систем, использующие иммунологические механизмы и теории [1]. До недавнего времени модели иммунных систем предназначались в основном для исследования биологических аспектов иммунной системы, чтобы как можно лучше и глубже понять их поведение и таким образом содействовать развитию биологической

науки [2, 3]. В настоящий момент возрос интерес к разработке ИИС для решения прикладных вычислительных задач, таких как оптимизация, распознавание образов, классификация, data mining, оптимальное управление, идентификация систем, противовирусная защита компьютеров и компьютерных сетей. Существует множество программных реализаций предназначенных указанных задач.

Данная работа посвящена проблемам объектно-ориентированной реализации ИИС, а именно использованию принципов клонального отбора для решения задач нелинейной оптимизации.

1 БИОЛОГИЧЕСКИЕ ОСНОВЫ

ИСКУССТВЕННЫХ ИММУННЫХ СИСТЕМ

Все позвоночные имеют иммунную систему, которая интересна нам с вычислительной точки зрения. Иммунная система выработалась в процессе эволюции как средство защиты от заражения микроорганизмами и более крупными паразитами. У позвоночных И С состоит их множества разнообразных молекул и клеток, рассредоточенных и циркулирующих по всему организму. Характерной особенностью ИС, является то, что отсутствует какой-либо центральный орган, который осуществляет управление, и функционирование ИС при этом имеется несколько элементов, которые постоянно находятся в движении и выполняют различные дополнительные функции [4]. Основной задачей ИС является защита организма от живых тел и веществ, несущих на себе признаки генетически чужеродной информации, называемых антигенами. Каждый антиген специфичен, т.е. имеет в своей структуре, такие особенности, которые отличают его от других антигенов, и вызывают специфическую реакцию иммунной системы, направленную только против него одного. Т.о. с помощью сложных механизмов распознавания, которые отличают "свое" от "чужого" на основе химической структуры, иммунный процесс порождает клетки и молекулы, связывающие и уничтожающие "чужое". Образование защитных клеток и молекул называется иммунной

реакцией. Одной из привлекательных свойств И С является наличие молекул рецепторов на поверхности иммунных клеток, способных к распознаванию разнообразных антигенов (образов). Обычно выделяют две большие группы иммунных клеток, известных как В-клетки и Т-клетки. Эти два типа довольно схожи между собой, но отличаются тем, как они распознают антигены и своими функциональными ролями: В-клетки вырабатывают антитела, а Т-клетки осуществляют иммунные реакции клеточного типа [5]. Механизмы защиты организма хозяина включают в себя большое количество взаимосвязанных процессов, одним из важных является процесс образования молекул, называемых антителами. Главными особенностями иммунной реакции является ее специфичность и наличие своего рода памяти. Специфичность означает, что антитела, образованные в ответ на некоторый антиген, сильно связывают именно этот антиген и не столь сильно другие антигены. Память проявляется в том, что в течение длительного времени после первичной реакции на антиген повторное введение того же антигена вызывает более быструю и мощную вторичную реакцию. Распознавание антигенов является первой предпосылкой для активации иммунной системы и осуществления иммунного ответа. Существует два основных типа иммунного ответа. Гуморальный ответ состоит в выработке антител, которые циркулируют в крови и специфически связываются с вызвавшими их синтез чужеродными молекулами. Иммунный ответ клеточного типа включает образование специализированных клеток, реагирующих с чужеродным антигеном главным образом на поверхности собственных клеток организма. Распознавание должно удовлетворять нескольким критериям. Антитела или иммуноглобулины играют весьма важную роль в иммунном процессе. Они представляют собой молекулы, которые с помощью активных центров могут связываться с некоторыми, обладающими определенной химической структурой функциональными группами антигенов. Эти группы называются антигенными детерминантами или эпитопами. Равновесная константа ассоциации для связывания с определенной антигенной детерминантой называется аффинитетом или сродством молекулы антитела к соответствующему антигену. Первоначально, рецептор клетки распознает антиген с некоторой аффинностью, и осуществляется связывание между рецептором и антигеном с силой, пропорциональной этой аффинности. Если аффинность больше, чем данная пороговая, то иммунная система активизируется. На результат столкновения между антигеном и рецептором клетки влияет природа антигена и тип распознающего сайта. Связывание антител с антигеном облегчает его удаление, которое осуществляется специализированными клетками организма (фагоцитами и макрофагами). Если антигены представляют собой молекулы, то комплексы антигена и антител (иммунные комплексы) способны образовывать агрегаты больших размеров, обладающие цитофильными свойствами. Кроме того, защитное действие антител может осуществляться путем прямой нейтрализации активности антигена. Если антиген является проникшей в организм бактерией или вирусом, взаимодействие с антителами может привести к лизису "агрессора". После налипания антитела к поверхности

бактерии запускается цепь ферментативных реакций, в которые последовательно вступают компоненты комплимента и вызывают разрыв бактериальной стенки. Функционально этот процесс представляет собой все большее увеличение концентрации фермента за счет, мультипликативных управляющих воздействий который, в конце концов, разрушает клеточную мембрану. Иммунная система человека содержит орган, называемый тимусом или вилочковой железой, расположенный в грудной клетке в области верхнего межплеврального пространства переднего средостения на уровне верхней части грудной кости, которая выполняет главную роль в созревании Т-клеток. После того как Т-клетки сгенерированы, они поступают в тимус, где происходит их созревание. В течение этого созревания, все Т-клетки, которые распознают антигены своего организма, удаляются из популяции Т-клеток, данный процесс называется отрицательной селекцией. Если В-клетка сталкивается с чужим антигеном с достаточной аффинностью, то такие клетки пролиферируют и дифференцируют в эффекторные клетки и клетки памяти, а данный процесс называется клональной селекцией. В противоположность этому, если В-клетки распознают свои антигены, то это как предполагается в соответствии с теорией иммунной сети, может привести к супрессии. В данной статье мы не будем затрагивать алгоритмы на основе отрицательной селекции и иммунной сети, а остановимся на аналоге вычислительного алгоритма клональной селекции. Но перед этим более подробно рассмотрим теорию клональной селекции.

2 КЛОНАЛЬНАЯ СЕЛЕКЦИЯ

Клональная селекция является теорией, которая используется для объяснения механизмов иммунного ответа при распознавании иммунными клетками образов чужих антигенов В-клетками. Первую, чисто биологическую, селективную теорию образования антител сформулировал в 1955 году Нильс Ерне [4]. Он предположил, что в организме действительно синтезируется полный набор антител, но каждое из них образуется в небольшом количестве и поступает в кровь в виде "естественных антител". Эти антитела избирательно связываются с соответствующим антигеном, и доставляет этот антиген неким клеткам организма, для которых антитела служат сигналом к воспроизведению таких же молекул, т.е. к образованию большого количества специфических антител. С этой точки зрения вторичный антительный ответ объяснялся как результат появления после первой иммунизации увеличенного числа антител-"носителей", присутствие которых будет одновременно способствовать селекции антигеном антител с более высоким сродством, что объясняет изменение качества антител при многократной иммунизации. Гипотеза, высказанная Н. Ерне, согласно которой роль антигена сводится к отбору преадаптированных к нему клеток, получила дальнейшее развитие в теории селекции клонов Франка Бернета [6, 4], постулирующей четыре основных положения: 1) лимфоидная ткань организма содержит большое количество клеток; 2) популяция лим-фоидных клеток гетерогенна и состоит из большого количества клонов, возникших в результате мутаций;

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

Теория Бернета постулирует, что иммунокомпетентная клетка (малый лимфоцит) содержит в своем геноме генетическую информацию к ответу на один антиген до вовлечения ее в иммунный ответ. В процессе иммунного ответа клетки пролиферируют, образуя клон. Вторая клетка отвечает за второй антиген и т.д. Пул лимфоцитов индивидуума запрограммирован для иммунного ответа на различные антигены [7, 8]. Таким образом, лимфатическая система организма имеет набор предшествующих клонов, запрограммированных отвечать на различные антигены. Установлено, что одна клетка может продуцировать антитела нескольких классов. Возникают клоны лимфоидных клеток как следствие экспрессии различных генов, содержащихся в геноме, и в результате соматических мутаций. Каждый В-лимфоцит генетически запрограммирован синтезировать только один вид антител, содержащих один вид рецепторов для антигена. Этот рецептор содержится на поверхностной мембране лимфоцитов. Присоединение антигена к рецепторам активирует лимфоцит к пролиферации и дифференцировке, в результате чего возникает клон плазматических клеток, синтезирующий антитела к данному антигену. Согласно клонально-селекционной теории иммунитета, способность популяций лимфоидных клеток вырабатывать антитела определенной специфичности не зависит от антигена, а детерминирована генетически. Роль антигена состоит в том, что он стимулирует (отбирает, селектирует) соответствующий ему клон клеток лимфоидной ткани, являющийся носителем рецептора, с которым антиген может специфически реагировать.

3 МОДЕЛЬ АЛГОРИТМА КЛОНАЛЬНОЙ

СЕЛЕКЦИИ

Алгоритм клональной селекции, моделирующий основные принципы теории клонального отбора иммунной системы, относится к категории систем вычислительного интеллекта [1], куда входят системы способные к адаптации своего поведения, при достижении целей, т.е. обладающие способностью обучаться даже в отсутствии человека, в отличие от систем искусственного интеллекта и так называемых "символьных вычислений", последние из которых неспособны к самообучению вообще.

Формально клональный алгоритм для задач оптимизации можно представить следующим образом [9]:

CLONALG = (Ab0, f,L,N,n,ß,d,e),

(1)

где АЬ0 - исходная популяция антител; { - целевая функция; N - количество антител в популяции; Ь - длина рецептора антитела; п - количество антител, отбираемых для клонирования(с самой высокой аффинностью); Ь -множительный фактор, регулирую-щий количество клонов отобранных антител; d - количество антител , подлежащих замене новыми(т.е. име-ющие самую низкую аффинность); е - критерий останова.

Пошаговая реализация алгоритма приведена ниже.

Шаг 1. Инициализация. Генерировать начальную

популяцию АЬ0 антител

АЬ0 = 0, у е {1..Щ}, г = 0 .

Случайно выбрать I. е I.

Ab0 = Ab0 + j ,

где I - пространство индивидуумов, т.е. множество всех возможных структур, представляющих антитело, i е I -подмножество индивидуумов, составляющих популяцию, t - номер поколения.

Шаг 2. Определение аффинности. Для каждого антитела Abj е Abt вычислить значение целевой функции yi = f(Abj) и определить аффинность gj = affinity(yj) ,

j е {1..W}.

Шаг 3. Селекция. Выбрать подмножество антител с самой высокой аффинностью (Ab{n}) .

Ab{n} = {Abj е Abt\select{Abj, Abt, n) = 1 } ,где

select(Abj, Abt, n) = rank(Abj) = j ,если

' 1, rank(Abj) < n ; '0, rank(Ab^) > n;

"j e{ 1.JV-1}: affinity(f(Abj))> affinity(i{Ab} + ^ . Шаг 4. Клонирование. Получить популяцию клонов C{NC} и3 Ab{n} .

C{Nc} = 0 '

"j g {1..NC} :Cj = Abk, Abk e Ab{n},

где

k=

nd

round(ß • N)

n

Nc = С round(ß • N) ,

i = 1

round(х) - оператор взятия целой части числа.

Шаг 5. Гипермутация. Получить популяцию изменен*

ных клонов С {Щс} из С{N } .

C{ nc } = 0 ;

"j e {1..Nc} :Cj = C. e C{

mutate(Ci), rnd(pm) = 1; Cj, rnd(pm) = 0;

У ~ '

где rnd(pm) - функция моделирования наступления случайного события с заданной вероятностью pm, mutate(Су) - оператор мутации, который случайно изменяет один или несколько генов антитела.

Шаг 6. Определение аффинности популяции изменен* *

ных клонов. Для каждого антитела C у е C{nc} вычислить значение целевой функции уу = f( С*) и определить аффинность gy = affinity(yy), у е { 1.. Nc} .

*

Шаг 7. Селекция. Выбрать подмножество C {n} из n

антител с самой высокой аффинностью из популяции

*

измененных клонов C {nc } , подобно шагу 3.

Шаг 8. Замещение. Заменить подмножество Ab{n} на

*

C { n }.

"у е {1..n} :Abj е C**, Aby е Ab{n}, C*е C*{n}. Шаг 9. Клональное удаление. Заменить подмножество антител Ab{ d} с самой низкой аффинностью новыми индивидуумами.

Ab{d} = {АЬу е Abt\negselect(АЬу, Abt, d) = 1} ,

где

1, rank(Abj) < N - d; 0, rank{Ab])> N - d;

negselect(Abj, Abt, d) = rank(Abj) = j ,если

"j e{ 1..N- 1}: affinity(f(Abj)) >affinityf(Abj + 1)), k e {1..d} .

Случайно выбрать ik e I . Abk = ik , Abk = Ab{d} .

Шаг 10. Проверка условия останова. По выбранному критерию e проверить выполнение условия останова алгоритма.

Abt + 1 = Ab{ n}^ Ab{ d}^ Ab{N - (n + d)} , t = t + 1, Вывод Ab{n} , если stop(e) = true ;

возврат к шагу 2, если stop(e) = false . Замечания. Оператор мутации подробно не рассматривается в данной работе, потому что на сегодняшний день существует большое число различных вариантов его реализации. Параметры n и d не связаны друг с другом

напрямую, а только через размер популяции N, т.е. на них накладываются ограничения - п + d < N. Это означает, что в популяции по прошествии одного поколения могут оставаться неизмененные индивидуумы. Перед применением оператора селекции все индивидуумы должны быть проранжированы, т.е. необходимо осуществить сортировку популяции по убыванию аффинности. Следовательно, наименьший ранг получит индивидуум с наибольшим значением аффинности.

4 ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ ПОДХОД

В настоящее время уже существует ряд пакетов программ, предназначенных для решения различных математических задач. Большинство пакетов представляет собой набор стандартизированных автономных программных модулей, организованных в виде библиотек, написанных на процедурно-ориентированных языках, таких, например, как Фортран или Си. Процедурные модули пакетов могут быть непосредственно включены в любую авторскую программу. При этом предполагается, что пользователь библиотеки имеет квалификацию математика-программиста, необходимую для корректного использования модулей при программной реализации средств постановки и решения задачи. На практике подобные допущения не всегда оправданы, и пользователь сталкивается с серьезными трудностями, связанными с необходимостью адаптации модулей к конкретным прикладным задачам, которые могут отличаться от стандартных постановкой и алгоритмами решения. Процедурные модули плохо приспособлены для модификаций и пользователю нередко приходится перепрограммировать их заново. В связи с этим, важное значение, приобретает применение объектно-ориентированного подхода (ООП) [11], обеспечивающего широкие возможности для развития и адаптации уже созданного программного обеспечения. Однако преимущества использования ООП могут быть достигнуты только в результате глубокого объектного анализа предметной области и тщательного объектного проектирования. Объектно-ориентированные библиотеки, по существу, представляют собой наборы классов, организованные в виде деревьев или иерархий. Такие иерархии могут включать в себя производные классы (классы - наследники) и классы, содержащие в себе другие классы (классы-контейнеры). Преимущество ООП по сравнению с процедурным программированием состоит в том, что набор классов библиотеки уже, как правило, обеспечивает базовую функциональность того или иного математического метода и пользователю остается провести лишь "косметическую" адаптацию одного или нескольких классов под конкретную задачу. Для этого создается потомок нужного класса, добавляются необходимые свойства и переписываются необходимые виртуальные методы (рис.1).

////// стандартная <шш иа //////

class LibraryClass {

char m_property1; virtual int Method1(char*); virtual char* Method2(void);

};

lllllll атрсая cp tr

////////

class MyClass i

public LibraryClass

int m_property2; int Method1(char*);

};

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

int MyClass i

Method1(char* ch)

ll Н1шт13®1!тда

Рисунок 1 - Общий вид стандартной библиотеки

В данной работе представлены результаты реализации объектно-ориентированной библиотеки, написанной на языке Си++ и предназначенной для решения одномерных и многомерных задач мультимодальной нелинейной оптимизации с ограничениями и без ограничений при помощи алгоритма клональной селекции [9,10].

5 ОПИСАНИЕ БИБЛИОТЕКИ

Прежде чем приступить к описанию структуры библиотеки, остановимся на условных обозначениях, используемых в схемах [12] (табл.1).

Основываясь на данных модели, рассмотренной в разделе 2, можно выделить следующие объекты предметной области.

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

2. Ген (Класс CGene). Класс, представляющий минимальный неделимый сегмент рецептора антитела.

3. Антитело (Класс CAntiBody). Класс, содержащий в себе полную информацию о данных задачи (один вариант решения задачи).

4. Популяция (Класс CImmunePopulation). Популяция антител, реализующая основные механизмы клонального отбора.

5. Алгоритм (Класс CImmuneAlgorithm). Класс, включающий в себя основные и вспомогательные объекты модели и обеспечивающий функционирование алгоритма клональной селекции.

Пример взаимного включения основных объектов для построения работоспособного алгоритма показан на рисунке 2.

CImmuneAlgorithm

CImmunePopulation

+ CAntiBody

+ 1 CGene |

1 I CTask

Pucymê 2 - ÏpuMep включeнuя ocнoвныx oбъeкmoв

Таблица 1 - Используемые условные обозначения

2

I CBinaryGene~|

Рисунок 3 - Пример описания иерархии классов

На рисунке 3 показана иерархия классов, производных от CGene и CAntiBody. Класс CGene содержит единственный атрибут m_p Value, являющийся указателем на структуру данных, кодирующую сегмент рецептора антитела.

Атрибут m_p Value описан как указатель на void, благодаря чему имеется возможность использования в качестве данных, структуры любого стандартного или определяемого пользователем типа, например типа double (рис. 4).

//// стандартная нш

class CGene {

void* m_pValue; ... };

//// атрсмя ¡рнраыа

////

////// public CGene {

class CDoubleGene pub lic:

CDoubleGene ( ) {

m_pValue = new double; ... } ... } ;

Рисунок 4 - Пример описания атрибута m_pValue как указателя на void

В рассматриваемой здесь библиотеке реализованы классы, производные от CGene: CCharGene, CIntGene и CFloatGene, работающие с данными соответствующих типов. Кроме того, от класса CCharGene создан производный CBinaryGene, в котором *m_pValue может содержать только два значения "0" и "1".

Класс CAntiBody является контейнером для объектов класса CGene и содержит в себе массив данных, являю-

щихся рецептором антитела. Рецептор кодирует набор входных переменных решаемой задачи. Кроме того, класс CAntiBody содержит атрибуты: m_Length - длина рецептора, m_Rank - значение ранга антитела в популяции и m_Affinity - афинность антитела, определяемая на шаге 2 и 6 алгоритма (раздел 2). Возможны три вида отношений инииницициализации между классами, производными от CAntiBody и классом CGene.

1. Инициализация случайным значением в интервале, определяемом максимальным и минимальным значением стандартного типа данных.

2. Инициализация случайным значением в интервале, определяемом пользователем.

3. Инициализация заданным значением.

Для класса CBinaryAntiBody возможно, также, отношение инверсии гена. Отношения инициализации являются базой для работы оператора гипермутации.

Отношения между классами CTask и CAntiBody зарезервированы в библиотеке, но не реализованы, потому что заранее не известно какую именно задачу будет решать пользователь. Конструирование рецептора антитела, а, также, его декодирование и оценка зависят от конкретной задачи и должны быть реализованы самим пользователем. Класс CTask содержит лишь интерфейсы соответствующих методов (рис. 5).

class CTask {

virtual void Construct(CImmParams* Params){}

virtual double AffinityFunc(CAntiBody* Ab){} };...

Рисунок 5 - Описание класса класса CTask

Рисунок 6 - Основные характеристики класса CImmunePopulation и его отношения с классом CAntiBody

На рисунке 6 показаны основные характеристики класса CImmunePopulation и его отношения с классом CAntiBody. Этот класс содержит в своем составе несколько атрибутов таких как m_Length (размер популяции), m_AffinityAverage (средняя аффинность популяции), m_AffinityMax (аффинность лучшего антитела в популяции), m_AffinityMin (аффинность худшего антитела в популяции), а, также, массив антител, в котором должен находиться как минимум один элемент. Класс ClmmuneP-opulation содержит методы обработки массива антител, а именно: инициализация антител, назначение ранга антителу в зависимости от его аффинности, сортировка массива, поиск лучшего антитела в популяции и метод, реализующий оператор селекции (шаги 3 и 7 алгоритма). Как и классы CGene и CAntiBody класс ClmmunePoppu-lation является абстрактным и для того, чтобы работать с конкретными структурами данных созданы производные классы: CImCharPopulation (популяция антител, рецепторы которых представляют собой строки символов типа char), CImBinaryPopulation (рецепторы антител представлены в виде бинарных строк), CImIntPopulation (используется кодировка рецепторов в виде строк целых чисел). Здесь, как и в других классах библиотеки, имеется возможность создания пользовательского класса, производного от CImmunePopulation, который будет обрабатывать структуры, созданные пользователем для решения его задачи.

Класс алгоритма (CImmuneAlgorithm) (рис. 7) на самом высоком уровне реализует эволюционный процесс в иммунной системе - последовательность действий, представленную в разделе 2 настоящей работы. Он содержит в

себе два экземпляра объектов класса CImmunePopulation, один из которых представляет основную популяцию антител (Ab), а другой - популяцию клонов (C). Для этих двух популяций в классе CImmuneAlgorithm представлены методы, осуществляющие перенос антител из популяции Ab в популяцию C и их дальнейшее клонирование. Используя данные класса CImmParams, а именно MutationProbability (вероятность мутации) класс алгоритма осуществляет мутацию антител популяции клонов C. Класс CImmParams содержит в себе основные параметры алгоритма: PopSize - размер популяции, Ind-Size - размер индивидуума, n_param - количество антител, отбираемых для клонирования, d_param - количество антител, удаляемых из популяции и заменяемых новыми, Beta - множительный коэффициент, определяющий интенсивность клонирования (шаг 4 алгоритма) и т.д. Некоторые из этих параметров устанавливаются до начала работы системы, пользователем, другие же рассчитываются с использованием класса CTask, в зависимости от типа решаемой задачи. Условие останова (StopCondot-ion), также реализовано в виде объекта, потому как для разных задач эти условия могут быть различны (например, останов по прошествии определенного числа поколений или останов по достижении определенного качества решения и т.д.).

Сборка алгоритма может осуществляться либо в отдельном модуле, либо, непосредственно, в тексте пользовательской программы. Библиотека может использоваться как статически подключаемая на этапе компиляции (.lib), так и как динамически подгружаемая (.dll) на этапе выполнения пользовательской программы.

Рисунок 7 - Схема реализации эволюционного алгоритма при помощи класса CImmuneAlgorithm

ЗАКЛЮЧЕНИЕ

Иммунная система позвоночных является большой темой для из-за ее мощных способностей по обработке информации. В ней осуществляется много сложных параллельных и распределенных вычислений. Так же как и нервная система, иммунная система может самостоятельно обучаться и осуществлять операцию распознавания образов децентрализованным образом. При ее обучении имеют место эволюционные процессы.

В данной статье рассмотрена объектно-ориентированная реализация лишь клональной теории объясняющей некоторые механизмы функционирования иммунной системы. Нами разработана библиотека классов для решения задач мультимодальной, нелинейной оптимизации с ограничениями и без ограничений при помощи алгоритма клональной селекции. Спроектированная классовая иерархия носит открытый характер, т.е. является расширяемой и адаптируемой под конкретную пользовательскую задачу. Программный код системы реализован на языке программирования С++ и включен в состав более обширной библиотеки классов по вычислительному интеллекту, которая разрабатывается в данный момент. В нее уже вошли такие составляющие как генетические алгоритмы, генетическое программирование и системы программирования генных выражений. Дальнейшее усовершенствование разработанной структуры предполагает включение в ее состав классов и методов для осуществления

многокритериальной оптимизации с получением на выходе множества Парето оптимальных решений.

ПЕРЕЧЕНЬ ССЫЛОК

1. Fogel, D. B. Evolutionary Computation: Toward a New Philosophy of Machine Intelligence, 2nd ed., IEEE Press (2000).-328 p.

2. Белых Л.Н. Анализ математических моделей в иммунологии / Под ред. Г.И. Марчука. - М.: Наука, Гл. ред. физ.-мат. лит., 1988. - 192 с.

3. Молер P.P., Бруни К., Гандолфи А. Системный подход в иммунологии. - ТИИЭР, 1980, т. 68, № 8, с.25-56

4. Пол V., Сильверстайн А, Купер М. и др. Иммунология: в 3-х томах: Пер. с англ. / Под ред.V.Пола. - М.: Мир, 19871988.

5. Альбертс Б., Брей Д. Льюис Дж. Рэфф М., Робертс К. Vотсон Дж. Молекулярная биология клетки: Пер. с англ. -М.: Мир, 1987. - Т.5. - 231 с.

6. Burnet F.M. The Clonal Selection Theory of Acquired Immunity. The University Press, Cambridge, 1959.

7. Вершигора А.Е. Общая иммунология: Vчеб. пособие. - К.: Вища школа, 1989. -736 с.

8. Ройт А. Основы иммунологии: Пер. с англ. - М.: Мир, 1991.328 с.

9. De Castro, L. N. & Von Zuben, F. J. (1999), "Artificial Immune Systems: Part I - Basic Theory and Applications", Technical Report - RT DCA 01/99, FEEC/UNICAMP, Brazil, 95 p.

10. Leandro Nunes de Castro, Fernando J. Von Zuben. The clonal selection algorithm with engineering applications. Proc. of GECC0'00, pp. 36-37.

11. Пол А. Объектно-ориентированное программирование на С++.- 2-е изд. / Пер. с англ. -М.: "Изд. Бином", СПб: "Невский диалект", 1999. - 560 с.

12. Partice Roger Calegari. Parallelization of population-based evolutionary algorithms for combinatorial optimization problems. Ecole polytecnique federale de Lausanne. These # 2046. Lausanne, EPFL, 1999, 145 p.

i Надоели баннеры? Вы всегда можете отключить рекламу.