Реферат: Случайность в арифметике

Невозможно доказать, конечное или бесконечное число решений имеет каждое уравнение из семейства алгебраических уравнений: ответ варьирует случайным образом, и, следовательно, не может быть найден с помощью математического рассуждения

Грегори Дж.Чейтин

Что может быть бесспорнее того факта, что 2 плюс 2 равняется 4? Со времён древних греков математики считали, что более несомненной вещи, чем доказанная теорема, не сыскать. Действительно, математические утверждения, истинность которых может быть доказана, часто считались более надёжным основанием для системы мышления, чем любой моральный или даже физический принцип. Немецкий философ и математик XVIIвека Готфрид Вильгельм Лейбниц считал возможным создать «исчисление» рассуждений, которое когда-нибудь позволит улаживать все споры с помощью слов: «Давайте вычислим, господа!». К началу нашего столетия прогресс в разработке символической логики дал основание немецкому математику Давиду Гильберту заявить, что все математические вопросы в принципе разрешимы, и провозгласить окончательную кодификацию методов математического рассуждения.

В 30-е годы нашего столетия этот оптимизм совершенно развеялся под влиянием удивительных и глубоких открытий К.Гёделя и А.Тьюринга. Гёдель доказал, что не существует системы аксиом и методов рассуждения, охватывающей все математические свойства целых положительных чисел. Позднее Тьюринг облёк остроумные, но сложные гёделевы доказательства в более понятную форму. Как показал Тьюринг, гёделева теорема о неполноте эквивалентна утверждению, что не существует общего метода для систематического принятия решения о том, остановится ли когда-нибудь компьютерная программа, т.е. приведёт ли она когда-нибудь компьютер к остановке. Разумеется, если некоторая конкретная программа приводит к остановке компьютера, этот факт легко может быть доказан непосредственным выполнением этой программы. Трудность заключается в доказательстве того, что произвольно взятая программа не останавливается.

Недавно мне удалось сделать ещё один шаг по пути, намеченному Гёделем и Тьюрингом. Преобразовав некоторую конкретную компьютерную программу в алгебраическое уравнение такого типа, который был знаком ещё древним грекам, я показал, что область чистой математики, известная под названием теории чисел, содержит в себе случайность. Это исследование демонстрирует, говоря словами Эйнштейна, что Бог порой использует целые числа для игры в кости.

Полученный результат, входящий составной частью в то, что было названо алгоритмической теорией информации, не является причиной для пессимизма; он не вносит в математику анархию. (В самом деле, большинство математиков продолжают работать над своими проблемами, как и раньше.) Он означает лишь, что в некоторых ситуациях должны применяться математические законы особого рода — статистические. Подобно тому как физика не в состоянии предсказать, в какой именно момент распадётся данный атом радиоактивного вещества, математика порой бессильна дать ответ на некоторые вопросы. Однако физики могут надёжно предсказать средние значения физических величин, отнесённые к большому количеству атомов. Математики в некоторых случаях должны, вероятно, ограничиваться таким же подходом.

Моя работа служит естественным продолжением работы Тьюринга, однако если Тьюринг анализировал, остановится или нет произвольная программа, я рассматриваю вероятность того, что универсальный компьютер прекратит работу, если его программа выбрана совершенно случайно. Что я имею в виду, говоря «выбрана совершенно случайно»? Поскольку любая программа может быть сведена к последовательности двоичных разрядов — битов (каждый из которых может принимать значение 0 или 1), «считываемых» и «интерпретируемых» компьютером, смысл упомянутой фразы состоит в том, что совершенно случайная программа, состоящая из n битов, эквивалентна результату n бросаний монеты (где «орёл» представляется нулём, а «решка» — единицей, или наоборот).

Вероятность того, что такая совершенно случайная программа остановится (обозначим эту вероятность символом Ω), выражается вещественным числом, заключённым между 0 и 1. (Утверждение Ω=0 будет означать, что никакая случайная программа не остановится, a Ω=1 — что всякая случайная программа остановится. Если мы имеем дело с универсальным компьютером, ни одно из этих крайних значений не реализуемо.) Поскольку Ω — вещественное число, полностью представить его можно лишь как бесконечную последовательность разрядов. В двоичной системе это последовательность нулей и единиц.

Наверное, самым интересным свойством этой бесконечной цепочки является то, что она алгоритмически случайна: она не может быть сжата в программу (рассматриваемую как цепочка битов) длиной, меньшей чем она сама. Это определение случайности, играющее основную роль в алгоритмической теории информации, было независимо сформулировано в середине 60-х годов советским академиком А.Н.Колмогоровым и мною. (Впоследствии это определение мне пришлось подправить.)

