- •Алгоритмы Конечные автоматы
- •НДКА
- •НДКА
- •НДКА
- •НДКА
- •НДКА
- •Алгоритмы Конечные автоматы
- •Переход от НДКА к ДКА
- •Переход от НДКА к ДКА
- •Переход от НДКА к ДКА
- •Переход от НДКА к ДКА
- •Алгоритмы
- •Переход от НДКА к ДКА Пр.
- •Переход от НДКА к ДКА
- •Переход от НДКА к ДКА
- •Переход от НДКА к ДКА
- •Переход от НДКА к ДКА
- •Переход от НДКА к ДКА
- •Рекурсивные функции
- •Алгоритмы
- •Алгоритмы
- •Алгоритмы
- •Рекурсивные функции
- •Алгоритмы
- •Алгоритмы
- •Алгоритмы
- •Алгоритмы
- •Алгоритмы
- •Cложность вычислений.
- •Cложность вычислений.
- •Cложность вычислений. Асимптотические оценки.
- •Cложность вычислений. Асимптотические оценки.
- •Cложность вычислений. Асимптотические оценки.
- •Cложность вычислений. Асимптотические оценки.
- •Cложность вычислений. Асимптотические оценки.
- •Cложность вычислений. Асимптотические оценки.
- •Cложность вычислений. Асимптотические оценки.
- •Cложность вычислений. Асимптотические оценки.
- •Cложность вычислений. Асимптотические оценки.
- •Cложность вычислений.
- •Cложность вычислений. Асимптотические оценки.
- •Cложность вычислений. Асимптотические оценки.
- •Cложность вычислений.
- •Cложность вычислений.
- •Cложность вычислений.
- •Cложность вычислений.
- •Оценка асмптотической временной сложности
- •Cложность вычислений.
- •сложность алгоритмов
- •Алгоритмы
- •Алгоритмы
- •Алгоритмы
- •Алгоритмы
- •Выводы по алгоритмам
- •Выводы по алгоритмам
- •Жадные алгоритмы
- •Жадные алгоритмы
- •Жадные алгоритмы
- •Жадные алгоритмы
- •Жадные алгоритмы
Алгоритмы
Все функции , которые можно получить из базисных функций за конечное число шагов только с помощью трех указанных механизмов (операторов называются частично рекурсивными.
Если функция получена без механизма минимизации , то в таком случае она называется примитивно рекурсивной.
Если функция является частично- рекурсивной и получается всюду определенная , то она называется общерекурсивная
Алгоритмы
Из простейших функций можно строить новые функции
напр. используем принцип суперпозиции и функцию следования, получим
s(s (x) )= (x+1) +1 =x+2
Алгоритмы
Итак имеем три механизма (оператора ) с помощью которых можно из базисных функций построить более сложные функции :
1.Принцип суперпозиции
2.Принцип примитивной рекурсии.
3.Принцип минимизации
Рекурсивные функции
Операторы получения более сложных функций:
1.Введение вспомагательной фиктивной переменной
2.Принцип суперпозиции
Ф(X)= f (g(X)) 3. Итерация Ф(0)=С -базис
Ф(x+1)=f (x, Ф(x))- реккурентное (возвратное )соотношение, шаг индукции.
Алгоритмы
Пр
Рассмотрим пример получения функций , полученную с помощью оператора минимизации.
d(x, k)=μ z[ k+z=x]=μ z[s( (x,k,z), (x, k, z))=(x,k,z) Вычислим напр.
d(7,2)
Т.е. нам напр. надо узнать число шагов d , которое должно быть минимально
Пусть k=2 и будем вычислять формулу с z=0
z=0 , |
2+0=2 7 |
z=1 , |
2+1=3 7 |
z=2, |
2+2=4 7 |
Алгоритмы
z=3 , 2+3=5 7 z=4 , 2+4=6 7 z=5 , 2+5=7 Т.о.
d(7,2)=5
Алгоритмы
Вычислимость по Тьюрингу частично рекурсивных функций.
Если функция f(x,k) правильно вычислима на машине Тьюринга, то и функция φ(x)=
μz[f(x,k)=0] , получающаяся с помощью оператора минимизации из функции f(x, k), также правильно вычислима на машине Тьюринга.
Алгоритмы
Любую примитивно-рекурсивную функцию можно вычислить с помощью цикла с использованием оператора for.(т.к. верхнюю границу можно указать заранее).
Оператор минимизации позволяет определить функции , которые нельзя вычислить за заранее ограниченное число итераций, для их вычисления требуется цикл в форме while.
Пр.
Введение фиктивных переменных.
Если g(x1,x3) -примитивно-рекурсивная функция и f(x1,x2,x3) =g(x1,x3), то f(x1,x2,x3)- примитивно- рекурсивная функция.
Алгоритмы
Пр.
Сложение двух чисел
Эта функция является ощерекурсивной в силу примитивной рекурсии
Sum (x,0)=x
Sum (x, z+1)=S(Sum(x,z))=Sum(x,z)+1 Пр.
Перестановка переменных
Если g(x1,x2)- примитивно-рекурсивная функция и f(x2,x1)=g(x1,x2), то f также примитивно- рекурсивная функция.
