Научная статья на тему 'Алгоритм последовательных упрощений при оценке временной сложности алгоритмов с применением полумарковских моделей'

Алгоритм последовательных упрощений при оценке временной сложности алгоритмов с применением полумарковских моделей Текст научной статьи по специальности «Математика»

CC BY
155
39
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АЛГОРИТМ / ВРЕМЕННАЯ СЛОЖНОСТЬ АЛГОРИТМА / ПОЛУМАРКОВСКАЯ МОДЕЛЬ / ГРАФ СОСТОЯНИЙ / ALGORITHM / THE TIME COMPLEXITY OF THE ALGORITHM / SEMI-MARKOV MODEL / STATE GRAPH

Аннотация научной статьи по математике, автор научной работы — Ларкин Евгений Васильевич, Привалов Александр Николаевич, Клепиков Алексей Константинович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

ALGORITHMS SIMPLIFICATIONS IN THE RUNNING TIME OF THE ALGORITHM, USING A SEMI-MARKOV MODELS

An approach to the assessment of the time complexity of the software implementation of the algorithm is to use mathematical modeling methods. We propose an algorithm of successive simplifications of the graph displays the structure of the test algorithm. The algorithm is illustrated by an example of methodical.

Текст научной работы на тему «Алгоритм последовательных упрощений при оценке временной сложности алгоритмов с применением полумарковских моделей»

Технические науки. Вып. 1. Тула: Изд-во ТулГУ, 2013. С. 252 - 258.

Ларкин Евгений Васильевич, д-р техн. наук, проф., зав. кафедрой, elarkin@,mail.ru, Россия, Тула, Тульский государственный университет

SIMULA TION OF INTERMITTENT-FAIL URE PROCESS IN CYBERNETIC SYSTEMS

E.V. Larkin

An approach to simulation of intermittent failure in cybernetic systems operating on finite state machine (FSM) principle is defined. Formalism of FSM failures, based on Petri-Markov nets mathematical apparatus is worked out. Dependencies for determination of mean time between failures (MTBF) and quantity offailure-free cycles are obtained.

Key words: cybernetic structure, finite state machine (FSM), hardware, software, failure, intermittent failure, Petri-Markov net (PMN), mean time between failures (MTBF)

Larkin Eugene Vasilyevich, head of chair, doctor of technical science, professor, elarkin@,mail. ru, Russia, Tula, Tula State University

УДК 681.5 (519.95)

АЛГОРИТМ ПОСЛЕДОВАТЕЛЬНЫХ УПРОЩЕНИЙ ПРИ ОЦЕНКЕ ВРЕМЕННОЙ СЛОЖНОСТИ АЛГОРИТМОВ С ПРИМЕНЕНИЕМ ПОЛУМАРКОВСКИХ МОДЕЛЕЙ

Е.В. Ларкин, А.Н. Привалов, А.К. Клепиков

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

Работа алгоритма проиллюстрирована методическим примером. Ключевые слова: алгоритм, временная сложность алгоритма, полумарковская модель, граф состояний.

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

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

Указанная задача решается методами математического моделирования, причём сформировались два подхода:

- аналитический;

- имитационный.

Аналитический подход основывается на построении формульных зависимостей, связывающих параметры и элементы системы.

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

В любом случае моделирование должно отвечать следующим требованиям:

- адекватности моделей соответствующим системам или технологическим задачам;

- обеспечению необходимой точности;

- удобству работы пользователя - специалиста по технологии или по обработке информации (управлению):

- понятному интерфейсу управления моделированием;

- достаточной скорости работы;

- наглядности результатов;

- приемлемой стоимости разработки и использования средств моделирования.

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

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

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

В основе моделирования программной реализации алгоритма лежит предположение, что для внешнего по отношению к ЭВМ наблюдателя количество машинных тактов, затрачиваемое процессором на выполнение каждой команды, является случайной величиной.

Если рассматривать импульсы тактового генератора компьютера как случайный сигнал с высокой степенью стабильности частоты и фазы, то время между импульсами может быть описано вырожденным законом распределения:

