Сложность алгоритмов Сложность алгоритма определяется вычислительными мощностями, необходимыми для его выполнения. Вычислительная сложность алгоритма часто измеряется двумя параметрами Т временная сложность и S пространственная сложность, или требования к памяти. Игра Для Пк 100 К 1 Торрент. И Т, и S обычно представляются в виде функций от n, где n это размер входных данных. Это просто член разложения функции сложности, быстрее всего растущий с ростом n, все члены низшего порядка игнорируются. Например, если временная сложность данного алгоритма равна 4n. Оn. 2. Не нужно знать ни точное время выполнения различных инструкций, ни число битов, используемых для представления различных переменных, ни даже скорость процессора. Один компьютер может быть на 5. Это не жульничество, при работе с алгоритмами настолько сложными, как описанные в этой книге, всем прочим можно пренебречь с точностью до постоянного множителя в сравнении со сложностью по порядку величины. Например, если Т Оn, то удвоение входных данных удвоит и время выполнения алгоритма. Если ТО2n, то добавление одного бита к входным данным удвоит время выполнения алгоритма. Алгоритм называют постоянным, если его сложность не зависит от n 01. Алгоритм является линейным, если его временная сложность Оn. Алгоритмы могут быть квадратичными, кубическими и т. Все эти алгоритмы полиномиальны, их сложность Оm, где m константа. Алгоритмы с полиномиальной временной сложностью называются алгоритмами с полиномиальным временем Алгоритмы, сложность которых равна Оtfn, где t константа, большая, чем 1, a fn некоторая полиномиальная функция от n, называются экспоненциальными. Подмножество экспоненциальных алгоритмов, сложность которых равна Осfn, где где с константа, a fn возрастает быстрее, чем постоянная, но медленнее, чем линейная функция, называется суперполиномиальным. На практике, самые сильные утверждения, которые могут быть сделаны при текущем состоянии теории вычислительной сложности, имеют форму. То есть, известные нам алгоритмы вскрытия обладают суперполиномиальной временной сложностью, но пока невозможно доказать, что не может быть открыт алгоритм вскрытия с полиномиальной временной сложностью. Развитие теории вычислительной сложности возможно когда нибудь позволит создать алгоритмы, для которых существование алгоритмов с полиномиальным временем вскрытия может быть исключено с математической точностью. Выполнение кубического алгоритма потребует 3. Выполнение экспоненциального алгоритма тщетно, независимо от экстраполяции роста мощи компьютеров, параллельной обработки или контактов с инопланетным суперразумом. Временная сложность такого вскрытия пропорциональна количеству возможных ключей, которое экспоненциально зависит от длины ключа. Если n длина ключа, то сложность вскрытия грубой силой равна 02n. Сложность вскрытия грубой силой при 5. В первом случае вскрытие возможно, а во втором нет. Сложность проблем Теория сложности также классифицирует и сложность самих проблем, а не только сложность конкретных алгоритмов решения проблемы. Теория рассматривает минимальное время и объем памяти, необходимые для решения самого трудного варианта проблемы на теоретическом компьютере, известном как машина Тьюринга. Машина Тьюринга представляет собой конечный автомат с бесконечной лентой памяти для чтения записи и является реалистичной моделью вычислений. Нерешаемые проблемы иногда называют трудными. Проблемы, которые могут быть решены только с помощью суперполиномиальных алгоритмов, вычислительно нерешаемы, даже при относительно малых значениях n. Даже отвлекаясь от временной сложности алгоритма, невозможно создать алгоритм решения этих проблем. Вот важнейшие из них и предполагаемые соотношения между ними Plt NPlt EXPTIME Находящийся слева класс P включает все задачи, которые можно решить за полиномиальное время. В класс NP входят все задачи, которые можно решить за полиномиальное время только на недетерминированной машине Тьюринга это вариант обычной машины Тьюринга, которая может делать предположения. Такая машина предполагает решение задачи либо удачно угадывая, либо перебирая все предположения параллельно и проверяет свое предположение за полиномиальное время. Тем не менее, никем не доказано, что Plt NP или PNP.