Дипломный проект




Скачать 374.44 Kb.
НазваниеДипломный проект
страница2/3
Дата публикации13.11.2013
Размер374.44 Kb.
ТипДиплом
litcey.ru > Информатика > Диплом
1   2   3

^ ПОСТАНОВКА ЗАДАЧИ


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


    1. ^ ФОРМУЛИРОВКА В ПОЛЬЗОВАТЕЛЬСКИХ ТЕРМИНАХ


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


    1. ^ ВХОДНЫЕ ДАННЫЕ


Входными данными моей части программы являются:

  • Ответы пользователя на вопросы системы.

  • База данных с описаниями симптомов

  • База данных с описанием болезней

  • Таблица соответствий между болезнями и симптомами

  • Таблица «весов» (вероятностей) симптомов для болезней

  • База данных с данными о пациентах.

Иначе говоря, входные данные можно разбить на два больших блока:

  • Данные, поступающие из пользовательского интерфейса (см. введение)

Сюда также входит и база данных о пациентах (их «больничные карточки»)

  • Содержимое базы знаний, заполненной экспертом. База знаний хранится на жестком диске в виде четырех файлов; ее структура описана подробно в разделе 4.




    1. ^ ВЫХОДНЫЕ ДАННЫЕ


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

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

Например, в процессе работы сформировалось 5 версий с вероятностями от 67 до 98 %. Порог уверенности, заданный системным программистом – 75%. Тогда система выдаст все версии, вероятности которых больше 75%. Например, их 3.

Болезнь 1 – 94%

Болезнь 2 – 93%

Болезнь 3 – 87%

Болезнь 4 – 51%

Болезнь 5 – 67%

Система «отсеет» остальные болезни, кроме этих трех, и выдаст эти три в порядке убывания их вероятностей:

^ У вас, скорее всего, Болезнь 1. Вероятность – 94%

Вероятность Болезни 2 – 93%

Вероятность Болезни 3 – 87%

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

  • Какая болезнь встречается чаще вообще,

  • Какая болезнь встречается чаще всего, например, в летний период,

  • В каком возрасте люди чаще обращаются к врачу,

  • Люди какого пола чаще обращаются к врачу,

  • И тому подобное.




    1. ^ СПЕЦИАЛЬНЫЕ ТРЕБОВАНИЯ




      1. Программные требования

  • Операционная система Windows 95/98, NT

  • BDE (Borland Database Engine)




      1. Аппаратные требования

  • Компьютер IBM PC, или совместимые 486 и выше

  • Манипулятор «Мышь»

  • Свободное дисковое пространство не менее 3 Мб.

  • SVGA Монитор




      1. Требования к квалификации пользователя

  • Для установки Borland DBE и правильной калибровки программного средства желательно присутствие системного программиста.

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



  1. ^ МЕТОДЫ И АЛГОРИТМЫ РЕШЕНИЯ ЗАДАЧИ




    1. МЕТОДЫ И ОПРЕДЕЛЕНИЯ


База знаний – Совокупность трех реляционных баз данных в формате Paradox 7.0:

  • База данных с описаниями болезней.

  • База данных с описаниями симптомов.

  • Таблица соответствий симптомов и болезней.

  • Таблица весов симптомов для болезней.

Вес – Вероятность той или иной болезни в процентах.

Недоопределенная спецификация – Набор данных, на основе которого невозможно принять окончательное решение.

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

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


    1. ^ СТРУКТУРЫ ДАННЫХ

Структуры данных данного программного средства – 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]










Таблица размером [Кол-во болезней]х[Кол-во симптомов]. Число в пересечении колонок – Вес данного симптома для данной болезни.


    1. ^ АЛГОРИТМ РЕШЕНИЯ ЗАДАЧИ


Работа программы начинается с функции инициализации, которая ответственна за присвоение данным начального значения. После чего управление получает процедура “Главного меню”. Далее, в зависимости от действий пользователя, происходит вызов одной из нижеперечисленных процедур:

  1. Работа с базами знаний;

  2. Работа с базой пациентов;

  3. Непосредственный запуск экспертной системы;

  4. Настройки;

  5. Контекстно-зависимая справочная система.


В мою часть входила обработка следующих пунктов:

  1. Работа с текущей базой знаний:

  • Считывание данных из файлов на диске.

  • Использование имеющейся там информации согласно нижеприведенному описанию.

  1. Обработка поступающей информации.

  2. Принятие решения и выдача окончательного результата.


На каждом шаге алгоритма у системы есть откат, т.е. у пользователя есть возможность, если он что-то забыл, вернуться в предыдущее состояние системы, нажав кнопку «Назад». Если же ему захочется все начать сначала, то, нажав кнопку «Отмена», система вернется в первоначальное состояние.

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

  • ^ Сбор предварительной информации.

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


  • ^ Составление первоначального списка болезней, к которым подходит данный набор симптомов.

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

Алгоритм определения первоначального списка болезней:

  1. Открываем таблицу соответствий

  2. Для всех k=1 до максимального числа симптомов:

  3. Берем k-тый симптом из первоначального списка;

  4. Смотрим в таблицу соответствий: простым циклом делаем полный перебор всех элементов (болезней), стоящих в столбце данного симптома;

  5. Делаем проверку:

