Практическая реализация и применение алгоритмов стохастической аппроксимации::Журнал СА 07-08.2016
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

Разбор полетов  

Ошибок опыт трудный

Как часто мы легко повторяем, что не надо бояться совершать ошибки, мол,

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6188
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6898
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4182
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 2986
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3792
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3802
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6296
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3151
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3445
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7261
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10627
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12348
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 13979
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9109
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7064
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5373
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4603
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3412
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3142
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3388
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3010
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Практическая реализация и применение алгоритмов стохастической аппроксимации

Архив номеров / 2016 / Выпуск №07-08 (164-165) / Практическая реализация и применение алгоритмов стохастической аппроксимации

Рубрика: Наука и технологии

Без фото ТКАЧЕНКО К.С., инженер 1-й кат., аспирант, ФГАОУ ВО «Севастопольский государственный университет», Российская Федерация, tkachenkokirillstanislavovich@gmail.com

Практическая реализация
и применение алгоритмов стохастической аппроксимации

Рассматриваются реализации алгоритмов стохастической оптимизации на языке программирования высокого уровня Java

Введение

Одной из основных тенденций настоящего времени является всеобщая компьютеризация и информатизация, построение информационного сообщества. Растут потребности в вычислительных ресурсах, активно используются возможности проведения вычислений в распределенных средах (РС). При этом сами РС становятся объектами пристального внимания со стороны злоумышленников. Увеличивается число вирусных атак, несанкционированных вторжений. Любая такая атака или вторжение может привести к серьезным потерям, нанести вред человеческим жизням и здоровью, значительным затратам на ликвидацию последствий, восстановлению важной информации и прочему. Очевидным становится необходимость контроля и усиления защиты.

Рассматривается узел РС как система массового обслуживания (СМО). У этой СМО имеется определенная производительность обработки заявок (заданий для вычислений). На вход узла поступают полезные достоверные заявки изнадежных источников и вредные заявки от злоумышленников. Интенсивности от надежных источников априори известны, потоки заявок стационарны. Интенсивности заявок от злоумышленников, атакующих узел, априори неизвестны, потоки нестационарны.

По свойству простейшего потока заявок суммарная интенсивность входного потока заявок в узле есть простая сумма интенсивностей отдельных потоков, а результирующий поток является простейшим. Поскольку производительность обработки заявок может быть изменена в директивном порядке как администратором узла, так и специализированным программным обеспечением, удобно рассматривать узел как СМО типа M/G/1.

Следует учесть, что, помимо затрат на устранение последствий, необходимо уменьшать затраты на контроль. Обобщая, задача получается громоздкой и аналитически не всегда и во всех случаях разрешимой. Поэтому необходимо разрабатывать специализированные структурные программно-аппаратные решения.

Одним из путей решения могут стать разработка и исследование программно-инструментального комплекса, включающего в себя имитационные модели, сценарные модули обеспечения поддержки принятия решений и программные модули выбора вариантов.

Целью настоящей работы является описание подхода к управлению узлом вычислительной системы с использованием средств выбора вариантов автоматными алгоритмами.

Обзор особенностей применения методов стохастической оптимизации

Достаточно хорошо известны возможности применения для управления дискретными объектами с конечным множеством управляющих воздействий [1, 2, 3] методов на основе автоматных алгоритмов для безусловной одномерной минимизации. В основе всех таких алгоритмов лежит использование рекуррентных последовательностей для формирования состояния автомата. Структура автомата задается вектором вероятностей выбора состояний, каждый изкомпонентов которого содержит вероятность пребывания автомата в соответствующем компоненту состоянии. Выбор следующего состояния осуществляется на основе этого вектора, в том числе и с использованием алгоритма половинного деления. При использовании автоматных алгоритмов время функционирования объекта проектирования разбивается на отрезки. Временная длительность этих отрезков одинакова. Каждому отрезку ставится в соответствие значение функции текущих потерь.

