- PVSM.RU - https://www.pvsm.ru -
Если есть возможность, лучше не разрабатывать экспертные системы. Хорошее получилось начало курса «Экспертные системы»
В мире разработано множество экспертных систем, в данном посте хотелось бы рассмотреть структуру и логику работы одной из древних ЭС под названием «PROSPECTOR».
Экспертная система – компьютерная система, способная частично заменить специалиста – эксперта в разрешении проблемной ситуации.
PROSPECTOR – геологоразведочная экспертная система, предназначена для геологической разведки месторождений полезных ископаемых.
Система PROSPECTOR работает с нечеткими данными и нечеткими знаниями. Работа системы основана на нечеткой логике и хорошо применяется для различным областей. Однако несмотря на возможности используемой модели, логика работы ЭС отличается от человеческой логики и поэтому пользователю может быть непонятен смысл вопросов системы. В связи с этим, система, конструируемая на основе логики системы PROSPECTOR должна уметь объяснять ход своих «мыслей».
Работа системы представляет собой диалог между системой и пользователем. В ходе диалога система получает от пользователя информацию о наблюдениях на основании которых делает определенные выводы. Последовательность шагов выглядит так:
База знаний представляет собой семантическую сеть, составленную на основе знаний экспертов в предметной области.
Элементами семантической сети являются гипотезы, наблюдения и связи между ними. Для примера семантическая сеть может выглядеть так:

Относительно друг друга, гипотезы тоже являются наблюдениями. Например, H2 – это наблюдение для гипотезы Н1.
В семантической сети допустимы следующие отношения:
Каждая гипотеза имеет шансы (О) и вес (С).
Вес – это значение, получаемое от пользователя на вопросы системы (для наблюдений), другими словами можно сказать, что вес – это степень возможности данного наблюдения.
Шанс – это степень верности данной гипотезы (по сути та же самая вероятность). Формула зависимости выглядит так:

Для гипотез шансы вычисляются по формуле:

До начала использования ЭС, все гипотезы имеют, изначально заданные экспертом, априорные шансы, все веса (С) гипотез и наблюдений равняются 0.
Каждая связь узлов (гипотез и наблюдений) в семантической сети имеет коэффициенты LS и LN.
LS – это коэффициент достаточности:

LN – это коэффициент необходимости:

При разных значениях, коэффициенты могут иметь разный смысл:
Исходя из 4 и 5 пунктов, можно сделать вывод что в ЭС имеет смысл только пара коэффициентов:
LS > 1, LN < 1 – нуждается и влияет
В системе возможны 3 вида связей:
Логические связи – это операции математической логики «И», «ИЛИ», «НЕ». Связи накладывают ограничения на гипотезы, которые можно интерпретировать так:
Коэффициенты LS и LN устанавливаются для всей связи, а не для каждого наблюдения.
Вес также устанавливается для связи и вычисляется по формуле:
Данные связи указывают какие вопросы должны задаваться в первую очередь.
Например, на рисунке слева прежде чем система задаст вопрос касательно гипотезы Н3, необходимо чтобы вес (С) гипотезы Н2 находился в интервале от 0 до 5 включительно, то есть был дан положительный ответ касательно гипотезы Н2.
Данные связи не имеют коэффициентов достаточности (LS) и необходимости (LN).
Связи вида «Если … то …». Для связей данного типа, веса вычисляются путем решения системы уравнений:

Для H1 максимальный и минимальные коэффициенты равняются:

Допустим:
Таким образом мы получаем коэффициенты:

Получив коэффициенты мы можем вычислить функцию зависимости коэффициента k (формула 2) от веса наблюдений. График функции k представлен ниже:

Функция k не является прямой, поэтому для сглаживания используется логарифмирование (обратная операция возведения в степень):

Решив систему уравнений мы получаем функцию F:

После нахождения функции F не составит труда посчитать значение С для гипотезы Н1:

Ниже представлены графики полученной функции F (синий) и функции k (формула 2) (красный):

