АППАРАТНАЯ РЕАЛИЗАЦИЯ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ В.В.Гудилов1 Актуальность работы связана с возрастающим интересом применения генетических алгоритмов в автономных системах, вопросами повышения быстродействия времеемких генетических алгоритмов и развитием нового направления в области проектирования аппаратных средств, получившего название эволюционные аппаратные средства. Как следствие расширения области применения, наиболее остро встает вопрос разработки методов повышения эффективности генетических алгоритмов по целому набору критериев. Решением подобных вопросов выступает аппаратная реализация генетических алгоритмов. . Введение Идея применения генетических алгоритмов в системах автоматизированного проектирования активно развивается наряду с другими направлениями. Впервые эта идея была предложена С. Луисом [Louis et al., 1991] и Д. Раулинсом [Rawlins et al., 1993] в 1991 году и экспериментально проверена в области цифровых схем. В дальнейшем, предложенные методы были развиты и доработаны, и получили применение во многих автоматизированных системах проектирования аппаратуры. В настоящий момент бурно развивается одно из наиболее перспективных направлений в данной области, связанное с проектированием самореконфигурируемых аппаратных средств [Sidhu et al., 2000] и автоматического проектирования схем, реализации динамической реконфигурации в мобильных системах [Smit et al., 2002], построение реконфигурируемых аппаратных средств на одном кристалле БИС [Kajitani et al., 1998]. [Chatchawit et al., 2001] и др. Использование генетических алгоритмов (ГА) [Курейчик 2004 и др.] как механизма для автоматического проектирования схем на реконфигурируемых платформах [Blondet et al., 2003], получило название эволюционные аппаратные средства (Evolvable Hardware) [Higuchi et al., 1993], [Sakanashi et al., 1999], которое также используется синонимом для несколько общего направления, известного как эволюционная электроника (Evolutionary Electronics) [Zebulum et al., 2002]. В большинстве случаев, генетические алгоритмы выступают как программные модули, где ГА моделируется программно, и только 1 344111, Ростов-на-Дону, пр. Ставского 43/15, 41, profnight@mail.ru конечное решение, полученное с помощью ГА, используется для эволюционирования схемы. Для автономных решений и задач, связанных с построением эволюционных аппаратных средств, программная реализация ГА является неприемлемой по целому ряду критериев. Сам факт автономности исключает наличие возможности использования программных решений, выполняемых на ПК или кластерным методом. С другой стороны, автономные системы, как правило, функционируют в режиме реального времени, что накладывает ряд требований на временные характеристики используемых алгоритмов, в связи с чем, вопрос использования программных моделей перестает быть актуальным. Требования к проектированию генетических алгоритмов Новое направление использования генетических алгоритмов – построение динамически реконфигурируемых аппаратных средств [Smit et al., 2002], в которых производится эволюционное изменение архитектуры системы в режиме реального времени в соответствии с изменением внешних факторов. При реализации подобных систем, ГА как правило выступает как внешний аппаратный модуль или встраивается в один кристалл с реконфигурируемой аппаратной системой [Kajitani et al., 1998]. При подобной реализации, кроме требований к быстродействию и автономности, дополнительными требованиями выступают малый размер площади кристалла, занимаемого алгоритмом и небольшое потребление энергии. Данные параметры являются актуальными не только для автономных или динамически реконфигурируемых аппаратных систем, но и для целого класса систем, в которых возможно применение ГА. Этим можно объяснить возрастающий интерес к моделям генетических алгоритмов, адаптированных для аппаратной реализации [Scott et al., 2001] и к самой аппаратной реализации ГА. Как пример можно рассмотреть работы по аппаратной реализации компактного генетического алгоритма [Chatchawit et al., 2001] и рассмотрения семейства компактных генетических алгоритмов для встраиваемых эволюционных аппаратных средств [Gallagher et al., 2004]. Аппаратные решения на примере компактного генетического алгоритма Работа по аппаратной реализации компактного генетического алгоритма [Chatchawit et al., 2001] рассматривает переход от программной реализации компактного ГА [Harik et al., 1999] к аппаратному исполнению на примере реализации алгоритма на FPGA фирмы Xilinx [Brown et al., 1992]. В результате, аппаратно реализованный компактный ГА выполняет одну генерацию за три тактовых цикла для задачи one-max. Количество тактов на генерацию зависит от задачи оптимизации. Более сложным задачам требуется 3+e циклов, где е количество циклов, используемое при оценке значения функции фитнесса индивидуума. При реализации размер популяции n и длина хромосомы l установлены как 256 и 32 соответственно и не могут изменяться в процессе функционирования. По результатам синтеза для задачи one-max, проект использует 15210 эквивалентных вентилей, максимальная частота функционирования 23,57 MГц, было достигнуто повышение быстродействия по сравнению с программной версией в 1000 раз. Данный алгоритм был также рассмотрен Джоном Галлагхером [Gallagher et al., 2004] и доработан для применения в эволюционных аппаратных средствах, на примере использования алгоритма в схеме управления, в котором реконфигурируемая аналоговая нейронная сеть изменяется в интерактивном режиме, для управления физическими процессами. В структуру компактного ГА были добавлены некоторые генетические операторы, например стратегия элитизма, оператор мутации и схема перевыборки лучшего решения (champion resampling), а также были внесены изменения в структуру алгоритма, что позволило добиться получения качественно новых результатов при тестировании алгоритмами ДеДжонга [DeJong 1975]. Основной уклон при аппаратной реализации в данной работе делался в области уменьшения потребляемой мощности и требуемого пространства кристалла для размещения алгоритма. Алгоритм был реализован с применением языка описания аппаратуры VHDL и протестирован на отладочных платах с FPGA фирмы Xilinx семейства VirtexII (xc2v 1000) и XC4000 BORG. Для разрядности хромосомы в 32 бита и размере популяции в 255 особей, при решении задачи one-max, по техническим параметрам были достигнуты результаты, сопоставимые с результатами аппаратной реализации компактного ГА. При этом, данный алгоритм превосходил компактный ГА по эффективности и области применения. Вероятностный генетический алгоритм UMDA Другим решением повышения эффективности генетических алгоритмов и области их применения является аппаратная реализация генетического алгоритма UMDA (Univariate Marginal Distributional Algorithm) [Mühlenbein 1998], рассматриваемая в данной работе. Блок Данные инициализации инициализации Блок генерации популяции Блок вычисления критерия Блок отбора Блок вычисления вероятности Блок формирования элитной Формирование области результата Рис.1. Структурная схема функционирования вероятностного генетического алгоритма UMDA На рисунке 1 представлена схема функционирования вероятностного генетического алгоритма UMDA. Функционирование алгоритма заключается в последовательном выполнении генетических операторов. При инициализации производится настройка параметров функционирования алгоритма. Блок генерации популяции отвечает за формирование популяции посредством последовательной генерации особей (хромосом). Для каждой хромосомы производится вычисление критерия отбора (функции пригодности), на основе которого выполняется отбор лучших особей и формирование элитной области. На основе сформированной элитной области производится вычисление вероятности, необходимой для генерации следующего поколения. Признаком нахождения решения является решение задачи onemax или выполнение заданного количества итерационных циклов. Аппаратные решения на примере вероятностного генетического алгоритма UMDA При проектировании и аппаратной реализации ГА UMDA, автором были учтены технические вопросы и требования к ГА, не рассматриваемые при решении рассмотренных выше алгоритмов и в других подобных работах [Takashi 1999]. В частности, основной уклон был выполнен на предоставление пользователю наибольшей гибкости при настройке алгоритма, возможности динамического изменения параметров функционирования в процессе работы алгоритма, максимальновозможному повышению производительности алгоритма с позиции ускорения работы по целому набору параметров и др. Повышение функциональной эффективности С целью повышения эффективности реализуемого устройства, было решено внести дополнительные возможности в настойки алгоритма. В частности была реализована возможность варьирования размера популяции, элитной области, размера хромосомы (количество ген); установка количества итерационных циклов и установка начального значения генератора случайного числа (эти значения устанавливает пользователь или выполняется внутренняя генерация). Необходимо отметить, что данные значения могут изменяться в процессе функционирования, а не только при инициализации устройства, чем достигается возможность динамического изменения параметров функционирования устройства. Все характеристики данного устройства, представленные выше, должны поддерживаться с точки зрения управления. Отсутствие жестко заданных параметров функционирования устройства приводит к неопределенности с точки зрения управления и вынуждает прибегнуть к использованию микропрограммного принципа управления. Т.е. управление устройством осуществляется посредством обработки набора внутренних и внешних приоритетных аппаратных прерываний, и считывания из памяти микрокоманд соответствующих управляющих сигналов. Повышение производительности При проектировании алгоритма особое внимание было уделено вопросам модификации алгоритма с точки зрения оптимизации временных характеристик функционирования. Основополагающим критерием модификации являлось сохранение принципа функционирования алгоритма при максимально возможном сокращении временных характеристик алгоритма в целом. Повышение эффективности алгоритма с точки зрения быстродействия было достигнуто посредством перехода к параллельной внутриблочной организации и параллельному взаимодействию на уровне блоков, т.е. организации многоуровневой конвейерной обработки. При подобном решении все стадии функционирования алгоритма UMDA, вплоть до выделения 8 лучших элементов в порядке убывания, производятся за время генерации популяции. Процесс вычисления вероятности совмещен с формированием элитной области, при этом отобранные элитные элементы исключаются из пространства последующего поиска. На рисунке 2 представлена структурная схема устройства, поясняющая принцип взаимодействия генетических операторов на уровне взаимодействия блоков. Рисунок 2. Структурная схема устройства, вероятностного генетического алгоритма UMDA. аппаратной реализации В таблице 1 приведено значение общего повышения быстродействия алгоритма при аппаратной реализации по отношению к программной реализации для алгоритма UMDA, рассматриваемого в данной работе и компактного генетического алгоритма, представленного в работе [Chatchawit 2001]. Таблица 1. Общее повышение быстродействия Compact Genetic Algorithm Параметры Время Программная реализация 200 MГц, Ultra Sparc 2 2:30 мин. Аппаратная реализация Увеличение быстродействия Univariate Marginal Distributiona Algorithm (UMDA) Программная реализация Аппаратная реализация Увеличение быстродействия 20 MГц, FPGA 1 000 раз Параметры 540 MГц, P3 125 MГц, FPGA 27 380 раз 0.15 сек Время 23 сек 84 мк.сек. Из таблицы 1 видно, что при аппаратной реализации, было достигнуто повышение быстродействия по сравнению с программной моделью, более чем на пять порядков, чем обеспечивается возможность применения аппаратно реализованного алгоритма в системах реального времени. Ниже представлены основные временные характеристики генетического алгоритма при тактовой частоте 125 МГц: инициализация всех необходимых параметров - 176 нс. генерация популяции на 256 особей при параллельном вычислении критерия пригодности и функционировании оператора отбора – 6.176 мкс. формирование 8 элементов элитной области и параллельного вычисления вероятности – 540 нс. чтение из памяти 120 значений критериев пригодности с параллельным процессом селекции (отбора) – 2,88 мкс. чтение из памяти 8 значений критериев пригодности с параллельным процессом селекции без инициализации процесса чтения и ожидания освобождения внутреннего конвейера – 192 нс. время одного цикла (итерации) генетического алгоритма (популяция = 256, элитная область = 128) составляет 8,409 микросекунды. Основные параметры проектирования: производитель ПЛИС: Altera семейство: ACEX1K обозначение: EP1K100FC256-1 максимальная частота: 125 МГц необходимое количество логических ячеек – 3017 необходимый объем внутренней памяти – 24112 bit. Выводы Современные тенденции развития области применения ГА обуславливают расширение методик проектирования и разработку новых методов повышения эффективности генетических алгоритмов. Эти методики будут востребованы как при исследовании новых областей применения ГА так и практическом применении для решения конечных задач. Предложенный подход решения задачи повышения эффективности генетических алгоритмов является одним из наиболее перспективных методов по повышению эффективности и расширению областей применения не только для рассмотренных задач генетического поиска, но задач, для решения которых требуется значительные временные затраты. При этом, основной целью выступает разработка методик построения объекта, максимально оптимизированного под конкретный класс задач, универсального внутри этого класса, и использующего современные методы аппаратной реализации (конвейеризация, распараллеливание вычислений, микропрограммный принцип управления, предоставление пользователю возможности реконфигурирования функционирования и организации алгоритма и т.п.). параметров Список литературы [Louis et al., 1991] Louis, S. J. and Rawlins, J. E., Designer genetic algorithms: genetic algorithms in structure design // ICGA-91, in Proceedings of the Fourth International Conference on Genetic Algorithms, Belew, K..K. and Booker, L.B., Eds., Booker, Morgan Kaufman, San Manteo, CA, 1991, 53. [Rawlins et al., 1993] J.E. Rawlins and S.J. Louis. Syntactic Analysis of Convergence in Genetic Algorithms, Foundations of Genetic Algorithms // 2 ed. by L.D. Whitley, San Mateo, CA: Morgan Kaufmann, pp. 141, 1993. [Sidhu et al., 2000] R. Sidhu, S. Wadhwa, A. Mei and V. K. Prasanna. A SelfReconfigurable Gate Array Archtecture// Field-Programmable Logic and Applications. The Roadmap to Reconfigurable Computing. 10th International Conference, FPL 2000, Villach, Austria, August 27-30, 2000 Proceedings. [Smit et al., 2002] Gerard J.M. Smit, Paul J.M. Havinga, Lodewijk T. Smit, Paul M. Heysters, Michel A.J. Rosien. Dynamic Reconfiguration in Mobile Systems //FieldProgrammable Logic and Applications. 12th International Conference, FPL 2002 Lisbon, Portugal 2002 Proceedings, pp 171-181. [Kajitani et al., 1998] I. Kajitani, T. Hoshino, D. Nishikawa, H. Yokoi, S. Nakaya, T. Yamauchi, T. Inuo, N. Kajihara, M. Iwata, D. Keymeulen, T. Higuchi. A gate-level EHW chip: Implementing GA operations and reconfigurable hardware on a single LSI// Evolvable Systems: From Biology to Hardware, Lecture Notes in Computer Science 1478 (Proc. of ICES1998), pp. 1-12, Springer Verlag, 1998. [Chatchawit et al., 2001] A. Chatchawit and C. Prabhas, A Hardware Implementation of the Compact Genetic Algorithm, in Proceedings of the 2001 IEEE Congress on Evolutionary Computation// Seoul, Korea, May 27-30, 2001, pp.624-629. [Курейчик 2004 и др.] В.М. Курейчик, В.В. Курейчик, Л.А. Гладков. Генетические алгоритмы // Ростов-на-Дону, Ростиздат 2004 г. 400 стр. [Blondet et al., 2003] B. Blondet, P. James-Roxby, E. Keller, S. McMillan, P. Sundararajan. A Self-reconfiguring Platform // Field-Programmable Logic and Applications. 13th International Conference, FPL 2003 Proceedings, pp. 565-574. [Higuchi et al., 1993] T. Higuchi et al. Evolvable hardware: A first step towards building a Darwin machine. In Proc. of the 2 nd Int. Conference on Simulated Behaviour, pages 417-424. MIT Press, 1993. [Sakanashi et al., 1999] H. Sakanashi, M. Tanaka, M. Iwata, D. Keymeulen, M. Murakawa, I. Kajitani and T. Higuchi. Evolvable Hardware Chips and their Applications// Proc. of the 1999 IEEE Systems, Man, and Cybernetics Conference (SMC'99), pp. V559-V564, 1999. [Scott et al., 2001] Stephen D. Scott, Ashok Samal, Sharad Seth. HGA: A Hardware-Based Genetic Algorithm // Dept. of Computer Science Washington University St. Louis, MO 63130-4899, 7 p. 2001. [Chatchawit et al., 2001] A. Chatchawit and C. Prabhas, A Hardware Implementation of the Compact Genetic Algorithm, in Proceedings of the 2001 IEEE Congress on Evolutionary Computation// Seoul, Korea, May 27-30, 2001, pp.624-629. [Gallagher et al., 2004] John C. Gallagher, Saranyan Vigraham and Gregory Kramer. A Family of Compact Genetic Algorithms for Intrinsic Evolvable Hardware // IEEE Transactions on Evolutionary Computation, vol. 8, No. 2, April, 2004 [Zebulum et al., 2002] R.S. Zebulum, M.A. Pacheco, M.M. Vellasco. Evolutionary Electronics: Automatic Design of Electronic Circuits and Systems by Genetic Algorithms// USA, CRC Press LLC, 2002 [Harik et al., 1999] G. Harik, F. Lobo and D. Goldberg. The Compact genetic Algorithm // IEEE Transactions on Evolutionary Computation, vol. 3, Nov, 1999, pp. 287-309 [Brown et al., 1992] Stephen D. Brown, Robert J. Francis, Jonathat Rose, Zvonko G. Vranesic. Field-Programmable Gate Arrays // Kluwer Academic Publishers, USA 1992. 206 s. [DeJong 1975] K.A. DeJong. An analysis of the behavior of a class of genetic adaptive systems // Ph.D. dissertation, Univ. Michigan, Ann Arbor, MI, 1775 [Mühlenbein 1998] H. Mühlenbein. The Equation for Response to Selection and its Use for Prediction// Evolutionary Computation, May 1998, pp.303-346. [Takashi et al., 1999] Iwamoto Takashi, Yasuda Mitsuhiro, Shackleford J Barry, Okushi Etsuko. Genetic algorithm machine and its production method, and method for executing a genetic algorithm Patent number: US5970487, Application number: US19970910103 19970813, 1999.