PDA-0571 (Разработка подсистемы вывода в диагностической экспертной системе), страница 2
Описание файла
Документ из архива "Разработка подсистемы вывода в диагностической экспертной системе", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "PDA-0571"
Текст 2 страницы из документа "PDA-0571"
Эти идеи и ложатся в основу технологических решений при конструировании оболочки.
-
НЕДООПРЕДЕЛЕННЫЕ МОДЕЛИ
Характерными особенностями знаний о сложных фрагментах действительности являются их неполнота, неоднозначность, отсутствие точности – свойства, которые существенно затрудняют (а иногда и делают невозможным) поиск адекватного решения задачи [4]. Любую модель надо строить с учетом принципиальной неполноты и принципиальной возможности ошибок и противоречий в написании задачи. Эти и другие так называемые НЕ-факторы отражают то обстоятельство, что в реальном мире существуют в основном объекты, которым присущи все эти свойства или хотя бы одно из них.
К настоящему времени наибольшее развитие получил НЕ-фактор, который известен, как недоопределенность конкретных знаний. Недоопределенность связана с неполнотой доступной в данный момент информации о моделируемом фрагменте реальности. Эта неполнота касается в первую очередь значений величин объектов (например, около двух часов – о времени), но может присутствовать и в случае неполноты информации о типах объектов (то ли окружность, то ли эллипс) и о существующих отношениях между объектами (то ли раньше, то ли позже).
Мы назовем значение переменной неопределенным, если о нем известно лишь то, что оно равно одному из элементов множества потенциальных значений. Значение считается определенным, если однозначно известен тот элемент множества потенциальных значений, которому оно равно.
Типичным состоянием изучаемого объекта целесообразно считать недоопределенность: бесспорный факт принадлежности его значения какому-то нетривиальному подмножеству области определения. При этом потенциальное совпадение с тем или иным элементом этого множества считается равновероятным.
Рассмотрим модель, которую будем называть обобщенной вычислительной моделью (ОВМ): M = (X,W,C,R),
Где множества X и R имеют такую же семантику, как и в обычных вычислительных моделях, W – множество функций присваивания, а C – множество функций проверки корректности. Функция присваивания определяет способ записи очередного значения в объект xX, а функция проверки корректности осуществляет контроль за правильностью вычисленных значений объекта x.
Пусть x – переменная с областью определения X. Обозначим через *X множество всех подмножеств X, без пустого. Элемент d*X, который содержит только одно значение из X, называется определенным. Все остальные элементы называются недоопределенными. Значение *x, соответствующее всему множеству X, будем называть полной неопределенностью.
ОВМ, в которой хотя бы один объект представлен недоопределенным типом данных, называется недоопределенной моделью (н-моделью) [5]. Рассмотрим систему из двух линейных уравнений с двумя целочисленными переменными:
x + y = 12
2*x = y
Для предоставления целых констант данной системы (2 и 12) естественно воспользоваться предопределенным типом integer. Если переменным x и y также сопоставить тип integer, то получим традиционную модель. Найти решение в данном случае можно, только применяя любой из методов решения систем линейных уравнений. Если же для представления переменных x и y воспользоваться недоопределенным типом (например, nint), то система уравнений становится н-моделью. Далее покажем внутреннее представление такой н-модели и алгоритм ее решения.
Множество Х содержит все объекты данной н-модели:
Х = {x,y:nint; 12,2:integer}.
Так как множество Х содержит две переменные и две неизменяющиеся константы, множество функций присваивания (W) и множество функций порверки корректности (С) содержат по два элемента:
W = { PRint(x), PRint(y) } PRint – имя функции присваивания.
C = { PRDint(x)< PRDint(y) } PRDint – имя функции проверки корректности.
Множество отношений (R) для данной системы уравнений содержит два отношения (plus и umn), связывающие между собой переменные типов nint и integer (здесь мы игнорируем дополнительные переменные, которые, возможно, появились бы в результате компиляции исходных уравнений):
R = { plus(12,x,y); umn(y,2,x) }.
Множество функций интерпретации отношений из R можно представить следующим образом (в комментариях приведены описания функций в обычной записи):
Plus: minus 3 #y, 12, *x; (*y:=12-x*) (1)
minus 3 #x, 12, *y; (*x:=12-y*) (2)
umn: umn 3 #y, x, 2; (*y:=x*2* ) (3)
del 3 #x, y, 2; (*x:=y/2* ) (4)
Напомним, что арифметические операции реализованы в соответствии с правилами интервальной математики.
Технология недоопределенных вычислительных моделей позволяет обрабатывать неточные значения.
-
ПОСТАНОВКА ЗАДАЧИ
В задачу данной дипломной работы входит разработка машины вывода диагностической экспертной системы. Особенностью разрабатываемой машины вывода является ее способность работать с неточными и нечеткими входными данными. При этом машина вывода будет использовать экспертные знания, также допускающие элементы нечеткости и неточности.
-
ФОРМУЛИРОВКА В ПОЛЬЗОВАТЕЛЬСКИХ ТЕРМИНАХ
Необходимо было разработать систему медицинской диагностики, которая позволяла бы на основе неполных данных ставить диагноз с некоторой точностью, и выдавать, насколько точно она определила болезнь.
-
ВХОДНЫЕ ДАННЫЕ
Входными данными моей части программы являются:
-
Ответы пользователя на вопросы системы.
-
База данных с описаниями симптомов
-
База данных с описанием болезней
-
Таблица соответствий между болезнями и симптомами
-
Таблица «весов» (вероятностей) симптомов для болезней
-
База данных с данными о пациентах.
Иначе говоря, входные данные можно разбить на два больших блока:
-
Данные, поступающие из пользовательского интерфейса (см. введение)
Сюда также входит и база данных о пациентах (их «больничные карточки»)
-
Содержимое базы знаний, заполненной экспертом. База знаний хранится на жестком диске в виде четырех файлов; ее структура описана подробно в разделе 4.
-
ВЫХОДНЫЕ ДАННЫЕ
Выходными данными программы является диагноз, построенный на основе наблюдаемых симптомов и базы знаний о болезнях. Этот диагноз выдается на экран в качестве окончательного ответа экспертной системы пользователю. Кроме того, информация об обнаруженной болезни и наблюдаемых симптомах заносится в карточку пациента.
В процессе работы система генерирует несколько рабочих версий окончательного диагноза, и в конце происходит «отсеивание» лишних гипотез, которые имеют вес, меньший, чем некоторое значение, заранее заданное системным программистом.
Например, в процессе работы сформировалось 5 версий с вероятностями от 67 до 98 %. Порог уверенности, заданный системным программистом – 75%. Тогда система выдаст все версии, вероятности которых больше 75%. Например, их 3.
Болезнь 1 – 94%
Болезнь 2 – 93%
Болезнь 3 – 87%
Болезнь 4 – 51%
Болезнь 5 – 67%
Система «отсеет» остальные болезни, кроме этих трех, и выдаст эти три в порядке убывания их вероятностей:
У вас, скорее всего, Болезнь 1. Вероятность – 94%
Вероятность Болезни 2 – 93%
Вероятность Болезни 3 – 87%
Также следует упомянуть, что система ведет регистрацию больных, их болезней, и ведет статистику заболеваний:
-
Какая болезнь встречается чаще вообще,
-
Какая болезнь встречается чаще всего, например, в летний период,
-
В каком возрасте люди чаще обращаются к врачу,
-
Люди какого пола чаще обращаются к врачу,
-
И тому подобное.
-
СПЕЦИАЛЬНЫЕ ТРЕБОВАНИЯ
-
Программные требования
-
Операционная система Windows 95/98, NT
-
BDE (Borland Database Engine)
-
Аппаратные требования
-
Компьютер IBM PC, или совместимые 486 и выше
-
Манипулятор «Мышь»
-
Свободное дисковое пространство не менее 3 Мб.
-
SVGA Монитор
-
Требования к квалификации пользователя
-
Для установки Borland DBE и правильной калибровки программного средства желательно присутствие системного программиста.
-
Для заполнения базы знаний необходимо присутствие эксперта, осуществляющего интеллектуальное заполнение базы знаний.
-
МЕТОДЫ И АЛГОРИТМЫ РЕШЕНИЯ ЗАДАЧИ
-
МЕТОДЫ И ОПРЕДЕЛЕНИЯ
База знаний – Совокупность трех реляционных баз данных в формате Paradox 7.0:
-
База данных с описаниями болезней.
-
База данных с описаниями симптомов.
-
Таблица соответствий симптомов и болезней.
-
Таблица весов симптомов для болезней.
Вес – Вероятность той или иной болезни в процентах.
Недоопределенная спецификация – Набор данных, на основе которого невозможно принять окончательное решение.
Фактор уверенности – Фактор уверенности демонстрирует степень уверенности системы в достоверности сделанных ею логических заключений.
Порог уверенности – число, заранее определенное пользователем, означающее максимальный вес болезни в данном случае, ниже которого гипотезы просто не рассматриваются.
-
СТРУКТУРЫ ДАННЫХ
Структуры данных данного программного средства – 4 таблицы формата Paradox 7.0 (работу с этими таблицами обеспечивает DBE и DBD, которые как раз поставляются в комплект с Borland Delphi с целью «безпроблемной» работы с базами данных практически любого формата).
Таблица клиентов
№ П. П. | Наименование поля | Тип | Длина | Краткое описание |
1. | Num_kard | Numeric | Номер карточки | |
2. | Name | Character | 10 | Имя |
3. | Last_name | Character | 15 | Фамилия |
4. | Otchestvo | Character | 15 | Отчество |
5. | Fotokard | Character | 12 | Файл фотокарточки |
6. | Sex | Logic | 1 | Пол |
7. | Date_bd | Date | Дата рождения | |
8. | Date_create | Date | Дата регистрации | |
9. | Date_change | Date | Дата последнего обследования |
Что касается пункта 5. (fotokard), то для этого специально был разработан модуль для работы со сканером, чтобы можно было ввести фотокарточку пациента в его медицинскую карту.
Таблица Болезней
№ П. П. | Наименование поля | Тип | Длина | Краткое описание |
1. | Num | Numeric | Идентификационный номер болезни | |
2. | Name | Character | 15 | Наименование болезни |
3. | File_name | Character | 12 | Имя файла с рекомендация-ми |
4. | Work | Numeric | Поле используется для внутренних нужд |
Таблица симптомов
№ П. П. | Наименование поля | Тип | Длина | Краткое описание |
1. | Num | Numeric | Идентификационный номер | |
2. | Name_s | Character | 15 | Наименование симптома |
3. | File_name | Character | 12 | Имя файла с реккомендациями |
4. | Work | Numeric | Поле используется для внутренних нужд |
Таблица соответствий
S[1] | … | S[max] | |
N[1] | |||
… | Numeric | ||
N[max] |
Все значения таблицы – numeric. Число в пересечении колонок есть «указатель» на ту болезнь, на которую указывает определенный симптом, либо на тот симптом, на который указывает определенная болезнь.
Таблица весов
S[1] | … | S[max] | |
B[1] | |||
… | Numeric | ||
B[max] |
Таблица размером [Кол-во болезней]х[Кол-во симптомов]. Число в пересечении колонок – Вес данного симптома для данной болезни.
-
АЛГОРИТМ РЕШЕНИЯ ЗАДАЧИ
Работа программы начинается с функции инициализации, которая ответственна за присвоение данным начального значения. После чего управление получает процедура “Главного меню”. Далее, в зависимости от действий пользователя, происходит вызов одной из нижеперечисленных процедур:
-
Работа с базами знаний;
-
Работа с базой пациентов;
-
Непосредственный запуск экспертной системы;
-
Настройки;
-
Контекстно-зависимая справочная система.
В мою часть входила обработка следующих пунктов:
-
Работа с текущей базой знаний:
-
Считывание данных из файлов на диске.
-
Использование имеющейся там информации согласно нижеприведенному описанию.
-
Обработка поступающей информации.
-
Принятие решения и выдача окончательного результата.
На каждом шаге алгоритма у системы есть откат, т.е. у пользователя есть возможность, если он что-то забыл, вернуться в предыдущее состояние системы, нажав кнопку «Назад». Если же ему захочется все начать сначала, то, нажав кнопку «Отмена», система вернется в первоначальное состояние.