Основная идея такого определения проста. Некоторые последовательности битов могут быть сжаты в программы, более короткие, чем сами эти последовательности, потому что они построены по какой-либо схеме или подчиняются какому-либо правилу. Например, 200-битовая последовательность вида 0101010101... может быть сильно сжата, если её задать как «100 повторений пары 01». Безусловно, такие последовательности не являются случайными. С другой стороны, 200-битовая последовательность, порождённая бросанием монеты, не может быть сжата, поскольку для этого процесса, вообще говоря, отсутствует закономерность в чередовании нулей и единиц; это совершенно случайная последовательность.

Из всех возможных последовательностей битов большинство несжимаемы и, следовательно, случайны. Поскольку последовательность битов можно рассматривать как представление по основанию 2 любого вещественного числа (если допускать бесконечные последовательности), отсюда вытекает, что большинство вещественных чисел на самом деле случайны. Нетрудно показать, что алгоритмически случайное число, такое, как Ω, проявляет обычные статистические свойства, связанные в нашем представлении со случайностью. Одним из таких свойств является нормальность: каждый возможный разряд появляется в числе с равной частотой. Если речь идёт о двоичном представлении, то при стремлении числа разрядов к бесконечности, нулей и единиц будет в точности по 50%.

Для того чтобы Ω имела смысл, должно выполняться одно техническое условие: программа на входе должна быть самоограничивающейся. Иными словами, информация о её общей длине (в битах) должна содержаться в самой программе. (Это на первый взгляд малозначительное условие, тормозившее прогресс в данной области в течение почти десятка лет, заставило переопределить понятие алгоритмической случайности.) Существующие языки программирования предназначены для построения самоограничивающихся программ, поскольку в этих языках предусмотрены механизмы начала и окончания программы. Такие конструкции позволяют программе содержать правильно определённые подпрограммы, которые в свою очередь могут включать в себя другие вложенные подпрограммы. Поскольку самоограничивающиеся программы строятся при помощи конкатенации (объединения двух последовательностей, скажем, строк или файлов, в одну. — Ред.) и вложения самоограничивающихся подпрограмм, программа синтаксически полна лишь тогда, когда последняя открытая подпрограмма «закрыта». По сути механизмы начала и окончания программ и подпрограмм функционируют соответственно как левая и правая скобка в математических выражениях.

Если бы программы не были самоограничивающимися, их нельзя было бы построить из подпрограмм, и суммирование вероятностей остановки для всех программ дало бы бесконечный результат. Если же вы рассматриваете лишь самоограничивающиеся программы, то Ω не только ограничена 0 и 1, но её можно явно вычислить «в пределе снизу». Другими словами, можно вычислять элементы бесконечной последовательности рациональных чисел (выраженных конечной последовательностью битов), каждое из которых ближе к точному значению Ω, чем предыдущее.

Один из способов сделать это — систематически вычислять Ωn для возрастающих значений n; здесь Ωn — вероятность того, что совершенно случайная программа длиной до n битов остановится через n секунд, если она выполняется на данном компьютере. Поскольку имеется 2k возможных программ длиной k битов, Ωn можно в принципе вычислить: для каждого значения k от 1 до n надо определить, сколько из этих возможных программ на самом деле останавливается через n секунд, умножить это число на 2–k , а затем просуммировать все полученные произведения. Иначе говоря, каждая такая останавливающаяся k-битовая программа вносит свой вклад, равный 2–k , в значение Ω; вклад программ, которые не останавливаются, равен 0.

Если бы мы каким-то чудом узнали значение Ω с k точными разрядами, мы могли бы вычислять последовательность Ωn , пока не получили бы значение, равное данному значению Ω. Тогда мы бы нашли все останавливающиеся программы размером меньше k; это по существу означало бы, что решена поставленная Тьюрингом проблема остановки для всех программ размером меньше k битов. Конечно, для разумного значения k требуемое для вычисления время было бы огромным.

До сих пор при обсуждении проблемы остановки я обращался исключительно к её компьютерно-программной интерпретации, но в свете работы Дж.Джоунса из Университета в Калгари и Ю.В.Матиясевича из Ленинградского отделения Математического института им.Стеклова АНСССР в этой проблеме появляется новое «измерение». Исследования упомянутых авторов дают метод, позволяющий представить эту проблему в виде утверждений о диофантовых уравнениях определённого класса. Эти алгебраические уравнения, составленные при помощи операций над целыми числами — умножения, сложения и возведения в целую степень, названы по имени греческого математика Диофанта Александрийского, жившего в IIIвеке н.э.

