Скачиваний:
28
Добавлен:
03.06.2014
Размер:
6.16 Mб
Скачать
  1. Графовые модели алгоритмов и программ. Построение графовых моделей.

Графовая модель – это конечный ориентированный граф со взвешенными вершинами или дугами. Используется для оценки вычислительных затрат (время выполнения/затраты памяти).

Графовые модели легко поддаются эквивалентным преобразованиям, а значит:

  1. Можно упростить модель, исключив из нее все ненужные подробности (свести фрагменты к любому уровню детализации).

  2. ГМ позволяет уменьшить затраты памяти в моделируемой системе на представление программ в памяти.

  3. Можно получить зависимость интересующих нас характеристик от параметров отдельных операторов, причем зависимость – в параметрическом виде (в виде формулы).

  4. ГМ позволяет оптимизировать проектируемый алгоритм или программу с точки зрения процессорного времени и памяти.

  5. ГМ могут применяться для отображения и последовательных, и параллельных процессов.

Допущения:

  1. Будем говорить о последовательных алгоритмах.

  2. Будем рассматривать самый простой вид графовых моделей – ГМ, использующие вершины только одного вида и дуги (не ребра). Вершины – решения, дуги – процессы.

  3. Ресурсные параметры (время, память) связаны только с процессами (ветвление, слияние – не учитывается, считаем нулевыми затраты времени и памяти). Следствие максимального упрощения.

  4. Ресурсные параметры могут быть детерминированными величинами (min, max) и случайными величинами.

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

Задача – получить сетевую модель. Данная задача решается в два этапа:

  1. “СА -> ГМ” – преобразование схемы алгоритма в графовую модель определенного вида (псевдосетевую модель). Псевдосетевая модель отличается от сетевой только наличием контуров.

  2. “ГМ -> СМ” – преобразование графовой модели в сетевую модель, то есть избавление от контуров.

Рассмотрим первый этап – построение графовой модели (“СА -> ГМ”).

Рассмотрим прямые сетевые модели:

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

  1. Вершина – это событие (факт окончания работы).

Вершина, не имеющая входящих дуг – исток (событие – начальное).

Событие, не имеющее выходящих работ – конечное. Соответствующая вершина – сток.

  1. Вершины – пронумерованы 0, 1, …, k.

i = 1, …, k-1

i – номер вершины, в которую входят дуги уже пронумерованных вершин с номером меньше i.

  1. Каждая дуга взвешивается вектором ресурсных параметров и вероятностью выполнения этой работы.

Алгоритм преобразования (“СА -> ГМ”):

  1. Последовательно числами, начиная с единицы, нумеруются все операторные вершины схемы алгоритма, а также начальная (номер 0) и конечная (№max).

  2. Изображается в виде точек (или кружков) k+1 вершина будущей графовой модели.

  3. (!!!) Две вершины i и j соединяются дугой, если на отмеченной схеме алгоритма имеется путь из вершины i в вершину j, не проходящий ни через одну операторную вершину.

  4. Полученная в пункте 3 дуга отмечается вектором ресурсных параметров, соответствующих вершине оператора схемы алгоритма с номером i, кроме того – вероятностью попадания из i в j.

Графовая модель должна быть синтаксически корректна:

  1. Наличие одной начальной и одной конечной вершины.

  2. Условие достижимости любой вершины, кроме начальной из начальной.

  3. Условие достижимости конечной вершины из любой другой вершины кроме конечной.

  4. Условие полноты:

Для любой вершины сумма вероятностей исходящих дуг равна единице.