PDA-0571 (Разработка подсистемы вывода в диагностической экспертной системе), страница 3

2016-07-31СтудИзба

Описание файла

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

Онлайн просмотр документа "PDA-0571"

Текст 3 страницы из документа "PDA-0571"

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

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

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

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

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

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

  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. СПЕЦИАЛЬНЫЙ ИНСТРУМЕНТАРИЙ

Для разработки данной программы была выбрана программная среда Borland Delphi 4.0. Для создания баз данных была использована разработка фирмы Borland - DBD (Database Desktop).

Среда Borland Delphi была выбрана не случайным образом:

  • Было решено, что разрабатываемая система, в отличие от ее предшественника, системы Di-Gen, будет функционировать в операционных системах Windows 95/98 или NT, имеющих наиболее широкое распространение.

  • Кроме того, Borland Delphi предоставляет достаточно высокий уровень для создания стандартного пользовательского интерфейса в операционной системе Windows.

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

  1. СХЕМА ФУНКЦИОНИРОВАНИЯ ПРОГРАММНОГО СРЕДСТВА

5.1. МОДЕЛЬ ИНТЕРФЕЙСА

5.2. СВЯЗЬ КОМПОНЕНТ ВО ВРЕМЯ РЕШЕНИЯ ЗАДАЧИ (ОБЩАЯ СХЕМА)

  1. ОПИСАНИЕ ПРОГРАММЫ

Если процедуре, либо функции в качестве параметра передается Sender типа TObject, то он не является входным параметром функции, так как он является стандартным параметром, сгенерированным языком Delphi. Входные же параметры большей частью берутся из глобальных переменных, либо из полей баз данных.

Function Belongs(Value : Integer) : Boolean;

Входные данные: Симптом; Поле базы болезней

Выходные данные: Существует или нет данный симптом у данной болезни.

Procedure Find_Pred_Bol;

Входные данные: База симптомов; База болезней

Выходные данные: Предварительный список болезней

Procedure TForm2.BitBtn1Click(Sender: TObject);

Входные данные: Номер предыдущего процесса; Состояние полей входного процесса

Выходные данные: Номер следующего процесса

Procedure TForm2.BitBtn2Click(Sender: TObject);

Входные данные: Номер текущего процесса

Выходные данные: Номер следующего процесса

Procedure TForm2.FormActivate(Sender: TObject);

Входные данные: Идентификатор первого запуска

Выходные данные: Инициализация некоторых параметров

Procedure TForm2.N12Click(Sender: TObject);

Входные данные: -

Выходные данные: Сброс ЭС и приведение ее в «стартовое положение»

Procedure TForm2.Timer1Timer(Sender: TObject);

Входные данные: Заполненные поля форм

Выходные данные: Разрешение/запрещение на выполнение следующего процесса

  1. ОТЛАДКА И ТЕСТИРОВАНИЕ ПРОГРАММНОГО СРЕДСТВА

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

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

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

Пример (Выдержка из книги [7]):

Корь – острое вирусное заболевание. Начинается остро, с подъема температуры до 39-40 С, головной боли, недомогания, насморка, кашля, слезотечения, светобоязни. На 2-3 день на слизистой оболочке щек, десен появляются пятна Филатова – Коплика, напоминающие рассыпанную манную крупу. Затем появляется полиморфная сыпь,

проходящая период пигментации и отрубевидного шелушения.

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

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

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

  1. РУКОВОДСТВО ПО ЭУСПЛУАТАЦИИ ПРОГРАММНОГО СРЕДСТВА

8.1. РУКОВОДСТВО СИСТЕМНОГО ПРОГРАММИСТА

Для корректной работы системы ее необходимо правильно установить (и конфигурировать). Установка производится в несколько этапов:

  1. Проверить наличие установленного Borland DBE.

  2. Если он отсутствует, то при установке одного из следующих продуктов фирмы Borland:

  • Delphi

  • Power Builder

  • C++ версии 4.0 и выше

необходимо отметить галочкой пункт установки DBE.

  1. Скопировать поставляемые файлы в любую директорию по желанию.

  2. Отредактировать файл config.cfg:

Первая строка – полный путь до файлов баз данных. По умолчанию – диск:\каталог\BASE.

Вторая строка – полный путь до файлов картинок (фотографий). По умолчанию – диск:\каталог\image

Третья строка – полный путь до файлов текстов (рекомендаций по излечению болезней и сбору дополнительной информации). По умолчанию – диск:\каталог\TXT.

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



    1. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

  1. Запустите программу odesa.exe. Если не знаете, как ее запустить, то обратитесь к системному программисту с просьбой создать для нее ярлык на рабочем столе Windows. После появления окна «About» следует нажать кнопку «продолжить».

После этого перед вами появится основная форма:

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

  2. В случае, если вы затрудняетесь, то в любом месте программы можно вызвать контекстно-зависимую справку.

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

Нажатие кнопки можно осуществить следующими способами:

  • При помощи манипулятора «мышь» установите курсор на нужную кнопку и нажмите левую клавишу «мыши».

  • При помощи клавиш управления курсором или клавиши «TAB» установите фокус на нужную кнопку (при этом она будет обведена жирной черной рамкой) и нажмите клавишу «Enter».

  • Если на нужной кнопке имеется подчеркнутый символ, то осуществить нажатие этой кнопки можно с помощью удерживания клавиши «Alt» и нажатия соответствующего символа.

Вызов соответствующего пункта меню:

  • При помощи манипулятора «мышь» установите курсор на нужный пункт меню и нажмите левую клавишу «мыши».

  • Нажмите клавишу «F10». При этом у вас выделится первый пункт меню. При помощи клавиш управления курсором или клавиши «TAB» установите фокус на нужный пункт меню (при этом она будет обведена жирной черной рамкой) и нажмите клавишу «Enter».

  • Если на нужном пункте меню имеется подчеркнутый символ, то осуществить нажатие этой кнопки можно с помощью удерживания клавиши «Alt» и нажатия соответствующего символа.

  • Напротив некоторых команд меню стоят комбинации управляющих клавиш, за счет которых вы можете вызвать тот или иной пункт. Например, «Ctrl+O».

Вызов всплывающего меню:

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

ЗАКЛЮЧЕНИЕ

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

Была выполнена следующая работа:

  • Создана машина вывода диагностической экспертной системы.

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

  • Выполнено несколько пробных запусков программы на основе базы знаний величиной в 7 болезней и 15 симптомов.

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

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

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5173
Авторов
на СтудИзбе
437
Средний доход
с одного платного файла
Обучение Подробнее