Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпора информатика.doc
Скачиваний:
13
Добавлен:
24.09.2019
Размер:
689.66 Кб
Скачать

25,Характеристики сложности вычисления. Временная и емкостная сложность алгоритма. Верхние и нижние оценки, асимптотические обозначения. Порядок роста.

Временная сложность – кол-во элемен-ых операций выпол входе испол-я алг, физическое время выпол алг – это величина τt, где t- кол-во элемен-ых команд, кот… τ – среднее выполнение элем-го действия.

Емкостная сложность – определяется числом ячеек памяти испльз при работах алг. Т.о. сложность алг – это кол-венная харак-ка кот говорит о том сколько времени он работает – временная сложность, либо о том какой объем памяти он испол-ет – емкостная сложность

Рассмотрим анализ алго-ма и оценки его временной сложности на задаче сортировки :

На вход: последов n-чисел <a1,a2…an>

На выход:перестановка <a1’, a2’… an’ >

a1’,<= a2’<=… an

Сортировки: с-ка обмена (пузырек); вставка; выбор; слияние; Хоара.

Сортировка вставка:

5 2 4 6 1 3

1) 2 5 4 6 1 3

2) 2 4 5 6 1 3

3) 2 4 5 6 1 3

4) 1 2 4 5 6 3

5) 1 2 3 4 5 6

Фрагмент алгор:

1. For i:=2 to n do

begin

2. m:=A[i]

3. j:=i-1 {сравнив с предыд}

4. while (j>0) and A[j]> m do

begin

5.A[j+1]:=A[j]$

6. dec(j);

end;

7. A[j+1]:=key;

End;

Оценим:

Стоимость число раз

C1 n

C2 n-1

C3 n-1

C4

C5

С6

С7 n-1

ti - колич сравнений

Оценка общей стоимости выполнения операций:

T(n)=C1n+C2(n-1)+ и т д по столбикам

Самый благоприятный случай, к-а массив уже отсортирован, тогда цикл в 4 строке завершит свою работу после 1 проверки, тогда все t[i]=1

T(n)=…=(c1+c2+c3+c4+c7)n-(c2+c3+c4+c7)

Худший случай когда t[i]=i. (от i до n)∑i=((2+n)(n-1))/2=(n2+n-2)/2T(n)=(c4/2+c5/2+c6/2)n2+((c1+c2+c3+c4)/2-c5/2-c6/2+c7)n-(c2+c3+c4+c7)

По времени работы большее значение для нас имеет худ случай:

1) зная его,точно можем сказать когда будет достигнут результат.2) часто втречается на практике3)средний случай от худ отличается незначительно

Порядок роста:

При оценке временной сложности мы сделали ряд предположений и обобщений:

1) время работы опреции обознач Сi и считаем это время всегда постоянным

2) округлили оценку до общего случая

3) кроме этого м сказать, что дан алгор имеет порядок роста n2

T(n)=θ(n2) – порядок роста

Чем меньше θ тем эффективней алгоритм

F(n)=T(n)= θ(g(n)) – эта запись обозначает, что найд такие константы

С1>0 c2>0, что 0<=C1*g(n)<=T(n)<=C2*g(n) при всех n>=n0, в этом случае говорят, что фя g(n) является ассимтотической точной оценкой

Верхняя оценка: F(n)=O(g(n)), сущ С>0, n0

0<=f(n)<=c*g(n) для любых n>=n0

Нижняя оценка: f(n)=Ω(g(n)), )), сущ С>0, n0

0<= c*g(n)<=f(n) для любых n>=n0

Теория NP- полноты: классы сложности P и NP и их взаимосвязь.

Чаще всего, прих-ся работать с алг , верменная сложность кот полиномиальна, класс таких алг обозначают буквой Р, т.е. она может быть выражена полиномом от n.

Для задач , для которых не существует полином алг, сущ экспоненциал алг вn( производительность первого алг выше)

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

Класс задач конкретное решение кот проверенное за полин время образуют класс NP – класс не детерминированных полиномов.

Отличие алг P от NP.

1) алг класса Р решает задачу за полин время, а класса NP лишь провер рашение за тоже время, т.е. для алг класса Р на входе – условия задачи и на выходе – решение задачи; для NP на входе – решение , на выходе – ответ(«да» – решение верно и «нет» – решение не верно)

Для класса Р задача дополнения также имеет полином решение т.е. класс Р замкнут относительно дополнения

Пр: прямая – верно ли что число х простое

Дополнит-ая- верночто число х не является простым

Соотношение классов(рис):

Задачи Р явл , подмножеством задач класса NP (Р = NP(одна из проблем))

СО-NP- класс задач для кот реш задач прям-й и допол-ой задачи провер за полином-ое время.