Смекни!
smekni.com

Экспертная система прогнозирования успеваемости студентов в ВУЗах (стр. 6 из 12)

110. If Y=3 and P=1 and L=”good” then B=3

111. If Y=3 and P=2 and L=”bed” then B=3

112. If Y=3 and P=2 and L=”good” then B=4

113. If Y=3 and P=3 and L=”bed” then B=3

114. If Y=3 and P=3 and L=”good” then B=4

115. If Y=4 and P=1 and L=”bed” then B=3

116. If Y=4 and P=1 and L=”good” then B=4

117. If Y=4 and P=2 and L=”bed” then B=4

118. If Y=4 and P=2 and L=”good” then B=4

119. If Y=4 and P=3 and L=”bed” then B=5

120. If Y=4 and P=3 and L=”good” then B=5

121. If Y=5 and P=1 and L=”bed” then B=4

122. If Y=5 and P=1 and L=”good” then B=5

123. If Y=5 and P=2 and L=”bed” then B=4

124. If Y=5 and P=2 and L=”good” then B=5

125. If Y=5 and P=3 and L=”bed” then B=5

126. If Y=5 and P=3 and L=”good” then B=5

При наличии правил базы знаний и входящих в нее базы данных реализуем этот алгоритм в прологе. Листинг программы представлен в приложении 1.

3.3 Реализация пользовательского интерфейса в SWI-Prolog

3.3.1 Создание интерфейса

XPCE это платформо-независимый GUI тулкит для SWI-Prolog, Lisp и других интерактивный динамически типизированных языков программирования. Хотя XPCE замышлялся, как не привязанный к конкретному языку программирования, наибольшую популярность этот фреймворк получил именно с Prolog. Развитие графической библиотеки XPCE было начато в 1987, совместно с началом работ над SWI-Prolog. Поддерживает кнопки, меню, слайдеры, вкладки и другие базовые GUI виджеты. XPCE доступен на всех платформах, поддерживаемых SWI-Prolog'ом.

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

Make_same_width(Gr1, Gr2) :-

send(Gr1, width, Gr2?width).

create_person_dialog :-

new(D, dialog(‘Enter new person’)),\созданиеформы

send(D, append, new(BG, box(0,30)))\ задаемразмеры

send(D, append, new(BI, box(800,0))),

send(D, append, new(F,label)), \ создание label

send(D, append, new(Name, text_item(name))), \\ считываниеданных

send(D, append, new(Age, text_item(age))),

send(D, append, new(Sex, menu(sex, marked))),

send(F, append, ‘To begin testing enter its name and age and press button “ Create “.’), \ пояснительнаянадписьнаформе

send(Sex, append, female),

send(Sex, append, male),

send(Age, type, int),

send(D, append,

button(create, message(@prolog, create_person,

Name?selection,

Age?selection,

Sex?selection))), \ кнопкадлявыводаданных

send(D, default_button, create),send(D, open).

Create_person(Name, Age, Sex) :-

writeln(‘----------------------------------------------------------------‘),

format(‘Student ~w person ~w of ~d years old your estimation –‘,

[Sex, Name, Age]). \ форматвыводаданных:- create_person_dialog.

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

Рис. 3.1. «Форма авторизации»

Рис. 3.2. «Пример ввода данных»

В результате нажатия на кнопку «Create» появиться следующее окно с вопросами, листинг представлен ниже:

make_name_prompter(P) :-

new(P, dialog),

send(P, kind, transient),

send(P, append, new(BI, box(800,0))),

send(P, append, label(prompt)),

send(P, append,

new(TI, text_item(name, ‘’,

message(P?ok_member, execute)))),

send(P, append, button(ok, message(P, return, TI?selection))),

send(P, append, button(cancel, message(P, return, @nil))).

Ask_name(Prompt, Label, Name) :-

send(@name_prompter?prompt_member, selection, Prompt),

send(@name_prompter?name_member, label, Label),

send(@name_prompter?name_member, clear),

get(@name_prompter, confirm_centered, RawName),

