2 фрейми.
Фрейм -це структура для опису стереотипної ситуації (події, об’єкту, поняття), що містить характеристики цієї ситуації (події, об’єкту, поняття) таїх значення.
Frame=цель
parent:
тест:
endf
Frame=Фактори
Parent:
Кашель [Який у вас кашель ?]: (Дуже сильний кашель;Кашель через 2 доби;Кашель понад 2 тижні;ні кашлю немає)
Шкіра[Зміна кольору та стану шкіри]:(Виражена блідність шкіри;Пожовтіння шкіри;Довгий Озноб(гусяча шкіра);Озноб в перші дні;Блідність обличчя;Свербіж шкіри;Сухість шкіри;Нормальний колір шкіри)
Температура[Яка у вас температура ?]:(Висока температура;Мале підвищення температури; Від 38 до 39; Задуха при невисокій температурі;НІ немає температури)
Головний біль[Чи присутній головний біль ?]:(присутній; Сильний пульсуючий біль і запаморочення; Ні немає головного болю)
Біль[Що вас болить?]: (У мязах; Біль в животі; З права; У нирках; У грудях;У суглобах; Без болю)
Ротова порожнина і Горло[Ротова порожнина і Горло]:(Біль при ковтанні; Постійна сухість горла; Без змін)
Слабкість[Відчуваєте слабкість]: (Так присутня, Не спостерігається)
Апетит[Який у вас апетит ?]: (Втрата апетиту;Нормальний)
Нудота[Відчуваєте нудоту ?]: (Так присутня;При головній болі;Ні)
Водовиділення[Водовиділення]: (Темніше від нормального;Мутне;Часте нічне; Нормальне)
Вага[Зміни в вазі ?]: (Втрата ваги; Збільшення маси ваги;Без змін)
EndF
Із правил.
Правила-продукції дозволяють подати знання у вигляді: ЯКЩО (умова) ТО (висновок), де умова — це зразок, за яким здійснюється пошук у базі знань, а висновок — дії або процедури, що виконуються при успішному завершенні пошуку (можуть бути проміжними, тобто такими, що виступають далі як умови, або цільовими, тобто такими, що завершують роботу системи та є результатом розв’язання задачі).
У ESWin правило виглядає як:
RULE Номер_правила
Умова 1
.....
Умова n
DO
Висновок 1
......
Висновок m
ENDR
Для розрахунку всіх можливих комбінацій я використав мову С++,
за допомогою якої я розрахував 21780 правил.
Текст програми для розрахунку комбінацій варіантів відповідей:
#include "stdafx.h"
#include "conio.h"
#include "stdlib.h"
#include "math.h"
long int ** chusla;
int pravulo (int chuslo)
{
int sum;
int t;
sum=0;
for (int i=1; i<=chuslo;i++)
{
sum=sum+i;
}
t=sum;
return t;
}
void pochatok (int nomer_pravula)
{
FILE *t;
t=fopen("spusok.txt","a");
int kilkist=0;
for (int j=1; j<=1; j++)
{
fprintf(t,"Rule %d \n", nomer_pravula);
for (int i=1; i<=11; i++)
{
chusla[j][i]=i;
fprintf(t,"%d s \n",chusla[j][i]);
kilkist=kilkist+1;
}
fprintf(t," Do \n");
fprintf(t," EQ(Тест; У вас ГЕПАТИТ з ймовірністю %d відсотків.) \n",kilkist*100/11);
fprintf(t,"EndR \n");
fprintf(t,"\n");
}
fclose(t);
}
void odna_cufra(int nomer_pravula)
{
FILE *t;
t=fopen("spusok.txt","a");
int kilkist;
for (int i=1; i<=11; i++)
{
fprintf(t,"Rule %d \n",nomer_pravula+i);
kilkist=1;
for(int j=1; j<=11;j++)
{
if (i == chusla[1][j]) {continue;}
chusla[i+1][kilkist]=j;
fprintf(t,"%d s \n",chusla[i+1][kilkist]);
kilkist=kilkist+1;
}
fprintf(t," Do \n");
fprintf(t," EQ(Тест; У вас ГЕПАТИТ з ймовірністю %d відсотків.) \n",(kilkist-1)*100/11);
fprintf(t,"EndR \n");
fprintf(t,"\n");
}
fclose(t);
}
void vuvid(long int nomer_rjadka,long int nomer_pravula,int prp)
{
FILE *t;
int l,pr,z=1;
int n,m=1;
int k=1;
int kilkist;
int propusk[16],propusk1[16],propusk2[16];
pr=0;
for (int i=1;i<=11;i++)
{
l=0;
for (int j=1;j<=11;j++)
{
if (i == chusla[nomer_rjadka][j]) {l=l+1;}
}
if (l == 0) {propusk[k]=i; k=k+1;}
if (k == 8) {exit(1);}
}
for (int i=1;i<=11;i++)
{
l=0;
for (int j=1;j<=11;j++)
{
if (i == chusla[nomer_rjadka+1][j]) {l=l+1;}
}
if (l == 0) {propusk1[z]=i; z=z+1;}
}
for (int i=1;i<=11;i++)
{
l=0;
for (int j=1;j<=11;j++)
{
if (i == chusla[nomer_rjadka-1][j]) {l=l+1;}
}
if (l == 0) {propusk2[m]=i; m=m+1;}
}
if (propusk[1]<(11-(k-2)))
{
n=2;
if (propusk[1]== propusk2[1]) {propusk[1]=propusk[prp];}
for (int j=propusk[1]+1;j<=11;j++)
{
if (j== propusk[n]) {n=n+1; continue;}
kilkist=1;
t=fopen("spusok.txt","a");
fprintf(t, "Rule %d\n",nomer_pravula+pr);
pr=pr+1;
for (int i=1; i<=11-prp; i++)
{
if (j==chusla[nomer_rjadka][i]) {continue;}
chusla[nomer_pravula+(pr-1)][kilkist]=chusla[nomer_rjadka][i];
fprintf(t,"%d s \n",chusla[nomer_rjadka][i]);
kilkist=kilkist+1;
}
fprintf(t," Do \n");
fprintf(t," EQ(Тест; У вас ГЕПАТИТ з ймовірністю %d відсотків.) \n",(kilkist-1)*100/11);
fprintf(t,"EndR \n");
fprintf(t,"\n");
fclose(t);
}
}
else
{
if (z>k) {prp=prp+1;}
vuvid(nomer_rjadka+1,nomer_pravula+pr,prp);
}
if (z>k) {prp=prp+1;}
vuvid(nomer_rjadka+1,nomer_pravula+pr,prp);
}
int _tmain(int argc, _TCHAR* argv[])
{
FILE *t;
int nomer_pravula=7261;
t=fopen("spusok.txt","wt");
chusla= new long int*[100000];
for (int i=1; i<=100000; i++)
{
chusla[i]=new long int[16];
}
pochatok(nomer_pravula);
odna_cufra(nomer_pravula);
vuvid(2,nomer_pravula+11,1);
return 0;
}
Список хворіб які діагностує ЕС:
Пневмонія
Грип та гостра респіраторна інфекція (ГРІ)
Гепатит
Дифтерія
Пієлонефрит
Ангіна
Анемія
Артрит
Мігрень
Діабет
Туберкульозу
Захворювань щитовидної залози
Правила за якими ЕС діагностувала хворобу на 100 %
Захворювання щитовидної залози
Rule 1
EQ(Фактори.Кашель; ні кашлю немає)
EQ(Фактори.Шкіра; Сухість шкіри)
EQ(Фактори.Температура; НІ немає температури)
EQ(Фактори.Головний біль; ні немає головного болю)
EQ(Фактори.Біль; без болю)
EQ(Фактори.Ротова порожнина і Горло; без змін)
EQ(Фактори.Слабкість; так присутня)
EQ(Фактори.Апетит; нормальний)
EQ(Фактори.Нудота; ні)
EQ(Фактори.Водовиділення; нормальне)
EQ(Фактори.Вага; збільшення маси ваги)
Do
EQ(Тест;У вас ЗАХВОРЮВАННЯ ЩИТОВИДНОЇ ЗАЛОЗИз ймовірністю 100%.)
EndR
Мігрень
Rule 1
EQ(Фактори.Кашель; ні кашлю немає)
EQ(Фактори.Шкіра; Блідність обличчя)
EQ(Фактори.Температура; НІ немає температури)
EQ(Фактори.Головний біль; сильний пульсуючий біль і запаморочення)
EQ(Фактори.Біль; без болю)
EQ(Фактори.Ротова порожнина і Горло; без змін)
EQ(Фактори.Слабкість; не спостерігається)
EQ(Фактори.Апетит; нормальний)
EQ(Фактори.Нудота; при головній болі)
EQ(Фактори.Водовиділення; нормальне)
EQ(Фактори.Вага; без змін)
Do
EQ(Тест;У вас МІГРЕНЬ з ймовірністю 100%.)
EndR
Пневмонія
Rule 1
EQ(Фактори.Кашель; дуже сильний кашель;)
EQ(Фактори.Шкіра; виражена блідність шкіри)
EQ(Фактори.Температура; задуха при невисокій температурі)
EQ(Фактори.Головний біль; ні немає головного болю)
EQ(Фактори.Біль; у грудях)
EQ(Фактори. Ротова порожнина і Горло; без змін)
EQ(ФакториСлабкість;не спостерігається)
EQ(Фактори.Апетит; нормальний)
EQ(Фактори.Нудота; ні)
EQ(Фактори.Водовиділення; нормальне)
EQ(Фактори.Вага; без змін)
Do
EQ(Тест;У вас ПНЕВМОНІЯ з ймовірністю 100%.)
EndR
Ангіна
Rule 1
EQ(Фактори.Кашель; ні кашлю немає)
EQ(Фактори.Шкіра; Озноб в перші дні)
EQ(Фактори.Температура; від38 до 39)
EQ(Фактори.Головний біль; присутній)
EQ(Фактори.Біль; без болю)
EQ(Фактори. Ротова порожнина і Горло; біль при ковтанні)
EQ(ФакториСлабкість; так присутня)
EQ(Фактори.Апетит; нормальний)
EQ(Фактори.Нудота; ні)
EQ(Фактори.Водовиділення; нормальне)
EQ(Фактори.Вага; без змін)
Do
EQ(Тест;У вас АНГІНА з ймовірністю 100%.)
EndR
Діабет
Rule 1
EQ(Фактори.Кашель; ні кашлю немає)
EQ(Фактори.Шкіра; Свербіж шкіри)
EQ(Фактори.Температура; НІ немає температури)
EQ(Фактори.Головний біль; ні немає головного болю)
EQ(Фактори.Біль; без болю)
EQ(Фактори.Ротова порожнина і Горло; постійна сухість горла)
EQ(Фактори.Слабкість; не спостерігається)
EQ(Фактори.Апетит; нормальний)
EQ(Фактори.Нудота; ні)
EQ(Фактори.Водовиділення; часте нічне)
EQ(Фактори.Вага; втрата ваги)
Do
EQ(Тест;У вас ДІАБЕТ з ймовірністю 100%.)
EndR
Анемія
Rule 1
EQ(Фактори.Кашель; ні кашлю немає)
EQ(Фактори.Шкіра; нормальний колір шкіри)
EQ(Фактори.Температура; НІ немає температури)
EQ(Фактори.Головний біль; ні немає головного болю)
EQ(Фактори.Біль; без болю)
EQ(Фактори. Ротова порожнина і Горло; без змін)
EQ(ФакториСлабкість; так присутня)
EQ(Фактори.Апетит; Втрата апетиту)
EQ(Фактори.Нудота; ні)
EQ(Фактори.Водовиділення; нормальне)
EQ(Фактори.Вага; без змін)
Do
EQ(Тест;У вас АНЕМІЯ з ймовірністю 100%.)
EndR
Артрит
Rule 1
EQ(Фактори.Кашель; ні кашлю немає)
EQ(Фактори.Шкіра; нормальний колір шкіри)
EQ(Фактори.Температура; НІ немає температури)
EQ(Фактори.Головний біль; ні немає головного болю)
EQ(Фактори.Біль; у суглобах)
EQ(Фактори. Ротова порожнина і Горло; без змін)
EQ(ФакториСлабкість; так присутня)
EQ(Фактори.Апетит; нормальний)
EQ(Фактори.Нудота; ні)
EQ(Фактори.Водовиділення; нормальне)
EQ(Фактори.Вага; втрата ваги)
Do
EQ(Тест;У вас АРТРИТ з ймовірністю 100%.)
EndR
Гепатит
Rule 1
EQ(Фактори.Кашель; ні кашлю немає;)
EQ(Фактори.Шкіра; пожовтіння шкіри)
EQ(Фактори.Температура; НІ немає температури)
EQ(Фактори.Головний біль; ні немає головного болю)
EQ(Фактори.Біль; з права)
EQ(Фактори. Ротова порожнина і Горло; без змін)
EQ(ФакториСлабкість; так присутня)
EQ(Фактори.Апетит; Втрата апетиту)
EQ(Фактори.Нудота; так присутня)
EQ(Фактори.Водовиділення; темніше фід нормального)
EQ(Фактори.Вага; без змін)
Do
EQ(Тест;У вас ГЕПАТИТ з ймовірністю 100%.)
EndR
Гостра рефлекторна інфекція
Rule 1
EQ(Фактори.Кашель; кашель через 2 доби)
EQ(Фактори.Шкіра; Довгий Озноб(гусяча шкіра))
EQ(Фактори.Температура; Висока температура)
EQ(Фактори.Головний біль; присутній)
EQ(Фактори.Біль; У мязах)
EQ(Фактори. Ротова порожнина і Горло; без змін)
EQ(ФакториСлабкість; так присутня)
EQ(Фактори.Апетит; нормальний)
EQ(Фактори.Нудота; ні)
EQ(Фактори.Водовиділення; нормальне)
EQ(Фактори.Вага; без змін)
Do
EQ(Тест;У вас ГОСТРА РЕФЛЕКТОРНА ІНФЕКЦІЯ з ймовірністю 100%.)
EndR
Дифтерія
Rule 1
EQ(Фактори.Кашель; ні кашлю немає)
EQ(Фактори.Шкіра; нормальний колір шкіри)
EQ(Фактори.Температура; Мале підвищення температури)
EQ(Фактори.Головний біль; присутній)
EQ(Фактори.Біль; біль в животі)
EQ(Фактори.Ротова порожнина і Горло; біль при ковтанні)
EQ(Фактори.Слабкість; так присутня)
EQ(Фактори.Апетит; Втрата апетиту)
EQ(Фактори.Нудота; ні)
EQ(Фактори.Водовиділення; нормальне)
EQ(Фактори.Вага; без змін)
Do
EQ(Тест;У вас ДИФТЕРІЯ з ймовірністю 100%.)
EndR
Туберкульоз
Rule 1
EQ(Фактори.Кашель; Кашель понад 2 тижні)
EQ(Фактори.Шкіра; нормальний колір шкіри)
EQ(Фактори.Температура; Мале підвищення температури)
EQ(Фактори.Головний біль; ні немає головного болю)
EQ(Фактори.Біль;у грудях)
EQ(Фактори.Ротова порожнина і Горло; без змін)
EQ(Фактори.Слабкість; так присутня)
EQ(Фактори.Апетит; Втрата апетиту)
EQ(Фактори.Нудота; ні)
EQ(Фактори.Водовиділення; нормальне)
EQ(Фактори.Вага; втрата ваги)
Do
EQ(Тест;У вас ТУБЕРКУЛЬОЗ з ймовірністю 100%.)
EndR
Пієлонефрит
Rule 1
EQ(Фактори.Кашель; ні кашлю немає)
EQ(Фактори.Шкіра; нормальний колір шкіри)
EQ(Фактори.Температура; Висока температура)
EQ(Фактори.Головний біль; ні немає головного болю)
EQ(Фактори.Біль; у нирках)
EQ(Фактори. Ротова порожнина і Горло; без змін)
EQ(ФакториСлабкість; не спостерігається)
EQ(Фактори.Апетит; нормальний)
EQ(Фактори.Нудота; ні)
EQ(Фактори.Водовиділення; мутне)
EQ(Фактори.Вага; без змін)
EQ(Тест;У вас ПІЄЛОНЕФРИТ з ймовірністю 100%.)
EndR
Висновок
В рамках курсової роботи було описано використання ЕС в медицині, проведено діагностику даних хвороб, були ретельно вибрані питання які увійшли до переліку діагностикиі розроблена структура системи, що дозволяє діагностувати хворобу пацієнта.
Результатом виконання даної курсової роботи є експертна система для визначення хвороб(пневмонія,грип та гостра респіраторна інфекція(грі),гепатит,дифтерія,пієлонефрит,ангіна,анемія,артрит, мігрень,діабет,туберкульозу,захворювань щитовидної залози). За допомогою цієї ЕС можна легко визначити захворювання на яке скаржиться пацієнт.
В даній курсовій роботі описано будову і принцип роботи нашої експертної системи.
Представлено програму за допомогою якої розраховувалися всі варіанти правил, а також правила які відповідають 100 %-ій ймовірності діагностування певної хвороби.
Для створення експертної системи я використав оболонку ESWIN2, з якою дуже легко працювати. Як видно на схемі вона працює на співставленні варіантів хворого і правила з ідентичними відповідями і результатом про хворобу.
... забезпечує безперервність циклу "наука - техніка - виробництво - збут - споживання" не зможуть успішно діяти на ринку, не маючи інформації. 2.2 Можливості застосування в інформаційній діяльності організації або установи експертних систем Область застосування експертних систем розширяється швидко. І уряд, і промисловість починають фінансувати комерційні експертні системи, так що вже через дек ...
... . мед. ун-т ім. Данила Галицького. - №20040604173. Зареєстр. 01.06.2004, опубл. 17.01.2005. Бюл. №1. АНОТАЦІЯ Кордіяк А.Ю. Клінічні особливості, лікування та запобігання розладів місцевого і загального характеру при застосуванні зубних протезів на основі сплавів металів. Дисертація на здобуття наукового ступеня доктора медичних наук за спеціальністю 14.01.22 – Стоматологія. – Львівський наці ...
... в 1999 році. На даний момент 99% населення Польщі має медичні страховки державного медичного страхування. В Україні система охорони здоров'я поки не реформована, що утруднює й впровадження ІТ у керування охороною здоров'я й лікувальну практику. Участь у фінансуванні проектів по інформатизації медицини у масштабах міста чи регіону (створенні проектної документації, закупівлі комп'ютерів, розробці ...
... учня, а передусім, що є нині великою проблемою комп'ютеризації освіти, — активізації і підвищенню творчих здібностей. Мета дослідження полягає у теоретичному обґрунтуванні психологічних аспектів застосування комп'ютерів у процесі навчання і аналізі їх. Об′єкт дослідження: учні і вчителі загальноосвітньої школи у процесі застосування комп'ютерів у навчанні. Предмет дослідження: процес ...
0 комментариев