Научно-практические основы проектирования диагностической экспертной системы тема диссертации и автореферата по ВАК РФ 05.13.06, кандидат технических наук Пугачев, Евгений Константинович

  • Пугачев, Евгений Константинович
  • кандидат технических науккандидат технических наук
  • 1999, Москва
  • Специальность ВАК РФ05.13.06
  • Количество страниц 202
Пугачев, Евгений Константинович. Научно-практические основы проектирования диагностической экспертной системы: дис. кандидат технических наук: 05.13.06 - Автоматизация и управление технологическими процессами и производствами (по отраслям). Москва. 1999. 202 с.

Оглавление диссертации кандидат технических наук Пугачев, Евгений Константинович

ОГЛАВЛЕНИЕ

Введение

Глава 1. Исследование процесса семантического информирования 16 1.1. Анализ и синтез основных аспектов семантического

информирования

1.1.1. Формы представления семантической информации

1.1.2. Виды семантической информации

1.1.3. Основные преобразования семантической информации в процессе информирования

1.1.4. Анализ методов сжатия семантической информации

1.2. Анализ модели семантического интерфейса

1.2.1. Дополнительные определения и понятия

1.2.2. Формализация условий семантического интерфейса

1.3. Синтез модели семантического интерфейса

Глава 2. Исследование моделей представления знаний

2.1. Анализ моделей представления знаний

2.1.1. Модель семантических объектов

2.1.2. Продукционная модель

2.1.3. Фреймовая модель

2.1.4. Модель семантических сетей

2.2. Разработка обобщенного алгоритма синтеза

моделей знаний

2.3. Методика синтеза моделей

Выводы по главе 2

Глава 3. Исследование механизма логического вывода

3.1. Конкретизация способа представления знаний

3.1.1. Представление знаний конструктивной части СЭВМ с помощью фреймов

3.1.2. Представление знаний функциональной части СЭВМ

3.2. Механизм логического вывода в продукционных системах

3.2.1. Формализация механизма логического вывода

3.2.2. Процесс разрешения конфликтов

3.3. Механизм логического вывода применительно

к фреймам

3.3.1. Способы означивания фрейма

3.3.2. Способы управления выводом во фреймовых системах

3.4. Механизм логического вывода в семантических сетях

3.4.1. Способ сопоставления

3.4.2. Перекрестный поиск

Выводы по главе 3

Глава 4. Экспериментальные исследования и практические

реализации

4.1. Разработка и реализация алгоритма ядра диагностической экспертной системы

4.1.1. Структура прикладной единицы базы

знаний

4.1.2. Алгоритм функционирования механизма логического вывода

4.2. Разработка и реализация модуля объяснений

модуля объяснений

4.2.2. Реализация функций разработанного модуля

объяснения

4.3. Разработка и реализация модуля накопления знаний

4.3.1. Обоснование целесообразности разработанного модуля накопления знаний

4.3.2. Основные функции разработанного

модуля накопления знаний

4.4. Обоснование выбора инструментального средства проектирования ЭС

4.4.1. Конкретизация требований к выбору инструментального средства

4.4.2. Реализация основных конструкций разработанной экспертной системы

Выводы по главе 4

Заключение по диссертационной работе

Библиографический список литературы

Приложения

Рекомендованный список диссертаций по специальности «Автоматизация и управление технологическими процессами и производствами (по отраслям)», 05.13.06 шифр ВАК

Введение диссертации (часть автореферата) на тему «Научно-практические основы проектирования диагностической экспертной системы»

Введение

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

Начало первого этапа развития работ в области искусственного интеллекта приходится на конец 60-х годов [1]. Новая отрасль индустрии -производство интеллектуальных систем сформировалась в 80-е годы. Можно выделить следующие основные черты интеллектуальных систем: наличие человека, который взаимодействует с ней; возможность накапливать и получать новые знания; способность осуществлять рассуждения, характерные для человека.

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

Не решен окончательно вопрос о том, какова должна быть формальная модель представления знаний в интеллектуальной системе. Например, созданные пустые ЭС, в которых изначально были заложены известные способы (фреймы, продукции или семантические сети)

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

В настоящее время находят применение новые методы и технологии при создании интеллектуальных систем. Можно выделить когнитивную графику или виртуальную реальность, гипертекстовые и мультимедиа технологии. Главное назначение когнитивной графики состоит в том, чтобы служить средством, способствующим процессу порождения нового знания, пока, в голове человека [2]. Гипертекстовая технология может быть использована как инструментальное средство для создания интеллектуальной системы [3]. Мультимедиа технология позволяет вывести процесс общения человека с интеллектуальной системой на качественно новый уровень. К новому направлению ИИ можно отнести и интеллектуальные средства извлечения знаний [4].

К новым методам, которые используются при решении трудно-формализуемых задач или при получении грубого результата для принятия решения в реальном времени, можно отнести генетические алгоритмы (ГА) классифицирующие системы (КС), генетическое программирование (ГП), эволюционное программирование и эволюционные стратегии[5].

Генетические алгоритмы получили наибольшее распространение. В теории ГА используется понятие схемы, которая представляет собой троичные цепочки с символами «1», «2» и «*», где «*» - маска, вместо которой может быть подставлена «1» или «2». Генетический алгоритм ищет оптимальное решение в пространстве возможных решений. Генетические алгоритмы исследовались в литературе с различных сторон. В частности, полезен подход, изложенный в работе [6]. Здесь схемы рассматриваются как предикаты, что позволяет автору более глубоко исследовать свойства ГА.

Существует много модификаций ГА. Наличие нескольких способов решения ставит задачу сравнения их эффективности. Чаще всего это делается прямым экспериментом на реальной или модельной задаче, в теоретических оценках ГА интерпретируются как марковский процесс [7].

На основе генетических алгоритмов созданы КС [8,9], которые можно использовать как обучаемые системы управления. Классифицирующая система состоит из трех вложенных друг в друга систем: классификатора, системы обучения и ГА. Классификатор вложен в обучающую систему, которая формирует оценку правил. Порождение новых правил осуществляет генетический алгоритм. Основу классификатора составляет список правил вида «Если ..., ТО ...», где каждое правило снабжается числовой оценкой.

Генетическое программирование - это способ создания компьютерных программ для задач, алгоритм решения которых неизвестен заранее. Примером могут служить программы, написанные на языке Лисп. В работе [10] дан пример использования ГП для синтеза сложного автомата, приведены достаточно подробные сведения по машинному эксперименту со структурой идентификацией динамических систем. В 1997 году была проведена первая конференция по генетическому программированию.

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

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

Многие исследовательские коллективы занимаются вопросами использования эволюционных вычислений и прежде всего генетические алгоритмы для нейронных сетей.

Одним из современных научных направлений искусственного интеллекта является нейрокомпьютинг. Задачей данного направления является разработка вычислительных систем шестого поколения -нейрокомпьютеров [11-13]. Нейрокомпьютеры состоят из большого числа параллельно работающих простых вычислительных элементов (нейронов). Элементы связаны между собой , образуя нейронную сеть. Они выполняют единообразные вычислительные действия и не требуют внешнего управления.

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

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

По мнению большинства экспертов массовое распространение технологий нейронных сетей начнется в конце 90-х годов. В настоящее время наиболее массовым направлением является моделирование нейронных сетей на обычных компьютерах.

Разработки в области нейрокомпьютинга ведутся по следующим направлениям : разработка нейроалгоритмов и программные реализации нейросетей (создание специализированного программного обеспечения для моделирования нейронных сетей; разработка специализированных процессорных плат для имитации нейросетей).

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

Достоинства использования искусственных нейросетей очевидны, однако их практическое применение в экспертных системах сдерживается трудностью проектирования [14]. Каждая новая задача требует большой исследовательской работы. При построении диагностических экспертных систем эти проблемы стоят особенно остро из-за разнообразия проявления неисправностей (симптомов). Причины, по которым проектирование и обучение нейросетей пока еще остается не конструкторской, а исследовательской и экспериментальной задачей, следующие: не накоплен достаточный опыт, где применение нейросетей дало положительный результат; анализ работы нейросетей является нетривиальной задачей, поэтому требуется инструмент, облегчающий ее решение.