send(@name_prompter, show, @off),

RawName \== @nil,

Name = RawName.

:-ask_name.

В результате выполнения данного отрывка программы получим следующую форму:

Рис. 3.3. «Форма получения исходных данных»

Рис/3.4. «Пример заполнения»

3.3.2 Инструкция пользователя

1. Запустить программный продукт. В результате этой операции появиться на экране форма:

2. Ввести в колонку «Имя» - ваше имя, в колонке «Возраст ваш возраст», и выбрать ваш пол, а затем нажать кнопку «Create». В результате чего вы увидите еще одну форму:

3. Отвечаете не все вопросы , вводя в графу «Имя » ответ и нажимая «ок». После ответа не последний вопрос в командном окне вы увидите ваш результат , например в таком виде:

--------------------------------------------------------------------------------

Student female person Kseniya of 25 years old your estimation -5

4. Закрываете программу нажатием на красный крестик в верхнем углу.

3.4 Тестирование продукта и расчет его эффективности

Для расчете эффективности системы применим методы регрессионного анализа для этого нужно реализовать экспертную систему в другом пакете для сравнения был выбран пакет MatLab/ Simulink с помощью Fuzzy Logic Toolbox.

3.4.1 Реализация с помощью нечеткой логики в MatLab/ Simulink

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

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

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

Ниже на рисунках мы представим входные в систему переменные

Теперь их нужно вязать между собой и сделем мы это с помощью Simulink-модели которая представлена ниже.

Листинг программы:

a1 = readfis('pr1')

a2 = readfis('pr2')

a3 = readfis('pr3')

a4 = readfis('pr4')

a5 = readfis('pr5')

a6 = readfis('pr6')

a7 = readfis('pr7')

a8 = readfis('pr8')

a9 = readfis('pr9')

a10 = readfis('pr10')

Рис. 3.5. «Представление системы в MatLab/ Simulink»

3.4.2 Тестирование экспертных систем и расчет эффективности с помощью регрессионного анализа

Протестируем систему в прологе со сведущими исходными данными:LIO=1;

LIK=1;

LSR=1;

LSS=1;

LP=1;

PSL=2;

PSP=1;

PSB=3;

PL=80;

PP=80;

YHB=5;

YHY=1;

YTB=5;

YTS=1;

YSB=5;

YSS=1;

KYRS=1;



Результат:

-------------------------------------------------------------------------------

Student female person Kseniya of 22 years old your estimation -5

А теперь введем те же самые данные в систему в MatLab/ Simulink. Ниже представленный результат. А потом сравним их с помьщью регрессионного анализа

Поскольку в MatLab/ Simulink мы применяем нечеткую логику , то выходные параметры являются не целыми числами и мы их округляем в большую сторону. В результате повторного тестирования мы получаем данные в следствии 10 экспериментов и анализируем их с помощью регрессионного анализа.

Ниже преведены данные и реализация регрессионного анализа:P=[5 5 5 4 5 3 3 4 4 5];

Z=[5 5 5 4 5 3 3 4 4 5];

[m,b,r]=postreg(Z,P)

m = 1.0000

b =9.5844e-016

r =1

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

Выводы по разделу 3

В результате проведения исследования можно сказать, что продукционная модель построения знаний в экспертной системе прогнозирования результатов сессии на анализе текущей успеваемости она, являются наиболее наглядным средствами представления знаний и наиболее аффективными для данной модели. Также эта модель легко реализуется в языке MatLat/ Simulink с помощью Fuzzy Logic Toolbox , поскольку логический вывод уже реализован в этом пакете. В результате мы провели сравнения программ с помощью регрессионного анализа.


РАЗДЕЛ 4. РАЗРАБОТКА МЕРОПРИЯТИЙ ПО ОБЕСПЕЧЕНИЮ БЕЗОПАСНОСТИ ЖИЗНЕДЕЯТЕЛЬНОСТИ

4.1 Предмет исследования

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

4.1.1 Анализ опасных и вредных производственных факторов, действующих в рабочей зоне проектируемого объекта