В данной статье приведен алгоритм работы искусственной иммунной системы
1. Определяется набор выходных переменных, формирующих решение задачи с помощью искусственной иммунной системы. Задаётся интервал изменения каждой переменной (Xmin; Xmax) и точность решения задачи (ε). Для решения задачи, приведенной к форме многомерной многоэкстремальной оптимизации задается также вид критерия оптимизации (целевой функции).
2. Определяются количество различных значений (nб), которое может быть закодировано каждой переменной с учётом диапазона её изменения и требуемой точности:
и количество битов информации (nг), необходимых для кодирования каждой переменной в бинарном коде:
3. Рассчитывается фактическая точность нахождения каждой переменной:
4. Инициализируется начальная популяция, включающая N антител. Размер каждого антитела одинаков и равен сумме количеств битов информации (nг), необходимых для кодирования каждой переменной, составляющей антитело, в бинарном коде.
В качестве бинарного кода может использоваться двоичный код или код Грея. Переход из кода Грея в двоичный код осуществляется с использованием правил, рассмотренных в статье «Теория генетических алгоритмов. Часть 2». Преобразование двоичного значения (X2) в целое десятичное (X10) осуществляется известным со школы способом. Фактическое значение переменной после всех преобразований получается в результате применения соотношения:
5. Для каждого антитела рассчитывается значение функции цели. Определяется среднее значение целевой функции для текущей популяции антител.
6. Производится клональная селекция, в ходе которой создается популяция клонов антител, в которой каждое антитело из родительской популяции имеет число клонов, заданное настройками алгоритма.
7. Далее происходит так называемое «созревание аффинности», заключающееся в мутации клонов антител и их последующей селекции:
– каждый клон подвергается мутации, при которой происходит замена бинарных значений в случайных позициях на противоположные. Мутация каждого из антител в определенной позиции определяется значением целевой функции: чем оно лучше, тем меньше вероятность мутации.
– популяция мутировавших клонов каждого из антител сравнивается с родителем: если было обнаружено мутантное антитело, лучшее, чем родитель, то последний заменяется лучшим мутантным антителом.
8. Рассчитываются показатели аффинности между антителами с помощью расстояния Хемминга. Если расстояние Хемминга между двумя антителами меньше либо равно заданному порогу удаления, антитело с худшим значением целевой функции удаляется из популяции, а антитело с лучшим значением целевой функции заносится в отдельный массив.
9. При необходимости популяция дополняется до первоначального размера новыми случайно сгенерированными антителами.
10. Алгоритм продолжает работать до выполнения одного или нескольких условий окончания:
– исчерпано заданное предельное количество эпох эволюции искусственной иммунной системы;
– исчерпано заданное предельное физическое время эволюционного процесса;
– достигнуто удовлетворительное значение функции цели.
После выполнения условия остановки из отдельного массива с лучшими антителами выбирается самое лучшее. Оно и будет решением задачи.