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

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 25.01.2011
Размер файла 1,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

ВВЕДЕНИЕ

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

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

Целью работы является, построение продукционной модели экспертной системы прогнозирования результатов сессии, на основании анализа текущей успеваемости, и ее реализация в языке логического программирования Visual Prolog. Объектом исследования является процесс получения образования в высшем учебном заведении. Предмет исследования - методы построения базы знаний в экспертных системах, а именно продукционная модель.

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

1. Сбор информации о объекте исследования, а именно о процессе обучения и системе оценивания студентов всех курсов.

2. Изучение методов построения базы знаний и выбор наилучшего.

3. Представление продукционной модели построения базы знаний.

4. Изучение механизмов логического вывода.

5. Реализация экспертной системы в языке логического программирования Visual Prolog

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

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

РАЗДЕЛ 1. ЭКСПЕРТНЫЕ СИСТЕМЫ

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

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

Экспертные системы - программы для компьютера, которые могут воспроизводить процесс решения проблемы человеком-экспертом.[1]

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

Экспертные системы - прикладные программы ИИ, в которых база знаний представляет собой формализованные эмпирические знания высококвалифицированных специалистов (экспертов) в какой-либо узкой предметной области.[3]

Экспертная система - программа для компьютера, которая оперирует со знаниями в определенной предметной области с целью выработки рекомендаций или решения проблем.[3]

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

1.1 Классификация и виды экспертных систем

Для классификации ЭС [5] используют следующие признаки:

1. Способ формирования решения;

2. Способ учета временного признака;

3. Вид используемых данных;

4. Число используемых источников решения знаний;

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

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

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

ЭС могут создаваться с использованием одного или нескольких источников знаний.

1.2 Структура экспертной системы

Типичная статическая ЭС состоит из следующих основных компонентов (рис. 1.1):

· решателя (интерпретатора);

· рабочей памяти (РП), называемой также базой данных (БД);

· базы знаний (БЗ);

· компонентов приобретения знаний;

· объяснительного компонента;

· диалогового компонента.

База данных (рабочая память) предназначена для хранения исходных и промежуточных данных решаемой в текущий момент задачи. Этот термин совпадает по названию, но не по смыслу с термином, используемым в информационно-поисковых системах (ИПС) и системах управления базами данных (СУБД) для обозначения всех данных (в первую очередь долгосрочных), хранимых в системе.

База знаний (БЗ) в ЭС предназначена для хранения долгосрочных данных, описывающих рассматриваемую область (а не текущих данных), и правил, описывающих целесообразные преобразования данных этой области.

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

Компонент приобретения знаний автоматизирует процесс наполнения ЭС знаниями, осуществляемый пользователем-экспертом.

Объяснительный компонент объясняет, как система получила решение задачи (или почему она не получила решение) и какие знания она при этом использовала, что облегчает эксперту тестирование системы и повышает доверие пользователя к полученному результату.

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

Рис. 1.1. «Структура экспертной системы»

1.3 Базы знаний и модели представления знаний

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

В качестве предметной области выбирается узкая (специальная) прикладная область. Далее для создания ЭС в выбранной области собираются факты и правила, которые помещаются в базу знаний вместе с механизмами вывода и упрощения. В отличие от всех остальных компонент ЭС, база знаний - "переменная " часть системы, которая может пополняться и модифицироваться инженерами знаний и опыта использование ЭС, между консультациями (а в некоторых системах и в процессе консультации).

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

Существуют динамические и статические базы знаний. Динамическая база знаний изменяется со временем. Ее содержимое зависит и от состояния окружающей. Новые факты, добавляемые в базу знаний, являются результатом вывода, который состоит в применении правил к имеющимся фактам. В системах с монотонным выводом факты, хранимые в базе знаний, статичны, то есть не изменяются в процессе решения задачи. В системах с немонотонным выводом допускается изменение или удаление фактов из базы знаний.

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

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

Типичными моделями представления знаний являются:

1. Продукционная модель;

2. Модель, основанная на использовании фреймов;

3. Модель семантической сети;

4. Логическая модель.

Продукционная модель - модель, основанная на правилах, позволяющая представить знания в виде предложений типа:

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

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

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

«Фрейм - это структура данных, представляющая стереотипную ситуацию, вроде нахождения внутри некоторого рода жилой комнаты, или сбора на вечеринку по поводу дня рождения ребенка. К каждому фрейму присоединяется несколько видов информации. Часть этой информации - о том, как использовать фрейм. Часть о том, чего можно ожидать далее. Часть о том, что следует делать, если эти ожидания не подтвердятся».

