Проектирование экспертной системы выбора нейронной сети. Сущность семантических сетей и фреймов. MatLab и системы Фаззи-регулирования. Реализация программы с использованием пакета fuzzy logic toolbox системы MatLab 7. Составление продукционных правил.
Цель исследований по экспертным системам состоит в разработке программ, которые при решении задач, трудных для эксперта-человека, получают результаты, не уступающие по качеству и эффективности решениям, получаемым экспертом. В системах первого типа осуществляется выбор решения из множества известных решений на основе анализа знаний, в системах второго типа решение синтезируется из отдельных фрагментов знаний. Существуют системы, основанные на знаниях, пока еще не пригодные для решения задач методами проведения аналогий или абстрагирования (человеческий мозг справляется с этим лучше). Области применения систем, основанных на знаниях, могут быть сгруппированы в несколько основных классов: медицинская диагностика, контроль и управление, диагностика неисправностей в механических и электрических устройствах, обучение. Системы, основанные на знаниях, могут применятся в качестве интеллектуальных систем контроля и принимать решения, анализируя данные, поступающие от нескольких источников.В данном курсовом проекте было спроектировано программно-техническое средство, позволяющее пользователю в диалоговом режиме получать от компьютера консультационную помощь при выборе нейронной сети в конкретной предметной области, где сконцентрированы опыт и знания людей-экспертов (специалистов в данной области). Была достигнута цель проекта, которая состояла в разработке программы, которая при решении задач, трудных для эксперта-человека, получает результаты, не уступающие по качеству и эффективности решениям, получаемым экспертом.
Введение
Очень часто для решения широкого спектра задач требуется специальные знания, которые, в силу своего большого практического опыта, известны экспертам. Однако не всегда можно получить у них консультацию.
Для решения этой проблемы в середине семидесятых годов в исследованиях по искусственному интеллекту сформировалось самостоятельное направление, получившее название экспертные системы.
Экспертная система - программно-техническое средство, позволяющее пользователю в диалоговом режиме получать от компьютера консультационную помощь в конкретной предметной области, где сконцентрированы опыт и знания людей-экспертов (специалистов в данной области) [7].
Цель исследований по экспертным системам состоит в разработке программ, которые при решении задач, трудных для эксперта-человека, получают результаты, не уступающие по качеству и эффективности решениям, получаемым экспертом. В большинстве случаев экспертные системы решают трудно формализуемые задачи или задачи, не имеющие алгоритмического решения.
В основе функционирования ЭС лежит использование знаний, а манипулирование ими осуществляется на базе эвристических правил, сформулированных экспертами. ЭС выдают советы, проводят анализ, выполняют классификацию, дают консультации и ставят диагноз. Они ориентированы на решение задач, обычно требующих проведения экспертизы человеком-специалистом. В отличие от машинных программ, использующий процедурный анализ, ЭС решают задачи в узкой предметной на основе дедуктивных рассуждений. Главное достоинство экспертных систем - возможность накапливать знания, сохранять их длительное время, обновлять и тем самым обеспечивать относительную независимость конкретной организации от наличия в ней квалифицированных специалистов [4].
Для проектирования экспертных систем используем пакет fuzzy logic toolbox системы MATLAB 7.
1. Литературный обзор
1.1 Экспертные системы
Экспертная система (ЭС) - компьютерная программа, способная частично заменить специалиста-эксперта в разрешении проблемной ситуации. ЭС начали разрабатываться исследователями искусственного интеллекта в 1970-х годах, а в 1980-х получили коммерческое подкрепление [5].
В информатике экспертные системы рассматриваются совместно с базами знаний как модели поведения экспертов в определенной области знаний с использованием процедур логического вывода и принятия решений, а базы знаний - как совокупность фактов и правил логического вывода в выбранной предметной области деятельности.
Классификация и виды экспертных систем: - для классификации ЭС используют следующие признаки: а) способ формирования решения;
б) способ учета временного признака;
- вид используемых данных.
1.1.1 Число используемых источников решения знаний.
По способу формирования решения ЭС можно разделить на анализирующие и синтезирующие. В системах первого типа осуществляется выбор решения из множества известных решений на основе анализа знаний, в системах второго типа решение синтезируется из отдельных фрагментов знаний. В зависимости от способа учета временного признака ЭС делят на статические и динамические. Статические ЭС предназначены для решения задач с неизменяемыми в процессе решения данными и знаниями, а динамические ЭС допускают такие изменения.
По видам используемых данных и знаний различают ЭС с детерминированными и неопределенными знаниями. Под неопределенностью знаний и данных понимаются их неполнота, ненадежность, нечеткость. ЭС могут создаваться с использованием одного или нескольких источников знаний.
1.1.2 Область применения экспертных систем
Существует ряд прикладных задач, которые решаются с помощью систем, основанных на знаниях, более успешно, чем любыми другими средствами. При определении целесообразности применения таких систем нужно руководствоваться следующими критериями: - данные и знания надежны и не меняются со временем;
- пространство возможных решений относительно невелико.
В процессе решения задачи должны использоваться формальные рассуждения. Существуют системы, основанные на знаниях, пока еще не пригодные для решения задач методами проведения аналогий или абстрагирования (человеческий мозг справляется с этим лучше). В свою очередь традиционные компьютерные программы оказываются эффективнее систем, основанных на знаниях, в тех случаях, когда решение задачи связано с применением процедурного анализа. Системы, основанные на знаниях, более подходят для решения задач, где требуются формальные рассуждения.
Должен быть по крайней мере один эксперт, который способен явно сформулировать свои знания и объяснить свои методы применения этих знаний для решения задач.
В таблице один приведены сравнительные свойства прикладных задач, по наличию которых можно судить о целесообразности использования для их решения ЭС.
В целом ЭС не рекомендуется применять для решения следующих типов задач: математических, решаемых обычным путем формальных преобразований и процедурного анализа;
задач распознавания, поскольку в общем случае они решаются численными методами;
задач, знания о методах решения которых отсутствуют (невозможно строить базу знаний).
Области применения систем, основанных на знаниях, могут быть сгруппированы в несколько основных классов: медицинская диагностика, контроль и управление, диагностика неисправностей в механических и электрических устройствах, обучение.
1.1.3 Прогнозирование
Прогнозирующие системы предсказывают возможные результаты или события на основе данных о текущем состоянии объекта. Программная система "Завоевание Уолл-Стрита" может проанализировать конъюнктуру рынка и с помощью статистических методов алгоритмов разработать для вас план капиталовложений на перспективу. Она не относится к числу систем, основанных на знаниях, поскольку использует процедуры и алгоритмы традиционного программирования. Хотя пока еще отсутствуют ЭС, которые способны за счет своей информации о конъюнктуре рынка помочь вам увеличить капитал, прогнозирующие системы уже сегодня могут предсказывать погоду, урожайность и поток пассажиров. Даже на персональном компьютере, установив простую систему, основанную на знаниях, вы можете получить местный прогноз погоды.
1.1.4 Планирование
Планирующие системы предназначены для достижения конкретных целей при решении задач с большим числом переменных. Дамасская фирма Informat впервые в торговой практике предоставляет в распоряжении покупателей 13 рабочих станций, установленных в холле своего офиса, на которых проводятся бесплатные 15-минутные консультации с целью помочь покупателям выбрать компьютер, в наибольшей степени отвечающий их потребностям и бюджету. Кроме того, компания Boeing применяет ЭС для проектирования космических станций, а также для выявления причин отказов самолетных двигателей и ремонта вертолетов. Экспертная система XCON, созданная фирмой DEC, служит для определения или изменения конфигурации компьютерных систем типа VAX и в соответствии с требованиями покупателя. Фирма DEC разрабатывает более мощную систему XSEL, включающую базу знаний системы XCON, с целью оказания помощи покупателям при выборе вычислительных систем с нужной конфигурацией. В отличие от XCON система XSEL является интерактивной.
1.1.5 Интерпретация
Интерпретирующие системы обладают способностью получать определенные заключения на основе результатов наблюдения. Система PROSPECTOR, одна из наиболее известных систем интерпретирующего типа, объединяет знания девяти экспертов. Используя сочетания девяти методов экспертизы, системе удалось обнаружить залежи руды стоимостью в миллион долларов, причем наличие этих залежей не предполагал ни один из девяти экспертов. Другая интерпретирующая система- HASP/SIAP. Она определяет местоположение и типы судов в тихом океане по данным акустических систем слежения.
1.1.6 Контроль и управление
Системы, основанные на знаниях, могут применятся в качестве интеллектуальных систем контроля и принимать решения, анализируя данные, поступающие от нескольких источников. Такие системы уже работают на атомных электростанциях, управляют воздушным движением и осуществляют медицинский контроль. Они могут быть также полезны при регулировании финансовой деятельности предприятия и оказывать помощь при выработке решений в критических ситуациях.
1.1.7 Обучение
Системы, основанные на знаниях, могут входить составной частью в компьютерные системы обучения. Система получает информацию о деятельности некоторого объекта (например, студента) и анализирует его поведение. База знаний изменяется в соответствии с поведением объекта. Примером этого обучения может служить компьютерная игра, сложность которой увеличивается по мере возрастания степени квалификации играющего. Одной из наиболее интересных обучающих ЭС является разработанная Д. Ленатом система EURISCO, которая использует простые эвристики. Эта система была опробована в игре Т. Тревевеллера, имитирующая боевые действия. Суть игры состоит в том, чтобы определить состав флотилии, способной нанести поражение в условиях неизменяемого множества правил. Система EURISCO включила в состав флотилии небольшие, способные провести быструю атаку корабли и одно очень маленькое скоростное судно и постоянно выигрывала в течение трех лет, несмотря на то, что в стремлении воспрепятствовать этому правила игры меняли каждый год. Большинство ЭС включают знания, по содержанию которых их можно отнести одновременно к нескольким типам. Например, обучающая система может также обладать знаниями, позволяющими выполнять диагностику и планирование. Она определяет способности обучаемого по основным направлениям курса, а затем с учетом полученных данных составляет учебный план. Управляющая система может применяться для целей контроля, диагностики, прогнозирования и планирования. Система, обеспечивающая сохранность жилища, может следить за окружающей обстановкой, распознавать происходящие события (например, открылось окно), выдавать прогноз (вор-взломщик намеревается проникнуть в дом) и составлять план действий (вызвать полицию).
Наиболее известные ЭС, разработанные в 60-70-х годах, стали в своих областях уже классическими. По происхождению, предметным областям и по преемственности применяемых идей, методов и инструментальных программных средств их можно разделить на несколько семейств [2].
1.2 Семантические сети и фреймы
Семантическая сеть - информационная модель предметной области, имеющая вид ориентированного графа, вершины которого соответствуют объектам предметной области, а дуги (ребра) задают отношения между ними. Объектами могут быть понятия, события, свойства, процессы. Таким образом, семантическая сеть является одним из способов представления знаний. В названии соединены термины из двух наук: семантика в языкознании изучает смысл единиц языка, а сеть в математике представляет собой разновидность графа - набора вершин, соединенных дугами (ребрами), которым присвоено некоторое число. В семантической сети роль вершин выполняют понятия базы знаний, а дуги (причем направленные) задают отношения между ними. Таким образом, семантическая сеть отражает семантику предметной области в виде понятий и отношений [7]. нейронный сеть семантический фрейм
1.2.1 Структура
Математика позволяет описать большинство явлений в окружающем мире в виде логических высказываний. Семантические сети возникли как попытка визуализации математических формул. Основным представлением для семантической сети является граф. Однако не стоит забывать, что за графическим изображением непременно стоит строгая математическая запись, и что обе эти формы отображают одно и то же.
1.2.2 Графическое представление
Основной формой представления семантической сети является граф. Понятия семантической сети записываются в овалах или прямоугольниках и соединяются стрелками с подписями - дугами. Это наиболее удобно воспринимаемая человеком форма. Ее недостатки проявляются, когда мы начинаем строить более сложные сети или пытаемся учесть особенности естественного языка. Схемы семантических сетей, на которых указаны направления навигационных отношений, называют картами знаний, а их совокупность, позволяющая охватить большие участки семантической сети, атласом знания.
1.2.3 Математическая запись
В математике граф представляется множеством вершин V и множеством отношений между ними E. Используя аппарат математической логики, приходим к выводу, что каждая вершина соответствует элементу предметного множества, а дуга - предикату.
1.2.4 Лингвистическая запись
В лингвистике отношения фиксируются в словарях и в тезаурусах. В словарях в определениях через род и видовое отличие родовое понятие занимает определенное место. В тезаурусах в статье каждого термина могут быть указаны все возможные его связи с другими родственными по теме терминами. От таких тезаурусов необходимо отличать тезаурусы информационно- поисковые с перечнями ключевых слов в статьях, которые предназначены для работы дескрипторных поисковых систем.
1.2.5 Классификация семантических сетей
Для всех семантических сетей справедливо разделение по арности и количеству типов отношений.
По количеству типов отношений, сети могут быть однородными и неоднородными.
Однородные сети обладают только одним типом отношений (стрелок), например, таковой является вышеупомянутая классификация биологических видов (с единственным отношением AKO).
В неоднородных сетях количество типов отношений больше одного. Классические иллюстрации данной модели представления знаний представляют именно такие сети. Неоднородные сети представляют больший интерес для практических целей, но и большую сложность для исследования. Неоднородные сети можно представлять как переплетение древовидных многослойных структур. Примером такой сети может быть Семантическая сеть Википедии.
По арности: типичными являются сети с бинарными отношениями (связывающими ровно два понятия). Бинарные отношения очень просты и удобно изображаются на графе в виде стрелки между двух концептов. Кроме того, они играют исключительную роль в математике.
На практике, однако, могут понадобиться отношения, связывающие более двух объектов - N-арные. При этом возникает сложность - как изобразить подобную связь на графе, чтобы не запутаться. Концептуальные графы (см. ниже) снимают это затруднение, представляя каждое отношение в виде отдельного узла.
По размеру: - для решения конкретных задач, например, тех которые решают системы искусственного интеллекта;
- семантическая сеть отраслевого масштаба должна служить базой для создания конкретных систем, не претендуя на всеобщее значение;
- глобальная семантическая сеть. Теоретически такая сеть должна существовать, поскольку все в мире взаимосвязано. Возможно когда-нибудь такой сетью станет Всемирная паутина.
Помимо концептуальных графов существуют и другие модификации семантических сетей, это является еще одной основой для классификации (по реализации). См. более подробно в соответствующем разделе ниже.
1.2.6 Семантические отношения
Количество типов отношений в семантической сети определяется ее создателем, исходя из конкретных целей. В реальном мире их число стремится к бесконечности. Каждое отношение является, по сути, предикатом, простым или составным. Скорость работы с базой знаний зависит от того, насколько эффективно реализованы программы обработки нужных отношений [7].
1.3 Нейронные сети
Искусственная нейронная сеть (ИНС) - математическая модель, а также ее программное или аппаратное воплощение, построенная по принципу организации и функционирования биологических нейронных сетей - сетей нервных клеток живого организма. Это понятие возникло при изучении процессов, протекающих в мозге, и при попытке смоделировать эти процессы. Первой такой попыткой были нейронные сети У. Маккалока и У. Питтса. После разработки алгоритмов обучения получаемые модели стали использовать в практических целях: в задачах прогнозирования, для распознавания образов, в задачах управления и др.
ИНС представляют собой систему соединенных и взаимодействующих между собой простых процессоров (искусственных нейронов). Такие процессоры обычно довольно просты (особенно в сравнении с процессорами, используемыми в персональных компьютерах). Каждый процессор подобной сети имеет дело только с сигналами, которые он периодически получает, и сигналами, которые он периодически посылает другим процессорам. И, тем не менее, будучи соединенными в достаточно большую сеть с управляемым взаимодействием, такие локально простые процессоры вместе способны выполнять довольно сложные задачи.
С точки зрения машинного обучения, нейронная сеть представляет собой частный случай методов распознавания образов, дискриминантного анализа, методов кластеризации и т.п. С математической точки зрения, обучение нейронных сетей - это многопараметрическая задача нелинейной оптимизации. С точки зрения кибернетики, нейронная сеть используется в задачах адаптивного управления и как алгоритмы для робототехники. С точки зрения развития вычислительной техники и программирования, нейронная сеть - способ решения проблемы эффективного параллелизма. А с точки зрения искусственного интеллекта, ИНС является основой философского течения коннективизма и основным направлением в структурном подходе по изучению возможности построения (моделирования) естественного интеллекта с помощью компьютерных алгоритмов.
Нейронные сети не программируются в привычном смысле этого слова, они обучаются. Возможность обучения - одно из главных преимуществ нейронных сетей перед традиционными алгоритмами. Технически обучение заключается в нахождении коэффициентов связей между нейронами. В процессе обучения нейронная сеть способна выявлять сложные зависимости между входными данными и выходными, а также выполнять обобщение. Это значит, что в случае успешного обучения сеть сможет вернуть верный результат на основании данных, которые отсутствовали в обучающей выборке, а также неполных и/или «зашумленных», частично искаженных данных[3].
2. Практическая часть
2.1 MATLAB и системы Фаззи-регулирования
Широкому распространению фаззи-систем управления в немалой степени способствует программная система MATLAB, в составе которой имеется пакет программ по фаззи-логике.
Fuzzy Logic Toolbox позволяет создавать и редактировать фаззи-системы управления с нечеткой логикой, называемые в терминах программной системы MATLAB - Fuzzy Inference System или FIS. Эти системы можно создавать, используя как графические инструменты, так и команды рабочего окна MATLAB.
Fuzzy Logic Toolbox также позволяет управлять созданными программами и непосредственно без Simulink. Это осуществляется с помощью автономного Fuzzy Inference Engine, который работает с нечеткими системами, сохраненными в MATLAB. Можно также настраивать Fuzzy Logic Toolbox, используя его для совместной работы с другими пакетами типа Control System (Системы управления), Neural Network (Нейросети) или Optimization Toolbox (Оптимизация).
2.1.1 Общие сведения о Fuzzy Logic Toolbox
Одна из целей пакета Fuzzy Logic Toolbox состоит в облегчении понимания и создания фаззи-систем управления. Фаззи-систему можно создавать, используя командную строку главного окна MATLAB. Однако намного проще сделать это графически с помощью инструментов графического интерфейса пользователя (GUI или ГИП), имеющихся в Fuzzy Logic Toolbox. Имеются пять инструментов GUI для создания, редактирования и наблюдения фаззи-систем в среде Fuzzy Logic Toolbox. Это Fuzzy Inference System Editor или FIS Editor - Редактор фаззи-инференционной системы, Membership Function Editor - Редактор функций принадлежности, Rule Editor - Редактор правил, Rule Viewer - Просмотр правил и Surface Viewer - Просмотр поверхности (пространства управления). Эти инструменты GUI динамически связаны между собой: используя один из них в FIS и производя изменения, можно затем увидеть их действия в других инструментах GUI. В дополнение к этим пяти инструментам Fuzzy Logic Toolbox включает в себя графический редактор GUI ANFIS, который используется для создания и анализа Sugeno-типа адаптивных нейросистем с нечеткой логикой - adaptive neuro-FIS (ANFIS).
FIS редактор решает проблемы верхнего уровня системы: сколько входных и выходных переменных и каковы их имена?
Fuzzy Logic Toolbox не имеет ограничений по числу входов фаззи-системы - все зависит от доступной памяти компьютера.
Рисунок 2.1 - Структура фаззи-инференционной системы - FIS
Membership Function Editor используется для того, чтобы определить виды всех функций принадлежности, связанных с каждой переменной.
Rule Editor используется для редактирования списка правил, который определяет функционирование фаззи-системы.
Rule Viewer и Surface Viewer используются только для просмотра результатов, но не редактирования фаззи-системы. Rule Viewer показывает диаграмму функционирования. Используя его в качестве диагностического средства, можно увидеть, например, какие правила активны, или как индивидуальные функции принадлежности влияют на результаты. Surface Viewer используется для показа зависимости выхода от одного или двух из входов системы, то есть показывается диаграмма поверхности пространства управления системы. Все пять инструментов GUI могут взаимодействовать и обмениваться информацией между собой. Любой из них может считывать и сохранять данные в рабочем пространстве MATLAB и на жестком диске компьютера [1].
2.2 Составление семантической модели и фреймов
Составим для нейронных сетей семантическую сеть и фреймы (рисунок 2.2 и 2.3).
Семантическая сеть - информационная модель предметной области, имеющая вид ориентированного графа, вершины которого соответствуют объектам предметной области, а дуги (ребра) задают отношения между ними. Объектами могут быть понятия, события, свойства, процессы. Таким образом, семантическая сеть является одним из способов представления знаний. В названии соединены термины из двух наук: семантика в языкознании изучает смысл единиц языка, а сеть в математике представляет собой разновидность графа - набора вершин, соединенных дугами (ребрами), которым присвоено некоторое число.
Фрейм - это модель абстрактного образа, минимально возможное описание сущности какого-либо объекта, явления, события, ситуации, процесса.
Фреймы используются в системах искусственного интеллекта (например, в экспертных системах) как одна из распространенных форм представления знаний [7].
Рисунок 2.2 - Семантическая сеть
Рисунок 2.3 - Фреймы
2.3 Составление продукционных правил
Пусть необходимо подобрать нейронную сеть.
Определим лингвистические переменные: тип входной информации (I), характер обучения (O), характер настройки синапсов (N), время передачи сигнала (T); характер связей (C).
Термы для переменной I : Аналоговая, Двоичная;
Термы для переменной O: С учителем, Без учителя;
Термы для переменной N: С фиксир. связями, С динамич. связями;
Термы для переменной T: Синхронная сеть, Асихронная сеть;
Термы для переменной R : Сети прям. распр, Реккурентные НС;
Составим продукционные правила. Для этого пользователь должен ответить на 5 вопросов, на основе которых и будет выбран определенный вид нейронной сети. Для удобства введем базу знаний в программный продукт Microsoft Excel, следовательно, при ответе на вопросы в определенном порядке: нет, да, нет, да, да - экспертная система должна выдать нам результат «Нейронная сеть» со 100% вероятностью.
Рисунок 2.4 - База знаний
На основе базы знаний и предложенных вопросов мы можем составить продукционные правила. Для удобства термы переменной I: обозначили как Yes и No соответственно. Аналогично поступили и с остальными переменными.
Продукционные правила: 1)/Если I = No и О = Yes и N = Yes и T = Yes и C = Yes, то P100 = 1;
2)/Если I = No и O = Yes и N = No и T = Yes и C = Yes, то P100 = 2;
3)/Если I = Yes и O = Yes и N = No и T = Yes и C = Yes, то P100 = 3;
4)/Если I = Yes и O = No и N = Yes и T = Yes и C = Yes, то P100 = 4;
5)/Если I = Yes и O = Yes и N = Yes и T = Yes и C = Yes, то P100 = 5;
6)/Если I = Yes и O = Yes и N = Yes и T = Yes и C = No, то P100 = 6;
7)/Если I = No и O = Yes и N = No и T = No и C = No, то P100 = 7;
8)/Если I = No и O = Yes и N = No и T = Yes и C = No, то P100 = 8;
9)/Если I = No и O = Yes и N = No и T = No и C = Yes, то P100 = 9;
10)/Если I = Yes и O = Yes и N = No и T = Yes и C = No, то P100 = 10;
11)/Если I = Yes и O = No и N = No и T = Yes и C = Yes, то P100 = 11;
12)/Если I = No и O = No и N = No и T = Yes и C = No, то P100 = 12;
13)/Если I = Yes и O = Yes и N = Yes и T = No и C = Yes, то P80 = 5;
14)/Если I = Yes и O = Yes и N = Yes и T = No и C = No, то P80 = 6;
15)/Если Ip = Yes и O = Yes и N = No и T = No и C = Yes, то P80 = 3;
16)/Если I = Yes и O = Yes и N = No и T = No и C = No, то P80 = 10;
17)/Если I = Yes и O = No и N = Yes и T = Yes и C = No, то P80 = 4;
18)/Если I = Yes и O = No и N = Yes и T = No и C = Yes, то P80 = 4;
19)/Если I = Yes и O = No и N = No и T = Yes и C = No, то P80 = 11;
20)/Если I = Yes и O = No и N = No и T = No и C = Yes, то P80 = 11;
21)/Если I = No и O = Yes и N = Yes и T = Yes и C = No, то P80 = 1;
22)/Если I = No и O = Yes и N = Yes и T = No и C = Yes, то P80 = 1;
23)/Если I = No и O = No и N = Yes и T = Yes и C = No, то P80 = 12;
24)/Если I = No и O = No и N = No и T = Yes и C = Yes, то P80 = 12;
25)/Если I = No и O = No и N = No и T = No и C = No, то P80 = 12;
26)/Если I = Yes и O = Yes и N = Yes и T = Yes, то P80 = 5, 6;
27)/Если I = Yes и O = Yes и N = No и T = Yes, то P80 = 3, 10;
28)/Если I = Yes и O = No и N = Yes и T = Yes, то P80 = 4;
29)/Если I = Yes и O = No и N = No и T = Yes, то P80 = 11;
30)/Если I = No и O = Yes и N = Yes и T = Yes, то P80 = 1;
31)/Если I = No и O = Yes и N = No и T = Yes, то P80 = 2, 8;
32)/Если I = No и O = Yes и N = No и T = No, то P80 = 7, 9;
33)/Если I = No и O = No и N = No и T = Yes, то P80 = 12;
34)/Если I = Yes и O = Yes и N = Yes и T = No, то P60 = 5, 6;
35)/Если I = Yes и O = Yes и N = No и T = No, то P60 = 3, 10;
36)/Если I = Yes и O = No и N = Yes и T = No, то P60 = 4;
37)/Если I = Yes и O = No и N = No и T = No, то P60 = 11;
38)/Если I = No и O = Yes и N = Yes и T = No, то P60 = 1;
39)/Если I = No и O = No и N = No и T = No, то P60 = 12;
40)/Если I = Yes и O = No и N = Yes и T = No и C = No, то P60 = 4;
41)/Если I = Yes и O = No и N = No и T = No и C = No, то P60 = 11;
42)/Если I = No и O = Yes и N = Yes и T = No и C = No, то P60 = 1;
43)/Если I = No и O = No и N = Yes и T = Yes и C = Yes, то P60 = 12;
44)/Если I = No и O = No и N = Yes и T = No и C = No, то P60 = 12;
45)/Если I = No и O = No и N = No и T = No и C = No, то P60 = 12;
46)/Если I = Yes и O = Yes и N = Yes, то P60 = 5, 6;
47)/Если I = Yes и O = Yes и N = No, то P60 = 3, 10;
48)/Если I = Yes и O = No и N = Yes, то P60 = 4;
49)/Если I = Yes и O = No и N = No, то P60 = 11;
50)/Если I = No и O = Yes и N = Yes, то P60 = 1;
51)/Если I = No и O = Yes и N = No, то P60 = 2, 7, 8, 9;
52)/Если I = No и O = No и N = No, то P60 = 12;
53)/ Если I = No и O = No и N = Yes и T = No и C = Yes, то P40 = 12;
54)/ Если I = No и O = No и N = Yes и T = Yes, то P40 = 12;
55)/ Если I = No и O = No и N = Yes и T = No, то P40 = 12;
56)/ Если I = No и O = No и N = Yes, то P40 = 12;
57)/ Если I = Yes и O = Yes, то P40 = 3, 4, 5, 6, 10;
58)/ Если I = Yes и O = No, то P40 = 4, 11;
59)/ Если I = No и O = Yes, то P40 = 1, 2, 7, 8, 9;
60)/ Если I = No и O = No, то P40 = 12;
61)/ Если I = Yes, то P20 = 3, 4, 5, 6, 10, 11;
62)/ Если I = No, то P20 = 1, 2, 7, 8, 9, 12.
2.4 Проектирование экспертной системы в MATLAB
Создадим в MATLAB экспертную систему: Для этого необходимо ввести в окне команду Fuzzy или же проделать операции, показанные на рисунке 2.5.
Рисунок 2.5 - Инструкции по запуску Fuzzy Logic Toolbox
Задаем 5 входных переменных I, O, N, T, C (EDIT?ADD VARIABLE?INPUT) и четыре выходные переменные P100, P80, P60, P40 (EDIT?ADD VARIABLE?OUTPUT). Окно принимает вид:
Рисунок 2.7 - Рабочее окно FIS Editor с переименованными переменными
Для переменной I, щелкнув на соответствующей иконке, задаем две функции принадлежности zmf и smf (Yes и No), так как они наиболее подходят для наших термов.
Рисунок 2.8 - Окно настроек функции принадлежности Yes
В параметре Range необходимо указывать интервал вводимых значений, в параметре Name даем название нашему интервалу; в параметре Params необходимо указать вероятности для функции принадлежности.
Аналогично производим настройки для второго интервала (No):
Рисунок 2.9 - Окно настроек функции принадлежности No
По такому же принципу необходимо настроить все 5 входных переменных.
Далее настраиваем выходные переменные:
Рисунок 2.10 - Окно настроек функций принадлежности для выходной переменной
То есть мы выбрали одинаковую вероятность для всех функций принадлежности.
Далее необходимо вводить составленные правила. Для этого выберем пункт-меню View -> Edit rules.
Рисунок 2.11 - Окно для ввода продукционных правил
Необходимо ввести все правила, выбирая ответы из представленных вариантов.
Теперь самое время проверить систему в действии. Откроем (через пункт меню View -> View rules) окно просмотра правил и установим значения переменных.
Переменные необходимо вводить в окно Input через пробел.
Рисунок 2.12 - Окно для просмотра результатов
Как видим при данных значениях параметров выполняется условие 9, которое означает, что с вероятностью 100 % нам подходит сеть Кохонена.
Вывод
В данном курсовом проекте было спроектировано программно-техническое средство, позволяющее пользователю в диалоговом режиме получать от компьютера консультационную помощь при выборе нейронной сети в конкретной предметной области, где сконцентрированы опыт и знания людей-экспертов (специалистов в данной области).
Была достигнута цель проекта, которая состояла в разработке программы, которая при решении задач, трудных для эксперта-человека, получает результаты, не уступающие по качеству и эффективности решениям, получаемым экспертом.
Для достижения поставленной цели подробно изучили пакет fuzzy logic toolbox системы MATLAB 7 и провели анализ входных данных.
А именно: - разработана семантическая сеть;
- разработаны фреймы;
- составлены продукционные правила;
- реализована экспертная система.
Готовая система показала свою работоспособность, результаты теста можно увидеть на рисунке 2.12.
Список литературы
Ахметова, О.В. Методические указания к курсовому проектированию экспертные системы и нейронные сети. Реализация в программном продукте matlab [Текст] / О.В. Ахметова, А.М. Хафизов- Салават. УГНТУ, 2012. - 48 с.
Гаврилова, Т.А. Базы знаний интеллектуальных систем [Текст] / Т. А. Гаврилова, В. Ф. Хорошевский. Учебник. - СПБ: Питер, 2000.- 238 с.
Гаскаров, Д.Б. Интеллектуальные информационные системы [Текст]/ Д.Б. Гаскаров. - М.: Высшая школа, 2003.- 364 с.
Нейлор, К.Б. Как построить свою экспертную систему [Текст]/ К.Б. Нейлор. - М.: Энергоатомиздат, 2011.- 197 с.
Убейко, В.Н. Экспертные системы [Текст]/ В.Н. Убейко. - М.: МАИ, 1999.-243 с.
Ясницкий, Л.Н. Введение в искусственный интеллект [Текст]/ Л.Н. Ясницкий. - М.: Академия, 2005. - 167 с.