- •Котенок Андрей Владимирович
- •Содержание
- •Введение
- •Отказоустойчивые системы управления
- •Программная составляющая критичных по надежности систем управления
- •Надежностная характеристика программного модуля
- •Обеспечение надежности программ с помощью введения избыточности
- •Описание объекта исследования и его анализ
- •Методы повышения надежности программных систем
- •Моноверсионные модели
- •Обнаружение ошибок
- •Обработка исключительных ситуаций
- •Контрольная точка и перезапуск
- •Дублирование процессов
- •Разнообразие данных
- •Модели восстанавливающихся блоков
- •Простая модель восстанавливающихся блоков
- •Обобщенная модель восстанавливающихся блоков
- •Параллельная модель восстанавливающихся блоков
- •Мультиверсионное программирование
- •Мультиверсионное программирование с самопроверкой
- •Модель согласованных восстанавливающихся блоков
- •T/(n-1)-версионное программирование
- •Мультиверсионная среда исполнения оптимизационных алгоритмов: программная реализация
- •Анализ требований к среде мультиверсионного исполнения
- •Требования для обеспечения простоты
- •Требования для обеспечения производительности
- •Требования для обеспечения компактности
- •Требования для обеспечения надежности
- •Требования для обеспечения универсальности
- •Применение мультиверсионной методологии к системе управления
- •Выбор способа реализации программных модулей и их взаимодействия со средой исполнения
- •Конструирование программной модели
- •Реализация общих алгоритмов функционирования среды исполнения
- •Реализация алгоритма выявления отказов программных модулей
- •Реализация алгоритмов принятия решения о корректности или ошибочности состояний мультиверсий
- •Алгоритм голосования абсолютным большинством (габ)
- •Алгоритм голосования согласованным большинством (гсб)
- •Алгоритм нечеткого голосования согласованным большинством (нгсб)
- •Медианное голосование
- •Программный комплекс среды мультиверсионного исполнения
- •Теоретическое исследование предельной надежности мультиверсионных моделей проектирования отказоустойчивых систем
- •Модель восстанавливающихся блоков
- •Мультиверсионное программирование
- •Исследование результатов работы реализованной среды исполнения
- •Применение методологии мультиверсионного программирования к оптимизационным алгоритмам отказоустойчивых систем
- •Методология выбора наилучшего алгоритма оптимизации
- •Классы тестовых функций Класс одномерных унимодальных функций.
- •Класс многоэкстремальных функций нескольких переменных.
- •Анализ результатов
- •Заключение
- •Список использованных источников
Классы тестовых функций Класс одномерных унимодальных функций.
Покроем интервал [a,b] сеткой изMузлов и обозначим Ф(xi)=Фi,.
Положим, что необходимо построить одномерную унимодальную функцию, минимум которой находится в узле , т.е. в точкеxi*.Тогда для генерации такой функций может быть использован следующий алгоритм построения тестовых одномерных унимодальных функций.
Генерируем дискретную случайную величину i*, равномерно распределенную на множестве 1,2,…,M.
Генерируем случайные числа Фiпо рекуррентной формуле:
, где βi,- случайные величины, равномерно распределенные в интервале (-α,0), еслиi≤i*, и в интервале (α,0), еслиi>i*. Здесь α ‑ некоторая константа, определяющая максимальную скорость изменения искомой функции.
Для получения функции Ф(x) используем линейную интерполяцию полученных значений Фi,. Минимум полученной функции Ф(x) достигается в точкеxi*=x*.
Функцию данного класса можно описать следующим образом:
,
где k1иk2– некоторые случайные величины.
Класс многоэкстремальных функций нескольких переменных.
Алгоритм генерации многоэкстремальных функций нескольких переменныхможно построить на основе использования совокупностиMквадратичных функций, каждая из которых дает локальный минимум искомой функции:, гдеквадратичная функция.
Здесь n– размерностьX,– точкаj-го локального минимума глубинойcj, постоянные, , , cj - случайные величины с некоторыми законами распределения.
Анализ результатов
Тестирование будем производить на одномерной унимодальной функции мультиверсиями, которые реализуют:
метод дихотомии;
метод «золотого сечения»;
метод квадратичной интерполяции.
А также на функции Розенброка и классе многоэкстремальных функций несколько переменных программными реализациями алгоритмов:
алгоритм Гаусса-Зейделя;
алгоритм Нелдера-Мида;
алгоритм Хука-Дживса;
алгоритм Флетчера-Ривса.
При тестировании не имеет существенного значения то, какие именно алгоритмы оптимизации используются. Цель эксперимента - показать эффект от применения мультиверсионного программирования в системах управления. Поэтому важно лишь различие программных реализаций и различие конечного алгоритма функционирования.
Стандартные алгоритмы мультиверсионного голосования во всех исследуемых ситуациях показали заметно худшие результаты и по времени, и по отклонению от точки экстремума, чем метод голосования по значению оптимизируемой функции (см. главу 3). Результаты будем приводить только для этого метода согласования.
Так как, в случае сравнения мультиверсионной системы из нескольких методов, с каждым отдельным методом количество итераций основного цикла не может являться показателем производительности, то в таблицу результатов был добавлен показатель «время». Это число показывает время затраченное системой на весь процесс оптимизации. В случае с мультиверсионной системой, это время также включает время работы внутренних алгоритмов системы.
Показатель количества побед как мультиверсия отображает, какой вклад внес тот или иной модуль, в общий результат мультиверсионной системы.
Результаты представлены в таблице 3 .3.
В целом мультиверсионный подход к оптимизационным алгоритмам показывает не худшие результаты, чем наилучший из алгоритмов.
Таблица 3.3 Результаты исследования эффективности мультиверсионного подхода к алгоритмам оптимизации функций
Класс функций |
Алгоритм |
Время, по отн. к лучшему по времени |
Время, по отн. к лучшему по результату |
Среднее отклонение от точки экстремума |
Побед как мультиверсия | |
Класс одномерных унимодальных функций |
Мультиверсионная система |
35,71 |
1,00 |
1,00 |
– | |
Метод квадратичной интерполяции |
24,86 |
0,70 |
0,97 |
0,85 | ||
Метод «золотого сечения» |
1,00 |
0,03 |
0,49 |
0,53 | ||
Метод дихотомии |
1,15 |
0,03 |
0,49 |
0,46 | ||
Функция Розенброка |
Мультиверсионная система |
1,93 |
1,00 |
0,96 |
– | |
Метод Нелдера-Мида (версия 2) |
1,02 |
0,53 |
1,05 |
0,76 | ||
Метод Нелдера-Мида (версия 1) |
1,00 |
0,52 |
22,74 |
0,71 | ||
Метод Хука-Дживса (версия 1) |
9,32 |
4,83 |
137,67 |
0,63 | ||
Метод Гаусса-Зейделя |
0,04 |
0,02 |
9801,82 |
0,85 | ||
Метод Хука-Дживса (версия 2) |
35,80 |
18,55 |
12461,90 |
0,48 | ||
Метод Флетчера-Ривса (версия 1) |
130,03 |
67,37 |
32156,17 |
0,92 | ||
Метод Флетчера-Ривса (версия 2) |
86,60 |
44,86 |
37708,33 |
0,88 | ||
Класс многоэкстремальных функций нескольких переменных |
Мультиверсионная система |
2,76 |
1,00 |
6,17 |
– | |
Метод Флетчера-Ривса (версия 1) |
1,47 |
0,53 |
6,20 |
0,93 | ||
Метод Флетчера-Ривса (версия 2) |
1,48 |
0,53 |
7,07 |
0,90 | ||
Метод Нелдера-Мида (версия 1) |
1,23 |
0,45 |
312,63 |
0,25 | ||
Метод Нелдера-Мида (версия 2) |
1,00 |
0,36 |
616,78 |
0,41 | ||
Метод Хука-Дживса (версия 2) |
159,42 |
57,75 |
735,10 |
0,63 | ||
Метод Хука-Дживса (версия 1) |
165,12 |
59,81 |
1069,42 |
0,64 | ||
Метод Гаусса-Зейделя |
58,62 |
21,23 |
8514,35 |
0,36 |