Существующие средства разработки экспертных систем можно разделить на 3 класса (рис. 33). Традиционные языки программирования (C ++, Java, Delphi) позволяют построить экспертные системы «с нуля» для конкретной задачи или предметной области, обеспечив хорошие показатели качества и необходимую функциональность системы, но на разработку требуются значительные временные и финансовые ресурсы. Так создают экспертные системы любой стадии существования, в особенности, коммерческие системы, продажа которых возместит затраты.
Языки искусственного интеллекта (LISP, PROLOG, Рефал) были разработаны специально для представления знаний, построение с их помощью экспертных систем позволяет более легко оперировать экспертными знаниями, но ограничивают способ их представления структурой языка. С помощью языков искусственного интеллекта создаются исследовательские и демонстрационные образцы.
Следующий класс средств построения экспертных систем – специальный программный инструментарий – ориентирован только на создание интеллектуальных информационных систем и делится на два подкласса: оболочки и среды разработки интеллектуальных систем.
Какие задачи решают экспертные системы? Душкин объяснит
Среды разработки являются программными комплексами, позволяющими строить системы из отдельных готовых блоков, на их основе создаются демонстрационные и промышленные образцы экспертных систем.
Оболочка экспертных систем — инструментальное средство для проектирования и создания экспертных систем. В состав оболочки входят средства проектирования базы знаний с различными формами представления знаний и выбора режима работы решателя задач. Для конкретной предметной области инженер по знаниям определяет нужное представление знаний и стратегии решения задач, а затем, вводя их в оболочку, создает конкретную экспертную систему.
Рис.33. Классификация инструментальных средств разработки ЭС
Применение оболочки позволяет достаточно быстро и с минимальными затратами создать исследовательскую, демонстрационную или промышленную экспертную систему. Оболочки можно классифицировать следующим образом (рис.34). По степени обработанности выделяют экспериментальную (GPSI), исследовательскую (Expert) и коммерческую (EXSYS) оболочки.
Рис.34. Классификация оболочек экспертных систем
Знания в базе могут быть представлены одним способом (EMYCIN, CLIPS) — семантической сетью, продукциями, фреймами и т.д.) или же несколькими (MINEVRA, EsWin), для создания более полной, гибкой и наглядной модели предметной области.
Используемые в оболочке методы могут быть традиционными (CubiCalc, NEXPERT, Алеф) — алгоритмы, деревья вывода и т.д. — и гибридными (FuzzyCLIPS, MultiNeuron) — совместно с традиционными используются нейронные сети, нечеткая логика и т.д.
Существуют статические оболочки, предназначенные для решения статических задач (1-st Clas, Элис). Они характеризуются использованием поверхностной технологии, общих правил и поиска решения от цели к данным, применяются для решения задач анализа.
Как устроена общая архитектура экспертных систем? Душкин объяснит
Статические оболочки, предназначенные для решения задач анализа и синтеза с разделением времени (KAPPA, Clips), используют глубинный и структурный подходы, осуществляют поиск решений — от цели к данным и от данных к цели.
Оболочки для проектирования динамических систем (Framework, NExpert) применяют поверхностный подход, принимают решения на основе правил общего вида.
Оболочки для разработки динамических систем (G2, Rethink, RkWorks) имеют подсистему моделирования, планировщика решений, используют смешанную технологию, правила общего и частного вида, решение задачи анализа и синтеза в реальном времени.
EMYCIN – первая оболочка, основанная на MYCIN. Принципы, разработанные для PROSPECTOR, были использованы при создании таких систем, как KAS, SAGE, SAVOIR.
Изменение принципов построения ведет к развитию инструментария. Поэтому оболочки прошли тот же эволюционный путь, что и ЭС. Современные оболочки предлагают следующие возможности (в каждой конкретной оболочке представлены частично):
— гибридное представление знаний (EsWin);
— выбор из нескольких стратегий вывода (G2, CLIPS);
— подключение библиотек и других систем (ACTIVATION FRAMEWORK);
— архитектура на основе «доски объявлений» (HEARSAY-III);
— архитектура «клиент-сервер» (JESS);
— интеграция в интернет / интранет (Egg2Lite, Exsys Corvid);
— графический интерфейс (WindExS, WxCLIPS);
— подсистема моделирования (G2);
— модульное построение системы (ReThink, G2);
— визуализация структуры БЗ (W.E.S.T.) и т.д.
Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:
Источник: studopedia.ru
2. Классификация программного обеспечения для разработки экспертных систем
Инструментальные средства подразделяются на следующие категории:
- Языки программирования
- Языки инженерии знаний
- Средства автоматизации разработки экспертных систем
- Оболочки экспертных систем
- Рассмотрим языки инженерных знаний:
- Средства автоматизации разработки экспертных систем
- Оболочки экспертных систем
3.1 Формализация задачи – дерево решения задачи
Составим дерево решения задачи по средствам ответов на вопросы Да-Нет: Рисунок 2. — Дерево решения задачи
Источник: studfile.net
Создание экспертной системы в Wi!Mi 1.1
Wi!Mi – это инструмент для создания моделей знаний с неограниченным количеством связей, параметров и отношений, обладающий логическим выводом. Скачать данный конструктор можно с официального сайта.
К сожалению, адекватного туториала по данной программе я не нашел, не считая видеоурока на youtube. Поэтому решил написать его самостоятельно.
Цель
Я изначально решил поставить себе определенную прикладную задачу:
«Существует N организация, у которой есть служба ремонта техники. Количество сотрудников 3 человека. Интенсивность поступления оборудования — 2 клиента в час. А интенсивность обслуживания равно 2. Почасовая оплата сотрудника составляет 8 у.е./час. Убыток службы от нахождения клиента в очереди составляет 10 у.е./час.
Необходимо вычислить суммарные затраты фирмы».
Теория
Перед тем, как описывать процесс решения данной задачи, проведу краткий экскурс по теории, на которой базируется данная программа. В основе Wi!Mi лежит миварный подход к описанию и формализации любых типов знаний. Этот подход основан на создании эволюционного многомерного динамического пространства унифицированного представления данных и правил. Иначе говоря, получается, что миварный подход обобщает общепринятые подходы — к примеру, такие как когнитивные карты и онтологии.
Создание модели
Для простоты я разбил все данные на входные и выходные, чтобы проще было ориентироваться.
Входные данные модели:
- Интенсивность поступления оборудования lambda;
- Интенсивность обслуживания Mu;
- Оплата сотрудника S;
- Убытки фирмы в случае простоя Ub;
- Число сотрудников K.
- Загрузка одного сотрудника Ro;
- Клиентов в очереди Q;
- Суммарные затраты фирмы Cp.
Вернемся к созданию модели. Создадим два класса «Входные данные модели» и «Выходные данные модели». Для этого нажимаем кнопку «Добавить объект» и выбираем его тип «Класс».
Задаем имя класса и пишем его описание. Потом необходимо добавить параметры в наш класс. Для этого нажимаем на «Добавить параметр», и в открывшимся окне вводим необходимые данные – имя и тип. Стоит вводить и описание, но это не обязательный параметр — просто он позволяет легче ориентироваться в модели и понимать, для чего нужен тот или иной объект.
После того, как мы создадим два класса и наполним их объектами, получим следующий вид:
Далее нам необходимо создать отношения между объектами. Для этого переходим на вкладку «Отношения», нажимаем «Добавить отношение» и выбираем тип «Формула».
Введем формулу загрузки одного сотрудника Ro = lambda / (Mu * K) и нажмем на кнопку «Анализировать формулу». Программа автоматически определит входные и выходные параметры. Аналогичные действия делаем с формулой количества клиентов в очереди
Q =( K * Math.pow(Ro,K+1)) / (1 — Math.pow(Ro,K)) и с суммарными затратами фирмы Cp = K * S + Ub * Q.
Теперь необходимо создать правила. Для этого нажимаем на «Добавить правило» и выбираем тип «Простое правило».
Далее выбираем отношение, с которым мы будем работать. Выбрав его, привязываем к каждому объекту соответствующий параметр. Стоит отметить, что отношение может быть представлено в виде иных значений (x=y+z) — главное, чтобы оно повторяло структуру формулы. Это бывает удобно, когда к отношению привязывается несколько правил. Так как модель небольшая, я для простоты использовал значения, идентичные параметрам.
После того как мы создали все отношения и привязали к ним правила, получаем следующий вид:
Создание модели закончено. Теперь нужно ее проверить. Для этого необходимо перейти во вкладку «Умный калькулятор». Раскроем root и наши два класса. Введем данные из нашего условия и отметим галочкой параметры, которые необходимо получить.
Программа произвела расчет и выдала алгоритм решения.
Шаг № 0
Описание правила: Вычисление загрузки одного сотрудника
Входные параметры:
lambda=2;
Mu=2;
K=3;
Формула:
Ro = lambda / (Mu * K)
Результат: Ro=0.333333333333333;
————————————
Шаг № 1
Описание правила: Вычисление загрузки очереди клиентов
Входные параметры:
K=3;
Ro=0.333333333333333;
Формула:
Q = (K * Math.pow(Ro,K+1)) / (1 — Math.pow(Ro,K))
Результат: Q=0.0384615384615384;
————————————
Шаг № 2
Описание правила: Вычисление затрат фирмы
Входные параметры:
K=3;
S=8;
Ub=10;
Q=0.0384615384615384;
Формула:
Cp = K * S + Ub * Q
Результат: Cp=24.3846153846154;
————————————
Также можно нажать на галочку «Показать граф решения». Будет визуализирован весь алгоритм в виде графа.
В целом инструмент очень простой — даже в реализации интерфейсов. Однако для человека, который не хочет или не умеет программировать (а если умеет программировать, то в Wi!Mi есть специальные «Сложные» отношения, которые позволяют писать их на JavaScript), или не хочет долго вникать, как работать с этой «штукой» — отличный вариант. Хотел сказать еще, что все модели сохраняются в .XML формате.
По сути, остается написать свой интерфейс, распарсить эти данные — и мы получим свою полноценную программку. Лично мне было удобно использовать данный конструктор для быстрого построения логики.
Источник: habr.com