- •Введение в экспертные системы
- •1.Что такое экспертная система?
- •2.Экспертные системы как один из видов программ искусственного интеллекта
- •3. Ориентированный на человека диалог
- •4. Структура экспертных систем
- •5. Представление знаний
- •6. Методы вывода
- •7. Система пользовательского интерфейса
- •8. Экспертные системы, базирующиеся на правилах
- •9. Рекомендации по разработке экспертных систем
- •10. База знаний для определения вида животного
- •11. Проектирование и реализация системы, базирующейся на правилах
- •12. Варианты заданий
Введение в экспертные системы
1.Что такое экспертная система?
Экспертная система (ЭС)— это компьютерная программа, созданная для выполнения тех видов деятельности, которые под силу только человеку-эксперту, например проектирования, планирования, постановки диагноза, перевода, реферирования, ревизии, выдачи рекомендаций. Сферы применения экспертных систем - бизнес, проектирование, исследования, управление.
Программы ЭС обычно работают таким способом, который воспринимается как "интеллектуальный", т.е. они имитируют образ действий человека-эксперта.
Эти программы специфичны, поскольку, как правило, используют механизм автоматического рассуждения (вывода) и так называемые слабые методы, такие, как поиск или эвристика. Они существенно отличаются от точных и хорошо аргументированных алгоритмов и не похожи на математические процедуры большинства традиционных разработок.
Ниже приводится краткий (и далеко не исчерпывающий) список областей, в которых применялись ЭС:
• оценка займов, рисков страхования и капитальных вложений для финансовых организаций;
• помощь химикам в нахождении верной последовательности реакций для создания новых молекул;
• отладка программного и аппаратного обеспечения ЭВМ в соответствии с индивидуальными требованиями заказчика;
диагностика и
обнаружение неполадок в телефонной
сети на основании тестов и сообщений о
неисправностях;
• идентификация и ликвидация неполадок в локомотивах;
• помощь геологам в расшифровке данных, полученных с помощью контрольного оборудования во время бурения нефтяных скважин;
• помощь медикам в постановке диагноза и лечении некоторых групп заболеваний, таких, как заражение крови и различные виды рака;
• помощь навигаторам в расшифровке данных от подводных звукоулавливателей, установленных на дне океана;
• получение молекулярной структуры химического вещества на основании опытов;
• изучение и суммирование больших объемов быстро изменяющихся данных, которые не в состоянии - из-за скорости их изменения - прочитать человек, например телеметрических данных с искусственных спутников системы LANDSAT.
В большинстве этих областей могли быть реализованы и традиционные подходы, однако преимущества использования здесь ЭС очевидны. В одних случаях применение ЭС сделало программу более ориентированной на человека, в других - позволило программе задействовать оптимальный механизм рассуждения, в третьих - облегчило поддержку и обновление программы.
2.Экспертные системы как один из видов программ искусственного интеллекта
Экспертные системы занимают важное место среди программного обеспечения в целом. Для того чтобы понять, что же представляют собой ЭС, необходимо определить их место в программировании.
Рис. 1. Три стиля программирования. Программирование ЭС является частью области программирования ИИ. Как методы программирования обе эти области значительно отличаются от традиционного (процедурного) стиля программирования
На рис. 1 показаны три основных стиля программирования. Программирование ЭС представлено частью области, которую мы назвали "программирование ИИ" (программирование искусственного интеллекта). Процедурное программирование - это программирование на Бейсике, Паскале или Фортране, причем в целях и способах оно существенно отличается от программирования ИИ.
При традиционном (процедурном) программировании необходимо подробно сообщать компьютеру, что и как он должен делать. Эти методы пригодны для решения конкретных проблем, например для обработки данных, проектирования или научной работы.
Программирование ИИ часто определяется "от противного", как все то, что не укладывается в рамки процедурного программирования. Однако большинство программ ИИ имеют сходные элементы. Для этих программ характерно то, что они имеют дело со сложными проблемами, которые недостаточно хорошо понимаются, для которых не существует четко заданных алгоритмических решений и которые могут быть исследованы с помощью того или иного механизма символических рассуждений.
Значительные различия имеются также и во внутренних механизмах машинных языков, используемых для решения указанных выше проблем. В процедурном программировании акцент делается на применении оператора присваивания ("=" или ":=") для перемещения данных в/из фиксированных, предопределенных, поименованных мест их нахождения в памяти. Эти поименованные места являются переменными программы. Процедурное программирование также зависит от характерной группы "команд", которые управляют работой машины:
последовательное выполнение (по умолчанию)
вызовы процедуры
if-then-else (переход)
do-while (цикл)
repeat-until (цикл)
Программы ИИ обычно пишутся на языках типа Лисп или Пролог. Переменные такой программы существуют скорее виртуально в стеке компьютера, а не в фиксированных местах в памяти. Управление данными осуществляется посредством сравнения с образцом и построения списков. Технология построения списков весьма проста, и на ее основе может быть организована почти любая структура данных. Далее при объяснении работы с Прологом будут рассмотрены многочисленные примеры создания списков. Программы ИИ, кроме того, используют отличный от традиционных программ набор операторов.
У программистов есть поговорка, наглядно иллюстрирующая разницу между языками ИИ и процедурного программирования: если задачу легко решить на Фортране, то ее трудно будет решить на Лиспе; если же задачу легко решить на Лиспе, то ее трудно будет решить на Фортране. Такая же связь, хотя и несколько менее ярко выраженная, существует между языками Паскаль и Пролог.
Теперь мы можем более подробно рассмотреть взаимоотношения между программами ИИ и экспертными системами. Для пояснения различий между программами ИИ и ЭС ниже приводится список известных программ ИИ, которые не являются экспертными системами:
• программа, которая может просмотреть, а затем выдать в перефразированной форме текст рассказа ребенка и даже дать ответы на некоторые вопросы по тексту. Программа должна в какой-то степени "понимать" язык и причинно-следственные отношения в повседневной жизни;
программа для печати с голоса: пользователь говорит в микрофон, а программа выдает печатный текст;
• программы, которые демонстрируют и моделируют человеческий интеллект, например программа, способная решать задачи по нахождению аналогии в геометрических фигурах (такие задачи обычно включаются в интеллектуальные тесты);
• программы, решающие задачи скорее символьной, чем числовой математики: программа выдает решение задачи интегрирования не в форме числа, а в форме математической функции;
• программы, которые доказывают или даже открывают математические теоремы автоматически;
• программы, которые могут проводить анализ изображения, снятого телевизионной камерой, выбирать и классифицировать его объекты.
Заметьте, что для понимания, например, рассказа ребенка требуется большой опыт и высокий уровень интеллекта. Если мы сможем заставить машину делать это эффективно, мы, несомненно, многое узнаем о том, что такое интеллект. Однако такие задачи (понимание рассказа и т.п.) не имеет смысла ставить перед экспертом или ЭС, потому что с ними легко справится любой человек.
Экспертные системы отличаются от других программ ИИ своей целью и построением. Под целью мы понимаем те задачи для ЭС, которые подходят для человека-эксперта, а под построением - создание не просто механической, а интеллектуальной программы. Критериями оценки ЭС являются следующие:
• отражает ли внутреннее функционирование программы подход к проблеме со стороны человека;
• может ли программа объяснять свои действия способом, понятным человеку;
• может ли программа взаимодействовать с оператором посредством гибкого диалога, подобного диалогу на естественном языке.
Экспертные системы используют все методы программирования, которые применяются в других программах ИИ.
Некоторые программы занимают пограничное положение между экспертными системами и другими программами ИИ. Примером таких программ могут служить простые программы игры в шахматы. 25 лет назад люди с удовольствием определили бы такую программу как ЭС. Однако сегодня по этому поводу есть некоторые сомнения. Дело в том, что действие большинства шахматных программ основано на "грубой силе", т.е. они заносят в каталог все возможные для компьютера ходы и, кроме того, учитывают все возможные контрходы игрока (человека), сделанные в ответ на ход машины, а также все приемлемые ходы компьютера в ответ на ход человека-игрока. Данная модель предполагает несколько уровней игры, пока число вариантов не станет столь огромным, что даже компьютер не сумеет справиться с ним. Машина оценивает возможные варианты окончания игры и делает соответствующие ходы.
Мы расцениваем этот метод как метод с позиций грубой силы, потому что машина просто вырабатывает и классифицирует множество вероятных "сценариев" игры, а затем делает ходы в соответствии с наиболее благоприятным сценарием.
Результатом такого подхода может быть великолепная шахматная игра, но не та, которую мы бы назвали "интеллектуальной". Шахматы, безусловно, являются областью деятельности специалиста (эксперта). Однако программа в такой форме не считается экспертной системой, потому что она не функционирует подобно человеку: внутренняя сущность программы остается механистической, а не интеллектуальной. Наиболее совершенные шахматные программы, использующие "человекоподобную" эвристику для ведения поиска и способные объяснять свои ходы, были бы настоящими ЭС.
