Литмир - Электронная Библиотека
Содержание  
A
A

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

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

Название язык получил от сокращения английских слов LISP Processing (LISP), что означает "обработка списков".

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

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

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

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

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

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

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

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

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

Архитекторы компьютерного мира - nonjpegpng_image111.jpg

Джон Маккарти (80-е годы)

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

67
{"b":"252558","o":1}