Главная arrow Персоны arrow Джон Маккарти
Как начинался компьютер
Компьютерная революция
Двоичный код
Разработки военных лет
Интегральные микросхемы
Микрокомпьютер
Персоны
Сеть
Язык компьютера
Развитие ПО
Гибкие системы
Средства разработки
Информатика
Вычислительная наука
Операционные системы
Искусственный интеллект
Предыстория
Поиск
Знания и рассуждения
Логика
Робототехника
 

 
Джон Маккарти Печать

Слова, вынесенные в эпиграф, принадлежат бывшему дипломнику Джона Маккарти в период разработки нового языка программирования. Для специалистов по информатике эти слова неудивительны, т. к. имя Джона Маккарти известно во всем мире. Его называют отцом искусственного интеллекта, он первый ввел термин “искусственный интеллект” и создал первый язык искусственного интеллекта.

Джон Маккарти сыграл решающую роль в основании двух самых известных научных центров США по исследованию проблем искусственного интеллекта — в Массачусетсом университете в 1957 году и в Стэнфордском университете в 1963 году. Среди его многочисленных работ, внесших значительный

Вклад в науку, наиболее важные относятся к концу 50-х годов, когда он работал в Массачусетском Технологическом институте. Именно там в J959 году Маккарти предложил концепцию разделения времени — режима Работы компьютера, который позволяет нескольким программистам, работая За разными терминалами, одновременно использовать его память и процес-С°Р- Помимо всего прочего, это означало, что исследователи в области искусственного интеллекта получили возможность составлять и проверять кспериментальные программы непосредственно, не ожидая по нескольку асов и дней, пока их задания, заложенные среди других в пакеты перфоаРт, будут обработаны единственным оператором вычислительной машины.

80-х годах главный научный интерес Джона Маккарти — это формализация TJK называемых “знаний здравого смысла”.

Джон Маккарти родился 4 сентября 1927 года в Бостоне, штат Массачусетс,! в семье профсоюзного деятеля-марксиста. Уже в возрасте 8 лет он твердо знал, что непременно будет ученым. Не имея возможности и опыта работы с компьютером, Маккарти интересовался техническими новинками и стро-1 ил планы на будущие. В 1944 году Джон поступил в Калифорнийский технологический университет (Cal-Tech), но был отчислен за многочисленные пропуски по физкультуре, которая давалась ему с большим трудом. В 1945 году он был призван на службу в армию. После возвращения из армии Мак- карти повторно зачислили в Калифорнийский технологический университет. Окончив его, Джон продолжил свое образование в Принстоне, где и получил степень доктора наук.

В начале 50-х годов Маккарти разделял взгляды коммунистов, а десятилетилем позже стал радикалом с длинными волосами и лентой на лбу. В 70-е годы он взбирался на горы, летал на самолете и иногда, для разнообразия,) прыгал с парашютом. 80-е годы Маккарти встретил одетым в строгий костюм и высказывающим столь же “строгие” консервативные взгляды. Одно: в нем было неизменно, Маккарти был поистине генератором самых фантастических идей, которые он разбрасывал с такой скоростью, с какой вводил информацию в компьютер у себя дома или на работе. Один журналист опи-1 сал его как “человека поразительной внешности, седовласого патриарха бородкой обольстителя… и шокирующими манерами, например привычкой поворачиваться и уходить, оборвав разговор на полуслове”.

Задолго до того, как разгорелись споры в области искусственного интеллекта, исследователям пришлось преодолеть ряд серьезных трудностей в применении компьютеров. При взаимодействии человека с компьютером наиболее важны два момента: во-первых, по возможности более легкий доступ к машинам, во-вторых, более совершенные языки программирования. В решение обеих задач в конце 50-х годов существенный вклад внес Джон Маккарти, именно он первым ввел термин “искусственный интеллект”.; В 1956 году Маккарти организовал Дартмутскую конференцию. Эта конференция объединила многих экспертов в области машинного интеллекта, ко-; торые и заложили основу для будущих исследований в области искусственного интеллекта, а именно так они назвали науку и практику создания интеллектуальных компьютерных программ. Маккарти был по праву назван! отцом искусственного интеллекта.

В 1956—1959 годах Джон Маккарти вместе со студентами Массачусетского! технологического института (МТИ) разработал новый изящный язык для работы со списками, которому и дал имя LISP. Причем многие студенты! внесли существенный вклад в эту разработку. В частности, Д. Эдварде за-j программировал процесс очистки памяти от ненужных массивов, так назы-1 ваемой сборки мусора (garbage collection), являющийся фундаментальным, понятием в LISP, да и в других языках.

Название язык получил от сокращения английских слов LISP Processing /USP), что означает “обработка списков”. После своего появления LISP присваивали много эпитетов, отражающих его черты, — эт0 язык функций, символьный язык, язык обработки списков, рекурсивный язык. С позиций сегодняшнего дня LISP определяют как язык программирования функционального типа, в основу которого положен метод исчисления (метод исчисления разработан в 30-е годы А. Черчем в качестве строгой математической модели для вычисления функций).

Программы и данные LISP существуют в форме символьных выражений, которые хранятся в виде списковых структур. LISP имеет дело с двумя видами объектов: атомами и списками. Атомы — это символы, используемые для идентификации объектов, которые могут быть числовыми или символьными (понятия, материалы, люди и т. д.). Список — это последовательность из нуля или более элементов, заключенных в круглые скобки, каждый из которых является либо атомом, либо списком. LISP манипулирует списками путем использования трех примитивных функций: CAR, CDR и CONS, из которых получаются все другие функции обработки списков. В функции CAR в качестве значения аргумента используется первый элемент списка; значением аргумента в функции CDR является оставшаяся часть списка после удаления первого элемента, а функция CONS собирает вновь то, что CAR и CDR разбили на части. Интересно отметить, что слова “CAR” и “CDR” остались в LISP на память от первой реализации языка на ламповом компьютере IBM 704. Они являются сокращением английских слов, означающих “содержимое адресной части регистра” и “содержимое уменьшаемой части регистра”, соответственно, терминами, характерными для машин первого поколения.

Во многих отношениях LISP отличается от других языков прежде всего тем, что выполнение программы не состоит в последовательности шагов, как в Других языках. В основном LISP относится к языкам интерпретирующего типа, однако в некоторых его диалектах имеется функция COMPILE, которая может быть использована для компилирования LISP-программ.

В 1962 году Джон Маккарти переехал в Стэнфорд. В этот период он решил первые проблемы в разделе математики, называемом семантикой вычислений. Маккарти уделял большое внимание проблемам общности. Он пишет:

Еще в 1958 году было очевидно, что системы искусственного интеллекта страдают отсутствием общности. Первый явный симптом состоит в том, что Небольшое добавление к идее программы часто приводит к переписыванию заново всего начала со структурами данных”. Некоторый прогресс был достигнут с появлением модульности структур данных, но по-прежнему невозможно было обходиться без переписывания программ. Другим симптомом, По мнению Маккарти, являлся тот факт, что никто не знал, как создать та-^У базу данных, содержащую общеполезные знания об окружающем мире, которую могла бы использовать любая программа, нуждающаяся в этих з« ниях. В 1963 году Маккарти публикует статью, посвященную именно при блемам общности в системах искусственного интеллекта. В ней он выдвЯ гает предположение, что, может быть, стоило бы попробовать что-нибуЛ более похожее на генетическую эволюцию, например, дублировать подпщ граммы, одни копии модифицировать, а другие оставлять неизменным! Обучающаяся система экспериментировала бы: а не лучше ли заменить н1 которые вызовы начальных подпрограмм вызовами модифицировании подпрограмм? Может быть, потребовалось бы зарезервировать для модифи каций некоторое количество параметров подпрограмм. Однако все способ! представления знаний с помощью программ сталкивались с возникновенщ ем такого вопроса, насколько скоро придется комбинировать несопостаЛ мые знания или создавать программы, модифицирующие знания. Маккарт! считал, что малые модификации поведения в большинстве случаев можи описать как малые изменения представлений о мире и для этого необходима система, точно отражающая эти представления.