/имп (t) = lim d ® 0 {exp [- (t - u )2 /2 D J/V(l / 2 pll )}, (1)

где t - время; u - период исследования тактовых импульсов; D - дисперсия периода следования тактовых импульсов; p = 3,14159... .

Время, затрачиваемое процессором на выполнение команды от выборки кода команды до записи результата, может быть определено как взвешенная сумма вырожденных законов распределения:

I

fk(t)= ZPid(t - umi ^ (2)

i=1

где i - индексы для обозначения вариантов выполнения команды; I -количество вариантов; Pi - вероятности появления соответствующего варианта; 0 < mmin < mi < mmax; mi - количество машинных тактов при i-м варианте выполнения команды (целое число).

Из (1) следует, что /к (t) обладает следующими свойствами:

/к (t ) = 0 при t < 0;

^ (3)

j /к (t )dt = 1.

0

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

Tk min = um ini {mi} = ummin > максимальным временем выполнения

Tkman = u maxi {f^i} = ummax ; средним временем выполнения и дисперсией соответственно

Tk = u Z.Pimi; Dk = u 2 Z pmi- (Tk)2 i=1 i=1

Анализ вычислительных процессов реальных ЭВМ позволяет более

точно определить подход к моделированию алгоритмов исследуемого класса.

В дальнейшем будет подразумеваться, что каждый исследуемый алгоритм представляется упорядоченным множеством О = \Л,2 ], в котором Л = [а,} - непустое множество операторов, а 7={[а;, 0|]}- непустое множество переходов между операторами (структуру) алгоритма,

1 <[и}< J.

Для каждого оператора а, е Л могу быть определены подмножество I(а!) с Л операторов, из которых вычислительный процесс попадает в а,, и подмножество 0(а, )с Л операторов, в которые вычислительный процесс попадает после выполнения а,.

В множестве Л операторов алгоритма могут быть выделены подмножества начальных В = [Ъг(ъ)} и конечных Е = [е,(е)}

операторов,В с Л,Е с Л,1(Ъ)е [1,...,1,...^};1(в)е [1,...,1,...^},таких, что

1 \Ъ (Ъ )]=0, Ф, (Ъ )]*0; 1\Е! (е )]^0; 0[е, (. )]=0.

Из свойств алгоритмов, представленных в виде программ ЭВМ, следует, что естественной моделью для описания их выполнения является полумарковский процесс [1], определенный четверкой М = \О,Р,Р(г),0] ,в которой:

О = \Л,2 ] - упорядоченное множество, представляющее структуру процесса;

Л - конечное множество состояний, совпадающих с множеством Л = {а1,...,а!,...,а ц } операторов алгоритма;

2 - множество переходов в сопряженные состояния процесса, совпадающее с множеством связей между операторами алгоритма;

Р = [Рц] - вложенная цепь Маркова, представляющая собой

матрицу вероятностей переходов размерностью J х J;

^(г)=/ц (гх J) -мерная матрица законов распределения из

свойства 6 алгоритмов;

Q = \^1,...,д1,...,дц ] - J -мерный вектор-строка начального

распределения вероятностей.

Очевидно, что четверка М = \о,Р,^ (г )^], тройка М = \о,н (г ),Q] или даже минимально возможное описание М = \Н (г )^], применяемые в классической теории полумарковских процессов [1], полностью определяют исследуемые процедуры выполнения алгоритмов на ЭВМ.

Указанные описания полумарковского процесса малопригодны для структурного анализа алгоритмов, т. е. для выделения из их

полумарковских моделей подмножеств состояний с заданными свойствами, имеющими вид структурных ограничений (например, траекторий решения, других подмножеств связанных состояний, состояний, не удовлетворяющих критерию связности, пересекающихся состояний и т. п. ).

Высокой степенью наглядности и удобством анализа обладает метод представления полумарковских моделей алгоритмов в виде ориентированных взвешенных графов О = \Л,2]. Весами переходов, графов О будут являться элементы полумарковских матриц Н) или элементы вложенных цепей Маркова Р с элементами матриц законов распределения ^ ). В качестве весов переходов могут быть также заданы элементы матриц числовых оценок параметров законов /у ^)Л Ту, Бу, Ту т1П, Ту тах . Достоинством указанного описания полумарковского процесса является полное совпадение структуры графа со структурой исследуемого алгоритма.

Вид графа, представляющего полумарковский процесс, приведен на

рис. 1.

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

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

1. Осуществляем циклический перебор элементов матрицы V, устанавливаем значения Уу=0, если 1=], во всех остальных случаях Уу=1/п-1.

Циклически перебираются элементы матрицы Т и устанавливаются значения Ц=Ц*Ру+Ц*Ру.

2. Циклически перебираем элементы матрицы V. Добавляем в матрицу V элементы равные нулю до размерности (п-1)(п-1)*(п-1)(п-1). Вероятность перехода в каждую расщепленную вершину равна 1/п-1. Запоминаем начальную размерность матрицы V, И=п.

