КАТЕГОРИИ: Архитектура-(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; Просмотров: 5206; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |