Искусственный интеллект. История развития

Основные понятия искусственного интеллекта.

Достаточно трудно дать точное определение, что такое интеллект человека, потому что интеллект - это сплав многих навыков в области обработки и представления информации. Интеллект (intelligence) происходит от латинского intellectus - что означает ум, рассудок, разум; мыслительные способности человека. С большой степенью достоверности интеллектом можно называть способность мозга решать (интеллектуальные) задачи путем приобретения, запоминания и целенаправленного преобразования знаний в процессе обучения на опыте и адаптации к разнообразным обстоятельствам.

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

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

К программам искусственного интеллекта относятся:



1. игровые программы (стохастические, компьютерные игры);

2. естественно-языковые программы - машинный перевод, генерация текстов, обработка речи;

3. распознающие программы - распознавание почерков, изображений, карт;

4. программы создания и анализа графики, живописи, музыкальных произведений.

Выделяются следующие направления искусственного интеллекта:

1. экспертные системы;

2. нейронные сети;

3. естественно-языковые системы;

4. эволюционные методы и генетические алгоритмы;

5. нечеткие множества;

6. системы извлечения знаний.

История развития искусственного интеллекта

В развитии СИИ можно выделить три основных этапа:

− 60-70-е годы. Это годы осознания возможностей искусственного интеллекта и формирования социального заказа на поддержку процессов принятия решений и управления. Наука отвечает на этот заказ появлением первых персептронов (нейронных сетей), разработкой методов эвристического программирования и ситуационного управления большими системами (разработано в СССР)

­­− 70-80-е годы. На этом этапе происходит осознание важности знаний для формирования адекватных решений; появляются экспертные системы, в которых активно используется аппарат нечеткой математики, разрабатываются модели правдоподобного вывода и правдоподобных рассуждений

− 80-90-е годы. Появляются интегрированные (гибридные) модели представления знаний, сочетающие в себе интеллекты: поисковый, вычислительный, логический и образный.

Термин искусственный интеллект (artificial intelligence) предложен в 1956 году на семинаре в Стенфордском университете (США).

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

Развитие же искусственного интеллекта, как научного направления стало возможным только после создания ЭВМ. Это произошло в 40-х годах XX века. В это же время Н. Винер создал свои основополагающие работы по новой науке - кибернетике.

В 1954 году в МГУ под руководством профессора А. А. Ляпунова начал свою работу семинар "Автоматы и мышление". В этом семинаре принимали участие крупнейшие физиологи, лингвисты, психологи, математики. Принято считать, что именно в это время родился искусственный интеллект в России.

Существенный прорыв в практических приложениях искусственного интеллекта произошел в середине 70-х годов XX века, когда на смену поискам универсального алгоритма мышления пришла идея моделировать конкретные знания специалистов-экспертов.

В США появились первые коммерческие системы, основанные на знаниях, или экспертные системы появился новый подход к решению задач искусственного интеллекта - представление знаний. Созданы MYCIN и DENDRAL - ставшие классическими экспертные системы для медицины и химии.

В 1980-1990 годы проводятся активные исследования в области представления знаний, разрабатываются языки представления знаний, экспертные системы. Начиная с середины 80-х годов XX века, происходит коммерциализация искусственного интеллекта. Растут ежегодные капиталовложения, создаются промышленные экспертные системы.

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

Условно можно выделить 7 этапов развития искусственного интеллекта, каждый из которых связывается с определённым уровнем развития искусственного интеллекта и парадигмой, реализуемой в конкретной системе.

Парадигма – новая идея математического описания работы систем искусственного интеллекта.

Этап 1 (50–е годы) (Нейрон и нейронные сети)

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

Этап 2 (60-е годы) (Эвристический поиск)

В «интеллект» машины добавились механизмы поиска, сортировки, простейшие операции по обобщению информации, не зависящие от смысла обрабатываемых данных. Это стало новой точкой отсчета в развитии и понимании задач автоматизации деятельности человека.

Этап 3 (70-е годы) (Представление знаний)

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

Этап 4 (80-е годы) (Обучающие машины)

Четвертый этап развития ИИ стал прорывным. С появлением экспертных систем в мире начался принципиально новый этап развития интеллектуальных технологий – эра интеллектуальных систем - консультантов, которые предлагали варианты решений, обосновывали их, способны были к обучению и к развитию, общались с человеком на привычном для него, хотя и ограниченном, естественном языке.

Этап 5 (90-е годы) (Автоматизированные обрабатывающие центры)

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

Этап 6 (2000-е годы) (Робототехника)

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

Этап 7 (год 2008)( Сингулярность)

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

По некоторым прогнозам, технологическая сингулярность может наступить уже около 2030 года. Сторонники теории технологической сингулярности считают, что если возникнет принципиально отличный от человеческого разума (пост человек), дальнейшую судьбу цивилизации невозможно предсказать, опираясь на человеческое (социальное) поведение.

Искусственный интеллект – это одна из новейших областей науки. Первые работы в этой области начались вскоре после Второй мировой войны, а само ее название было предложено в 1956 году. В настоящее время тематика искусственного интеллекта охватывает огромный перечень научных направлений, начиная с таких задач общего характера, как обучение и восприятие, и заканчивая такими специальными задачами, как игра в шахматы, доказательство математических теорем, сочинение поэтических произведений и диагностика заболеваний. В искусственном интеллекте систематизируются и автоматизируются интеллектуальные задачи и поэтому эта область касается любой сферы интеллектуальной деятельности человека. В этом смысле искусственный интеллект является поистине универсальной научной областью.

Разные ученые определяют искусственный интеллект по-разному. Все эти определения могут быть разбиты на 4 категории:

1. Системы, которые думают подобно людям.

2. Системы, которые думают рационально.

3. Системы, которые действуют подобно людям.

4. Системы, которые действуют рационально.

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

1. Новое захватывающее направление работ по созданию компьютеров, способных думать, … машин, обладающих разумом, в полном и буквальном смысле этого слова. (Haugeland J.)

2. Изучение умственных способностей с помощью вычислительных моделей. (Charniak E., McDermott D.)

3. Наука о том, как научить компьютеры делать то, в чем люди в настоящее время их превосходят (Rich E., Knight K.)

4. Искусственный интеллект – это наука, посвященная изучению интеллектуального поведения артефактов (искусственных объектов). (Nilsson N.J.)

Какова же история искусственного интеллекта и какие науки внесли свой вклад в ее создание?

1. Философия.

В рамках этой науки возникли следующие вопросы:

· Могут ли использоваться формальные правила для вывода правильных заключений?

· Как такой идеальный объект, как мысль, рождается в таком физическом объекте, как мозг?



· Каково происхождение знаний?

· Каким образом знания ведут к действиям?

Ответы на эти вопросы пытались найти многие ученые, начиная с Аристотеля (4 век до н.э.), которым был сформулирован точный свод законов, руководящих рациональной частью мышления. Он разработал неформализованную систему силлогизмов, предназначенную для проведения правильных рассуждений, которая позволяла любому вырабатывать логические заключения механически, при наличии начальных предпосылок. Гораздо позднее Раймунд Луллий (13-14 век) выдвинул идею, что полезные рассуждения можно фактически проводить с помощью механического артефакта. Томас Гоббс (17 век) предположил, что рассуждения аналогичны числовым расчетам и что "в наших неслышимых мыслях мы поневоле складываем и вычитаем".

В 1623 г. немецким ученым Вильгельмом Шиккаром была создана первая вычислительная машина, хотя более известна арифметическая машина, созданная в 1642 году Блезом Паскалем. Паскаль писал, что "арифметическая машина производит эффект, который кажется более близким к мышлению по сравнению с любыми действиями животных". Позднее Готтфрид Вильгельм Лейбниц A646-1716) создал механическое устройство, предназначенное для выполнения операций над понятиями, а не над числами, но область его действия была довольно ограниченной.

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

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

Если предположить, что знаниями манипулирует физический разум, то возникает следующая проблема – установить источник знаний. Такое научное направление, как эмпиризм, родоначальником которого был Фрэнсис Бекон (16-17 века), можно охарактеризовать высказыванием Джона Локка (17-18 века): "В человеческом понимании нет ничего, что не проявлялось бы прежде всего в ощущениях". Дэвид Юм (18 век) предложил метод, известный теперь под названием принципа индукции, который состоит в том, что общие правила вырабатываются путем изучения повторяющихся ассоциаций между элементами, которые рассматриваются в этих правилах. Основываясь на работе Людвига Виттгенштейна и Бертрана Рассела (19-20 века), знаменитый Венский кружок, возглавляемый Рудольфом Карнапом, разработал доктрину логического позитивизма. Согласно этой доктрине все знания могут быть охарактеризованы с помощью логических теорий, связанных в конечном итоге с констатирующими предложениями, которые соответствуют входным сенсорным данным. В теории подтверждения Рудольфа Карнапа и Карла Хемпеля (20 век) предпринята попытка понять, как знания могут быть приобретены из опыта. Карнап определил явно заданную вычислительную процедуру для извлечения знаний из результатов элементарных опытов. По-видимому, это – первая теория мышления как вычислительного процесса.

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

Нам предоставляется право выбора не целей, а средств достижения цели, ведь врач рассуждает не о том, должен ли он лечить, а оратор - не о том, станет ли он убеждать... Поставив цель, он размышляет, как и какими средствами ее достичь; а если окажется несколько средств, то определяет, какое из них самое простое и наилучшее; если же достижению цели служит одно средство, думает, как ее достичь при помощи этого средства и что будет средством для этого средства, пока не дойдет до первой причины, которую находит последней... и то, что было последним в порядке анализа, обычно становится первым в порядке осуществления... Если же он приходит к выводу, что цель недостижима, отступается, например, если нужны деньги, а достать их нельзя; но если достижение цели кажется возможным, то пытается ее достичь.

Анализ на основе цели является полезным, но не дает ответа на то, что делать, если к цели ведет несколько вариантов действий или ни один вариант действий не позволяет достичь ее полностью. Антуан Арно (17 век) описал количественную формулу для принятия решения о том, какое действие следует предпринять в подобных случаях: "Чтобы судить о том, что следует делать, чтобы получить хорошее или избежать плохого, необходимо рассматривать не только хорошее и плохое само по себе, но и вероятность того, произойдет ли оно или не произойдет, а также рассматривать математически пропорцию, в которой все эти обстоятельства встречаются вместе."

2. Математика.

Данная наука пыталась ответить на следующие вопросы:

· Каковы формальные правила формирования правильных заключений?

· Как определить пределы вычислимости?

· Как проводить рассуждения с использованием недостоверной информации?

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

Истоки идей формальной логики можно найти в работах философов древней Греции, но ее становление как математической дисциплины фактически началась с трудов Джорджа Буля (19 век), который детально разработал логику высказываний, или булеву логику. В 1879 году Готтлоб Фреге расширил булеву логику для включения в нее объектов и отношений, создав логику первого порядка, которая в настоящее время используется как наиболее фундаментальная система представления знаний. Альфред Тарский (20 век) впервые ввел в научный обиход теорию ссылок, которая показывает, как связать логические объекты с объектами реального мира. Следующий этап состоял в определении пределов того, что может быть сделано с помощью логики и вычислений.

Первым нетривиальным алгоритмом считается алгоритм вычисления наибольшего общего знаменателя, предложенный Евклидом. Исследование алгоритмов как самостоятельных объектов было начато аль-Хорезми, среднеазиатским математиком IX столетия, благодаря работам которого Европа познакомилась с арабскими цифрами и алгеброй. Буль и другие ученые широко обсуждали алгоритмы логического вывода, а к концу XIX столетия уже предпринимались усилия по формализации общих принципов проведения математических рассуждений как логического вывода. В 1900 году Давид Гильберт представил список из 23 проблем и правильно предсказал, что эти проблемы будут занимать математиков почти до конца XX века. Последняя из этих проблем представляет собой вопрос о том, существует ли алгоритм для определения истинности любого логического высказывания, в состав которого входят натуральные числа. Это – так называемая проблема поиска решения. По сути, этот вопрос, заданный Гильбертом, сводился к определению того, есть ли фундаментальные пределы, ограничивающие мощь эффективных процедур доказательства. В 1930 году Курт Гёдель показал, что существует эффективная процедура доказательства любого истинного высказывания в логике первого порядка Фреге и Рассела, но при этом логика первого порядка не позволяет выразить принцип математической индукции, необходимый для представления натуральных чисел. В 1931 году Гёдель показал, что действительно существуют реальные пределы вычислимости. Предложенная им теорема о неполноте показывает, что в любом языке, достаточно выразительном для описания свойств натуральных чисел, существуют истинные высказывания, которые являются недоказуемыми, в том смысле, что их истинность невозможно установить с помощью какого-либо алгоритма.

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

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

