Экспертная система



27

СОДЕРЖАНИЕ

 

Введение              5

1. Структура экспертных систем               8

2. Описание предметной области              15

3. Описание экспертной системы              17

4. Алгоритм работы экспертной системы              19

5. Реализация пользовательского интерфейса              20

6. Результат работы экспертной системы              22

    Заключение              25

Список используемых источников              26

Приложение А              28

Приложение Б              47

 

 

 

 

 

 

 

 

 

 

 

 

 

             

 

 

 

 

 

 

 

 

ВВЕДЕНИЕ

 

Сегодня всем, кто  работает в области информационных технологий, известен термин «экспертные  системы». Экспертная система – это программная система, знания и умения которой сравнимы с умением и знаниями специалистов в какой-нибудь специальной области знаний. ЭС начали разрабатываться исследователями искусственного интеллекта в 1970-х годах, а в 1980-х получили коммерческое подкрепление.

В информатике экспертные системы рассматриваются совместно с базами знаний как модели поведения экспертов в определенной области знаний с использованием процедур логического вывода и принятия решений, а базы знаний — как совокупность фактов и правил логического вывода в выбранной предметной области деятельности.

Для классификации ЭС используют следующие признаки:

      Способ формирования решения;

      Способ учета временного признака;

      Вид используемых данных;

      Число используемых источников решения знаний.

По способу формирования решения ЭС можно разделить на анализирующие и синтезирующие. В системах первого типа осуществляется выбор решения из множества известных решений на основе анализа знаний, в системах второго типа решение синтезируется из отдельных фрагментов знаний.
В зависимости от способа учета временного признака ЭС делят на статические и динамические. Статические ЭС предназначены для решения задач с неизменяемыми в процессе решения данными и знаниями, а динамические ЭС допускают такие изменения.

По видам используемых данных и знаний различают ЭС с детерминированными и неопределенными знаниями. Под неопределенностью знаний и данных понимаются их неполнота, ненадежность, нечеткость.

ЭС могут создаваться с использованием одного или нескольких источников знаний.

Область применения экспертных систем.

Существует ряд прикладных задач, которые решаются с помощью систем, основанных на знаниях, более успешно, чем любыми другими средствами. При определении целесообразности применения таких систем нужно руководствоваться следующими критериями:

      Данные и знания надежны и не меняются со временем;

      Пространство возможных решений относительно невелико.

В процессе решения задачи должны использоваться формальные рассуждения. Существуют системы, основанные на знаниях, пока еще не пригодные для решения задач методами проведения аналогий или абстрагирования. В свою очередь традиционные компьютерные программы оказываются эффективнее систем, основанных на знаниях, в тех случаях, когда решение задачи связано с применением процедурного анализа. Системы, основанные на знаниях, более подходят для решения задач, где требуются формальные рассуждения.

Должен быть по крайней мере один эксперт, который способен явно сформулировать свои знания и объяснить свои методы применения этих знаний для решения задач.

Экспертные системы вместе с системами обработки  естественных  языков  являются  наиболее важными в  коммерческом  плане  областями использования искусственного интеллекта.

ЭС внедряются в различные виды человеческой деятельности, где использование точных математических методов и моделей затруднительно или вообще невозможно.

К ним относятся: медицина, обучение, поддержка принятия решений и управление в сложных ситуациях, различные деловые приложения и т.д.

В целом ЭС не рекомендуется применять для решения следующих типов задач:

      математических, решаемых обычным путем формальных преобразований и процедурного анализа;

      задач распознавания, поскольку в общем случае они решаются численными методами;

      задач, знания о методах решения которых отсутствуют (невозможно строить базу знаний).

Для конструирования ЭС используются различные инструментальные средства: универсальные языки программирования, языки искусственного интеллекта, инструментальные системы и среды и системы – оболочки.

Вероятно, одной из наиболее широко используемых экспертных систем, благодаря своей скорости, эффективности и бесплатности, является CLIPS.

Целью данной курсовой работы является разработка экспертной системы, которая в зависимости от ответов  пользователя на вопросы, будет выдавать наиболее подходящий ему для занятий вид спорта.

Для достижения заданной цели поставлены следующие задачи:

      изучение языка CLIPS;

      изучение особенностей создания интерфейсов средствами HTML, РНР, Java Script CSS.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

   1. СТРУКТУРА ЭКСПЕРТНЫХ СИСТЕМ

 

