Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Меры сложности алгоритмов

 

Размером задачи называется некоторая мера количества входных данных задачи. Например, число строк/столбцов матрицы; количество ребер графа и т.д.

Для оценки сложности алгоритмов существует много критериев. Чаще всего сложность алгоритма – количество необходимых для решения задачи ресурсов как функция от ее размера.

 

Рассматриваются различные меры сложности в зависимости от вида ресурса. Рассмотрим некоторые из них:

1. Временная сложность алгоритма – «время» выполнения алгоритма, измеряемое в «шагах» (инструкциях алгоритма, которые необходимо выполнить для достижения результата)

2. Емкостная сложность алгоритма – необходимый для работы алгоритма объём памяти машины.

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

4. Коммуникационная сложность алгоритма – минимальное число бит, которыми нужно обменяться участникам вычисления некоторой функции. Замечания:

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

б) понятие схемы функциональных элементов – см. курс математической логики и теории алгоритмов.

в) размером схемы называется количество присваиваний в схеме.

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

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

1. Эффективный по времени алгоритм может быть неэффективным по объему памяти.

2. Эффективные по времени, но сложные алгоритмы нежелательны, если готовые программы будут поддерживать лица, не участвовавшие в их написании.

3. В численных алгоритмах точность и устойчивость не менее важны, чем их временная эффективность.

4. Если программа будет использована только несколько раз, стоимость её написания превосходит стоимость времени ее выполнения. Финансово более выгоден алгоритм простой в реализации.

 

Массовой задачей называется совокупность задач единой структуры.

Пусть дана некоторая массовая задача и алгоритм для ее решения. Для любой частной задачи обозначим – размер задачи, т.е. количество входных данных задачи.

Через обозначим время работы алгоритма над задачей, измеренное в «шагах» т.е. инструкциях алгоритма.

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

Время работы алгоритма над задачей зависит не только от количества входных данных, но и от их характера. Т.е. возможно, но.

Поэтому целесообразно рассмотреть

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

Пример: Массовая задача – упорядочение одномерного массива по возрастанию.

:упорядочение массива (5,4,3,2,1)

:упорядочение массива (4,5,3,1,2)

:упорядочение массива (1,2,3,4,5)

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

Замечание: Наиболее объективной мерой сложности алгоритма является – временная сложность в среднем, где берется среднее значение величины по всем. вычисляется сложнее, т.к. требует дополнительных сведений о характере данных задачи.

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

 

<== предыдущая лекция | следующая лекция ==>
Интуитивное понятие алгоритма и его уточнение | Асимптотический анализ оценки сложности алгоритмов
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 5055; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.