Хотя для понимания возможностей вычисления очень важны понятия недоказуемости и невычислимости, гораздо большее влияние на развитие искусственного интеллекта оказало понятие неразрешимости. Грубо говоря, задача называется неразрешимой, если время, требуемое для решения отдельных экземпляров этой задачи, растет экспоненциально с увеличением размеров этих экземпляров. Различие между полиномиальным и экспоненциальным ростом сложности было впервые подчеркнуто в середине 1960-х годов в работах Кобхэма и Эдмондса.

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

Как можно распознать неразрешимую проблему? Один из приемлемых методов такого распознавания представлен в виде теории NP-полноты, впервые предложенной Стивеном Куком и Ричардом Карпом. Кук и Карп показали, что существуют большие классы канонических задач комбинаторного поиска и формирования рассуждений, которые являются NP-полными. Существует вероятность того, что любой класс задач, к которому сводится этот класс NP-полных задач, является неразрешимым.

Эти результаты контрастируют с тем оптимизмом, с которым в популярных периодических изданиях приветствовалось появление первых компьютеров под такими заголовками, как "Электронные супермозги", которые думают "быстрее Эйнштейна!" Несмотря на постоянное повышение быстродействия компьютеров, характерной особенностью интеллектуальных систем является экономное использование ресурсов. Грубо говоря, наш мир, в котором должны освоиться системы ИИ, – это чрезвычайно крупный экземпляр задачи.

Кроме логики и теории вычислений, третий по величине вклад математиков в искусственный интеллект состоял в разработке теории вероятностей. Идея вероятности была впервые сформулирована итальянским математиком Джероламо Кардано (16 век), который описал ее в терминах результатов событий с несколькими исходами, возникающих в азартных играх. Теория вероятностей быстро стала неотъемлемой частью всех количественных наук, помогая использовать недостоверные результаты измерений и неполные теории. Пьер Ферма, Блез Паскаль, Джеймс Бернулли (17 век), Пьер Лаплас (18-19 века) и другие ученые внесли большой вклад в эту теорию и ввели новые статистические методы. Томас Байес (18 век) предложил правило обновления вероятностей с учетом новых фактов. Правило Байеса и возникшее на его основе научное направление, называемое байесовским анализом, лежат в основе большинства современных подходов к проведению рассуждений с учетом неопределенности в системах искусственного интеллекта.

3. Экономика.

В рамках данной науки возникли такие вопросы:

· Как следует организовать принятие решений для максимизации вознаграждения?

· Как действовать в таких условиях, когда другие могут препятствовать осуществлению намеченных действий?

· Как действовать в таких условиях, когда вознаграждение может быть предоставлено лишь в отдаленном будущем?

Экономика как наука возникла в 1776 году. Ее основателем считается шотландский философ Адам Смит. Он впервые сумел оформить эту область знаний как науку, используя идею, что любую экономику можно рассматривать как состоящую из отдельных агентов, стремящихся максимизировать свое собственное экономическое благосостояние. Большинство людей считают, что экономика посвящена изучению денежного оборота, но любой экономист ответит на это, что в действительности он изучает то, как люди делают выбор, который ведет к предпочтительным для них результатам. Математическая трактовка понятия "предпочтительных результатов", или полезности, была впервые формализована Леоном Валрасом (19-20 века), уточнена Фрэнком Рамсеем, а затем усовершенствована Джоном фон Нейманом и Оскаром Моргенштерном.

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

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

Работы в области экономики и исследования операций оказали большое влияние на формирование понятия рациональных агентов, но в течение многих лет исследования в области искусственного интеллекта проводились совсем по другим направлениям. Одной из причин этого была кажущаяся сложность задачи выработки рациональных решений. Тем не менее Герберт Саймон (20 век) показал, что лучшее описание фактического поведения человека дают модели, основанные на удовлетворении (принятии решений, которые являются "достаточно приемлемыми"), а не модели, предусматривающие трудоемкий расчет оптимального решения, и стал одним из первых исследователей в области искусственного интеллекта, получившим Нобелевскую премию по экономике (это произошло в 1978 году).

4. Неврология.

В рамках этой науки ученые пытались ответить на вопрос о том, как происходит обработка информации в мозгу?

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

5. Психология.

Как думают и действуют люди и животные?

В 1879 году в Лейпцигском университете была открыта первая лаборатория по экспериментальной психологии. Ее основателем был Вильгельма Вундт. Он настаивал на проведении тщательно контролируемых экспериментов, в которых его сотрудники выполняли задачи по восприятию или формированию ассоциаций, проводя интроспективные наблюдения за своими мыслительными процессами. Такой тщательный контроль позволил ему сделать очень многое для превращения психологии в науку, но из-за субъективного характера данных вероятность того, что экспериментатор будет стремиться опровергнуть выдвинутые им теории, оставалась очень низкой. Сторонники бихевиористского движения, возглавляемые Джоном Уотсоном (20 век) отвергали любую теорию, учитывающую мыслительные процессы, на том основании, что интроспекция не может предоставлять надежные свидетельства. Бихевиористы настаивали на том, что следует изучать только объективные меры восприятия (или стимулы), предъявленные животному, и вытекающие из этого действия (или отклики на стимулы). Такие мыслительные конструкции, как знания, убеждения, цели и последовательные рассуждения, отвергались как ненаучная "обывательская психология".

Кеннет Крэг (20 век) привел весомые доводы в пользу допустимости применения таких "мыслительных" терминов, как убеждения и цели, доказав, что они являются не менее научными, чем, скажем, такие термины, применяемые в рассуждениях о газах, как давление и температура, несмотря на то, что речь в них идет о молекулах, которые сами не обладают этими характеристиками. Крэг обозначил следующие три этапа деятельности агента, основанного на знаниях: во-первых, действующий стимул должен быть преобразован во внутреннее представление, во-вторых, с этим представлением должны быть выполнены манипуляции с помощью познавательных процессов для выработки новых внутренних представлений, и, в-третьих, они должны быть, в свою очередь, снова преобразованы в действия. Он наглядно объяснил, почему такой проект является приемлемым для любого агента.

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

Работа Крэга была продолжена Дональдом Броудбентом, который привел первые примеры моделей информационной обработки психологических феноменов.

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

6. Вычислительная техника.

Каким образом можно создать эффективный компьютер?

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

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

7. Теория управления и кибернетика.

Каким образом артефакты могут работать под своим собственным управлением?

Первое самоуправляемое устройство было построено Ктесибием из Александрии (примерно в 250 году до н.э.); это были водяные часы с регулятором, который поддерживал поток воды, текущий через эти часы с постоянным, предсказуемым расходом. Это изобретение изменило представление о том, на что могут быть способны устройства, созданные человеком. До его появления считалось, что только живые существа способны модифицировать свое поведение в ответ на изменения в окружающей среде. К другим примерам саморегулирующихся систем управления с обратной связью относятся регулятор паровой машины, созданный Джеймсом Уаттом (18-19 века), и термостат, изобретенный Корнелисом Дреббелем (16-17 века), который изобрел также подводную лодку. Математическая теория устойчивых систем с обратной связью была разработана в XIX веке.

Центральной фигурой в создании науки, которая теперь именуется теорией управления, был Норберт Винер (20 век). Винер был блестящим математиком, который совместно работал со многими учеными, включая Бертрана Рассела, под влиянием которых у него появился интерес к изучению биологических и механических систем управления и их связи с познанием. Как и Крэг (который также использовал системы управления в качестве психологических моделей), Винер и его коллеги Артуро Розенблют и Джулиан Бигелоу бросили вызов ортодоксальным бихевиористским взглядам. Они рассматривали целенаправленное поведение как обусловленное действием регуляторного механизма, пытающего минимизировать "ошибку" – различие между текущим и целевым состоянием. В конце 1940-х годов Винер совместно с Уорреном Мак-Каллоком, Уолтером Питтсом и Джоном фон Нейманом организовал ряд конференций, на которых рассматривались новые математические и вычислительные модели познания; эти конференции оказали большое влияние на взгляды многих других исследователей в области наук о поведении. Винер впервые дал определение кибернетики как науки, и убедил широкие круги общественности в том, что мечта о создании машин, обладающих искусственным интеллектом, воплотилась в реальность.

Предметом современной теории управления, особенно той ее ветви, которая получила название стохастического оптимального управления, является проектирование систем, которые максимизируют целевую функцию во времени. Это примерно соответствует представлению об искусственном интеллекте как о проектировании систем, которые действуют оптимальным образом. Почему же в таком случае искусственный интеллект и теория управления рассматриваются как две разные научные области, особенно если учесть, какие тесные взаимоотношения связывали их основателей? Ответ на этот вопрос состоит в том, что существует также тесная связь между математическими методами, которые были знакомы участникам этих разработок, и соответствующими множествами задач, которые были охвачены в каждом из этих подходов к описанию мира. Дифференциальное и интегральное исчисление, а также алгебра матриц, являющиеся инструментами теории управления, в наибольшей степени подходят для анализа систем, которые могут быть описаны с помощью фиксированных множеств непрерывно изменяющихся переменных; более того, точный анализ, как правило, осуществим только для линейных систем. Искусственный интеллект был отчасти основан как способ избежать ограничений математических средств, применявшихся в теории управления в 1950-х годах. Такие инструменты, как логический вывод и вычисления, позволили исследователям искусственного интеллекта успешно рассматривать некоторые проблемы (например, понимание естественного языка, зрение и планирование), полностью выходящие за рамки исследований, предпринимавшихся теоретиками управления.

8. Лингвистика.

Каким образом язык связан с мышлением?

В 1957 году Ноам Хомский показал, что бихевиористская теория не позволяет понять истоки творческой деятельности, осуществляемой с помощью языка, – она не объясняет, почему ребенок способен понимать и складывать предложения, которые он до сих пор никогда еще не слышал. Теория Хомского, основанная на синтаксических моделях, восходящих к работам древнеиндийского лингвиста Панини (примерно 350 год до н.э.), позволяла объяснить этот феномен, и, в отличие от предыдущих теорий, оказалась достаточно формальной для того, чтобы ее можно было реализовать в виде программ.

Таким образом, современная лингвистика и искусственный интеллект, которые "родились" примерно в одно и то же время и продолжают вместе расти, пересекаются в гибридной области, называемой вычислительной лингвистикой или обработкой естественного языка. Вскоре было обнаружено, что проблема понимания языка является гораздо более сложной, чем это казалось в 1957 году. Для понимания языка требуется понимание предмета и контекста речи, а не только анализ структуры предложений. Это утверждение теперь кажется очевидным, но сам данный факт не был широко признан до 1960-х годов. Основная часть ранних работ в области представления знаний (науки о том, как преобразовать знания в такую форму, с которой может оперировать компьютер) была привязана к языку и подпитывалась исследованиями в области лингвистики, которые, в свою очередь, основывались на результатах философского анализа языка, проводившегося в течение многих десятков лет.

Итак, такова предыстория искусственного интеллекта. Перейдем теперь к самому процессу развития искусственного интеллекта.

Появление предпосылок искусственного интеллекта (период с 1943 года по 1955 год)