В литературе описаны некоторые алгоритмы, их вектор-функции, иногда – способы реализации. При этом их можно разделить на две группы – беспроекционные и проекционные (иногда – беспроекторные и проекторные). Основным отличием беспроекционных алгоритмов от проекционных является использование в последних так называемого оператора проецирования (проектирования) на симплекс. В вектор-функции происходит пересчет компонентов вектора вероятностей выбора состояний, в том числе и с учетом значений текущих потерь. По этой причине беспроекционные алгоритмы могут во многих случаях функционировать только с бинарной функцией потерь. Напротив, использование оператора проецирования позволяет использовать в проекционных алгоритмах не только бинарную, но и небинарную ограниченную функцию текущих потерь. При этом в открытых источниках не рассматривается решение трудоемкой задачи программной реализации автоматных алгоритмов, нет применения к управлению отдельным вычислительным узлом РС.

Используемые обозначения для описания рекуррентных соотношений

Все рассматриваемые алгоритмы оптимизации используют правила формирования рекуррентных последовательностей. Пусть по [1]:

  • nR, n > 0 – номер шага алгоритма.
  • N – число возможных вариантов выбора x(1), …, x(N).
  • εn ∈ [0, N-1) – параметр проектора.
  • γn – длина шага алгоритма.
  • R(xn, pn, ξn) – функция, характерная для метода оптимизации.
  •  – оператор проектирования  на ε-симплекс.
  • pn – вектор вероятностей выбора варианта xn из возможных.
  • ξn – потери на шаге.
  • e(xn) – вершина симплекса SN, соответствующая выбранному варианту.

Беспроекционные алгоритмы используют соотношения pn+1 = pnγn R(xn, pn, ξn). Проекционные алгоритмы – pn+1 =  {pnγn R(xn, pn, ξn)}.

Разрабатывается средство поддержки принятия решений (СППР), использующее перечисленные выше методы. СППР имеет возможность неограниченного расширения по используемым методам стохастической аппроксимации сразличными рекуррентными функциями. Таким образом, учитывается системотехнический принцип развития, неопределенности и случайности.

В дальнейшем во всех реализациях алгоритмов используется соответствие между обозначениями [1, 2] и идентификаторами по таблице 1, максимально близкое к обозначениям в программах Фортран-IV. Рекуррентные соотношения приводятся по [1].

Программные реализации одного шага алгоритмов оптимизации и вспомогательных подпрограмм

С учетом принципов системного анализа разрабатывается программная система для безусловной минимизации средних потерь с использованием алгоритмов стохастической оптимизации. В таблицу 1 сводится описание реализованных алгоритмов с указанием вектор-функции.

Алгоритм Нарендры-Шапиро. Алгоритм Нарендры-Шапиро предназначен для решения задач адаптивного выбора вариантов с бинарной функцией потерь. Рекуррентное соотношение и ограничения для аргументов приводятся в формуле (1).

pn+1 = pn + γn (1 – ξn)(e(xn) – pn), ξ∈ {0,1}, γ∈ (0,1)      (1)

В листинге 1 приводится реализация алгоритма, идентификаторы аргументов метода и переменных соответствуют таблице 1.

Листинг 1. Метод для реализации одного шага алгоритма Нарендры-Шапиро

public static double algNarendryShapiro(double[] P, double GAM, int[] NV_v, int iter) {

int N = P.length;

int NV = autom(P);

double CSI = poteri_binary(NV);

if (CSI == 1.0) {

return CSI;

}

for (int i = 0; i < N; i++) {

if (i == NV) {

P[i] = P[i] + GAM * (1.0 - P[i]);

} else {

P[i] = P[i] - GAM * P[i];

}

}

NV_v[iter] = NV;

return CSI;

}

 

Таблица 1. Соответствие обозначений

Идентификатор Описание
1. P Одномерный массив вещественных чисел одинарной точности, аргумент методов, соответствует pn
2. GAM Вещественная переменная одинарной точности, аргумент методов, соответствует γn
3. NV_v Одномерный массив целых чисел, аргумент методов. В элементе с номером i сохраняется номер выбранного варианта
4. iter Целочисленная переменная, аргумент методов, соответствует n
5. A Вещественная переменная одинарной точности, аргумент методов, соответствует параметру алгоритма a
6. EPS Вещественная переменная одинарной точности, аргумент методов, соответствует параметру алгоритма ε
7. DEL Вещественная переменная одинарной точности, аргумент методов, соответствует параметру алгоритма Δ
8. N Целочисленная переменная, соответствует N
9. N1 Целочисленная переменная, соответствует N – 1
10. NV Целочисленная переменная, соответствует номеру варианта
11. CSI Вещественная переменная одинарной точности, соответствует ξn
12. X Вещественная переменная одинарной точности, соответствует X
13. S Вещественная переменная одинарной точности, соответствует S
14. autom Метод. Принимает единственный аргумент – одномерный массив вещественных чисел одинарной точности, задающий распределение вероятностей целочисленной случайной величины. Возвращает целое число – номер выбранного варианта от 1 до N
15. poteri_binary Метод. Принимает единственный аргумент – целое число, соответствующее выбранному варианту. Возвращает вещественное число одинарной точности – ξn ∈ {0,1}
16. poteri Метод. Принимает единственный аргумент – целое число, соответствующее выбранному варианту. Возвращает вещественное число одинарной точности – ξn

