Смекни!
smekni.com

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

АННОТАЦИЯ


дипломнойработы

студента541-й группы II курсатехническогофакультетаВКИ НГУ

ДобрынинаРомана Валентиновича.


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


Темапроекта – «Разработкаподсистемывывода в диагностическойэкспертнойсистеме». Даннаядипломнаяработа былавыполнена накафедре системинформатикив лабораторииискусственногоинтеллектаИнститутаСистем ИнформатикиСибирскогоОтделенияРоссийскойАкадемии Наук.(ИСИ СО РАН). Научныйруководитель– Попов ИванГеннадьевич.Работа выполняласьс 1 сентября1998 года по 30 мая1999 года. Тип работы– инженерная;является плановойразработкойинститута.

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

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

Даннаяже системааналогичнапредыдущимэкспертнымсистемам типа«Di-Gen»-а,но более современная,с эргономичныммногоуровневыминтерфейсоми разработанапод операционнуюсистему Windows95/98.

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


ОТЗЫВ


надипломнуюработу

студентаII курса техническогофакультетаВКИ НГУ

ДобрынинаРомана Валентиновича.


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


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

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

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

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

Учитываявышесказанное,считаю, чторабота заслуживаетоценки "хорошо".


Научныйруководитель:

м.н.с.РосНИИ ИИ/ПоповИ.Г./



ГОСУДАРСТВЕННЫЙКОМИТЕТ РОССИЙСКОЙФЕДЕРАЦИИ ПОВЫСШЕМУ ОБРАЗОВАНИЮ


НОВОСИБИРСКИЙОРДЕНА ТРУДОВОГОКРАСНОГО ЗНАМЕНИ

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ


ВЫСШИЙКОЛЛЕДЖ ИНФОРМАТИКИ

ТЕХНИЧЕСКИЙФАКУЛЬТЕТ

КАФЕДРАСИСТЕМ ИНФОРМАТИКИ


РАЗРАБОТКАПОДСИСТЕМЫВЫВОДА В ДИАГНОСТИЧЕСКОЙЭКСПЕРТНОЙСИСТЕМЕ


ДИПЛОМНЫЙПРОЕКТ

Пояснительнаязаписка

Листов23


Студент ДобрынинРоман Валентинович

" " _______ 1999г


Научныйруководитель ПоповИван Геннадьевич,

м.н.с.ИСИ СО РАН " " _______1999г


Новосибирск

1999


СОДЕРЖАНИЕ


19992

ВВЕДЕНИЕ2

ОПИСАНИЕПРЕДМЕТНОЙОБЛАСТИ3

ЭКСПЕРТНЫЕСИСТЕМЫ, ИХНАЗНАЧЕНИЕИ СТРУКТУРА4

ЗАДАЧИДИАГНОСТИКИ4

ПРОЦЕССПРИОБРЕТЕНИЯЗНАНИЙ5

МАШИНАВЫВОДА 6

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

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

ВХОДНЫЕДАННЫЕ9

ВЫХОДНЫЕДАННЫЕ9

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

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

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

СТРУКТУРЫДАННЫХ11

Структурыданных данногопрограммногосредства – 4таблицы форматаParadox 7.0 (работу сэтими таблицамиобеспечиваетDBE и DBD, которыекак раз поставляютсяв комплект сBorland Delphi с целью«безпроблемной»работы с базамиданных практическилюбого формата).11

Таблицаклиентов11

Таблицасимптомов12

Таблицасоответствий12

Таблицавесов12

АЛГОРИТМРЕШЕНИЯ ЗАДАЧИ12

СПЕЦИАЛЬНЫЙИНСТРУМЕНТАРИЙ15

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

ОПИСАНИЕПРОГРАММЫ18

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

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

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

ЗАКЛЮЧЕНИЕ22

ЛИТЕРАТУРА23


ВВЕДЕНИЕ