Выражаясь точнее, метод Джоунса и Матиясевича позволяет отождествить утверждение о том, что некоторая конкретная программа не остановится, с утверждением о том, что одно из уравнений из определённого класса диофантовых уравнений не имеет решений в целых числах. Как и в оригинальной версии проблемы остановки для компьютеров, здесь, если решение существует, это легко доказать: всё, что требуется, — это подставить правильные числа и проверить, равными ли получились левая и правая части уравнения. Доказать же несуществование решения (если оно действительно отсутствует) намного сложнее.

Класс уравнений строится исходя из базового уравнения, которое содержит конкретную переменную k, называемую параметром и принимающую значения 1, 2, 3 и т.д. (см. рисунок ниже). Таким образом, имеется бесконечно большой класс уравнений (по одному уравнению на каждое значение параметра k), которые можно получить из одного базового уравнения для каждой программы из «семейства» программ. Математическое утверждение о том, что диофантово уравнение с параметром k не имеет решения, равносильно утверждению, что k-я компьютерная программа никогда не остановится. С другой стороны, если k-я программа останавливается, то соответствующее уравнение имеет в точности одно решение. В некотором смысле истинность (или ложность) утверждений этого типа является математически неопределённой, поскольку она изменяется непредсказуемым образом, когда параметр k принимает различные значения.

«Класс» уравнений порождается путём придания параметру k базового уравнения различных целочисленных значений.

Мой подход к непредсказуемости в математике подобен этому, но он приводит к гораздо более высокой степени случайности. Вместо «арифметизации» компьютерных программ (которые могут или не могут останавливаться) как класса диофантовых уравнений, я применяю метод Джоунса и Матиясевича для арифметизации единственной программы вычисления k-го разряда Ωn .

Этот метод основан на любопытном свойстве чётности биномиальных коэффициентов, которое было замечено Э.Люка сто лет назад, но до сих пор оставалось неоценённым по достоинству. Биномиальные коэффициенты представляют собой множители при степенях xk в разложении выражений вида (x+1)n . Эти коэффициенты легко вычисляются с помощью так называемого треугольника Паскаля (см. рисунок ниже).

В теореме Люка утверждается, что коэффициент при xk в разложении (x+1)n нечётен только тогда, когда каждый разряд в двоичном представлении числа k меньше или равен соответствующему разряду в двоичном представлении числа n (сопоставление начинается с правых элементов). Это можно выразить проще, сказав, что коэффициент при xk в разложении (x+1)n нечётен, если для каждого разряда k, равного 1, соответствующий разряд n тоже равен 1; в противном случае коэффициент чётен. Например, коэффициент при x2 в разложении бинома (x+1)4 равен 6, т.е. чётный. Соответственно единица в двоичном представлении двойки (10) не стоит на том же месте, что и единица в двоичном представлении четвёрки (100).

Треугольник Паскаля (вверху) служит для вычисления коэффициентов разложения выражений вида (x+1)n . Начав с треугольника из единиц, вычисляют значения на каждом последовательном уровне путём сложения соседних чисел; последней ставят единицу. Таким образом можно определить, например, что

(x + 1)4 = 1x4 + 4x3 + 6x2 + 4x + 1x0 .

Этот треугольник можно превратить в привлекательный фрактальный узор, если заменить нечётные коэффициенты единицами, а чётные — нулями (внизу). Узор демонстрирует свойство коэффициентов, применяемое при «арифметизации» компьютерных программ, которая преобразует их в алгебраические уравнения.

Хотя идея арифметизации проста и изящна, выполнение этого построения представляет собой громоздкую программистскую задачу. Тем не менее мне казалось, что это может быть интересным. Поэтому я разработал программу «компилятор» для получения уравнений из программ для «регистровой машины». Регистровая машина представляет собой компьютер, состоящий из небольшого множества регистров для хранения чисел произвольной величины. Разумеется, это абстракция, поскольку любой реальный компьютер имеет регистры ограниченного объёма.

Подав на вход реального компьютера, имеющего программу-компилятор, программу регистровой машины, которая выполняет инструкции на языке Лисп, получим через несколько минут на выходе уравнение длиной около 200 страниц, содержащее примерно 17000 неотрицательных целых переменных. Итак, я могу вывести диофантово уравнение с параметром k, кодирующее k-й разряд Ωn , путём простой подстановки программы на Лиспе (в двоичной форме), предназначенной для вычисления k-го разряда Ωn , в 200-страничное уравнение. Для любой заданной пары значений k и n диофантово уравнение имеет в точности одно решение, если k-й разряд Ωn равен 1, и не имеет решения, если k-й разряд Ωn равен 0.

--> ЧИТАТЬ ПОЛНОСТЬЮ <--

К-во Просмотров: 422
Бесплатно скачать Реферат: Случайность в арифметике