В существующих программных разработках находят все большее применение комбинированные методы и технологии искусственного интеллекта. Например, к принципиально новым подходам в разработке интеллектуальных поисковых систем можно отнести технологию, которая приведена в работе [15]. Указанная технология объединяет в себе метод адаптивного распознавания образов (АРО) и семантические сети. Она позволяет работать с информацией любого типа - текстом, графикой, видео и др. Метод АРО опирается на теорию нейронных сетей и позволяет осуществлять бинарную индексацию. Система, созданная на основе метода АРО функционирует как самоорганизующийся организм.

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

Системы, основанные на знаниях, предпочтительнее тех, которые базируются на двоичном поиске [15].

Другим примером использования комбинированного метода может служить интеллектуальная управляющая система, которая приведена в работе [16]. В данной статье рассматриваются принципы построения основных задающих блоков интеллектуальных управляющих систем. Показано, что накопление информации об управляемом объекте и внешнем окружении и использование ее для выработки подходящего решения возможны лишь при структурном объединении блока нейроподобных структур и блока размытой (нечеткой) логики . Согласованное функционирование этих блоков реализуется с помощью блока генетического алгоритмирования. Автор вышеуказанной работы делает вывод, что основным достижением при использовании нейроподобных структур является способность согласовывать плохо моделируемые нелинейные динамические системы.

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

случае могут быть получены предметно-ориентированные экспертные системы и число правил обычно существенно снижается.

Среди программных продуктов, которые относятся к интеллектуальным системам и были удачно применены на практике можно выделить программу Deep Blue [17]. Данной системе удалось «передумать» не просто человека, а лучшего человека-эксперта в конкретной предметной области.

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

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

Существует множество эвристических методов. К ним относится «убийственная эвристика» и эвристика пропуска хода. Суть первой в том, чтобы сначала поискать один-два парадоксальных решения, а затем переходить в обычный режим. Вторая допускает делать подряд два хода и,

и

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

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

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

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

Экспертные системы - это самостоятельное направление в области искусственного интеллекта. Существует большое количество работ посвященных вопросам проектирования ЭС. Наиболее известными являются работы [1,2,4,18-25,54]. ЭС все чаще называют системами, основанными на знаниях (СОЗ).

Мощность ЭС обусловлена в первую очередь мощностью базы знаний (БЗ) и возможностью ее пополнения, а во вторую очередь - используемыми методами. Опыт показал, что важнее иметь разнообразные специальные знания, а не общие процедуры вывода [4].

Знания экспертов в основном эвристические, эмпирические, неопределенные, т.к. решаемые задачи плохо формализуемы [1,4,18,25].

Пользователь должен иметь возможность взаимодействовать с ЭС. При этом предъявляются требования: общение на языке близком к пользователю; линия рассуждения должна быть понятна пользователю; способность ЭС объяснять свои выводы.

Остаются нерешенными задачи по созданию пользовательского интерфейса [2]. В настоящее время выделяются три семиотических направления исследования человеко-компьютерных систем (ЧКС) и пользовательского интерфейса (ПИ): структуралистское, где главное внимание уделяется семантическим аспектам интерпретации ЧКС и ПИ; лингво-эргономическое, цель которого состоит в анализе и обобщении данных человеко-компьютерного взаимодействия; эргосемиотическое -изучает общие для лингвистики, семиотики и эргономики вопросы.

Опыт практического применения моделей и методов представления знаний показал [4,26], что ни одна из форм представления знаний в «чистом виде» ( продукционные правила, семантические сети, фреймы и т.д.) не обладает достаточной выразительной мощностью для описания задач, выходящих за рамки демонстрационного прототипа. Наиболее успешные разработки в инженерии знаний чаще всего строятся на базе объединения нескольких из указанных парадигм.

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

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

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

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

- общая характеристика проблемной области, для которой создается ЭС ( фиксированный или переменный состав знаний, конкретный или абстрактный тип знания, тип решаемой задачи - анализ/синтез);

- способы и этапы решения отдельных задач, а также способы обработки информации на каждом этапе;

- способы получения знаний от специалистов-экспертов;

- принципы организации интерфейсов с различными категориями пользователей;

2. Исследование проблемы приобретения знаний

Актуальным в настоящее время является проектирование и разработка диагностических ЭС, которые позволяют осуществлять поиск неисправностей в электронных схемах. Необходимость в этом можно объяснить не только назначением ЭС по определению [27], но и в силу ряда причин, связанных с действиями оператора в аварийных ситуациях [28].

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

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

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

1. Какие способы представления знаний лучше всего использовать ?

2. Достаточно ли существующих способов представления знаний для решения задач в данной проблемной области ?

3. Какой механизм логического вывода лучше подходит для получения наиболее правильной гипотезы ?

4. Как пользователи различной квалификации должны взаимодействовать с ЭС ?

5. Какие сервисные функции должны быть реализованы в ЭС ?

6. Какие инструментальные средства лучше всего использовать при реализации ЭС и т.д.?

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

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

Основными задачами научных исследований, выносимыми на защиту диссертации являются :

1. Исследование и разработка процесса информирования в системе «пользователь - экспертная система»;

2. Исследование моделей представления знаний ;

3. Формализация процесса логического вывода ;

4. Разработка методики проектирования основных модулей диагностической экспертной системы.

Глава 1. Сформулированы основные понятия информационных семантических систем как теоретические основы проектирования ЭС. Проведен анализ форм представления и видов семантической информации. Классифицированы основные преобразования семантической информации. Дан анализ методов сжатия семантической информации. Сформулированы и формализованы условия семантического интерфейса. Синтезирована модель семантического интерфейса.

Глава 2. Дан анализ моделей представления знаний. Предложена новая модель - «модель семантический объектов». Проведена классификация ядер в продукционных моделях. Рассмотрены особенности фреймовой модели и модели семантических сетей. Дан обобщенный алгоритм синтеза моделей знаний. Приведена методика синтеза моделей знаний.

Глава 3. Предложен способ представления знаний для диагностических экспертных систем. Формализован процесс представления знаний. Предложена таблица предпочтительности выбора способа представления знаний. Формализован механизм логического вывода в продукционных системах. Описаны способы извлечения фактов. Рассмотрены конфликтные ситуации и способы их разрешения. Исследован механизм логического вывода применительно к фреймам и семантическим сетям.

Глава 4. Разработан алгоритм ядра прототипа диагностической экспертной системы. Предложены структуры прикладных единиц базы знаний. Описаны механизм логического вывода, возможности языка логического типа, преимущества прикладной единицы БЗ. Проведен анализ процесса диалога. Дано обоснование целесообразности разработки модулей объяснения и накопления знаний. Проведен анализ процессов взаимодействия ядра экспертной системы и сервисных модулей. Определены основные функции сервисных модулей. Сформулированы основные требования, предъявляемые к инструментальному средству.

16

Похожие диссертационные работы по специальности «Автоматизация и управление технологическими процессами и производствами (по отраслям)», 05.13.06 шифр ВАК

Заключение диссертации по теме «Автоматизация и управление технологическими процессами и производствами (по отраслям)», Пугачев, Евгений Константинович

Выводы по главе 4

1. Разработан и реализован алгоритм ядра прототипа диагностической экспертной системы.

2. Предложены и реализованы структуры логических условий прикладной единицы базы знаний и структура прикладной единицы для фреймового представления. Это позволило создать базу знаний модульного типа и модуля накопления, ориентированного на пользователя (эксперта) не программиста.

3. Разработан и реализован механизм логического вывода . Отличительная особенность его состоит в том , что в нем используются возможности языка логического типа, а также гибкость, которую обеспечивает структура логических условий прикладной единицы БЗ .

4. Разработана и реализована блок-схема алгоритма интерфейса ЭС-П. Проведен анализ процесса диалога, рассмотрены возможные методы обработки сообщений.

5. Дано обоснование целесообразности разработки модуля объяснения . Проведен анализ процесса взаимодействия ядра экспертной системы и модуля объяснения. Проведен анализ типов объяснений. Разработаны и реализованы основные функции модуля объяснений.

6. Дано обоснование целесообразности разработки модуля накопления знаний. Разработаны и реализованы основные функции модуля накопления знаний.

7. Проведено обоснование выбора инструментального средства проектирования ЭС. Сформулированы основные требования, предъявляемые к инструментальному средству. В качестве базового средства выбран язык искусственного интеллекта Турбо-Пролог 2.0.

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

