Similar presentations:
Элементы теории алгоритмов
1. Элементы теории алгоритмов
2.
Важные математические проблемы имеют вид:для некоторого данного множества X найти
эффективную процедуру (т.е. алгоритм), с помощью
которой можно для каждого элемента x этого
множества X определить за конечное число шагов,
будет этот элемент обладать некоторым данным
свойством P или нет (т.е.
или
).
Решением такой проблемы является построение и
обоснование искомого алгоритма.
Массовые задачи – задачи распознавания и
оптимизации.
3.
Примеры массовых задач:СУМ – задача сложения целых чисел.
ДЕЛ – задача делимости целых чисел.
НОД – задача нахождения наибольшего
общего делителя двух целых чисел.
ВЫП (SАТ) – задача выполнимости
формулы алгебры высказываний.
ГП – задача существования гамильтонова
пути.
НМ – задача о независимом множествею
4.
Под алгоритмом понимается совокупностьинструкций о том, как решить некоторую
массовую задачу.
Общие свойства алгоритма:
1)дискретность алгоритма;
2)детерминированность алгоритма;
3)элементарность шагов алгоритма;
4)массовость алгоритма.
Так как конструктивные объекты можно
кодировать словами конечного алфавита Σ
(например, состоящего из двоичных символов 0 и
1), то алгоритм моделируется устройством,
перерабатывающим слова алфавита Σ.
5.
Понятие алгоритма имеет смысл лишь в томслучае, если множество его возможных исходных
данных
является
потенциально
обозримым
множеством, которое состоит из последовательно
конструируемых объектов.
Примеры: N и Σ* .
Далее при изучении алгоритмов A будем
предполагать, что множество рассматриваемых
объектов X, область применения алгоритма DA и
множество возможных значений алгоритма Y
являются потенциально обозримым бесконечными
множествами последовательно конструируемых
объектов.
Аксиома: для любых двух таких множеств X,Y
существует вычислимая биекция X на Y.
6.
Тезис Черча:класс задач, решаемых в любой формальной
модели алгоритма, совпадает с классом задач,
которые
могут
эффективными
быть
решены
интуитивно
вычислениями,
алгоритмическими методами.
т.е.
7.
Алгоритмическинеразрешимые
задачи
и
необходимость
строго
математического
определения алгоритма.
Модели алгоритма:
1) понятие рекурсивной функции, введенное Клини
в 1936 г.,
2) понятие машины Тьюринга, введенное Постом и
Тьюрингом в 1936 г.,
3) понятие нормального алгорифма, введенное
Марковым в 1954 г.,
4) понятии формальной грамматики, введенное
Хомским в 1957 г.
8. Рекурсивные функции
9.
Пусть N – множество неотрицательныхцелых чисел и F – множество всех частичных
функций нескольких числовых переменных из
N со значениями в N .
0-функция, функция следования и n–местная
функция проекции на m–ую координату
определяются по формулам:
o( x) 0, s( x) x 1 и I mn ( x1 ,..., xn ) xm
для любых значений x, x1 ,..., xn N .
n
o
(x
)
I
s
(x
)
Функции
,
, m называются также
простейшими примитивно рекурсивными
функциями.
10.
На множестве F рассмотрим следующихдва оператора:
оператор суперпозиции
соответствие
каждой
переменных
f F и m
g1 ,..., g m F
переменных
переменных h S ( f , g1 ,..., g m ) ,
равенством:
S
ставит в
функции
m
функциям n
функцию
n
определяемую
h( x1 ,..., xn ) f ( g1 ( x1 ,..., xn ),..., g m ( x1 ,..., xn )) ;
11.
оператор примитивной рекурсии Rставит в соответствие каждой функции п+2
переменных f F и функции n переменных
g F функцию n+1 переменных h R( f , g ) ,
удовлетворяющую
следующей
схеме
примитивной рекурсии:
h( x1 ,..., xn ,0) g ( x1 ,..., xn ) ,
h( x1 ,..., xn , y 1) f ( x1 ,..., xn , y, h( x1 ,..., xn , y )) .
В частности, при п = 0 схема примитивной
рекурсии имеет следующий вид:
h(0) a ,
h( y 1) f ( y, h( y )) ,
где а — постоянная 0-местная функция, равная
числу а.
12.
Определение.Функция f F называется примитивно
рекурсивной (сокращенно ПРФ), если существует последовательность функций f1 ,..., f n F,
в которой f n f и всякая функция f i является
простейшей
ПРФ
или
получается
из
предыдущих функций с помощью оператора
суперпозиции S или оператора примитивной
рекурсии R.
13.
Примеры.1. Функция сложения х+у примитивно
рекурсивна в силу схемы примитивной
рекурсии:
x 0 I11 ( x) ,
x ( y 1) s( x y) .
2. Функция умножения x y примитивно
рекурсивна в силу схемы примитивной
рекурсии:
x 0 o( x ) ,
x ( y 1) x y x .
14.
На множестве F всех частичных функцийнескольких числовых переменных рассмотрим
еще один оператор , который называется
оператором ограниченной минимизации:
каждой функции m переменных g F оператор
ставит в соответствие функцию m
переменных f= (g), определяемую равенством:
f ( x1 ,..., xm ) y ( g1 ( x1 ,..., xm 1 , y) xm ) ,
где правая часть равенства обозначает
наименьшее
решение
уравнения
g1 ( x1 ,..., xm 1 , y ) xm относительно y.
15.
Определение.Функция
f F
называется
частично рекурсивной (сокращенно ЧРФ), если
существует последовательность функций f1 ,..., f n F,
в которой f n f и всякая функция f i является
простейшей ПРФ или получается из предыдущих
функций с помощью оператора суперпозиции S,
оператора примитивной рекурсии R или оператора
ограниченной минимизации .
При этом частично рекурсивная функция
называется рекурсивной (сокращенно РФ), если она
всюду определена.
16.
Множества всех рекурсивных, частичнорекурсивных и примитивно рекурсивных
функций
из
множества
F
обозначим
соответственно FРФ, FЧРФ и FПРФ .
Из определений
множеств:
следуют
включения
FПРФ FРФ FЧРФ .
Известно, что все включения являются
собственными, т.е.
FПРФ FРФ FЧРФ .
17.
Понятия рекурсивной функции и частичнорекурсивной функции естественно переносятся
на словарные функции и языки над любым
конечным алфавитом A {a0 ,..., an 1} с помощью
биекции множества A* на множество N,
которая определяется по правилам:
( ) 0 и (w) ik n k ik 1n k 1 ... i1n i0
для непустого слова w ai ai ...ai ai .
Такая
биекция
называется
лексикографической функцией для алфавита A.
k
k 1
1
0
18.
Лексикографическая функция естественнопродолжается на множество всех частичных
n
f
:
A
A
словарных функций
по правилу:
( f ) есть числовая функция из N n со
значениями в N , которая определяется
уравнением
( f ) x1 ,..., xn f 1 ( x1 ),..., 1 ( xn )
n
x
,...,
x
N .
для значений 1
n
19.
Определение.f : A
n
A
Частичная
словарная
функция
называется частично рекурсивной (соответственно,
рекурсивной или примитивно рекурсивной), если
числовая функция ( f ) частично рекурсивна
(соответственно, рекурсивна или примитивно
рекурсивна).