50273 (Экспертная система прогнозирования успеваемости студентов в ВУЗах), страница 5

2016-07-29СтудИзба

Описание файла

Документ из архива "Экспертная система прогнозирования успеваемости студентов в ВУЗах", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "50273"

Текст 5 страницы из документа "50273"

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

Рис. 2.1. «Факторы, от которых зависит прогнозируемая оценка»

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

Рис.2.2. «Факторы, от которых зависит от которых зависит успеваемости»

Рис.2.3. «Факторы, от которых зависит от которых зависит посещаемость»

Рис.2.3. «Факторы, от которых зависит от которых зависят личные факторы»

Базу данных нашей системы наполняет сам пользователь, для этого отвечая на следующий набор вопросов:

  1. Проживаете ли вы в общежитии?(Yes or No).

  2. Хорошие ли у Вас отношения с одногрупниками?( Yes or No).

  3. Хорошие ли у Вас отношения с куратором?( Yes or No).

  4. Ваши родители одобряют Ваш выбор? ( Yes or No).

  5. Вам нравится Ваша специальность? ( Yes or No).

  6. Сколько часов в день Вы тратите на выполнение лабораторных работ(1,2,3)?

  7. Сколько часов в день Вы тратите на подготовку к лекциям(1,2,3)?

  8. Сколько раз в месяц вы посещаете библиотеку(1,2,3)?

  9. Оцените по 100-балльной системе Ваше посещение лекций?

  10. Оцените по 100-балльной системе Ваше посещение практических занятий?

  11. Какой у Вас средний балл прошлой сессии(3,4,5)?

  12. Вы довольны результатами предыдущей сессии?

  13. Ваш средний балл аттестата в школе(3,4,5)?

  14. Ваша школа имеет высокий уровень по техническим предметам?

  15. Ваша текущая успеваемость, примерно в баллах(3,4,5)?

  16. Вы считаете , что полностью отдаетесь учебе?

  17. На каком курсе вы учитесь?

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

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



РАЗДЕЛ 3. ПРОЕКТИРОВАНИЕ ЭКСПЕРТНОЙ СИСТЕМЫ

3.1 Описание языка логического программирования SWI-Prolog

SWI-Prolog - язык и система логического программирования, основанные на языке предикатов математической логики дизъюнктов Хорна, представляющей собой подмножество логики предикатов первого порядка.

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

Факты в языке Пролог описываются логическими предикатами с конкретными значениями. Правила в Прологе записываются в форме правил логического вывода с логическими заключениями и списком логических условий.

Особую роль в интерпретаторе Пролога играют конкретные запросы к базам знаний, на которые система логического программирования генерирует ответы «истина» и «ложь».

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

Факты в базах знаний на языке Пролог представляют конкретные сведения (знания). Обобщённые сведения и знания в языке Пролог задаются правилами логического вывода (определениями) и наборами таких правил вывода (определений) над конкретными фактами и обобщёнными сведениями.

Начало истории языка относится к 1970-м годам.[7] Будучи декларативным языком программирования, Пролог воспринимает в качестве программы некоторое описание задачи или баз знаний и сам производит логический вывод, а также поиск решения задач, пользуясь механизмом бэктрекинга (англ. backtracking) и унификацией.

Prolog использует один тип данных, терм, который бывает нескольких типов:

  • атом это отдельный объект, считающийся элементарным. В SWI-Prolog атом представляется последовательностью букв нижнего и верхнего регистра, цифр и символа подчеркивания ‘_’, начинающейся со строчной буквы. Кроме того, любой набор допустимых символов, заключенный в апострофы, также является атомом. Наконец, комбинации специальных символов + - * = : & также являются атомами;

  • числа в SWI-Prolog бывают целыми (Integer) и вещественными (Float).;

  • переменная являются строки символов, цифр и символа подчеркивания, начинающиеся с заглавной буквы или символа подчеркивания;

  • составные термы (функции) состоят из имени функции (нечислового атома) и списка аргументов (термов SWI-Prolog, то есть атомов, чисел, переменных или других составных термов), заключенных в круглые скобки и разделенных запятыми. Группы составных термов используют для составления фраз SWI-Prolog. Нельзя помещать символ пробела между функтором (именем функции) и открывающей круглой скобкой. В других позициях, однако, пробелы могут быть полезны для создания более читаемых программ.