Фрейм - это минимальное возможное описание сущности какого-либо явления, события, ситуации, процесса или объекта. Минимальность означает, что при дальнейшем упрощении описания теряется его полнота, она перестает определять ту единицу знаний, для которой предназначено. Например, слово "комната" вызывает у слушающих образ комнаты: "жилое помещение с четырьмя стенами, полом, потолком, окнами и дверью, площадью 6-20 м2 ". Из этого описания ничего нельзя убрать (например, убрав окна мы получим уже чулан, а не комнату), но в нем есть "дырки", - это незаполненные значения некоторых атрибутов - количество окон, цвет стен, высота потолка. покрытие пола и др. В теории фреймов такой образ называется фреймом.

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

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

Понятиями обычно выступают абстрактные или конкретные объекты, а отношения - это связи типа: "это" ("is"), "имеет частью" ("has part"), "принадлежит", "любит" и т.п. Характерной особенностью семантических сетей является обязательное наличие трех типов отношений:

1. Класс - элемент класса.

2. Свойство - значение.

3. Пример элемента класса.

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

1.4 Механизмы логического вывода

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

Два способа использования продукционных правил:

- прямая цепочка рассуждений;

- обратная цепочка рассуждений.

Первый предполагает обработку информации в прямом направлении (метод сопоставления), когда образцом для поиска служит левая часть продукционного правила -- условие, то есть задача решается в направлении от исходного состояния к целевому . Это соответствует стратегии «от данных к цели» или стратегии управления данными.

При втором подходе обработка информации осуществляется в обратном направлении -- метод «генерации» или выдвижения гипотезы и ее проверки (стратегия «от цели к данным»).

Пример:Имеется фрагмент БЗ из двух правил:

П 1 : ЕСЛИ «отдых - летом» и «человек - активный», ТО «ехать в горы».

П 2 : ЕСЛИ «любит солнце»,«отдых летом».

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

Шаг 1. Пробуем П 1 не работает - не хватает данных «отдых - летом».

Шаг 2. Пробуем П 2 , работает, в базу поступает факт «отдых - летом». 2-й проход:

Шаг 3. Пробуем П 1 , работает, активируя цель «ехать в горы», которая и выступает, например, как совет, который дает система.

Обратный вывод: подтвердить выбранную цель при помощи имеющихся правил и данных:

Шаг 1. Цель - «ехать в горы»:

становятся новой целью, и имеется правило, где она в правой части.

Шаг 2. Цель «отдых летом»:

правило П 2 подтверждает цель и активизирует ее. 2-й проход:

Шаг 3. Пробуем П 1 , подтверждается искомая цель.

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

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

РАЗДЕЛ 2. ПОСТРОЕНИЕ ПРОДУКЦИОННОЙ МОДЕЛИ БАЗЫ ЗНАНИЙ

2.1 Обоснование метода

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

Модульность -- отдельные продукционные правила могут быть добавлены, удалены или изменены в базу знаний независимо от других, кроме того, модульный принцип разработки (сборки) продукционных систем позволяет автоматизировать их проектирование.

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

Простота интерпретации -- «прозрачная» структура продукционных правил облегчает их смысловую интерпретацию.

Естественность -- знания в виде «что делать и когда» являются естественны ми с точки зрения здравого смысла.

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

2.2 Математическое представление продукционной модели

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

i: S; L; A>B; Q (2.1)

где i -- индивидуальный номер продукции;

S -- описание класса ситуаций, в котором данная структура может использоваться;

L -- условие, при котором продукция активизируется;

А>В -- ядро продукции, например: «ЕСЛИ A1, A2,,..., Ап ТО В» . Такая запись означает, что «если все условия от A1 до Аn являются истиной, то В также истина» или же «когда все условия от A1 до Аn становятся истиной, то следует выполнить действие B»;

Q -- постусловие продукционного правила, описывает операции и действия (процедуры), которые необходимо выполнить после выполнения В. Например, внести изменения в данные либо в саму продукцию.

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

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

2.3 Структура продукционной модели представления баз знаний

Для реализации продукционной модели было проведено анкетирование, в нем было предложено оценить студентам факторы, которые влияют на их выбор. Было запущено анкету (см. приложение 2).

