4.76M
AI

Задание 9

1.

Практическая работа №9
Архитектура экспертных
систем
Экспертные системы: классификация, структура\nи
принципы построения. Создание мини-экспертной
системы.
Рекомендуется: Python + Google Colab
Уровень: начинающие
Практическая работа №9 • Система искусственного интеллекта

2.

Цель практической работы
• Понять архитектуру экспертной системы и назначение её компонентов.
• Различать основные классы экспертных систем.
• Представить знания в виде фактов и правил «ЕСЛИ — ТО».
• Реализовать простой механизм прямого вывода.
• Добавить объяснение: какое правило сработало и почему.
• Проверить систему на нескольких пользовательских ситуациях.
Итог
Мини-экспертная система «Диагностика проблем с интернетом» в Google Colab.
Практическая работа №9 • Система искусственного интеллекта

3.

На каком языке программировать?
Python — рекомендую
Google Colab
CLIPS — позже
Простой синтаксис. Легко представить факты,
правила и механизм вывода. Подходит для первого
знакомства.
Не требует установки. Студент запускает код в
браузере и сразу видит результат.
Специализированная среда для продукционных
экспертных систем. Полезна после понимания
базовых принципов.
Prolog — позже
Для этой работы
Хорош для логического программирования и
обратного вывода, но для первого занятия сложнее.
Python без специальных библиотек. Только списки,
словари, функции и условия.
Практическая работа №9 • Система искусственного интеллекта

4.

Архитектура экспертной системы
Практическая работа №9 • Система искусственного интеллекта

5.

Что делает каждый компонент?
База знаний
Рабочая память
Механизм вывода
Факты и правила предметной области.
Факты текущей пользовательской ситуации.
Проверяет правила и получает новые выводы.
Интерфейс
Подсистема объяснения
Приобретение знаний
Получает ответы пользователя и показывает
рекомендацию.
Показывает, почему система пришла к выводу.
Позволяет добавлять и уточнять знания эксперта.
Практическая работа №9 • Система искусственного интеллекта

6.

Классификация экспертных систем
Критерий
Варианты
Пример
По задаче
Диагностические, консультационные, классификационные,
планирующие
Диагностика неисправности
По динамике
Статические / динамические
Справочная система / мониторинг оборудования
По модели знаний
Продукционные, логические, фреймовые, сетевые,
гибридные
Правила «ЕСЛИ — ТО»
По режиму работы
Автономные / интегрированные
Отдельное приложение / модуль информационной системы
Практическая работа №9 • Система искусственного интеллекта

7.

Принципы построения экспертной системы
• Отделить знания от программного механизма.
• Ограничить предметную область: система не должна «знать всё».
• Формулировать правила ясно и непротиворечиво.
• Хранить факты текущей задачи отдельно от общей базы знаний.
• Делать вывод объяснимым для пользователя.
• Проверять систему на типовых, пограничных и ошибочных ситуациях.
• Позволять обновлять базу знаний без переписывания всей программы.
Практическая работа №9 • Система искусственного интеллекта

8.

Практическая задача №9: мини-экспертная система
Практическая работа №9 • Система искусственного интеллекта

9.

Предметная область: диагностика интернета
Факты пользователя
Правила
Результат
есть_интернет, роутер_включён, индикатор_горит,
wifi_виден, кабель_подключён.
ЕСЛИ выполняется набор условий, ТО система
выдаёт диагноз или рекомендацию.
Например: «перезагрузите роутер» или «проверьте
кабель провайдера».
Объяснение
Почему задача удобна?
Показать условия и правило, на основе которых
получена рекомендация.
Она понятна начинающим и позволяет увидеть все
части экспертной системы.
Практическая работа №9 • Система искусственного интеллекта

10.

Шаг 1. Создаём рабочую память — факты
facts = {
"есть_интернет": False,
"роутер_включён": True,
"индикатор_горит": True,
"wifi_виден": True,
"кабель_подключён": True
}
Что это?
Словарь facts — аналог рабочей памяти. Он содержит данные именно
о текущей ситуации пользователя.
print(facts)
Задание 1
Измените один факт True
Практическая работа №9 • Система искусственного интеллекта
False и снова запустите ячейку.

11.

Шаг 2. Создаём базу правил
rules = [
{
"name": "R1",
"if": {
"есть_интернет": False,
"роутер_включён": False
},
"then": "Включите роутер"
},
{
"name": "R2",
"if": {
"есть_интернет": False,
"роутер_включён": True,
"индикатор_горит": True
},
"then": "Проверьте кабель провайдера"
}
]
Практическая работа №9 • Система искусственного интеллекта
Структура правила
name — имя правила\nif — условия\nthen — вывод или
рекомендация
Задание 2
Добавьте правило R3 для ситуации, когда Wi-Fi сеть не
видна.