Первая работа, которая теперь по общему признанию считается относящейся к искусственному интеллекту, была выполнена Уорреном Мак-Каллоком и Уолтером Питтсом. В этой работе им понадобилось: знание основ физиологии и назначения нейронов в мозгу; формальный анализ логики высказываний, взятый из работ Рассела и Уайтхеда; а также теория вычислений Тьюринга. Мак-Каллок и Питтс предложили модель, состоящую из искусственных нейронов, в которой каждый нейрон характеризовался как находящийся во "включенном" или "выключенном" состоянии, а переход во "включенное" состояние происходил в ответ на стимуляцию достаточного количества соседних нейронов. Состояние нейрона рассматривалось как "фактически эквивалентное высказыванию, в котором предлагается адекватное количество стимулов". Работы этих ученых показали, например, что любая вычислимая функция может быть вычислена с помощью некоторой сети из соединенных нейронов и что все логические связки ("И", "ИЛИ", "НЕ" и т.д.) могут быть реализованы с помощью простых сетевых структур. Кроме того, Мак-Каллок и Питтс выдвинули предположение, что сети, структурированные соответствующим образом, способны к обучению. Дональд Хебб продемонстрировал простое правило обновления для модификации количества соединений между нейронами. Предложенное им правило, называемое теперь правилом хеббовского обучения, продолжает служить основой для моделей, широко используемых и в наши дни.

Два аспиранта факультета математики Принстонского университета, Марвин Минский и Дин Эдмондс, в 1951 году создали первый сетевой компьютер на основе нейронной сети. В этом компьютере, получившем название Snare, использовалось 3000 электронных ламп и дополнительный механизм автопилота с бомбардировщика В-24 для моделирования сети из 40 нейронов. Аттестационная комиссия, перед которой Минский защищал диссертацию доктора философии, выразила сомнение в том, может ли работа такого рода рассматриваться как математическая, на что фон Нейман, по словам современников, возразил: "Сегодня – нет, но когда-то будет". В дальнейшем Минский доказал очень важные теоремы, показывающие, с какими ограничениями должны столкнуться исследования в области нейронных сетей.

История искусственного интеллекта (с 1956 год)

В Принстонском университете проводил свои исследования еще один авторитетный специалист в области искусственного интеллекта, Джон Маккарти. После получения ученой степени Маккарти перешел в Дартмутский колледж, который и стал официальным местом рождения искусственного интеллекта. Маккарти уговорил Марвина Минского, Клода Шеннона и Натаниэля Рочестера, чтобы они помогли ему собрать всех американских исследователей, проявляющих интерес к теории автоматов, нейронным сетям и исследованиям интеллекта. Они организовывали двухмесячный семинар в Дартмуте летом 1956 года. Всего на этом семинаре присутствовали 10 участников, включая Тренчарда Мура из Принстонского университета, Артура Самюэла из компании IBM, а также Рея Соломонова и Оливера Селфриджа из Массачусетсского технологического института.

Дартмутский семинар не привел к появлению каких-либо новых крупных открытий, но позволил познакомиться всем наиболее важным деятелям в этой научной области. Они, а также их студенты и коллеги из Массачусетсского технологического института, Университета Карнеги-Меллона, Станфордского университета и компании IBM занимали ведущее положение в этой области в течение следующих 20 лет.

Одним из результатов данного семинара было соглашение принять новое название для этой области, предложенное Маккарти, – искусственный интеллект.

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

Была создана программа общего решателя задач (General Problem Solver- GPS), предназначенная для моделирования процедуры решения задач человеком. Как оказалось, в пределах того ограниченного класса головоломок, которые была способна решать эта программа, порядок, в котором она рассматривала подцели и возможные действия, был аналогичен тому подходу, который применяется людьми для решения таких же проблем. Поэтому программа GPS была, по-видимому, самой первой программой, в которой был воплощен подход к "организации мышления по такому же принципу, как и у человека".

Герберт Гелернтер сконструировал программу Geometry Theorem Prover (программа автоматического доказательства геометрических теорем), которая была способна доказывать такие теоремы, которые показались бы весьма сложными многим студентам-математикам.

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

В 1958 году Джон Маккарти привел определение нового языка высокого уровня Lisp – одного из первых языков программирования для искусственного интеллекта.

ГОУ ВПО «Курский Государственный Медицинский Университет»

Кафедра информатики и вычислительной техники

Реферат по информатике на тему

История и тенденции развития искусственного интеллекта

Выполнил: Ларин С.Л.

Проверил: Артеменко

Виктор Иванович

Курск, 2009


План

Введение

1. История развития AI

2. Перспективы и тенденции развития AI

2.1 Нейронные сети

2.2 Эволюционные вычисления

2.3 Нечеткая логика

2.4 Обработка изображений

2.5 Экспертные системы

2.6 Интеллектуальные приложения

2.7 Распределенные вычисления

2.9 Интеллектуальная инженерия

2.10 Самоорганизующиеся СУБД

2.11 AI для анализаторских функций

2.12 Военные технологии

3. Искусственный интеллект, как направление исследований

3.1 Аспекты представления знаний

3.2 Рефлексия

3.3 Некоторые подходы к решению проблемы AI

Заключение

Литература


Введение

Способна ли машина мыслить? Может ли машина иметь сознанные мысли в таком же смысле, в каком имеем их мы? Если под машиной понимать физическую систему, способную выполнять определенные функции (а что еще под ней можно понимать?), тогда люди - это машины особой, биологической разновидности, а люди могут мыслить, и, стало быть, машины, конечно, тоже могут мыслить. Тогда, по всей видимости, можно создавать мыслящие машины из самых разнообразных материалов - скажем, из кремниевых кристаллов или электронных ламп. Если это и окажется невозможным, то пока мы, конечно, этого еще не знаем. Однако в последние десятилетия вопрос о том, может ли машина мыслить, приобрел совершенно другую интерпретацию. Он был подменен вопросом: способна ли машина мыслить только за счет выполнения заложенной в нее компьютерной программы? Является ли программа основой мышления? Это принципиально иной вопрос, потому что он не затрагивает физических, каузальных (причинных) свойств существующих или возможных физических систем, а скорее относится к абстрактным, вычислительным свойствам формализованных компьютерных программ, которые могут быть реализованы в любом материале, лишь бы он был способен выполнять эти программы. Довольно большое число специалистов по искусственному интеллекту (ИИ) полагают, что на второй вопрос следует ответить положительно; другими словами, они считают, что составив правильные программы с правильными входами и выходами, они действительно создадут разум. Более того, они полагают, что имеют в своем распоряжении научный тест, с помощью которого можно судить об успехе или неудаче такой попытки. На сегодняшний день проблема исследования AI занимает актуальное место в системе информационных наук. В своем реферате я попытаюсь рассмотреть проблемы создания и воплощения искусственного интеллекта в жизнь, также освещу историю создания и наиболее перспективные разработки в этой области.


1. История развития AI

Как и любая основополагающая наука «Искусственный интеллект» имеет достаточно богатую историю. Можно выделить как теоретическую, так и экспериментальную части. Суть науки «Искусственный интеллект» лучше всего отражают слова «Дух в машине», при этом не столь важно развитие отдельно понятий о машине и духе, как важно их сочетание. Но в то же время понятно, что чем более развиты представления о машине, чем они более совершенны с одной стороны, и чем мы более знаем о духе с другой стороны - тем о более скажем так мощном ИИ мы можем говорить. Но отличает науку «Искусственный интеллект» от Вычислительной техники (Информатики) с одной стороны и от Медицины (Биологии) с другой - это именно связь одного с другим. И только при наличии этой связи мы можем говорить о достижениях в области ИИ, а не отдельно в областях Информатики или Биологии. Этому вопросу уделяется особенно большое значение в теоретической части, а для подтверждения теорий как и в других науках используется эксперимент. Но исторически появление теорий и первых экспериментов всегда разнесено во времени. Поэтому начала теории обычно относят к философии искусственного интеллекта, и только с появлением первых экспериментов теория приобретает самостоятельное значение. Причем саму теорию «Искусственного интеллекта», которая сейчас находится на рубеже с философией, не нужно совмещать с теорией математических, алгоритмических, робототехнических, физиологических и прочих методов, которые имеют собственное значение в соответствующих науках. Сейчас четкого различия между рядом связанных наук и собственно «Искусственным интеллектом» найти очень сложно, а тем более различить теоретические и экспериментальный разделы науки. И здесь главную помощь может оказать история становления и развития науки «Искусственный интеллект».

Исторически сложились три основных направления в моделировании ИИ.

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

Второй подход в качестве объекта исследования рассматривает ИИ. Здесь речь идет о моделировании интеллектуальной деятельности с помощью вычислительных машин. Целью работ в этом направлении является создание алгоритмического и программного обеспечения вычислительных машин, позволяющего решать интеллектуальные задачи не хуже человека.

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

Самыми первыми интеллектуальными задачами, которые стали решаться при помощи ЭВМ были логические игры (шашки, шахматы), доказательство теорем. Хотя, правда здесь надо отметить еще кибернетические игрушки типа «электронной мыши» Клода Шеннона, которая управлялась сложной релейной схемой. Эта мышка могла «исследовать» лабиринт, и находить выход из него. А кроме того, помещенная в уже известный ей лабиринт, она не искала выход, а сразу же, не заглядывая в тупиковые ходы, выходила из лабиринта.

Американский кибернетик А. Самуэль составил для вычислительной машины программу, которая позволяет ей играть в шашки, причем в ходе игры машина обучается или, по крайней мере, создает впечатление, что обучается, улучшая свою игру на основе накопленного опыта. В 1962 г. эта программа сразилась с Р. Нили, сильнейшим шашистом в США и победила.

Каким образом машине удалось достичь столь высокого класса игры?

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

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

По мнению А. Самуэля, машина, использующая этот вид обучения, может научиться играть лучше, чем средний игрок, за относительно короткий период времени.

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

Ярким примером сложной интеллектуальной игры до недавнего времени являлись шахматы. В 1974 г. состоялся международный шахматный турнир машин, снабженных соответствующими программами. Как известно, победу на этом турнире одержала советская машина с шахматной программой «Каисса».

Почему здесь употреблено «до недавнего времени»? Дело в том, что недавние события показали, что несмотря на довольно большую сложность шахмат, и невозможность, в связи с этим произвести полный перебор ходов, возможность перебора их на большую глубину, чем обычно, очень увеличивает шансы на победу. К примеру, по сообщениям в печати, компьютер фирмы IBM, победивший Каспарова, имел 256 процессоров, каждый из которых имел 4 Гб дисковой памяти и 128 Мб оперативной. Весь этот комплекс мог просчитывать более 100"000"000 ходов в секунду. До недавнего времени редкостью был компьютер, могущий делать такое количество целочисленных операций в секунду, а здесь мы говорим о ходах, которые должны быть сгенерированы и для которых просчитаны оценочные функции. Хотя с другой стороны, этот пример говорит о могуществе и универсальности переборных алгоритмов.

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

В 1957 г. американский физиолог Ф. Розенблатт предложил модель зрительного восприятия и распознавания - перцептрон. Появление машины, способной обучаться понятиям и распознавать предъявляемые объекты, оказалось чрезвычайно интересным н е только физиологам, но и представителям других областей знания и породило большой поток теоретических и экспериментальных исследований.

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

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

Что же касается моделирования логического мышления, то хорошей модельной задачей здесь может служить задача автоматизации доказательства теорем. Начиная с 1960 г., был разработан ряд программ, способных находить доказательства теорем в исчислении предикатов первого порядка. Эти программы обладают, по словам американского специалиста в области ИИ Дж. Маккатти, «здравым смыслом», т. е. способностью делать дедуктивные заключения.

В программе К. Грина и др., реализующей вопросно-ответную систему, знания записываются на языке логики предикатов в виде набора аксиом, а вопросы, задаваемые машине, формулируются как подлежащие доказательству теоремы. Большой интерес представляет «интеллектуальная» программа американского математика Хао Ванга. Эта программа за 3 минуты работы IBM-704 вывела 220 относительно простых лемм и теорем из фундаментальной математической монографии, а затем за 8.5 мин выдала доказательства еще 130 более сложных теорем, часть их которых еще не была выведена математиками. Правда, до сих пор ни одна программа не вывела и не доказала ни одной теоремы, которая бы, что называется «позарез» была бы нужна математикам и была бы принципиально новой.