Реализован прототип диагностической ЭС.

Заключение по диссертационной работе

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

Теоретическая часть.

1. Разработан и формализован процесс семантического информирования в структуре «пользователь - экспертная система».

Дан анализ и классификация основных аспектов процесса информирования. Введены основные понятия и определения процесса информирования.

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

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

Разработан алгоритм синтеза модели семантического интерфейса. Дано аналитическое выражение указанного алгоритма. Синтезирована модель семантического интерфейса.

2. Исследованы основные модели представления знаний.

Проведен анализ методов: «правил», «фреймов» и «семантических сетей» с целью использования их в исследуемой предметной области. Разработан алгоритм синтеза моделей знаний. Описана методика синтеза моделей знаний.

Введено понятие «семантического объекта». Разработана модель семантических объектов. Проведен анализ базовых категорий, введены основные понятия и определения метода семантических объектов.

Формально описана модель семантической информации метода семантических объектов.

3. Формализованы процесс интеграции знаний и механизм логического вывода.

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

Исследованы структура, объекты, отношения и свойства объектов исследуемой предметной области. Определены отношения между «идеальными» и «материальными объектами» рассматриваемой предметной области применительно к различным уровням организации. Дана классификация групп отношений.

Формализован процесс представления знаний конструктивной и функциональной части диагностируемой СЭВМ. Разработана таблица предпочтительности выбора способа представления знаний. Дан анализ вариантов правил применительно к механизму логического вывода. Получены необходимые условия непротиворечивости правил и организации механизма логического вывода.

Формализован механизм логического вывода в продукционных системах. Рассмотрены составляющие его процессы. Дано описание явного и неявного извлечения фактов. Рассмотрены конфликтные ситуации и способы их разрешения.

Формализован механизм логического вывода применительно к фреймам и семантическим сетям.

4. Разработана методика проектирования основных модулей диагностической экспертной системы (ядро и сервисные модули).

Методическая часть.

Разработана методика проектирования диагностической экспертной системы, включающая следующие основные этапы:

1.Выбор предметной области. Формулировка цели. Определение круга решаемых задач. Разработка алгоритма функционирования экспертной системы.

2. Извлечение знаний из различных источников и их структуризация.

3. Выбор инструментальных средств проектирования.

4. Формализация знаний в виде машинных процедур. Построение базы знаний (программа на языке программирования).

5. Разработка семантического интерфейса «ЭС - пользователь» (программа).

6. Разработка механизма логического вывода (программа).

7. Разработка модуля объяснений (программа).

8. Разработка модуля накопления знаний и манипулирования со знаниями (комплекс программ).

Практическая часть.

1. Разработаны основные теоретические положения проектирования диагностической ЭС.

2. Предложена методика проектирования диагностической ЭС.

3. Разработаны алгоритмы функционирования сервисных модулей и ядра диагностической экспертной системы.

4. Создан комплекс специальных инструментальных средств диагностирования процессора СЭВМ. Последний включает: процедуры тестирования; семантический диалог в структуре «ЭС - пользователь»; процедуры диагностики и принятия решений.

5. Разработан комплекс программ обработки информации баз данных и знаний в процессе диагностирования системы. Реализация выполнена на языке искусственного интеллекта Турбо-Пролог 2.0.

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

Список литературы диссертационного исследования кандидат технических наук Пугачев, Евгений Константинович, 1999 год

Библиографический список литературы

1. Экспертные системы: состояние и перспективы: Сборник научных трудов/ Под ред. Д.А.Поспелова.- М.:НаукаД989.-152с.

2. Искусственный интеллект - 94 : Сборник научных трудов национальной конференции с международным участием, В 2-х томах. -Рыбинск, 1994. -Том 1. -206с.

3. Пугачев Е.К. К вопросу об интеграции экспертной и гипертекстовой систем //Пользовательский интерфейс. -1993. -№3. -С.57-62.

4. Статические и динамические экспертные системы/ Э.В.Попов, И.Б.Фоминых, Е.Б.Кисель, М.Д.Шапот.- М.: Финансы и статистика, 1996.

-320с.

5. Стецюра Г.Г. Эволюционные методы в задачах управления, выбора и оптимизации//Приборы и системы управления.-1998.-№3.-С.54-62.

6. Rose М. Generalizing the notion of schema in genetic algorithms// Artificial Intelligence ,-1991.-Vol.50.-P.385-386.

7. Reynolds D., Gomatam J. Stochastic modeling of genetic algorithms //Artificial Intelligence.-1996.-Vol.82,№l-2.-P.303-303.

8. Холланд Дж. Генетические алгоритмы// В мире науки.-1992.-№9. -С.32-40.

9. Whitley D. Evaluating evolutionary algorithms// Artificial Intelligence.-1996. -Vol.85,Ж-2.-Р.245-276.

10. Dzeroski S., Petrovski I. Discovering dynamics with genetic programming //LNAI.-1994.-Vol.784.-P.347-350.

П.Цыганков В.Д. Нейрокомпьютер и его применение/ Под ред. В.А.Львова.-М.: «Сол Систем»,1993.-117с.

12. Математические модели и оптические реализации многослойных и полиномиальных нейронных сетей/ Н.Н.Евтихиев, Б.Н.Оныкий, В.В.Перепелица, И.Б.Щербаков. -М.:МИФИ,1994.-32с.

13. Уоссермен Ф. Нейрокомпьютерная техника. Теория и практика. -М:Мир, 1992.-93с.

14. Система проектирования нейросетевых алгоритмов для медицинских экспертных систем/ С.Г.Тимофеев, В.В.Бирюков, Л.С.Орбачевский и др.//Приборы и системы управления.-1998.-№3.-С.15-17.

15. Карташева Е. Интеллектуальные поисковые системы ЕхсаНЬшУ/Сети.-1997.-Ш.-С.98-105.

16. Клепарский В.Г., Менгазетдинов Н.Е. Основные задающие блоки интеллектуальных управляющих систем// Приборы и системы управления. -1998.-№8.-С.35-37.

17. Богатырев Р. Шахматы по-американски// Мир ПК.-1997.-№8. -С.100-109.

18. Попов Э.В. Экспертные системы. Решение неформализованных задач в диалоге с ЭВМ.- М.: Наука, 1987.- 288с.

19. Уотермен Д. Руководство по экспертным системам. - М.: Мир, 1989.-388с.

20. Тунсенд К., Фохт Д. Проектирование и программная реализация экспертных систем на персональных ЭВМ. -М.: Финансы и статистика, 1990.-320с.

21.Гаврилова Т.А., Червинская K.P. Извлечение и структурирование знаний для экспертных систем. -М.:Радио и связь, 1992.-200с.

22. Крисевич B.C., Кузьмин Л.А., Шиф A.M. Экспертные системы для персональных компьютеров. - Минск: Высшая школа, 1990.-196с.

23. Экспертные системы: Инструментальные средства разработки: Учебное пособие для студентов вузов по направлению «Информатика и вычислительная техника»/ Л.А.Керов, А.П.Частиков, Ю.В.Юдин, В.А.Юхтенко. - СПБ: Политехника, 1996. - 219с.

24. Экспертные системы: Принципы работы и примеры /Под ред. Р.Форсайта. -М.-.Радио и связь, 1987.-224с.

25. Искусственный интеллект: Справочник в 3-х книгах. -М.: Радио и связь, 1990. -Книга 1. Системы общения и экспертные системы/Под ред. Э.В.Попова. - 464с.

26. Искусственный интеллект - 94 : Сборник научных трудов национальной конференции с международным участием, В 2-х томах. -Рыбинск, 1994. -Том 2.-208с.

27. Братко И. Программирование на языке Пролог для искусственного интеллекта: Пер. с англ. /Под ред. А.М.Степанова.- М.: Мир, 1990.-560с.

28. Дозорцев В.М. Оператор в компьютеризированной системе управления: к проблеме построения человеко-машинного интерфейса //Приборы и системы управления.-1998.-№3.-С.39-47.

29. Соломатин Н.М. Информационные семантические системы. -М.: Высшая школа, 1989.-128с.

30. Ж.-Л.Лорьер. Системы искусственного интеллекта. - М.: Мир,1991. -568с.