Тема проекта– «Разработкаподсистемывывода в диагностическойэкспертнойсистеме». Даннаядипломнаяработа былавыполнена накафедре системинформатикив лабораторииискусственногоинтеллекта,ИнститутаСистем ИнформатикиСибирскогоОтделенияРоссийскойАкадемии Наук.(ИСИ СО РАН). Научныйруководитель– Попов ИванГеннадьевич.Работа выполняласьс 1 сентября1998 года по 30 мая1999 года. Тип работы– инженерная;является плановойразработкойинститута.

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

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

Разработкаданного дипломногопроекта подразумеваетвыполнениеследующихработ:

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

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

  • Программнаяреализациямашины выводадиагностическойэкспертнойсистемы

  • Созданиемодуля дляобработкивходных данных,

как с клавиатуры,так и из файловна диске.


ОПИСАНИЕПРЕДМЕТНОЙОБЛАСТИ


Данная дипломнаяработа разрабатываласьв лабораторииискусственногоинтеллекта.Рынок современныхдиагностическихсистем не сильно«балует»пользователейновыми поступлениями[1]. Поэтомумы решили написатьпрограмму,аналогичнуюуже имеющимся,выпущеннымв 1990-1994 гг, но болеесовременную,с эргономичныммногоуровневымпользовательскиминтерфейсом,под Операционнуюсистему Windows 95/98.

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

Данная работавыполняласьв среде Borland Delphi 4,объектно-ориентированнойсреде программирования.


ЭКСПЕРТНЫЕСИСТЕМЫ, ИХНАЗНАЧЕНИЕИ СТРУКТУРА


По определениюКомитета поЭкспертнымСистемам БританскогоКомпьютерногоОбщества, подэкспертнойсистемой понимается« воплощениев ЭВМ компонентаопыта эксперта,основанногона знании, втакой форме,что машинаможет датьинтеллектуальныйсовет или принятьинтеллектуальноерешение относительнообрабатываемойфункции». Желательнаядополнительнаяхарактеристика(которую многиесчитают главной)- способностьсистемы потребованиюобъяснить ходсвоих рассужденийпонятным дляспрашивающегообразом [2].

Предметомтеории экспертныхсистем служатметоды и приемыконструированиясистем, компетентныхв некоторойузкоспециальнойобласти. Этакомпетентностьсостоит иззнания конкретнойобласти, пониманиязадач из этойобласти и изумения решатьнекоторые такиезадачи. Знания,относящиесяк любой специальности,обычно существуютв двух видах:общедоступныеи индивидуальные.Общедоступные знания - этофакты, определенияи теории, которыеобычно изложеныв учебникахи справочникахпо данной области.Но, как правило,компетентностьозначает нечтобольшее, чемвладение такимиобщедоступными сведениями.Специалистыв большинствеслучаев обладаютещё и индивидуальнымизнаниями, которыеотсутствуютв опубликованнойлитературе.Эти личныезнания в значительнойстепени состоятиз эмпирическихправил - эвристик,которые позволяютэкспертам принеобходимостивыдвигатьразумныепредположения,находитьперспективныеподходы к задачами эффективноработать призашумленныхили неполныхданных. Центральнойзадачей припостроенииэкспертныхсистем являетсявыявление ивоспроизведениетаких знаний.

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

  • Базазнаний содержитфакты, правилаи эвристики,представляющиеэкспертныезнания о предметнойобласти.

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

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


ЗАДАЧИДИАГНОСТИКИ


Одной изтипичных задачэкспертнойсистемы являетсязадача диагностики[3].

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

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

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

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

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


ПРОЦЕССПРИОБРЕТЕНИЯЗНАНИЙ


Приобретениезнаний - этопроцесс передачии преобразованияопыта по решениюзадач от некоторогоисточниказнаний в программу.

Процесссозданиядиагностическойэкспертнойсистемы можноразделить наследующиеэтапы:

  • Настройкаоболочки наконкретнуюпроблемнуюобласть, т.е.инженер знанийсовместно сэкспертомописываетосновные термины,понятия; формируетиерархию понятий (типа общее - частное); определяетструктуруосновных фреймов,области значенияслотов, наследованиесвойств.

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


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

МАШИНАВЫВОДА


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


Методырассуждений.

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

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

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


Управлениедостоверностью.

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