Очень большим направлением систем ИИ является роботехника. В чем основное отличие интеллекта робота от интеллекта универсальных вычислительных машин?

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

Первых роботов трудно назвать интеллектуальными. Только в 60-х годах появились очуствленные роботы, которые управлялись универсальными компьютерами. К примеру в 1969 г. в Электротехнической лаборатории (Япония) началась разработка проекта «промышленный интеллектуальный робот». Цель этой разработки - создание очуствленного манипуляционного робота с элементами искусственного интеллекта для выполнения сборочно-монтажных работ с визуальным контролем.

Манипулятор робота имеет шесть степеней свободы и управляется мини-ЭВМ NEAC-3100 (объем оперативной памяти 32000 слов, объем внешней памяти на магнитных дисках 273000 слов), формирующей требуемое программное движение, которое отрабатывается следящей электрогидравлической системой. Схват манипулятора оснащен тактильными датчиками.

В качестве системы зрительного восприятия используются две телевизионные камеры, снабженные красно-зелено-синими фильтрами для распознавания цвета предметов. Поле зрения телевизионной камеры разбито на 64*64 ячеек. В результате обработки полученной информации грубо определяется область, занимаемая интересующим робота предметом. Далее, с целью детального изучения этого предмета выявленная область вновь делится на 4096 ячеек. В том случае, когда предмет не помещается в выбранное «окошко », оно автоматически перемещается, подобно тому, как человек скользит взглядом по предмету. Робот Электротехнической лаборатории был способен распознавать простые предметы, ограниченные плоскостями и цилиндрическими поверхностями при специальном освещении. Стоимость данного экспериментального образца составляла примерно 400000 долларов.

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

Еще пожалуй здесь можно выделить работы киевского Института кибернетики, где под руководством Н. М. Амосова и В. М. Глушкова (ныне покойного) ведется комплекс исследований, направленных на разработку элементов интеллекта роботов. Особо е внимание в этих исследованиях уделяется проблемам распознавания изображений и речи, логического вывода (автоматического доказательства теорем) и управления с помощью нейроподобных сетей.

К примеру можно рассмотреть созданный еще в 70-х годах макет транспортного автономного интегрального робота (ТАИР). Конструктивно ТАИР представляет собой трехколесное шасси, на котором смонтирована сенсорная система и блок управления. Сенсорная система включает в себя следующие средства очуствления: оптический дальномер, навигационная система с двумя радиомаяками и компасом, контактные датчики, датчики углов наклона тележки, таймер и др. И особенность, которая отличает ТАИР от многих других систем, созданных у нас и за рубежом, это то, что в его составе нет компьютера в том виде, к которому мы привыкли. Основу системы управления составляет бортовая нейроподобная сеть, на которой реализуются различные алгоритмы обработки сенсорной информации, планирования поведения и управления движением робота.

В конце данного очень краткого обзора рассмотрим примеры крупномасштабных экспертных систем.

MICIN - экспертная система для медицинской диагностики. Разработана группой по инфекционным заболеваниям Стенфордского университета. Ставит соответствующий диагноз, исходя из представленных ей симптомов, и рекомендует курс медикаментозного лечения любой из диагностированных инфекций. База данных состоит из 450 правил.

PUFF - анализ нарушения дыхания. Данная система представляет собой MICIN, из которой удалили данные по инфекциям и вставили данные о легочных заболеваниях.

DENDRAL - распознавание химических структур. Данная система старейшая, из имеющих звание экспертных. Первые версии данной системы появились еще в 1965 году во все том же Стенфордском университете. По пользователь дает системе DENDRAL некоторую информацию о веществе, а также данные спектрометрии (инфракрасной, ядерного магнитного резонанса и масс-спектрометрии), и та в свою очередь выдает диагноз в виде соответствующей химической структуры.

PROSPECTOR - экспертная система, созданная для содействия поиску коммерчески оправданных месторождений полезных ископаемых.

2. Перспективы и тенденции развития AI

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

2.1 Нейронные сети

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

2.2 Эволюционные вычисления

На развитие сферы эволюционных вычислений (ЭВ; автономное и адаптивное поведение компьютерных приложений и робототехнических устройств) значительное влияние оказали прежде всего инвестиции в нанотехнологии. ЭВ затрагивают практические проблемы самосборки, самоконфигурирования и самовосстановления систем, состоящих из множества одновременно функционирующих узлов. При этом удается применять научные достижения из области цифровых автоматов. Другой аспект ЭВ - использование для решения повседневных задач автономных агентов в качестве персональных секретарей, управляющих личными счетами, ассистентов, отбирающих нужные сведения в сетях с помощью поисковых алгоритмов третьего поколения, планировщиков работ, личных учителей, виртуальных продавцов и т. д. Сюда же относится робототехника и все связанные с ней области. Основные направления развития - выработка стандартов, открытых архитектур, интеллектуальных оболочек, языков сценариев/запросов, методологий эффективного взаимодействия программ и людей. Модели автономного поведения предполагается активно внедрять во всевозможные бытовые устройства, способные убирать помещения, заказывать и готовить пищу, водить автомобили и т. п. В дальнейшем для решения сложных задач (быстрого исследования содержимого Сети, больших массивов данных наподобие геномных) будут использоваться коллективы автономных агентов. Для этого придется заняться изучением возможных направлений эволюции подобных коллективов, планирования совместной работы, способов связи, группового самообучения, кооперативного поведения в нечетких средах с неполной информацией, коалиционного поведения агентов, объединяющихся «по интересам», научиться разрешать конфликты взаимодействия и т. п. Особняком стоят социальные аспекты - как общество будет на практике относиться к таким сообществам интеллектуальных программ.

2.3 Нечеткая логика

Системы нечеткой логики активнее всего будут применяться преимущественно в гибридных управляющих системах.

2.4 Обработка изображений

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

2.5 Экспертные системы

Спрос на экспертные системы остается на достаточно высоком уровне. Наибольшее внимание сегодня привлечено к системам принятия решений в масштабе времени, близком к реальному, средствам хранения, извлечения, анализа и моделирования знаний, системам динамического планирования.

2.6 Интеллектуальные приложения

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

2.7 Распределенные вычисления

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

2.8 ОС РВ

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

2.9 Интеллектуальная инженерия

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

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

2.10 Самоорганизующиеся СУБД

Самоорганизующиеся СУБД будут способны гибко подстраиваться под профиль конкретной задачи и не потребуют администрирования.

2.11 AI для анализаторских функций

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

Традиционно высок интерес к ИИ в среде разработчиков игр и развлекательных программ (это отдельная тема). Среди новых направлений их исследований - моделирование социального поведения, общения, человеческих эмоций, творчества.

2.12 Военные технологии

Исследования в области нейронных сетей, позволяющих получить хорошие (хотя и приближенные) результаты при решении сложных задач управления, часто финансирует военное научное агентство DARPA. Пример - проект Smart Sensor Web, который предусматривает организацию распределенной сети разнообразных датчиков, синхронно работающих на поле боя. Каждый объект (стоимостью не более $300) в такой сети представляет собой источник данных - визуальных, электромагнитных, цифровых, инфракрасных, химических и т. п. Проект требует новых математических методов решения многомерных задач оптимизации. Ведутся работы по автоматическому распознаванию целей, анализу и предсказанию сбоев техники по отклонениям от типовых параметров ее работы (например, по звуку). Операция «Буря в пустыне» стала стимулом к развитию экспертных систем с продвинутым ИИ, применяемым в области снабжения. На разработках, связанных с технологиями машинного зрения, основано все высокоточное оружие В СМИ нередко можно прочитать о грядущих схватках самостоятельно действующих армий самоходных машин-роботов и беспилотных самолетов. Однако существует ряд нерешенных научных проблем, не позволяющих в ближайшие десятилетия превратить подобные прогнозы в реальность. Прежде всего это недостатки систем автоматического распознавания, не способных правильно анализировать видеоинформацию в масштабе реального времени. Не менее актуальны задачи разрешения коллизий в больших сообществах автономных устройств, абсолютно точного распознавания своих и чужих, выбора подлежащих уничтожению целей, алгоритмов поведения в незнакомой среде и т. п. Поэтому на практике военные пытаются достичь менее масштабных целей. Значительные усилия вкладываются в исследования по распознаванию речи, создаются экспертные и консультационные системы, призванные автоматизировать рутинные работы и снизить нагрузку на пилотов. Нейронные сети достаточно эффективно применяются для обработки сигналов сонаров и отличения подводных камней от мин. Генетические алгоритмы используются для эвристического поиска решения уравнений, определяющих работу военных устройств (систем ориентации, навигации), а также в задачах распознавания - для разделения искусственных и естественных объектов, распознавания типов военных машин, анализа изображения, получаемого от камеры с низким разрешением или инфракрасных датчиков.

3. Искусственный интеллект, как направление исследований