Экспертная система – это интеллектуальной компьютерная программы, в которой используются знания и процедуры логического вывода для решения достаточно трудных задач и требующая для своего решения значительного объема экспертных знаний человека.

Безусловно, еще не удалось создать такую систему, которая могла бы применяться в качестве универсального решателя задач, но экспертные системы действуют в своих ограниченных областях приложения весьма успешно.

В экспертных системах для решения задач на уровне эксперта – человека широко используются специализированные знания. Термином эксперт обозначается личность, обладающая экспертными знаниями в определенной области. Это означает, что эксперт имеет знания или специальные навыки, которые неизвестны или недоступны для большинства людей. Эксперт способен решать задачи, которые большинство людей не способны решить вообще, или решает их гораздо более эффективно. После того как были впервые разработаны экспертные системы, они содержали исключительно только экспертные знания. Однако в наши дни термин экспертная система часто применяется по отношению к любой системе, в которой используется технология экспертных систем. Технология экспертных систем может включать специальные языки экспертных систем, а также программные и аппаратные средства, предназначенные для обеспечения разработки и эксплуатации экспертных систем.

В качестве знаний в экспертных системах могут применяться либо экспертные знания, либо обычные общедоступные знания, которые могут быть получены из книг, журналов и от хорошо осведомленных людей. В этом смысле обычные знания рассматриваются как понятие более низкого уровня по сравнению с более редкими экспертными знаниями. Термины экспертная система, система, основанная на знаниях, и экспертная система, основанная на знаниях, часто используются как синонимы. Но большинство людей используют только термин экспертная система, просто потому, что оно короче, даже несмотря на то, что в экспертной системе, о которой идет речь, могут быть представлены не экспертные, а всего лишь обычные знания.

Принципы работы экспертной системы, основанной на знаниях, иллюстрируются на рисунке 1. Пользователь передает в экспертную систему факты или другую информацию и получает в качестве результата экспертный совет или экспертные знания. По своей структуре экспертная система подразделяется на два основных компонента - базу знаний и машину логического вывода. База знаний содержит знания, на основании которых машина логического вывода формирует заключения. Эти заключения представляют собой ответы экспертной системы на запросы пользователя, желающего получить экспертные знания.

 

Рисунок 1 – Основные принципы функционирования экспертной системы

 

Кроме того, разработаны полезные системы, основанные на знаниях, которые предназначены для использования в качестве интеллектуального помощника для эксперта-человека. Эти интеллектуальные помощники проектируются на основе технологии экспертных систем, поскольку такая технология обеспечивает значительные преимущества при разработке. Чем больше знаний будет введено в базу знаний интеллектуального помощника, тем в большей степени его действия будут напоминать действия эксперта. Разработка интеллектуального помощника может стать полезным промежуточным шагом перед созданием полноценной экспертной системы. К тому же интеллектуальный помощник позволяет освободить для эксперта больше полезного времени, поскольку его применение

способствует ускоренному решению задач.

Знания эксперта относятся только к одной предметной области, и в этом состоит отличие методов, основанных на использовании экспертных систем, от общих методов решения задач. Предметная область – это специальная проблемная область, такая как медицина, финансы, наука и техника, в которой может очень хорошо решать задачи лишь определенный эксперт. Экспертные системы, как и эксперты-люди, в целом предназначены для использования в качестве экспертов в одной предметной области. Например, обычно нельзя рассчитывать на то, что эксперт в области шахмат будет обладать экспертными знаниями, относящимися к медицине. Экспертные знания в одной предметной области не переносятся автоматически на другую область.

Знания эксперта, касающиеся решения конкретных задач, называются областью знаний эксперта. Например, медицинская экспертная система, предназначенная для диагностирования инфекционных заболеваний, должна обладать большим объемом знаний об определенных симптомах, вызванных инфекционными заболеваниями. В этом случае областью знаний является медицина, а сами знания состоят из сведений о заболеваниях, симптомах и методах лечения. Связь между предметной областью и областью знаний показана на рисунке 2. На данном рисунке область знаний полностью включена в предметную область. Часть, выходящая за пределы области знаний, символизирует область, в которой отсутствуют знания о какой – либо из задач, относящихся к данной предметной области.

 

 

Рисунок 2 – Связь между предметной областью и областью знаний

 

В области знаний экспертная система проводит рассуждения или делает логические выводы по такому же принципу, как рассуждал бы эксперт – человек или приходил логическим путем к решению задачи. Это означает, что на основании определенных фактов путем рассуждений формируется логичное, оправданное заключение, которое следует из этих фактов.[2]

 

