Методы и программные средства ускорения поиска решения в базах знаний нечетких экспертных систем тема диссертации и автореферата по ВАК РФ 05.13.11, кандидат наук Зо Мин Тайк
- Специальность ВАК РФ05.13.11
- Количество страниц 154
Оглавление диссертации кандидат наук Зо Мин Тайк
ВВЕДЕНИЕ
ГЛАВА 1. ЭКСПЕРТНЫЕ СИСТЕМЫ. ПРЕДСТАВЛЕНИЕ И ВЫВОД ЗНАНИЙ
1.1. Экспертные системы
1.2. Классификация экспертных систем
1.3. Структура экспертной системы
1.4. Разработка экспертных систем
1.5. Преимущества экспертных систем
1.6. Модели представления знаний
1.6.1. Логическая модель
1.6.2. Фреймовая модель
1.6.3. Семантические сети
1.6.4. Продукционная модель
1.7. Нечёткие экспертные системы
1.7.1. Нечёткая переменная
1.7.2. Лингвистическая переменная
1.7.3. Нечёткая база правил экспертной системы
1.7.4. Нечёткий логический вывод
1.8. Задача ускорения поиска решения в нечётких экспертных системах
1.9. Выводы по главе
ГЛАВА 2. КЛАССИФИКАЦИЯ МЕТОДОВ УСКОРЕНИЯ ПОИСКА РЕШЕНИЯ В ЭКСПЕРТНЫХ СИСТЕМАХ
2.1. Классификация методов ускорения обработки правил в экспертных системах
2.2. Алгоритм Rete для продукционной базы знаний экспертной системы
2.2.1. Альфа сеть
2.2.2. Бета сеть
2.2.3. Разрешение конфликтов
2.2.4. Выполнение продукций
2.2.5. Индексация памяти
2.2.6. Удаление записей и списки записей
2.2.7. Обработка условия ИЛИ
2.2.8. Диаграмма
2.2.9. Преимущества и недостатки
2.3. Сравнение алгоритмов Rete, Treat, Leaps для ускорения поиска решения в продукционной экспертной системе
2.3.1. Пример работы алгоритма Rete
2.3.2. Алгоритм Treat
2.3.3. Алгоритм Leaps
2.3.4. Сравнение алгоритмов Rete, Treat, Leaps
2.4. Алгоритм Fuzzy Rete для нечётких продукционных экспертных систем
2.5. Выводы по главе
ГЛАВА 3. РАЗРАБОТКА МЕТОДА УСКОРЕНИЯ ПОИСКА РЕШЕНИЯ ДЛЯ НЕЧЁТКИХ ЭКСЕПРТНЫХ СИСТЕМ
3.1. Формальная модель дерева решений алгоритма Fuzzy Rete
3.2. Пример представления правила из нечёткой базы правил в виде формальной модели дерева решений алгоритма Fuzzy Rete
3.3. Оценка близости одного концевого узла дерева другому узлу
3.4. Оценка близости промежуточного узла дерева другому узлу
3.5. Алгоритм Fuzzy Rete для формирования дерева решений нечёткой продукционной базы правил
3.6. Преимущества алгоритма Fuzzy Rete
3.7. Архитектура механизма поиска решения для нечёткой продукционной экспертной системы на основе алгоритма Fuzzy Rete
3.8. Выводы по главе
ГЛАВА 4. РАЗРАБОТКА И ТЕСТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ НЕЧЁТКОЙ ЭКСПЕРТНОЙ СИСТЕМЫ НА ОСНОВЕ АЛГОРИТМА FUZZY RETE
4.1. Применение разработанного алгоритма Fuzzy Rete для формирования рекомендаций экспертной системой
4.1.1. Постановка задачи экспертной системы
4.1.2. Обработка входных данных
4.1.3. Формирование дерева решений и поиск решения
4.1.4. Расшифровка результата
4.1.5. Анализ полученных результатов
4.2. Разработка прототипа экспертной системы
4.2.1. База данных
4.2.2. Пример работы: редактирование базы правил
4.2.3. Пример работы: поиск решения и формирование результата
4.3. Применение нечёткой экспертной системы с алгоритмом ускорения поиска решения Fuzzy Rete
4.3.1. Постановка задачи создания нечёткой экспертной системы нефте-водо-
газового расходомера
4.3.2. Нечёткие переменные и правила экспертной системы
4.3.3. Формирование дерева решений
4.3.4. Работа нечёткой экспертной системы
4.4. Оценка сложности поиска решения для нечёткой продукционной экспертной системы на основе алгоритма Fuzzy Rete
4.5. Анализ эффективности алгоритма Fuzzy Rete
4.6. Выводы по главе
ЗАКЛЮЧЕНИЕ
Литература
Приложение 1. Свидетельство о государственной регистрации программы для ЭВМ
Приложение 2. Акты о внедрении результатов работы
Приложение 3. Исходный текст основных модулей программы
Приложение 4. Правила нечёткой экспертной системы расходомера
ВВЕДЕНИЕ
В работе исследованы и разработаны методы и программные средства поиска решений для систем поддержки принятия решений (СППР) на основе методов искусственного интеллекта (ИИ).
Полученные результаты были использованы для разработки архитектуры нечёткой экспертной системы (ЭС) и выполнения программной реализации прототипа ЭС с использованием методов ускорения поиска решения.
Разработанный прототип ЭС был использован в учебно-научном процессе кафедры ПМ.
Рекомендованный список диссертаций по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК
Нейронечёткая модель и программный комплекс формирования баз знаний экспертных систем2006 год, кандидат технических наук Катасёв, Алексей Сергеевич
Программный комплекс для формализации экспертных знаний при нечетком (фаззи) моделировании2002 год, кандидат технических наук Токмаков, Александр Николаевич
Оптимизация процесса обработки информации при сертификации продукционных экспертных систем промышленных предприятий2019 год, кандидат наук Гончаров Андрей Александрович
Методы и программные средства представления знаний на основе нечетких таблиц решений и их применение в интеллектуальных системах2009 год, кандидат технических наук Виноградов, Олег Вячеславович
Модели и методы формирования нечетких правил в интеллектуальных системах диагностики состояния сложных объектов2014 год, кандидат наук Катасёв, Алексей Сергеевич
Введение диссертации (часть автореферата) на тему «Методы и программные средства ускорения поиска решения в базах знаний нечетких экспертных систем»
Актуальность темы исследования.
На данный момент ЭС стали основным инструментом, который используется для решения различных типов задач (интерпретация, предсказание, диагностика, планирование, конструирование, контроль, отладка, инструктаж, управление) в самых разнообразных проблемных областях [1]. В основе функционирования экспертных систем (ЭС) лежит модель знаний [2]. Она содержит набор принципов, которые описывают состояние и поведение объекта исследования. Наиболее широко применяемой моделью знаний для экспертных систем является продукционная модель в силу своей простоты, удобства обработки и понятности конечному пользователю [3].
Однако в последнее время большое распространение приобретают нечёткие экспертные системы. Данный тип экспертных систем базируется на наборе правил, в которых используются лингвистические переменные и нечёткие отношения для описания состояния и поведения исследуемого объекта[4]. Правила, представленные в таком виде, наиболее приближены к естественному языку, поэтому нет необходимости использования отдельного специалиста инженера по знаниям для создания и редактирования правил. В большинстве
случаев они могут быть отредактированы самим экспертом практически без специальной подготовки [5].
В связи с увеличением числа правил и масштабов таких нечётких экспертных систем на первый план исследований выдвигаются различные методы ускорения поиска решения в данных системах, а также задачи адаптации моделей знаний систем, для использования таких методов [6].
Для обеспечения ускорения поиска решения в базах знаний нечётких экспертных систем в работе предлагается использовать методы искусственного интеллекта[7], реализованные для классических экспертных систем, в частности, алгоритм Rete, предусматривающий однократное вычисление одинаковых условий правил, и выполнить его преобразование, позволяющее применить данный алгоритм в нечётких экспертных системах. Также, потребуется создать модель знаний для поиска решения согласно разрабатываемому методу.
Выполненные исследования опираются на результаты работ как в области конструирования ЭС, моделирования алгоритмов поиска решений, так и в области искусственного интеллекта Д.А. Поспелова, В.К. Финна, В.Н. Вагина, А.П. Еремеева, И.А. Башмакова, А.И. Башмакова, С.М. Ковалёва, О.П. Кузнецова, В.М. Курейчика, А.Н. Аверкина, Г.С. Осипова, Т.В. Рыбиной, В.Б. Тарасова, И.Б. Фоминых, В.Ф. Хорошевского и др., а также зарубежных ученых Л.А. Заде, Ч. Форги (L. Forgy), В. Новака (V. Novak), Р. Ягера (R. Yager) и др.
Объектом исследования являются методы поиска решения в продукционных экспертных системах. Предметом исследования являются методы ускорения поиска решения в продукционных экспертных системах и методы модификации баз знаний, направленные на ускорения поиска решения.
Целью работы является исследование и разработка методов и программных средств ускорения поиска решения для нечётких экспертных систем.
Для достижения данной цели в работе были поставлены следующие задачи:
• исследование и анализ основных характеристик и особенностей ЭС, анализ моделей знаний ЭС;
• анализ методов ускорения обработки правил в экспертных системах и разработка их классификации;
• разработка алгоритмов для ускорения поиска решения в нечёткой ЭС на основе алгоритма Rete;
• разработка модели знаний для обеспечения оптимизации базы правил и поиска решения в нечёткой ЭС, согласно предложенному алгоритму;
• разработка архитектуры механизма поиска решения для нечёткой ЭС, на основе предложенного метода;
• программная реализация прототипа нечёткой ЭС, функционирующей на основе предложенного алгоритма.
Методы исследования. Поставленные задачи решаются с использованием методов дискретной математики, математической логики, искусственного интеллекта, методов нечёткой логики, теории программирования.
Научная новизна исследования состоит в следующем:
1. Предложена формальная модель знаний для поиска решения согласно разработанному алгоритму Fuzzy Rete. Данная модель позволяет оптимизировать и сократить объём базы правил нечёткой экспертной системы.
2. Разработан алгоритм Fuzzy Rete для ускорения поиска решения в базах знаний нечётких экспертных систем, созданный на основе алгоритма Rete, и заключающийся в сокращении объёма вычислений за счёт объединения нечётких условий в нечёткой базе правил, представленной в формате разработанной формальной модели.
3. Предложена архитектура решателя нечёткой ЭС, функционирующего на основе разработанного подхода.
4. Разработан алгоритм преобразования знаний из базы знаний экспертной системы в формат предложенной формальной модели для обеспечения работы алгоритма Fuzzy Rete. Также данный алгоритм позволяет оценивать степени близости нечётких условий в нечёткой базе правил и выполнять их объединение. Предложенный алгоритм позволяет сокращать объём нечёткой базы правил без существенной потери точности вычисления нечётких условий.
Практическая значимость работы заключается в создании программных средств для реализации ускорения поиска решения на основе алгоритма Fuzzy Rete для нечётких ЭС и реализации прототипа нечёткой ЭС, повышающих эффективность и расширяющих интеллектуальные возможности компьютерных систем.
Практическая значимость работы подтверждается использованием разработанных в диссертации программных модулей, в том числе модуля ускорения поиска решения для нечётких экспертных систем, зарегистрированного в государственном реестре программ для ЭВМ (2016 свидетельство № 2016613791 от 16 февраля 2016 г.), в НИР кафедры ПМ, выполняемой по гранту РФФИ №1507-04574, и государственному заданию Минобрнауки РФ №2.737.2014/К, а также в учебно-научном процессе кафедры ПМ НИУ «МЭИ», о чем имеется акт о внедрении.
Достоверность научных результатов подтверждена теоретическими выкладками, данными компьютерного моделирования, а также сравнением полученных результатов с результатами, приведенными в научной литературе.
Апробация работы. Основные положения и результаты диссертации докладывались и обсуждались на 19-ой, 20-ой, 21-ой научных конференциях аспирантов и студентов «Радиотехника, электроника, энергетика» в МЭИ (г.
Москва, 2013 - 2015 г.), на ХХ1,ХХ11 Международной научно-технической конференции «Информационные средства и технологии »в МЭИ (г. Москва, 2013 - 2014 г.), на Международной конференции "Инновационные подходы к решению технико-экономических проблем "в МИЭТ(г. Зеленоград, 2014 г.), на четырнадцатой национальной конференции по искусственному интеллекту с международным участием КИИ-2014 (г. Казань, 2014 г.).
Публикации. Основные результаты, полученные при выполнении диссертационной работы, опубликованы в 10 печатных работах и из них три в журнале из перечня ВАК.
Структура и объем работы. Диссертация состоит из введения, 4 глав, заключения, списка использованной литературы (82 наименования) и 4 приложений. Диссертация содержит 124 страницы машинописного текста (без приложений).
СОДЕРЖАНИЕ РАБОТЫ
Во введении обоснована актуальность темы диссертации, ее научная новизна и практическая значимость, сформулирована цель работы и приведено краткое содержание диссертации по главам.
В первой главе рассмотрены основные понятия экспертных систем, классификация экспертных систем. Приводится каноническая структура экспертной системы. Рассматриваются этапы разработки экспертных систем. Перечислены основные преимущества применения экспертных систем. Рассмотрены различные модели знаний, описан способ представления знаний в экспертных системах с помощью продукционных правил и преимущества применения данного подхода. Рассматриваются основные понятия нечётких экспертных систем, на основе которых предложена формальная постановка
задачи ускорения поиска решения в базе правил нечёткой экспертной системы. Рассматриваются этапы нечёткого логического вывода.
Во второй главе приводится разработанная классификация методов ускорения обработки правил в экспертных системах. Рассмотрен синтаксический и семантический подходы к решению поставленной задачи. Обосновано дальнейшее рассмотрение способа, заключающегося в объединении элементов различных правил, в силу его универсальности. Рассмотрено сравнение алгоритмов Rete, Treat, Leaps. Показаны их достоинства и недостатки. Приводится описание работы алгоритма Rete для продукционных экспертных систем, как наиболее известного метода, обеспечивающего поиск одинаковых условий в правилах и исключающего их повторное вычисление.
В третьей главе предлагается разработанная формальная модель представления дерева решений для разработанного алгоритма Fuzzy Rete. Приводятся примеры представления правил из базы знаний в формате предложенной формальной модели. Рассматривается алгоритм Fuzzy Rete для ускорения поиска решения в базах знаний нечётких экспертных систем продукционного типа. Разработаны процедуры оценки близости концевых и промежуточных узлов деревьев правил. В конце главы предлагается разработанная архитектура механизма поиска решения в базах знаний нечётких экспертных систем, предусматривающая использование алгоритма Fuzzy Rete для ускорения вывода.
В четвёртой главе рассмотрено применение предложенного алгоритма Fuzzy Rete для решения задачи формирования рекомендации лечения пациента при наличии у него определённых симптомов. Рассматривается разработанный прототип экспертной системы, функционирующей с использованием алгоритма Fuzzy Rete. Приведена разработанная схема базы данных приложения. Далее рассмотрено практическое применение разработанного алгоритма Fuzzy Rete в нечёткой экспертной системе нефте-водо-газового расходомера для решения задачи управления работой нефтяной скважины на основе значений
контролируемых параметров нефтяной скважины. Приводится описание постановки задачи, примеры правил, пример построения дерева решений и поиска решения нечёткой экспертной системой на основе алгоритма Fuzzy Rete. В конце главы выполнена оценка сложности алгоритма Fuzzy Rete. Также рассмотрена оценка эффективности использования разработанного алгоритма Fuzzy Rete.
В заключении приводятся выводы по работе.
ГЛАВА 1. ЭКСПЕРТНЫЕ СИСТЕМЫ. ПРЕДСТАВЛЕНИЕ И ВЫВОД
ЗНАНИЙ.
1.1. Экспертные системы
Искусственный интеллект, как научная дисциплина, состоит из нескольких крупных течений. Одним из направлений в области ИИ является разработка экспертных систем.
Экспертные системы - это направление исследований в области искусственного интеллекта по созданию вычислительных систем, умеющих принимать решения, схожие с решениями экспертов в заданной предметной области. Экспертное знание - это сочетание теоретического понимания проблемы и практических навыков ее решения, эффективность которых доказана в результате практической деятельности экспертов в данной области. Фундаментом экспертной системы любого типа является база знаний, которая составляется на основе экспертных знаний специалистов. Удачная формализация знаний эксперта - специалиста высокого уровня позволяет наделить экспертную систему уникальными и ценными знаниями [1-7].
На сегодняшний день создано уже большое количество экспертных систем. С их помощью решается широкий круг задач в различных предметных областях. Как правило, эти области хорошо изучены и располагают более, менее четкими стратегиями принятия решений [8-10].
Пользователь передает в экспертную систему факты или другую информацию и получает в качестве результата экспертный совет или экспертные знания. По своей структуре экспертная система подразделяется на два основных компонента - базу знаний и машину логического вывода. База знаний содержит знания, на основании которых машина логического вывода формирует заключения. Эти заключения представляют собой ответы экспертной системы на запросы пользователя, желающего получить экспертные знания.
1.2. Классификация экспертных систем
Наиболее часто экспертные системы различают по назначению, предметной области, методам представления знаний, динамичности и сложности (рис. 1.1) [6].
Рис. 1.1. Классификация экспертных систем По назначению классификацию экспертных систем можно провести следующим образом:
• диагностика состояния систем, в том числе мониторинг (непрерывное отслеживание текущего состояния);
• прогнозирование развития систем на основе моделирования прошлого и настоящего;
• планирование и разработка мероприятий в организационном и технологическом управлении;
• проектирование или выработка четких предписаний по построению
объектов, удовлетворяющих поставленным требованиям;
• автоматическое управление (регулирование);
• обучение пользователей и др.
Наибольшее количество экспертных систем используется в следующих предметных областях: в военном деле, геологии, инженерном деле, информатике, космической технике, математике, медицине, метеорологии, промышленности, сельском хозяйстве, управлении процессами, физике, филологии, химии, электронике, юриспруденции.
Классификация экспертных систем по методам представления знаний делит их на традиционные и гибридные. Традиционные экспертные системы используют, в основном, эмпирические модели представления знаний и модели на основе исчисления предикатов первого порядка. Гибридные экспертные системы дополнительно используют оптимизационные алгоритмы и концепции баз данных [8].
По степени сложности экспертные системы делят на поверхностные и глубинные. Поверхностные экспертные системы представляют знания в виде правил «ЕСЛИ-ТО». Глубинные экспертные системы обладают способностью при обрыве цепочки правил определять (на основе метазнаний) какие действия следует предпринять для продолжения решения задачи.
Классификация экспертных систем по динамичности делит экспертные системы на статические и динамические [2]. Предметная область называется статической, если описывающие её исходные данные не изменяются во времени. При этом производные данные (выводимые из исходных) могут и появляться заново, и изменяться (не изменяя, однако, исходных данных).
Если исходные данные, описывающие предметную область, изменяются за время решения задачи, то предметную область называют динамической. В архитектуру динамической экспертной системы, по сравнению со статической, вводятся два компонента:
• подсистема моделирования внешнего мира;
• подсистема связи с внешним окружением.
Последняя осуществляет связи с внешним миром через систему датчиков и контроллеров. Кроме того, традиционные компоненты статической экспертной системы (база знаний и механизм логического вывода) претерпевают существенные изменения, чтобы отразить временную логику происходящих в реальном мире событий [9].
1.3. Структура экспертной системы
На рисунке ниже представлена каноническая структура экспертной системы динамического типа.
Рис. 1.2. Структура экспертной системы Динамическая экспертная система включает в себя:
блок, реализующий механизм логического вывода, называемый также интерпретатором, решателем;
рабочую память (РП), называемую также рабочей базой данных (БД);
*
• базу знаний (БЗ);
• подсистему приобретения и пополнения знаний;
• подсистему объяснения;
• подсистему диалога;
• подсистему взаимодействия с внешним миром.
Механизм логического вывода (МЛВ) предназначен для получения новых фактов на основе сопоставления исходных данных из рабочей памяти и знаний из базы знаний [6]. Механизм логического вывода во всей структуре экспертной системы занимает наиболее важное место. Он реализует алгоритмы прямого и/или обратного вывода и формально может быть представлен четверкой:
(V, 8, К, ^^ (1.1)
• V - процедура выбора из базы знаний и рабочей памяти правил и фактов;
• Б - процедура сопоставления правил и фактов, в результате которой факты вводятся в правила и определяется набор выполнимых правил;
• К - процедура разрешения конфликтов, определяющая порядок использования правил, если в заключении правила указаны одинаковые имена фактов с разными значениями;
• W - процедура, осуществляющая выполнение действий, соответствующих полученному значению факта (заключению правила).
Рабочая память предназначена для хранения исходных и промежуточных фактов решаемой в текущий момент задачи. Как правило, размещается в оперативной памяти ЭВМ и отражает текущее состояние предметной области в виде фактов с коэффициентами уверенности (КУ) в истинности этих фактов.
Следующий элемент в структуре экспертной системы не менее важен, чем механизм логического вывода. Это - база знаний. База знаний предназначена для хранения долгосрочных фактов, описывающих рассматриваемую область, правил, описывающих отношения между этими фактами и других типов декларативных знаний о предметной области. Кроме правил и фактов, образующих декларативную часть базы знаний, в нее может входить процедурная часть -
множество функций и процедур, реализующих оптимизационные, расчетные и другие требуемые алгоритмы [4].
Подсистема приобретения и пополнения знаний автоматизирует процесс наполнения экспертной системы знаниями, осуществляемый пользователем-экспертом, и адаптации базы знаний системы к условиям ее функционирования. Адаптация экспертной системы к изменениям в предметной области реализуется путем замены правил или фактов в базе знаний.
Подсистема объяснения объясняет, как система получила решение задачи (или почему она не получила решения) и какие знания она при этом использовала, что облегчает эксперту тестирование системы и повышает доверие пользователя к полученному результату. Возможность объяснять свои действия является одним из самых важных свойств экспертной системы, так как:
• повышается доверие пользователей к полученным результатам;
• облегчается отладка системы;
• создаются условия для пользователей по вскрытию новых закономерностей предметной области;
• объяснение полученных выводов может служить средством поиска точки в парето-оптимальном множестве решений.
Структура экспертной системы была бы неполной без подсистемы диалога. Подсистема диалога ориентирована на организацию дружественного интерфейса со всеми категориями пользователей как в ходе решения задач, так и в ходе приобретения знаний и объяснения результатов работы.
1.4. Разработка экспертных систем
При разработке экспертных систем часто используется концепция быстрого прототипа. Суть её в следующем: поначалу создается не экспертная система, а её прототип, который обязан решать узкий круг задач и требовать на свою разработку незначительное время. Прототип должен продемонстрировать пригодность будущей экспертной системы для данной предметной области,
проверить правильность кодировки фактов, связей и стратегий рассуждения эксперта. Он также дает возможность инженеру по знаниям привлечь эксперта к активной роли в разработке экспертной системы. Размер прототипа - несколько десятков правил.
На сегодняшний день сложилась определенная технология разработки экспертных систем [6], включающая 6 этапов.
Этап 1. Идентификация
Определяются задачи, которые подлежат решению. Планируется ход разработки прототипа экспертной системы, определяются: нужные ресурсы (время, люди, ЭВМ и т.д.), источники знаний (книги, дополнительные специалисты, методики), имеющиеся аналогичные экспертные системы, цели (распространение опыта, автоматизация рутинных действий и др.), классы решаемых задач и т.д. Этап идентификации - это знакомство и обучение коллектива разработчиков.
На этом же этапе разработки экспертных систем проходит извлечение знаний. Инженер по знаниям помогает эксперту выявить и структурировать знания, необходимые для работы экспертной системы, с использованием различных способов: анализ текстов, диалоги, экспертные игры, лекции, дискуссии, интервью, наблюдение и другие. Извлечение знаний - это получение инженером по знаниям более полного представления о предметной области и методах принятия решения в ней.
Этап 2. Концептуализация
Выявляется структура полученных знаний о предметной области. Определяются: терминология, перечень главных понятий и их атрибутов, структура входной и выходной информации, стратегия принятия решений и т.д. Концептуализация - это разработка неформального описания знаний о предметной области в виде графа, таблицы, диаграммы либо текста, которое отражает главные концепции и взаимосвязи между понятиями предметной области.
Этап 3. Формализация
На этапе формализации все ключевые понятия и отношения, выявленные на этапе концептуализации, выражаются на некотором формальном языке, предложенном (выбранном) инженером по знаниям. Здесь он определяет, подходят ли имеющиеся инструментальные средства для решения рассматриваемой проблемы или необходим выбор другого инструментария, или требуются оригинальные разработки.
Этап 4. Реализация
Создается прототип экспертной системы, включающий базу знаний и другие подсистемы. На данном этапе применяются следующие инструментальные средства[7]: программирование на обычных языках (Паскаль, Си и др.), программирование на специализированных языках, применяемых в задачах искусственного интеллекта (LISP, FRL, SmallTalk и др.) и др. Четвертый этап разработки экспертных систем в какой-то степени является ключевым, так как здесь происходит создание программного комплекса, демонстрирующего жизнеспособность подхода в целом.
Этап 5. Тестирование
Прототип проверяется на удобство и адекватность интерфейсов ввода-вывода, эффективность стратегии управления, качество проверочных примеров, корректность базы знаний. Тестирование - это выявление ошибок в выбранном подходе, выявление ошибок в реализации прототипа, а также выработка рекомендаций по доводке системы до промышленного варианта.
Этап 6. Опытная эксплуатация
Проверяется пригодность экспертной системы для конечных пользователей. По результатам этого этапа может потребоваться существенная модификация экспертной системы.
Процесс разработки экспертной системы не сводится к строгой последовательности перечисленных выше этапов. В ходе работ приходится
неоднократно возвращаться на более ранние этапы и пересматривать принятые там решения.
1.5. Преимущества экспертных систем
Экспертные системы обладают многими преимуществами, обуславливающими эффективность их использования.
• Повышенная доступность. Для обеспечения доступа к экспертным знаниям могут применяться любые подходящие компьютерные аппаратные средства. В определенном смысле вполне оправдано утверждение, что экспертная система -это средство массового производства экспертных знаний.
• Уменьшенные издержки. Стоимость предоставления экспертных знаний в расчете на отдельного пользователя существенно снижается.
• Уменьшенная опасность. Экспертные системы могут использоваться в таких вариантах среды, которые могут оказаться опасными для человека.
• Постоянство. Экспертные знания никуда не исчезают. В отличие от экспертов-людей, которые могут уйти на пенсию, уволиться с работы или умереть, знания экспертной системы сохраняются в течение неопределенно долгого времени.
• Возможность получения экспертных знаний из многих источников. С помощью экспертных систем могут быть собраны знания многих экспертов и привлечены к работе над задачей, выполняемой одновременно и непрерывно, в любое время дня и ночи. Уровень экспертных знаний, скомбинированных путем объединения знаний нескольких экспертов, может превышать уровень знаний отдельно взятого эксперта-человека.
• Повышенная надежность. Применение экспертных систем позволяет повысить степень доверия к тому, что принято правильное решение, путем предоставления еще одного обоснованного мнения эксперту-человеку или посреднику при разрешении несогласованных мнений между несколькими экспертами-людьми. (Разумеется, такой метод разрешения несогласованных мнений не может использоваться, если экспертная система запрограммирована одним из
экспертов, участвующих в столкновении мнений.) Решение экспертной системы должно всегда совпадать с решением эксперта; несовпадение может быть вызвано только ошибкой, допущенной экспертом, что может произойти, только если эксперт-человек устал или находится в состоянии стресса.
• Объяснение. Экспертная система способна подробно объяснить свои рассуждения, которые привели к определенному заключению. А человек может оказаться слишком усталым, не склонным к объяснениям или неспособным делать это постоянно. Возможность получить объяснение способствует повышению доверия к тому, что было принято правильное решение.
• Быстрый отклик. Для некоторых приложений может потребоваться быстрый отклик или отклик в реальном времени. В зависимости от используемого аппаратного и программного обеспечения экспертная система может реагировать быстрее и быть более готовой к работе, чем эксперт-человек. В некоторых экстремальных ситуациях может потребоваться более быстрая реакция, чем у человека; в таком случае приемлемым вариантом становится применение экспертной системы, действующей в реальном времени [10].
• Неизменно правильный и полный ответ при любых обстоятельствах. Такое свойство может оказаться очень важным в реальном времени и в экстремальных ситуациях, когда эксперт-человек может оказаться неспособным действовать с максимальной эффективностью из-за воздействия стресса или усталости.
Похожие диссертационные работы по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК
Научно-практические основы проектирования диагностической экспертной системы1999 год, кандидат технических наук Пугачев, Евгений Константинович
Дистанционная диагностическая система на основе гибридных моделей знаний2015 год, кандидат наук Ле Нгуен Виен
Методы, модели и программные средства для построения интеллектуальных систем на продукционной модели знаний2014 год, кандидат наук Бессмертный, Игорь Александрович
Методы, алгоритмы и программный комплекс преднастройки и оптимизации параметров нейронечёткой модели формирования баз знаний экспертных систем2010 год, кандидат технических наук Корнилов, Георгий Сергеевич
Исследование и разработка моделей, методов и программных средств темпорального вывода в динамических интегрированных экспертных системах2013 год, кандидат наук Мозгачев, Алексей Васильевич
Список литературы диссертационного исследования кандидат наук Зо Мин Тайк, 2018 год
Литература
1. Башмаков А.И., Башмаков И.А. Интеллектуальные информационные технологии: Учеб. Пособие // -М.: Изд-во МГТУ им. Н.Э. Баумана, 2005.
2. Э.В.Попов и др. «Статические и динамические ЭС», Финансы и статистика, 1996. - 211 с.
3. Искусственный интеллект. В 3-х кн. Кн. 2. Модели и методы: справочник. -М.: Радио и связь, 1990. - 304 с.
4. Гаврилова Т.А., Хорошевский В.Ф Базы знаний интеллектуальных систем. - Издательский дом "Питер", 2001. - 384 с.
5. Рассел С., Норвиг П., Искусственный интеллект: современный подход. Издательский дом "Вильямс":, 2006. - 1407 с.
6. Джексон П. Введение в экспертные системы. 3-е издание. Пер. с англ. — М.: Изд. дом «Вильямс», 2001. - 624 с.
7. Джонс М. Т. Программирование искусственного интеллекта в приложениях. — М.: ДМК Пресс, 2004. - 312 с.
8. Дюк В. А., Самойленко А. Data Mining: учебный курс. — СПб: Питер, 2001. - 368 с.
9. Пупков К.А., Коньков В.Г. Интеллектуальные системы. - М.: МГТУ им. Баумана, 2003. - 348 с.
10. Вагин В.Н.,. Еремеев А.П. Некоторые базовые принципы построения интеллектуальных систем поддержки принятия решений реального времени // Изв. РАН. ТиСУ, 2001, № 6,с. 114-123.
11. Лорьер Ж. Л. Системы искусственного интеллекта. Пер. с франц. — М.: Мир, 1991. - 568 с.
12. Люгер Д. Ф. Искусственный интеллект. Стратегии и методы решения сложных проблем. 4-е издание. Пер. с англ. — М.: Изд. дом «Вильямс», 2003. - 864 с.
13. A Course in Fuzzy Systems and Control. Li-Xin Wang. Prentice-Hall International, Inc.1997. - P. 448 . ISBN-13: 9780135408827.
14. Zadeh L.A. Is there a need for fuzzy logic? // Information Sciences, Elsevier-2008. - № 178. - P. 2751-2779.
15. Заде Л. Понятие лингвистической переменной и его применение к принятию приближенных решений. М.: Мир, 1976. 166c.
16. Заде Л. От обработки чисел к обработке слов - от манипулирования измерениями к манипулированию восприятием. Международный журнал прикладной математики и компьютерной науки, с. 307-324, т. 12, №3, 2002.
17. Аверкин А.Н. Нечеткое отношение моделирования и его использование для классификации и аппроксимации в нечетких лингвистических пространствах. -Изв. АН СССР: Техническая кибернетика, 1982, N 2, с. 21.
18. Аверкин А.Н., Батыршин И.З., Блишун А.Ф., Силов В.Б., Тарасов В.Б.. Под ред. Д.А. Поспелова. Нечеткие множества в моделях управления и искусственного интеллекта - М.: Наука. Гл. ред. физ.-мат. лит., 1986.-312 с.
19. Блюмин С.Л., Шуйкова И.А., Сараев П.В., Черпаков И.В. Нечёткая логика: алгебраические основы и приложения: Монография. - Липецк: ЛЭГИ, 2002. - 111 с.
20. Форги Ч., Rete: быстрый алгоритм для многошаблонных/многообъектных задач сопоставления с образцом, Искусственный интеллект, 19, с. 17-37, 1982.
21. Пантелеев, М. Г. Проектирование процессоров обработки продукционных баз знаний на основе RETE-сети / М. Г. Пантелеев, Г. Г. Колосов // Искусственный интеллект. 2003. - №3. - С. 465-473.
22. [Doo95] R.B. Doorenbos. Production matching for large learning systems. PhD thesis, Citeseer, 1995.
23. [Mir87] D.P. Miranker. TREAT: A better match algorithm for AI production systems. Proceedings of AAAI 87, 1987.
24. [Bat94] D. Batory. The LEAPS algorithms. Department of Computer Sciences, University of Texas at Austin, Technical Report, pages 94-28, 1994.
25. [Bro86] Lee Brownston. Programming Expert Systems in OPS5. Addison-Wesley, student edition, 1986.
26. [Bat94] D. Batory. The LEAPS algorithms. Department of Computer Sciences, University of Texas at Austin, Technical Report, pages 94-28, 1994.
27. [For79] C.L. Forgy. On the e_cient implementation of production systems[Ph. D. Thesis]. 1979.
28. [For82] C.L. Forgy. Rete: A fast algorithm for the many pattern/many object pattern match problem. Name: Artif. Intell, 1982.
29. [Mir90] D.P. Miranker. TREAT: A better match algorithm for AI production systems. PhD thesis, 1990.
30. [BW09] A. Burns and A. Wllings. Real-Time Systems and Programming Languages. Pearson Education Limited, 2009.
31. [BB09] E.J. Bruno and G. Bollella. Real-Time Java Programming with Java RTS. Prentice Hall, 2009.
32. А. Н. Гущин, И. А. Радченко. Экспертные системы: учебное пособие; Балт. гос. техн. ун-т. — СПб., 2007 — с.
33. Полковникова Н.А., Курейчик В.М. Разработка модели экспертной системы на основе нечёткой логики // Известия ЮФУ. Техническиенауки. - 2014. - № 1 (150). - С. 83-92.
34. Прикладные нечеткие системы: Пер. с япон. К. Асаи, Д. Ватада, С. Иваи и др. / Под ред. Т. Тэрано, К. Асаи, М. Сугэно. - М.: Мир, 1993. - 386 с.
35. Вакин В. В., Корухова Л. С., Любимский Э. З., Малышко В. В. Ассоциативные методы планирования решений сложных задач. - М.: Препринт Института прикладной математики им. М. В. Келдыша РАН, № 81, 1997 г.
36. Нечеткие множества в моделях управления и искусственного интеллекта / Под ред. Д.А. Поспелова. - М.: Наука. Гл. ред. физ.-мат. лит., 1986. - 321 с.
37. Круглов В.В., Дли М.И. Интеллектуальные информационные системы: компьютерная поддержка систем нечеткой логики и нечеткого вывода. -М.: Физматлит, 2002.
38. Малышев Н.Г., Берштейн Л.С., Боженюк А.В. Нечеткие модели для экспертных систем в САПР.-М.: Энергоатомиздат, 1991.-136 с.
39. Новак В., Перфильева И., Мочкорж И. Математические принципы нечеткой логики. / Пер. с англ.; Под ред. А.Н. Аверкина. - М.: ФИЗМАТЛИТ, 2006.
40. Заде Л.А. Роль мягких вычислений и нечеткой логики в понимании, конструировании и развитии информационных/интеллектуальных систем. / Пер. с англ. // Новости искусственного интеллекта. - 2001. - № 2-3. - С. 711.
41. Perfilieva I. Fuzzy transforms: Theory and applications, Fuzzy Sets and Systems, Vol. 157, 2006.
42. Cordon O., Herrera F., Hoffmann F., Magdalena L. "Genetic fuzzy systems. Evolutionary tuning and learning of fuzzy knowledge bases", 2001.
43. Заде Л.А. Основы нового подхода к анализу сложных систем и процессов принятия решений.- В кн.: Математика сегодня. - М.:Знание, 1974, с. 5-49.
44. Штовба С.Д. "Проектирование нечетких систем средствами MATLAB." М.: Горячая линия - Телеком, 2007. - 288 с.
45. Батыршин И.З., Недосекин А.О., Стецко А.А., Тарасов В.Б., Язенин А.В., Ярушкина Н.Г. "Нечеткие гибридные системы. Теория и практика." М.: ФИЗМАТЛИТ, 2007. - 208 с.
46. Батыршин И.З. "Основные операции нечеткой логики и их обобщения." Казань: Отечество, 2001. - 100 с.
47. Кофман А. Введение в теорию нечетких множеств: Пер. с франц. - М.: Радио и связь, 1982. - 432 с.
48. Борисов В.В., Круглов В.В., Федулов А.С. "Нечеткие модели и сети." М.: Горячая линия - Телеком, 2007. - 284 с.
49. Блюмин С.Л., Шуйкова И.А., Сараев П.В. "Нечеткая логика: алгебраические основы и приложения." - Липецк: ЛЭГИ, 2002. - 111 с.
50. Вятченин Д.А. "Нечеткие методы автоматической классификации." Минск: Технопринт. - 2004. - 219 с.
51. Жуковин В.Е. "Нечеткие многокритериальные модели принятия решений." - Тбилиси: Мецниереба, 1988. - 71 с.
52. Ротштейн А.П., Штовба С.Д. Влияние методов дефаззификации на скорость настройки нечеткой модели // Кибернетика и системный анализ.-2002.- №1.
53. Чернов В.Г. "Модели поддержки принятия решений в инвестиционной деятельности на основе аппарата нечетких множеств." М.: Горячая линия -Телеком, 2007. - 312 с.
54. Леоненков А. Нечеткое моделирование в среде MATLAB и fuzzyTECH. СПб: БХВ-Петербург. 2003. - 736с.
55. Усков А.А., Кузьмин А.В. Интеллектуальные технологии управления. Искусственные нейронные сети и нечеткая логика. М.: Горячая линия -Телеком. 2004. 144с.
56. Рутковская Д., Пилиньский М., Рутковский Л. Нейронные сети, генетические алгоритмы и нечеткие системы. М.: Горячая линия - Телеком. 2004. 452с.
57. Ярушкина Н.Г. Основы теории нечетких и гибридных систем. Учебное пособие. Финансы и статистика, 2004.- 320c.
58. Нечеткие модели дискретной математики. Учебное пособие / Тихомирова А. Н. ; Клейменова М. Г. - Москва : МИФИ, 2011 . - 108 с.
59. Демидова Л.А., Кираковский В.В., Пылькин А.Н. Алгоритмы и системы нечеткого вывода при решении задач диагностики городских инженерных коммуникаций в среде MATLAB. - М.: Радио и связь, Горячая линия -Телеком, 2005. - 365 с.
60. Алтунин А.Е., Семухин М.В. Модели и алгоритмы принятия решений в нечетких условиях. Тюмень: Изд-во Тюменского государственного университета, 2000. - 352 с.
61. Берштейн Л.С., Боженюк А.В. Нечеткие модели принятия решений: дедукция, индукция, аналогия. Таганрог: Изд-во ТРТУ, 2001. - 110 с.
62. Глушань В.М., Карелин В.П., Кузьменко О.Л. Нечёткие модели и методы многокритериального выбора в интеллектуальных системах поддержки принятия решений // Известия ЮФУ. Техническиенауки. - 2009. - № 4 (93). - С. 106-113.
63. Круглов В.В., Дли М.И., Голунов Р.Ю. Нечеткая логика и искусственные нейронные сети. Физматлит, 2001. - 224 с.
64. Недосекин А.О. Нечетко-множественный анализ риска фондовых инвестиций. СПб: Изд-во Сезам, 2002. - 181 с.
65. Ротштейн А.П. Интеллектуальные технологии идентификации: нечеткая логика, генетические алгоритмы, нейронные сети. — Винница: УНИВЕРСУМ—Винница, 1999. — 320 с.
66. Нечеткие множества и теория возможностей: Последние достижения. Под редакцией Р.Р. Ягера. - М.: Радио и связь, 1986.
67. Згуровский М.З., Зайченко Ю.П. Модели и методы принятия решений в нечетких условиях. — К.: Наук. думка, 2011. — 275 с.
68. Зайченко Ю.П. Нечеткие модели и методы в интеллектуальных системах.
К.: Издат. дом «Слово», 2008. — 344 с.
69. Усков А.А., Круглов В.В. Интеллектуальные системы управления на основе методов нечеткой логики. Смоленск: Смоленская городская типография, 2003. - 177 с. - ISBN 5-94223-038-2.
70. Курейчик В.М. Особенности построения систем поддержки принятия решений // Известия ЮФУ. Технические науки. - 2012. - № 7 (132). - С. 9298.
71. Минаев Ю.Н., Филимонова О.Ю., БенамеурЛиес. Методы и алгоритмы решения задач идентификации и прогнозирования в условиях неопределенности в нейросетевом логическом базисе. М.: Горячая линия -Телеком, 2003. - 205 с.
72. Лю Б. "Теория и практика неопределенного программирования." Пер. с англ. - М.: БИНОМ. Лаборатория знаний, 2005. - 416 с.
73. Зо Мин Тайк. Разработка и реализация экспертной системы с использованием продукционной модели знаний. Радиоэлектроника, электротехника и энергетика: Девятнадцатая междунар. Науч.-техн. Конф. студентов и аспирантов : Тез. Докл. В4 т. Т.2. М .: Издательский дом МЭИ, 2013. С 35.
74. И.С. Михайлов, Зо Мин Тайк. Создание экспертной системы психологического тестирования с использованием продукционной модели знаний. XXI Международной научно-технической конференции «Информационные средства и технологии».19-21 ноября 2013 г., Москва. В 3 Томах. Т.2.М .: Издательский дом МЭИ, 2014. С 20-24.
75. Зо Мин Тайк. Применение шаблона MVC при разработке информационных систем. Радиоэлектроника, электротехника и энергетика: Двадцатая междунар. Науч.-техн. Конф. студентов и аспирантов ( 27-28 февраля 2014 г., Москва ): Тез. Докл. В4 т. Т.2. М .: Издательский дом МЭИ, 2014. С 29.
76. Михайлов И.С., Зо Мин Тайк. Создание и развертывание веб-узлов с помощью ASP.NET MVC4. XXII Международной научно-технической конференции «Информационные средства и технологии».18-20 ноября 2014 г., Москва. В 3 Томах. Т.1.М .: Издательский дом МЭИ, 2014. С 99102.
77. Михайлов И.С., Зо Мин Тайк. Разработка модификации алгоритма Rete для нечётких экспертных систем. Четырнадцатая национальная конференция по искусственному интеллекту с международным участием КИИ- 2014 (24-
27 сентября 2014 г., г. Казань, Россия): Труды конференции. Т. 3.- Казань: Изд- во РИЦ <<Школа>>, 2014. С 40-48.
78. Зо Мин Тайк. Разработка модификации алгоритма Rete для нечётких экспертных систем. Радиоэлектроника, электротехника и энергетика: Двадцать первая междунар. Науч.-техн. Конф. студентов и аспирантов : Тез. Докл. В4 т. Т.2. М .: Издательский дом МЭИ, 2015. С 27.
79. Михайлов И.С., Зо Мин Тайк. Реализация модифицированного алгоритма Rete для нечёткой продукционной модели знаний. Международная конференция "Инновационные подходы к решению технико-экономических проблем": сборник трудов.- М.: МИЭТ, 2014. С 158-162.
80. Михайлов И.С., Зо Мин Тайк. Разработка формальной модели процесса поиска решения по модифицированному алгоритму Rete для нечетких экспертных систем. Международный журнал "Программные продукты и системы".- 2015.- № 2.- С. 44-47.
81. Михайлов И.С., Зо Мин Тайк. Реализация формальной модели процесса поиска решения по модифицированному алгоритму Rete для нечётких экспертных систем // Программные продукты и системы.-2015.- № 4.- С. 142-147.
82. Михайлов И.С., Зо Мин Тайк. Разработка и реализация модификации алгоритма Rete для нечётких экспертных систем // Вестник МЭИ.-2015.- № 6.- С. 114-119.
Приложение 1. Свидетельство о государственной регистрации программы для ЭВМ
Приложение 2. Акты о внедрении результатов работы
••УТВЬРЖД^Й Первый про рек юр Ф!'Б НИУ «МЭИ» по учебно
к.т.н.. профессор
Сш'шм. |
>Сгёд£н<Яцг лмй
АКТ
ой использовании и учебно-научном процессе НИУ «МЭИ» релультатов диссертационной работы ЗО МИН ТЛЙК «Меголы и про| раммные средства ускорения поиска решения в балах знаний нечётких экспертных систем», представленной на соискание ученой степени кандидата (ехннческих наук по специальности 05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных селей
Настоящим актом подтверждается использование результатов диссертационной работы ЗО МИН ТАЙКА в учебно-научном процессе кафедры прикладной математики по направлению «Прикладная математика и информатика» (профиль «Математическое н программное обеспечение вычислительных машин, комплексов и компьютерных сетей») при проведении учебных занятий по дисциплине «Методы и средства анализа данных», а также в НИР. выполняемых на кафедре прикладной математики по разработке методов, алгоритмов н инструментальных средств моделирования рассуждений в интеллектуальных системах поддержки принятия решений.
Заведующий кафедрой ПМ ' /
Д.Т.Н., проф.
Зам. заведу ющего кафедрой ПМ по учебной к.т.н., доц. ч
Зам. заведу ющего кафедрой ММ научной работе к.т.н., доц.
Варшавский П.Р.
с
«УТВЕРЖДАЮ» Генеральный директор
шальная компания»
В.П. Дробков
«08 » ОКъ!ерЯ. 2017 г.
АКТ
о внедрении результатов кандидатской диссертации Эо Мин Тайка
Настоящий акт составлен о том, что в ООО «Индустриальная компания» внедрены и используются результаты кандидатской диссертации 30 МИН ТАИКА «Методы и программные средства ускорения поиска решения в базах знаний нечётких экспертных систем».
Результаты работы Зо Мин Тайка применены при создании нечёткой экспертной системы расходомера. Рассматриваемые в диссертационной работе подходы к ускорению поиска решения в нечётких продукционных базах знаний обеспечивают реализацию схемы управления работой нефтяной скважины на основе рекомендаций нечёткой экспертной системы расходомера, что позволяет оптимизировать процесс нефтедобычи.
Ведущий инженер, к.т.н.
В.В. Контелёв
Приложение 3. Исходный текст основных модулей программы
"Form1.cs" using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace DSSFuzzyRete
{
public partial class Forml : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) {
Form2 fm2 = new Form2(); fm2.Show();
}
private void button2_Click(object sender, EventArgs e) {
Form5 fm5 = new Form5(); fm5.Show();
private void button3_Click(object sender, EventArgs e) {
Form6 fm6 = new Form6(); fm6.Show();
}
private void button4_Click(object sender, EventArgs e) {
Form7 fm7 = new Form7(); fm7.Show();
}
}
}
"Form2.cs" using System;
using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; using System.Data.SqlServerCe;
namespace DSSFuzzyRete
{
public partial class Form2 : Form
SqlConnection sc = new SqlConnection(@"Data Source-' + System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName() .CodeBase) + "\\FuzzyRete.sdf;Persist Security Info-False;"); SqlDataAdapter da = new SqlDataAdapter(); //SqlCommand command = new SqlCommand(); DataSet ds = new DataSet(); BindingSource bindsource = new BindingSource();
private DataRow LastData = null;
private void UpdateRowDatabase()
{
if (LastData != null)
{
if (LastData.RowState == DataRowState.Modified)
{
investigationRulesTableAdapter.Update(LastData);
termsRulesTableAdapter.Update(LastData);
elementTableAdapter.Update(LastData);
}
}
}
private void investigationRulesBindingSource_PositionChanged(object sender, EventArgs e) {
BindingSource thisBindingSource = (BindingSource)sender; DataRow thisDataRow = ((DataRowView)thisBindingSource.Current).Row;
if (thisDataRow == LastData)
{
throw new ApplicationException("It seems the PositionChanged event was fired twice for
the same row"); }
UpdateRowDatabase();
LastData - thisDataRow;
}
private void termsRulesBindingSource_PositionChanged(object sender, EventArgs e) {
BindingSource thisBindingSource = (BindingSource)sender; DataRow thisDataRow = ((DataRowView)thisBindingSource.Current).Row;
if (thisDataRow == LastData)
{
throw new ApplicationException("It seems the PositionChanged event was fired twice for
the same row"); }
UpdateRowDatabase();
LastData - thisDataRow;
}
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e) {
//This line of code loads data into the 'fuzzyReteDataSetl.Element' table. You can move, or remove it, as needed.
this.elementTableAdapter.Fill(this.fuzzyReteDataSetl.Element);
this.investigationRulesTableAdapter.Fill(this.fuzzyReteDataSetl.InvestigationRules); this.termsRulesTableAdapter.Fill(this.fuzzyReteDataSetl.TermsRules);
private void button1_Click(object sender, EventArgs e) {
//this.fuzzyReteDataSetTableAdapter.Fill(this.fuzzyReteDataSet.fuzzyRete);
da.SelectCommand = new SqlCommand("SELECT * fROM investigationRules", sc);
ds.Clear();
da.Fill(ds);
investigationRulesDataGridView.DataSource = ds.Tables[0]; bindsource.DataSource = ds.Tables[0];
}
public void InsertRule(int ШПравила, string ГОВыражения, string IDЛП, string Условие,string
Значение )
{
try
{
da.InsertCommand = new SqlCommand("Insert Into TermsRules values(@IDПравила,@IDВыражения,@IDЛП,@Условие,@Значение)", sc);
da.InsertCommand.Parameters.Add("@IDПравила", SqlDbType.Int). Value = ШПравила; da.InsertCommand.Parameters.Add("@IDВыражения", SqlDbType.NVarChar).Value = IDВыражения;
da.InsertCommand.Parameters.Add("@IDЛП", SqlDbType.NVarChar).Value = IDЛП; da.InsertCommand.Parameters.Add("@Условие", SqlDbType.NVarChar).Value =
Условие;
da.InsertCommand.Parameters.Add("@Значение", SqlDbType.NVarChar).Value = Значение;
sc.Open();
da.InsertCommand.ExecuteNonQuery();
sc.Close(); }
catch
MessageBox.Show("error");
}
}
private void button3_Click(object sender, EventArgs e) {
for (int i = 0; i < InvestigationRulesDataGridView.Rows.Count; i++) {
da.InsertCommand = new SqlCommand("Insert Into InvestigationRules values(@IDnpaBH^a,@IDBHpa^eHHa,@IDnn,@ycnoBHe,@3HaHeHHe)", sc);
da.InsertCommand.Parameters.Add("@IDnpaBH^a", SqlDbType.Int).Value = investigationRulesDataGridView.Rows[i].Cells[0].Value.ToString();
da.InsertCommand.Parameters.Add("@IDBwpa^eHHa", SqlDbType.NVarChar).Value = investigationRulesDataGridView.Rows[i].Cells[1].Value.ToString();
da.InsertCommand.Parameters.Add("@ID^n", SqlDbType.NVarChar).Value = investigationRulesDataGridView.Rows[i].Cells[2].Value.ToString();
da.InsertCommand.Parameters.Add("@ycnoBHe", SqlDbType.NVarChar).Value = investigationRulesDataGridView.Rows[i].Cells[3].Value.ToString();
daInsertCommand.Parameters.Add("@3HaHeHHe", SqlDbType.NVarChar).Value = investigationRulesDataGridView.Rows[i].Cells[4].Value.ToString();
sc.Open();
da.InsertCommand.ExecuteNonQuery(); sc.Close();
}
sc.Open();
for (int i = 0; i < investigationRulesDataGridView.Rows.Count; i++)
SqlDataAdapter da = new SqlDataAdapter("Insert Into investigationRules values('" + investigationRulesDataGridView.Rows[i].Cells[0].Value + "','" + investigationRulesDataGridView.Rows[i].Cells[1].Value + "','" + investigationRulesDataGridView.Rows[i].Cells[2].Value + "','" + investigationRulesDataGridView.Rows[i].Cells[3].Value + "','" + investigationRulesDataGridView.Rows[i].Cells[4].Value + "')", sc); da.Fill(ds, "investigationRules");
da.InsertCommand.ExecuteNonQuery();
}
sc.Close();
string Selection;
if (investigationRulesDataGridView.SelectedRows.Count != 0)
{
DataGridViewRow row = this.investigationRulesDataGridView.SelectedRows[0]; Selection = row.Cells[0].Value.ToString();
}
string query = "INSERT INTO investigationRules VALUES (@IDnpaBH.na,@IDBbipa^:eHHfl,@IDnn,@yc.noBHe,@3HaHeHHe)"; command = new SqlCommand(query, sc); command.Parameters.AddWithValue("@IDnpaBH.a", Selection); command.Parameters.AddWithValue("@IDBwpa^eHHa", Selection); command.Parameters.AddWithValue("@IDnn", Selection); command.Parameters.AddWithValue("@ycoBHe", Selection); command.Parameters.AddWithValue("@3HaneHHe", Selection); command.ExecuteNonQuery(); command.Connection = sc; sc.Close();
for (int i = 0; i < investigationRulesDataGridView.Rows.Count; i++) {
String insertData = "INSERT INTO investigationRules(IDnpaBH.na, IDBbipa^eHHa, IDnn,yc^OBHe,3HaneHHe) VALUES
(@IDnpaBu.a,@IDBHpa»eHHa,@IDnn,@yc.OBHe,@3HaHeHHe)"; SqlCommand cmd = new SqlCommand(insertData, sc); //da.InsertCommand = new SqlCommand("Insert Into TermsRules values(@IDnpaBH.a,@IDBHpa^eHHa,@IDnn,@yc.OBHe,@3HaHeHHe)", sc);
cmd.Parameters.AddWithValue("@IDnpaBH.a", investigationRulesDataGridView.Rows[i].Cells[0].Value);
cmd.Parameters.AddWithValue("@IDBwpa^eHHa", investigationRulesDataGridView.Rows[i].Cells[1].Value);
cmd.Parameters.AddWithValue("@ID^n", investigationRulesDataGridView.Rows[i].Cells[2].Value);
cmd.Parameters.AddWithValue("@yc.OBue", investigationRulesDataGridView.Rows[i].Cells[3].Value);
cmd.Parameters.AddWithValue("@3HaneHHe", investigationRulesDataGridView.Rows[i].Cells[4].Value); sc.Open();
da.InsertCommand.ExecuteNonQuery(); sc.Close();
MessageBox.Show("Added successfully!");
}
foreach (DataGridViewRow row in investigationRulesDataGridView.Rows)
{
string constring = @"Data Source=|DataDirectory|\FuzzyRete.sdf";
using (SqlConnection con = new SqlConnection(constring))
{
using (SqlCommand cmd = new SqlCommand("INSERT INTO investigationRules
VALUES (@IDnpaBu.a,@IDBHpa»eHHa,@IDnn,@yc.OBHe,@3HaHeHHe)", con)) {
cmd.Parameters.AddWithValue("@IDnpaBH.a", row.Cells["IDnpaBH.a"].Value);
cmd.Parameters.AddWithValue("@IDBHpa«eHHa", row.Cellst'TDBbipa^eHHfl1"].Value);
cmd.Parameters.AddWithValue("@ID^n", row.Cells["ID^n"].Value); cmd.Parameters.AddWithValue("@yc.OBue", row.Cells["yc.noBHe"].Value); cmd.Parameters.AddWithValue("@3HaneHHe", row.Cells["3HaneHHe"].Value); con.Open();
cmd.ExecuteNonQuery(); con.Close();
}
}
}
MessageBox.Show("Records inserted."); this.Validate();
this.investigationRulesBindingSource.EndEdit(); this.tableAdapterManager.UpdateAll(this.fuzzyReteDataSetl);
}
private void button4_Click(object sender, EventArgs e) {
DialogResult result = MessageBox.Show("Are You Sure?\nThere is no undo once data is deleted.", "Confirmed Message", MessageBoxButtons.YesNo);
if (result == DialogResult.Yes)
{
da.DeleteCommand = new SqlCommand("DELETE FROM C.egcTBHenpaBH. WHERE IDnpaBH.a=@IDnpaBH.a", sc);
//da.DeleteCommand.Parameters.Add("@IDnpaBH.a", SqlDbType.Int).Value = fuzzyReteDataSet.Tables[0].Rows[fuzzyReteDataSetBindingSource.Position][0];
da.DeleteCommand.Parameters.Add("@IDnpaBH.a", SqlDbType.Int).Value = ds.Tables[0].Rows[bindsource.Position][0];
sc.Open();
da.DeleteCommand.ExecuteNonQuery(); sc.Close();
}
else
{
MessageBox.Show("Deletion Cancel", "No Delete Data");
}
int ind = investigationRulesDataGridView.SelectedCells[0].RowIndex;
investigationRulesDataGridView.Rows.RemoveAt(ind);
}
private void button5_Click(object sender, EventArgs e) {
sc.Open();
for (int i = 0; i < termsRulesDataGridView.Rows.Count; i++)
{
SqlDataAdapter da = new SqlDataAdapter("Insert Into TermsRules values('" + termsRulesDataGridView.Rows[i].Cells[0].Value + "','" + termsRulesDataGridView.Rows[i].Cells[1].Value + "','" + termsRulesDataGridView.Rows[i].Cells[2].Value + "','" + termsRulesDataGridView.Rows[i].Cells[3].Value + "','" + termsRulesDataGridView.Rows[i].Cells[4].Value + "')", sc); da.Fill(ds, "TermsRules"); sc.Close();
}
sc.Open();
for (int i = 0; i < termsRulesDataGridView.Rows.Count; i++)
da.InsertCommand = new SqlCommand("Insert Into TermsRules values(@IDnpaBH^a,@IDBHpa^eHHa,@IDnn,@ycnoBHe,@3HaHeHHe)", sc);
da.InsertCommand.Parameters.Add("@IDnpaBH^a", SqlDbType.Int).Value = termsRulesDataGridView.Rows[i].Cells["IDnpaBHna"].Value.ToString();
da.InsertCommand.Parameters.Add("@IDBwpa^eHHa", SqlDbType.NVarChar).Value = termsRulesDataGridView.Rows[i].Cells["IDBbipa:®:eHHfl"].Value.ToString();
da.InsertCommand.Parameters.Add("@ID^n", SqlDbType.NVarChar).Value = termsRulesDataGridView.Rows[i].Cells["ID^n"].Value.ToString();
da.InsertCommand.Parameters.Add("@ycnoBHe", SqlDbType.NVarChar).Value = termsRulesDataGridView.Rows[i].Cells["ycnoBHe"].Value.ToString();
da.InsertCommand.Parameters.Add("@3HaneHHe", SqlDbType.NVarChar).Value = termsRulesDataGridView.Rows[i].Cells["3HaneHHe"].Value.ToString();
da.InsertCommand.ExecuteNonQuery();
}
sc.Close(); this.Validate();
this.termsRulesBindingSource.EndEdit(); this.tableAdapterManager.UpdateAll(this.fuzzyReteDataSetl);
this.Validate();
this.elementBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.fuzzyReteDataSetl);
}
private void button6_Click(object sender, EventArgs e) {
sc.Open();
SqlCommand cmd = new SqlCommand("DELETE FROM Yc.noBHenpaBH.na");
cmd.Connection = sc;
cmd.ExecuteNonQuery();
sc.Close();
MessageBox.Show("Database Cleared");
DialogResult result = MessageBox.Show("Are You Sure?\nThere is no undo once data is deleted.", "Confirmed Message", MessageBoxButtons.YesNo);
if (result == DialogResult.Yes)
{
da.DeleteCommand = new SqlCommand("DELETE FROM YcnoBHanpaBH. WHERE IDnpaBH.a=@IDnpaBHna", sc);
//da.DeleteCommand.Parameters.Add("@IDnpaBH.a", SqlDbType.Int).Value = fuzzyReteDataSet.Tables[0].Rows[fuzzyReteDataSetBindingSource.Position][0];
da.DeleteCommand.Parameters.Add("@IDnpaBH.a", SqlDbType.Int).Value = ds.Tables[0].Rows[bindsource.Position][0];
sc.Open();
da.DeleteCommand.ExecuteNonQuery(); sc.Close();
}
else
{
MessageBox.Show("Deletion Cancel", "No Delete Data");
}
int ind = termsRulesDataGridView.SelectedCells[0].RowIndex; termsRulesDataGridView.Rows.RemoveAt(ind);
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
UpdateRowDatabase();
}
private void termsRulesBindingNavigatorSaveItem_Click(object sender, EventArgs e) {
this.Validate();
this.termsRulesBindingSource.EndEdit(); this.tableAdapterManager.UpdateAll(this.fuzzyReteDataSetl);
}
private void investigationRulesBindingNavigatorSaveItem_Click(object sender, EventArgs e) {
this.Validate();
this.investigationRulesBindingSource.EndEdit(); this.tableAdapterManager.UpdateAll(this.fuzzyReteDataSetl);
}
private void elementBindingNavigatorSaveItem_Click(object sender, EventArgs e) {
this.Validate();
this.elementBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.fuzzyReteDataSetl);
}
}
}
"Form3.cs"
using System;
using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient;
namespace DSSFuzzyRete
{
public partial class Form3 : Form
{
public Form3() {
InitializeComponent();
}
private void Form3_Load(object sender, EventArgs e) {
this.da.Fill(this.fuzzyReteDataSetLElement);
da.SelectCommand = new SqlCommand("SELECT * fROM Description", sc);
ds.Clear();
da.Fill(ds);
dataGridView1.DataSource = ds.Tables[0]; bindsource.DataSource = ds.Tables[0];
}
private void button1_Click(object sender, EventArgs e) {
foreach (DataGridViewRow row in dataGridView1.Rows)
{
//string constring = @"Data Source=|DataDirectory|\FuzzyRete.sdf'; string constring = @"Data Source=" + System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName() .CodeBase) + "\\FuzzyRete.sdf;Persist Security Info=False;";
using (SqlConnection con = new SqlConnection(constring))
{
using (SqlCommand cmd = new SqlCommand("INSERT INTO Description VALUES
(@IDnn,@IDHe,@Ha3BaHueHe)", con)) {
cmd.Parameters.AddWithValue("@IDnn", row.Cells["IDnn"].Value); cmd.Parameters.AddWithValue("@IDHe", row.Cells["IDHe"].Value); cmd.Parameters.AddWithValue("@Ha3BaHueHe", row.Cells["Ha3BaHHeHe"].Value);
con.Open();
cmd.ExecuteNonQuery(); con.Close();
}
}
}
MessageBox.Show("Records inserted.");
}
private void button2_Click(object sender, EventArgs e) {
int ind = dataGridView1.SelectedCells[0].RowIndex; dataGridView1.Rows.RemoveAt(ind);
}
private void button3_Click(object sender, EventArgs e) {
for (int i = 0; i < dataGridView1.Rows.Count; i++) {
da.InsertCommand = new SqlCommand("Insert Into Description values(@ID ЛП, @ГОНе,@Названиене)", sc);
da.InsertCommand.Parameters.Add("@IDЛП", SqlDbType.Int).Value = dataGridView 1.Rows[i].Cells[0].Value.ToString();
da.InsertCommand.Parameters.Add("@IDHe", SqlDbType.NVarChar).Value = dataGridView 1.Rows[i].Cells[1].Value.ToString();
da.InsertCommand.Parameters.Add("@Названиене", SqlDbType.NVarChar).Value = dataGridView 1.Rows[i].Cells[2].Value.ToString();
sc.Open();
da.InsertCommand.ExecuteNonQuery(); sc.Close();
}
}
private void button4_Click(object sender, EventArgs e) {
int ind = dataGridView1.SelectedCells[0].RowIndex; dataGridView1.Rows.RemoveAt(ind);
}
private void button5_Click(object sender, EventArgs e) {
EditLP();
}
private void button6_Click(object sender, EventArgs e) {
EditData();
}
}
"Form4.cs"
using System;
using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient;
Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.