Факт – это утверждение о том, что соблюдается некоторое конкретное отношение. Он является безусловно верным.

Арифметические выражения в языке SWI-Prolog имеется ряд встроенных функций для вычисления арифметических выражений, некоторые из которых перечислены в таблице 3.1.



Таблица 3.1.

«Арифметические выражения»

X + Y

Сумма X и Y

X - Y

Разность X и Y

X * Y

Произведение X и Y

X / Y

Деление X на Y

X mod Y

Остаток от деления X на Y

X // Y

Деление нацело X на Y

X ** Y

Возведение X в степень Y

- X

Смена знака X

abs(X)

Абсолютная величина числа X

max(X,Y)

Большее из чисел X и Y

min(X,Y)

Меньшее из чисел X и Y

sqrt(X)

Квадратный корень из X

random(Int)

Случайное целое число в диапазоне от 0 до Int

sin(X)

Синус X

cos(X)

Косинус X

tan(X)

Тангенс X

log(X)

Натуральный логарифм (ln) числа X

log10(X)

Десятичный логарифм (lg) числа X

float(X)

Вещественное число, соответствующее целому числу X

pi

3.14159 (приближенное значение числа )

е

2.71828 (приближенное значение числа е)

Список символов может быть представлен в виде строк, например, первый аргумент составного терма возраст (‘Борис’,10) - строка. При записи строки заключаются в кавычки.

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

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

имя_предиката (аргументы).

База данных на SWI-Prolog – это совокупность фактов. В процессе работы в базу данных можно добавлять новые факты, удалять или изменять старые.

Запрос - это последовательность предикатов, разделенных запятыми и завершающаяся точкой. С помощью запросов можно “спрашивать” базу данных о том, какие утверждения являются истинными. Предикат запроса называется целью.

Кроме фактов программы на языке SWI-Prolog могут содержать правила, позволяющие получать дополнительные знания о том мире, который описывает программа. Правило задает новый предикат через определенные ранее.

Правило состоит из головы (предиката) и тела (последовательности предикатов, разделенных запятыми). Голова и тело разделены знаком ‘:–’ и, подобно каждой фразе SWI-Prolog, правило должно заканчиваться точкой.

Знак ‘:–’ есть схематическая запись стрелки (<-) и показывает, что из правой части следует левая. Этот знак читается как “если”. Интуитивный смысл правила состоит в том, что цель, являющаяся головой, будет истинной, если SWI-Prolog сможет показать, что все выражения (подцели) в теле правила являются истинными.

3.2 Создание правил продукционной модели

Входные данные продукционной модели представим в таблице 3.2 в виде таблицы в которой будет представлен вопрос , переменная которая ему соответствует и варианты ответа.



Таблица 3.2

«Входные данные»

Вопрос

Переменная

Варианты ответа

  1. На каком курсе вы учитесь?

KYRS

  • 1(1 курс)

  • 2(2 -6 курсы)

  1. Проживаете ли вы в общежитии?

LP

  • Yes

  • No

  1. Хорошие ли у Вас отношения с одногрупниками?

LIO

  • Yes

  • No

  1. Хорошие ли у Вас отношения с куратором?

LIK

  • Yes

  • No

  1. Ваши родители одобряют Ваш выбор?

LSR

  • Yes

  • No

  1. Вам нравится Ваша специальность?

LSS

  • Yes

  • No

  1. Сколько часов в день Вы тратите на выполнение лабораторных работ?

PSP

  • 1

  • 2

  • 3

  1. Сколько часов в день Вы тратите на подготовку к лекциям?

PSL

  • 1

  • 2

  • 3

  1. Сколько раз в месяц вы посещаете библиотеку?

PSB

  • 1

  • 2

  • 3

  1. Оцените по 100-балльной системе Ваше посещение лекций?