Натуральный логарифм приведен для примера, в системе PROSPECTOR вычисления могут производиться иначе. Для более точных результатов в качестве приближения можно использовать различные полиномы.
Проход – изменение весов семантической сети. Подразделяются на два вида: прямой и обратный.
Прямой проход выполняется, когда пользователь вносит новую информацию о наблюдениях и необходимо пересчитать шансы гипотез в соответствии с новыми данными. Алгоритм прямого прохода включает в себя шаги:
Используется для нахождения вопроса системы (наблюдения). Алгоритм состоит из шагов:
Допустим имеется семантическая сеть:

Целевой является гипотеза Н1
Шаг 1: выполняем обратный проход
В силу контекстной связи между H2 и H3, необходимо сначала получить значение С для Н2, поэтому обратный проход будет выполняться только для наблюдений E1, E2 и Е4
В силу логической связи E1 и E2, значение С будет присваиваться к самой связи
Всего будет выполнено 4 прямых прохода:
Вычисляем значение С и О для гипотезы Н2 для 1 варианта (Е1Е2: С=-5):
1) Вычисляем вес (С) и шансы (О) для Н2:
Коэффициент связей для гипотезы Н2 равен:
k = k(E1&E2) * k(E4)
Следовательно:
kmax = LS(E1&E2) * LS(E4) = 400 * 10 = 4000
kmin = LN(E1&E2) * LN(E4) = 0.34 * 0.1 = 0.034
Решаем систему уравнений из пункта 4.2.4 формула 3:

получаем

Подставим значение к = 400, получаем С = 3.02, О = 2800
2) Вычисляем вес (С) и шансы (О) для Н1:
Коэффициент связей для гипотезы Н1 равен:
k = k(H2) * k(H3)
Следовательно:
kmax = LS(H2) * LS(H3) = 50 * 500 = 25000
kmin = LN(H2) * LN(H3) = 0.3 * 0.9 = 0.27
Решаем систему уравнений из пункта 4.2.4 формула 3:

получаем

Подставим значение к = 50, получаем С = -0.41, О = 31.86
e = abs(Oa — Op) = 31.86 — 3 = 28.86
Аналогичным путем находим отклонения для остальных вариантов и получаем:
По полученным данным, следующими вопросами системы будут являться E1 и E2 (в силу логической связи «И» пользователь должен внести данные для двух наблюдений сразу).
Шаг 2: получаем данные от пользователя
Допустим что пользователь внес данные для E1: С = 3, для E2: С = -4
Шаг 3: выполняем прямой проход
1) Вычисляем коэффициенты (k), веса (С) и шансы (O) для Н2:
Для связи E1E2 — H2:
k = 400 ^ (3/5) = 36.41
C = 0.96
O = 254.87
Для связи Н2 — Н1:
k = 50 ^ (0.96 / 5) = 2.12
C = -3.16
O = 6.36
После выполнения прямого прохода получаем семантическую сеть:

Если шансы альтернативы устраивают, то заканчиваем. Иначе апостериорные шансы (Op) становятся априорными (Oa) и переходим к шагу 1.
— www.computing.surrey.ac.uk/ai/PROFILE/prospector.html [1]
— aitopics.org/sites/default/files/classic/Machine_Intelligence_10/MI10-Ch15-Gaschnig.pdf [2]
Автор: rpsv
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/programmirovanie/78583
Ссылки в тексте:
[1] www.computing.surrey.ac.uk/ai/PROFILE/prospector.html: http://www.computing.surrey.ac.uk/ai/PROFILE/prospector.html
[2] aitopics.org/sites/default/files/classic/Machine_Intelligence_10/MI10-Ch15-Gaschnig.pdf: http://aitopics.org/sites/default/files/classic/Machine_Intelligence_10/MI10-Ch15-Gaschnig.pdf
[3] Источник: http://habrahabr.ru/post/247221/
Нажмите здесь для печати.