Алгоритм Льюса. Алгоритм Льюса предназначен для решения задач адаптивного выбора вариантов с бинарной функцией потерь. Рекуррентное соотношение и ограничения для аргументов приводятся в формуле (2).

      (2)

В листинге 2 приводится реализация алгоритма, идентификаторы аргументов метода и переменных соответствуют таблице 1.

Листинг 2. Метод для реализации одного шага алгоритма Льюса

public static double algLuce(double[] P, double GAM, double A, int[] NV_v, int iter) {

int N = P.length;

int NV = autom(P);

double CSI = poteri_binary(NV);

double X;

if (CSI == 1.0) {

X = -GAM / (1.0 - (1.0 - A) * P[NV]);

} else {

X = GAM / (A + (1.0 - A) * P[NV]);

}

for (int i = 0; i < N; i++) {

if (i == NV) {

P[i] = P[i] + P[NV] * (1.0 - P[i]) * X;

} else {

P[i] = P[i] - P[NV] * P[i] * X;

}

}

NV_v[iter] = NV;

return CSI;

}

Алгоритм Варшавского-Воронцовой. Алгоритм Варшавского-Воронцовой предназначен для решения задач адаптивного выбора вариантов с бинарной функцией потерь. Рекуррентное соотношение и ограничения для аргументов приводятся в формуле (3).

      (3)

В листинге 3 приводится реализация алгоритма, идентификаторы аргументов метода и переменных соответствуют таблице 1.

Листинг 3. Метод для реализации одного шага алгоритма Варшавского-Воронцовой

public static double algVarVor(double[] P, double GAM, int[] NV_v, int iter) {

int N = P.length;

int NV = autom(P);

double CSI = poteri_binary(NV);

double X;

if (CSI == 1.0) {

X = -GAM;

} else {

X = GAM;

}

for (int i = 0; i < N; i++) {

if (i == NV) {

P[i] = P[i] + P[NV] * (1.0 - P[i]) * X;

} else {

P[i] = P[i] - P[NV] * P[i] * X;

}

}

NV_v[iter] = NV;

return CSI;

}

Алгоритм Буша-Мостеллера. Алгоритм Буша-Мостеллера предназначен для решения задач адаптивного выбора вариантов с бинарной функцией потерь. Рекуррентное соотношение и ограничения для аргументов приводятся в формуле (4).

      (4)

В листинге 4 приводится реализация алгоритма, идентификаторы аргументов метода и переменных соответствуют таблице 1.

Листинг 4. Метод для реализации одного шага алгоритма Буша-Мостеллера

public static double algBuMost(double[] P, double GAM, int[] NV_v, int iter) {

int N = P.length;

int N1 = N - 1;

int NV = autom(P);

double CSI = poteri_binary(NV);

double X = CSI / N1;

for (int i = 0; i < N; i++) {

if (i == NV) {

P[i] = P[i] + GAM * (1.0 - P[i] - CSI);

} else {

P[i] = P[i] + GAM * (P[i] - X);

}

}

NV_v[iter] = NV;

return CSI;

}

Алгоритм Назина-Позняка. Алгоритм Назина-Позняка предназначен для решения задач адаптивного выбора вариантов с ограниченной небинарной функцией потерь. Рекуррентное соотношение и ограничения для аргументов приводятся вформуле (5).

      (5)

В листинге 5 приводится реализация алгоритма, идентификаторы аргументов метода и переменных соответствуют таблице 2.

