Лекция 9. Несчетность множества арифметических функций. Вычислимые арифметические функции. Невычислимые функции. Невозможность эффективного перечисления и сравнения вычислимых функций. Арифметическая функция- функция определенная на множестве натуральных чисел и принимающая натуральные значения. Несчетность множества арифметических функций. Теорема: Множество арифметических функций n-переменных несчетно. Док-во: Для доказательства несчетности множества достаточно доказать несчетность какого-нибудь его подмножества. Рассмотрим функции одной переменной вида Fi(x). Эти функции образуют подмножество нашего множества. Докажем теорему от противного. Пусть функций одной переменной счетное множество, т.е. их можно перечислить. Тогда их можно расположить в виде бесконечной последовательности F0(x1), F1(x1), F2(x1),… Построим новую функцию G(x)=Fx(x)+1 Это так называемая диагональная функция G(0)= F0(0)+1 G(1)= F1(1)+1 G(2)= F2(2)+1 G-отлична от всех перечисленных функций хотя бы в одной точке, но как функция одной переменной должна совпасть с одной из перечисленных функций, следовательно предположение неверно, и функций одной переменной несчетное множество. А значит и всех функций n переменных – тоже несчетное множество. Вычислимые арифметические функции Арифметическая функция называется вычислимой, если существует алгоритм для ее вычисления в каждой точке. В силу тезиса Тьюринга это означает, что функция вычислима тогда и только тогда, когда существует машина Тьюринга, ее вычисляющая. Счетность множества вычислимых арифметических функций Теорема: Вычислимых функций счетное множество. Док-во (от противного) Так как каждой вычислимой арифметической функции соответствует хотя бы одна машина Тьюринга, а машин Тьюринга - 0, то значит вычислимых функций никак не больше чем 0 . С другой стороны, подмножеством вычислимых арифметических функций являются например функции вида f(x)=n, где n – натуральное число. Поскольку натуральных чисел 0 , то вычислимых арифметических функций никак не меньше чем множество вычислимых арифметических чисел счетно. 0. Значит Невозможность эффективного перечисления ВАФ. Теорема Множество вычислимых арифметических функций n-переменных не поддается эффективному перечислению. Док-во: Допустим, что множество вычислимых арифметических функций n-переменных эффективно перечислимо. Тогда существует алгоритм, по которому их можно перечислить. Применим этот алгоритм. Получим последовательность F0(x1,…,xn), F1(x1,…,xn),.. Fn(x1,…,xn),.. Построим диагональную функцию: Fx1(x1,…,xn)+1, при x1=…=xn G(x1,…,xn)= 0, в противном случае Процедура вычисления G. Для любых значений x,y,z мы можем сначала провести операцию сравнения, и затем, если x=y=z, отыскать функцию Fx. Далее применить к ней алгоритм вычисления функции Fx(x,x,x) в заданной точке. Такой алгоритм существует в силу вычислимости функций вида Fi(x1,…,xn). Прибавление к результату вычисления единички есть тривиальная арифметическая операция. Т.о. видно, что эта диагональная функция будет тоже арифметической и тоже вычислимой. Пример: Пусть n=3 G(0,0,0) =F0(0,0,0)+1 G(0,0,1) =0 G(0,1,0) =0 G(1,1,1) =F1(1,1,1)+1 G(1,1,2) =0 Раз построенная функция принадлежит к множеству вычислимых арифметических функций, то она должна быть среди ранее эффективно перечисленных функций, но по построению она не может быть среди них, так как от каждой функции она отличается хотя бы в одной точке. Получили противоречие, следовательно вычислимые функции нельзя эффективно перечислить. Невычислимые функции. Невычислимая функция одной переменной. Тьюринга Определим функцию F(x) следующим образом Пусть T1 T2 … Tx - машины 1, если Tx остановится на чистой ленте F(x)= 0, в противном случае Эта функция везде определена, но алгоритма остановки машины Тьюринга на чистой ленте нет. Невозможность эффективного распознавания функций-констант среди вычислимых арифметических функций. Эффективным распознаванием функций называется процедура, позволяющая при помощи некоторого алгоритма определить, относится ли данная функция к рассматриваемому классу. Пусть машина Т вычисляет функцию F(x). Если существует такая процедура эффективного распознавания – значит существует и машина Тьюринга, ее реализующая. В ходе своей работы машина должна поочередно подставлять в качестве входных значений натуральные числа из области определенности функции и сравнивать результат с 0. Поскольку натуральных чисел – счетнобесконечно мн-во, процесс сравнения никогда не завершится, а значит однозначного ответа дать нельзя. Невозможность эффективного арифметических функций. сравнения вычислимых Эффективным сравнением функций называется процедура, позволяющая при помощи некоторого алгоритма определить, совпадают ли значения функций во всех точках определенности. Теорема Вычислимые сравнению. арифметические функции не поддаются эффективному Док-во: Пусть имеются две вычислимые арифметические функции f1(x) и f2(x). Построим функцию g(x) = |f1(x) - f2(x)|. Данная функция является арифметической (т.к. определена на всем множестве натуральных чисел) и вычислимой (в силу вычислимости f1(x) и f2(x). Функция g(x) является функцией константой-ноль, если сравниваемые функции равны. Т.о. если существует алгоритм сравнения двух функций, то значит и существует алгоритм распознавания функции-константы ноль среди всех вычислимых функций, что противоречит доказанной ранее теореме.