Точка зрения теории сильного ИИ состоит в том, что, рассматривая «только» вопрос, относящийся к «железу», любые физические процессы, имеющие отношение к работе мозга, в обязательном порядке могут быть промоделированы с помощью соответствующего преобразующего «софта». Если мы принимаем операционалистскую точку зрения, то тогда этот вопрос будет состоять в эквивалентности универсальных машин Тьюринга, в том, что такие машины способны выполнять любой алгоритм, — а также в справедливости предположения об алгоритмической природе деятельности мозга. И теперь самое время коснуться этих интригующих и важных понятий более подробно.
Глава 2
Алгоритмы и машины Тьюринга
Основы алгоритмов
Как точно определить понятие алгоритма, или машины Тьюринга, или универсальной машины Тьюринга? Почему эти понятия играют одну из главных ролей в современном представлении о «мыслящем устройстве»? Есть ли какие-нибудь абсолютные ограничения на принципиальные возможности использования алгоритмов? Для того чтобы ответить на эти вопросы, нам придется разобраться в деталях, что представляют собой алгоритм и машины Тьюринга.
В дальнейших рассуждениях я буду иногда прибегать к математическим выражениям. Вероятно, некоторых читателей эти выкладки напугают и даже заставят отложить книгу в сторону. Если вы как раз такой читатель, то я прошу вашего снисхождения и рекомендую вам последовать совету, данному мной в Обращении к читателю вначале книги! Доказательства, которые здесь встретятся, не потребуют владения математическим аппаратом, выходящим за пределы школьного курса, но чтобы в них детально разобраться, все же понадобятся интеллектуальные усилия. На самом деле, большинство рассуждений изложено весьма подробно, и если внимательно им следовать, можно добиться глубокого понимания. Однако, даже беглый просмотр доказательств позволяет ухватить основную идею. С другой стороны, если вы являетесь экспертом в этой области, то я опять вынужден принести свои извинения. Но я осмелюсь предположить, что даже в этом случае вам будет небесполезно ознакомиться с моими рассуждениями, в которых почти наверняка найдется что-то интересное и для вас.
Слово «алгоритм» происходит от имени персидского математика IX века Абу Джафара Мухаммеда ибн Мусы аль-Хорезми, написавшего около 825 года н. э. руководство по математике «Kitab al-jabr wa’l-muqa-bala», которое оказало значительное влияние на математическую мысль того времени. Современное написание «алгоритм», пришедшее на смену более раннему и точному «алгоризм», своим происхождением обязано, скорее всего, ассоциации со словом «арифметика» [39]. (Примечательно, что и слово «алгебра» происходит от арабского al-jabr , фигурирующего в названии вышеупомянутой книги.)
Примеры алгоритмов были, однако, известны задолго до появления книги аль-Хорезми. Один из наиболее известных — алгоритм Евклида — процедура отыскания наибольшего общего делителя двух чисел, восходит к античности (примерно 300 лет до н. э.). Давайте посмотрим, как он работает. Возьмем для определенности два числа, скажем, 1365 и 3654. Наибольшим общим делителем двух чисел называется самое большое натуральное число, на которое делится каждое из этих чисел без остатка. Алгоритм Евклида состоит в следующем. Мы берем одно из этих чисел, делим его на другое и вычисляем остаток: так как 1365 входит дважды в 3654, в остатке получается 3654 ―
2 х 1365 = 924.
Далее мы заменяем наши два исходные числа делителем ( 1365) и полученным остатком ( 924), соответственно, производим с этой парой ту же самую операцию и получаем новый остаток:
1365 — 924 = 441.
Для новой пары чисел — а именно, 924 и 441, — получаем остаток 42. Эту процедуру надо повторять до тех пор, пока очередная пара чисел не поделится нацело. Выпишем эту последовательность:
3654:1365
дает в остатке 924
1365:924
дает в остатке 441
924:421
дает в остатке 42
441:42
дает в остатке 21
42:21
дает в остатке 0
Последнее число, на которое мы делим, а именно 21, и есть искомый наибольший общий делитель.