3. Циклически просматриваем элементы матрицы V. Если 1<п && ]<п && 1<:>) => , то Уу=01/п-1. Если <п && ]>п && и ]-п=1/10 =>, то 1/п-1. Если 1<=п и]>п =>, то Уу=0. Если 1>п и]<п =>, то vij = 1/n-1.

4. Увеличиваем размерность матрицы Т до (п-1)(п-1)*(п-1)(п-1). Циклически по i,j перебираются элементы массива Т, если ]==п, то

гу=г{/(п-1). В строку I добавляются п-2 элементов со значениями ^ при условии, чтоЦ<=п иЦ-п-1=1, иначе г=0. Если 1>п-1 иЦ<п, то гу=г^ ,иначе гц=0.

5. Циклически в обратном порядке просматриваем элементы матрицы V и формируем (И-1)*(И-1) новых строк и столбцов с элементами равными нулю. Пробегаем матрицу по строкам ! и по столбцамЦ, если ¡<И && ¡<>Ц, то Уу=1/((*Н-1)*2)-1, если Ц>И то у=1/((*И-1)*2)-1 для всех Ц>((И--1)*1) + 1 и Ц<=(И-1)*2.

Если остаток от деления ! на И равен нулю и ¡<>1, то к=1; => уй=1;к++.

Если ¡>И => ук=1; к+ + .

6. Увеличиваем размерность матрицы Т до ((п-1)(п-1)*2)*((п-1)(п--1)*2). Устанавливаем счетчик с в позицию 1 и/в позицию 1. Циклически по ¡Ц перебираются элементы массива Т, еслиЦ=п, то гу=г/(п-1)*ру. В строку ! добавляются п-2 элементов со значениями ^ при условии, что Ц<=(п-1)*(п-1) иЦ>п-1, иначе г!Ц=0:

• если остаток от деления с на п-1 = 0, то с=1, к++;

• если ¡>п-1 &&Ц=с, то гу=гсц+(п-1)*с*ру, иначе г=0;

• увеличиваем с на единицу.

7. Производим циклический перебор элементов матрицы V. Удаляем элементы у^, для которых ¡>И, для всех остальных укк=1/(И-1). Устанавливаем И=размер матрицы V.

8. Циклически по ¡,Ц перебираем элементы, матрицы Т. Фиксируем ¡, для всех ¡, если ¡>п-1 = 0, то г,--п-1=г,--п-1+гц.

9. Удаляем в матрице Т все элементы, для которых \>(п-1) или

Ц>(п-1).

10. Получаем новую размерность матрицы Т (И-1)*(И-1), рц=1/(И-2). Циклически перебираем элементы массива Т. Для всех Уц=1/(И-2), если

11. Устанавливаем с=0. Циклически просматриваем элементы массива Т:

0. если остаток от деления ! на п-1 = 0, то с++;

1. если гц=0, то ничего не делаем;

2. если ¡>п-1 и г<>0, то гсц=гсц+гц*рц,

12. Циклически просматриваем элементы матрицы V, если ¿>И-2 или]>И-2, то удаляем элемент, иначе, если ¡=Ц, то у=1/(И-3)=1, иначер=0.

13. Устанавливаем И=размерность матрицы V.

14. Если И=3, то переходим к шагу 14, иначе возвращаемся к шагу 7.

15. Пересчитываем значения матрицы Т: г12=г13+г12, г21=г32+г21. Размерность матрицы Т изменяем до (п-2)*(п-2).

16. Удаляем все элементы матрицы V и Т, где ¿>Ь-3 или]>И-3.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

17. Выводим у11*г11.

Проиллюстрируем работу алгоритма на частном примере. Пусть имеется вычислительный алгоритм, описываемый графом, состоящим из

88

четырех вершин (рис.1 ). В более общем случае граф состоит из п вершин, где каждая вершина имеет связь с каждой. Алгоритм описывается матрицами: вероятностей математических ожиданий -7И*И, дисперсий -1)п*п.

за

Рис. 1. Входной граф

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

Таблица 1

Матрица вероятностей входного графа

* 1 2 3 4

1 0,25 0,25 0,25 0,25

2 0,25 0,25 0,25 0,25

3 0,25 0,25 0,25 0,25

4 0,25 0,25 0,25 0,25

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

Таблица 2

Матрица математических ожиданий входного графа_

* 1 2 3 4

1 7 3 5 3

