Вы находитесь на странице: 1из 6

Определите кол-во опреаций для нахождения наибольшего из 4 элементов.

1.2 Размерность задачи


Формальная постановка задачи - ее описание в виде функции, на вход которой
поступают формальне параметры, задающие вход и выходд данные
Количество операций алго напрямую зависит от размера кол-ва данных
L – количество информации, достаточное для ее формального описания.
Количество информации
A – случ событие {a1 a2 …. an} n from N
А может принимать любые из этих значений, в реззультате какого-то
эксперимента.
Ai = {A = ai}
P: A -> [0,1] вероятность
P(невозможного)=0
P(достоверное)=1
P(Ai)=Pi from (0,1)

Опр.3 Количество информауии, которой достаточно для знания того, что


событие А произошло(достаточно для разрушения неопределённости об
объекте), определяется по формуле
i(A) = logx(1/P(A))

Бит – единица змерения информации в случае, если основание логарифма


равно 2:
I(A) = [log2 1/P(a)] = [-log2 P(A)] (бит)
Размерность задачи – это минимальное количество бит, достаточное для
описания входных данных задачи.
Кол-во средней информации
h(A) = Sum(pi*i(Ai) = Sum(pi*[log2 1/pi]

NO: При решении задач будем использовать: Если на вход подаётся натур n,
будем считать что оно может быть выбрано равновероятно из {1,2….n}
NO: Если на вход поступает последовательность чисел {x1,x2….xn} будем считать
что каждое число может быть выбрано из равновероятно из x = {1,….n}

Примеры

Пример 1.
Пусть существует 15 шаров с номерами от 1 до 15. Какого мин кол-ва
информации достаточно для установления номера случайно выбранного шара?
Допущение: равновероятность.
P(A=i) = 1/15
i(Ai) = [log2 1/1/15] = [log2 15] = [log2 16] = 4

Пример 2.
Определить зависимость между L задачи и входными данными для разных
типов данных.
1) Вход n from N {1,….n} Pi = 1/n
L = i(A) = [log2 n]
L-1 < log2 n <= [log2 n] = L
 2^(L-1) < n <= 2^L

2) Вход последовательность {x1,x2….xm}, xi={1,….n}


Pi = 1/n^m
i(A) = m*[log2 n]
Два примера объясняют почему в качестве меры вероятности выбрана
логарифмич функц: при поступлении информации в n символов
информации больше ровно в m раз чем при поступлении одного символа.

Пример 4) Вход n целое число => L = [log2 (2n+1)]


Пример 5) Вход x положительные рациональные
X ={x1/x2} x1 = {1,2…n}, x2 = {0,1….n]
L = 2[log2 n]
Пример 6) Определить разными способами среднее число бит для
последовательности 1 2 1 2 3 3 3 3 1 2 3 3 3 3 1 2 3 3 1 2
I способ 1) x = {1,2,3} 2) Равновероятн выбор из x, m = 20, n = 3
P = 1/3^20 => L = [log2 3^20] = 20*2 = 40 бит
II способ P(x=1) = ¼ = 0.25
P(x=2) = 1/4
P(x=3) = 1/2

N(A) = ¼ * 1 + ¼*2 + ½*3 = 9/4

Трудоемкость алго
Трудоемкость алго - это функия от размерности задачи, которая оценивает
сверхху требуемое время для её реализации.
Память безразмерна.
RAM(РАМ) – модель вычислительного устройства.
1. Арифметические и логические операии выполняются за 1 временной
шаг(1 такт).
2. Каждое обращение к ячейке ОП требует 1 т.
3. Выполнение условного перехода требует вычисления логического
выражения одной из ветвей решения.
4. Выполение цикла подразумевает выполнение всех его итераций,
выполнение каждой итерации требует вычисления условия завершения
цикла и выполнене его тела.

NO: В некоторых случаях, при оценки ассимптотической сложности в


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

T(L) = h(высота дерева).

Вывод: для определения эффективности алгоритма,необходимо посчитать


кол-во операций, однако классы входных данных существенно влияют на эту
величину.
Обычно ищут данные, которые определяют наибольше кол-во операций т.н
худший случай(Теоритическая оценка алго). Кроме этого оценивают
среднюю эффективность работы на всех возможных наборах входных
данных(средний случай), самый сложный для вычисления(применяют
аппарат теор-вера). Лучший случай даёт мин число операций алго.

NO: Алго с наименьшей трудоёмкостью в худшем случае необязательо имеет


лучшую трудоёмкость в среднем случае.

Число операций в среднем можно можно посчитать след образом:


1. Разбить все входные данные на группы таким образом, чтобы время
работы алго для каждого класса было одинаковым. Пусть n групп.
2. Вычислить вероятности(частоты) принадлежности входных данных какой-
то группе. Pi
3. Определить число операций работы алго для кажой из групп. ti
4. Посчитать сумму произведений. Ta = sum(pi*ti)
Пример 1. Поиск x в массиве и n чисел.
{a1,a2,…an} x-?
I способ 1) ai /= aj, 2) x from A, 3) x - равновер. 4)не будем считать операции
проверки окончания условия цикла.
1-я гр: x – на первом месте => t1 = 1
2-я гр: x – 2ой элемент => t2 = 2
- - - - - - - - - - - - - - -- - - - - - - - - - -
n-я гр: x – n-ый элемент => tn = n

P(x=A(i)) = 1/n
Ta = 1/n(1+2+….+n) = (n+1)/2
II способ 1) -//- 2) x может принадлежать а может и нет 3) Считаем все операции
4) равновероятн.
A := {a1,a2…..an}
разные выражения разнымии способами.

1.3 Асимптотические оценки трудоемкости алгоритма


Меньше – быстре – лучше
Основной проблемой является определение характера роста при увеличении
аргумента. Во многих случаях достаточно их приближённых значений и именно
в этом случае важны ассимптотические методы из МА.
Пример. Как изменить гармонический ряд, чтобы получить сходящийся ряд.
Сравнение ББП(Бесконечно большие последовательности) в матанализе
f(n0 >= 0, g(n) >=0 Vn from N0
lim f(n) = +-inf
VE > 0 сущ n0: f(n)>E, Vn >n0
Lim g(n) = +inf

a > 1, 0<alpha<1
a << log a (n)<<n^alpha<<n<<n^a<<a^n<n!<<n^n
lim T(n)/f(n)

Проблеммы трудоёмкости связаны с большим кол-вом экстремумов или из-за


пилообразности функции.
3 класса ассимптотик:

1) Множество значений функций которые не превосходят c*g(n). Начиная с


некоторого номера.
f(n) = O(g(m))
Доказательсто связано с нахождением C и n0.

Сравните стиль доказательства:


См фотку.
ВЕРХНЯЯ АСИМПТОТИЧЕСКАЯ ОЦЕНКА – c*g(n)
Для любого c > 0 при n>c n^3>c*n^2
2) Нижняя асимптотичесая оценка
f ассимпотическми ограничена снизу. Ω
3) Точная асимптотическая оценка Ѳ

Оценить