Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Экзамен / АКП_ответы_2010_FINAL.doc
Скачиваний:
56
Добавлен:
10.02.2015
Размер:
3.8 Mб
Скачать

29. Управляющий граф алгоритма.

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

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

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

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

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

Оценка вычислительной и емкостной сложности требует информации о:

  1. Видах операций, их вычислительной сложности в функции от базисных и количестве повторений этих операций.

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

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

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

  1. Операторы преобразования данных, их типы, реализуемые ф-ции, вычислительная сложность их реализации.

  2. Операторы вычисления условий, предикаты, реализующие проверку условий и вычислительная сложность этой проверки.

  3. Управляющие связи между операциями с учетом отношений следования, а для альтернативных передач управления - соответствующие им значения предшествующих условий и вероятности реализации этих передач.

  4. Исходные, промежуточные и окончательные данные, их вид, размерности и если заданы - их структуры, т.е. организация этих данных.

  5. Связи «данные-операторы» и наоборот, их типы, определяющие вычислительную сложность чтения/записи данных для заданных структур.

  6. связи «данные-данные», позволяющие решать вопрос об их независимости. Это важно для выполнения оптимизирующих преобразований и др.

Модель класса алгоритмов в виде управляющего графа.

Такая модель должна отражать события (операции) обработки данных, связи между этими событиями, типы операторов обработки данных и, если известно – их вычислительную сложность. В данной модели не отражены конкретные наборы данных, функциональная зависимость, а так же предикаты, реализующие проверку условий. Модель несет информацию необходимую для изучения св-в определенного класса алгоритмов. Рассмотрим переход к управляющему графу алгоритма на примере 2-х подпрограмм: вычисление кол-ва букв «а», определения minэлемента одномерного массива.

Кроме структуры алгоритма класс определяет базис В. В={Dв,Fв, Рв, Ов}Dв – символы переменных обл-ти определения класса алгоритма.Fв – символы ф-ций (в т.ч. логических), Рв – символы предикатов, реализующие проверку условий. Ов - символы операторов.

Управляющимназывается графс двумя выделенными вершинамиp0иq0. Управляющий граф называетсяправильным, если любая его вершина принадлежит пути изp0вq0.

Переход от алгоритма к управляющему графу выполняется следующим образом:

  1. Множеству операторов О поставим в соответствие множество Х, О<->X.

  2. Тип tили вычислительную сложность оператора отобразим в модели, задав однозначное отображениеR1множества Х на множество Т :XR1T,tТ

  3. Символы множеств Fв и Рв отобразим в модели, задав однозначные отображения мн-ва Х’ вершин обработки данных и Х’’ вершин вычисления условий и передачи управления.

Х’<->O’: Х’R2

Х’’<->O’’: Х’’R3

  1. Управляющие связи С между операторами oiиoj, т.е. ск(oi,oj)С с учетом отношения следования поставим во взаимно однозначное соответствие дугамUк(xi,xj), т.е. ск(oi,oj)Uк(xi,xj)

Uк(xi,xj) UUк(xj,xi) U

Множество дуг Uраспадается на два подм-ва:U’ –альтернативная передача управления иU’’ – безусловная передача управления.U=U’U’’,U’U’’=.

  1. Мн-ву дуг U’ присвоим веса из мн-ваL={true,false}и мн-ва Е –вероятностей этих передач управления

U’Q2E

U’Q1L.

Т.о. мы получили модель класса алгоритмов с взвешенными вершинами и частично взвешенными ребрами. Gy{<X,<T,Fв,Pв> >, <U’<L,E>>,U’’}

Соседние файлы в папке Экзамен