12.

Шаг 3. Функция проверки условий
def match_rule(rule, facts):
for key, value in rule["if"].items():
if facts.get(key) != value:
return False
return True
Что делает функция?
Она сравнивает условия правила с фактами. Если все условия
совпали — возвращает True.
print(match_rule(rules[0], facts))
Задание 3
Проверьте отдельно R1 и R2. Какой результат получили?
Практическая работа №9 • Система искусственного интеллекта

13.

Шаг 4. Реализуем механизм прямого вывода
def infer(facts, rules):
fired = []
for rule in rules:
if match_rule(rule, facts):
fired.append(rule)
Это механизм вывода
Он проходит по базе правил и выбирает те правила, условия
которых выполнены текущими фактами.
return fired
fired_rules = infer(facts, rules)
for rule in fired_rules:
print(rule["name"], "->", rule["then"])
Задание 4
Изменяйте факты и наблюдайте, какие правила начинают
срабатывать.
Практическая работа №9 • Система искусственного интеллекта

14.

Шаг 5. Добавляем подсистему объяснения
def explain(rule):
print("Сработало правило:", rule["name"])
print("Потому что выполнены условия:")
for key, value in rule["if"].items():
print(" -", key, "=", value)
Почему это важно?
Экспертная система должна не просто выдавать ответ, но и
показывать логику вывода.
print("Рекомендация:", rule["then"])
for rule in fired_rules:
explain(rule)
Задание 5
Сделайте скриншот объяснения сработавшего правила.
Практическая работа №9 • Система искусственного интеллекта

15.

Шаг 6. Простой интерфейс пользователя
answer = input("Есть интернет? да/нет: ").lower()
facts["есть_интернет"] = (answer == "да")
Что изменилось?
answer = input("Роутер включён? да/нет: ").lower()
facts["роутер_включён"] = (answer == "да")
Теперь факты поступают от пользователя, а не
записываются вручную в коде.
fired_rules = infer(facts, rules)
for rule in fired_rules:
explain(rule)
Задание 6
Добавьте вопрос про индикатор роутера и запишите ответ в
facts.
Практическая работа №9 • Система искусственного интеллекта

16.

Самостоятельная часть
• Добавьте минимум 3 новых правила.
• Добавьте минимум 2 новых факта.
• Сделайте хотя бы одно правило с тремя условиями.
• Проверьте минимум 4 различных пользовательских ситуации.
• Для каждого вывода покажите объяснение.
• Найдите ситуацию, когда ни одно правило не срабатывает, и обработайте её сообщением «Недостаточно
знаний».
Практическая работа №9 • Система искусственного интеллекта

17.

Дополнительное задание
Вариант A — компьютер
Вариант B — студент
Создайте систему диагностики:\n• компьютер не включается;\n• экран
чёрный;\n• вентилятор работает;\n• есть звуковой сигнал.\n\nСформулируйте
5–7 правил.
Создайте консультационную систему:\n• выполнены задания;\n• есть
пропуски;\n• набран проходной балл;\n• сдан проект.\n\nСистема рекомендует
дальнейшее действие.
Практическая работа №9 • Система искусственного интеллекта

18.

Как проверить качество экспертной системы
Проверка
Что нужно оценить
Корректность
Вывод соответствует заданным правилам
Полнота
Для основных ситуаций есть подходящие правила
Непротиворечивость
Разные правила не дают несовместимые рекомендации
Объяснимость
Пользователь видит причину решения
Устойчивость
Некорректный ввод не приводит к падению программы
Практическая работа №9 • Система искусственного интеллекта

19.

Что должен сдать студент
1. Google Colab
2. База знаний
3. Тесты
Ссылка или файл .ipynb с работающим кодом.
Не менее 5 правил «ЕСЛИ — ТО».
Не менее 4 разных пользовательских ситуаций.
4. Скриншоты
5. Краткий вывод
Вывод программы и объяснение сработавшего правила.
5–7 предложений о работе архитектуры экспертной системы.
Практическая работа №9 • Система искусственного интеллекта

20.

Оценивание и контрольные вопросы
Оценивание — 100 баллов
Контрольные вопросы
Рабочая память и факты — 10\nБаза правил — 20\nМеханизм вывода —
25\nПодсистема объяснения — 15\nПользовательский ввод —
10\nТестирование 4 ситуаций — 10\nВывод и ответы — 10
1. Что хранится в базе знаний?\n2. Что такое рабочая память?\n3. Для чего
нужен механизм вывода?\n4. Чем экспертная система отличается от обычной
программы?\n5. Что такое прямой вывод?\n6. Для чего нужна подсистема
объяснения?\n7. Почему базу знаний нужно проверять на противоречия?
Практическая работа №9 • Система искусственного интеллекта
English     Русский Правила