Разработка ЭС "Сколько дать на чай" в Mathcad на основе формализма нечеткой логики
Задаем параметры гауссовых функций принадлежности входной переменной "Сервис"
Постановка задачи

В последние десятилетия формализм нечеткой логики применяется для решения
задач, в которых исходные данные являются неточными и/или слабо формализованными. Начало данному направлению искусственного интеллекта положила работа профессора Калифорнийского университета Лотфи Заде
"Fuzzy Sets" (Information and Control, 1965, №8).

Л. Заде ввел допущение, что функция принадлежности элемента множеству может принимать любые значения в интервале [0; 1], характеризуя вероятность принадлежности элемента данному множеству. Затем Л. Заде и его последователи ввели понятие операций над нечеткими множествами, нечетких выводов и т.п. Механизм нечетких выводов часто используется при построении различного рода экспертных систем (ЭС) и управляющих систем. В его основе лежит формулируемая специалистами предметной области база знаний, т.е. набор правил типа "если-то".

В качестве примера рассматривается построение "классической" экспертной системы (подробное описание которой можно найти практически во всех учебниках по нечеткой логике), определяющей "Сколько дать "на чай" официанту" в ресторанах, где принято давать чаевые в зависимости от качества еды и сервиса. База знаний ЭС сформулирована ниже. Входными переменными ЭС являются оценки качествы сервиса и еды по 10-балльной системе, выходной переменной - размер чаевых в % от суммы заказа.
Показываем графики функций принадлежности переменной "Сервис"
Задаем трапециевидные функции принадлежности входной переменной "Еда"
Задаем параметры функции принадлежности food_bad ("еда плохая".
парaметры a0 (= a1) = 0, a2, a3 = amax)
Параметры, определяющие трапецию
Задаем параметры функции принадлежности food_bad ("еда превосходная".
парaметры a0, a1, a2 = amax
Показываем графики функций принадлежности переменной "Еда"
Задаем треугольные функции принадлежности выходной переменной "Чаевые"
Параметры, определяющие треугольник
Задаем параметры функции принадлежности tip_small ("чаевые малые")
Задаем параметры функции принадлежности tip_mid ("чаевые средние")
Задаем параметры функции принадлежности tip_big ("чаевые щедрые")
Показываем графики функций принадлежности переменной "Чаевые"
Задаем "четкие" значения входных переменных по 10-балльной системе
Вычисляем значения функций принадлежности, соответствующие значениям входных переменных
Находим уровни отсечения функции принадлежности выходной переменной
Находим объединение усеченных функций принадлежности
Набор правил (база знаний):

1. Если (Сервис плохой) или (Еда плохая), то (Чаевые малые)

2. Если (Сервис хороший), то (Чаевые средние)

3. Если (Сервис превосходный) или (Еда превосходная), то (Чаевые большие)
Строим график функции принадлежности переменной вывода
Находим "четкое" значение переменной вывода центроидным методом
Автор: М.Г. Семененко, доцент филилала ВЗФЭИ,
г. Калуга, октябрь 2011
Made with Mathcad

This web page is running on a Mathcad Application Server, and was authored with Mathcad software. Mathcad is a registered trademark of Mathsoft Engineering & Education, Inc..