Поскольку работать с 22 факторами очень сложно, нужно их сократить, применяем к данным метод анализа главных компонент. Применение метода главных компонент в пакете SPSS 15.0:

1. Выбираем в меню Analyze (Анализ) Data Reduction (Сокращение объема данных) Factor... (Факторный анализ). Откроется диалоговое окно Factor Analysis (Факторный анализ)

2. Переменные a1-a15 поместим в поле тестируемых переменных и ознакомимся с возможностями, предлагаемыми различными кнопками этого диалогового меню.

3. После щелчка по кнопке Descriptive Statistics (Дескриптивные статистики) оставим вывод первичных результатов, которые включают в себя первичные относительные дисперсии простых факторов, собственные значения и процентные доли объяснённой дисперсии.

В результате мы получили такие факторы:

Фактор 1 «Объяснение и понимание материала»:

- "Объяснение преподавателями нового материала понятно и доступно";

- "Воспринимать новый материал легко";

- "Преподаватели объясняют сложно и быстро";

- "Практических занятий достаточно, чтобы усвоить лекционную информацию";

- “Предметов много, большой поток информации";

- "Учиться в "ХАИ" сложно и неинтересно";

- "На самостоятельную обработку выносится больше информации, чем дается на лекциях";

- "Специальность не оправдывает надежды";

- "У меня сложились хорошие отношения с куратором".

Фактор 2 «Бытовые факторы»:

– "Обстановка в общежитии благосклонно влияет на учебу";

– "База школьной подготовки позволяет, хорошо учится в "ХАИ";

– "Выбор специальности правильный, набор предметов интересный";

– "Учеба для меня это самореализация ";

– "Я принимаю активное участие в общественной жизни факультета и университета".

Фактор 3 «Другие»:

– "Я поступил(а) в "ХАИ" потому что так хотели мои родители";

– "У меня сложились хорошие отношения с одногруппниками и студентами других групп";

– "Куратор практически не уделяет внимания нашей группе";

– "Я боюсь, что меня отчислять".

Фактор 4 «Личностные факторы»:

– "Лучшая мотивация в учебе, это похвала преподавателя";

– "Я учусь хорошо, для того чтобы получать стипендию";

– "Стипендия как вид мотивации меня не интересует";

– "Мне стыдно плохо учиться".

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

1. Выберем в меню Analyze (Анализ) Descriptive Statistics (Дескриптивные статистики) Crosstabs... (Таблицы сопряженности)

2. В диалоговом окне Crosstabs (Таблицы сопряженности) переменную а1 (учится на отлично) поместим в поле строк, а переменную teaching в поле столбцов и через выключатель Cells... (Ячейки) сделаем дополнительно запрос на вывод процентных значений по строкам.

В окне просмотра появится следующая таблица сопряженности:

Таблица 2.1

«Учится на отлично (0т 4.6 до 5) * Объяснение и понимание материала»

"Объяснение и понимание материала"

Total

1

2

3

4

1

0

Count

35

35

37

33

140

"Учится на отлично"(0т 4.6 до 5)

25,0%

25,0%

26,4%

23,6%

100,0%

% within "Объяснение и понимание материала"

79,5%

79,5%

86,0%

86,8%

82,8%

1

Count

9

9

6

5

29

% within "Учится на отлично"(0т 4.6 до 5)

31,0%

31,0%

20,7%

17,2%

100,0%

% within "Объяснение и понимание материала"

20,5%

20,5%

14,0%

13,2%

17,2%

Total

Count

44

44

43

38

169

% within "Учится на отлично"(0т 4.6 до 5)

26,0%

26,0%

25,4%

22,5%

100,0%

Аналогичным образом мы проводи анализ первой стратегии и остальных факторов

Таблица 2.2

«Учится на отлично (0т 4.6 до 5) * Бытовые факторы»

"Бытовые факторы":

Total

1

2

3

4

1

0

Count

37

34

37

32

140

% within "Учится на отлично"(0т 4.6 до 5)

26,4%

24,3%

26,4%

22,9%

100,0%

% within "Бытовые факторы":

84,1%

89,5%

84,1%

74,4%

82,8%

1

Count

7

4

7

11

29

% within "Учится на отлично"(0т 4.6 до 5)

24,1%

13,8%

24,1%

37,9%

100,0%

% within "Бытовые факторы":

15,9%

10,5%

15,9%

25,6%

17,2%

Total

Count

44

38

44

43

169

% within "Учится на отлично

26,0%

22,5%

26,0%

25,4%

100,0%

Таблица 2.3

"Учится на отлично (0т 4.6 до 5) * Личностные факторы"

"Личностные факторы":

Total

1

2

3

4

1

0

Count

37

33

35

35

140

% within "Учится на отлично"(0т 4.6 до 5)

26,4%

23,6%

25,0%

25,0%

100,0%

% within "Личностные факторы":

94,9%

76,7%

81,4%

79,5%

82,8%

1

Count

2

10

8

9

29

% within "Учится на отлично"(0т 4.6 до 5)

6,9%

34,5%

27,6%

31,0%

100,0%

% within "Личностные факторы":

5,1%

23,3%

18,6%

20,5%

17,2%

Total

Count

39

43

43

44

169

% within "Учится на отлично"

23,1%

25,4%

25,4%

26,0%

100,0%

Таблица 2.4

"Учится на отлично (0т 4.6 до 5) *Другие факторы"

"Другие факторы"

Total

1

2

3

4

1

0

Count

34

31

38

37

140

% within "Учится на отлично"(0т 4.6 до 5)

24,3%

22,1%

27,1%

26,4%

100,0%

% within "Другие факторы"

82,9%

75,6%

86,4%

86,0%

82,8%

1

Count

7

10

6

6

29

% within "Учится на отлично"(0т 4.6 до 5)

24,1%

34,5%

20,7%

20,7%

100,0%

% within "Другие факторы"

17,1%

24,4%

13,6%

14,0%

17,2%

Total

Count

41

41

44

43

169

% within "Учится на отлично"

24,3%

24,3%

26,0%

25,4%

100,0%

По данным таблиц 3.2,3.3,3.4 и 3.5 можно сделать следующие выводы: на студентов, которые не выбрали стратегию «учится на отлично» не влияет фактор "Объяснение и понимание материала», поскольку процентное соотношение практически одинаковое 1 - 79.5%, 2 - 79.5%, 3 - 86.0% и 4 - 86.8%, бытовые факторы также не влияют, поскольку соотношение процентов практически одинаковое, а вот личностные факторы влияют на то, что студент не выбирает первую стратегию, а именно не хватает внутренней мотивации, так как динамика разности процентных соотношений очевидна, другие факторы также не влияют. На студентов, которые выбрали стратегию «учится на отлично» влияет фактор "Объяснение и понимание материала», и очевидно то, что если студент выбирает эту стратегию ему сложнее воспринимать новый материал, ведь он хочет подробно разобраться во всех нюансах. Бытовые факторы также влияют, но они не мешают учебному процессу у отличников, личностные факторы влияют на отличников, но влияют они также благосклонно, мотивация у таких студентов присутствует, а вот другие факторы не влияют, поскольку отсутствует динамика процентов.

Таблица 2.5

«Учится хорошо (От 3.6 до 4.5) *Объяснение и понимание материала»

"Объяснение и понимание материала"

Total

1

2

3

4

1

0

Count

19

25

19

12

75