Листинг 5. Метод для реализации одного шага алгоритма Назина-Позняка

public static double algStepPR(double[] P, double GAM, double EPS, double DEL, int[] NV_v, int iter) {

double CSI;

double S;

int NV = autom(P);

CSI = poteri(NV);

S = (CSI - DEL) * GAM / P[NV];

P[NV] = P[NV] - S;

System.arraycopy(proekNazinPoznyak(P, EPS), 0, P, 0, P.length);

NV_v[iter] = NV;

return CSI;

}

 

Таблица 2. Результаты расчетов по формулам (5)

λ\a 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9
0,1 0,0001 0,0002 0,0003 0,0005 0,0007 0,0009 0,0011 0,0014 0,0017
0,2 0,0004 0,0008 0,0014 0,0020 0,0028 0,0037 0,0047 0,0059 0,0072
0,3 0,0009 0,0018 0,0031 0,0047 0,0065 0,0087 0,0112 0,0140 0,0172
0,4 0,0015 0,0033 0,0057 0,0085 0,0120 0,0160 0,0208 0,0263 0,0325
0,5 0,0024 0,0053 0,0090 0,0137 0,0194 0,0261 0,0341 0,0434 0,0542
0,6 0,0035 0,0077 0,0133 0,0203 0,0289 0,0393 0,0517 0,0664 0,0836
0,7 0,0048 0,0107 0,0185 0,0285 0,0408 0,0560 0,0743 0,0963 0,1225
0,8 0,0064 0,0142 0,0248 0,0383 0,0554 0,0767 0,1027 0,1346 0,1733
0,9 0,0082 0,0183 0,0321 0,0501 0,0730 0,1020 0,1382 0,1832 0,2393

Необходимы еще некоторые служебные подпрограммы-методы.

Оператор проектирования . Оператор {q} выполняет проектирование вектора q на ε-симплекс .

Величина ε > 0 для обеспечения ненулевой вероятности выбора каждого варианта. В листинге 6 приводится реализация алгоритма проектирования Назина-Позняка.

Листинг 6. Метод для реализации оператора проектирования

public static double[] proekNazinPoznyak(double[] q, double e) {

int N = q.length;

double r = e * N;

double ar = 1.0 - r;

double ak = N;

double sq1 = 0.0;

double[] p = new double[N];

boolean[] mon = new boolean[N];

boolean shagAlgo = true;

for (int i = 0; i < N; i++) {

sq1 += q[i];

p[i] = q[i];

}

sq1 = 1 - sq1;

for (int i = 0; i < N; i++) {

mon[i] = false;

p[i] = (p[i] - e) / ar;

}

sq1 /= ar;

while (shagAlgo) {

shagAlgo = false;

for (int i = 0; i < N; i++) {

if (!mon[i]) {

p[i] += sq1 / ak;

}

}

for (int i = 0; i < N; i++) {

if (!mon[i] && (p[i] < 0.0)) {

sq1 = p[i];

p[i] = 0.0;

mon[i] = true;

ak--;

shagAlgo = true;

break;

}

}

}

for (int i = 0; i < N; i++) {

p[i] = ar * p[i] + e;

}

return p;

}

Процедура выбора варианта методом половинного деления. Принимает единственный аргумент – одномерный массив вещественных чисел одинарной точности, задающий распределение вероятностей целочисленной случайной величины. Возвращает целое число – номер выбранного варианта от 1 до N. В листинге 7 приводится реализация метода.

Листинг 7. Метод для реализации выбора варианта методом половинного деления

public static int autom(double[] P) {

int N = P.length;

int N1 = N - 1;

int NC = N1;

double A = -randu();

for (int i = 0; i < N1; i++) {

A += P[i];

if (A < 0) {

continue;

} else {

NC = i;

break;

}

}

return NC;

}

Сценарное управление узлами сред. При сценарном управлении узлами РС необходимо учитывать следующее:

  • Моделью узла является СМО типа M/G/1.
  • Атаке может подвергаться выбранный узел.
  • Производительность узла может быть изменена или не изменена в директивном порядке лицом, принимающем решения, либо системой поддержки принятия решений.
  • Производительность может изменяться в заранее установленных дискретных границах с наперед заданным шагом изменения производительности.
  • Интенсивность входного потока полезных заявок априори известна.
  • Интенсивность входного потока вредных заявок априори неизвестна, возможно, является переменной с неизвестным законом изменения, а поток заявок – нестационарным.
  • Существует две модели узла. Одна модель, эталонная, не содержит средств изменения производительности. Другая модель, атакуемая, может подвергаться и не подвергаться атаке и содержит средства управления производительностью.

