По мнению специалистов [1], в недалекой перспективе экспертные системы будут играть ведущую роль во всех фазах проектирования, разработки, производства, распределения, продажи, поддержки и оказания услуг. Их технология, получив коммерческое распространение, обеспечит революционный прорыв в интеграции приложений из готовых интеллектуально-взаимодействующих модулей.
Коммерческий рынок продуктов искусственного интеллекта в мире в 1993 году оценивался примерно в 0,9 млрд. долларов; из них 600 млн. приходится на долю США [2]. Выделяют несколько основных направлений этого рынка:
1) экспертные системы; теперь их часто обозначают еще одним термином - "системы, основанные на знаниях";
2) нейронные сети и "размытые" (fuzzy) логики;
3) естественно-языковые системы.
Одно из наиболее популярных направлений последних пяти лет связано с понятием автономных агентов. Их нельзя рассматривать как "подпрограммы", - это скорее прислуга, даже компаньон, поскольку одной из важнейших их отличительных черт является автономность, независимость от пользователя. Идея агентов опирается на понятие делегирования своих функций. Другими словами, пользователь должен довериться агенту в выполнении определенной задачи или класса задач. Всегда существует риск, что агент может что-то перепутать, сделать что-то не так. Следовательно, доверие и риск должны быть сбалансированными. Автономные агенты позволяют существенно повысить производительность работы при решении тех задач, в которых на человека возлагается основная нагрузка по координации различных действий.
Следующее направление в области искусственной жизни - генетическое программирование (genetic programming) - является попыткой использовать метафору генной инженерии для описания различных алгоритмов. Строки (string) искусственной "генетической" системы аналогичны хромосомам в биологических системах. Законченный набор строк называется структурой (structure). Структуры декодируются в набор параметров, альтернативы решений или точку в пространстве решений. Строки состоят из характеристик, или детекторов, которые могут принимать различные значения. Детекторы могут размещаться на разных позициях в строке. Все это сделано по аналогии с реальным миром. В природных системах полный генетический пакет называется генотипом. Организм, который образуется при взаимодействии генотипа с окружающей средой, носит название фенотипа. Хромосомы состоят из генов, которые могут принимать разные значения. (Например, ген цвета для глаза животного может иметь значение "зеленый" и позицию 10).
|
Причины, приведшие системы искусственного интеллекта к коммерческому успеху, следующие:
1. Специализация. Переход от разработки инструментальных средств общего назначения к проблемно/предметно специализированным средствам [4], что обеспечивает сокращение сроков разработки приложений, увеличивает эффективность использования инструментария, упрощает и ускоряет работу эксперта, позволяет повторно использовать информационное и программное обеспечение (объекты, классы, правила, процедуры).
2. Использование языков традиционного программирования и рабочих станций. Переход от систем, основанных на языках искусственного интеллекта (Lisp, Prolog и т.п.), к языкам традиционного программирования (С, С++ и т.п.) упростил "интегрированность" и снизил требования приложений к быстродействию и емкости памяти. Использование рабочих станций вместо ПК резко увеличило круг возможных приложений методов искусственного интеллекта.
|
3. Интегрированность. Разработаны инструментальные средства искусственного интеллекта, легко интегрирующиеся с другими информационными технологиями и средствами (с CASE, СУБД, контроллерами, концентраторами данных и т.п.).
4. Открытость и переносимость. Разработки ведутся с соблюдением стандартов, обеспечивающих данные характеристики [5].
5. Архитектура клиент/сервер. Разработка распределенной информационной системы в данной архитектуре позволяет снизить стоимость оборудования, используемого в приложении, децентрализовать приложения, повысить надежность и общую производительность, поскольку сокращается объем информации, пересылаемой между ЭВМ, и каждый модуль приложения выполняется на адекватном оборудовании.
41. Язык программирования Turbo Prolog. Основные понятия. Область применения.
Имена отношений и тип переменных, которые ими связываются, задаются в секции программы predicates. Описание фактов и правил задается в секции программы clauses.
Кроме отношений факты могут выражать также свойства отдельных объектов. Это кажется естественным, поскольку ощущаемые нами свойства объекта – это ни что иное, как отношение между нами и объектом. Просто в этом случае, мы как созерцатели и способные чувствовать опускаемся в факте, уступая место основному объекту. Например, тот факт, что «Роза(rose) красная(red)» можно записать так: red (rose).
|
Иногда свойства объекта могут выражаться числом. Например, «Ивану 29 лет». Обозначив отношение, как age – возраст, можно записать его так: age (ivan,29).
Еще одной особенность Пролога является наличие анонимных переменных, которые используются для игнорирования ненужных вам значений, и обозначаются одиночными символами подчеркивания ("_").
Анонимная переменная может быть использована вместо любой другой переменной. Разница заключается в том, что анонимные переменные никогда не примут какого-либо значения. Анонимные переменные сопоставляются с чем угодно. В большинстве случаев поименованные переменные смогут работать абсолютно равнозначно, однако, их значения не будут служить какой-либо полезной цели.
Кроме этого, анонимные переменные могут быть использованы в фактах. Например, факт eats(_). соответствует следующему предложению естественного языка: Все едят (eats).
Для обеспечения более компактной записи программ на Турбо Прологе следующие символы и слова в нем являются попарно заменяемыми: "if" и ":-", "and" и ",", "or" и ";".
Обычно, программа на Турбо Прологе состоит из трех или четырех основных программных секций. К ним относятся: секция clauses (предложений), секция predicates (предикатов), секция domains (доменов) и, иногда, секция goal (используемая для задания внутренних целей при создании автономных исполняемых программных модулей).
Структура программы при этом выглядит следующим образом:
domains/* … объявление доменов … */predicates/* … объявление предикатов … */clauses/* … предложения (факты и правила) … */goal/* … подцель №1, подцель №2, и т.д. … */ Менее используемыми секциями программ на Турбо Прологе являются секции database и constants, а также различные глобальные (global) секции. Кроме этого, Пролог позволяет задавать компилятору особые инструкции в форме директив.Секция domains служит для объявления доменов (типов), не являющихся стандартными доменами Турбо Пролога. Основная форма объявления доменов имеет следующий вид: domainsаргумент №1, …, аргумент №N = домен №1;аргумент №N+1, …, аргумент №M = домен №2; Домены в Прологе сходны с типами в Паскале. Они позволяют задавать различные имена различным видам данных. В Турбо Прологе есть несколько встроенных стандартных доменов, основные из которых показаны в Таблице 3.1. Использовать стандартные домены можно при декларации типов аргументов предикатов. Т.к. стандартные домены уже известны Турбо Прологу, их описание в секции domains не требуется.Домен | Описание домена |
char | Символ, заключенный между двумя одиночными кавычками (например: 'a'). |
integer | Целое число от -32,768 до 32,767 |