3.2 Создание правил продукционной модели
Входные данные продукционной модели представим в таблице 3.2 в виде таблицы в которой будет представлен вопрос , переменная которая ему соответствует и варианты ответа.
Таблица 3.2
«Входные данные»
Вопрос | Переменная | Варианты ответа |
18. На каком курсе вы учитесь? | KYRS | · 1(1 курс) · 2(2 -6 курсы) |
19. Проживаете ли вы в общежитии? | LP | · Yes · No |
20. Хорошие ли у Вас отношения с одногрупниками? | LIO | · Yes · No |
21. Хорошие ли у Вас отношения с куратором? | LIK | · Yes · No |
22. Ваши родители одобряют Ваш выбор? | LSR | · Yes · No |
23. Вам нравится Ваша специальность? | LSS | · Yes · No |
24. Сколько часов в день Вы тратите на выполнение лабораторных работ? | PSP | · 1 · 2 · 3 |
25. Сколько часов в день Вы тратите на подготовку к лекциям? | PSL | · 1 · 2 · 3 |
26. Сколько раз в месяц вы посещаете библиотеку? | PSB | · 1 · 2 · 3 |
27. Оцените по 100-балльной системе Ваше посещение лекций? | PL | · 30 · 60 · 100 |
28. Оцените по 100-балльной системе Ваше посещение практических занятий? | PP | · 30 · 60 · 100 |
29. Какой у Вас средний балл прошлой сессии? | YSB | · 3 · 4 · 5 |
30. Вы довольны результатами предыдущей сессии? | YSS | · Yes · No |
31. Ваш средний балл аттестата в школе? | YHB | · 3 · 4 · 5 |
32. Ваша школа имеет высокий уровень по техническим предметам? | YHY | · Yes · No |
33. Ваша текущая успеваемость, примерно в баллах? | YTB | · 3 · 4 · 5 |
34. Вы считаете , что полностью отдаетесь учебе? | YTS | · Yes · No |
На основе этих данных построим базу знаний продукционной модели с помощью простой конструкции :
Если (условие), то (действие),
Набор правил для экспертной системы прогнозирования сдачи сессии студентами на основании текущей успеваемости:
3. If LIO=”Yes” and LIK=”Yes” then LI = “Yes”
4. If LIO=”Yes” and LIK=”No” then LI = “Yes”
5. If LIO=”No” and LIK=”Yes” then LI = “No”
6. If LIO=”No” and LIK=”No” then LI = “No”
7. If LSR=”Yes” and LSS=”Yes” then LS= “Yes”
8. If LSR=”Yes” and LSS=”No” then LS= “No”
9. If LSR=”No” and LSS=”Yes” then LS= “Yes”
10. If LSR=”No” and LSS=”No” then LS= “No”
11. If LS=”Yes” and LI=”Yes” and LP = “Yes” then L= “good”
12. If LS=”Yes” and LI=”Yes” and LP = “No” then L= “good”
13. If LS=”Yes” and LI=”No” and LP = “Yes” then L= “good”
14. If LS=”Yes” and LI=”No” and LP = “No” then L= “bed”
15. If LS=”No” and LI=”Yes” and LP = “No” then L= “good”
16. If LS=”No” and LI=”Yes” and LP = “Yes” then L= “good”
17. If LS=”No” and LI=”No” and LP = “Yes” then L= “bed”
18. If LS=”No” and LI=”No” and LP = “No” then L= “bed”
19. If PSL=1 and PSP=1 and PSB=1 then PS= 1
20. If PSL=1 and PSP=1 and PSB=2 then PS= 1
21. If PSL=1 and PSP=1 and PSB=3 then PS= 2
22. If PSL=1 and PSP=2 and PSB=1 then PS= 2
23. If PSL=1 and PSP=2 and PSB=2 then PS= 3
24. If PSL=1 and PSP=2 and PSB=3 then PS= 2
25. If PSL=1 and PSP=3 and PSB=1 then PS= 2
26. If PSL=1 and PSP=3 and PSB=2 then PS= 3
27. If PSL=1 and PSP=3 and PSB=3 then PS= 3
28. If PSL=2 and PSP=1 and PSB=1 then PS= 2
29. If PSL=2 and PSP=1 and PSB=2 then PS= 2
30. If PSL=2 and PSP=1 and PSB=3 then PS= 3
31. If PSL=2 and PSP=2 and PSB=1 then PS= 2
32. If PSL=2 and PSP=2 and PSB=2 then PS= 2
33. If PSL=2 and PSP=2 and PSB=3 then PS= 3
34. If PSL=2 and PSP=3 and PSB=1 then PS= 3
35. If PSL=2 and PSP=3 and PSB=2 then PS= 3
36. If PSL=2 and PSP=3 and PSB=3 then PS= 3
37. If PSL=3 and PSP=1 and PSB=1 then PS= 2
38. If PSL=3 and PSP=1 and PSB=2 then PS= 2
39. If PSL=3 and PSP=1 and PSB=3 then PS= 3
40. If PSL=3 and PSP=2 and PSB=1 then PS= 2
41. If PSL=3 and PSP=2 and PSB=2 then PS= 3
42. If PSL=3 and PSP=2 and PSB=3 then PS= 3
43. If PSL=3 and PSP=3 and PSB=1 then PS= 3
44. If PSL=3 and PSP=3 and PSB=2 then PS= 3
45. If PSL=3 and PSP=3 and PSB=3 then PS= 3
46. If PL<30 and PP<30 and PS=1 then P=1
47. If PL<30 and PP<30 and PS=2 then P=1
48. If PL<30 and PP<30 and PS=3 then P=2
49. If PL<30 and 30<PP<60 and PS=1 then P=1
50. If PL<30 and 30<PP<60 and PS=2 then P=2
51. If PL<30 and 30<PP<60 and PS=3 then P=2
52. If PL<30 and PP>60 and PS=1 then P=2
53. If PL<30 and PP>60 and PS=2 then P=2
54. If PL<30 and PP>60 and PS=3 then P=3
55. If 30<PL<60 and PP<30 and PS=1 then P=1
56. If 30<PL<60 and PP<30 and PS=2 then P=1
57. If 30<PL<60 and PP<30 and PS=3 then P=2
58. If 30<PL<60 and 30<PP<60 and PS=1 then P=1
59. If 30<PL<60 and 30<PP<60 and PS=2 then P=2
60. If 30<PL<60 and 30<PP<60 and PS=3 then P=2
61. If 30<PL<60 and PP>60 and PS=1 then P=2
62. If 30<PL<60 and PP>60 and PS=2 then P=2
63. If 30<PL<60 and PP>60 and PS=3 then P=3
64. If PL>60 and PP<30 and PS=1 then P=1
65. If PL>60 and PP<30 and PS=2 then P=1
66. If PL>60 and PP<30 and PS=3 then P=2
67. If PL>60 and 30<PP<60 and PS=1 then P=1
68. If PL>60 and 30<PP<60 and PS=2 then P=3
69. If PL>60 and 30<PP<60 and PS=3 then P=3
70. If PL>60 and PP>60 and PS=1 then P=2
71. If PL>60 and PP>60 and PS=2 then P=2
72. If PL>60 and PP>60 and PS=3 then P=3
73. If YHB=3 and YHY=”Yes” then YH=3
74. If YHB=3 and YHY=”No” then YH=3
75. If YHB=4 and YHY=”Yes” then YH=5
76. If YHB=4 and YHY=”No” then YH=4
77. If YHB=5 and YHY=”Yes” then YH=5
78. If YHB=5 and YHY=”No” then YH=4
79. If YTB=3 and YTS=”Yes” then YT=3
80. If YTB =3 and YTS =”No” then YT=3
81. If YTB =4 and YTS =”Yes” then YT=3
82. If YTB =4 and YTS =”No” then YT=4
83. If YTB =5 and YTS =”Yes” then YT=5
84. If YTB =5 and YTS =”No” then YT=5
85. If YSB=3 and YSS=”Yes” then YS=3
86. If YSB=3 and YSS=”No” then YS=3
87. If YSB=4 and YSS=”Yes” then YS=4
88. If YSB=4 and YSS=”No” then YS=4
89. If YSB=5 and YSS=”Yes” then YS=5
90. If YSB=5 and YSS=”No” then YS=3
91. If KYRS=1 and YH=3 and YT=3 then Y=3
92. If KYRS=1 and YH=3 and YT=4 then Y=3
93. If KYRS=1 and YH=3 and YT=5 then Y=4
94. If KYRS=1 and YH=4 and YT=3 then Y=3
95. If KYRS=1 and YH=4 and YT=4 then Y=4
96. If KYRS=1 and YH=4 and YT=5 then Y=5
97. If KYRS=1 and YH=5 and YT=3 then Y=4
98. If KYRS=1 and YH=5 and YT=4 then Y=4
99. If KYRS=1 and YH=5 and YT=5 then Y=5
100. If KYRS>1 and YS=3 and YT=3 then Y=3
101. If KYRS>1 and YS=3 and YT=4 then Y=3
102. If KYRS>1 and YS=3 and YT=5 then Y=4
103. If KYRS>1 and YS=4 and YT=3 then Y=4
104. If KYRS>1 and YS=4 and YT=4 then Y=4
105. If KYRS>1 and YS=4 and YT=5 then Y=5
106. If KYRS>1 and YS=5 and YT=3 then Y=4
107. If KYRS>1 and YS=5 and YT=4 then Y=4
108. If KYRS>1 and YS=5 and YT=5 then Y=5
109. If Y=3 and P=1 and L=”bed” then B=3
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.
... автономность и степень их взаимодействия определяется содержанием решаемых задач. В заключение попытаемся сформулировать основные выводы исследования. Выводы Процесс профессионального становления учителя на стадии обучения в педагогическом вузе является неравномерным; отмечаются периоды резкого повышения и снижения показателей обученности, смена основных направлений их динамики. В основе ...
... < 1.0 3 6 9 12 Согласно приведенным данным в зависимости от дидактических целей обучения студенты выполняют тесты заданного уровня и знания могут оцениваться по принятой в Агролицее шкале (2 уровень усвоения). Далее, исходя из К усвоения разработка системы рейтинг-контроля проводится по следующему алгоритмы. После изучения дисциплины рассчитывается общий К усвоения каждого студента ...
... определенное время (период подготовки высококвалифицированного рабочего или специалиста). Взаимодействие государственных органов с заказчиками кадров призвано стимулировать гибкость и рационализацию управления образовательной системой, распределять между ними ответственность за процесс и качество профессиональной подготовки, сохраняя при этом единое образовательное пространство в государстве. ...
... . М., 1973. С.12-13. Якобсон П.М. Психологические проблемы мотивации поведения человека. М., 1969. Якунин В.А. Психология учебной деятельности студентов. - М.-С.-Пет., 1994 Развитие учебной мотивации студента средствами психологической службы. Барчуков Е.В. АННОТАЦИЯ на дипломную работу “Развитие учебной мотивации студента средствами психологической службы”. Переход от ...
0 комментариев