Необходимо поставить в соответствие каждому выходу стохастического автомата конкретное управляющее воздействие. Для этих целей полагается, что выходу автомата соответствует единичное значение, если узел РС подключен к РС, инулевое значение, если отключен. Некоторые современные системы организации обмена сообщений и обеспечения хранения их очередей, имеют для этого встроенные механизмы изоляции узлов и переключения узлов. При этом наиболее полной доступной метрикой является текущая длина очереди заявок в узле.

Конечно, для практического использования и построения функции штрафов текущей длины очереди недостаточно. Необходима оценка значений важнейших системных характеристик, таких как среднее число заявок в узле, среднее число заявок в очереди, среднее время обработки заявки, среднее время простоя и некоторые другие. С помощью построения функции текущих потерь на основе взвешенной централизованной суммы можно организовать процедуру выбора вариантов.

Независимо от способа целевой реализации следует различать возможности автоматического и автоматизированного управлений. В первом случае ЛПР не принимает участия в работе программно-аппаратного комплекса, во втором – влияет на характер корректировки, ее глубину и полноту. Поскольку проектируется средство поддержки принятия решений, то участие ЛПР необходимо:

  • в структурном плане при проведении структурного синтеза и коррекции;
  • в процессе корректировки величин изменения производительности узла по рекуррентной предикативной системе правил;
  • по включению/выключения отдельных узлов на основе рекуррентной последовательности, генерируемой стохастическим автоматом.

При использовании различных критериев для оценки значимости двух выборок появляется возможность производить оценку достоверности гипотезы о наличии сдвига и его направлении в выборочных данных о длинах очередей и функции потерь в условиях потока вредоносных заявок. Можно использовать критерий знаков, в силу простоты и эффективности реализующийся различными программными способами. Для выборок одинаковой или дополненной длины можно использовать критерий Кохрена об однородности выборок.

Известна [7] формула Поллачека-Хинчина для вычисления среднего числа заявок в системе M/G/1:

      (7)

По этой формуле можно получить оценки других важнейших системных характеристик узла:

  • p0 = 1 – ρ – вероятность простоя узла;
  • Lq = Lsρ – среднее число заявок в очереди (средняя длина очереди);
  •  – среднее время обработки заявок в системе M/G/1;
  •  – среднее время пребывания заявки в очереди.

Если производительность обработки задается интервальным выражением μ = μmin, μΔ, …, μmax, то

, .

Имея точные сведения об интенсивности полезных заявок λΠ и предполагая, что интенсивность вредоносных заявок не превосходит λB, получается λ = λΠ + λB. Тогда, используя тождественные преобразования, можно получить систему правил.

Входные данные: λΠ, λB, μmin, μmax.

Правила расчета:

      (6)

Поскольку имеется информация о среднем числе заявок от менеджера очередей, то можно построить таблицу значений функции Lq в зависимости от фактических аргументов λ и a = μmaxμmin при μmin = const. Результаты вычислительных экспериментов сводятся в таблицу 3.

Таблица 3. Статистические оценки потерь

Оценка Алг_1 Алг_2 Алг_3 Алг_4 Алг_5
Среднее 0,7529 0,6320 0,8289 0,9404 1,5333
Стандартная ошибка 0,0184 0,0129 0,0200 0,0064 0,0254
Стандартное отклонение 0,1303 0,0915 0,1411 0,0456 0,1796
Выборочная дисперсия 0,0170 0,0084 0,0199 0,0021 0,0322
Эксцесс -0,6394 10,1015 25,1003 -1,3023 5,7228
Асимметрия 0,9850 2,2500 -4,5193 -1,3023 -2,0232