5.1) Если данная болезнь уже имеется в списке, то переходим к п.6;

5.2) Если элемент таблицы =0, то болезнь в список не включаем;

  1. Увеличиваем k на 1;

  2. Если все симптомы (k) перебраны, то первоначальный список болезней сформирован;

  3. Закрываем таблицу соответствий.


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


  • ^ Уточнение информации.

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

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

В процессе уточнения информации система, задавая пользователю вопросы, проводит «отсеивание» лишних гипотез, имеющих малый вес. Для просчета веса гипотез система открывает данные из файла на диске, а именно таблицу весов. Таблица весов размером [Кол-во болезней] на [Кол-во симптомов] имеет в пересечении клеток число, равное весу данного симптома для данной болезни; порог уверенности заранее задается в настройках.


  • ^ Рекомендации и сбор дополнительной информации.

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


  • ^ Принятие окончательного решения.

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

Вероятности болезней также считаются по таблице весов.
^ Алгоритм подсчитывания веса:

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

  • Система просматривает, какие симптомы из списка симптомов имеют отношение к данной болезни.

  • Происходит суммирование весов всех симптомов, имеющих отношение к данной болезни (опять же по таблице весов).

  • Запоминание конечного веса болезни.

После подсчета весов всех болезней выбирается болезнь, имеющая максимальный вес, и происходит нормировка весов болезней (чтобы они были в пределах от 1 до 100)

Далее система выбирает те болезни, вероятности которых находятся в некоторых рамках, заранее определенных системным программистом (так называемый “порог уверенности”). Значение порога уверенности можно задать в настройках программы.

Формула для подсчета веса болезни: ves_b(j) = [tab_ves(ves(i,j))]*k(i)

То есть, для конечного подсчета вероятности не применяется умножение веса на коэффициенты, а идет суммирование всех элементов таблицы весов (tab_ves(ves(i,j)) имеющих отношение к болезни. Далее происходит нормировка всех конечных вероятностей с целью “укладывания” их в промежуток от 1..100. (Чтобы окончательный ответ измерялся в процентах). k(i) – коэффициент присутствия симптома (равен либо «0», либо «1»).

Пример:




Голова болит

Провалы памяти

Частые припадки

В ухе стреляет

Челюсть сводит

Внутриче-репное давление

Склероз

10

106

64

55

20

43


Например, в процессе работы были выбраны симптомы 2,4 и 6. Система будет суммировать вес:

Ves_b("склероз")=10*0+106*1+64*0+55*1+20*0+43*1=204. Далее:

  • У всех болезней таким образом будет вычислен вес.

  • Выберется максимальный вес болезни из списка болезней.

J=-1; // отрицательное значение для начала.

For i=1 to 15 do

( if j>max(ves_b(i)) // если j больше максимального значения,

j=max(ves_b(i)); // то j=max.

  • Допустим, максимальный вес = 300.

  • Веса всех болезней разделятся на 300 (нормируются), чтобы быть в пределах от 0 до 1.

  • Таким образом, вес болезни “склероз” = 204/300=0.68 (т.е. 68%). Это и есть конечный итог.




  • Выдача конечного результата.

Система выдает те болезни, которые были выбраны в предыдущем пункте в порядке процентного убывания, на экран.

Пример:

У вас, скорее всего, Склероз. Вероятность – 94%

Вероятность физического повреждения мозга – 93%

Вероятность простой потери памяти – 87%

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

1   2   3

Похожие:

Дипломный проект iconДипломный проект должен быть сдан на кафедру 01. 06. 2011
К защите допускаются студенты, полностью завершившие дипломный проект, подписанный руководителем, консультантом, утвержденный заведующим...
Дипломный проект iconДипломный проект «Проект городской сети передачи данных с гарантированной...
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Дипломный проект iconОтзыв на дипломный проект студента (ки) Российского университета...

Дипломный проект iconОтчет по практике №4 преддипломная тема «Техническое задание на дипломный проект»
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Дипломный проект iconНа дипломный проект студента 5 курса инженерно-физического факультета
«расчет средней электрической импульсной мощности», размещенной на сайте Научно-технической библиотеки
Дипломный проект iconДипломный проект
Материалы данного файла могут быть использованы без ограничений для написания собственных работ с целью последующей сдачи в учебных...
Дипломный проект iconДипломный проект
Материалы данного файла могут быть использованы без ограничений для написания собственных работ с целью последующей сдачи в учебных...
Дипломный проект iconДипломный проект
Материалы данного файла могут быть использованы без ограничений для написания собственных работ с целью последующей сдачи в учебных...
Дипломный проект iconДипломный проект
Материалы данного файла могут быть использованы без ограничений для написания собственных работ с целью последующей сдачи в учебных...
Дипломный проект iconДипломный проект
Материалы данного файла могут быть использованы без ограничений для написания собственных работ с целью последующей сдачи в учебных...
Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
litcey.ru
Главная страница