Преимущества экспертных систем.

Как описано ниже, экспертные системы обладают многими привлекательными особенностями.

      Повышенная доступность. Для обеспечения доступа к экспертным знаниям могут применяться любые подходящие компьютерные аппаратные средства. В определенном смысле вполне оправдано утверждение, что экспертная система - это средство массового производства экспертных знаний;

      Уменьшенные издержки. Стоимость предоставления экспертных знаний в расчете на отдельного пользователя существенно снижается;

      Уменьшенная опасность. Экспертные системы могут использоваться в таких вариантах среды, которые могут оказаться опасными для человека;

      Постоянство. Экспертные знания никуда не исчезают. В отличие от экспертов-людей, которые могут уйти на пенсию, уволиться с работы или умереть, знания экспертной системы сохраняются в течение неопределенно долгого времени;

      Возможность получения экспертных знаний из многих источников. С помощью экспертных систем могут быть собраны знания многих экспертов и привлечены к работе над задачей, выполняемой одновременно и непрерывно, в любое время дня и ночи. Уровень экспертных знаний, скомбинированных путем объединения знаний нескольких экспертов, может превышать уровень знаний отдельно взятого эксперта – человека;

      Повышенная надежность. Применение экспертных систем позволяет повысить степень доверия к тому, что принято правильное решение, путем предоставления еще одного обоснованного мнения эксперту-человеку или посреднику при разрешении несогласованных мнений между несколькими экспертами-людьми. Решение экспертной системы должно всегда совпадать с решением эксперта; несовпадение может быть вызвано только ошибкой, допущенной экспертом, что может произойти, только если эксперт-человек устал или находится в состоянии стресса;

      Объяснение. Экспертная система способна подробно объяснить свои рассуждения, которые привели к определенному заключению. А человек может оказаться слишком усталым, не склонным к объяснениям или неспособным делать это постоянно. Возможность получить объяснение способствует повышению доверия к тому, что было принято правильное решение;

      Быстрый отклик. Для некоторых приложений может потребоваться быстрый отклик или отклик в реальном времени. В зависимости от используемого аппаратного и программного обеспечения экспертная система может реагировать быстрее и быть более готовой к работе, чем эксперт-человек. В некоторых экстремальных ситуациях может потребоваться более быстрая реакция, чем у человека; в таком случае приемлемым вариантом становится применение экспертной системы, действующей в реальном времени;

 

      Неизменно правильный, лишенный эмоций и полный ответ при любых обстоятельствах. Такое свойство может оказаться очень важным в реальном времени и в экстремальных ситуациях, когда эксперт-человек может оказаться неспособным действовать с максимальной эффективностью из-за воздействия стресса или усталости.

      Возможность применения в качестве интеллектуальной обучающей программы. Экспертная система может действовать в качестве интеллектуальной обучающей программы, передавая учащемуся на выполнение примеры программ и объясняя, на чем основаны рассуждения системы.[8]

 

Общие понятия экспертных систем.

 

Знания могут быть представлены в экспертной системе многими способами. Одним из широко применяемых методов представления знаний являются правила в форме IF-THEN, как показано ниже.

IF горит красный свет THEN стоять.

Если обнаруживается факт, что на светофоре горит красный свет, то этот факт согласуется с шаблоном «на светофоре горит красный свет». Условие правила удовлетворяется и выполняется обусловленное в нем действие «стоять».

Одной из программных экспертных систем является CLIPS.

Название языка CLIPS – аббревиатура от C Language Integrated Production System. Язык был разработан  в центре космических исследований NASA  в середине 1980-х годов и во многом сходен с языками, созданными на базе LIPS. Использование C в качестве языка реализации объясняется тем, что компилятор LISP не поддерживается частью распространенных платформ, а также сложностью интеграции LISP-кода в приложения, которые используют отличный от LIPS язык программирования. Хотя в то время на рынке уже появились программные средства для задач искусственного интеллекта, разработанные на языке C, специалисты из NASA решили создать такой продукт самостоятельно. Разработанная ими система в настоящее время доступна во всем мире, и нужно сказать, что по своим возможностям она не уступает множеству гораздо более дорогих коммерческих  продуктов.

Первая версия представляет собой, по сути, интерпретатор порождающих правил. Процедурный язык и объективно-ориентированное расширение CLIPS Object-Oriented Language {COOL} были включены в этот программный продукт только в 1990-х годах. Существующая  в настоящее время версия может эксплуатироваться на платформах UNIX, DOS, Windows и Macintosh. Она является хорошо документированным общедоступным программным продуктом и доступна по сети FTR с множества университетских сайтов. Исходный код программного пакета CLIPS распространяется совершенно свободно и его можно установить на любой платформе.