31. Представление и использование знаний /Под ред. У.Уэно,М.Исидзука.-М.:Мир, 1989.-220с.

32. Искусственный интеллект: Справочник, В 3-х книгах. -М.: Радио и связь, 1990. -Книга 2. Модели и методы/Под ред. Д.А.Поспелова. -304с.

33. Искусственный интеллект: Справочник, В 3-х книгах. -М.: Радио и связь, 1990. -Книга 3. Программные и аппаратные средства/Под ред. В.Н.Захарова, В.Ф.Хорошевского. -368с.

34. Грачев А.Ю. Продукционная система в ДССП-80//Программное оснащение персональных компьютеров. -М.: МГУ,-1990-С.52-63.

35. Логическое программирование: Сборник статей/ Под ред. В.Н.Агафонова. - М.:Мир,1988.-368с.

36. Хювенен Э.,Сеппянен Й. Мир Лиспа, В 2-х томах - М.:Мир,1990. -Том 2. Методы и системы программирования.-320с.

37. Доорс Дж., Рейблейн А.Р., Вадера С. Пролог - язык программирования будущего: Пер. с англ. - М.: Финансы и статистика, 1990.-144с.

38. Хювенен Э.,Сеппянен Й. Мир Лиспа, В 2-х томах - М.:Мир,1990. -Том 1. Введение в язык Лисп и функциональное программирование.-448с.

39. Поляков Д.Б., Круглов И.Ю. Программирование в среде Турбо-Паскаль. -М.: МАИ,1992.-576с.

40. Стерлинг Л.,Шапиро Э. Искусство программирования на языке Пролог: Пер. с англ. /Под ред. Ю.Г.Дадаева. - М.: Мир,1990.-336с.

41. Янсон А. Турбо-Пролог в сжатом изложении .- М.:Мир, 1991.-96с.

42. Подбельский В.В. Язык СИ++.-М.: Финансы и статистика, 1996. -560с.

43. Рот М. Интеллектуальный автомат : компьютер в качестве эксперта. - М.: Энергоатомиздат, 1991.-80с.

44. Минский М. Фреймы для представления знаний. -М.: Энергия, 1979.-51с.

45. Логический подход к искусственному интеллекту/А.Тей, П.Грибомон, Ж.Луи и др.: Пер. с франц.-М.:Мир, 1989.-432с.

46. Соломатин Н.М., Пугачев Е.К., Степанов А.И. Блок объяснений экспертной диагностической системы // Вестник МГТУ. Приборостроение. -1992.-№3.-С. 12-17.

47. Семантические аспекты организации экспертных систем /Н.М.Соломатин, К.С.Хомяков, Е.К.Пугачев и др. //Вестник МГТУ.Приборостроение.-1994.-№1.-С.15-21.

48. Соломатин Н.М., Соколов Н.К., Пугачев Е.К. Семантический интерфейс между пользователем и медицинской диагностической экспертной системой // Конверсия.-1997.-№10.-С.57-59.

49. Системы управления базами данных и знаний/ Под ред. А.Н.Наумова.-М.:Наука.-1991.-350с.

50. Левин П., Дранг Д., Эдемон Б. Практическое введение в технологию искусственного интеллекта и экспертных систем с иллюстрациями на Бейсике.-М.:ФиС.-1990.-236с.

51. Кузнецов В.Е. Представление в ЭВМ неформальных процедур. -М.:Наука, 1990.-160с.

52. Ковальски Р. Логика в решении проблем.-М.:Наука,1990.-280с.

53. Малпас Дж. Реляционный язык Пролог и его применение. -М.-.Наука, 1990.-464с.

54. Герман О.В. Введение в теорию экспертных систем и обработку знаний,-Минск. :ДизайнПРО, 1995.-256с.

Приложение 1. Структура прототипа разработанной диагностической

экспертной системы

Основные научные положения данной работы убедительно подтверждены практической реализацией прототипа диагностической экспертной системы.

Блок-схема прототипа разработанной ЭС представлена на рис.П.1. Ниже приводится описание основных модулей системы.

Э В М

Рис.П.1. Блок-схема прототипа диагностической экспертной системы.

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

БЗКВ - база знаний компоненты взаимодействия. Содержит знания, которые необходимы для осуществления диалога ЭС и пользователя. В данном модуле используется продукционная модель.

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

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

Тестовая БЗ - один из модулей тестовой базы знаний, который входит в ядро программной оболочки ЭС. Основное его назначение - хранение информации о тестовых примерах. Модель представления знаний в данном модуле является фреймовой. В качестве примера, имена слотов могут быть следующими: «Эталонное значение», «Код операции», «Значение первого операнда», «Значение второго операнда», «Результат» и т.д.

Модуль логического вывода - в качестве базового используется механизм логического вывода продукционных систем. Реализует четыре основных процесса механизма: процесс выбора из БЗ активных фактов и правил; процесс сопоставления; процесс разрешения конфликтов и процесс выполнения действия выбранного означенного правила. Результатом последнего процесса может быть поиск в БЗ конструктивной части фрейма, в котором хранится информация об адресе неисправного элемента диагностируемой ЭВМ.

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

БЗ конструктивной части ЭВМ - представляет собой множество фреймов одного уровня, в которых в качестве имен слотов используются имена конструктивных уровней диагностируемой ЭВМ. Фрейм имеет так же дополнительный слот с именем «Гипотеза», он необходим для уточнения причины и места неисправности.

Вышеописанные блоки относятся к ядру экспертной системы и являются основными модулями.

Модуль объяснения - предоставляет возможность пользователю понимать логику действий ЭС. Основными функциями являются: анализ текущего состояния логики действия ЭС; объяснение пройденного ЭС пути в процессе экспертизы; объяснение причины, сделанного ЭС вывода; демонстрация трассы по конкретному выводу; формирование комментария пройденного ЭС пути; функции консультации и др.

БЗМО - база знаний модуля объяснения. Содержит знания, необходимые для осуществления различных типов объяснения. Модель представления знаний данного модуля аналогична основной модели ядра ЭС.

Модуль объяснения и БЗМО являются средством поддержки и относятся к сервисным модулям ЭС.

Модуль накопления - позволяет добавлять, модифицировать существующие знания, осуществлять проверку БЗ на непротиворечивость и др. Т.е. данный модуль позволяет автоматизировать процесс переноса знаний от предметного эксперта в БЗ, и тем самым, обеспечить функцию актуализации БЗ.

БЗМН - база знаний модуля накопления. Данная база является базой метазнаний, в которой хранится необходимая информация о структуре всех вышеперечисленных модулей БЗ ЭС.

Приложение 2. Алгоритм работы модуля накопления (см.рис.П.З.)

После выбора в главном меню ЭС режима работы с модулем накопления, управление переходит к МН и на экране появляется «приглашение к работе».

Далее, после нажатия клавиши «ввод» пользователю предлагается «меню выбора базы знаний» (Блок 2), которое имеет следующие пункты : тестовая база знаний; база знаний логических условий; база знаний компоненты взаимодействия; база знаний конструктивной части и база знаний модуля объяснения.

Ниже приводится фрагмент обобщенного алгоритма работы МН для базы знаний логических условий (фактов, правил) и базы знаний конструктивной части ЭВМ (фреймов).

После выбора модуля базы знаний (Блок 5) пользователю предлагается меню выбора режима работы (Блок 8), которое имеет следующие пункты : проверка на существование; добавление; модифицирование, проверка на непротиворечивость; удаление и редактирование.

В том случае, если выбран режим проверки на существование, пользователю предлагается формат (Блок 11) для заполнения и ввода правила или фрейма.

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

После того, как элементы правила введены верно, выполняется процедура проверки на существование (Блок 14). Если правило (или фрейм) существует, то пользователь, не выходя из данного режима, может сразу перейти либо к модификации (Блок 40), либо к удалению (Блок 72) правила. В том случае, если правило (или фрейм) не найдено, пользователь может выполнить процедуру добавления (Блок 28).

- РЕЖИМЫ ВВОДА -

Имя гипотезы :........ Номер запроса : О

Флаг 1 : О Текст запроса:

Флаг 2:

Вариант правильного ответа :........................

Действие или вывод ЭС на данный вариант правильного ответа :

флаг 3:0

Номер следующего запроса для данного варианта ответа : О Номер ответа : О