2 12 21 23 27

3 6 3 4 10

4 34 9 5 15

После расщепления последней вершины дочерние вершины имеют связи с изначально существовавшими нерасщепленными вершинами графа (рис. 2).

Рис. 2. Расщепление вершины 4 на дочерние вершины

Процедура расщепления каждой вершины осуществляется дважды и будет обозначена далее как первичное и вторичное расщепление вершины графа соответственно (рис. 3).

Далее осуществляется циклический перебор элементов матрицы V. В строке 1=1, ...,п нет ни одного у^=0, значит сокращаем петли. Циклически перебирается массив и получается количество строк я. Количество вариантов перехода равно я-1. Т.к. петля сокращена, то переход из самой в себя равен нулю. Вероятность перехода в каждую вершину 1/я-1=0,33. Каждый ненулевой элемент матрицы Т получит значение В цикле

перебираются элементы матрицы Т и устанавливаются значения

Таблица 3

Матрица вероятностей после удаления петель

* 1 2 3 4

1 0 0,33 0,33 0,33

2 0,33 0 0,33 0,33

3 0,33 0,33 0 0,33

4 0,33 0,33 0,33 0

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

Таблица 4

Матрица математических ожиданий

* 1 2 3 4

1 3,5 1,5 2,5 1,5

2 6 10,5 11,5 13,5

3 3 1,5 2 5

4 17 4,5 2,5 7,5

Производится первичное расщепление. Расщепляем вершину п=4. Получаем п-1=3 новые вершины, связанные с каждой из родительских вершин. Дочерние вершин не связываются между собой, но связываются с каждой родительской. Вероятность перехода в каждую родительскую вершину 1/п-1=0,33. Добавляем в матрицу V п-1 столбцов и п-1 срок. Для этого пробегаем матрицу по строкам / и по столбцам у. Номер каждого нового

столбца и строки равен п.Ц, гдеЦ=1,...,п-1. Существующие элементы матрицы. Запоминаем предыдущую размерность матрицы И=п. Заполняем элементы матрицы, пробегаем матрицу по строкам ! и по столбцам Ц.

Для существующих элементов, если ¡<п иЦ<п и ¡<>Ц =>, Уц=0,33. Если ¡<п иЦ>п иЦ-п=1/10 =>, то Уц=0,33. Для вновь добавленных элементов если ¡<=п иЦ>п =>, то Уц=0. Если ¡>п иЦ<п =>, то Уц=0,33 (табл. 5).

Таблица 5

Матрица после первичного расщепления последней вершины

* 1 2 3 4.1 4.2 4.3

1 0 0,33 0,33 0,33 0 0

2 0,33 0 0,33 0 0,33 0

3 0,33 0,33 0 0 0 0,33

4.1 0,33 0,33 0,33 0 0 0

4.2 0,33 0,33 0,33 0 0 0

4.3 0,33 0,33 0,33 0 0 0

Увеличиваем размерность матрицы Т до (п-1)(п-1)*(п-1)(п-1). Для вновь полученных элементов получаем математические ожидания пропорционально для каждого дочернего элемента. Циклически по ¡Ц перебираются элементы массива Т, если Ц=п, то г=г{/(п-1). В строку ! добавляются п-2 элементов со значениями г^. при условии, чтоЦ<=п и Ц-п-1=,, иначе г=0. Если ¡>п-1 иц<п, то г=г^. иначе г=0 (табл. 6).

Таблица 6

Матрица математического ожидания

_после удаления петель __

* 1 2 3 4.1 4.2 4.3

1 3,5 1,5 2,5 0,5 0 0

2 6 10,5 11,5 0 4,5 0

3 3 1,5 2 0 0 1,6

4.1 5,66 5,66 5,66 0 0 0

4.2 1,5 1,5 1,5 0 0 0

4.3 0,83 0,83 0,83 0 0 0

Полученный в результате расщепления вершины граф представлен на рис. 4.

Рис. 4. Граф с расщепленными вершинами после первичного

сокращения

Производим вторичное расщепление. Для этого пробегаем матрицу по строкам / и по столбцам у с п до 1. Если у <> целое число и 1=1, то расщепляем вершину на Н-1 вершин. Каждая новая вершина имеет ((Н-1)*2)-1 связей. Значит, у--=1/((*Н-1)*2)-1=1/(3*2)-1=0,2. Удаляем все элементы, для которых 1>И или->Н.

Формируем в цикле (Н-1)*(Н-1) новых строк и столбцов с элементами равными нулю. Пробегаем матрицу по строкам / и по столбцам у; если КН && 1<>], то у=0,2, если->Н, то у-=0,2 для всех (]>((к-1)Ч)+1) .