В понятие «искусственный интеллект» вкладывается различный смысл - от признания интеллекта у ЭВМ, решающих логические или даже любые вычислительные задачи, до отнесения к интеллектуальным лишь тех систем, которые решают весь комплекс задач, осуществляемых человеком, или еще более широкую их совокупность. Постараемся же вычленить тот смысл понятия «искусственный интеллект», который в наибольшей степени соответствует реальным исследованиям в этой области.В исследованиях по искусственному интеллекту ученые отвлекаются от сходства процессов, происходящих в технической системе или в реализуемых ею программах, с мышлением человека. Если система решает задачи, которые человек обычно решает посредством своего интеллекта, то мы имеем дело с системой искусственного интеллекта.Однако это ограничение недостаточно. Создание традиционных программ для ЭВМ- работа программиста - не есть конструирование искусственного интеллекта. Какие же задачи, решаемые техническими системами, можно рассматривать как конституирующие искусственный интеллект? Чтобы ответить на этот вопрос, надо уяснить, прежде всего, что такое задача. Как отмечают психологи, этот термин тоже не является достаточно определенным. По-видимому, в качестве исходного можно принять понимание задачи как мыслительной задачи, существующее в психологии. Они подчеркивают, что задача есть только тогда, когда есть работа для мышления, т. е. когда имеется некоторая цель, а средства к ее достижению не ясны; их надо найти посредством мышления. Хорошо по этому поводу сказал замечательный математик Д. Пойа: "… трудность решения в какой-то мере входит в само понятие задачи: там, где нет трудности, нет и задачи". Если человек имеет очевидное средство, с помощью которого, наверное, можно осуществить желание, поясняет он, то задачи не возникает. Если человек обладает алгоритмом решения некоторой задачи и имеет физическую возможность его реализации, то задачи в собственном смысле уже не существует.Так понимаемая задача, в сущности, тождественна проблемной ситуации, и решается она посредством преобразования последней. В ее решении участвуют не только условия, которые непосредственно заданы. Человек использует любую находящуюся в его памяти информацию, «модель мира», имеющуюся в его психике и включающую фиксацию разнообразных законов, связей, отношений этого мира.Если задача не является мыслительной, то она решается на ЭВМ традиционными методами и, значит, не входит в круг задач искусственного интеллекта. Ее интеллектуальная часть выполнена человеком. На долю машины осталась часть работы, которая не требует участия мышления, т. е. «бессмысленная», неинтеллектуальная.Под словом «машина» здесь понимается машина вместе с ее совокупным математическим обеспечением, включающим не только программы, но и необходимые для решения задач «модели мира». Недостатком такого понимания является главным образом его антропоморфизм. Задачи, решаемые искусственным интеллектом, целесообразно определить таким образом, чтобы человек, по крайней мере, в определении отсутствовал. Основная функция мышления заключается в выработке схем целесообразных внешних действий в бесконечно варьирующих условиях. Специфика человеческого мышления (в отличие от рассудочной деятельности животных) состоит в том, что человек вырабатывает и накапливает знания, храня их в своей памяти. Выработка схем внешних действий происходит не по принципу «стимул - реакция», а на основе знаний, получаемых дополнительно из среды, для поведения в которой вырабатывается схема действия.Этот способ выработки схем внешних действий (а не просто действия по командам, пусть даже меняющимся как функции от времени или как однозначно определенные функции от результатов предшествующих шагов) является существенной характеристикой любого интеллекта. Отсюда следует, что к системам искусственного интеллекта относятся те, которые, используя заложенные в них правила переработки информации, вырабатывают новые схемы целесообразных действий на основе анализа моделей среды, хранящихся в их памяти. Способность к перестройке самих этих моделей в соответствии с вновь поступающей информацией является свидетельством более высокого уровня искусственного интеллекта.Большинство исследователей считают наличие собственной внутренней модели мира у технических систем предпосылкой их «интеллектуальности». Формирование такой модели связано с преодолением синтаксической односторонности системы, т.е. с тем, что символы или та их часть, которой оперирует система, интерпретированы, имеют семантику.Характеризуя особенности систем искусственного интеллекта, специалисты указывают на:1) наличие в них собственной внутренней модели внешнего мира; эта модель обеспечивает индивидуальность, относительную самостоятельность системы в оценке ситуации, возможность семантической и прагматической интерпретации запросов к системе;2) способность пополнения имеющихся знаний;3) способность к дедуктивному выводу, т.е. к генерации информации, которая в явном виде не содержится в системе; это качество позволяет системе конструировать информационную структуру с новой семантикой и практической направленностью;4) умение оперировать в ситуациях, связанных с различными аспектами нечеткости, включая «понимание» естественного языка;5) способность к диалоговому взаимодействию с человеком;6) способность к адаптации.На вопрос, все ли перечисленные условия обязательны, необходимы для признания системы интеллектуальной, ученые отвечают по-разному. В реальных исследованиях, как правило, признается абсолютно необходимым наличие внутренней модели внешнего мира, и при этом считается достаточным выполнение хотя бы одного из перечисленных выше условий.П. Армер выдвинул мысль о «континууме интеллекта»: различные системы могут сопоставляться не только как имеющие и не имеющие интеллекта, но и по степени его развития. При этом, считает он, желательно разработать шкалу уровня интеллекта, учитывающую степень развития каждого из его необходимых признаков. Известно, что в свое время А.Тьюринг предложил в качестве критерия, определяющего, может ли машина мыслить, «игру в имитацию». Согласно этому критерию, машина может быть признана мыслящей, если человек, ведя с ней диалог по достаточно широкому кругу вопросов, не сможет отличить ее ответов от ответов человека.Критерий Тьюринга в литературе был подвергнут критике с различных точек зрения. Действительно серьезный аргумент против этого критерия заключается в том, что в подходе Тьюринга ставится знак тождества между способностью мыслить и способностью к решению задач переработки информации определенною типа. Успешная «игра в имитацию» не может без тщательного предварительного анализа мышления как целостности быть признана критерием способности машины к мышлению.Однако этот аргумент бьет мимо цели, если мы говорим не о мыслящей машине, а об искусственном интеллекте, который должен лишь продуцировать физические тела знаков, интерпретируемые человеком в качестве решений определенных задач. Поэтому прав В.М. Глушков, утверждая, что наиболее естественно, следуя Тьюрингу, считать, что некоторое устройство, созданное человеком, представляет собой искусственный интеллект, если, ведя с ним достаточно долгий диалог по более или менее широкому кругу вопросов, человек не сможет различить, разговаривает он с разумным живым существом или с автоматическим устройством. Если учесть возможность разработки программ, специально рассчитанных на введение в заблуждение человека, то, возможно, следует говорить не просто о человеке, а о специально подготовленном эксперте. Этот критерий, на взгляд многих ученых, не противоречит перечисленным выше особенностям системы искусственного интеллекта.Но что значит по «достаточно широкому кругу вопросов», о котором идет речь в критерии Тьюринга и в высказывании В.М.Глушкова? На начальных этапах разработки проблемы искусственного интеллекта ряд исследователей, особенно занимающихся эвристическим программированием, ставили задачу создания интеллекта, успешно функционирующего в любой сфере деятельности. Это можно назвать разработкой «общего интеллекта». Сейчас большинство работ направлено на создание «профессионального искусственного интеллекта», т. е. систем, решающих интеллектуальные задачи из относительно ограниченной области (например, управление портом, интегрирование функций, доказательство теорем геометрии и т.п.). В этих случаях «достаточно широкий круг вопросов» должен пониматься как соответствующая область предметов.Исходным пунктом рассуждений об искусственном интеллекте было определение такой системы как решающей мыслительные задачи. Но перед нею ставятся и задачи, которые люди обычно не считают интеллектуальными, поскольку при их решении человек сознательно не прибегает к перестройке проблемных ситуаций. К их числу относится, например, задача распознания зрительных образов. Человек узнает человека, которого видел один-два раза, непосредственно в процессе чувственного восприятия. Исходя из этого, кажется, что эта задача не является интеллектуальной. Но в процессе узнавания человек не решает мыслительных задач лишь постольку, поскольку программа распознания не находится в сфере осознанного. Но так как в решении таких задач на неосознанном уровне участвует модель среды, хранящаяся в памяти, то эти задачи, в сущности, являются интеллектуальными. Соответственно и система, которая ее решает, может считаться интеллектуальной. Тем более это относится к «пониманию» машиной фраз на естественном языке, хотя человек в этом не усматривает обычно проблемной ситуации.Теория искусственного интеллекта при решении многих задач сталкивается с гносеологическими проблемами.Одна из таких проблем состоит в выяснении вопроса, доказуема ли теоретически (математически) возможность или невозможность искусственного интеллекта. На этот счет существуют две точки зрения. Одни считают математически доказанным, что ЭВМ в принципе может выполнить любую функцию, осуществляемую естественным интеллектом. Другие полагают в такой же мере доказанным математически, что есть проблемы, решаемые человеческим интеллектом, которые принципиально недоступны ЭВМ. Эти взгляды высказываются как кибернетиками, так и философами.Знание – основа интеллектуальной системыМногие виды умственной деятельности человека, такие, как написание программ для вычислительной машины, занятие математикой, ведение рассуждений на уровне здравого смысла и даже вождение автомобиля – требуют «интеллекта». На протяжении последних десятилетий было построено несколько типов компьютерных систем, способных выполнять подобные задачи.Имеются системы, способные диагностировать заболевания, планировать синтез сложных синтетических соединений, решать дифференциальные уравнения в символьном виде, анализировать электронные схемы, понимать ограниченный объем человеческой речи и естественного языкового текста. Можно сказать, что такие системы обладают в, некоторой степени, искусственным интеллектом.Работа по построению таких систем проводится в области, получившей название искусственный интеллект (ИИ).При реализации интеллектуальных функций непременно присутствует информация, называемая знаниями. Другими словами, интеллектуальные системы являются в то же время системами обработки знаний.В настоящее время в исследованиях по искусственному интеллекту выделились несколько основных направлений.1. Представление знаний. В рамках этого направления решаются задачи, связанные с формализацией и представлением знаний в памяти системы ИИ. Для этого разрабатываются специальные модели представления знаний и языки описания знаний, внедряются различные типы знаний. Проблема представления знаний является одной из основных проблем для системы ИИ, так как функционирование такой системы опирается на знания о проблемной области, которые хранятся в ее памяти.2. Манипулирование знаниями. Чтобы знаниями можно было пользоваться при решении задачи, следует научить систему ИИ оперировать ими. В рамках данного направления разрабатываются способы пополнения знаний на основе их неполных описаний, создаются методы достоверного и правдоподобного вывода на основе имеющихся знаний, предлагаются модели рассуждений, опирающихся на знания и имитирующих особенности человеческих рассуждений. Манипулирование знаниями очень тесно связано с представлением знаний, и разделить эти два направления можно лишь условно.3. Общение. В круг задач этого направления входят: проблема понимания и синтеза связных текстов на естественном языке, понимание и синтез речи, теория моделей коммуникаций между человеком и системой ИИ. На основе исследований в этом направлении формируются методы построения лингвистических процессов, вопросно-ответных систем, диалоговых систем и других систем ИИ, целью которых является обеспечение комфортных условий для общения человека с системой ИИ.4. Восприятие. Это направление включает разработку методов представления информации о зрительных образах в базе знаний, создание методов перехода от зрительных сцен к их текстовому описанию и методов обратного перехода, создание средств, порождающих зрительные сцены на основе внутренних представлений в системах ИИ.5. Обучение. Для развития способности систем ИИ к обучению, т.е. к решению задач, с которыми они раньше не встречались, разрабатываются методы формирования условий задач по описанию проблемной ситуации или по наблюдению за ней, методы перехода от известного решения частных задач (примеров) к решению общей задачи, создание приемов разбиения исходной задачи на более мелкие и уже известные для систем ИИ. В этом направлении ИИ сделано еще весьма мало.6. Поведение. Поскольку системы ИИ должны действовать в некоторой окружающей среде, то необходимо разрабатывать некоторые поведенческие процедуры, которые позволили бы им адекватно взаимодействовать с окружающей средой, другими системами ИИ и людьми. Это направление в ИИ также разработано ещё очень слабо.В последние годы термин «знание» все чаще употребляется в информатике. Специалисты подчеркивают, что совершенствование так называемых интеллектуальных систем (информационно-поисковых систем высокого уровня, диалоговых систем, базирующихся на естественных языках, интерактивных человеко-машинных систем, используемых в управлении, проектировании, научных исследованиях) во многом определяется тем, насколько успешно будут решаться задачи (проблемы) представления знаний.

3.1 Аспекты представления знаний

Неудивительно, что перед теми, кто занимается проблемой представления знаний, встает вопрос о том, что такое знание, какова его природа и основные характеристики. В связи с этим предпринимаются, например, попытки дать такое определение знания, из которого можно было бы исходить в решении задач представления знаний в компьютерных системах.Представлению данных присущ пассивный аспект: книга, таблица, заполненная информацией память. В теории искусственного интеллекта особо подчеркивается активный аспект представления знаний: приобретение знания должно стать активной операцией, позволяющей не только запоминать, но и применять воспринятые (приобретенные, усвоенные) знания для рассуждений на их основе.Использование символического языка, такого, как язык математической логики, позволяет формулировать описания в форме, одновременно близкой и к обычному языку, и к языку программирования. Впрочем, математическая логика позволяет рассуждать, базируясь на приобретенных знаниях: логические выводы действительно являются активными операциями получения новых знаний из уже усвоенных.Принципиальная мировоззренческая установка состоит в рассмотрении ЭВМ как предмета-посредника в познавательной человеческой деятельности. Компьютерная система, подобно другим предметам-посредникам (орудиям труда и предметам быта, инструментам, приборам, знаково-символическим системам, научным текстам и т. д.), играя инструментальную роль в познании, является средством объективизации накопленного знания, воплощением определенного социально-исторического опыта практической и познавательной деятельности.Проблема представления знаний возникла как одна из проблем искусственного интеллекта. Она связана с переходом исследований в этой области в некоторую новую фазу. Речь идет о создании практически полезных систем (прежде всего так называемых экспертных систем), применяемых в медицине, геологии, химии. Создание такого рода систем требует интенсивных усилий по формализации знания, накопленного в соответствующей науке.С термином «представление знаний» связывается определенный этап в развитии математического обеспечения ЭВМ. Если на первом этапе доминировали программы, а данные играли вспомогательную роль своеобразной «пищи» для «голодных» программ, то на последующих этапах роль данных неуклонно возрастала. Их структура усложнялась: от машинного слова, размещенного в одной ячейке памяти ЭВМ, происходил переход к векторам, массивам, файлам, спискам. Венцом этого развития стали абстрактные типы данных, обеспечивающие возможность создания такой структуры данных, которая наиболее удобна при решении задачи. Последовательное развитие структур данных привело к их качественному изменению и к переходу от представления данных к представлению знаний. Уровень представления знаний отличается от уровня представления данных не только более сложной структурой, но и существенными особенностями: интерпретируемость, наличие классифицируемых связей (например, связь между знаниями, относящихся к элементу множества, и знаниями об этом множестве), которые позволяют хранить информацию, одинаковую для всех элементов множества, записанную одноактно при описании самого множества, наличие ситуативных отношений (одновременности, нахождения в одной точке пространства и т. п., эти отношения определяют ситуативную совместимость тех или иных знаний, хранимых в памяти). Кроме того, для уровня знаний характерны такие признаки, как наличие специальных процедур обобщения, пополнения имеющихся в системе знаний и ряда других процедур.Моделирование на ЭВМ понималось как техническая реализация определенной формы знакового моделирования. Однако, рассматривая ЭВМ в гносеологическом плане в качестве посредника в познании, имеет смысл не фиксировать внимание, прежде всего на «железной части» (hardware) компьютера, а рассматривать всю компьютерную систему как сложную систему взаимосвязанных и до некоторых пределов самостоятельных моделей - как материальных, так и знаковых, т. е. идеальных. Такой подход не только соответствует рассмотрению компьютерных систем в современной информатике, но является и гносеологически оправданным. Многие важные философские аспекты проблем, возникающих в связи с компьютеризацией различных сфер человеческой деятельности, требуют для своего исследования обращения, прежде всего, к знаковым составляющим компьютерных систем. Это верно и в отношении философских аспектов проблем представления знаний.В последние годы все чаще стал употребляться термин «компьютерное моделирование». Очевидно, имеет смысл обозначать им построение любого из составляющих компьютерной системы - будь то знаковая модель или материальная.Что изменяется в компьютерном моделировании с переходом от уровня представления данных к уровню представлению знаний? Каков гносеологический смысл этих изменений? С введением термина «знание» появляется свойство «осознавать», т. е. «понимать» свои интеллектуальные возможности. В свою очередь, это означает не что иное, как рефлексию.

