Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Algoritmy_new.docx
Скачиваний:
74
Добавлен:
30.03.2015
Размер:
142.04 Кб
Скачать

4. Анализ сложности рекурсивных алгоритмов. Примеры.

Алг(х)

if(условие)

thenрекурсивная ветка

elseтривиальная ветка

рекурсивная ветка – алг(y), гдеy=f(x)

вызов + доп. операции

Пусть tα(x) – сложность алгоритма на входных данныхx.

Пусть тривиальная ветка выполняется при входных данных s:

Пример:

n!=n(n-1)!

function F(n: integer): integer;

begin

if n>1

then F:=n* F(n-1)

else F:=1;

end;

;

s=1;

;

Ответ:

6. Решение рекуррентных соотношений вида T(n)=aT(n/d)+bnk, T(1)=C0 (без вывода). Сложность рекурсивного алгоритма быстрой сортировки.

, вместоперейдем к

Быстрая сортировка

procedure Qsort (m: mas; n, l, r: integer);

var mid, t, i, j: unteger;

begin

i:=l; j:=r;

mid:=m[(l+r) div 2];

while i<=j do

begin

while m[i]<mid

do i:=i+1;

while m[j]>mid

do j:=j-1;

if i<=j then

begin

t:=m[i];

m[i]:=m[j];

m[j]:=t;

i:=i+1; j:=j-1;

end;

end;

if j>l then Qsort(m,n,l,j);

if i<r then Qsort(m,n,i,r);

end;

-------------------------------------

1. нижняя оценка сложности

  1. Недетерминированная машина Тьюринга. Класс NP (два определения).

Машина Тьюринга состоит:

  • Бесконечная лента

  • Головка, которая двигается по ленте

  • Программа МТ

Каждой паре q(i)a(j) ставится в соответствииq(k)a(s)d(r) (d- направление), причем однозначно (свойство детерминированности)

НМТ: каждой паре q(i)a(j) ставится в соответствии множество троек:

Заранее невозможно сказать по какому правилу пойдет. В каждой момент некоторым образом выбирается одна тройка из множества.

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

Механизм должен показать цепочку, чтобы был правильный результат.

Определение класса NP:

  1. Задача Т принадлежит классу NP, если Т может быть решена за полиномиальное время на НМТ.

NP– недетерминированный, полиномиальное время.

  1. Задача T, если ее можно подставить в виде:, гдеq() – полином;R(x,y);y- дополнительные данные.

Пример задач, принадлежащих классу NP:

  • Задача коммивояжера

  • Задача «об упаковке в контейнеры»

9. Понятие полиномиальной сводимости. Класс npc. Примеры np-полных задач.

Пусть есть задача А с входными данными из множества х1 и выходными данными из множества у1 и есть задача В, которая переводит х2 в у2

Если существует задачи Т1: х1->x2;T2:y2->y1, такие что:

  1. Для любых х x1T2(B(T1(x)))=A(x)

  2. T1,T2, то говорят, что задача А полиноминально сводима к задаче В:

Свойства полиномиальной сводимости:

  1. Если Ви, то А. Доказательство из определения п.1

  2. Если А, то ВР. Доказательство от противного.

  3. Если Bи, то А. Верно обратное, доказательство аналогично.

  4. Если ,, то

Пример: НОК (a,b)

Задача:

  • А – нахождение НОК

  • В – нахождение НОД

  • Т1- тождественное преобразование

  • Т2 – вычисление по формуле

Класс NPC

Задача Т , если:

  • T

  • Для любых T’

P<>NP

Если Р=NP=NPC

Принадлежность задачи к Р: алгоритм, решающий эту задачу за полиномиальное время.

Принадлежность к классу NPC:

Утверждение: Пусть есть задача T0, если задачаTи задача, то задачаT

T0 =>=> T

Доказательство принадлежности к NP:

  1. Из определения

  2. Строго говоря, понятие класса NPвводится только для задач принятия решений

Примеры NP-полных задач:

  • Задача о минимальном вершинном покрытии

  • Задача о рюкзаке

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]