- •1Язык логики высказываний. Простые высказывания, сложные высказывания, логические связки. Роль связок в естественном языке.
- •2Синтаксис языка логики высказываний: алфавит и правила построения формул. Семантика языка логики высказываний, интерпретация формул.
- •3Свойства формул: общезначимость, выполнимость, противоречивость, опровержимость.
- •4Основные схемы логически правильных рассуждений.
- •5Основные тавтологии, выражающие свойства логических операций.
- •12Алгебра логики. Функции алгебры логики. K-значные логики.
- •18Булева алгебра логических операций. Основные эквивалентные соотношения (законы) в булевой алгебре.
- •19Разложение функций по переменным. Совершенная дизъюнктивная нормальная форма.
- •26Теорема дедукции. Связь выводимости и истинности формул в логике высказываний. Выполнимые и общезначимые формулы.
- •27Понятие логического следования, принцип дедукции. Правило резолюций, метод резолюций. Стратегии метода резолюций.
- •29Алгоритм построения резолюций для множества фраз Хорна.
- •30Свойства формализованного счисления высказываний.
- •32Синтаксис языка логики предикатов: алфавит, термы, атомы, правила построения формул.
- •33Кванторные операции. Свободные и связанные вхождения переменных. Логический квадрат.
- •34Численные кванторы. Ограниченные кванторы.
- •35Множество истинности предикатов. Равносильность и следование предикатов.
- •49Принцип полной дизъюнкции в предикатной форме
- •50Метод (полной) математической индукции
- •54. Основные свойства формальных систем: непротиворечивость, полнота, разрешимость. Полнота и непротиворечивость исчисления высказываний. Полнота и непротиворечивость исчисления предикатов.
- •Предпосылки возникновения теории алгоритмов. Основные требования к алгоритмам. Подходы к уточнению понятия «алгоритм». Три основных типа универсальных алгоритмических моделей.
- •Машина Тьюринга. Конфигурация машины Тьюринга. Функция, правильно вычислимая по Тьюрингу. Эквивалентные машины Тьюринга. Композиция машин Тьюринга.
- •70Машина Поста.
- •Операторы подстановки и примитивной рекурсии определяются следующим образом:
- •72Нормальные алгорифмы Маркова. Нормально вычислимые функции и принцип нормализации Маркова.
- •76Сложность алгоритмов. Меры сложности алгоритмов. Сложность задачи. Массовые и индивидуальные задачи.
- •77Асимптотическая сложность, порядок сложности. Сложность в среднем и в худшем случае.
- •3) Метод прямого определения среднего времени
- •80Сложность и кодирование. Сложность и архитектура машины.
- •81Полиномиальный алгоритм. Легко- и трудноразрешимые задачи, классы задач p и np.
- •82Полиномиальная сводимость и np-полнота. Np-полные задачи. Примеры np-полных задач. Теорема Кука. Примеры практически значимых np-полных задач.
3) Метод прямого определения среднего времени
так же проводится совокупный анализ по трудоемкости – определяется FA(N), после чего на основе прямого эксперимента для различных значений Nэ определяется среднее время работы данной программы Tэ и на основе известной функции трудоемкости рассчитывается среднее время на обобщенную элементарную операцию, порождаемое данным алгоритмом, компилятором и компьютером – `t¯а. Эти данные могут быть (в предположении об устойчивости среднего времени по N) интерполированы или экстраполированы на другие значения размерности задачи следующим образом: `tа= Tэ(Nэ) / FA(Nэ), T(N) = `tа * FA(N).
80Сложность и кодирование. Сложность и архитектура машины.
Разные представления одной задачи могут отличаться и экспоненциально.
Например, представления целых чисел в унарном коде и в любой позиционной системе счисления.
В дальнейшем будем считать, что коды одной и той же задачи при различных разумных схемах кодирования различаются по длине не более чем полиномиально. Иначе говоря, если n — длина входного слова, кодирующего данные a при некоторой схеме кодирования, то при любой другой разумной схеме кодирования длина кода данных a ограничена некоторым полиномом от n.
Зависимость сложности от архитектуры машины
Пример: задача о распознавании палиндрома
На обычной (одноленточной) машине Тьюринга алгоритм имеет сложность О(n2).
Но уже на двухленточной машине эта задача решается в три просмотра слова, т. е. со сложностью порядка3n
оценки сложности алгоритмов на разных машинах отличаются полиномиально.
То же самое можно утверждать и для задач, поскольку сложность задачи — это сложность самого эффективного алгоритма, который ее решает.
Перенос задачи на детерминированную машину любой архитектуры изменяет ее сложность не более чем полиномиально.
Такой перенос может повлечь за собой смену схемы кодирования. Однако, что эта смена изменит длину слова не более чем полиномиально.
81Полиномиальный алгоритм. Легко- и трудноразрешимые задачи, классы задач p и np.
Функцию
f(n)
будем называть полиномиальной,
если f(n)
~ р(n),
где р(n)
— некоторый полином от n
(неважно, какой степени).
Алгоритм
А называется
полиномиальным,
если его
временная сложность ТА(п)
— полиномиальная
функция. Полином
от n переменных — это конечная формальная
сумма вида
,
где
набор из целых неотрицательных чисел
(называется мультииндекс), cI
— число (называемое «коэффициент
многочлена»), зависящее только от
мультииндекса I.
Эта характеристика алгоритма не зависит ни от архитектуры машины, ни от выбранной схемы кодирования задачи.
Класс самых легких задач включает задачи, временная функция сложности которых имеет полиномиальный характер. Напомним, что полиномиальной является функция y, в которую аргумент x входит в качестве основания степени. Они образуют класс так называемых P-задач
Классом P называют множество задач, для которых существуют «быстрые» алгоритмы решения (время работы которых полиномиально зависит от размера входных данных).
Класс трудноразрешимых задач включает задачи с временная функция сложности, имеющими экспоненциальный характер, т.е. с функциями, в которых аргумент выступает в роли показателя степени. Такие задачи образуют класс NP-задач.
В теории алгоритмов классом NP (от англ. non-deterministic polynomial) называют множество алгоритмов, время работы которых существенно зависит от размера входных данных; в то же время, если предоставить алгоритму некоторые дополнительные сведения, то он сможет достаточно быстро (за время, не превосходящее многочлена от размера данных) решить задачу.