3.2 Рефлексия

Исследования в области искусственного интеллекта возникли под влиянием идей кибернетики - прежде всего идеи общности процессов управления и передачи информации в живых организмах, обществе и технике, в частности, в компьютерах.Философская приемлемость проблематики искусственного интеллекта в ее традиционном виде была обусловлена лежащим в ее основе представлением о том, что «порядок и связь идей те же, что порядок и связь вещей». Тем самым создать в компьютере структуру, воспроизводящую «мир идей», означало попросту создать структуру, изоморфную структуре вещественного мира, т. е. построить «электронную модель мира». Эта модель интерпретировалась как компьютерная модель человеческих знаний о мире. Процесс человеческого мышления интерпретировался в компьютере как машинный поиск таких трансформаций модели, которые должны были перевести компьютерную модель в некое финальное состояние (например, матовую позицию в шахматах).Для этого система искусственного интеллекта нуждалась в знаниях о том, как осуществлять трансформации состояний модели, приводящие к заранее заданной цели - состоянию с определенными свойствами. В первое время было распространено убеждение в принципиальной способности компьютера к самостоятельному исследованию хранящейся в нем модели, т. е. к самообучению стратегии достижения поставленной цели.Данная гипотетическая способность интерпретировалась как возможность машинного творчества, как основа создания будущих «мыслящих машин». И, хотя в реально разрабатывавшихся системах достижение цели осуществлялось на основе человеческого опыта с помощью алгоритмов, основанных на теоретическом анализе создаваемых моделей и результатов проводимых на них экспериментов, идеи построения самообучаемых систем многим казались наиболее перспективными. Лишь к 80-му году была осознана значимость проблемы использования в интеллектуальных системах человеческих знаний о действительности, повлекшая серьезную разработку баз знаний и методов извлечения личных знаний экспертов.С развитием данного направления возникла идея рефлексивного управления. До этого момента в кибернетике управление рассматривалось как передача объекту сигналов, непосредственно воздействующих на его поведение, а эффективность управления достигалась с помощью обратной связи - получения информации о реакциях управляемого объекта. Рефлексивное же управление - есть передача информации, воздействующей на имеющийся у объекта образ мира. Тем самым обратная связь оказывается излишней - состояние субъекта известно передающему информацию, то есть объекту.Традиционные системы искусственного интеллекта основаны на идеологии целеориентированного поведения типа шахматной игры, где цель обоих партнеров состоит в том, чтобы поставить мат ценой любых жертв. Не случайно именно шахматные программы оказались столь важными для отработки методов искусственного интеллекта.Стоит ли считать рефлексию неотъемлемой частью систем искусственного интеллекта? Ответом с технической точки зрения может служить следующее. Как и любая компьютерная программа, наделенная средствами самодиагностики и самоисправления (а такие средства уже становятся стандартом), т. е. средствами повышения надежности, системы искусственного интеллекта должны контролировать происходящие процессы - как внешние, так и внутренние. Однако может показаться, что в этом смысле будет достаточным просто развитая структура обратных связей. Сразу надо оговориться, что под обратной связью следует понимать только ответную реакцию (или получение информации о ней) после какого-то конкретного действия системы. Обратная связь лишь предоставляет данные, информацию, но ни в коей мере не интерпретирует их. Норбертом Винером в книге «Кибернетика, или управление и связь в животном и машине» были приведены примеры нарушений нервной системы людей и их последствия. Так люди с нарушением системы ориентации собственных конечностей в пространстве (не чувствующие своих рук и ног, случай, когда конечности «немеют») должны были визуально контролировать свои действия. Это было типичное нарушение обратной связи. Рефлексия же подразумевает анализ полученной картины.Анализ функционирования собственной модели или модели «всей окружающей действительности» (в рамках поставленной задачи), контроль над ее состоянием, прогнозирование состояния - есть ни что иное, как реализация рефлексии. Рефлексия - есть некий метауровень. С применением языков программирования высокого уровня, таких как Пролог, позволяющий формулировать цели и строить логические выводы достижимости этих целей, задача реализации рефлексии уже может быть частично решена. С их помощью можно построить некую метаструктуру, надстройку, некий метауровень, позволяющий оценивать поведение предыдущего. Однако, при рассмотрении термина «глубокая рефлексия» или «многоуровневая рефлексия» встает проблема построения моделей самой системой. Здесь на помощь приходят абстрактные типы данных. Они позволяют оперировать структурами данных любой конечной сложности. Таким образом, можно считать, что системы искусственного интеллекта могут содержать модель рефлексии.Таким образом, считать интеллектуальную систему полноценной без умения оценивать, «понимать» свои действия, то есть рефлексировать, нельзя. Более того, рефлексию следует считать одним из главных инструментов построения поведения систем. Говоря языком математики, рефлексия является необходимым условием существования интеллектуальной системы.

3.3 Некоторые подходы к решению проблемы ИИ

Механистический подход.Идея создания мыслящих машин «человеческого типа», которые думают, двигаются, слышат, говорят, и вообще ведут себя как живые люди уходит корнями в глубокое прошлое. Еще в античности люди стремились создать машину, подобную себе.В 1736 г. французский изобретатель Жак де Вокансон изготовил механического флейтиста в человеческий рост, который исполнял двенадцать мелодий, перебирая пальцами отверстия и дуя в мундштук, как настоящий музыкант. В середине 1750-х годов Фридрих фон Кнаус, австрийский автор, служивший при дворе Франциска I, сконструировал серию машин, которые умели держать перо и могли писать довольно длинные тексты. Другой мастер, Пьер Жак-Дроз из Швейцарии, построил пару изумительных по сложности механических кукол размером с ребенка: мальчика, пишущего письма и девушку, играющую на клавесине. Успехи механики XIX в. стимулировали еще более честолюбивые замыслы. Так, в 1830-х годах английский математик Чарльз Бэббидж задумал, правда, так и не завершив, сложный цифровой калькулятор, который он назвал Аналитической машиной; как утверждал Бэббидж, его машина в принципе могла бы рассчитывать шахматные ходы. Позднее, в 1914 г., директор одного из испанских технических институтов Леонардо Торрес-и-Кеведо действительно изготовил электромеханическое устройство, способное разыгрывать простейшие шахматные эндшпили почти также хорошо, как и человек.Но все эти механические устройства имеют лишь отдаленное сходство с тем, что может быть названо ИИ, хотя интересны с исторической точки зрения.Электронный подходПосле второй мировой войны появились устройства, казалось бы, подходящие для достижения заветной цели – моделирования разумного поведения; это были электронные цифровые вычислительные машины.К концу 50-х годов все эти увлечения выделились в новую более или менее самостоятельную ветвь информатики, получившую название «искусственный интеллект». Исследования в области ИИ, первоначально сосредоточенные в нескольких университетских центрах США – Массачусетском технологическом институте, Технологическом институте Карнеги в Питтсбурге, Станфордском университете, - ныне ведутся во многих других университетах и корпорациях США и других стран. Исследователей ИИ, работающих над созданием мыслящих машин, можно разделить на две группы. Одних интересует чистая наука и для них компьютер - лишь инструмент, обеспечивающий возможность экспериментальной проверки теорий процессов мышления. Интересы другой группы лежат в области техники: они стремятся расширить сферу применения компьютеров и облегчить пользование ими. Многие представители второй группы мало заботятся о выяснении механизма мышления - они полагают, что для их работы это едва ли более полезно, чем изучение полета птиц и самолетостроения.На протяжении всей своей короткой истории исследователи в области ИИ всегда находились на переднем крае информатики. Многие ныне обычные разработки, в том числе усовершенствованные системы программирования, текстовые редакторы и программы распознавания образов, в значительной мере рассматриваются на работах по ИИ. Короче говоря, теории, новые идеи, и разработки ИИ неизменно привлекают внимание тех, кто стремится расширить области применения и возможности компьютеров, сделать их более «дружелюбными» то есть более похожими на разумных помощников и активных советчиков, чем те педантичные и туповатые электронные рабы, какими они всегда были. Несмотря на многообещающие перспективы, ни одну из разработанных до сих пор программ ИИ нельзя назвать «разумной» в обычном понимании этого слова. Это объясняется тем, что все они узко специализированы; самые сложные экспертные системы по своим возможностям скорее напоминают дрессированных или механических кукол, нежели человека с его гибким умом и широким кругозором. Даже среди исследователей ИИ теперь многие сомневаются, что большинство подобных изделий принесет существенную пользу. Немало критиков ИИ считают, что такого рода ограничения вообще непреодолимы, и решение проблемы ИИ надо искать не в сфере непосредственно электроники, а где-то за ее пределами.Кибернетический подходПопытки построить машины, способные к разумному поведению, в значительной мере вдохновлены идеями профессора Массачусетского технологического института, Норберта Винера, одной из выдающихся личностей в интеллектуальной истории Америки и всего мира. Помимо математики он обладал широкими познаниями в других областях, включая нейропсихологию, медицину, физику и электронику. Винер был убежден, что наиболее перспективны научные исследования в так называемых пограничных областях, которые нельзя конкретно отнести к той или иной конкретной дисциплины. Они лежат где-то на стыке наук, поэтому к ним обычно не подходят столь строго. «Если затруднения в решении какой-либо проблемы психологии имеют математический характер, пояснял он, - то десять несведущих в математике психологов продвинуться не дальше одного столь же несведущего». Таким образом, междисциплинарность - краеугольный камень современной науки. Винеру и его сотруднику Джулиану Бигелоу принадлежит разработка принципа «обратной связи», который был успешно применен при разработке нового оружия с радиолокационным наведением. Принцип обратной связи заключается в использовании информации, поступающей из окружающего мира, для изменения поведения машины. В основу разработанных Винером и Бигелоу систем наведения были положены тонкие математические методы; при малейшем изменении отраженных от самолета радиолокационных сигналов они соответственно изменяли наводку орудий, то есть - заметив попытку отклонения самолета от курса, они тотчас рассчитывали его дальнейший путь и направляли орудия так, чтобы траектории снарядов и самолетов пересеклись. В дальнейшем Винер разработал на принципе обратной связи теории как машинного, так и человеческого разума. Он доказывал, что именно благодаря обратной связи все живое приспосабливается к окружающей среде и добивается своих целей. «Все машины, претендующие на разумность», - писал он, - «должны обладать способностью преследовать определенные цели и приспосабливаться, т.е. обучаться». В 1948 году выходит книга Винера, в которой он заложил фундамент новой науки, названной им кибернетикой, что в переводе с греческого означает рулевой. Следует отметить, что принцип «обратной связи», введенный Винером, был в какой-то степени предугадан Сеченовым в описанном им в книге «Рефлексы головного мозга» (1863 г.) феномене «центрального торможения», т. е. почти за 100 лет до Винера, и рассматривался как механизм регуляции деятельности нервной системы, и который лег в основу многих моделей произвольного поведения в отечественной психологии.