Если остаток от деления I на Н равен нулю и К>1, то к=1; => ук=1;к=к+1. Если 1>Н => ук=1; то к=к+1. Диагональное заполнение вероятностей для дочерних вершин завершено (табл. 7).

Увеличиваем размерность матрицы Т до ((п-1)(п-1)*2)*((п-1)(п-1)*2) (табл. 8). Для вновь полученных элементов получаем математические ожидания пропорционально для каждого дочернего элемента. Устанавливаем счетчик с в позицию 1 и f в позицию 1. Циклически по у перебираются элементы массива Т, если-=п, то Ц-=и/(п-1)*р-. В строку I добавляются п-2 элементов со значениями Ц- при условии, что-<=(п-1)*(п-1) и ->п-1, иначе tij=0:

если остаток от деления с на п-1 = 0, то с=1, к=к+1;

если 1>п-1 и-=с, то Ц-=^-+(п-1)*с*ру. иначе —1;

увеличиваем с на единицу.

Таблица 7

Матрица после вторичного расщепления

последней вершины ___

* 1 2 3 4.1.1 4.1.2 4.1.3 4.2.1 4.2.2 4.2.3 4.3.1 4.3.2 4.3.3

1 0 0,2 0,2 0,2 0,2 0,2 0 0 0 0 0 0

2 0,2 0 0,2 0,2 0,2 0,2 0 0 0 0 0 0

3 0,2 0,2 0 0,2 0,2 0,2 0 0 0 0 0 0

4.1.1 1 0 0 0 0 0 0 0 0 0 0 0

4.1.2 0 1 0 0 0 0 0 0 0 0 0 0

4.1.3 0 0 1 0 0 0 0 0 0 0 0 0

4.2.1 1 0 0 0 0 0 0 0 0 0 0 0

4.2.2 0 1 0 0 0 0 0 0 0 0 0 0

4.2.3 0 0 1 0 0 0 0 0 0 0 0 0

4.3.1 1 0 0 0 0 0 0 0 0 0 0 0

4.3.2 0 1 0 0 0 0 0 0 0 0 0 0

4.3.3 0 0 1 0 0 0 0 0 0 0 0 0

Таблица 8

Матрица математического ожидания после^ вторичного расщепления вершины _

* 1 2 3 4.1.1 4.1.2 4.1.3 4.2.1 4.2.2 4.2.3 4.3.1 4.3.2 4.3.3

1 3,5 1,5 2,5 1,15 1,15 1,15 0 0 0 0 0 0

2 6 10,5 11,5 3,46 3,46 3,46 0 0 0 0 0 0

3 3 1,5 2 0,66 0,66 0,66 0 0 0 0 0 0

4.1.1 1,15 0 0 0 0 0 0 0 0 0 0 0

4.1.2 0 1,15 0 0 0 0 0 0 0 0 0 0

4.1.3 0 0 1,15 0 0 0 0 0 0 0 0 0

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

4.2.1 3,46 0 0 0 0 0 0 0 0 0 0 0

4.2.2 0 3,46 0 0 0 0 0 0 0 0 0 0

4.2.3 0 0 3,46 0 0 0 0 0 0 0 0 0

4.3.1 0,66 0 0 0 0 0 0 0 0 0 0 0

4.3.2 0 0,66 0 0 0 0 0 0 0 0 0 0

4.3.3 0 0 0,66 0 0 0 0 0 0 0 0 0

Последняя вершина разложена дважды; производится сокращение вершин. Для этого осуществляется циклический перебор элементов матрицы V. Удаляем элементы у^ для которых 1>Н. Пересчитываем вероятности: р=1/(А-1)=1/(4-1)=0,33.

Рис. 5. Вид графа после вторичного сокращения путей

Циклически производится перебор матрицы V и для каждого элемента уЛ=0,33 (табл. 9).

Таблица 9

Вид матрицы вероятностей

* 1 2 3

1 0,33 0,33 0,33

2 0,33 0,33 0,33

3 0,33 0,33 0,33

Пересчитываются значения матрицы Т. Циклически по ¡,Ц перебираются элементы матрицы Т. Фиксируем ¡. Для всех ¡, если ¡>п-1 = 0, то г^-^г^.+гу. Размерность матрицы Т сокращается до (п-1)*(п-1)=3*3 (табл. 10).