Он писал: “Если вы хотите, чтобы машина могла выводить абстракции, скД рее всего, это значит, что она должна уметь представлять эти абстракцщ некоторым достаточно простым способом”.

Еще тогда возникла идея увеличения общности, которая заключается в том чтобы воспользоваться логикой для такого описания фактов, которое не за висело бы от того, как эти факты будут использоваться впоследствии. Тон Маккарти казалось (как, впрочем, и сейчас), что люди по объективнш причинам предпочитают общаться с помощью декларативных предложения а не языков программирования, все равно, является ли субъект общем человеком, существом с Альфа Центавра или компьютерной программой Более того, и для внутреннего представления проявляются преимущеещ декларативной информации.

За любое увеличение выразительной силы, по мнению Маккарти, приходится платить требуемой сложностью программ, осуществляющих рассуждений и решающих задачи. Другими словами, ограничение выразительности ларативной информации позволяет упростить процедуру поиска. Одно из основных ограничений, которое обычно принимается, заключается в нео| ходимом соблюдении следующего условия: при выведении новых факи таковыми должны являться только формулы без переменных, т. е. рассуждения в высказываниях должны производиться с подстановкой вместо переменных константы. Оказывается, что повседневная жизнь человека 4J большей части сопровождается именно такими рассуждениями.

В это же время Маккарти вместе с Хэйесом занимался проблемами эпист! мологических и эвристических аспектов задач искусственного интеллекта Они предположили, что изучать проблемы общности гораздо проще в рай ках эпистемологического подхода. Разница состоит в том, что при эписшмологическом подходе требуется полный набор фактов, гарантирующий, что некоторая стратегия достигает цели, в то время как эвристический подход предполагает поиск приемлемой стратегии исходя из наличных фактов.

Основная идея работы состояла в создании базы данных “здравого смысла” общего назначения. Информацию “здравого смысла”, имеющуюся у людей, предполагалось записать в логической форме и включить в базу данных. Любая программа целенаправленного поиска могла бы обратиться к ней за фактами, необходимыми для того, чтобы решить, как достигнуть поставленной цели. Наиболее значимыми фактами базы данных должны были быть факты с результатами действий робота, пытающегося перемещать объекты с одного места на другое.

Изучение этой проблемы привело к созданию в 1960 году “исчисления ситуаций”, целью которого было нахождение способа описания результатов действий вне зависимости от проблемной области. Однако ситуационное вычисление было применимо только в том случае, когда рассуждения о дискретных событиях, результатом каждого из которых является новая общая ситуация, имеют смысл. Непрерывные события и события, происходящие одновременно, теорией не охватывались. Оказалось, что, к сожалению, практически невозможно использовать ситуационное исчисление даже для довольно ограниченных задач. Использование универсальных программ для доказательства теорем приводило к слишком медленной работе программы, потому что в 1969 году программы для доказательства теорем не имели средств управления поиском. Все это привело к созданию системы STRIPS, в которой использовались только логические рассуждения в рамках конкретной ситуации. Формализм системы STRIPS был более ограниченным, чем исчисление ситуаций в полном объеме. Чтобы избежать противоречий, необходимо было аккуратно выбирать факты, входившие в число аксиом. Эти противоречия могли возникать при невозможности удалить высказывание, которое не являлось бы истинным в результате действия происшедшей ситуации.

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

В 1971 году Джон Маккарти был награжден премией Тьюринга за достижения в области искусственного интеллекта. Ныне он профессор информатики, профессор кафедры им. Шарля М. Пижо Инженерной Стэнфордского университета. Маккарти работает над новым языком про! граммирования Elephant. Этот язык предназначен для программ, взаимодейЗ ствующих с людьми или с программами, принадлежащими другим оргащы зациям. В настоящие время наиболее важный из его проектов заключается а формализации контекста и его приложений к искусственному интеллекту Маккарти по праву можно назвать генератором идей, которые помогаю приблизить компьютеры к более высокому уровню интеллекта. Только время покажет, верно ли его утверждение о возможности создания компьютера более умного, чем человеческий мозг.