УДК 004.023
МОДИФИКАЦИЯ МУРАВЬИНОГО АЛГОРИТМА ДЛЯ ЗАДАЧИ ФОРМИРОВАНИЯ МУЛЬТИВЕРСИОННОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
И. В. Ковалев, М. В. Карасева, Е. В. Соловьев
Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева Российская Федерация, 660014, г. Красноярск, просп. им. газ. «Красноярский рабочий», 31
Е-mail: [email protected]
Исследуется мультиверсионное программное обеспечение и решается задача его формирования как задача оптимизации. Рассматривается муравьиный алгоритм как способ решения задачи формирования мультивер-сионного программного обеспечения. Данная методология основывается на введении программной избыточности и позволяет существенно повысить уровень надежности программного обеспечения. Проведены эксперименты с помощью стандартного алгоритма и выполнена модификация алгоритма с повторением экспериментов на тех же данных. Внесенные модификации улучшают алгоритм, что демонстрируют результаты тестовой задачи. Хотя вследствие внесенных изменений скорость расчета на одной итерации замедляется, увеличение скорости схождения алгоритма в область оптимального решения компенсирует данный недостаток. Представлено сравнение полученных результатов.
Ключевые слова: оптимизация, муравьиные алгоритмы, мультиверсионное программное обеспечение.
ANT ALGORITHM MODIFICATION FOR THE PROBLEM OF MULTIVERSION SOFTWARE FORMATION
I. V. Kovalev, M. V. Karaseva, E. V. Solovyev
Siberian State Aerospace University named after academician M. F. Reshetnev 31, Krasnoyarsky Rabochy Av., Krasnoyarsk, 660014, Russian Federation Е-mail: [email protected]
Multiversion software is investigated and an optimization problem of its formation is solved. The ant algorithm is considered as a method for the problem of multiversion software formation. This methodology is based on the introduction of software redundancy that can significantly increase the level of the software reliability. The paper conducts the experiments using a standard algorithm; a modification of the algorithm with the repetition of the experiments with the same data is performed. The introduced modifications improve the algorithm that demonstrates the results of the test problem. Although in consequence of changes the calculation speed on one iteration slows down, the speed increase of the algorithm convergence in the field of the optimal solution compensates this deficiency. The comparison of the obtained results is given.
Keywords: optimization, ant algorithm, multiversion software.
В последнее время очень активно идет развитие «естественных алгоритмов», которые представляют собой алгоритмы оптимизации, основанные на природных механизмах принятия решений. Одним из таких алгоритмов является алгоритм муравьиной колонии (алгоритм оптимизации подражанием муравьиной колонии, ant colony optimization - ACO) [1]. Данный алгоритм является продуктом сотрудничества ученых, изучающих поведение социальных насекомых и специалистов в области компьютерных технологий. В основе данного алгоритма лежит поведение муравьев, а точнее их способность к нахождению кратчайших путей до источника пищи.
Муравьиная колония является распределенной системой, и, несмотря на простоту отдельных её представителей, эта система способна решать сложные задачи. Каждый представитель колонии пытается найти кратчайший путь до источника пищи, при это
он не может получить доступ к информации, полученной другими представителями колонии, поэтому у них должен быть механизм, который бы позволил объединить их знания. В качестве данного механизма выступает способность муравьев помечать путь с помощью феромона. Если в процессе поиска муравей находит источник пищи, то на обратном пути он пометит свой маршрут феромоном. Другие муравьи при поиске пищи будут опираться в выборе пути на этот сигнал. Чем большим значением феромона будет помечен путь, тем больше вероятность того, что муравей в своем поиске выберет данный маршрут.
Этот механизм самоорганизации и лег в основу алгоритма муравьиной колонии. Основной идей алгоритма стало то, что набор агентов, поведение которых копирует поведение муравьев, объединяется для решения задачи оптимизации. Агенты координируют свою работу с помощью стигмерции (stigmergy),
которая является механизмом непрямого взаимодействия, осуществляющимся посредством изменения общей среды. В случае ACO таким механизмом стали феромоны. Агенты отмечают пройденный путь с помощью феромона, увеличивая шансы данного пути при выборе альтернатив. Для того чтобы алгоритм не скатывался в область локального экстремума, существует такой механизм, как испарение феромона. Данный механизм отвечает за то, чтобы пути, ошибочно выбранные в качестве решения, постепенно теряли свою привлекательность за счет испарения феромона на них; при этом пути, которые предпочли агенты в процессе принятия решений, будут увеличивать свою популярность, что должно привести к тому, что все агенты в конечном счете выберут общее решение.
Рассмотрим общий алгоритм муравьиной колонии.
1. Создаем муравьев. Стартовая точка, куда помещается муравей, зависит от ограничений, накладываемых условиями задачи, потому что для каждой задачи способ размещение муравьёв является определяющим: либо все они помещаются в одну точку, либо в разные с повторениями (без повторений). На этом же этапе задаётся начальный уровень феромона. Он инициализируется небольшим положительным числом для того, чтобы на начальном шаге вероятности перехода в следующую вершину не были нулевыми.
2. Ищем решения. Вероятность перехода из вершины i в вершину j определяется по следующей формуле:
p,(< )=•
Ь ]•
J_
~du
X ы
З^аНомейЫойев
где (/) - уровень феромона; й З - эвристическое расстояние; а и р - константны. При а = 0 выбор ближайшего объекта для включения в итоговое решение, наиболее вероятен, т. е. алгоритм становится жадным. При р = 0 выбор происходит только на основании феромона, что приводит к субоптимальным решениям.
3. Обновляем значения феромона. Уровень феромона обновляется в соответствии с приведённой формулой:
е.
,ь„
Tj (< +1) = (1 -р)тv (<)+ X
Формирование состава мультиверсионного программного (N-version programming, NVP) обеспечения является задачей, для которой применяется муравьиный алгоритм [2; 3]. Методология мультиверсионного программирования является одной из наиболее перспективных и уже положительно зарекомендовавших себя методологий обеспечения высокой надежности и отказоустойчивости программного обеспечения. Данная методология основывается на введении программной избыточности и позволяет существенно повысить уровень надежности программного обеспечения [4].
Мультиверсионность исполнения программных модулей подразумевает независимую генерацию ряда функционально эквивалентных версий каждого модуля в соответствии с исходными спецификациями. Для версий программного модуля, называемых мульти-версиями, предоставляются средства конкурентного исполнения. Входными данными версий одного модуля являются идентичные наборы данных. Результаты же работы мультиверсий могут отличаться ввиду различных причин. Выбор правильного решения из представленного множества результатов происходит в блоке оценки и принятия решения, где определяется корректный результат [5].
Вследствие этого перед проектировщиком встает задача выбора оптимального набора программных компонент с учетом ряда критериев. Так к какому же классу проблем можно отнести данную задачу? Эта задача относится к классу задач о покрытии множества (set covering problem - SCP) [6]. Нам дается m х n
матрица A = [ a tJ J, в которой все элементы равны 0
или 1. Дополнительно каждой колонке присвоена положительная стоимость bj. Можно сказать, что колонка j покрывает строку i, если atj = 1. Цель SCP -
выбрать набор колонок с минимальной стоимость, при этом покрыв каждую строку. Обозначим J набор
колонок и yj обозначим бинарную переменную, равную 1, если j е J , и 0 в противном случае. Формально SCP можно определить следующим образом:
min f (y ) = min £ bjyj
j=i
£ a vyj > 1, i = 1, ...,
m,
j=i
keantthatused edge (i, j)
где p - интенсивность испарения; Lk - цена текущего решения для k-го муравья; Q - параметр, имеющий значение порядка цены оптимального решения, т. е. Q/Lk - феромон, откладываемый k-м муравьем, использующим ребро ( , j).
4. Дополнительные действия. Обычно здесь используется алгоритм локального поиска, однако он может также использоваться и после поиска всех решений.
5. Проверка окончания поиска. В случае если заданные ограничения были выполнены, поиск останавливается, в противном случае возвращаемся на 1 шаг.
yj е{0,1}, j = 1, ..., n,
Для проведения экспериментов мы возьмем алгоритм MAX-MIN Ant System (MMAS), он является одним из наиболее исследованных и одним из наиболее эффективных алгоритмов, относящихся к семейству муравьиных алгоритмов [1]. Основными особенностями данного алгоритма является наличие верхней и нижней границы на значение феромона, а также способа обновления значения феромона. Обновляется и учитывается только лучшее решение. Схема тесто -вой мультиверсионной программы представлена на рисунке. Параметры версий в каждом модуле приведены в табл. 1.
Таблица 1
Параметры стоимости и надежности для всех версий каждого модуля
VI v2 v3 v4 v5 v6 v7 v8 v9 v10
МЫи1е 1 С = 54 Я = 0,6 С = 58 Я = 0,66 С = 62 Я = 0,698 С = 66 Я = 0,73 С = 70 Я = 0,75 С = 74 Я = 0,767 С = 78 Я = 0,778 С = 82 Я = 0,788 С = 86 Я = 0,795 С = 90 Я = 0,8
МЫи1е 2 С = 22 Я = 0,51 С = 24 Я = 0,52 С = 26 Я = 0,53 С = 28 Я = 0,54 С = 30 Я = 0,55 С = 32 Я = 0,56 С = 34 Я = 0,57 С = 36 Я = 0,58 С = 38 Я = 0,59 С = 40 Я = 0,6
МЫи1е 3 С = 85 Я = 0,6 С = 90 Я = 0,61 С = 95 Я = 0,625 С = 100 Я = 0,65 С = 105 Я = 0,68 С = 110 Я = 0,74 С = 115 Я = 0,81 С = 120 Я = 0,865 С = 125 Я = 0,89 С = 130 Я = 0,9
Modu1e 4 С = 31 Я = 0,5 С = 32 Я = 0,52 С = 33 Я = 0,54 С = 34 Я = 0,56 С = 35 Я = 0,58 С = 36 Я = 0,585 С = 37 Я = 0,59 С = 38 Я = 0,595 С = 39 Я = 0,6 С = 40 Я = 0,605
Modu1e 5 С = 52 Я = 0,5 С = 54 Я = 0,52 С = 56 Я = 0,54 С = 58 Я = 0,56 С = 60 Я = 0,58 С = 62 Я = 0,61 С = 64 Я = 0,64 С = 66 Я = 0,67 С = 68 Я = 0,7 С = 70 Я = 0,73
Modu1e 6 С = 35 Я = 0,6 С = 40 Я = 0,64 С = 45 Я = 0,68 С = 50 Я = 0,7 С = 55 Я = 0,72 С = 60 Я = 0,74 С = 5 Я = 0,76 С = 70 Я = 0,79 С = 75 Я = 0,82 С = 80 Я = 0,85
Modu1e 7 С = 33 Я = 0,6 С = 36 Я = 0,63 С = 39 Я = 0,65 С = 42 Я = 0,66 С = 45 Я = 0,665 С = 48 Я = 0,67 С = 51 Я = 0,69 С = 54 Я = 0,71 С = 57 Я = 0,75 С = 60 Я = 0,82
Modu1e 8 С = 72 Я = 0,4 С = 74 Я = 0,47 С = 76 Я = 0,52 С = 78 Я = 0,56 С = 80 Я = 0,595 С = 82 Я = 0,625 С = 84 Я = 0,645 С = 86 Я = 0,66 С = 88 Я = 0,67 С = 90 Я = 0,68
Modu1e 9 С = 41 Я = 0,5 С = 42 Я = 0,51 С = 43 Я = 0,53 С = 44 Я = 0,57 С = 45 Я = 0,62 С = 46 Я = 0,69 С = 47 Я = 0,75 С = 48 Я = 0,77 С = 49 Я = 0,79 С = 50 Я = 0,8
Modu1e 10 С = 20 Я = 0,5 С = 25 Я = 0,52 С = 30 Я = 0,54 С = 35 Я = 0,56 С = 40 Я = 0,57 С = 45 Я = 0,58 С = 50 Я = 0,59 С = 55 Я = 0,62 С = 60 Я = 0,65 С = 65 Я = 0,68
ml
0.5
0.5
0,6
m3
0.4
т4
mS
т9
8. Обновляем показатели феромона на версиях. Сбрасываем показатели агентов.
9. Проверяем, превышено ли максимальное количество итераций поиска. Если нет, то идем к пункту 3.
Таблица 2
Результаты эксперимента
Итерация Параметры
1 Цена: 1609
Надежность: 0,952
Всего версии: 33
198 Цена: 1353
Надежность: 0,954
Всего версии: 25
Была проведена серия экспериментов со следующими параметрами: Pmin = 0,95, C ^ min. Лучший
и самый быстрый результат представлен в табл. 2. Затем была проведена серия экспериментов со следующими параметрами Cmax = 1500, P ^ max . Лучший и самый быстрый результат приведен в табл. 3.
Таблица 3
mlQ
Схема тестового ПО
Для проведения исследования была выполнена программная реализация алгоритма ММЛ8, которая выглядит следующим образом:
1. Создаем муравьев. Количество муравьев равно количеству модулей (Ы = 10).
2. Для каждой версии выставляется максимальное значение феромона.
3. Создаем минимальное решение. Необходимо, чтобы был задействован каждый модуль. Вероятность выбора версии вычислялась по следующей формуле:
Pi =-
S
each version inmodule
P
C
Результаты эксперимента
Итерация Параметры
1 Цена: 1499 Надежность: 0,938 Всего версии: 25
43 Цена: 1455 Надежность: 0,939 Всего версии: 29
100 Цена: 1463 Надежность: 0,946 Всего версии: 26
181 Цена: 1486 Надежность: 0,961 Всего версии: 29
Как видно из стандартной формулы расчета вероятности выбора версии, там не учитывается вероятность использования модуля, а также количество уже выбранных версий в данном модуле. Были внесены изменения в формулу расчета на 5 шаге, после чего она приобрела следующий вид:
4. Вычисляем параметры получившихся решений (Р - надежность и С - стоимость). Проверяем, превышены ли ограничения. Если да, то агент считается не удовлетворяющим необходимым условиям, в дальнейшем поиске он не участвует.
5. Пытаемся добавить версию модуля с учетом ограничений. Если ограничения превышены, то агент закончил свой поиск.
6. Проверяем, есть ли еще агенты, не закончившие поиск. Если да, то идем к шагу 5.
7. Сравниваем агентов, которые закончили поиск и удовлетворяют ограничениям с глобальным лучшим решением. В случае нахождения лучшего решения, оно заменяет собой глобальное лучшее решение.
K т,
Pi =
C.
S K,T,
notused version
K = G,
где Gi - вероятность использования модуля i; ni -количество уже выбранных версий в модуле i.
Была проведена серия экспериментов со следующими параметрами: Pmin = 0,95, C ^ min. Быстрейший результат представлен в табл. 4.
т
т
Стоит отметить, что даже самый плохой результат, полученный с помощью модифицированного алгоритма, превосходит самый лучший результат, полученный обычным алгоритмом. Затем была проведена серия экспериментов со следующими параметрами: Стах = 1500, Р ^ тах. Результат, достигнутый максимально быстро, представлен в табл. 6.
Таблица 6
Результаты эксперимента
Таблица 4
Результаты эксперимента
Итерация Параметры
2 Цена: 1830 Надежность: 0,951 Всего версии: 36
3 Цена: 1601 Надежность: 0,959 Всего версии: 31
5 Цена: 1459 Надежность: 0,953 Всего версии: 27
43 Цена: 1344 Надежность: 0,950 Всего версии: 27
80 Цена: 1340 Надежность: 0,953 Всего версии: 26
536 Цена: 1302 Надежность: 0,952 Всего версии: 25
Итерация Параметры
1 Цена: 1465 Надежность: 0,946 Всего версии: 26
32 Цена: 1490 Надежность: 0,948 Всего версии: 27
35 Цена: 1440 Надежность: 0,951 Всего версии: 24
85 Цена: 1487 Надежность: 0,954 Всего версии: 28
112 Цена: 1480 Надежность: 0,957 Всего версии: 27
118 Цена: 1487 Надежность: 0,961 Всего версии: 27
364 Цена: 1469 Надежность: 0,962 Всего версии: 27
1142 Цена: 1469 Надежность: 0,963 Всего версии: 30
1552 Цена: 1488 Надежность: 0,964 Всего версии: 27
1651 Цена: 1488 Надежность: 0,964 Всего версии: 27
Как видно из данных, уже на 80-й итерации был достигнут результат, лучший по сравнению со стандартным алгоритмом. Лучший достигнутый результат показан в табл. 5.
Таблица 5
Результаты эксперимента
Как видно, уже на 118-й итерации показатель надежности превышает показатель надежности в аналогичном эксперименте без модификаций. Лучший достигнутый результат показан в табл. 7.
Таблица 7
Результаты эксперимента
Шаг Параметры
1 Цена: 1776
Надежность: 0,954
Всего версии: 34
2 Цена: 1683
Надежность: 0,965
Всего версии: 31
4 Цена: 1521
Надежность: 0,950
Всего версии: 29
8 Цена: 1499
Надежность: 0,951
Всего версии: 28
9 Цена: 1446
Надежность: 0,952
Всего версии: 29
48 Цена: 1438
Надежность: 0,950
Всего версии: 28
166 Цена: 1427
Надежность: 0,953
Всего версии: 27
232 Цена: 1415
Надежность: 0,952
Всего версии: 26
272 Цена: 1396
Надежность: 0,955
Всего версии: 27
287 Цена: 1364
Надежность: 0,950
Всего версии: 26
429 Цена: 1317
Надежность: 0,951
Всего версии: 24
1884 Цена: 1268
Надежность: 0,950
Всего версии: 25
Шаг Параметры
1 Цена: 1435
Надежность: 0,944
Всего версии: 27
20 Цена: 1493
Надежность: 0,948
Всего версии: 26
34 Цена: 1494
Надежность: 0,950
Всего версии: 27
70 Цена: 1494
Надежность: 0,954
Всего версии: 27
80 Цена: 1468
Надежность: 0,955
Всего версии: 27
Окончание табл. 7
Шаг Параметры
361 Цена: 1496
Надежность: 0,959
Всего версии: 29
406 Цена: 1497
Надежность: 0,963
Всего версии: 29
1278 Цена: 1500
Надежность: 0,964
Всего версии: 28
Итак, внесенные модификации улучшают исходный (базовый) алгоритм муравьиной колонии, что демонстрируют результаты тестовой задачи. Хотя вследствие внесенных изменений скорость расчета на одной итерации несколько замедляется, увеличение скорости нахождения оптимального решения (время схождения на тестовой задаче при использовании модификации до уровня надежности 0,95 было меньше на 79 %) компенсирует данный недостаток.
Библиографические ссылки
1. Dorigo M., Stutzle T. Ant colony optimization / The MIT Press. Cambridge, 2004.
2. Ковалев И. В. [и др.] Использование метода роя частиц для формирования состава мультиверсионного программного обеспечения // Приборы и системы. Управление, контроль, диагностика. 2013. № 3. С. 1-6.
3. Ковалев И. В., Царев Р. Ю., Прокопенко А. В., Соловьев Е. В. К вопросу реализации муравьиного алгоритма при выборе состава мультиверсионного программного обеспечения информационно-управляющих систем // Приборы и системы. Управление, контроль, диагностика. 2012. № 2. С. 1-4.
4. Ковалев К. В., Слободин М. Ю., Ступина А. А. Математическая постановка задачи проектирования N-версионных программных систем // Проблемы машиностроения и автоматизации. 2005. № 3. С. 16-23.
5. Ковалев И. В., Новой А. В. Расчет надежности отказоустойчивых архитектур программного обеспечения // Вестник СибГАУ. 2007. № 4. С. 14-17.
6. Lessing L., Dumitrescu I., Stützle T. A Comparison between ACO Algorithms for the Set Covering Problem / Canada Research Chair in Distribution Management. HEC Montreal, 2012.
References
1. Dorigo Marco, Thomas Stützle. Ant colony optimization The MIT Press, Cambridge, Massachusetts, 2004.
2. Kovalev I. V., Solovyev E. V., Kovalev D. I., Bakhmareva K. K., Demish A. V. Pribori I sistemi. Upravlenie, control I diagnostika. 2013, no 3, p. 1-6.
3. Kovalev I. V., Tzarev R. Yu., Prokopenko A. V., Solovyev E. V. Pribori I sistemi. Upravlenie, control I diagnostika. 2012, no 2, p. 1-4.
4. Kovalev I. V., Slobodin M. Yu., Stupina A. A. Problemi mashinostroeniya I avtomatizatsii. 2005, no. 3, p. 16-23.
5. Kovalev I. V., Novoi A. V. Vestnik SibGAU. 2007, no. 4, p. 14-17.
6. Lucas Lessing, Irina Dumitrescu, Thomas Stützle. A Comparison between ACO Algorithms for the Set Covering Problem, Canada Research Chair in Distribution Managment, HEC Montreal, 2012.
© Ковалев И. В., Карасева М. В., Соловьев Е. В., 2014
УДК 62-506.1
ОБ ИССЛЕДОВАНИИ КОМПЬЮТЕРНОЙ СИСТЕМЫ ДИАГНОСТИКИ ЭЛЕКТРОРАДИОИЗДЕЛИЙ НА ОСНОВЕ ДАННЫХ ИСПЫТАНИЙ
Н. В. Коплярова1, В. И. Орлов2
1 Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева Российская Федерация, 660014, г. Красноярск, просп. им. газ. «Красноярский рабочий», 31
Е-таЛ: [email protected]
2ОАО «Испытательно-технический центр - НПО ПМ» Российская Федерация, 662970, г. Железногорск Красноярского края, ул. Молодежная, 20
Е-mail: [email protected]
Предлагается алгоритм оценивания качества классификации в случае отсутствия информации о реальном расположении классов (отсутствие обучающей выборки). Алгоритм основан на том, что моделируется выборка, максимально подобная реальным данным. Таким образом, решается актуальная задача оценки качества классификации данных на основе адекватных моделей. Классификация проводилась на данных, представляющих собой показатели качества транзисторов. Рассматривается алгоритм группировки (оценки качества) электрорадиоизделий (ЭРИ) по данным испытаний. Формулируется также принцип исследования ЭРИ средствами компьютерного моделирования. При этом моделирование процесса кластеризации осуществляется в условиях, максимально приближенных к реальности. Приводятся результаты численных исследований.