Skip to content

Экспертная система, разрабатываемая в рамках дисциплины "Модели и методы искусственного интеллекта".

Notifications You must be signed in to change notification settings

NikMatyukhin/score-expert-system

Repository files navigation

LOGIC EXPERT

Экспертная система, разрабатываемая в рамках дисциплины "Модели и методы искусственного интеллекта". Необходимо было разработать rule-based систему, которая поможет оценивать работы студентов на основании их оценок и посещаемости. На самом деле к логике оценок студентов в программе нет никакой привязки, т.е. можно создать любые домены и правила на любую тему.

С логикой оценок и обычный человек легко справится, но нужно было что-нибудь написать, хотя бы не оценка темперамента по тесту "какая ты фея винкс".

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

  1. Добавление, удаление и изменение:
    • правил системы;
    • доменов (переменных) системы;
    • значений доменов системы.
  2. Внесение значений текущего состояния системы;
  3. Вычисление результатов по значениям состояния.

Использование

Шаг 1

Заполнить все имеющиеся поля в таблице значений состояния системы.

Шаг 2

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

Особенности взаимодействия

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

Правила

Все вводимые правила должны выглядеть как условные предикаты в языке Python

domen1 == d1meaning1 and domen2 == d2meaning1 or domen1 == d1meaning2

Домены и значения

Названия доменов могут быть буквально любыми. Например, fruit, veg или score5. А вот значения этих доменов уже должны соответсовать либо строкам, либо числам в языке Python. То есть, если значения для домена fruit - это бананы и яблоки, а для score5 - это массив числа от 2 или 5, то в системе необходимо будет вводить данные в формате:

{
    fruit: 'banana', 'apple',
    score5: 2, 5
}

Есть ещё особенности записи в файл, но мне проще вставить его содержимое.

D R fruit:'banana','apple'
D vegan:'tomato','potato'
R fruit == 'banana' -> vegan = 'tomato'
R fruit == 'apple' -> vegan = 'potato'

About

Экспертная система, разрабатываемая в рамках дисциплины "Модели и методы искусственного интеллекта".

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages