Разработка экспертной системы "Аналитический тест" - Программирование, компьютеры и кибернетика курсовая работа

Разработка экспертной системы "Аналитический тест" - Программирование, компьютеры и кибернетика курсовая работа




































Главная

Программирование, компьютеры и кибернетика
Разработка экспертной системы "Аналитический тест"

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


посмотреть текст работы


скачать работу можно здесь


полная информация о работе


весь список подобных работ


Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных

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


ПОЯСНИТЕЛЬНАЯ ЗАПИСКА К КУРСОВОЙ РАБОТЕ
Разработка экспертной системы «Аналитический тест»
В течение последнего десятилетия в рамках работ по искусственному интеллекту сформировалось самостоятельное направление - экспертные системы или инженерия знаний. В задачу этого направления входят исследование и разработка программ, использующих знания и процедуры решения задач, которые являются трудными для людей - экспертов. Области применения экспертных систем разнообразны: военные приложения, медицина, электроника, вычислительная техника, геология, математика, космос, сельское хозяйство, управление, финансы, бизнес, и т.д.
Экспертная система - это программа, которая использует принципы искусственного интеллекта и знания эксперта для обработки оперативной информации и принятия обоснованных решений в анализируемой области
По форме представления знания эксперта можно отнести к следующим общим категориям. Декларативные знания - это утверждения, которые могут быть истинными или ложными. Такие знания могут быть сохранены в стандартной базе данных. Некоторые знания являются алгоритмическими и поэтому могут быть представлены в виде блок-схемы. Такие знания могут быть выражены в виде подпрограммы на любом процедурном языке программирования.
Опыт по разработке интеллектуальных или экспертных систем показал, что эксперты обладают знаниями, которые не являются ни строго декларативными, ни строго алгоритмическими. Эти знания являются интуитивными и их наличие связано с опытом экспертов. Общими являются типичные знания, которые можно представить как строго декларативное или алгоритмическое знание. Опыт, с другой стороны, - это знание частных случаев и исключений из общего знания, который нельзя эффективно преподавать в классе или перечислить в книгах. Знание частных случаев, которое приобретается на опыте, - это только одна форма более широкого класса условного знания, которое является по существу трудно организуемым и поэтому его трудно изобразить схематически в виде, например, блок-схемы. Любая программа, в которой рассматривается большое количество условных логических выражений, может быть практически трудно реализуема.
Обычно к экспертным системам относят системы, основанные на знаниях. Знания можно подразделить на формализованные (универсальные знания - законы, модели, алгоритмы) и на неформализованные (эпирические, опыт, умение, интуиция).
Традиционное программирование в качестве основы для разработки программного обеспечения использует формализованное знание (алгоритм) и не подходит для решения неформализованных задач, к которым можно отнести следующие:
· алгоритмическое решение задачи неизвестно;
· задача не может быть определена в числовой форме;
· цели задачи не могут быть выражены в терминах точно определенной функции.
Как правило, такие задачи обладают неполнотой, ошибочностью, неоднозначностью и противоречивостью.
Экспертные системы не отвергают традиционного подхода к программированию, они предлагают технологию и методы решения неформализованных задач. Эти методы практически не зависят от типов решаемых задач.
1 . Анализ требований и постановка задачи
OXFORD CAPACITY ANALYSIS TEST содержит 200 вопросов. На каждый вопрос есть 3 альтернативы ответов: «Да», «Нет», «Иногда, более - менее» (неуверенность), за каждую из которых присуждается определенное количество баллов.
Тест разделен на 10 подтестов по 20 вопросов - группы A, B, C, D, E, F, G, H, I, J. Группа A определяет стабильность, группа B - счастье и подавленность, группа С - спокойствие и нервозность, группа D - уверенность, группа E - активность, группа F - способность, группа G - ответственность, группа H - критичность, объективность, группа I - открытость, замкнутость, группа J - уровень общения. Каждая группа, в свою очередь, делится на 4 подгруппы.
По результатам каждого подтеста на основании полученного результата определяется принадлежность к конкретной подгруппе какой-либо группы. Далее, на основании сочетания полученных результатов, делается вывод.
Одним из свойств экспертной системы является обеспечение естественного языка интерфейса с пользователем, поэтому представляется целесообразным представить альтернативы вариантов ответа как пункты меню.
Пользователь может пожелать повторить тест, если при предыдущем опросе он допустил ряд ошибок, поэтому необходимо системное меню, которое позволит пользователю самому решать, когда выйти из программы.
Признаки и правила из главной программы, чтобы было проще ориентироваться в ней, целесообразно вынести в отдельный файл.
Признаки записываются следующим образом: Cond s (Признак, З начение_признака).
Правила же формируются так: Rule s («Тест», Результат, Сочетание_признаков) .
Предикаты Ye s (№_вопроса, Баллы), N o (№_вопроса, Баллы), M (№_вопроса, Баллы) определяют количество баллов, засчитываемое за тот или иной вариант ответа на вопрос №_вопроса .
Предикаты L 1 (Список_ вопросов),…, L1 0 (Список_ вопросов) определяют номера вопросов по группам. А предикаты A 1 Lis t (Список_ баллов),… , A 4 List ( List ), В1 Lis t (Список_ баллов),…, В4 List ( List ),…, J 1 Lis t (Список_ баллов),…, J 4 List ( List ) определяют принадлежность к группе по количеству набранных баллов.
Кодирование осуществлено на языке Пролог. Результат кодирования приведен в приложении А.
Были использованы следующие домены:
List = Intgr* - списки вопросов и результатов.
SList = Strng* - списки признаков (сочетание результатов).
Язык Пролог прошел длинный путь развития (около 30 лет). За это время появилось значительное число его реализаций, причем наиболее распространенный Turbo Prolog доступен пользователям ПЭВМ. Существует мнение, что Пролог пропагандируется и используется преимущественно специалистами, решающими задачи из области искусственного интеллекта. Однако, как показывает опыт использования различных Пролог - систем, язык Пролог может успешно применяться для разработки сложных программных систем традиционного назначения. Он нашел применение в системах автоматизированного проектирования, системах символьных вычислений и др. Обработка текста на естественном языке также является интересным и перспективным направлением Пролога.
В данной курсовой работе была поставлена задача разработки и программной реализации аналитической экспертной системы.
В ходе решения задачи были разработаны различные доменные структуры и предикаты. Было произведено кодирование на языке программирования Пролог и функциональное тестирование, в ходе которого было выявлено, что программа решает задачу корректно и устойчиво работает на тестовом наборе данных.
1. Братко И. Программирование на языке Пролог для искусственного интеллекта: Пер. с англ. - М.: Мир, 1990. - 560 с., ил.
2. Искусственный интеллект: в 3 кн. Кн. 1. Системы общения и экспертные системы: Справочник /Под ред. Э.В. Попова. - М.: Радио и связь, 1990. - 464 с., ил.
KEY = cr; esc; break; tab; btab; del; bdel; ctrlbdel; ins;
end; home; fkey(INTEGER); up; down; left; right;
ctrlleft; ctrlright; ctrlend; ctrlhome; pgup; pgdn;
ctrlpgup; ctrlpgdn; char(CHAR); otherspec
min (ROW, ROW, ROW) min (COL, COL, COL)
min (LEN, LEN, LEN) min (INTEGER, INTEGER, INTEGER)
max (ROW, ROW, ROW) max (COL, COL, COL)
max (LEN, LEN, LEN) max (INTEGER, INTEGER, INTEGER)
maxlen([_|T], MAX, MAX1): - maxlen (T, MAX, MAX1).
/* Смотрим первую большую букву в строке */
/* это должна быть первая буква в строке, иначе
lowc (CHAR, CHAR) /* прописная буква */
tryfirstupper (CHAR, STRINGLIST, ROW, ROW)
tryfirstletter (CHAR, STRINGLIST, ROW, ROW)
char_int (CHAR, CI), CI1=CI-32, char_int (CH, CI1).
char_int (CHAR, CI), CI1=CI+32, char_int (CH, CI1).
tryfirstupper (CHAR, [W|_], N, N):-
tryfirstupper (CHAR, [_|T], N1, N2):-
tryfirstletter (CHAR, [W|_], N, N):-
tryfirstletter (CHAR, [_|T], N1, N2):-
tryletter (CHAR, LIST, SELECTION):-
upc (CHAR, CH), tryfirstupper (CH, LIST, 0, SELECTION),!.
tryletter (CHAR, LIST, SELECTION):-
lowc (CHAR, CH), tryfirstletter (CH, LIST, 0, SELECTION).
adjustwindow (ROW, COL, ROW, COL, ROW, COL)
adjframe (ATTR, ROW, COL, ROW, COL)
adjustwindow (LI, KOL, DLI, DKOL, ALI, AKOL):-
LI<25-DLI, KOL<80-DKOL,!, ALI=LI, AKOL=KOL.
adjustwindow (LI,_, DLI, DKOL, ALI, AKOL):-
adjustwindow (_, KOL, DLI, DKOL, ALI, AKOL):-
KOL<80-DKOL,!, ALI=25-DLI, AKOL=KOL.
adjustwindow (_,_, DLI, DKOL, ALI, AKOL):-
adjframe (_, R1, C1, R2, C2): - R2=R1+2, C2=C1+2.
/* Readkey(KEY) - возвращает в KEY символ */
readkey1 (KEY,_, 0): - !, readchar(T), char_int (T, VAL), readkey2 (KEY, VAL).
readkey2 (fkey(N), VAL): - VAL>58, VAL<70, N=VAL-58,!.
readkey2 (fkey(N), VAL): - VAL>=84, VAL<104, N=11+VAL-84,!.
menu (ROW, COL, WATTR, FATTR, STRINGLIST, HEADER, STARTCHOICE, SELECTION)
WATTR, FATTR - определяют атрибуты окна и рамки
STARTCHOICE - выбранный пункт меню.
Ex: menu (5,5,7,7, [this, is, a, test], «select word», 0, CHOICE)
menu (ROW, COL, ATTR, ATTR, STRINGLIST, STRING, INTEGER, INTEGER)
menuinit (ROW, COL, ATTR, ATTR, STRINGLIST, STRING, ROW, COL)
menu1 (SYMBOL, ROW, ATTR, STRINGLIST, ROW, COl, INTEGER)
menu2 (KEY, STRINGLIST, ROW, ROW, ROW, SYMBOL)
menu (ROW, COL, WATTR, FATTR, LIST, HEADER, STARTCHOICE, CHOICE):-
menuinit (ROW, COL, WATTR, FATTR, LIST, HEADER, NOOFROW, LEN),
ST1=STARTCHOICE-1, max (0, ST1, ST2), MAX=NOOFROW-1, min (ST2, MAX, STARTROW),
menu1 (cont, STARTROW, WATTR, LIST, NOOFROW, LEN, CHOICE),
menuinit (ROW, COL, WATTR, FATTR, LIST, HEADER, NOOFROW, NOOFCOL):-
adjframe (FATTR, NOOFROW, NOOFCOL, HH1, HH2),
adjustwindow (ROW, COL, HH1, HH2, AROW, ACOL),
makewindow (81, WATTR, FATTR, HEADER, AROW, ACOL, HH1, HH2),
menu1 (cont, ROW, ATTR, LIST, MAXROW, NOOFCOL, CHOICE): - !,
field_attr (ROW, 0, NOOFCOL, ATTR),
menu2 (KEY, LIST, MAXROW, ROW, NEXTROW, CONT),
menu1 (CONT, NEXTROW, ATTR, LIST, MAXROW, NOOFCOL, CHOICE).
menu1 (esc, ROW,_,_,_,_, CHOICE): - !, CHOICE=ROW+1.
menu1 (_, ROW, ATTR,_,_, NOOFCOL, CHOICE):-
menu2 (fkey(10),_,_, ROW, ROW, stop): - !.
menu2 (char(C), LIST,_,_, CH, selection): - tryletter (C, LIST, CH),!.
menu2 (cr,_,_, ROW, CH, selection): - !, CH=ROW.
menu2 (up,_,_, ROW, NEXTROW, cont): - ROW>0,!, NEXTROW=ROW-1.
menu2 (down,_, MAXROW, ROW, NEXTROW, cont): - NEXTROW=ROW+1, NEXTROWРазработка экспертной системы "Аналитический тест" курсовая работа. Программирование, компьютеры и кибернетика.
Качество Продукции И Конкурентоспособность Предприятия Курсовая Работа
Реферат по теме Обеспечение работников средствами защиты
Реферат по теме Древняя индийская цивилизация
Курсовая работа по теме Употребление жаргонизмов в речи подростков
Реферат по теме Видатні постаті японського менеджменту
Реферат: Первая научная революция. Гелиоцентрическая система мира(Концепции современного естествознания)
Реферат: Лекции по маркетинговым исследованиям
Курсовая работа: Роман Ч.П. Сноу "Пора сподівань" як роман виховання
Религия, ее место в системе отношений человека и окружающего мира. Атеизм
Дипломная работа по теме Пути повышения конкурентоспособности предприятия
Реферат По Физике Звуковые Волны
Контрольная работа: Экологическое право, основы. Скачать бесплатно и без регистрации
Курсовая работа по теме Идейно-художественные особенности литературных сказов уральских писателей (На примере сказов южно-уральских писателей С.И. Черепанова, С.К. Власовой, Н.Г. Кондратковской)
Возмещение морального вреда
Реферат На Тему Китай-Город
Написать Сочинение Осенний День Сокольники
Сочинение: Цель искусства - поучать развлекая - Оскар Уальд по произведению Кентервильское привидение
Доклад по теме Гипербола в искусстве
Курсовая работа: Производство криолита
Статья: Факторы безопасности труда и их взаимосвязь
Роль ученого Рональда Фишера в биологической статистике - Биология и естествознание реферат
Ортология и фонетика - Иностранные языки и языкознание контрольная работа
Анализ современного развития менеджмента - Менеджмент и трудовые отношения курсовая работа


Report Page