Основными компонентами языка описания правил являются база фактов (fact base) и база правил (rule base). На них возлагаются следующие функции:

      база фактов представляет собой исходное состояние проблемы;

      база правил содержит операторы, которые преобразуют состояние

проблемы, приводя его к решению.

Машина логического вывода CLIPS сопоставляет эти факты и правила и выясняет, какие из правил можно активизировать. Это выполняется циклически, причем каждый цикл состоит из трех шагов:

      сопоставление фактов и правил;

      выбор правила, подлежащего активизации;

      выполнение действий, предписанных правилом.

Такой трехшаговый циклический процесс иногда называют «циклом распознавание – действие».

 

 

 

 

 

 

   2. ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ

 

В основе создаваемой экспертной системы находится тест, позволяющий выбрать подходящую модель кондиционирования и вентиляции.

Не секрет, что на работоспособность и самочувствие человека огромное влияние оказывают условия, в которых он живёт и работает. Для нормальной жизнедеятельности и эффективного использования своих возможностей ему крайне важно создать комфортную обстановку, обеспечить нормальную циркуляцию воздуха в помещении, поддерживать приятную температуру. Именно в этих целях и используется климатическое оборудование.

Итак, сегодня в понятие "климатическое оборудование" входит вся совокупность бытовых и промышленных электроприборов, задачей которых является поддержание в помещении благоприятной для здоровья человека атмосферы и комфортных климатических условий. К таковым приборам, как правило, относятся:

системы вентиляции;

кондиционеры и сплит-системы;

очистители воздуха;

увлажнители воздуха;

осушители воздуха;

обогреватели и тепловое оборудование.

Датой изобретения кондиционера принято считать 1902 год, когда американский инженер Уиллис Карриер сотворил невиданное прежде устройство для одной из нью-йоркских типографий. По своей конструкции это и впрямь был кондиционер, только его основной задачей было не создание приятной прохлады для сотрудников, а борьба с влажностью, которая здорово ухудшала качество печати.

Однако свое триумфальное шествие по свету кондиционер начал только в середине сороковых годов, после создания первых портативных систем, рассчитанных на одно помещение. Выпуск этих кондиционеров, позже получивших название оконных, был налажен сначала в США, а затем в Европе и Японии. В те времена это был огромный шаг вперед.

Следующим важным шагом в развитии климатической техники стало изобретение в 1961 году первой сплит-системы, название которой произошло от английского split - разделять, расщеплять. Разбить кондиционер на два блока, убрав на улицу наиболее шумный агрегат - компрессор, впервые догадались в Японии.

Сначала появились сплит-системы с внутренними блоками настенного типа, однако со временем были предложены и другие конструктивные решения, среди которых сплит-системы с внутренними блоками колонного, напольного, потолочного, кассетного и канального типов. Были созданы и кондиционеры, в которых с одним внешним блоком работают два и более внутренних, а потому получившие название мультисплит-систем. Развивая это направление, в Японии создали альтернативу центральным системам кондиционирования - VRF-системы, способные создать комфорт сразу в десятках помещений.

Кроме того, в Европе в ходу местное изобретение - мобильные кондиционеры, которые не требуют специального монтажа и могут перемещаться из помещения в помещение. Основным производителем и потребителем этой продукции является Италия.

Кондиционер — практически незаменимая вещь в офисе, в ресторане, в кафе, где из-за присутствия немалого количества людей не успевают произойти естественные процессы вентиляции. Даже дома Вы нуждаетесь в чистом воздухе. А морозной зимой или жарким летом кондиционер не даст Вам ощутить дискомфорт, он будет поддерживать нормальную температуру, влажность и создаст все условия для эффективной работы в офисе и комфортного отдыха дома.

 

 

 

 

   3. ОПИСАНИЕ экспертной системы

 

Принцип программирования является объектно-ориентированный. Основная идея этого подхода состоит в том, что программа разрабатывается по принципу представления данных, используемых в программе, в виде объектов, с последующей реализацией операций над этими объектами.

Использование объектно-ориентированных средств в CLIPS позволяет значительно упростить программирование.

Класс «Vid» наследует информацию от системного класса USER.

Класс «cConds» в свою очередь наследует информацию от класса «Vid».