Етег-начать Р8-удалить Р6-существует ? РЗ-ввод нового Евс-выход

Рис.П.2. Формат для ввода элементов правила.

Если выбран режим добавления (Блок 24), то пользователю предлагается заполнить формат, с последующим занесением элементов в базу знаний.

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

После того, как процесс модифицирования закончен, выполняется процедура удаления старого правила (Блок 42), процедура добавления (Блок 44) нового (модифицированного старого) правила.

Далее пользователь может закончить работу в режиме модифицирования, либо перейти в меню выбора БЗ (Блок 2).

Рис. П.З. Алгоритм работы МН.

165 165 165

1 22) 1 24) 1 зо;

®

167

Ввод по шаблону элементов правиле или фрейма

нет

-36-1-

Выдача сообщения об ошибке ввода

— 37-

Проверка на существование

Модифицирование правила (фрейма)

-42 '

Удаление старого правила_

1—41-

Выдача сообщения об отсутствии

165

44"

Проц. добавления

I 167 I

169 .74

167 48,

Выдача сообщения о наличии противоречия

Выдача сообщения об успешном завершении

нет

Ввод по шаблону элементов правила или фрейма

нет

67

Проверка на существование

Выдача сообщения о неверном вводе

О

169

V V V

169

\!У

Рис.П.З. - окончание.

Приложение 3. Фрагмент базы фактов ЭС на языке Турбо-Пролог 2.0.

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

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

Турбо-Пролог 2.0. позволяет хранить базы фактов такого вида в отдельных файлах, а при необходимости подгружать их в оперативную память.