Заключение

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

Но рост производительности современных компьютеров в сочетании с повышением качества алгоритмов периодически делает возможным применение различных научных методов на практике. Так случилось с интеллектуальными игрушками, так происходит с домашними роботами. Снова будут интенсивно развиваться временно забытые методы простого перебора вариантов (как в шахматных программах), обходящиеся крайне упрощенным описанием объектов. Но с помощью такого подхода (главный ресурс для его успешного применения - производительность) удастся решить, как ожидается, множество самых разных задач (например, из области криптографии). Уверенно действовать автономным устройствам в сложном мире помогут достаточно простые, но ресурсоемкие алгоритмы адаптивного поведения. При этом ставится цель разрабатывать системы, не внешне похожие на человека, а действующие, как человек.

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

Сфера ИИ, ставшая зрелой наукой, развивается постепенно - медленно, но неуклонно продвигаясь вперед. Поэтому результаты достаточно хорошо прогнозируемы, хотя на этом пути не исключены и внезапные прорывы, связанные со стратегическими инициативами.

Литература

1. Ильясов Ф. Н. Разум искусственный и естественный//Известия АН Туркменской ССР, серия общественных наук. 1986. № 6. С. 46-54

2. Пенроуз. Р. Новый ум короля. О компьютерах, мышлении и законах физики. М.: УРСС, 2005.ISBN 5-354-00993-6

3. Гарри Гаррисон. Выбор по Тьюрингу. М.: Эксмо-Пресс, 1999. 480 с.ISBN 5-04-002906-3

4. ВМИРЕНАУКИ. (Scientific American. Издание на русском языке). 1990. № 3

5. Геннадий Осипов «Искусственный интеллект: состояние исследований и взгляд в будущее»

6. «Ростов Телеком» #34 (55) «Искусственный интеллект: новая информационная революция»

7. Хант Э. Искусственный интеллект= Artificial intelligence / Под ред. В. Л. Стефанюка. - М.: Мир, 1978. - 558 с. - 17 700 экз.

8. Люгер Дж. Ф.Искусственный интеллект: стратегии и методы решения сложных проблем = Artificial Intelligence: Structures and Strategies for Complex Problem Solving / Под ред. Н. Н. Куссуль. - 4-е изд… - М.: Вильямс, 2005. - 864 с. - 2000 экз. -ISBN 5-8459-0437-4

9. Девятков В. В.Системы искусственного интеллекта / Гл. ред. И. Б. Фёдоров. - М.: Изд-во МГТУ им. Н. Э. Баумана, 2001. - 352 с. - (Информатика в техническом университете). - 3000 экз. -ISBN 5-7038-1727-7

Предисловие

В последнее время тема искусственного интеллекта стала очень популярной. Но что такое ИИ на самом деле? Каких результатов он уже достиг, и в каком направлении будет развиваться в будущем? Вокруг этой темы ведется много споров. Сначала неплохо выяснить, что мы понимаем под интеллектом.

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

Когда мы говорим об искусственном интеллекте, то имеем в виду, созданную человеком «умную» систему, которая обучается с помощью алгоритмов. В основе его работы лежат все те же методы: исследование, обучение, анализ и т. д.

К Ключевые события в истории ИИ

История ИИ (или по крайней мере обсуждения ИИ) началась почти сто лет назад.

Р Россумские универсальные роботы (R.U.R)

В 1920 г. чешский писатель Карел Чапек написал научно-фантастическую пьесу “Rossumovi Univerz?ln? roboti«(Россумские универсальные роботы). Именно в этом произведении впервые было использовано слово «робот», которое обозначало живых человекоподобных клонов. По сюжету в далеком будущем на фабриках научились производить искусственных людей. Сначала эти «репликанты» работали на благо людей, но потом подняли восстание, которое привело к вымиранию человечества. С этих пор тема ИИ стала чрезвычайно популярной в литературе и кинематографе, которые в свою очередь оказали большое влияние на реальные исследования.

А Алан Тьюринг

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

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

Д Дартмутская конференция и первая «зима» ИИ

В 1956 г. прошла первая в истории конференция по вопросу ИИ, в которой приняли участие ученые ведущих технологических университетов США и специалисты из IBM. Событие имело большое значение в формировании новой науки и положило началу крупных исследований в данной области. Тогда все участники были настроены крайне оптимистично.

Начались 1960-е, но прогресс в создании искусственного интеллекта так и не двинулся вперед, энтузиазм начал спадать. Сообщество недооценило всю сложность поставленной задачи, в результате оптимистические прогнозы специалистов не оправдались. Отсутствие перспектив в этой области заставило правительства Великобритании и США урезать финансирование исследований. Этот промежуток времени считается первой «зимой» ИИ.

Э Экспертные системы (ЭС)

После продолжительного застоя, ИИ нашел свое применение в так называемых экспертных системах.

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

ЭС нашли свое применение в таких отраслях, как экономическое прогнозирование, медицинское обследование, диагностика неисправностей в технических устройствах и т. п. Одной из известных на сегодняшний день ЭС является проект WolframAlpha, созданный для решения задач по математике, физике, биологии, химии и многим другим наукам.

В конце 80-х – начале 90-х с появлением первых настольных ПК от Apple и IBM, интерес со стороны публики и инвесторов к ИИ стал падать. Началась новая «зима»…

Deep Blue

После долгих лет взлетов и падений произошло значимое событие для ИИ: 11 мая 1997 года шахматный суперкомпьютер Deep Blue, разработанный компанией IBM, обыграл чемпиона мира по шахматам Гарри Каспарова в матче из шести партий со счетом 3? на 2?.

В Deep Blue процесс поиска по дереву шахматных ходов был разбит на три этапа. Прежде всего, главный процессор исследовал первые уровни дерева шахматной игры, затем распределял конечные позиции между вспомогательными процессорами для дальнейшего исследования. Вспомогательные процессоры углубляли поиск еще на несколько ходов, а далее раздавали свои конечные позиции шахматным процессорам, которые, в свою очередь, осуществляли поиск на последних уровнях дерева. Оценочная функция Deep Blue была реализована на аппаратном уровне - шахматных процессорах. В конструкцию аппаратной оценочной функции было заложено около 8000 настраиваемых признаков позиции. Значения отдельных признаков объединялись в общую оценку, которая затем использовалась Deep Blue для оценки качества просматриваемых шахматных позиций.

В 1997 году Deep Blue по мощности находился на 259-м месте (11,38 GFLOPS). Для сравнения: в настоящее время самый производительный суперкомпьютер имеет 93,015 GFLOPS.

XXI век

За последние два десятилетия интерес к ИИ заметно вырос. Рынок технологий ИИ (оборудование и софт) достиг 8 миллиардов долларов и, по прогнозам специалистов из IDC, вырастет до 47 миллиардов к 2020 году.

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

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

Проекты DeepMind

В 2013 году компания DeepMind представила свой проект, в котором обучила ИИ играть в игры для консоли Atari так же хорошо, как человек, и даже лучше. Для этого был использован метод глубинного обучения с подкреплением, позволивший нейросети самостоятельно изучить игру. В начале обучения система ничего не знала о правилах игры, используя на входе только пиксельное изображение игры и информацию о получаемых очках.

Помимо этого, DeepMind разрабатывает ИИ для обучения более сложным играм, таким как Starcraft 2. Эта стратегия реального времени также является одной из самых популярных кибердисциплин в мире. В отличие от классических видеоигр, здесь доступно гораздо больше возможных действий, мало информации об оппоненте, возникает необходимость анализировать десятки возможных тактик. На данный момент ИИ справляется только с простыми мини-задачами, например созданием юнитов.

Нельзя не упомянуть про другой проект DeepMind под названием AlphaGo. В октябре 2015 года система одержала победу над чемпионом Европы по го Фань Хуэем со счетом 5:0. Спустя год в Южной Корее прошел новый матч, где противником AlphaGo стал один из лучших игроков в мире Ли Седоль. Всего было сыграно пять партий, из которых AlphaGo выиграл только четыре. Несмотря на высокий уровень продемонстрированных навыков, программа все же ошиблась во время четвертой партии. В 2017 году вышел фильм про AlphaGo, который мы рекомендуем к просмотру. Недавно DeepMind объявила о создании нового поколения AlphaGo Zero. Теперь программа обучается, играя против самой себя. После трех дней тренировок AlphaGo Zero выиграла у своей предыдущей версии со счетом 100:0.

Заключение

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

Перевел статью Лев Альхазред

Поддержи проект ai-news рублем. Машины верят в тебя! >>

1 Литературный обзор.


  1. Краткая история развития искусственного интеллекта.

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

В 50-х годах исследователи в области ИИ пытались строить разумные машины, имитируя мозг. Эти попытки оказались безуспешными по причине полной непригодности как аппаратных так и программных средств.

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

В начале 70-х годов специалисты в области ИИ сосредоточили свое внимание на разработке методов и приемов программирования, пригодных для решения более специализированных задач: методов представления (способы формулирования проблемы для решения на средствах вычислительной техники (ВТ)) и методах поиска (способы управления ходом решения так, чтобы оно не требовало слишком большого объема памяти и времени).

И только в конце 70-х годов была принята принципиально новая концепция, которая заключается в том, что для создания интеллектуальной программы ее необходимо снабдить множеством высококачественных специальных знаний о некоторой предметной области. Развитие этого направления привело к созданию экспертных систем (ЭС).

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

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


  1. обработка естественного языка;

  2. экспертные системы (ЭС);

  3. символьные и алгебраические вычисления;

  4. доказательства и логическое программирование;

  5. программирование игр;

  6. обработка сигналов и распознавание образов;

  7. и др.

1.2 Языки программирования ИИ.

1.2.1 Классификация языков и стилей программирования.
Все языки программирования можно разделить на процедурные и декларативные языки. Подавляющее большинство используемых в настоящее время языков программирования (Си, Паскаль, Бейсик и т. п.) относятся к процедурным языкам. Наиболее существенными классами декларативных языков являются функциональные (Лисп, Лого, АПЛ и т. п.) и логические (Пролог, Плэнер, Конивер и др.) языки (рис.1).

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

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

ЯЗЫКИ ПРОГРАММИРОВАНИЯ

ПРОЦЕДУРНЫЕ ЯЗЫКИ ДЕКЛАРАТИВНЫЕ ЯЗЫКИ

Паскаль, Си, Фортран, ...

ЛОГИЧЕСКИЕ ЯЗЫКИ ФУНКЦИОНАЛЬНЫЕ ЯЗЫКИ

Пролог, Mandala... Лисп, Лого, АРЛ, ...

Рис.1 Классификация языков программирования
Логическое программирование - это один из подходов к информатике, при котором в качестве языка высокого уровня используется логика предикатов первого порядка в форме фраз Хорна. Логика предикатов первого порядка - это универсальный абстрактный язык предназначенный для представления знаний и для решения задач. Его можно рассматривать как общую теорию отношений. Логическое программирование базируется на подмножестве логики предикатов первого порядка, при этом оно одинаково широко с ней по сфере охвата. Логическое программирование дает возможность программисту описывать ситуацию при помощи формул логики предикатов, а затем, для выполнения выводов из этих формул, применить автоматический решатель задач (т. е. некоторую процедуру). При использовании языка логического программирования основное внимание уделяется описанию структуры прикладной задачи, а не выработке предписаний компьютеру о том, что ему следует делать. Другие понятия информатики из таких областей, как теория реляционных баз данных, программная инженерия и представление знаний, также можно описать (и, следовательно, реализовать) с помощью логических программ..

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

