- •Формулы логики высказываний и логики предикатов
- •Равносильность в логике высказываний и влогике предикатов
- •Тавтологии
- •Понятие предиката. Кванторы
- •Нормальные формулы логики предикатов
- •Языки. Аксиомы. Правила вывода
- •Вывод. Вывод из гипотез
- •Теорема Дедукции. Следствия
- •Примеры выводимых формул
- •Непротиворечивость ив
- •Полнота ив
- •Правило суммы, произведения
- •Размещения и сочетания
- •Бином Ньютона
- •Разбиение. Полиномиальная теорема
- •Булевы функции
- •Формулы. Равносильность формул
- •Метод рекуррентных соотношений
- •Решение линейных рекуррентных соотношений
- •Понятие производящей функции
- •Интуитивное понятие алгоритма
- •Машины Тьюринга. Вычислимые функции
- •Рекурсивные функции
- •Алгоритмически неразрешимые проблемы
- •Нумерации машин Тьюринга
- •Критерии эффективности алгоритма
- •Полиномиальные и неполиномиальные алгоритмы
- •Основные понятия теории графов
- •Маршруты, цепи, циклы
- •Виды графов
- •Способы задания графов
- •Эйлеровы графы
- •Геометрическая реализация графов
- •Деревья. Лес.
- •Остовное дерево
- •Важнейшие числовые характеристики графов
- •Основные понятия теории кодирования
- •Критерий однозначности алфавитного кодирования
- •Алгоритм распознавания однозначности кодирования
- •Коды Хэмминга
- •Понятие множества
- •Операции над множествами. Свойства
- •Формулы включения и исключения.
-
Критерии эффективности алгоритма
При реш. практ-их задач выбор подходящего алг. вызывает определённые трудности. При этом имеются разлч-ые критерии для оценки эффект-ти алг. Мы будем рассматривать 2 осн. Критерия:
1) Временная сложность – это время выполн-ия алг., как функция от размера задачи.
2)Ёмкостносная сложность – это количество внутрн памяти, как ф-ция от размера задачи.
Df.1.: Размер задачи - это некоторое число, кот-е характеризует данную конкретную задачу. Например, размером задачи о графах может быть кол-во рёбер данного графа. Размером задачи о перемножении матриц может быть размер наибольшей матрицы и т.д.
Df.2.: Временная сложность – количество шагов, которые надо выполнить алгоритму для достижения результата на идеализированном компьютере. В качестве такого идеализированного компьютера можно рассматривать МТ. Если размер задачи есть n, то временную сложность обозначают T(n). Так, например, если T(n)=сn2, то это есть квадратная временная сложность. При этом под T(n) обычно понимают время выполнения в наихудшем случае, т.е. как наибольшее время по всем входным данным длины n. Кроме того, рассматривают ещё Тсред.(n) как среднее статистическое время выполнения по всем входным данным длины n. Нахождение Тсред.(n) является трудно разрешимой математической задачей. Замечание: при исследовании временной сложности большую роль играет скорость роста функции. Df 5.14:Пусть f(n) и g(n)-функции, определённое на множестве целых положительных чисел и принимающие действительные положительные значения. Тогда: 1) f(n)=O(g(n)), если имеются такие константы 0 и n0, что для n≥n0 выполняется условие f(n)≤cgn, 2)f(n)=Ω(g(n)), если имеются такие константы с и n0, что для каждого n≥n0 выполняется условие f(n)≥cgn. 3)f(n)=(g(n)), если имеются такие константы с1, с2, n0, что для каждого n≥n0 выполняется условие c1g(n)≤f(n)≤c2g(n). Замечание: Из записи T(n)=O(g(n)) следует, что ф-ция g(n) является верхней границей скорости роста T(n), а из записи T(n)= Ω(g(n)) => g(n) является нижней границей скорости роста T(n). При этом O(g(n)) определяет в конечном итоге размеры задач, которые можно решать этим алгоритмам. Замечание: В связи с ростом быстродействия компьютеров можно подумать, что значение и роль эффективных алгоритмов будет уменьшаться. Однако, наблюдается прямопротивоположная тенденция. Пусть, например, имеются 4 алгоритма А1, А2, А3, А4 со следующими характеристиками:
Алг. |
Временная сложность |
Размер наиболш задачи разреш-ой на современ.компе |
Разм наиб. зад, разр-ой на совр. компе в 10 раз быстрее |
А1 |
n |
S1 |
10S1 |
А2 |
n2 |
S2 |
3,16S2 |
А3 |
n3 |
S3 |
2,15S3 |
А4 |
2n |
S4 |
1,3S4 |
Из таблицы видно, что увеличение быстродействия компьютера в 10 раз для полиномиальных алгоритмов А1, А2, А3, А4 даёт выигрыш в разы, а для экспоненциального алгоритма А4 только на 30%. Замечание: Иногда мультипликативная константа алгоритма А с меньшей скоростью роста временной сложности может оказаться намного больше, чем такая же мультипликативная константа алгоритма В с большей степенью порядка пустосложностью. Например, если алгоритм А имеет временную сложность 1000n, а алгоритм В – 2n2, то худший алгоритм В окажется лучшим для задач с размером n≤22. Поэтому бывает так, что худшие алгоритмы оказываются более эффективными для большинства задач реально встречавшимися на практике. Замечание: известны случаи, когда более эффективные алгоритмы требуют значительно больших объёмов памяти, чем менее эффективные. Это обстоятельство сводит на нет все преимущества эффективного алгоритма.