Неточностьв ЭС может возникатьследующимобразом:

  1. Ненадежныйисточник информации

  2. Несогласованностьэкспертов

  3. Противоречиваяинформация.


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

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

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

Так же, следуетобратить вниманиена ситуацию,когда пользовательв ответ на вопросотвечает неизвестно.

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

Эти идеи иложатся в основутехнологическихрешений приконструированииоболочки.


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

Характернымиособенностямизнаний о сложныхфрагментахдействительностиявляются ихнеполнота,неоднозначность,отсутствиеточности –свойства, которыесущественнозатрудняют(а иногда и делаютневозможным)поиск адекватногорешения задачи[4]. Любую модельнадо строитьс учетом принципиальнойнеполноты ипринципиальнойвозможностиошибок и противоречийв написаниизадачи. Эти идругие такназываемыеНЕ-факторыотражают тообстоятельство,что в реальноммире существуютв основномобъекты, которымприсущи всеэти свойстваили хотя быодно из них.

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

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

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

Рассмотриммодель, которуюбудем называтьобобщеннойвычислительноймоделью (ОВМ):M = (X,W,C,R),

Гдемножества Xи R имеюттакую же семантику,как и в обычныхвычислительныхмоделях, W– множествофункций присваивания,а C – множествофункций проверкикорректности.Функция присваиванияопределяетспособ записиочередногозначения вобъект xX,а функция проверкикорректностиосуществляетконтроль заправильностьювычисленныхзначений объекта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– имя функциипроверкикорректности.

Множествоотношений (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%

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

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

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

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

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

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


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


      1. Программныетребования
  • Операционнаясистема Windows 95/98, NT

  • BDE(Borland Database Engine)


      1. Аппаратныетребования
  • КомпьютерIBM PC, или совместимые486 и выше

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

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

  • SVGAМонитор


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

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


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


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


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

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

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

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

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

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

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

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

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


СТРУКТУРЫДАННЫХ

Структурыданных данногопрограммногосредства – 4таблицы форматаParadox7.0 (работус этими таблицамиобеспечиваетDBEи DBD,которые какраз поставляютсяв комплект сBorlandDelphi сцелью «безпроблемной»работы с базамиданных практическилюбого формата).

Таблицаклиентов

П.П.

Наименованиеполя

Тип

Длина

Краткоеописание

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. Работас базами знаний;

  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;// отрицательноезначение дляначала.

    Fori=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%, простоотсеиваются.


СПЕЦИАЛЬНЫЙИНСТРУМЕНТАРИЙ

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

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

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

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

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


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


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


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



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


Если процедуре,либо функциив качествепараметрапередается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);

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

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


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


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

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

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

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

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

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

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

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

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


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

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


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

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

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

  • Delphi

  • PowerBuilder

  • 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 симптомов.

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

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


В заключениия хочу выразитьблагодарностьсвоему научномуруководителюза умелое руководством.н.с. ИСИ СО РАН Попову ИвануГеннадьевичуи заведующемукафедройискусственногоинтеллекта,с.н.с. к.т.н. ИСИСО РАН ЗагорулькоЮрию Алексеевичу.


ЛИТЕРАТУРА


  1. ГринбергС.Я. Обзор средствпостроенияэкспертныхсистем // РотапринтВЦ СО РАН, 1993г.

  2. Построениеэкспертныхсистем // подред. Хейеса-РотаФ., УотерманаД., Лената Д.;М.:Мир,1987г.

  3. ГринбергС.Я.,Яхно Т.М.Решение задачтехническойдиагностикис использованиемоболочки Di*Gen //ТехническаякибернетикаN5, 1990г., с.147-153.

  4. Проблемыпредставленияи обработкине полностьюопределенныхзнаний // подред. ШвецоваИ.Е. Москва-Новосибирск,1996.

  5. В.В. Телерман,В.Е. Дмитриев.Технологияпрограммированияна основенедоопределенныхмоделей // Новосибирск,1995.

  6. Коструб А.А.Медицинскийсправочниктуриста // Москва.Профиздат:1996г.

  7. Справочникмедицинскойсестры по уходу// под ред. Н.Р.Палеева // Издательство«Медицина»,Москва, 1981.