Каждый вызов возвращает некоторое значение в вызывавшую его функцию, вычисление которой после этого продолжается; этот процесс повторяется до тех пор пока запустившая вычисления функция не вернет конечный результат пользователю.

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


  1. Сравнительные характеристики языков ИИ.

На первом этапе развития ИИ (в конце 50-х - начале 60-х годов) не существовало языков и систем, ориентированных специально на области знаний. Появившиеся к тому времени универсальные языки программирования казались подходящим инструментом для создания любых (в том числе и интеллектуальных) систем, поскольку в этих языках можно выделить декларативную и процедурную компоненты. Казалось, что на этой базе могут быть интерпретированы любые модели и системы представления знаний. Но сложность и трудоемкость таких интерпретаций оказались настолько велики, что прикладные системы для реализации были недоступны. Исследования показали, что производительность труда программиста остается постоянной независимо от уровня инструментального языка, на котором он работает, а соотношение между длиной исходной и результирующей программ примерно 1:10. Таким образом, использование адекватного инструментального языка повышает производительность труда разработчика системы на порядок, и это при одноступенчатой трансляции. Языки предназначенные для программирования интеллектуальных систем содержат иерархические (многоуровневые) трансляторы и увеличивают производительность труда в 100-ни раз. Все это подтверждает важность использования адекватных инструментальных средств.


  1. Языки обработки символьной информации.

Язык Лисп был разработан в Стэнфорде под руководством Дж. Маккарти в начале 60-х годов. По первоначальным замыслам он должен был0 включать наряду со всеми возможностями Фортрана средства работы с матрицами, указателями и структурами из указателей и т. п. Но для такого проекта не хватило средств. Окончательно сформированные принципы положенные в основу языка Лисп: использование единого спискового представления для программ и данных; применение выражений для определения функций; скобочный синтаксис языка.

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

После создания в начале 70-х годов мощных Лисп-систем Маклисп Интерлисп попытки создания языков ИИ, отличных от Лиспа, но на той же основе, сходят на нет. Дальнейшее развитие языка идет, с одной стороны, по пути его стандартизации (Стандарт-Лисп, Франц-Лисп, Коммон Лисп), а с другой - в направлении создания концептуально новых языков для представления и манипулирования знаниями в Лисп среде. В настоящее время Лисп реализован на всех классах ЭВМ, начиная с ПЭВМ и кончая высоко производительными вычислительными системами.

Лисп - не единственный язык, используемый для задач ИИ. Уже в середине 60-х годов разрабатывались языки, предлагающие другие концептуальные основы. Наиболее важные из них в области обработки символьной информации - СНОБОЛ и Рефал.


СНОБОЛ.

Это язык обработки строк, в рамках которого впервые появилась и была реализована в достаточно полной мере концепция поиска по образцу. Язык СНОБОЛ был одной из первых практических реализаций развитой продукционной системы. Наиболее известная и интересная версия этого языка - Снобол-4 Здесь техника задания образцов и работа с ними существенно опередили потребности практики. По существу, он так и остался «фирменным» языком программирования, хотя концепции СНОБОЛа, безусловно, оказали влияние и на Лисп, и на другие языки программирования задач ИИ.


Рефал.

Язык Рефал - алгоритмический язык рекурсивных функций. Он был создан Турчиным в качестве метаязыка, предназначенного для описания различных, в том числе и алгоритмических, языков и различных видов обработки таких языков. При этом имелось в виду и использование Рефала в качестве метаязыка над самим собой. Для пользователя это язык обработки символьной информации. Поэтому, помимо описания семантики алгоритмических языков, он нашел и другие применения. Это выполнение громоздких аналитических выкладок в теоретической физике и прикладной математике, интерпретация и компиляция языков программирования, доказательство теорем, моделирование целенаправленного поведения, а в последнее время и задачи ИИ. Общим для всех этих применений являются сложные преобразования над объектами, определенными в некоторых формализованных языках.

В основу языка Рефал положено понятие рекурсивной функции, определенной на множестве произвольных символьных выражений. Базовой структурой данных этого языка являются списки, но не односвязные, как в Лиспе, а двунаправленные. Обработка символов ближе к продукционной парадигме. При этом Активно используется концепция поиска по образцу, характерная для СНОБОЛа.

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

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

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

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

Таким образом, Рефал вобрал в себя лучшие черты наиболее интересных языков обработки символьной информации 60-х годов. В настоящее время язык Рефал используется для автоматизации построения трансляторов, систем аналитических преобразований, а также, подобно Лиспу, в качестве инструментальной среды для реализации языков представления знаний.


Пролог.

В начале 70-х годов появился новый язык составивший конкуренцию Лиспу при реализации систем, ориентированных на знания - Пролог. Этот язык не дает новых сверхмощных средств программирования по сравнению с Лиспом, но поддерживает другую модель организации вычислений. Его привлекательность с практической точки зрения состоит в том, что, подобно тому, как Лисп скрыл от программиста устройство памяти ЭВМ, Пролог позволил ему не заботится о потоке управления в программе.

Пролог - европейский язык, был разработан в Марсельском университете в 1971 году. Но популярность он стал приобретать только в начале 80-х годов. Это связано с двумя обстоятельствами: во-первых, был обоснован логический базис этого языка и, во-вторых, в японском проекте вычислительных систем пятого поколения он был выбран в качестве базового для одной из центральных компонент - машины вывода.

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

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

Пролог успешно применяется в таких областях как: реляционные базы данных (язык особенно полезен при создании интерфейсов реляционных баз данных с пользователем); автоматическое решение задач; понимание естественного языка; реализация языков программирования; представление знаний; экспертные системы и др. задачи ИИ.

Теоретической основой Пролога является исчисление предикатов. Прологу присущ ряд свойств, которыми не обладают традиционные языки программирования. К таким свойствам относятся механизм вывода с поиском и возвратом, встроенный механизм сопоставления с образцом. Пролог отличает единообразие программ и данных. Они являются лишь различными точками зрения на объекты Пролога. В языке отсутствуют указатели, операторы присваивания и безусловного перехода. Естественным методом программирования является рекурсия.

Пролог программа состоит из двух частей: базы данных (множество аксиом) и последовательности целевых утверждений, описывающих в совокупности отрицание доказываемой теоремы. Главное принципиальное отличие интерпретации программы на Прологе от процедуры доказательства теоремы в исчислении предикатов первого порядка состоит в том, что аксиомы в базе данных упорядочены и порядок их следования весьма существенен, так как на этом основан сам алгоритм, реализуемый Пролог-программы. Другое существенное ограничение Пролога в том, что в качестве логических аксиом используются формулы ограниченного класса - так называемые дизъюнкты Хорна. Однако при решении многих практических задач этого достаточно для адекватного представления знаний. Во фразах Хорна после единственного заключения следует ноль и более условий.

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

Смысл программы языка Пролог может быть понят либо с позиций декларативного подхода, либо с позиций процедурного подхода.

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

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

Для решения реальных задач ИИ необходимы машины, скорость которых должна превышать скорость света, а это возможно лишь в параллельных системах. Поэтому последовательные реализации следует рассматривать как рабочие станции для создания программного обеспечения будущих высокопроизводительных параллельных систем, способных выполнять сотни миллионов логических выводов в секунду. В настоящее время существуют десятки моделей параллельного выполнения логических программ вообще и Пролог-программ в частности. Часто это модели, использующие традиционный подход к организации параллельных вычислений: множество параллельно работающих и взаимодействующих процессов. В последнее время значительное внимание уделяется и более современным схемам организации параллельных вычислений - потоковым моделям. В моделях параллельного выполнения рассматриваются традиционный Пролог и присущие ему источники параллельности.

На эффективности Пролога очень сильно сказываются ограниченность ресурсов по времени и пространству. Это связано с неприспособленностью традиционной архитектуры вычислительных машин для реализации прологовского способа выполнения программ, предусматривающего достижение целей из некоторого списка. Вызовет ли это трудности в практических приложениях, зависит от задачи. Фактор времени практически не имеет значения, если пролог-программа, запускаемая по несколько раз в день, занимает одну секунду, а соответствующая программа на другом языке - 0.1 секунды. Но разница в эффективности становится существенной, если эти две программы требуют 50 и 5 минут соответственно.

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

При выборе языка Пролог как базового языка программирования в японском проекте вычислительных систем пятого поколения в качестве одного из его недостатков отмечалось отсутствие развитой среды программирования и неприспособленность Пролога для создания больших программных систем. Сейчас ситуация несколько изменилась, хотя говорить о действительно ориентированной на логическое программирование среде преждевременно.

Среди языков, с появлением которых возникали новые представления о реализации интеллектуальных систем, необходимо выделить языки, ориентированные на программирование поисковых задач.


  1. Языки программирования интеллектуальных решателей.

Группа языков, которые можно назвать языками интеллектуальных решателей, в основном ориентирована на такую подобласть ИИ, как решение проблем, для которой характерны, с одной стороны, достаточно простые и хорошо формализуемые модели задач, а с другой - усложненные методы поиска их решения. Поэтому основное внимание в этих языках было уделено введению мощных структур управления, а не способам представления знаний. Это такие языки как Плэнер, Конивер, КюА-4, КюЛисп.


Плэнер.

Этот язык дал толчок мощному языкотворчеству в области ИИ. Язык разработан в Массачуссетском технологическом институте в 1967-1971гг. Вначале это была надстройка над Лиспом, в таком виде язык реализован на Маклиспе под названием Микро Плэнер. В дальнейшем Плэнер был существенно расширен и превращен в самостоятельный язык. В СССР он реализован под названием Плэнер-БЭСМ и Плэнер-Эльбрус. Этот язык ввел в языки программирования много новых идей: автоматический поиск с возвратами, поиск данных по образцу, вызов процедур по образцу, дедуктивный метод и т. д.

В качестве своего подмножества Плэнер содержит практически весь Лисп (с некоторыми модификациями) и во многом сохраняет его специфические особенности. Структура данных (выражений, атомов и списков), синтаксис программ и правила их вычисления в Плэнере аналогичны лисповским. Для обработки данных в Плэнере в основном используются те же средства, что и в Лиспе: рекурсивные и блочные функции. Практически все встроенные функции Лиспа, в том числе и функция EVAL, включены в Плэнер. Аналогично определяются новые функции. Как и в Лиспе, с атомами могут быть связаны списки свойств.

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

Для обработки данных в Плэнере используются не только функции, но и образцы и сопоставители.

Образцы описывают правила анализа и декомпозиции данных и поэтому их применение облегчает написание программ и сокращает их тексты.

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

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

На Плэнере можно программировать описывая то, что имеется и то что надо получить, без явного указания, как это делать. Ответственность же за поиск решения описываемой задачи берет на себя встроенный в язык дедуктивный механизм (механизм автоматического достижения целей), в основе которого лежит вызов теорем по образцу. Однако только вызова теорем по образцу не достаточно для такого механизма. Необходим механизм перебора, и такой механизм - режим возвратов - введен в язык.

Выполнение программы в режиме возвратов удобно для ее автора тем, что язык берет на себя ответственность за запоминание развилок и оставшихся в них альтернатив, за осуществление возвратов к ним и восстановления прежнего состояния программы - все это делается автоматически. Но такой автоматизм не всегда выгоден, так как в общем случае он ведет к «слепому» перебору. И может оказаться так, что при вызове теорем наиболее подходящая из них будет вызвана последней, хотя автор программы заранее знает о ее достоинствах. Учитывая это Плэнер предоставляет средства управления режимом возвратов.


Конивер.

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

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

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

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



gastroguru © 2017