Uploaded by komori

1.Введение в анализ алгоритмов. Понятие сложности алгоритмов. Классы сложности алгоритмов.

advertisement
Анализ алгоритмов
 Задачи анализа алгоритмов
 Понятие алгоритма
 Понятие алгоритмической задачи
 Понятия временной и объемной сложности алгоритма
 Порядок роста функции и его свойства
Анализ алгоритмов
Цели
 Оценить качество алгоритмов с помощью количественных критериев
 Сравнить различные алгоритмы для решения заданной алгоритмической задачи
Алгоритм - понятное и точное предписание исполнителю совершить последовательность
действий, направленных на достижение поставленной цели.
Алгоритм имеет исходные данные (вход алгоритма) и выдает некоторый результат.
Алгоритмическая задача
 входные данные
 необходимый результат.
Алгоритм называют правильным, если на любом допустимом входе он заканчивает работу
и выдает результат, удовлетворяющий требованиям задачи.
Пример: сортировка последовательности
Решение: Алгоритм сортировки прямыми вставками
For j:=2 to N do
begin
{добавить a[j] к отcортированной части массива A[1..j-1]}
k:=A[j];
i:=j-1;
while (i>0) and (A[i]>k) do
begin
A[i+1]:=A[i];
i:=i-1
End;
A[i+1]:=k
End
Сложность алгоритмов
 Временная сложность алгоритма — количество элементарных шагов, которые он
выполняет.
 Объемная сложность алгоритма — количество оперативной памяти, необходимой
для его выполнения.
for j:=2 to N do
a
N
begin
k:=A[j]; i:=j-1;
b
N-1
while (i>0) and (A[i]>k)do
c
Σtj
begin
A[i+1]:=A[i]; i:=i-1
d
Σ(tj-1)
end;
A[i+1]:=k
e
end
N-1
Сложность сортировки
• Лучший случай (tj=1) T(n) = a1n+b1
• Худший случай (tj=j) T(n) = a2n2+b2n+c2
• Средний случай (tj=j/2) T(n) = a3n2+b3n+c3
Порядок роста функции
Оценка сверху
Оценка снизу
Классы сложности алгоритмов
Труднорешаемые задачи
 Не найден полиномиальный алгоритм.
Класс NP – задачи, проверяемые за полиномиальное время.
Примеры труднорешаемых задач
 Задача о рюкзаке
Задан набор n предметов с массами mi и стоимостями ci. Максимальная масса
рюкзака M. Выбрать подмножество предметов так, чтобы
Σ mi ≤ M и Σ сi → max.
 Задача коммивояжера
Имеется n городов, nxn матрица A = (aij) содержит попарные расстояния между
городами. Найти замкнутый маршрут, содержащий все города по одному разу, и
имеющий минимальную длину.
Download