В начале восьмидесятых годов в исследованиях по искусственному интеллекту сформировалось самостоятельное направление, получившее название "экспертные системы". Цель исследований по экспертных систем состоит в разработке программ, которые при решении задач, трудных для эксперта-человека, получают результаты, не уступающие по качеству и эффективности решениям, получаемым экспертом. Исследователи в области экспертных систем для названия своей дисциплины часто используют также термин "инженерия знаний", введенный Е. Фейгенбаумом как "привнесение принципов и инструментария исследований из области искусственного интеллекта в решение трудных прикладных проблем, требующих знаний экспертов".
Программные средства, базирующиеся на технологии экспертных систем, или инженерии знаний (в дальнейшем будем использовать их как синонимы), получили значительное распространение в мире. Важность экспертных систем состоит в следующем:
- технология экспертных систем существенно расширяет круг практически значимых задач, решаемых на компьютерах, решение которых приносит значительный экономический эффект;
- технология экспертных систем является важнейшим средством в решении глобальных проблем традиционного программирования: длительность и, следовательно, высокая стоимость разработки сложных приложений; высокая стоимость сопровождения сложных систем, которая часто в несколько раз превосходит стоимость их разработки; низкий уровень повторной используемости программ и т.п.;
- объединение технологии экспертных систем с технологией традиционного программирования добавляет новые качества к программным продуктам за счет обеспечения динамичной модификации приложений пользователем, а не программистом; большей "прозрачности" приложения (например, знания хранятся на ограниченном естественном языке (ЕЯ), что не требует комментариев к знаниям, упрощает обучение и сопровождение); лучшей графики; интерфейса и взаимодействия.
По мнению ведущих специалистов, в недалекой перспективе экспертные системы найдут следующее применение:
- будут играть ведущую роль во всех фазах проектирования, разработки, производства, распределения, продажи, поддержки и оказания услуг;
- технология экспертных систем, получившая коммерческое распространение, обеспечит революционный прорыв в интеграции приложений из готовых интеллектуально- взаимодействующих модулей.
Экспертные системы предназначены для так называемых неформализованных задач, т.е. не отвергают и не заменяют традиционного подхода к разработке программ, ориентированного на решение формализованных задач, которые обладают одной или несколькими из следующих характеристик:
- задачи не могут быть заданы в числовой форме;
- цели не могут быть выражены в терминах точно определенной целевой функции;
- не существует алгоритмического решения задач;
- Неформализованные задачи обычно обладают:
- ошибочностью, неоднозначностью, неполнотой и противоречивостью исходных данных;
- ошибочностью, неоднозначностью, неполнотой и противоречивостью знаний о проблемной области и решаемой задаче;
- большой размерностью пространства решения, т.е. перебор при поиске решения весьма велик;
- динамически изменяющимися данными и знаниями.
Следует подчеркнуть, что неформализованные задачи представляют большой и очень важный класс задач.
Экспертные системы и системы искусственного интеллекта отличаются от систем обработки данных тем, что в них в основном используются символьный (а не числовой) способ представления, символьный вывод и эвристический поиск решения (а не исполнение известного алгоритма).
По качеству и эффективности решения экспертные системы не уступают решениям эксперта-человека. Решения экспертных систем обладают "прозрачностью", т.е. могут быть объяснены пользователю на качественном уровне. Это качество экспертных систем обеспечивается их способностью рассуждать о своих знаниях и умозаключениях. Экспертные системы способны пополнять свои знания в ходе взаимодействия с экспертом.
Технология экспертных систем используется для решения различных типов задач: интерпретация, предсказание, диагностика, планирование, конструирование, контроль, отладка, инструктаж, управление. Применяется в самых разнообразных проблемных областях, таких, как финансы, нефтяная и газовая промышленность, энергетика, транспорт, фармацевтическое производство, космос, металлургия, горное дело, химия, образование, целлюлозно-бумажная промышленность, телекоммуникации и связь и др.
Коммерческие успехи к фирмам-разработчикам систем искусственного интеллекта (СИИ) пришли не сразу. На протяжении 1960 - 1985 гг. успехи ИИ касались в основном исследовательских разработок, которые демонстрировали пригодность СИИ для практического использования. Начиная примерно с 1985 г. (в массовом масштабе с 1988 - 1990 гг.), в первую очередь экспертные системы, а в последние годы системы, воспринимающие естественный язык (ЕЯ-системы), и нейронные сети стали активно использоваться в коммерческих приложениях.
Рисунок 1.1 отражает [54] различные аспекты состояния рынка искусственного интелекта: инвестиции в разработку в области искусственного интелекта (США, Европа, Япония) (Рисунок 1.1, а); доля систем в информатике (программном обеспечении) (Рисунок 1.1, б); доходы от продаж традиционных языков программирования (Рисунок 1.1, в); инвестиции только в программное обеспечение (США) (Рисунок 1.1, г).
Надо отметить, что на заре появления экспертных систем специфика используемых в них языков, технологии разработки приложений и используемого специального оборудования (например, Lisp-машины) давала основания предполагать, что введение экспертных систем с традиционными, программными системами является сложной и, возможно, невыполнимой задачей при ограничениях, накладываемых реальными приложениями.
Рисунок 1.1 . Состояние и перспективы рынка искусственного интеллекта
Однако в настоящее время коммерческие инструментальные средства инструментальные средства для создания экспертных систем разрабатываются в полном соответствии с современными технологическими тенденциями традиционного программирования, что снимает проблемы, возникающие при создании интегрированных приложений.
Причины, приведшие СИИ к коммерческому успеху, следующие.
Интегрированность. Разработаны инструментальные средства искусственного интеллекта, легко интегрирующиеся с другими информационными технологиями и средствами (с CASE, СУБД, контроллерами, концентраторами данных и т.п.).
Открытость и переносимость. инструментальные средства искусственного интеллекта разрабатываются с соблюдением стандартов, обеспечивающих открытость и переносимость.
Использование языков традиционного программирования и рабочих станций. Переход от инструментальных средств искусственного интеллекта, реализованных на языках искусственного интеллекта (Lisp, Prolog и т.п.), к инструментальным средствам искусственного интеллекта, реализованным на языках традиционного программирования (С, C++ и т.п.), упростил обеспечение интегрированности, снизил требования приложений ИИ к быстродействию ЭВМ и объемам оперативной памяти. Использование рабочих станций (вместо ПК) резко увеличило круг приложений, которые могут быть выполнены на ЭВМ с использованием инструментальных средств искусственного интеллекта.
Архитектура клиент-сервер. Разработаны инструментальные средства искусственного интеллекта, поддерживающие распределенные вычисления по архитектуре клиент-сервер, что позволило: снизить стоимость оборудования, используемого в приложениях, децентрализовать приложения, повысить надежность и общую производительность (так как сокращается количество информации, пересылаемой между ЭВМ, и каждый модуль приложения выполняется на адекватном ему оборудовании).
Проблемно/предметно-ориентированные инструментальные средства искусственного интеллекта. Переход от разработок общего назначения (хотя они не утратили свое значение как средство для создания ориентированных инструментальных средств) к проблемно/предметно-ориентированным инструментальным средствам искусственного интеллекта обеспечивает: сокращение сроков разработки приложений; увеличение эффективности использования инструментальных средств; упрощение и ускорение работы эксперта; повторную используемость информационного и программного обеспечения (объекты, классы, правила, процедуры).