Автор работы: Пользователь скрыл имя, 27 Мая 2013 в 20:05, курсовая работа
Логическое программирование – технология программирования, возникшая на основе логического доказательства теорем. Типичным представителем концепции логического программирования является язык Пролог. Первоначально разработки в области логического программирования велись для использования в компьютерах пятого поколения. В настоящее время Пролог применяется главным образом в приложениях типа экспертных систем и интеллектуальных баз данных. Механизм языка основан на получении логического вывода из программы, а сама программа представляет собой не алгоритм, а описание задачи в терминах Пролога.
ВВЕДЕНИЕ 5
1 ПОСТАНОВКА ЗАДАЧИ 6
2 ОПИСАНИЕ ПРЕДИКАТОВ ПОЛЬЗОВАТЕЛЯ 8
3 ТЕКСТ ПРОГРАММЫ 9
4 СОДЕРЖИМОЕ ВНЕШНИХ ФАЙЛОВ И БАЗ ДАННЫХ, ИСПОЛЬЗУЕМЫХ ПРИ РАБОТЕ ПРОГРАММЫ 10
5 КОНТРОЛЬНЫЙ ПРИМЕР: ПЕРЕЧЕНЬ ШАГОВ ПРИ ПРОХОЖДЕНИИ СХЕМЫ И СООТВЕТСТВУЮЩИЙ ИМ ДИАГНОЗ 11
ЗАКЛЮЧЕНИЕ 13
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 14
Федеральное агентство по образованию РФ
Государственное образовательное учреждение высшего профессионального образования
СИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ
Факультет автоматизации и информационных технологий
Кафедра информационных технологий
Разработка интеллектуальной системы
Пояснительная записка
(ИТ.230105.11.ПЗ)
Руководитель:
Товбис Е.М.
_____________________________
(подпись)
_____________«___»______2013г.
(оценка, дата)
Разработала:
Студентка группы : 22-06
Рукосуев И.П.
______________________________
(подпись)
«_____» ________________2013г.
(дата)
Красноярск,
2011
Федеральное агентство по образованию
Российской Федерации
ГОУ ВПО "Сибирский
государственный
Кафедра информационных технологий
ЗАДАНИЕ
НА КУРСОВУЮ РАБОТУ ПО ЛОГИЧЕСКОМУ ПРОГРАММИРОВАНИЮ
Студент Рукосуев И.П.
Факультет ФАИТ гр 22-04
Тема курсовой: ___Разработка интеллектуальной системы
Календарный план выполнения работы:
01.05.11 — 07.05.11 |
Ознакомление с заданием, сбор материала по теме |
09.05.11 — 14.05.11 |
Разработка модели решения задачи на естественном языке |
16.05.11 — 18.05.11 |
Написание программы |
19.05.11 — 21.05.11 |
Оформление пояснительной |
Задание выдано __________________
Руководитель__________________
РЕФЕРАТ 4
ВВЕДЕНИЕ 5
1 ПОСТАНОВКА ЗАДАЧИ 6
2 ОПИСАНИЕ ПРЕДИКАТОВ ПОЛЬЗОВАТЕЛЯ 8
3 ТЕКСТ ПРОГРАММЫ 9
4 СОДЕРЖИМОЕ ВНЕШНИХ ФАЙЛОВ И БАЗ ДАННЫХ, ИСПОЛЬЗУЕМЫХ ПРИ РАБОТЕ ПРОГРАММЫ 10
5 КОНТРОЛЬНЫЙ ПРИМЕР: ПЕРЕЧЕНЬ ШАГОВ ПРИ ПРОХОЖДЕНИИ СХЕМЫ И СООТВЕТСТВУЮЩИЙ ИМ ДИАГНОЗ 11
ЗАКЛЮЧЕНИЕ 13
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 14
Целью данного курсового проекта является разработка интеллектуальной системы, способной по набору симптомов установить диагноз. На основе исходных данных разрабатываем программный продукт, содержащий группы симптомов «Плохое самочувствие ребенка», «Пятна и высыпания у ребенка», «Сыпь с температурой у ребенка», «Кожные нарушения у подростка».
Курсовой проект содержит пояснительную записку из страниц текста, рисунков, 4 литературных источника.
Логическое программирование – технология программирования, возникшая на основе логического доказательства теорем. Типичным представителем концепции логического программирования является язык Пролог. Первоначально разработки в области логического программирования велись для использования в компьютерах пятого поколения. В настоящее время Пролог применяется главным образом в приложениях типа экспертных систем и интеллектуальных баз данных. Механизм языка основан на получении логического вывода из программы, а сама программа представляет собой не алгоритм, а описание задачи в терминах Пролога.
В настоящее время Prolog, несмотря на неоднократные пессимистические прогнозы, продолжает развиваться в разных странах и вбирать в себя новые технологии и концепции, а также парадигмы императивного программирования.
Экспертная система – компьютерная программа, способная частично заменить специалиста-эксперта в решении проблемной ситуации. Решение задачи может быть неизвестно заранее, программа оперирует базами знаний и правилами вывода. В рамках курсового проекта необходимо построить интеллектуальную экспертную систему, имитирующую человеческие рассуждения.
Цель курсовой работы – построить интеллектуальную систему определения диагноза по симптомам. Было получено задание:
Рисунок 1 – вариант задания
Диагностические схемы шума в ушах:
Рисунок 2 – Группа симптомов при боле в ухе
Рисунок 3 – Группа симптомов при глухоте
Условия, изображенные квадратными закрашенными прямоугольниками, имеют 2 выхода: метка «да» - условие выполняется и метка «нет» - условие не выполняется. Переходя по стрелкам, необходимо прийти к решению ситуации – поставить диагноз и выдать рекомендации, либо сообщить о невозможности постановки диагноза по данным симптомам.
Рисунок 4 – Условия с двумя вариантами выхода
Блоки решений обозначены белыми скругленными прямоугольниками с формулировкой диагноза и рекомендациями внутри.
Рисунок 5 – Блок решения
Были описаны следующие типы:
s=string
i=integer
Предикат pusk проверяет существование файла с базой и загружает его.
Предикат na4alo создает новое окно и выводит меню, в котором предлагает пользователю начать тестирование или выйти.
Предикат pgup(Char) – переход по пунктам меню.
Предикат pgup(Сhar,Integer,Integer)- переход по пунктам меню и выбор варианта ответа.
Предикат pres обрабатывает нажатие клавиш.
Предикат pres1 (Integer, Integer) обрабатывает нажатие клавиш.
Предикат proverka(Integer) осуществляет очистку окна и выводит вопрос с вариантами ответов.
Предикат atr(Integer, Integer)- устанавливает значение текущего цветового атрибута для всего рабочего окна.
DOMAINS
s=string
i=integer
DATABASE
vopros(i,s,i,i)
PREDICATES
pusk
na4alo
atr(i,i)
pgup(char)
pgup2(char,i,i)
pres
pres2(i,i)
proverka(i)
CLAUSES
atr(S,C):-scr_attr(S,0,C),scr_
scr_attr(S,3,C),scr_attr(S,4,
scr_attr(S,6,C),scr_attr(S,7,
pres:-readchar(C),pgup(C).
pgup(C):-char_int(C,I),I=27,!.
pgup(C):-char_int(C,I),I=72,
pgup(C):-char_int(C,I),I=72,
pgup(C):-char_int(C,I),I=80,
pgup(C):-char_int(C,I),I=80,
pgup(C):-char_int(C,I),I=13,
pgup(C):-char_int(C,I),I=13,
pgup(C):-pres.
proverka(Q):-clearwindow,
A=0,readchar(_),pusk.
proverka(Q):-clearwindow,
B=0,readchar(_),pusk.
proverka(Q):-clearwindow,
cursor(2,0), write("„ "),cursor(3,0),
write("ЌҐв"),cursor(2,0),atr(
pres2(A,B):-readchar(C),pgup2(
pgup2(C,A,B):-char_int(C,I),I=
pgup2(C,A,B):-char_int(C,I),I=
pgup2(C,A,B):-char_int(C,I),I=
pgup2(C,A,B):-char_int(C,I),I=
pgup2(C,A,B):-char_int(C,I),I=
pgup2(C,A,B):-char_int(C,I),I=
pgup2(C,A,B):-char_int(C,I),I=
pgup2(C,A,B):-pres2(A,B).
pusk:-existfile("base.txt"), consult("base.txt"),na4alo.
na4alo:- makewindow(1,7,7,"Диагноз",0,
GOAL
pusk.
vopros(1,"Шумы в ухе появились во время или после полета?",2,3)
vopros(2,"Возможна баротравма - повреждение органа слуха в результате нарушения равновесия между давлением воздуха, особенно если у вас был насморк",0,0)
vopros(3,"Вы заметили снижение слуха",9,4)
vopros(4,"Вы принимаете или недавно принимали какие-нибудь лекарства",6,5)
vopros(5,"Вы ощущаете щекотание в ухе?",7,8)
vopros(6,"Побочным действием некоторых лекарств может быть появление шумов в ухе.",0,0)
vopros(7,"Вероятно, в наружный слуховой проход попало насекомое или другое инородное тело.",0,0)
vopros(8,"Если вы не можете поставить диагноз по схеме, а шумы в ухе сопровождаются снижением слуха и головной болью, обратитесь к врачу!",0,0)
vopros(9,"У вас боль в ухе?",10,19)
vopros(10,"Боль в ухе усиливается, когда вы оттягиваете мочку уха?",11,12)
vopros(11,"Причиной симптомов может быть инфекционное поражение наружного слухового аппарата. Обратитесь к врачу!",0,0)
vopros(12,"Вы чувствуете заложенность в ухе и она не проходит при глотании?",13,15)
vopros(13,"Боль начинаете во время или после полета на самолете?",14,2)
vopros(14,"Возможно острое воспаление среднего уха, которое возникает в результате закупорки евстахиевой2 трубы. Обратитесь к врачу!",0,0)
vopros(15,"У вас зеленовато-желтые выделения из уха?",16,17)
vopros(16,"Причиной может быть инфекционное поражение среднего уха или наружного слухового прохода. Обратитесь к врачу!",0,0)
vopros(17,"Вы простужены",16,18)
vopros(18,"Если вы не можете поставить диагноз по схеме, обратитесь к врачу!",19,22)
vopros(19,"У вас зеленовато-желтые выделения из уха?",16,20)
vopros(20,"Вы ощущаете заложенность?",21,23)
vopros(21,"На прошлой неделе у вас были насморк, заложенность в носу, головные боли?",22,23)
vopros(22,"Причиной глухоты может быть закупорка евстахиевой трубы в результате простуды или сенной лихорадки. Это не должно быть причиной для беспокойства и не требует специального лечения, но если слух не улучшается в течении 3 дней, обратитесь к врачу!",0,0)
vopros(23,"У вас наступают внезапные приступы головокружения?",24,25)
vopros(24,"Это может быть болезнь Меньера - относительно редкое заболевание, возникающее при увеличении количества жидкости в лабиринте. Это заболевание характерно для людей среднего возраста. Обратитесь к врачу!",0,0)
vopros(25,"Вы регулярно слушаете громкую музыку и находитесь в условиях повышенного шума?",26,27)
vopros(26,"Причиной снижения слуха возможно, являются повторные воздействия сильного шума. Дело в том, что к повреждению слуха могут приводить даже уровни шума, которые не вызывают дискомфорта.",0,0)
vopros(27,"Вы недавно принимали какие-либо лекарства?",28,29)
vopros(28,"Причиной снижение слуха может быть побочное действие некоторых лекарств.",0,0)
vopros(29,"Ваш слух ухудшился за последние несколько недель или раньше?",18,30)
vopros(30,"Наблюдается ли постепенная потеря слуха у других членов вашей семьи",32,31)
vopros(31,"Причиной вашей глухоты может быть серная пробка в ушах.",0,0)
vopros(32,"Вам за 50?",33,34)
vopros(33,"Пресбиакузис (старческая тугоухость)- постепенная потеря слуха в пожилом и старческом возрасте - обычное явление, особенно если другие члены вашей семьи становяться к старости глухими. Обратитесь к врачу.",0,0)
vopros(34,"Причиной ваших симптомов может быть отосклероз - заболевание, при котором нарушается функционирование косточек в среднем ухе. Эта разновидность глухоты в основном поражает в молодом возрасте и особенно характерна для женщин. Обратитесь к врачу.",0,0)
Запускаем программу. Перед нами появляется предложение начать тестирование:
Рисунок 6 – Основное меню программы
Выбираем ответ «Да» и приступаем к тестированию. Перед нами открывается новый вопрос (рис. 7), при положительном ответе на который выдается диагноз (рис. 8).
Рисунок 7 – Вопрос программы
Рисунок 8 – Конец тестирования, поставленный диагноз.
Если при ответе на вопрос на рис.7 ответить «Нет», то тестирование будет продолжено новыми вопросами. В итоге программа выдаст диагноз или сообщение о том, если не возможно поставить диагноз по схеме и следует обратитесь к врачу.
В ходе курсового проектирования было разработана интеллектуальная система определения диагноза по симптомам. На основе исходных данных создан программный продукт, содержащий следующие группы симптомов: «Шум в ушах», «Глухота» и «Боль в ушах».