1. q("HГ,l,0,,,ЭC: Первый операнд совпадает \п

со своим эталоном ?")

2. я("НГ,2,0,"ЭС: Эталон ор1 правильный ?")

3. я("Н1",3,0,"ЭС: Эталон ор1 восстановлен ?")

4. q("HГ,4,66,"ЭC: [66] Вызвать ЭС по имени Е80Р1 \п

для экспертизы аппаратной части ор1")

5. q("HГl,5,79,"ЭC: [79] Неисправна аппаратная часть ор1. \п

Вызвать ЭС по имени Е80Р1Я для экспертизы \п аппаратной части ор1.")

6. я("НГ,6,-1,"ЭС: Назовите имя неисправного разряда")

7. q(,,Ш",7,-l,,,ЭC: Назовите имя следующего неисправного разряда")

8. q("Ш",8,-2,"ЭC: Экспертиза аппаратной части ор1 завершена. \п

Переход к гипотезе Н2.")

9. ^("Ш",1,14,"нет","ЭС: [14] Неисправна аппаратная часть ор1\п

или деградировал эталон ор1",0,2)

10. Г81("Н1",2,62,"нет","ЭС: [62] Восстановить эталон ор1",0,3)

11. ^("Ш",2,0,"да"," ",0,5)

12. ^("НГ,3,0,"да"," ",0,4)

13.Г81("НГ,4,0,"Е80РГ," ",0,1)

14. ^("НГДО/'ЕЗОРНГ," ",1,6)

15. т("НГ,6,15,"1","ЭС: [15] фрейм первого разряда КООР1",1,7)

16. Г81("Н1",6,17,"3","ЭС: [17] фрейм третьего разряда ЯООРГДД)

18. Г81("НГ,6,19,"5","ЭС: [19] фрейм пятого разряда КСОРГ,1,7)

19. Г81;("Н 1",6,21 ,"7","ЭС: [21] фрейм седьмого разряда КООР1",1,7)

20. Г81("НГ',6,0,"нет"," ",1,8)

21. ^("Н1",7,15," 1","ЭС: [15] фрейм первого разряда 1ЮОР1",1,7)

22. Г81;("Н 1 ",7,17,"3","ЭС: [17] фрейм третьего разряда ЯООР1",1,7)

23.Г81:("Н 1 ",7,19,"5","ЭС: [19] фрейм пятого разряда 1ЮОРГ,1,7)

24. Г81;("Н 1",7,21 ,"7","ЭС: [21] фрейм седьмого разряда ЯООР1",1,7)

25. г81:("Ш",7,0,"нет"," ",1,8)

26. Г81("Н1",8,-2,"Н2","ЭС: КОНЕЦ РАБОТЫ",1,0)

27. А-("1","Фрейм первого разряда 1ЮОРГ,"РВ 386","и 29","Н12","Ш 1",

"Неисправен триггер 1-го разряда или цепочка логических элементов на входе и выходе Тг или элементы межразрядной связи или напряжение питания или контакты или ...")

28. й-("3","Фрейм третьего разряда КООРГ/'РБ 386","и 29","Н14","Р11",

"Неисправен триггер 3-го разряда Р^ или цепочка логических элементов на входе и выходе Тг или элементы межразрядной связи или напряжение питания или контакты или ...")

29. й-("5","Фрейм пятого разряда 1ЮОР1УРО 386","и 29","К14","М9",

"Неисправен триггер 5-го разряда Ргё или цепочка логических элементов на входе и выходе Тг или элементы межразрядной связи или напряжение питания или контакты или ... ")

30. й-("7","Фрейм седьмого разряда ЯООРГ'/'РВ 386","и 29","Ы4","Р9",

"Неисправен триггер 7-го разряда Р^ или цепочка логических элементов на входе и выходе Тг или элементы межразрядной связи или напряжение питания или контакты или ...")

Приложение 4. Фрагмент ядра программной оболочки прототипа

диагностической экспертной системы (Собственные предикаты фактов и правил пронумерованы.)

CLAUSES

% Создание окна и вывод пунктов меню

1. menu:- makewindow(20,cn,cn2,"Главное меню ДЭС",0,0,25,80),

mt(l), Yy=y+smyl+smy2, field_attr(Yy,x,dl,cy), cursor(Yy ,x), assertz(mbd( 1)),wibor.

2. mt(M):- M<=max, ment(M,Rl),str_int(Sc,M),strJen(Sc,L), ans(L,Sc,S), concat(S,". ",S1), concat(Sl,Rl,S2),

Y1 =y+smy 1 ,Y2=Y 1 +smy 2*M,

cursor(Y 2,x),write(S2),M 1 =M+1 ,mt(M 1). mt(M):-M>max,!.

3. ans(l,Sc,S):-concat(" ",Sc,S),!. ans(L,Sc,S):-S=Sc,!.

% Факты пунктов меню

4. ment(l,11 Каталог экспертной системы").

ment(2,"Схема диагностируемого устройства(АЛУ)").

ment(3," Аналитическая модель диагностируемого устройства(АЛУ)").

ment(4,"Аналитическая модель АЛУ при выполнении операции

логическое сложение"). ment(5,"Программная модель АЛУ при выполнении операции

логическое сложение"). ment(6,"TecT 1.Перечень примеров,входящих в тест 1 (примеры 1,2,3,4)"). ment(7,"TecT 2.Перечень примеров,входящих в тест 2(примеры

5,6,7,8,9,10)").

ment(8,"Вызов операндов: первого ОР1,второго ОР2"). ment(9,"Перечень правил базы знаний ЭС на естественном языке"). ment( 10,"Блок-схема алгоритма интерфейса ЭС-П по гипотезе HI"). ment(l 1,"Представление знаний в виде фреймов"). теп1(12,"Цеколевка микропроцессора 8086 и 8088"). ment( 13,"Расположение интегральных схем на материнской

(системной) плате").

ment(14,"Bbi30B ЭС.ЭС готова к работе.

При ее вызове начинается работа ЭС"). ment(15,"Bbi30B блока накопления"). ment( 16,"Вызов блока объяснения"). ment( 17,"Выход из системы").

% Чтение кода клавиши

5. wibor:- readJcod(Kod),mbd(W),per(Kod,W),fail. wibor:-wibor.

% Пометка выбранного пункта меню

6. pomr(P,Pl):-Yl =y+smy 1 ,Y2=Y1 +smy2*P,

Y3=Y 1 +smy2*Pl, field_attr(Y2,x,dl,cn),

field_attr(Y 3 ,x,dl ,cy) ,retract(mbd(Mm)) ,assertz(mbd(P 1)),!.

% Анализ кода клавиши и текущего пункта меню

7. per(80,P):- P<max,Pl=P+l,pomr(P,Pl),!. per(80,P):- Р=шах,Р1 = 1 ,pomr(P,Pl),!. per(72,P):- Р> 1 ,Р1 =Р-1 ,рошг(Р,Р1),!. per(72,P):- Р= 1 ,P1 =max,pomr(P,Pl),!.

% Запуск выбранных пунктов меню per(13,l):- ment(l,S), mk(l,31,3,S,"kat.txt"),!. per(13,2):- ment(2,S), mk(2,31,3,S,"sdu2.txt"),!. per(13,3):- ment(3,S), mk(3,31,3,S,"an_mod3.txt"),!. per(13,4):- ment(4,S), mk(4,31,3,S,"an_mod4.txt"),!.

per(13,5):- ment(5,S), mk(5,31,3,S,"prog5.txt"),!. per(13,6):- ment(6,S), mk(6,31,3,S,"testl.txt"),!. per(13,7):- ment(7,S), mk(7,31,3,S,"test2.txt"),!. per(13,8):- ment(8,S), mk(8,31,3,S,"oper8.txt"),!. per(13,9):- ment(9,S), mk(9,31,3,S,"pexs9.txt"),!. per(13,10):-ment(l,S), mk(10,31,3,S,"blokl0.txt"),!. per(l3,1 l):-ment(l ,S), mk(l 1,31,3,S,"framel 1 .txt"),!. per(13,P):- P=12, sys(l,"bm86.exe"),fail,!. per(13,P):- P=13, sys(l,"matplat.exe"),fail,!. per(13,P):- P=14,emenu,!. per(13,P):- P=15, sys(l,"bn.exe"),!. per(13,P):- P=16, sys(l,"bopu.exe"),!. per(13,P):- P= 17,makewindow(l00,135,0,"",0,0,25,80),exit. per(Kod,P):- Kod<> 13,shiftwindow(20),!.

% Правила для просмотра группы файлов

8. mk(N,Cl,C2,Sl,S2):- existfile(S2), concat(Sl,".(Bbix-Esc)",S),

makewindow(N,Cl,C2,S,0,0,25,80),file_str(S2,T), display (T) ,remo vewindo w,!. mk(N,C 1 ,C2,S 1 ,S2):- sys(2,S2),!.

% Правила для запуска группы исполняемых файлов

9. sys(K,S):-K= 1 ,existfile(S),system(S).

sys(K,S):-not(existfile(S)), makewindow(21,135,14,"",20,20,3,40), cursor(0,3), write(" Файл ",S," отсутствует !"), readchar(_),removewindow,!.

% Чтение расширенного кода

10. read_kod(Kod):- readchar(C), char_int(C,A),char_kod(A,Kod).

11. char_kod(A,Kod):- A<>0,Kod=A,!. char_kod(0 ,Kod):- readchar(C) ,char_int(C ,Kod).

/ ч1л «Ь «I/ ф ф ф ф ф ф ф ф ф ф ф \ JF ф ф ф ф ф ф ф ф ф ф ф ф ф ф ф ф ф ф ф ф ф J

^vv^vvvvvv'^'p»!»*!»»!!»»^ jvji о дуль диагностики j

CLAUSES

% Создание меню выбора тестового примера

12. emenu:- sysh,

makewindow(16,31,3,"РАБОТА ЭКСПЕРТНОЙ СИСТЕМЫ

(Выход-Esc)",0,0,25,80), makewindow(l7,32,3,"Выбор тестового примера",3,20,20,40), cursor(l,6),write("TecT l"),cursor(8,21),write("TecT 2"), field_attr(l ,6,6,43),field_attr(8,21,6,43), mn(l,ll),ko(l,A,Y,X,_),str_len(A,L),field_attr(Y,X,L,col), assert(ar (80,1)) ,bor,!.

13. mn(X,Y):- ko(X,A,Yl,Xl,C),cursor(Yl,Xl),write(A),

str_len(A,L),field_attr(Yl,Xl,L,C),X2=X+l,X<Y,mn(X2,Y),!. mn(X,Y):-X=Y,!.

14. bor:- ar(K,R),r_k(Kl), an(Kl,R),fail.

bor:- ar(K,R),K=27,removewindow,removewindow,!. bor:- bor.

15. an(Kod,R):- ko(R,A,Y,X,C),ord(R,Kod,Rs),

ko(Rs,As,Ys,Xs,Cs),ord(Rs,Ks,_),str_len(A,L),str_len(As,Ls), field_attr(Y,X,L,C),field_attr(Ys,Xs,Ls,col), udar,assert(ar(Kod,Rs)),!. an(Kod, R): -uz(R, Kod, S), existfile(S), system (S),!. an(Kod,R):-uz(R,Kod,S),beep,

makewindow(26,112,67,"",4,10,3,52), cursor(0,5), write(" ФАЙЛ ",S," отсутствует ! "), readcharQ, removewindow,! an(Kod,R):-R=5,ean,!.

an(Kod, R): - Kod=27 ,udar, assert(ar(Kod, R)),!.

an(Kod,R):-!.

16. uz(0,0,"").

17. udar:-retract(ar(_,_)),fail. udar.

18. ord(l,80,2).ord(l,72,l 1). / ord(2,80,3).ord(2,72,1).

ord(3,80,4).ord(3,72,2). ord(4,80,5).ord(4,72,3). ord(5,80,6).ord(5,72,4). ord(6,80,7).ord(6,72,5). ord(7,80,8).ord(7,72,6). ord(8,80,9).ord(8,72,7). ord(9,80,10).ord(9,72,8). ord(10,80,l l).ord(10,72,9). ord(l 1,80,1).ord(l 1,72,10).

19. ko(l,"Пример l",3,5,cz0). ko(2,"Пример 2",4,5,czO). ko(3,"Пример 3",5,5,cz0). ko(4,"Пример 4",6,5,cz0). ko(5,"Пример 5",10,20,cz0). ko(6,"Пример 6",ll,20,cz0). ko(7,"Пример 7",12,20,cz0). ko(8,"Пример 8",13,20,cz0). ko(9,"Пример 9",14,20,cz0). ko(10,"Пример 10",15,20,cz0). ko(ll,"Пример ll",16,20,cz0).

20. r_k(Kod):- readchar(C), char_int(C,A),c_k(A,Kod),!.

21. c_k(A,Kod):- A<>0,Kod=A,!. c_k(0,Kod):- readchar(C),char_int(C,Kod),!.

22. sysh:- existfile("bdes"),consult("bdes"). sysh:- not(existfile("bdes")),

cursor(10,15),beep, write(" Отсутствует база данных ЭС (файл 'bdes') "), field_attr(l 0,15,43,138), readchar(_),exit.

% Экспертиза на примере теста 5

23. еап:-

makewindow(25,95,95,"Экспертная диагностическая система",0,0,25,80), cursor(22,l), write("Pe)khmbi ВО : ВО BOSG BOSP BOTS ВОРР BOOB BONG BODT BOKE ВОКРР"), makewindow(20,31,27,"Окно левое",0,0,11,40),

таке\¥нкк>\¥(21,31,26,"Окно правое",0,40,11,40), wtest(5),

таке\¥тс1о\¥(23,62,15,"НЕИСПРАВНЫЕ РАЗРЯДЫ", 11,59,12,21), шакештёош(22,110,15,"ОКНО ДИАЛОГА", 11,0,12,59), сЦа^("Старт"), removewindow,removewindow, removewindow,removewindow,removewindow.

24. лте^):- shiftwindow(20), сиг8Ог(0,2),\¥гйе("ТЕСТ АЛУ"), АеШ_аШ(0,2,4,30), 1Г_сор(7,Яи8,К1 ,K2,KЗ,K4,Kd), гСор1(^А1,А2,АЗ,А4,А5,А6,А7,А8^),

1£_ор2(г,В1,В2,ВЗ,В4,В5,В6,В7,В8,В<1),

tf_r(Z,Rl,R2,RЗ,R4,R5Д6,R7,R8,Rd), сиг8ог(0,25)^гйе("Пример - Г1еМ_а№(0,25,8,29), сиг8ог(2,10),шгЦе(" Фактическое значение"), АеШ_аШ(2,10,20,28), сиг8ог(4,3),луп1е("Код операции :"), АеЫ_айг(4,3,14,26), сиг80г(6,6),\уп1е("Операнд 1 "), Г1еШ_аПг(6,6,9,26), сиг8ог(7,6),\угйе("Операнд 2"), АеМ_аиг(7,6,9,26), сиг8ог(8,6),\¥гйе("Результат"), Г1еМ_а№(8,6,9,28), сиг8ог(4,20)^гйе("\""Ди8,"\""), сиг8ог(5,15),\¥п1е(К1 ,К2,КЗ,К4," (",К<1,У), сиг8ог(6,18),шгйе(А1,А2,АЗ,А4,А5,А6,А7,А8," (",Ad,")"), сиг8ог(7,18),\¥п1е(В1,В2,ВЗ,В4,В5,В6,В7,В8," (",Bd,")"), cursor(8,18),write(Rl,R2,RЗ,R4,R5,R6,R7,R8," (",Rd,")"), shiftwindow(21),

сиг8ог(0,2)^гйе("ТЕСТ АЛУ"), Г1еШ_аШ(0,2,4,30), tlon_cop(Zl,Rus,Kl l,K12,K13,K14,Kdl), tlon_opl(Zl,Al l,A12,A13,A14,A15,A16,A17,A18,Adl), tlon_op2(Zl,Bll,B12,B13,B14,B15,B16,B17,B18,Bdl), tlon_r(Zl,Rll,R12,R13,R14,R15,R16,R17,R18,Rdl), сиг8ог(0,25),\¥п1е("Пример - \Ъ\), АеШ_аиг(0,25,8,29),

cursor(2,10),write("3TanoHHoe значение"), field_attr(2,10,18,28),

cursor(4,3),write("Код операции :"), field_attr(4,3,14,26),

cursor(6,6),write("OnepaHfl 1 "), field_attr(6,6,9,26),

cursor(7,6),write("Операнд 2 "), field_attr(7,6,9,26),

cursor(8,6),write("Результат "),

field_attr(8,6,14,28),

cursor(4,20), write("\" ", Rus, "\" "),

cursor(5,15),write(Kl 1 ,K12,K13,K14," (",Kdl,")"),

cursor(6,18),write(A 11,A12,A13,A14,A15,A16,A17,A18," (",Adl,")"),

cursor(7,18),write(Bl 1,B12,B13,B14,B15,B16,B17,B18," (",Bdl,")"),

cursor(8,18),write(Rl 1,R12,R13,R14,R15,R16,R17,R18," (",Rdl,")").

25. dialog("CTapT"):- assertz(ubo(0)), shiftwindow(22),

cursor(l,l),write("Введите имя гипотезы "), cursor(2,l),write("nnH экспертной системы : "),nl, field_attr(2,27,14,24) ,cursor(2,27) ,readln(S 1 ), clearwindow,upper_lower(S,Sl),bo(S),dialog(S). dialog("H 1 "):- start("H 1 "),!. dialog("WEST"):- start("Hl"),!. dialog("N"):- !.

dialog(S) : - dig(S,_) ,dialog("CrapT"), !.

dialog(S):- field_attr(2,27,14,29), cursor(4,10),S="CTapT", dialog(Star).

26. dig("BO","BO").dig("bo","BO"). dig("BN","BN").dig(Mbn","BN").

27. bo(S):-dig(S,Sl),retractall(reggr(_)),assertz(reggr(Sl)),bo,!. bo(Ot):-!.

bo:- retract(ubo(_)), un,unl, save("bdbo"),system("bopu.exe"), reggr(Bb) ,retractall(reggr(Bb)) ,assertz(ubo( 1 )),consult("bdes"), !.

28. un:- existfile("bdbo"),deletefile("bdbo"). un:- not(existfile("bdbo")),!.

29. uni:- q(Sl,S2,S3,S4),retract(q(Sl,S2,S3,S4)),

Д)2, 03,04,05,06, 07),ге1гас1(г8г(01,02,03,04,05,06,07)), Гг(Ы,Ь2,ЬЗ,Ь4,Ь5,Ь6,Ь7),ге1гас1(й-(Ы,Ь2,ЬЗ,Ь4,Ь5,Ь6,Ь7)),Гай.

% Проверка по гипотезе Н1

30. 81аП;(Н):- H="HГ',clearwindow,assertz(w(l)),anw(H,l).

31. anw(H,Nw):-nl,q(H,Nw,I,W),write(W),nl, \ш1е(" П:"),

сиг80г(У3,ХЗ), Х4=ХЗ-3,АеШ_аИг(У3,Х4,2,138), геаа1п(01),Ьо(01), поКё1^(01,_)),апо1(Н,Кш,1^,00. anw(H,Nw):- clearwindow,anw(H,Nw),!.

32. апо^Н^, п1 ,rst(H,Nw,Io,Ot,R,D,Nws),

аББеПг^зСН,К\¥,1Д¥,1о,01Д)), шгИе(Я), d(H,Nw,Ot,D), retract(w(Nw)),assert(w(Nws)),anw(H,Nws). апо1(Н^,1^,О1):^(Ык),О1<>,,ВО,,,ОК>,,Ь0',,О1<>,'ВКИ, 01<>"Ьп",с1еатй^о\¥,ут1е(" ВЫ ОШИБЛИСЬ !"), ДеМ_аиг(0,2,22,53), п1, anw(H,Nk),!. апо^Н,^,1^,01):- \у(Мк),Ьеер,01="В0";01="Ь0";

01="ВК" ;01="Ьп", anw(H ,№),!. апог(Н,К\¥,1/№,Ог):-!.

33. d("HГ,,5,"ES0PlR",l):- porsraw,!.

а(?,Н1 ",6,Ь, 1):-оЮЬг(Ь). d("H 1 ",7,Ь, 1):-оК>Ьг(Ь). d("Ш",8,"H2",l):-emenu,!. d("HГ,,Nw,Ot,D):-!.

% Шаблон фрейма конструктивной части

34. оЮЬг(Ь):- 6-(Ь,1т,Мр,Мсх^х^1х,С1р),

makewindow(30,63,174,"ФPEЙM",l,27,16,51), shiftwindow(30),

сиг8ог(0,10),\¥п1е("ИМЯ :"),АеМ_аПг(0,10,5,62), сиг80г(2,3),шп1е("СЛОТ ЗНАЧЕНИЕ"), Г1еМ_а«г(2,3,27,62),

сиг80г(4,1),дугие("Материнская плата"),йеМ_аиг(4,1,17,52), сигБог(5,1), write(" Микросхема") ,АеЫ_айг (5,1,10,52), сиг80г(6,1),\¥гйе("Входные контакты"),йеШ_аиг(6,1,16,52),

cursor(7,1) ,write(" Выходные контакты") ,field_attr(7,1,17,52), cursor(9,l),write(THnOTE3A :"),field_attr(9,1,17,62), cursor(0,17),write(Im), cursor(4,23),write(Mp), cursor(5,23), write(Mcx), cursor(6,23), write(Wx), cursor(7,23),write(Wix),cursor(9,13),write(Gip), readchar(_), shiftwindow(25),

shiftwindow(20) ,shiftwindow(21), shiftwindow(23) ,shiftwindow(22). % Определение неисправных операндов (поразрядное сравнение)

35. porsraw:-tlon_opl(_,Al,A2,A3,A4,A5,A6,A7,A8,_),

tf_opl(_,Al 1,А12,А13,А14,А15,А16,А17,А18,_), С1 = А1+А11 ,С2=А2+А12,СЗ=АЗ+А13,С4=А4+А14, С5=А5+А15,С6=А6+А16,С7=А7+А17,С8=А8+А18,

sraw(l ,С 1 ,С2,СЗ,С4,С5,С6,С7,С8).

36. sraw(l,С 1 ,С2,СЗ,С4,С5,С6,С7,С8):- Cl = l,asserta(sr(8)),

sraw(2,C 1 ,С2,СЗ,С4,С5,С6,С7,С8). sraw(l,Cl,C2,C3,C4,C5,C6,C7,C8):-

С1 <> 1 ,sraw(2,C 1 ,С2,СЗ,С4,С5,С6,С7,С8). sraw(2,C 1 ,С2,СЗ,С4,С5,С6,С7,С8):- С2= 1 ,asserta(sr(7)), sraw(3,C 1 ,С2,СЗ,С4,С5,С6,С7,С8). sraw(2,Cl,C2,C3,C4,C5,C6,C7,C8):-

С2<> 1 ,sraw(3,C 1 ,С2,СЗ,С4,С5,С6,С7,С8). sraw(3,C 1 ,С2,СЗ,С4,С5,С6,С7,С8):- С3= 1 ,asserta(sr(6)), sraw(4,C 1 ,С2,СЗ,С4,С5,С6,С7,С8). sraw(3,C 1 ,С2,СЗ,С4,С5,С6,С7,С8):-

С3<> 1 ,sraw(4,C 1 ,С2,СЗ,С4,С5,С6,С7,С8). sraw(4,C 1 ,С2,СЗ,С4,С5,С6,С7,С8):- С4= 1 ,asserta(sr(5)), sraw(5,Cl,C2,C3,C4,C5,C6,C7,C8). sraw(4,Cl,C2,C3,C4,C5,C6,C7,C8):-

С4<> 1 ,sraw(5,C 1 ,С2,СЗ,С4,С5,С6,С7,С8).

sraw(5,Cl,C2,C3,C4,C5,C6,C7,C8):- C5=l,asserta(sr(4)), sraw(6,C 1 ,C2,C3,C4,C5,C6,C7,C8). sraw(5,C 1 ,C2,C3,C4,C5,C6,C7,C8):-

C5<> 1, sraw(6,Cl ,C2,C3,C4,C5,C6,C7,C8). sraw(6,C 1 ,C2,C3,C4,C5,C6,C7,C8):- C6= 1 ,asserta(sr(3)), sraw(7,C 1 ,C2,C3,C4,C5,C6,C7,C8). sraw(6,C 1 ,C2,C3,C4,C5,C6,C7,C8):-

C6<> 1, sraw(7,C 1 ,C2,C3,C4,C5,C6,C7,C8). sraw(7,Cl,C2,C3,C4,C5,C6,C7,C8)> C7=l,asserta(sr(2)), sraw(8,Cl,C2,C3,C4,C5,C6,C7,C8). sraw(7,C 1 ,C2,C3,C4,C5,C6,C7,C8):-

C7<> 1, sraw(8,C 1 ,C2,C3,C4,C5,C6,C7,C8). sraw(8,C 1 ,C2,C3,C4,C5,C6,C7,C8):-

C8=l,asserta(sr(l)), sraw(l0,3,3,3,3,3,3,3,3). sraw(8,C 1 ,C2,C3,C4,C5,C6,C7,C8):- C8<>l,sraw(10,3,3,3,3,3,3,3,3). sraw( 10,3,3,3,3,3,3,3,3):- nl,shiftwindow(23),wiv. sraw(10,3,3,3,3,3,3,3,3):-nl,shiftwindow(22),!.

37. wiv:- sr(Nsp),nl,write(" ",Nsp," "),cursor(J,P),Pl=P-3,

fleld_attr(J,Pl ,4,138), nl, fail. wiv:-sr(Ud),retract(sr(Ud)),fail.

% Фрагмент базы фактов Теста 2. (Пример 5)

38. tlon_cop(5,"дизъюнкция",1,1,1,1,15).

39. tlon_op 1 (5,0,1,1,0,1,1,1,1,111).

40. tlon_op2(5,0,1,0,1,0,1,1,0,86).

41. tlon_r(5,0,1,1,1,1,1,1,1,127).

42. tf_cop(5,"дизъюнкция",1,1,1,1,15).

43. tf_op 1 (5,0,0,1,1,1,0,1,0,58).

44. tf_op2(5,0,1,0,1,0,1,1,0,86).

45. tf_r(5,0,l,l,l,l,l,l,0,126).

Приложение 5. Фрагмент программы модуля объяснений

Собственные предикаты фактов и правил пронумерованы. Приведен фрагмент программы для режима «Формирование комментария пути, пройденного экспертной системой». Приведен файл отчета, сформированный в результате работы данного режима по гипотезе Н1.

у**************** Режим В08 ***************************/

CLAUSES

% Вызов режима

1. per(Kod,P):- Kod=13,P=8,sush(9),

openwrite(tbd,"tbd9.txt"),

writedevice(tbd),

prosm,closeflle(tbd),

makewindow(31,30,47,"Комментарий пройденного пути.

(Выход - Esc)",0,0,25,80),

shiftwindow(31), file_str("tbd9.txt",T), display(T), removewindow, menu_pof(P),wibor(P). per(Kod,P):- Kod=13,P=8,!.

2. prosm:- spis(H,Nw,I,W,Io,Ot,R), form(H,Nw,I,W,Io,Ot,R), ni, fail, prosm.

3. form(H,Nw,I,W,Io,Ot,R):-1=0,

write(" Система задала вопрос : "),nl,

write(" ",W),nl,

write(" Вы ответили : ",Ot),nl,

lo>0,write(" По правилу N "До," система сделала вывод : "),nl, writef' ",R),nl,!.

Гогт(Н,К\¥,1,\¥До,СПД):-1=0,!. Гогт(Н,^Д^До,01Д)Я=-1До<15До>22,

\га1е(" Система потребовала от вас действия : "),п1,

шгйеО' ",Л¥),п1,

write(" Вы ответили : ",01),п1,

write(,, По правилу N "До," система сделала вывод : "),п1, \уп!е(" "Д),п1,!. form(H,Nw,I,W,Io,Ot,R):-I=-l До> 14До<23,

\уп1е(" Система потребовала от вас действия : "),п1,

write(" "Д¥),п1,

\уп1е(" Вы ответили : ",01),п1,

\¥п1е(" По правилу N "До," Система выдала на экран фрейм : "),п1, \упге(" "Д),п1,!. Рогт(Н^Д^До,ОгД):-1=-1,!. Гогт(Н^Д^До,01Д):-1=-2,

write(" Далее система сделала утверждение: ",\У),п1,

write(" "Д*0,п1,

\угйе(" Вы ответили : ",01;),п1,

1о>0,\угйе(" По правилу N "До," система сделала вывод : "),п1, шгИе(" "Д),п1,!. Гогш(Н,Мл¥,1^До,ОгД):-1=-2,!. Гогш(Н,МшД^До,01Д):-1>0,

write(" По правилу N "Д," система сделала вывод : "),п1,

write(" ",ЛД0,п1,

write(" Вы ответили: ",СК),п1,

1о>0,\уп1е(" По правилу N "До," система сделала вывод : "),п1, \уп1е(" "Д),п1,!. Гогт(Н^Д^До,ОгД):-1>0,!. Гогт(Н^Д^До,01Д).

/***** Файл отчета режима В08 на примере гипотезы HI ****/

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

Система задала вопрос: ЭС: Первый операнд совпадает

со своим эталоном ? Вы ответили : нет По правилу N 14 система сделала вывод : ЭС: [14] Неисправна аппаратная часть opl или деградировал эталон opl

Система задала вопрос: ЭС: Эталон opl правильный ? Вы ответили : нет По правилу N 62 система сделала вывод : ЭС: [62] Восстановить эталон opl

Система задала вопрос : ЭС: Эталон opl восстановлен ? Вы ответили : да По правилу N 66 система сделала вывод : ЭС: [66] Вызвать ЭС по имени ESOP1

для экспертизы аппаратной части opl Вы ответили: ESOP1

Система задала вопрос: ЭС: Первый операнд совпадает

со своим эталоном ? Вы ответили : нет По правилу N 14 система сделала вывод : ЭС: [14] Неисправна аппаратная часть ор1 или деградировал эталон ор1

Система задала вопрос: ЭС: Эталон ор1 правильный ? Вы ответили: да По правилу N 79 система сделала вывод : ЭС: [79] Неисправна аппаратная часть ор1.

Вызвать ЭС по имени ЕБОРЖ для экспертизы аппаратной части ор1. Вы ответили : Е80Р1Я

Система потребовала от вас действия : ЭС: Назовите имя неисправного разряда Вы ответили : 1 По правилу N 15 Система выдала на экран фрейм : ЭС: [15] фрейм первого разряда КХ}ОР1

Система потребовала от вас действия : ЭС: Назовите имя следующего неисправного разряда Вы ответили : 3 По правилу N 17 Система выдала на экран фрейм : ЭС: [17] фрейм третьего разряда 1ЮОР1

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