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

28. Методика оценки вычислительной сложности алгоритма. Рассмотрите пример.

Пусть А – алгоритм решения некоторого класса задач, а n– размерность входа задач данного класса. Тогдавычислительная сложность– этоfA(n), отображающая размерность задачи в «математическое» время ее решения. Т.е. дающее оценку количества некоторых операций, необходимых для решения данным алгоритмом любой задачи данного класса функцией от размеров входа. Эта ф-ция является критерием качества алгоритма с т.з. временных затрат: эффективными являются полиномиальные алгоритмы, т.е. такие, у которыхfA(n) растет не быстрее, чем полином отn. Алгоритмы, имеющие экспоненциальную вычислительную сложность (2n,n! и т.п.), пригодны для решения задач ограниченной размерности.

Т.к. вычислительная сложность может быть представлена функциональной зависимостью числа операций, выполняемых алгоритмом, от парамтеров, характеризующих размерность задачи или объекта преобразований, либо оценкой вида О(nк) или О(рn), где к=1,2,..n; р=2,3,…n. Оценку вычислительной сложности вида О(nк) или О(рn) можно получить, зная размерность задачи, по содержательному описанию алгоритма. При выполнении анализа необходимо учитывать, что: О(n)+О(n)=О(n), О(n)*О(n)= О(n2), О(n)+О(n2)=О(n2).

Задача называется n(p)-полной, если существует алгоритм, обеспечивающий ее решение за полиномиальное время.

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

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

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

Более реалистичной является оценка в среднем. Для задач на графы такая оценка появляется при предположении, что граф – однородный с некоторой средней степенью вершин.

Асимптотическая оценка вычислительной сложности алгоритма

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

Используются асимптотические оценки двух видов: O(n) иo(n).

Функцию f(n) определяется какO((n)), и говорят, что она порядка(n) если

Порядок f(n) обозначают какf(n)=O((n))

Функция f(n) имеет порядокo((n)), если

Например, если f(n)=5n3-3n2+2n+6, тоf(n)=О(n3), так как

И f(n)=о(n3,1), так как

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

Моделью схемы является гиперграф H(X,U), в котором множествам элементов Э и цепей С схемы поставлены во взаимно-однозначные соответствия мн-ва вершин Х и реберU. Гиперграф задан мн-вами вершин Х={xi/ i=1}, ребер U={uj/j=1,m} и многозначными отображениями Х вU– ГХ ={Гxi/i=1,n} иUв Х – ГU= {Гuj/j=1,m}. Идея свободной декомпозиции схемы соединения элементов заключается в следующем: начиная с первого уровня (количество элементов, подлежащих объединению равноn), определяем показатели связности всех пар вершин графа.

, гдеUi= Гxi,Uj= Гxj.

Далее процесс повторяется до тех пор, пока не останутся две последние вершины.

Получим оценку в худшем.Для этого предположим, что каждая вершина связана с каждой, а- максимальное количество выводов элементов схемы. Доминирующая операция при оценке вычислительной сложности – операция сравнения. Подсчет показателя связности вершинтребуетопераций сравнения элементов мн-вUiиUj. Так как каждая вершина связана с каждой, то на некотором шагеtколичество таких показателей будет равно

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

  1. : подсчитываем, где,

  2. Находим , такой что

  3. Объединяем в одну вершины хк и хr

Количество операций сравнения, необходимых для выполнения п.1. равно. Выбор пары вершин с максимальным показателем связности в п.2. потребуетсравнений. Суммируя пополучим:

В итоге

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