|
434 / 299 / 82
Регистрация: 11.12.2010
Сообщений: 1,209
|
||
Экспертная система "продукционная модель знаний"04.01.2014, 17:10. Показов 8594. Ответов 19
Метки нет (Все метки)
Пишу прогу на C# по теме Экспертная система продукционная модель знаний
Материал взял из http://itteach.ru/predstavleni... iya-znaniy Но не могу понять
Но как мы определили что на 1 шаге не хватает данных? Сделали пересечение множества {'человек* – активный", "любит – солнце"} с { "отдых – летом", "человек – активный"} или как? шаг 2. Почему у нас сработало правило? И да в какую базу поступило "отдых–летом" в базу ответов? То есть у нас теперь стало {"человек – активный", "любит – солнце", "отдых–летом" }? или как Шаг 3 Ок если у нас стало {"человек – активный", "любит – солнце", "отдых–летом" } то почему П1 сработало ведь нам не хватает тогда "любит – солнце"
0
|
||
| 04.01.2014, 17:10 | |
|
Ответы с готовыми решениями:
19
Проектирование и разработка фрагмента экспертной системы (Продукционная модель) Экспертная система G2 Gensym Продукционная экспертная система |
| 04.01.2014, 18:17 | |
|
Никаких пересечений не делается, тупо проход за проходом. Сначала только 2 единицы данных: (человек – активный) и (любит – солнце), а на 2-м проходе уже 3. "Выводу"(П) все равно когда данные поступили, они должны просто иметься на текущий момент. Также все равно какие еще данные есть, одна база на всех
0
|
|
|
434 / 299 / 82
Регистрация: 11.12.2010
Сообщений: 1,209
|
||||||
| 04.01.2014, 18:21 [ТС] | ||||||
|
ага кажется разобрался это не пересечение а разность.
А проходов всегда фиксировано будет 2? Или как? В итоге накидал
Igor3D, Не понял как тупо проход за проходом? И каким критериям тогда должно удовлетворять выполнение П. Я думал просто разница должна получится не пустой. То если в первом шаге разница получится (отдых–летом). что нам и написали в скобках то есть условию не удовлетворяет. На фтором шаге разница пустое множество. И как бы условию значит удовлетворяет. Правили закончились значит пошли на 2 круг. Как мы узнаем когда останавливаться?
0
|
||||||
| 04.01.2014, 18:58 | ||
|
Первый проход: пробуем П1, не вышло. Пробуем П2 - сработало. Заносим рез-т в базу - там такого еще нет, значит еще проход Второй проход: пробуем П1, Ок, база пополнена. Пробуем П2, Ok, но в базе это уже есть. Но все равно база обновлена П1, значит еще проход. Третий проход: все Ок, но база какая была, та и осталась. Стоп Возможны варианты - напр если правило сработало, то оно больше не применяется, или "до тех пор пока не сработали все правила", но поскольку это никак не оговорено, то "до тех пор пока есть прогресс"
1
|
||
|
434 / 299 / 82
Регистрация: 11.12.2010
Сообщений: 1,209
|
|||||||
| 04.01.2014, 20:00 [ТС] | |||||||
|
Ок а как правильно составлять тогда сами правила?
Допустим. (возможно я что то упустил составляя список но думаю для постой модельке это неважно)
0
|
|||||||
|
434 / 299 / 82
Регистрация: 11.12.2010
Сообщений: 1,209
|
||
| 04.01.2014, 20:56 [ТС] | ||
Шаг 2) Отдых летом с права но слева же (любит – солнце) почему оно не стало новым правилом а подтвердило цель? и как понять фразу подтвердило цель? В обще есть где то на пальцах с примерами расписанное всё это?
0
|
||
| 04.01.2014, 21:54 | |||
Нормальное задание, бывают намного хуже.
0
|
|||
|
434 / 299 / 82
Регистрация: 11.12.2010
Сообщений: 1,209
|
||
| 04.01.2014, 22:02 [ТС] | ||
|
Igor3D,
А что насчет модели с оператором? Такая норм или не верно сделал? Шаг 1. Цель — (ехать в горы): пробуем П1: Если (отдых – летом) и (человек – активный) то (ехать в горы) По идее тут может быть как и (отдых – летом) так и выбран (человек – активный)? или я не прав? они становятся новой целью, и ищется правило, где она в правой части. В правой он П2: Если (любит – солнце) то (отдых – летом) Шаг 2. Цель (отдых – летом): правило П2 подтверждает цель и активирует ее. ТО есть если мы в принципе нашли правило в котором есть с права (отдых – летом) то это уже активирует цель? 2-й проход. Цель (отдых – летом) Шаг 3. Пробуем П1, подтверждается искомая цель. Как она подтверждается ведь с права у нас же (ехать в горы) ?? О_о
0
|
||
|
2895 / 1930 / 208
Регистрация: 05.06.2011
Сообщений: 5,673
|
|
| 04.01.2014, 22:06 | |
|
Как вариант (встречал такую): очередь на каждый предикат. Очередь взаимодействует с правилом: если в правиле встречается предикат, пытаемся их сопоставить; если успешно, модифицирует правило, исключив из него предикат; модифицированное правило либо добавляется в базу правил, если в условной части чего-нить осталось, либо, если она пуста, предикаты из части "то" рассовываются по очередям. Процесс идёт до исчерпания всех очередей.
0
|
|
| 04.01.2014, 22:16 | |||
|
Цель "ехать в горы" - просматриваем все правила. Если справа что-то др (не горы) - нас это не интересует. Это как бы проход. Теперь замещаем цель на то чего не хватает, их может быть несколько. Т.е. мы знаем что если достигнем цели "отдых летом", то и конечная цель (горы) будет достигнута.
1
|
|||
|
434 / 299 / 82
Регистрация: 11.12.2010
Сообщений: 1,209
|
|||||||
| 04.01.2014, 22:37 [ТС] | |||||||
Но тогда в итоге в цели находится (любит – солнце)
0
|
|||||||
| 05.01.2014, 11:57 | ||
|
Как-то Вы пассивны, тормозите на простых вещах. Типа "разжуйте это, и вот это, и вообще все-все". Поэтому умолкаю, пытайтесь думать сами, здесь ничего сложного нет
0
|
||
|
434 / 299 / 82
Регистрация: 11.12.2010
Сообщений: 1,209
|
||
| 05.01.2014, 14:37 [ТС] | ||
|
Общими фразами. Знали бы сказали почему выбирается именно этот вариант. И 2 зачем пробегать по списку в левой части ведь про это не где не сказано. Я думал достаточно взять [0] подправило. А если пробегать то по какому принципу тогда его выбирать.
0
|
||
|
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
|
||||||
| 10.01.2014, 13:40 | ||||||
0
|
||||||
|
0 / 1 / 0
Регистрация: 25.05.2014
Сообщений: 42
|
|
| 04.03.2016, 16:53 | |
|
Здравствуйте, я тоже пишу программу по экспертным системам, программа собственно уже готова, только нужно в дополнение к ней добавить класс с возможностью записи в документ не достающих вариантов, т.е. если программа не угадала, появляется возможно внести свой вариант, а моя система запоминает этот вариант, занося его в опреденный текстовый документ..помогите это реализовать
0
|
|
|
Кандёхаем веселее!
296 / 330 / 76
Регистрация: 02.10.2012
Сообщений: 2,175
|
|
| 05.03.2016, 12:31 | |
|
Похоже, можно применять алгоритмы для разбора с контекстно-свободными грамматиками.
0
|
|
|
0 / 1 / 0
Регистрация: 25.05.2014
Сообщений: 42
|
||||||
| 06.03.2016, 12:36 | ||||||
|
эй ребята!! помогите)
Добавлено через 13 часов 6 минут
1
|
||||||
|
Модератор
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,878
|
|||||||||||||||||||||
| 06.03.2016, 16:58 | |||||||||||||||||||||
|
Для того, чтобы система обучалась, Вы должны предоставить ей такую возможность.
Если у Вас вопрос подразумевает выбор из нескольких вариантов, то нужно добавить пункт "ни один из вышеперечисленных". И если пользователь выбирает этот пункт, то запрашивать у него этот новый вариант выбора и правильный ответ. Например, вопрос: "Это животное (1 - лает, 2 - мяукает, 3 - рычит)". И ответы системы: 1 - собака, 2 - кошка, 3 - тигр. Но пользователь выбирает 4 - другое. После чего вводит название варианта "мычит" и правильный ответ "корова". Система добавляет этот вариант к своему списку вариантов. В следующий раз Система спросит "Это животное (1 - лает, 2 - мяукает, 3 - рычит, 4 - мычит)". После очередного вопроса Система выдаёт ответ. У пользователя должна быть возможность исправить (уточнить) этот ответ. Система спрашивает "этот ответ верный?". И если пользователь отвечает "нет", то Система запрашивает у него уточняющий вопрос и правильный ответ. Например, вопрос: "Это животное (1 - лает, 2 - мяукает, 3 - рычит)". И ответы системы: 1 - собака, 2 - кошка, 3 - тигр. Пользователь выбирает 3. Система отвечает "тигр". Но пользователь не согласен и вводит свой вариант ответа "лев" и уточняющий вопрос "У этого животного есть пышная грива? 1 - да, 2 - нет". В следующий раз после ответа пользователя "3 рычит" система задаст ему вопрос "У этого животного есть пышная грива?". Добавлено через 8 минут Система не должна задавать сразу все вопросы по списку. Выбор очередного вопроса должен зависеть от ответа на предыдущий. Например, вопрос "У этого животного есть пышная грива?" имеет смысл только после ответа "рычит" на предыдущий вопрос. Хранить Знания лучше всего в виде Дерева. В узлах Дерева будут вопросы, а в листьях - ответы. На каждом шаге Система задаёт вопрос и в зависимости от ответа переходит по дереву. И так, пока Система не дойдёт до листа с ответом.
Для сохранения/загрузки дерева проще всего использовать сериализацию.
Для двоичного дерева программа будет выглядеть примерно так:
Файл с данными будет выглядеть примерно так:
0
|
|||||||||||||||||||||
|
0 / 1 / 0
Регистрация: 25.05.2014
Сообщений: 42
|
|
| 06.03.2016, 17:22 | |
|
помогите связать это с моим кодом..т.к. хватило меня лишь на написание примитивной программки. с чего начать?
Добавлено через 6 минут и я думала данные будут храниться в обычном блокноте Добавлено через 4 минуты и вопросы в моей программе задаются все. потому что это продукционная модель, была бы семантическая..задавались бы только по делу
0
|
|
|
Модератор
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,878
|
|
| 07.03.2016, 01:22 | |
|
Я почитал немного про продукционные модели знаний, и имхо Ваша программа не похожа на такую систему.
0
|
|
| 07.03.2016, 01:22 | |
|
Помогаю со студенческими работами здесь
20
Продукционная модель знаний на mysql Продукционная и сетевая модель знаний Продукционная модель знаний. Интеллектуальное управление лифтами. C++ Продукционная модель Продукционная модель Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|