ИНФОРМАТИКА, ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА И УПРАВЛЕНИЕ
УДК 004.42
Е. А. Кольчугина
НОВЫЕ ПАРАДИГМЫ РАСПРЕДЕЛЕННЫХ ВЫЧИСЛЕНИЙ И НЕРАВНОВЕСНОЕ ПРОГРАММИРОВАНИЕ
Аннотация. Новые парадигмы распределенных вычислений потребуют появления новых парадигм программирования, которые позволят создавать самонастраивающиеся и самоорганизующиеся программные системы. Рассматриваются взаимосвязи между вездесущими вычислениями, автономными вычислениями и неравновесным программированием. Приводятся результаты экспериментов по созданию эволюционирующих сообществ программных агентов.
Ключевые слова: сетевые распределенные вычисления, вездесущие вычисления, автономные вычисления, неравновесное программирование, самоорганизация, эволюция программных агентов.
Abstract. The new paradigms of distributed computing demands new programming paradigms which allow to create self-configured and self-organizing software. The relations between ubiquitous computing, autonomic computing and nonequilibrium programming are considered. The results of experiments on creation the communities of evolutionary software agents are presented.
Keywords: network distributed computing, ubiquitous computing, autonomic computing, nonequilibrium programming, self-organization, software agents evolution.
Введение
Растущие потребности пользователей в непрерывном доступе к своим данным из любой точки пространства в сочетании с существенным расширением списка задач, решаемых с помощью вычислительных сетей, делают необходимым появление новых концепций распределенных вычислений в реальном времени, основанных на посттерминальных моделях человекокомпьютерного взаимодействия. Выделенные тенденции привели к формированию новых парадигм вычислений, в том числе вездесущих вычислений (ubiquitous computing) [1]. Вездесущие вычисления предполагают доступность для пользователя его данных и вычислений в любой точке пространства в любой момент времени. Можно сказать, что пользователя сопровождает рой вычислений и данных. Примером системы, пока еще гипотетической, но соответствующей парадигме вездесущих вычислений, можно считать «Интернет вещей» (Internet of Things).
Одним из препятствий на пути к реализации вездесущих вычислений является резко возрастающая сложность администрирования распределенных вычислительных систем и сетей. Причинами увеличения сложности админи-
стрирования являются растущий объем вычислений, их всепроникающий характер (pervasive computing) [1], распределенное хранение данных. Человек-оператор уже не в состоянии отследить или предсказать поведение подобной системы, а с экономической точки зрения его труд становится все менее выгодным. В связи с этим актуальной становится задача наделения вычислительных сетей способностями к самоуправлению без вмешательства человека. Эта идея развивается в рамках концепции автономных вычислений (autonomic computing) [1, 2].
1 Автономные вычисления и неравновесное программирование
Автономные вычисления реализуются как инициативный проект компании IBM. Сам термин происходит от автономной нервной системы (autonomic nervous system), которая осуществляет регулирование основных жизненно важных функций без вмешательства человека. Основу для реализации автономных вычислений составляют саморегулирующиеся автономные компоненты, взаимодействующие между собой. Такими компонентами могут быть программные агенты в составе мультиагентной системы, снабженные сенсорами, эффекторами, нейросетью, способные формировать и использовать знания. Однако, хотя системы на базе автономных компонентов предназначены для обеспечения самоуправления в сложных программно-аппаратных системах, накапливают и используют знания, способны решать задачи прогноза и превентивного устранения потенциально ошибочных ситуаций, используют интеллектуальные программные агенты, они не обладают способностью к самоорганизации.
В работе [3] предложено рассматривать программный агент как цифровой организм, чьи параметры и алгоритм поведения описываются единообразно с помощью цифровой ДНК. Это позволило выработать парадигму неравновесного программирования, в соответствии с которой процесс выполнения любой программы рассматривается как аналог биохимических процессов в живых организмах, позволяющий получать организмы с новыми свойствами, т.е. формировать новые виды агентов. Разработка программ осуществляется на высоком уровне абстракции в терминах искусственных цифровых организмов и их сообществ (рис. 1), программное обеспечение фактически должно «выращиваться» внутри некоторой среды, или вычислительного окружения, подобно экосистемам в живой природе.
Данный подход связан с рисками, в первую очередь обусловленными сложностью математических моделей, позволяющих предсказать поведение подобной системы. Известно, что динамика многовидовых сообществ живых или искусственных организмов может быть описана с помощью систем нелинейных дифференциальных уравнений в частных производных типа Лотка -Вольтерра. Но в аналитическом виде общее решение для систем типа Лотка -Вольтерра найдено только для случая двух уравнений; для систем из трех уравнений исследованы отдельные частные случаи, при этом описание динамики одного биологического вида с учетом взаимодействий между разными половозрастными группами может включать в себя до 20 уравнений. Поэтому для исследования динамики видов и сообществ часто используются методы мягкого и имитационного моделирования. Еще одним недостатком моделей типа Лотка - Вольтерра является чувствительность к начальным условиям.
Рис. 1 Эволюция структур данных и парадигм программирования
Однако, по мнению автора, подход, предложенный в работе [3], является единственно возможным, если ставится задача сделать систему подлинно самоорганизующейся. Переход к парадигме неравновесного программирования должен осуществляться постепенно, по мере развития математических исследований, накопления и картирования экспериментальных данных. Далее рассматриваются результаты экспериментов, в которых происходит самоорганизация программного обеспечения в соответствии с изменяющимися условиями вычислительного окружения.
2 Общие условия проведения экспериментов
В ходе экспериментов создавался искусственный мир с тороидальной топологией двумерного клеточного пространства из 8 клеток, х е{0,1},
у е{ 0,1,2,3} . Изначально искусственный мир населяли цифровые организмы,
выполнявшие обработку пассивных данных, организованных в виде файлов, а затем уничтожавшие исходные файлы. За обработку каждого файла и его уничтожение цифровому организму начислялось десять баллов, что является аналогом питания. Организм, набравший свыше 200 баллов, временно прекращал «питаться» и мог приступать к воспроизводству. В модели имитировалось размножение от двух разнополых родителей с использованием одноточечного кроссинговера. Особи пола «1 сохраняли свою генетическую информацию в служебных файлах («личиночная стадия»), из которой особи пола «2 с использованием своей генетической информации формировали новые особи, равновероятно принадлежащие к полу «1 или «2 . Новорожденная особь получала 20 баллов, каждый из родителей терял при воспроизводстве десять баллов. При перемещении на одну клетку пространства особь теряла один балл. Особь, имеющая нулевое количество баллов, «умирала», т.е. пре-
кращалось выполнение соответствующей программы. Суперхромосома цифрового организма включала в себя семь локусов, определяющих программную реализацию алгоритма поведения, в том числе и локус, определяющий алгоритм перемещения особи в пространстве. Допускались хромосомные мутации, изменяющие значения локусов, а также мутации делеции, дефишенси, удлинения хромосомы.
3 Внутривидовой отбор
Целью проведенного эксперимента было установить способность коллектива эволюционирующих программ к самоорганизации с использованием внутривидового отбора в условиях различного пространственного распределения источников обрабатываемых данных и статистических характеристик этих источников.
Эксперимент состоял из двух независимых частей. В первой части эксперимента источники исходных файлов данных располагались в клетках виртуального пространства с координатами x = 0 . В каждой клетке располагался один источник, который с интервалом в одну секунду генерировал пять файлов исходных данных. Во второй части эксперимента в каждой клетке пространства находилось по одному источнику, каждый из которых генерировал от одного до десяти исходных файлов данных с интервалом от одной до пяти секунд. Количество сгенерированных файлов и величина паузы определялись как случайные числа. В обеих частях эксперимента генерация данных источниками производилась в течение 120 мин. В начале каждой из частей эксперимента в модель вводились две родительские особи, имеющие, за исключением половых различий, идентичный генотип. Этот генотип является исходным (или «диким») и предполагает перемещение особи в соответствии с алгоритмом vant (двумерный вариант машины Тьюринга). Другими возможными алгоритмами перемещения являлись алгоритмы перемещения по спирали и алгоритм прямолинейного движения при x = const или y = const. Условием прекращения эксперимента являлась «смерть» всех цифровых организмов.
Результаты эксперимента, приведенные на рис. 2-5, позволяют убедиться в том, что под воздействием внешних условий в системе происходят процессы внутреннего самоупорядочивания, сопровождающиеся эволюционным появлением программных агентов с наиболее подходящими для заданных условий свойствами.
4 Видообразование и формирование экологических сообществ
В этом эксперименте в каждой клетке пространства искусственного мира функционировали процессы - генераторы данных, которые можно рассматривать как цифровые организмы вида cg (верхний индекс обозначает
уровень в иерархии, нижний указывает тип выполняемой функции).
Длительность эксперимента составляла пять часов. В течение первого,
третьего и пятого часа эксперимента процессы вида c1g генерировали файлы
>0
данных а с интервалом в одну секунду, во время второго и четвертого часа пауза увеличивалась в три раза. Так создавались стрессовые условия, способные вызвать процесс образования новых видов на основе популяции cp, что
и являлось конечной целью эксперимента. В задачу особей вида ер входила обработка и уничтожение файлов вида С0 .
Рис. 2 Изменение количества файлов данных и обрабатывающих процессов (первая часть эксперимента)
— 0-1 <*-> Т 1/1 40 <— ОО^О — ГЧгЛ'ТкП'чО
Время, мин
Рис. 3 Преобладающие генотипы (первая часть эксперимента)
Особь, запас внутренней энергии которой был менее 10 баллов, с вероятностью р = 0,1 могла перейти на следующий уровень иерархии и стать хищником по отношению к своим прежним сородичам, за что начислялось 10 баллов дополнительно. При этом равновероятно особь могла выбрать одну из двух стратегий хищничества:
- уничтожение взрослых особей с присвоением себе набранных ими баллов, т.е. запаса внутренней энергии (суффикс имени р);
- уничтожение «личинок» с начислением десяти баллов за каждую уничтоженную личинку (суффикс имени е ).
Рис. 4 Изменение количества файлов данных и обрабатывающих процессов (вторая часть эксперимента)
100 80 3 60 £ 40
I 20
о
Время, мин
Рис. 5 Преобладающие генотипы (вторая часть эксперимента)
При выборе первой стратегии необходимое число баллов, после достижения которого особь могла приступить к размножению, увеличивалось в десять раз.
В начальный момент времени в модель были введены две разнополые
2
родительские особи вида ер. В результате эксперимента была построена
восьмиуровневая иерархия видов (рис. 6).
В эксперименте не ставилась задача получения устойчивого многовидового сообщества, однако наблюдались периоды сосуществования особей
2 3 3
видов Ср, оре и Срр (рис. 7, 8); одновременно с видообразованием в модели происходил рост приспособленности особей вида Ср по сравнению с отме-
—*— Алгоритм vant
ченным в начале эксперимента (рис. 9). Этому способствовал естественный отбор особей с оптимальным для данных условий алгоритмом перемещения (рис. 10).
Уровень 8 ГЛ г8 А__/ 1 рреерер
Уровень 7 V Л г1 1 1 рреере
Уровень 6 Г /‘6 Мі ррччр с РРеРР
Уровень 5 С5ррее ( Л Гг г5 ) уу РР1'Р
Уровень 4 и с рре
т /—\ Уровень 3 С'ре () и і
Уровень 2 Т)г2 с Р
Уровень 1
Уровень 0 сР
<— — отношение "употреблять в пищу"
<— — отношение "производить"
Рис. 6 Иерархия видов, распределенных по трофическим уровням
----Файлы данных
----Обрабатывающие
2
Процессы, ВИД ср, уровень 2
О Процессы контроля численности, вид Срр, уровень 3
—■— Процессы контроля численности, вид Ср^ уровень 3 Время (цена деления - 5 мин)
Рис.7 Численности файлов ресурсов и процессов второго и третьего уровней
Заключение
Модель цифрового организма, предложенная в [3], позволяет достичь не только самоорганизации программных систем синергетического типа, но и делает возможными видообразование и формирование экологических сообществ искусственных организмов.
При этом возможны как контроль состояния экосистемы, так и ее корректировка, в том числе удаление особей и видов с нежелательными свойствами.
к
ч
о
М
срр,
сре,
И
рре,
СРР^Р,
с ррее, г 6
сррерр
уровень 3 уровень 3 уровень 4 уровень 5 уровень 5 уровень 6
Время (цена деления - 5 мин)
Рис. 8 Численности процессов уровней с третьего по восьмой
Рис. 9 Среднее значение запаса внутренней энергии для особи вида ср
Рис. 10 Преобладающие генотипы для ср
Список литературы
1. Гофф, М. К. Сетевые распределенные вычисления: достижения и проблемы : пер. с англ. I М. К. Гофф. - М. : КУДИЦ-ОБРАЗ, 2005. - 320 с.
2. IBM Autonomic Computing. - Режим доступа: http:IIwww-01.ibm.comIsoftwareItivoliI autonomicI
3. Кольчугина, Е. А. Модель эволюционирующего программного обеспечения I Е. А. Кольчугина II Известия высших учебных заведений. Поволжский регион. -200б. - № б (27). - С. 7В-Вб. - (Технические науки).
Кольчугина Елена Анатольевна
кандидат технических наук, доцент, кафедра математического обеспечения и применения ЭВМ, Пензенский государственный университет
E-mail: [email protected]
Kolchugina Elena Anatolyevna Candidate of engineering sciences, associate professor, sub-department of computer application and software, Penza State University
УДК 004.42 Кольчугина, Е. А.
Новые парадигмы распределенных вычислений и неравновесное программирование / Е. А Кольчугина // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2009. - № 4 (12). - С. 3-11.