Разработка экспертной системы 'Аналитический тест'. Курсовая работа (т). Информационное обеспечение, программирование.

Разработка экспертной системы 'Аналитический тест'. Курсовая работа (т). Информационное обеспечение, программирование.




⚡ 👉🏻👉🏻👉🏻 ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻


























































Информационное обеспечение, программирование

Вы можете узнать стоимость помощи в написании студенческой работы.


Помощь в написании работы, которую точно примут!

Похожие работы на - Разработка экспертной системы 'Аналитический тест'

Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе

Нужна качественная работа без плагиата?

Не нашел материал для своей работы?


Поможем написать качественную работу Без плагиата!

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА К КУРСОВОЙ РАБОТЕ

Разработка экспертной системы «Аналитический тест»


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

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

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

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

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

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

· алгоритмическое решение задачи неизвестно;

· задача не может быть определена в числовой форме;

· цели задачи не могут быть выражены в терминах точно определенной функции.

Как правило, такие задачи обладают неполнотой, ошибочностью, неоднозначностью и противоречивостью.

Экспертные системы не отвергают традиционного подхода к программированию, они предлагают технологию и методы решения неформализованных задач. Эти методы практически не зависят от типов решаемых задач.



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 подгруппы.

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


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

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

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

Признаки записываются следующим образом: Conds (Признак, Значение_признака).

Правила же формируются так: Rules («Тест», Результат, Сочетание_признаков) .

Предикаты Yes (№_вопроса, Баллы), No (№_вопроса, Баллы), M (№_вопроса, Баллы) определяют количество баллов, засчитываемое за тот или иной вариант ответа на вопрос №_вопроса .

Предикаты L1 (Список_вопросов),…, L10 (Список_вопросов) определяют номера вопросов по группам. А предикаты A1List (Список_баллов),…, A4List(List), В1List (Список_баллов),…, В4List(List),…, J1List (Список_баллов),…, J4List(List) определяют принадлежность к группе по количеству набранных баллов.


Кодирование осуществлено на языке Пролог. Результат кодирования приведен в приложении А.

Были использованы следующие домены:

List = Intgr* - списки вопросов и результатов.

SList = Strng* - списки признаков (сочетание результатов).

ROW, COL, ATTR = INTEGER, COL - позиция на экране

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

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

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


Язык Пролог прошел длинный путь развития (около 30 лет). За это время появилось значительное число его реализаций, причем наиболее распространенный Turbo Prolog доступен пользователям ПЭВМ. Существует мнение, что Пролог пропагандируется и используется преимущественно специалистами, решающими задачи из области искусственного интеллекта. Однако, как показывает опыт использования различных Пролог - систем, язык Пролог может успешно применяться для разработки сложных программных систем традиционного назначения. Он нашел применение в системах автоматизированного проектирования, системах символьных вычислений и др. Обработка текста на естественном языке также является интересным и перспективным направлением Пролога.

В данной курсовой работе была поставлена задача разработки и программной реализации аналитической экспертной системы.

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


1. Братко И. Программирование на языке Пролог для искусственного интеллекта: Пер. с англ. - М.: Мир, 1990. - 560 с., ил.

2. Искусственный интеллект: в 3 кн. Кн. 1. Системы общения и экспертные системы: Справочник /Под ред. Э.В. Попова. - М.: Радио и связь, 1990. - 464 с., ил.

3. Лорьер Ж.-Л. Системы искусственного интеллекта: Пер. с франц. - М.: Мир, 1991. - 568 с., ил.

4. Стерлинг Л., Шапиро Э. Искусство программирования на языке Пролог. Пер. с англ. - М.: Мир, 1990. - 336 с., ил.



, COL, LEN, ATTR = INTEGER= STRING*= INTEGER* = cr; esc; break; tab; btab; del; bdel; ctrlbdel; ins;; home; fkey(INTEGER); up; down; left; right;; ctrlright; ctrlend; ctrlhome; pgup; pgdn;; ctrlpgdn; char(CHAR); otherspec


(STRINGLIST, COL, COL) /* длина самой длинной строки */

listlen (STRINGLIST, ROW) /* длина списка */(ROW, COL, STRINGLIST) /* вывод списка на экран (для меню) */(ATTR, ATTR) /* возврат обратных атрибутов */(ROW, ROW, ROW) min (COL, COL, COL)(LEN, LEN, LEN) min (INTEGER, INTEGER, INTEGER)(ROW, ROW, ROW) max (COL, COL, COL)(LEN, LEN, LEN) max (INTEGER, INTEGER, INTEGER)

([H|T], MAX, MAX1):-_len (H, LENGTH),>MAX,!,(T, LENGTH, MAX1).([_|T], MAX, MAX1): - maxlen (T, MAX, MAX1).([], LENGTH, LENGTH).

(_,_, []).(LI, ANTKOL, [H|T]):-_str (LI, 0, ANTKOL, H),=LI+1,(LI1, ANTKOL, T).

(A1, A2):-(A1,$07, H11),(H11,4, H12),(A1,$70, H21),(H21,4, H22),(A1,$08, H31),2=H12+H22+H31.


/* Смотрим первую большую букву в строке */

/* это должна быть первая буква в строке, иначе

upc (CHAR, CHAR) /* заглавная буква */(CHAR, CHAR) /* прописная буква */

try_upper (CHAR, STRING)(CHAR, STRINGLIST, ROW, ROW)(CHAR, STRINGLIST, ROW, ROW)(CHAR, STRINGLIST, ROW)

(CHAR, CH):->='a', CHAR<='z',!,_int (CHAR, CI), CI1=CI-32, char_int (CH, CI1).(CH, CH).

(CHAR, CH):->='A', CHAR<='Z',!,_int (CHAR, CI), CI1=CI+32, char_int (CH, CI1).(CH, CH).

_upper (CHAR, STRING):-(STRING, CH,_),>='A', CH<='Z',!,=CHAR._upper (CHAR, STRING):-(STRING,_, REST),_upper (CHAR, REST).

(CHAR, [W|_], N, N):-_upper (CHAR, W),!.(CHAR, [_|T], N1, N2):-= N1+1,(CHAR, T, N3, N2).

(CHAR, [W|_], N, N):-(W, CHAR,_),!.(CHAR, [_|T], N1, N2):-= N1+1,(CHAR, T, N3, N2).

(CHAR, LIST, SELECTION):-(CHAR, CH), tryfirstupper (CH, LIST, 0, SELECTION),!.(CHAR, LIST, SELECTION):-(CHAR, CH), tryfirstletter (CH, LIST, 0, SELECTION).

(ROW, COL, ROW, COL, ROW, COL)(ATTR, ROW, COL, ROW, COL)

(LI, KOL, DLI, DKOL, ALI, AKOL):-<25-DLI, KOL<80-DKOL,!, ALI=LI, AKOL=KOL.(LI,_, DLI, DKOL, ALI, AKOL):-<25-DLI,!, ALI=LI, AKOL=80-DKOL.(_, KOL, DLI, DKOL, ALI, AKOL):-<80-DKOL,!, ALI=25-DLI, AKOL=KOL.

(_,_, DLI, DKOL, ALI, AKOL):-=25-DLI, AKOL=80-DKOL.

(0, R, C, R, C): - !.(_, R1, C1, R2, C2): - R2=R1+2, C2=C1+2.


/* Readkey(KEY) - возвращает в KEY символ */

PREDICATES(KEY)(KEY, CHAR, INTEGER)(KEY, INTEGER)

(KEY): - readchar(T),_int (T, VAL),(KEY, T, VAL).(KEY,_, 0): - !, readchar(T), char_int (T, VAL), readkey2 (KEY, VAL).(cr,_, 13): - !.(esc,_, 27): - !.(break,_, 3): - !.(tab,_, 9): - !.(bdel,_, 8): - !.(ctrlbdel,_, 127): - !.(char(T), T,_).(btab, 15): - !.(del, 83): - !.(ins, 82): - !.(up, 72): - !.(down, 80): - !.(left, 75): - !.(right, 77): - !.(pgup, 73): - !.(pgdn, 81): - !.(end, 79): - !.(home, 71): - !.(ctrlleft, 115): - !.(ctrlright, 116): - !.(ctrlend, 117): - !.(ctrlpgdn, 118): - !.(ctrlhome, 119): - !.(ctrlpgup, 132): - !.(fkey(N), VAL): - VAL>58, VAL<70, N=VAL-58,!.(fkey(N), VAL): - VAL>=84, VAL<104, N=11+VAL-84,!.(otherspec,_).


/*(ROW, COL, WATTR, FATTR, STRINGLIST, HEADER, STARTCHOICE, SELECTION)


ROW, COL - позиция на экране, FATTR - определяют атрибуты окна и рамки

если FATTR=0 то рамки нет- список пунктов меню- заголовок- выбранный пункт меню.


Ex: menu (5,5,7,7, [this, is, a, test], «select word», 0, CHOICE)

(ROW, COL, ATTR, ATTR, STRINGLIST, STRING, INTEGER, INTEGER)(ROW, COL, ATTR, ATTR, STRINGLIST, STRING, ROW, COL)(SYMBOL, ROW, ATTR, STRINGLIST, ROW, COl, INTEGER)(KEY, STRINGLIST, ROW, ROW, ROW, SYMBOL)

(ROW, COL, WATTR, FATTR, LIST, HEADER, STARTCHOICE, CHOICE):-(ROW, COL, WATTR, FATTR, LIST, HEADER, NOOFROW, LEN),=STARTCHOICE-1, max (0, ST1, ST2), MAX=NOOFROW-1, min (ST2, MAX, STARTROW),(cont, STARTROW, WATTR, LIST, NOOFROW, LEN, CHOICE),.

(ROW, COL, WATTR, FATTR, LIST, HEADER, NOOFROW, NOOFCOL):-(LIST, 0, MAXNOOFCOL),_len (HEADER, HEADLEN),=HEADLEN+4,(HEADL1, MAXNOOFCOL, NOOFCOL),(LIST, LEN), LEN>0,=LEN,(FATTR, NOOFROW, NOOFCOL, HH1, HH2),(ROW, COL, HH1, HH2, AROW, ACOL),(81, WATTR, FATTR, HEADER, AROW, ACOL, HH1, HH2),(0, NOOFCOL, LIST).

(cont, ROW, ATTR, LIST, MAXROW, NOOFCOL, CHOICE): - !,(ATTR, REV),_attr (ROW, 0, NOOFCOL, REV),(ROW, 0),(KEY),_attr (ROW, 0, NOOFCOL, ATTR),(KEY, LIST, MAXROW, ROW, NEXTROW, CONT),(CONT, NEXTROW, ATTR, LIST, MAXROW, NOOFCOL, CHOICE).(esc, ROW,_,_,_,_, CHOICE): - !, CHOICE=ROW+1.(_, ROW, ATTR,_,_, NOOFCOL, CHOICE):-=ROW+1,(ATTR, REV),_attr (ROW, 0, NOOFCOL, REV).

(esc,_,_,_, - 1, esc): - !.(fkey(10),_,_, ROW, ROW, stop): - !.(char(C), LIST,_,_, CH, selection): - tryletter (C, LIST, CH),!.(cr,_,_, ROW, CH, selection): - !, CH=ROW.(up,_,_, ROW, NEXTROW, cont): - ROW>0,!, NEXTROW=ROW-1.(down,_, MAXROW, ROW, NEXTROW, cont): - NEXTROW=ROW+1, NEXTROWПохожие работы на - Разработка экспертной системы 'Аналитический тест' Курсовая работа (т). Информационное обеспечение, программирование.
Отчет по практике по теме ООО "Брюкке"
Курсовая работа по теме Статистический анализ показателей эффективности финансово-хозяйственной деятельности
Питание Беременной Реферат
Дипломная работа по теме Экономический анализ эффективности использования оборотных средств в сельскохозяйственном производстве на примере СПК 'Лядецкий'
Оценки За Курсовые Идут В Диплом
Курсовая работа по теме Взаимосвязь эффективности производительности фирмы и уровня жизни работника
Дипломная работа по теме Роль мотивационных факторов в выборе профессии у школьников
Эссе Время Новых Героев Толерантность Расизм Феминизм
Реферат На Тему Технология Ведения Бизнеса
Доклад по теме Параллельные машины баз данных
Контрольная работа: Международный рынок государственных долговых обязательств. Скачать бесплатно и без регистрации
Реферат: Виды экономического эффекта
Сочинение На Тему Осень Письмо Другу
Итоги Года Эссе
Переменный Электрический Ток Реферат
Четвертый Класс Контрольная Работа 3 Четверть
Курсовая Работа Развитие Менеджмента В России
Реферат по теме Фундаменталистская идеология "исламского возрождения"
Дипломная Работа На Тему Музыка В Система Художественного Образования И Воспитания Младших Школьников
Контрольная Работа По Литературное 4 Класс
психодиагностических методов
Реферат: Технология формирования позитивного имиджа
Похожие работы на - Сущность и признаки организованной преступности

Report Page