Главная > Математика > Основы компьютерной алгебры с приложениями
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

Алгоритмы и их сложность.

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

Определение 1.2.1. Пусть — вещественнозначные функции, определенные на множестве S. Мы будем говорить, что доминируетея функцией , и писать если существуют положительное вещественное число и элемент , такие, что для всех доминирует , и писать если доминируется и (3) функции кодоминантны, и писать , если

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

Определение целого числа i мы будем называть число -цифр в его представлении и будем обозначать ее . Если — потолок, наименьшее целое большее или равное — пол — наибольшее целое число меньшее или равное , то

Пример. Целое число на рис. 1.2.1 при имеет , т.е. длина целого числа — это количество компьютерных ячеек, требующееся для его представления. В дальнейшем индекс (3 мы будем опускать, поскольку для любого другого основания у имеем (если рассматривать как функции, определенные на множестве целых чисел).

Определение 1.2.3. Пусть А — алгоритм и S — множество допустимых значений входа для А. Целое число для число базисных операций, выполняемых алгоритмом А при значении входа — называется функцией времени вычислений, ассоциированной с А и определенной на S. К базисным операциям относятся такие, как сложение и умножение одинарной точности, замены, безусловные передачи управления и вызовы подпрограмм.

Формально полиномы определяются в гл. 3; в сформулированной ниже теореме мы предполагаем, что читатель имеет о них интуитивное представление.

Теорема 1.2.4. Если — полином степени то

Доказательство. Полагая , имеем

Для доказательства теоремы достаточно теперь положить

В качестве применения теоремы 1.2.4 рассмотрим алгоритм, содержащий к инструкций (или шагов), каждая из которых выполняется за время . Тогда весь алгоритм выполняется за время , где — максимум чисел .

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

количества входных данных, т.е. функциями вида Очевидно, что

и общее правило состоит в том, что вычисление является «легким», если мы имеем дело с полиномиальным по времени алгоритмом, и «сложным», если мы имеем дело с экспоненциальным по времени алгоритмом.

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

<< Предыдущий параграф Следующий параграф >>
Оглавление