PL

  • 30

  • 60

  • 100

  1. Оцените по 100-балльной системе Ваше посещение практических занятий?

PP

  • 30

  • 60

  • 100

  1. Какой у Вас средний балл прошлой сессии?

YSB

  • 3

  • 4

  • 5

  1. Вы довольны результатами предыдущей сессии?

YSS

  • Yes

  • No

  1. Ваш средний балл аттестата в школе?

YHB

  • 3

  • 4

  • 5

  1. Ваша школа имеет высокий уровень по техническим предметам?

YHY

  • Yes

  • No

  1. Ваша текущая успеваемость, примерно в баллах?

YTB

  • 3

  • 4

  • 5

  1. Вы считаете , что полностью отдаетесь учебе?

YTS

  • Yes

  • No

На основе этих данных построим базу знаний продукционной модели с помощью простой конструкции :

Если (условие), то (действие),

Набор правил для экспертной системы прогнозирования сдачи сессии студентами на основании текущей успеваемости:

  1. If LIO=”Yes” and LIK=”Yes” then LI = “Yes”

  2. If LIO=”Yes” and LIK=”No” then LI = “Yes”

  3. If LIO=”No” and LIK=”Yes” then LI = “No”

  4. If LIO=”No” and LIK=”No” then LI = “No”

  5. If LSR=”Yes” and LSS=”Yes” then LS= “Yes”

  6. If LSR=”Yes” and LSS=”No” then LS= “No”

  7. If LSR=”No” and LSS=”Yes” then LS= “Yes”

  8. If LSR=”No” and LSS=”No” then LS= “No”

  9. If LS=”Yes” and LI=”Yes” and LP = “Yes” then L= “good”

  10. If LS=”Yes” and LI=”Yes” and LP = “No” then L= “good”

  11. If LS=”Yes” and LI=”No” and LP = “Yes” then L= “good”

  12. If LS=”Yes” and LI=”No” and LP = “No” then L= “bed”

  13. If LS=”No” and LI=”Yes” and LP = “No” then L= “good”

  14. If LS=”No” and LI=”Yes” and LP = “Yes” then L= “good”

  15. If LS=”No” and LI=”No” and LP = “Yes” then L= “bed”

  16. If LS=”No” and LI=”No” and LP = “No” then L= “bed”

  17. If PSL=1 and PSP=1 and PSB=1 then PS= 1

  18. If PSL=1 and PSP=1 and PSB=2 then PS= 1

  19. If PSL=1 and PSP=1 and PSB=3 then PS= 2

  20. If PSL=1 and PSP=2 and PSB=1 then PS= 2

  21. If PSL=1 and PSP=2 and PSB=2 then PS= 3

  22. If PSL=1 and PSP=2 and PSB=3 then PS= 2

  23. If PSL=1 and PSP=3 and PSB=1 then PS= 2

  24. If PSL=1 and PSP=3 and PSB=2 then PS= 3

  25. If PSL=1 and PSP=3 and PSB=3 then PS= 3

  26. If PSL=2 and PSP=1 and PSB=1 then PS= 2

  27. If PSL=2 and PSP=1 and PSB=2 then PS= 2

  28. If PSL=2 and PSP=1 and PSB=3 then PS= 3

  29. If PSL=2 and PSP=2 and PSB=1 then PS= 2

  30. If PSL=2 and PSP=2 and PSB=2 then PS= 2

  31. If PSL=2 and PSP=2 and PSB=3 then PS= 3

  32. If PSL=2 and PSP=3 and PSB=1 then PS= 3

  33. If PSL=2 and PSP=3 and PSB=2 then PS= 3

  34. If PSL=2 and PSP=3 and PSB=3 then PS= 3

  35. If PSL=3 and PSP=1 and PSB=1 then PS= 2

  36. If PSL=3 and PSP=1 and PSB=2 then PS= 2

  37. If PSL=3 and PSP=1 and PSB=3 then PS= 3

  38. If PSL=3 and PSP=2 and PSB=1 then PS= 2

  39. If PSL=3 and PSP=2 and PSB=2 then PS= 3

  40. If PSL=3 and PSP=2 and PSB=3 then PS= 3

  41. If PSL=3 and PSP=3 and PSB=1 then PS= 3

  42. If PSL=3 and PSP=3 and PSB=2 then PS= 3

  43. If PSL=3 and PSP=3 and PSB=3 then PS= 3

  44. If PL<30 and PP<30 and PS=1 then P=1

  45. If PL<30 and PP<30 and PS=2 then P=1

  46. If PL<30 and PP<30 and PS=3 then P=2

  47. If PL<30 and 30

  48. If PL<30 and 30

  49. If PL<30 and 30

  50. If PL60 and PS=1 then P=2

  51. If PL60 and PS=2 then P=2

  52. If PL60 and PS=3 then P=3

  53. If 30

  54. If 30

  55. If 30

  56. If 30

  57. If 30

  58. If 30

  59. If 30

  60. If 30

  61. If 30

  62. If PL>60 and PP<30 and PS=1 then P=1

  63. If PL>60 and PP<30 and PS=2 then P=1

  64. If PL>60 and PP<30 and PS=3 then P=2

  65. If PL>60 and 30

  66. If PL>60 and 30

  67. If PL>60 and 30

  68. If PL>60 and PP>60 and PS=1 then P=2

  69. If PL>60 and PP>60 and PS=2 then P=2

  70. If PL>60 and PP>60 and PS=3 then P=3

  71. If YHB=3 and YHY=”Yes” then YH=3

  72. If YHB=3 and YHY=”No” then YH=3

  73. If YHB=4 and YHY=”Yes” then YH=5

  74. If YHB=4 and YHY=”No” then YH=4

  75. If YHB=5 and YHY=”Yes” then YH=5

  76. If YHB=5 and YHY=”No” then YH=4

  77. If YTB=3 and YTS=”Yes” then YT=3

  78. If YTB =3 and YTS =”No” then YT=3

  79. If YTB =4 and YTS =”Yes” then YT=3

  80. If YTB =4 and YTS =”No” then YT=4

  81. If YTB =5 and YTS =”Yes” then YT=5

  82. If YTB =5 and YTS =”No” then YT=5

  83. If YSB=3 and YSS=”Yes” then YS=3

  84. If YSB=3 and YSS=”No” then YS=3

  85. If YSB=4 and YSS=”Yes” then YS=4

  86. If YSB=4 and YSS=”No” then YS=4

  87. If YSB=5 and YSS=”Yes” then YS=5

  88. If YSB=5 and YSS=”No” then YS=3

  89. If KYRS=1 and YH=3 and YT=3 then Y=3

  90. If KYRS=1 and YH=3 and YT=4 then Y=3

  91. If KYRS=1 and YH=3 and YT=5 then Y=4

  92. If KYRS=1 and YH=4 and YT=3 then Y=3

  93. If KYRS=1 and YH=4 and YT=4 then Y=4

  94. If KYRS=1 and YH=4 and YT=5 then Y=5

  95. If KYRS=1 and YH=5 and YT=3 then Y=4

  96. If KYRS=1 and YH=5 and YT=4 then Y=4

  97. If KYRS=1 and YH=5 and YT=5 then Y=5

  98. If KYRS>1 and YS=3 and YT=3 then Y=3

  99. If KYRS>1 and YS=3 and YT=4 then Y=3

  100. If KYRS>1 and YS=3 and YT=5 then Y=4

  101. If KYRS>1 and YS=4 and YT=3 then Y=4

  102. If KYRS>1 and YS=4 and YT=4 then Y=4

  103. If KYRS>1 and YS=4 and YT=5 then Y=5

  104. If KYRS>1 and YS=5 and YT=3 then Y=4

  105. If KYRS>1 and YS=5 and YT=4 then Y=4

  106. If KYRS>1 and YS=5 and YT=5 then Y=5

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  124. 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'ом.

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5209
Авторов
на СтудИзбе
430
Средний доход
с одного платного файла
Обучение Подробнее