Таблица 10

Вид матрицы математических ожиданий_

* 1 2 3

1 7 1,73 11,63

2 9,46 21 14,9

3 3,66 2,16 4

Производится вторичное сокращение путей. Новая размерность матрицы (И-1)=4-\=3. Т.к. матрица квадратная, то размерность равна 3*3. Вероятность перехода в каждую вершину ру=1/(Н-2)=0,5, кроме вероятностей перехода в самих себя, которые были убраны на предыдущем шаге. Циклически перебираем массив. Для всех у=0,5, кроме 1=] (табл. 11).

Таблица 11

Таблица вероятностей для трех вершин

* 1 2 3

1 0 0,5 0,5

2 0,5 0 0,5

3 0,5 0,5 0

Пересчитываются значения матрицы Т. Циклически по ¡] перебираются элементы матрицы Т. Устанавливаем с=0:

если остаток от деления I на п-1 = 0, то с=с+1; если Ц=0, то ничего не делаем; если г>п-1 и Ц<>0, то г]=г]+и*рц

Следующим шагом производится сокращение промежуточных путей. Размерность новой матрицы (И-2)=4-2=2, Ру=1/(И-3)=1, кроме ¡=3 Петли отсутствуют, следовательно, для элементов, когда ¡=3 ргу=0. Пересчитываются значения матрицы Т: 1;12=1;13+1;12, 1;21=1;32+1;21. Размерность матрицы Т изменяем до (п-2)*(п-2) (табл. 12).

Таблица 12

Матрица ожиданий для трех вершин

* 1 2 3

1 0 1,73 16,63

2 9,46 0 14,9

3 15,18 2,16 0

Размерность h<>1, значит продолжается сокращение. Новая размерность h-3=4-3=1; если h=1, то р=1. Рассчитывается матрица Т: tii=ti2+t2i (табл. 13).

Размерность h=1, значит, дальнейшие сокращения не производятся. Выходной граф получен. Математическое ожидание времени выполнения получено и равно 35,7 (табл. 14).

Таблица 13

Таблица математического ожидания для графа из двух вершин

* 1 2

1 0 18,36

2 17,34 0

Таблица 14

Выходная матрица математического ожидания

* 1

1 35,7

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

Рис. 6. Вид выходного графа

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

Список литературы

1. Королюк В.С., Турбин А.С. Полумарковские процессы и их приложение. Киев: Наукова думка, 1976. 184 с.

2. Хастингс Н., Пикок, Дж. Справочник по статистическим распределениям. М.: Статистика, 1980. 96 с.

3. Корн Г., Корн Т. Справочник по математике для научных работников и инженеров. М.: Наука, 1973. 32 с.

4. Ларкин Е.В. Привалов А.Н. Проектирование программного обеспечения вычислительной среды тренажерных систем. Тула: Изд-во ТулГУ, 2010. 259 с.

Ларкин Евгений Васильевич, д-р техн. наук, проф., зав. кафедрой, elarkinamail.ru, Россия, Тула, Тульский государственный университет,

Привалов Александр Николаевич, д-р техн. наук, проф., privalov.61@mail.rut, Россия, Тула, Тульский государственный педагогический университет им. Л.Н. Толстого,

Клепиков Алексей Константинович, асп., don-klepikovayandex. ru, Россия, Тула, Тульский государственный педагогический университет им. Л.Н. Толстого

ALGORITHMS SIMPLIFICATIONS IN THE RUNNING TIME OF THE ALGORITHM,

USING A SEMI-MARKOV MODELS

E. V. Larkin, A.N. Privalov, A.K. Klepikov

An approach to the assessment of the time complexity of the software implementation of the algorithm is to use mathematical modeling methods. We propose an algorithm of successive simplifications of the graph displays the structure of the test algorithm. The algorithm is illustrated by an example of methodical.

Key words: algorithm, the time complexity of the algorithm, semi-Markov model, the state graph.

Larkin Evgeniy Vasilevich, doctor of technical science, professor, manager of department, elarkina mail. ru, Russia, Tula, Tula State University,

Privalov Aleksandr Nicolaevich, doctor of technical science, professor, privalov.61 amail.ru, Russia, Tula, Tula State Pedagogical University,

Klepikov Aleksey Konstantinovich, postgraduate, don-klepikovayandex.ru, Russia, Tula, Tula State Pedagogical University

i Надоели баннеры? Вы всегда можете отключить рекламу.