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