В языке CLIPS предусмотрена возможность определять классы, используемые только для наследования. Такие классы называются абстрактными классами. Создание экземпляров абстрактных классов невозможно. По умолчанию классы являются конкретными. Для указания на то, должен ли класс быть абстрактным (abstract) или конкретным (concrete), применяется атрибут класса role. Ат­рибут класса role должен быть указан после атрибута класса is-а, но перед любыми определениями слотов, например.

Класс «Vid» имеет атрибут role равный abstract, Класс «cConds»  – concrete.

Управление доступом к слоту обеспечено с помощью атрибута слота – create-accessor. Ему присвоено значение read-write, обеспечивающий доступ к слоту для чтения и записи.

Атрибутом default задается значение слота по умолчанию, для класса «Vid» это значение является идентификатором ответа.

Атрибут слота storage с присвоенным значением local позволяет каждому создаваемому  экземпляру получать свою собственную область памяти, предназначенную для хранения значения слота.

Язык CLIPS позволяет определять новые функции по такому же принципу, как и в других процедурных языках. Новые функции определяются с использованием конструкции deffunction.

Созданная функция «conds», при своем вызове из файла tabl.php с помощью функции clips_function_call(), принимает на вход параметр «?vid», являющийся идентификатором ответа, и с помощью команды make-instance создает экземпляр класса «cConds».

С помощью конструкции

switch ?vid

        (case …))))

        …

        (case …))))

        (case …))))

и обработчиков сообщение get-, put-, вызываемых командой send, организовано присвоение слоту score класса «cConds» значения идентификатора следующего вопроса – оно и является выходным значением функции «conds». В дальнейшем это вычисленное значение идентификатора определяет, какой из возможных вопросов, с вариантами ответов, выводится на экран.[1][2]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

   4. АЛГОРИТМ РАБОТЫ ЭКСПЕРТНОЙ СИСТЕМЫ

 

Когда вызывается функция «conds» с соответствующим параметром, в ней создаётся объект класса «cConds», который наследует класс с идентификаторами ответов – «Vid», далее в зависимости от того, какие значения имеют параметры в слоте score класса «cConds», функции присваивается определенной значение.

Ниже представлены блок – схемы работы экспертной системы.

Блок схема работы экспертной системы представлена в приложении Б.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

   5. реализация пользовательского интерфейса

 

Экспертную систему можно представлять состоящей из трех частей:

1. База знаний (БЗ).

2. Механизм вывода (МВ).

3. Система пользовательского интерфейса (СПИ).

База знаний – центральная часть экспертной системы. Она содержит правила, описывающие отношения или явления, методы и знания для решения задач из области применения системы.

Механизм вывода содержит принципы и правила работы. Механизм вывода «знает», как использовать базу знаний так, чтобы можно было получать разумно согласующиеся заключения из информации, находящейся в ней.

Когда вопрос должен быть предварительно обработан, то доступ к базе знаний осуществляется через интерфейс с пользователем. Интерфейс – это часть экспертной системы, которая взаимодействует с пользователем.

Система интерфейса с пользователем принимает информацию от пользователя и передает ему информацию. Просто говоря, система интерфейса должна убедиться, что, после того как пользователь описал задачу, вся необходимая информация получена. Интерфейс, основываясь на виде и природе информации, введенной пользователем, передает необходимую информацию механизму вывода. Когда механизм вывода возвращает знания, выведенные из базы знаний, интерфейс передает их обратно пользователю в удобной форме. Интерфейс с пользователем и механизм вывода могут рассматриваться как «приложение» к базе знаний. Они вместе составляют оболочку экспертной системы.

Система интерфейса с пользователем должна эффективно обрабатывать ввод и

вывод. Для этого необходимо обрабатывать вводимые и выводимые данные быстро, в ясной и выразительной форме. Необходимо также включить возможность работы с дополнительными средствами, такими как печатающие устройства и дополнительные файлы данных.

 

Наконец, система пользовательского интерфейса должна быть «дружелюбной» к пользователю.[9]

Для реализации пользовательского интерфейса в разрабатываемой системе были использованы следующие технологии: HTML, CSS, PHP.

Для связывания экспертной системы на языке CLIPS использовалось расширение для PHP phlips версии 0.5.0.

Выбор именно этих средств обусловлен, простотой и скоростью разработки.

Непосредственно интерфейс реализован на языке HTML, для визуального оформления применены CSS.

Серверная часть, отвечающая за работу с CLIPS и бизнес-логику написана на PHP. Для навигации также используется PHP.