% within "Учится хорошо"(От 3.6 до

25,3%

33,3%

25,3%

16,0%

100,0%

"Объяснение и понимание материала"

43,2%

56,8%

44,2%

31,6%

44,4%

1

Count

25

19

24

26

94

% within "Учится хорошо"(От 3.6 до 4.5)

26,6%

20,2%

25,5%

27,7%

100,0%

% within "Объяснение и понимание материала"

56,8%

43,2%

55,8%

68,4%

55,6%

Total

Count

44

44

43

38

169

"Учится хорошо"

26,0%

26,0%

25,4%

22,5%

100,0%

Таблица 2.6

«Учится хорошо (От 3.6 до 4.5) *Бытовые факторы»

"Бытовые факторы":

Total

1

2

3

4

1

0

Count

18

18

18

21

75

% within "Учится хорошо"(От 3.6 до

24,0%

24,0%

24,0%

28,0%

100,0%

% within "Бытовые факторы":

40,9%

47,4%

40,9%

48,8%

44,4%

1

Count

26

20

26

22

94

% within "Учится хорошо"(От 3.6 до 4.5)

27,7%

21,3%

27,7%

23,4%

100,0%

% within "Бытовые факторы":

59,1%

52,6%

59,1%

51,2%

55,6%

Total

Count

44

38

44

43

169

"Учится хорошо"

26,0%

22,5%

26,0%

25,4%

100,0%

Таблица 2.7

«Учится хорошо (От 3.6 до 4.5) *Личностные факторы»

"Личностные факторы":

Total

1

2

3

4

1

0

Count

16

19

17

23

75

% within "Учится хорошо"(От 3.6 до 4.5)

21,3%

25,3%

22,7%

30,7%

100,0%

% within "Личностные факторы":

41,0%

44,2%

39,5%

52,3%

44,4%

1

Count

23

24

26

21

94

% within "Учится хорошо"(От 3.6 до 4.5)

24,5%

25,5%

27,7%

22,3%

100,0%

% within "Личностные факторы":

59,0%

55,8%

60,5%

47,7%

55,6%

Total

Count

39

43

43

44

169

% within "Учится хорошо"

23,1%

25,4%

25,4%

26,0%

100,0%

Таблица 2.8

«Учится хорошо (От 3.6 до 4.5) * Другие факторы»

"Другие факторы"

Total

1

2

3

4

1

0

Count

19

20

15

21

75

% within "Учится хорошо"(От 3.6 до 4.5)

25,3%

26,7%

20,0%

28,0%

100,0%

% within "Другие факторы"

46,3%

48,8%

34,1%

48,8%

44,4%

1

Count

22

21

29

22

94

% within "Учится хорошо"(От 3.6 до 4.5)

23,4%

22,3%

30,9%

23,4%

100,0%

% within "Другие факторы"

53,7%

51,2%

65,9%

51,2%

55,6%

Total

Count

41

41

44

43

169

% within "Учится хорошо"

24,3%

24,3%

26,0%

25,4%

100,0%

Теперь проведем анализ второй стратегии - «Учится хорошо». Построим таблицы сопряженности этой стратегии с каждым фактором. Полученные результаты занесем в таблицы 3.6, 3.7, 3.8 и 3.9. По ним можем сделать следующие выводы: на студентов, которые не выбрали стратегию «учится хорошо» влияют только личностные факторы, студенты отказываются от нее по причинам внутренней мотивации, так как динамика разности процентных соотношений очевидна. На студентов, которые выбрали стратегию «учится хорошо» влияет фактор "Объяснение и понимание материала», и очевидно то, что если студент выбирает эту стратегию ему легко воспринимать новый материал, бытовые факторы не влияют, динамика отсутствует, личностные факторы не влияют на хорошистов, другие факторы также влияют.

Аналогично проведем анализ третей стратегии - «Учится плохо»:

Таблица 2.9

«Учится плохо (От 3 до 3.5) *Объяснение и понимание материала»

"Объяснение и понимание материала"

Total

1

2

3

4

1

0

Count

34

28

30

31

123

% within "Учится плохо"(От 3 до 3.5)

27,6%

22,8%

24,4%

25,2%

100,0%

% within "Объяснение и понимание материала"

77,3%

63,6%

69,8%

81,6%

72,8%

1

Count

10

16

13

7

46

% within "Учится плохо"(От 3 до 3.5)

21,7%

34,8%

28,3%

15,2%

100,0%

% within "Объяснение и понимание материала"

22,7%

36,4%

30,2%

18,4%

27,2%

Total

Count

44

44

43

38

169

% within "Учится плохо"

26,0%

26,0%

25,4%

22,5%

100,0%

Таблица 2.10

«Учится плохо (От 3 до 3.5) *Бытовые факторы»

"Бытовые факторы":

Total

1

2

3

4

1

0

Count

33

24

33

33

123

% within "Учится плохо"(От 3 до

26,8%

19,5%

26,8%

26,8%

100,0%

% within "Бытовые факторы":

75,0%

63,2%

75,0%

76,7%

72,8%

1

Count

11

14

11

10

46

% within "Учится плохо"(От 3 до 3.5)

23,9%

30,4%

23,9%

21,7%

100,0%

% within "Бытовые факторы":

25,0%

36,8%

25,0%

23,3%

27,2%

Total

Count

44

38

44

43

169

% within "Учится плохо"

26,0%

22,5%

26,0%

25,4%

100,0%

Таблица 2.11

«Учится плохо (От 3 до 3.5) *Личностные факторы»

"Личностные факторы":

Total

1

2

3

4

1

0

Count

25

34

34

30

123

% within "Учится плохо"(От 3 до 3

20,3%

27,6%

27,6%

24,4%

100,0%

% within "Личностные факторы":

64,1%

79,1%

79,1%

68,2%

72,8%

1

Count

14

9

9

14

46

% within "Учится плохо"(От 3 до 3.5)

30,4%

19,6%

19,6%

30,4%

100,0%

% within "Личностные факторы":

35,9%

20,9%

20,9%

31,8%

27,2%

Total

Count

39

43

43

44

169

% within "Учится плохо"

23,1%

25,4%

25,4%

26,0%

100,0%

Таблица 2.12

«Учится плохо (От 3 до 3.5) * Другие факторы»

"Другие факторы"

Total

1

2

3

4

1

0

Count

29

31

35

28

123

% within "Учится плохо"(От 3 до 3.5)

23,6%

25,2%

28,5%

22,8%

100,0%

% within "Другие факторы"

70,7%

75,6%

79,5%

65,1%

72,8%

1

Count

12

10

9

15

46

% within "Учится плохо"(От 3 до 3.5)

26,1%

21,7%

19,6%

32,6%

100,0%

% within "Другие факторы"

29,3%

24,4%

20,5%

34,9%

27,2%

Total

Count

41

41

44

43

169

% within "Учится плохо"

24,3%

24,3%

26,0%

25,4%

100,0%

По данным таблиц 3.10, 3.11, 3.12 и 3.13 можно сделать следующие выводы: на студентов которые не выбрали стратегию «учится хорошо» не влияют никакие факторы; на студентов которые выбрали стратегию «учится хорошо» влияет фактор "Объяснение и понимание материала им сложно воспринимать новый материал, бытовые факторы не влияют, динамика отсутствует, личностные факторы не влияют на хорошистов, а вот другие факторы влияют, позитивно.

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

Рис. 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

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

Вопрос

Переменная

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

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.

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

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


Подобные документы

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

    курсовая работа [19,0 K], добавлен 24.05.2012

  • Общая характеристика и функциональные возможности языка логического программирования Prolog, а также систем SWI-Prolog и Visual Prolog. Формирование базы знаний относительно определения возможности трудоустройства студента и принципы реализации запросов.

    лабораторная работа [1,3 M], добавлен 07.10.2014

  • Разработка информационной системы анализа успеваемости студентов. Особенности режима просмотра объектов с помощью редактора Visual Basic for Application. Виды диалоговых окон и основных элементов управления. Формирование диаграммы успеваемости группы.

    курсовая работа [1,3 M], добавлен 28.11.2008

  • Рассмотрение экспертных систем: классификация, назначение, общие принципы построения и функционирования. Среда разработки данных систем: BorlandC++ Builder 6.0 и AMZI! Prolog. Описание процесса разработки экспертной системы "Выбор спортивного инвентаря".

    курсовая работа [426,9 K], добавлен 19.08.2012

  • Структура экспертных систем, их классификация и характеристики. Выбор среды разработки программирования. Этапы создания экспертных систем. Алгоритм формирования базы знаний с прямой цепочкой рассуждений. Особенности интерфейса модулей "Expert" и "Klient".

    курсовая работа [1,1 M], добавлен 18.08.2009

  • Основы языка Visual Prolog. Введение в логическое программирование. Особенности составления прологов, синтаксис логики предикатов. Программы на Visual Prolog. Унификация и поиск с возвратом. Использование нескольких значений как единого целого.

    лекция [120,5 K], добавлен 28.05.2010

  • Система учета успеваемости студентов Байкальского государственного университета экономики и права. Действующая Информационная система, организация и требования к подсистеме учета успеваемости БГУЭП. Конструирование подсистемы, построение модели функций.

    дипломная работа [2,2 M], добавлен 20.11.2010

  • Формирование требований к системе учета успеваемости студентов на основе рейтинговой системы. Концептуальное и логическое проектирование структуры информационного обеспечения. Реализация информационного обеспечения и тестирование программного средства.

    курсовая работа [3,1 M], добавлен 28.08.2012

  • Характеристика высшего учебного заведения "МФПА", структура подразделений учебной части. Анализ диаграммы дерева узлов, стадии проектирования информационной системы учета успеваемости студентов. Основные особенности построения модели "Как должно быть".

    курсовая работа [3,1 M], добавлен 12.04.2012

  • Понятия, классификация и структура экспертных систем. Базы знаний и модели представления знаний. Механизмы логического вывода. Инструментальные средства проектирования и разработки экспертных систем. Предметная область ЭС "Выбор мобильного телефона".

    курсовая работа [2,2 M], добавлен 05.11.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.