КАТЕГОРИИ: Архитектура-(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. объемом требуемой памяти, физическим пространством (емкость); Традиционно значения времени и емкости выражают целыми числами. Анализ алгоритмов предлагает общие количественные критерии не только для оценки характеристик данного алгоритма, но и для относительного сравнения двух различных алгоритмов решения одной задачи. Под временной сложностью алгоритма (временем выполнения алгоритма) понимается время выполнения алгоритма, измеряемое в «шагах» (инструкциях алгоритма), которые необходимо выполнить для достижения запланированного результата на некоторой идеализированной вычислительной машине. Пусть
если Константу пропорциональности Другой важной характеристикой алгоритма является его емкость. Под емкостью принято понимать максимальный объем памяти, используемый при вычислении. Говоря о физическом пространстве, необходимом для алгоритма в общем случае, мы не можем определить его точно. Современная компьютерная техника предоставляет в распоряжение простого пользователя, такие объемы памяти, которые еще несколько лет назад казались недостижимыми. В этих условиях создается не совсем верное представление об определении затрат памяти, как излишней операции. Самый «быстрый» алгоритм решения задачи, требующий затрат памяти соизмеримых с предоставляемым объемом, в произвольном случае не может быть реализован на большинстве современных компьютеров. Определение емкости алгоритма тесно связано с условиями его реализации для конкретной ЭВМ и используемого языка программирования. С другой стороны, набор типов данных, используемых в реальных вычислениях, относительно постоянен. Среди скалярных величин это целочисленные типы, вещественные типы и строковые типы. Среди векторных величин это, в основном, массивы скаляров, объем которых определяется совокупным объемом соответствующих скаляров. Большинство языков программирования выделяет для хранения скалярных величин один и тот же объем памяти. Рассмотрим усредненный объем памяти, необходимый для хранения базовых скалярных типов данных в байтах. Положим Пусть алгоритм имеет систему входных данных Итак, мы рассмотрели основные характеристики алгоритма: время и емкость. Введение понятий временной сложности алгоритма и усредненного объема памяти, необходимого для реализации алгоритма, позволяет нам перейти к рассмотрению понятия эффективности алгоритма. Пусть имеется некоторая вычислительная машина, выполняющая
Таблица 1
Из таблицы 1 можно видеть, что вычисления, определяемые алгоритмами (7) и (8), вряд ли закончатся в обозримом будущем. Очень характерным является временной скачок между шестым и седьмым алгоритмами. Согласно эффективным алгоритмом решения частной задачи называется такой алгоритм для которого доказана правильность и получена линейная или полиномиальная оценка временной сложности. Такие алгоритмы еще называют вычислимыми за реальное время. В общем случае имеется широкий класс задач, для которых не существует точных эффективных методов решения. К сожалению многие из таких задач имеют важное прикладное значение. Для них разрабатываются приближенные алгоритмы, позволяющие получить решение с определенной степенью точности или с определенной вероятностью.
Дата добавления: 2014-01-07; Просмотров: 950; Нарушение авторских прав?; Мы поможем в написании вашей работы! |