логикой первого порядка>Б. Язык логики первого порядка намного более выразителен, чем логики пропозиционной; это означает, что есть вещи, которые очень легко выразить в логике первого порядка, но чрезвычайно трудно или невозможно — в пропозиционной. Например, правила го занимают около страницы в логике первого порядка, но миллионы страниц в пропозиционной логике. Также легко выражается знание о шахматах, британском гражданстве, налогообложении, купле-продаже, движении, живописи, кулинарии и многих других сторонах нашего практического мира.
В принципе, способность мыслить в логике первого порядка позволяет нам далеко продвинуться на пути к универсальному интеллекту. В 1930 г. блестящий австрийский логик Курт Гёдель опубликовал знаменитую теорему о полноте[63], доказывающую возможность существования алгоритма со следующим свойством[64]:
Для любого собрания знания и любого вопроса, выразимого в логике первого порядка, алгоритм даст нам ответ на этот вопрос, если тот существует.
Это, вообще говоря, неслыханная гарантия. Она означает, к примеру, что мы можем объяснить системе правила игры в го и она ответит нам (если мы подождем достаточно долго), ведет ли этот дебютный ход к победе в партии. Мы можем сообщить ей факты о местной географии, и она укажет нам путь в аэропорт. Мы можем предоставить ей факты о геометрии, движении и столовых приборах, и она укажет роботу, как накрыть стол к ужину. В общем, получив любую достижимую цель и достаточное знание о последствиях своих действий, агент может использовать алгоритм для создания плана, который затем выполнит, чтобы достичь цели.
Следует сказать, что Гёдель не предложил сам алгоритм — он только доказал его существование. В начале 1960-х гг. стали появляться реальные алгоритмы логического вывода[65], и казалось, что мечта Маккарти об универсальных интеллектуальных системах на основе логики вот-вот сбудется. Первый в мире проект создания крупного мобильного робота, стэнфордский «Шеки», был основан на логическом рассуждении (см. рис. 4). Шеки получал цель от разработчиков-людей, с помощью алгоритмов визуализации создавал логические предположения, описывающие текущую ситуацию, выводил логическое умозаключение, чтобы построить план, гарантированно приводящий к цели, а затем выполнял этот план. Шеки был «живым» доказательством того, что аристотелевская концепция человеческого мыслительного процесса и действия по крайней мере частично верна.
К сожалению, Аристотель (и Маккарти) были правы далеко не полностью. Главной проблемой является невежество — разумеется, не Аристотеля или Маккарти, а всех людей и машин, настоящих и будущих. Лишь в очень немногом из нашего знания мы абсолютно уверены. Особенно важно, что мы очень мало знаем о будущем. Невежество — прямо-таки непреодолимая проблема для чисто логической системы. Если я спрошу: «Приеду ли я вовремя в аэропорт, если выйду за три часа до вылета?» или «Смогу ли я обзавестись домом, купив выигрышный лотерейный билет и приобретя дом на выигрыш?» — правильным ответом будет: «Не знаю». Дело в том, что на любой из вопросов с точки зрения логики одинаково возможны ответы «да» и «нет». На практике невозможно быть совершенно уверенным в ответе на любой эмпирический вопрос, если ответ еще не известен