
- •1.Алгебра высказываний
- •2.Приложения алгебры высказываний
- •3.Формулы. Вывод формул
- •4.Функции алгебры высказываний (булевы функции)
- •5.Метод синтеза релейно-контактных схем
- •6.Приложение в теории множеств
- •7.Аксиоматическая система в исчислении высказываний
- •8.Равносильные формулы
- •9.Алгебра Буля
- •10.Истинные и общезначимые формулы
- •11.Проблема разрешимости
- •12.Предикаты
- •13.Кванторы
- •14.Система аксиом в исчислении предикатов
- •15.Формальная арифметика
- •16.Алгоритмы и вычислимые функции
- •17.Алгоритм. Интуитивное представление
- •18.Нормальные алгоритмы Маркова
- •19.Машины Тьюринга
- •20.Частично рекурсивные функции
- •21.Класс примитивно рекурсивных функций
- •22.Сложность вычислений
- •23.Мера сложности
- •Конечный автомат
20.Частично рекурсивные функции
Частично рекурсивная функция определяется аналогично примитивно рекурсивной, только к двум операторам суперпозиции (подстановки) и примитивной рекурсии добавляется ещё третий оператор - минимизации аргумента. Оператор минимизации аргумента. Пусть f - функция от n натуральных переменных. Тогда результатом применения оператора минимума аргумента к функции f называется функция h от n - 1 переменной, задаваемая следующим определением:
h (x1,…,xn-1) = min (y), при условии f (x1,…,xn-1,y) = 0.
То есть функция h возвращает минимальное значение последнего аргумента функции f, при котором её значение равно 0.
В терминах императивного программирования — примитивно рекурсивные функции соответствуют программным блокам, в которых используется только арифметические операции, а также условный оператор и оператор арифметического цикла (оператор цикла, в котором число итераций известно на момент начала цикла). Если же программист начинает использовать оператор цикла while, в котором число итераций заранее неизвестно, и в принципе, может быть бесконечным, то он переходит в класс частично рекурсивных функций.
Частично рекурсивные функции для некоторых значений аргумента могут быть не определены, так как оператор минимизации аргумента не всегда корректно определён, так как функция f может быть не равной нулю ни при каких значениях аргументов. С точки зрения императивного программирования, результатом частично рекурсивной функции может быть не только число, но и исключение или уход в бесконечный цикл, соответствующие неопределённому значению.
21.Класс примитивно рекурсивных функций
Примитивно рекурсивная функция - это функция от натуральных аргументов с натуральными значениями, к-рую можно получить из простейших функций
s (x) = x+1, o(x) = 0, I с индексом m – внизу n – вверху (x1,…, xn) = xm
конечным числом операций суперпозиции и примитивной рекурсии.
Поскольку исходные функции являются вычислимыми, а операторы суперпозиции и примитивной рекурсии вычислимость сохраняют, множество всех П. р. ф. есть подкласс класса всех вычислимых функций. Каждая П. р. ф. задается описанием ее построения из исходных функций (примитивно рекурсивное описание) и, следовательно, класс всех П. р. ф. счетен. Практически все арифметич. функции, употребляемые в математике по конкретным поводам, являются П. р. ф., напр.:
x+y, x*y, x в степени y, остаток от деления х на y, p(х) - простое число с номером х и т. д.
22.Сложность вычислений
В реальных вычислениях важно не только то, что функция вычислима (имеется вычисляющая ее процедура), но не менее существенно – какова ее сложность вычисления (зависящая от внутренней сложности функции), а также – можно ли найти наилучшую программу для ее вычисления. Эти вопросы относятся к теории сложности вычислений.
Теорема Блюма об ускорении показывает, что существуют вычислимые функции, не имеющие «наилучшей программы». Но есть класс функций, для которых существует быстро работающая программа, вычисляющая функцию, совпадающую с данной почти всюду.
Может оказаться, что достаточно простая программа, с помощью которой решается некоторая массовая задача, может привести к большому объему вычислений. Следовательно, полезно ввести понятие сложность вычислений. К примеру, под сложностью алгоритмов теории чисел понимается количество арифметических операций (сложений, вычитаний, умножений и делений без остатка), необходимых для выполнения всех действий, предписанных алгоритмом.
Таким образом, следует различать три типа понятия «сложность»:
Сложность задания (описания) объекта.
Сложность вычисления (функционирования).
Конструктивно-энергетическая сложность.
Последнее понятие сложности связано с намерением измерять сложность посредством энергетических затрат. Очевидно, здесь просматривается инженерно-физический подход, связанный с физической реализацией, построением, созданием объекта, сложность которого определяется.