При использовании алгоритмов стохастической аппроксимации необходимо осуществлять:

  • Выбор управляющих воздействий таким образом, чтобы каждому состоянию объекта управления соответствовал ровно один выход стохастического автомата.
  • Организовать вычисление на каждом шаге значений функции потерь ξn или ее оценок. При этом необходимо предусмотреть возможность использования ξn как в проекционных, так и в беспроекционных алгоритмах. Для этих целей необходимо установить пороговое значение ξПор и получать бинарные оценки функции потерь  на основе небинарных  следующим образом:

       (7)

В большинстве современных средств мониторинга доступны сведения о текущей длине очереди к узлу и числе заявок в нем, и не всегда доступны другие описательные характеристики. Поэтому требуется определить функцию штрафа, зависящую от числа заявок в модели СМО узла на n-м шаге исполнения алгоритма: ξn = ξL(Ls(n)). Устанавливается величина центрирования  и масштабирующий коэффициент . Это позволит при наличии других показателей эффективности выполнять построение линейной функции потерь. Для этих целей полагается известным величина штрафа .

Далее рассматриваются следующие варианты выбора стратегий управления совокупностью узлов РС. Поскольку речь идет о РС, то наиболее доступными для изменения ЛПР, таким как системный администратор, является способ коммутации узлов. В специальной литературе [8, 9] известны следующие основные типы топологий: общая шина, звезда, кольцо, дерево, ячеистая. Им соответствуют стратегии коммутации для моделирования: S1 = «общая шина»; S2 = «звезда»; S3 = «кольцо»; S4 = «дерево»; S5 = «ячеистая». И, очевидно, что N=5. Пусть известны , , . Тогда, после построение фрагмента имитационной модели в универсальной системе моделирования, сценарного средства оценки значений штрафных функций и применения для каждого шага имитации разработанного СППР, можно с использованием различных алгоритмов стохастической аппроксимации получить уменьшение значений потерь (7) допороговой величины. Эта величина определяется начальным этапам настройки стохастического автомата, не может быть полностью исключена, только компенсирована.

Для некоторых алгоритмов статистические оценки функции потерь сведены в таблицу 3. Алг_1 – алгоритм Нарендры-Шапиро, алг_2 – алгоритм Льюса, алг_3 – алгоритм Варшавского-Воронцовой, алг_4 – алгоритм Буша-Мостеллера, алг_5– алгоритм Назина-Позняка.

Сценарные модули для расчета характеристик узлов и обеспечения взаимодействия ЛПР с программным комплексом разрабатываются на ЯПВУ Python. С помощью этих модулей обеспечивается принятие решений о необходимости изменения производительности узлов.

Вывод

В работе описаны программные реализации на ЯПВУ Java ряда алгоритмов стохастической аппроксимации, что позволит использовать актуальные средства и языки разработки. Перспективой дальнейших публикаций станет детальное описание программной реализации СППР на их основе.

  1. Назин А.В. Адаптивный выбор вариантов: Рекуррентные алгоритмы / А.В. Назин, А.С. Позняк. – М.: «Наука», 1986. – 288 с.
  2. Назин А.В. О повышении эффективности автоматных алгоритмов адаптивного выбора вариантов/А.В. Назин//Адаптация и обучение в системах управления и принятия решений. – Новосибирск, 1982. – С. 40-46.
  3. Бейко И.В. Методы и алгоритмы решения задач оптимизации / И.В. Бейко, Б.Н. Бублик, П.Н. Зинько. – К.: «Вища школа», 1983. – 512 с.
  4. Таха Х.А. Введение в исследование операций /Х.А. Таха. – М.: «Вильямс», 2005. – 912 с.
  5. Таненбаум Э. Распределенные системы. Принципы и парадигмы / Э. Таненбаум, М. ван Стеен. – СПб.: «Питер», 2003. – 877 с.; ил.
  6. Столлингс В. Современные компьютерные сети. – 2-е изд./В. Столлингс. – СПб.: «Питер», 2003. – 783 с.; ил.

Ключевые слова: стохастическая оптимизация.


Practical implementation and application of stochastic approximation algorithms

Tkachenko K.S., 1st cat. Engineer, Graduate student, Federal State Budget Educational Institution of Higher Education «Sevastopol State University», Sevastopol, Russian Federation, tkachenkokirillstanislavovich@gmail.com

Summary: There are the implementations of stochastic optimization algorithms on the high-level programming language Java in this article.

Keywords: stochastic optimization.


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru