В лекции [https://zen.yandex.ru/media/id/603a418d1684900aa2499416/62a1f488277a7c77974d8087] было рассмотрено, как задать нечёткое множество с различными функциями принадлежности в вопросно-ответной системе Wolfram|Alpha.
Заметим, что у вопросно-ответной системы Wolfram|Alpha имеется множество преимуществ:
- находится в свободном доступе по адресу http://www.wolframalpha.com/;
- представляет собой вычислительную систему на своей собственной платформе с базой знаний, разработанной компанией WolframResearch;
- база знаний WolframAlpha поддерживается онлайн-сервисом, отвечающим на фактические запросы пользователей путём непосредственно вычисления ответа.
Однако, необходимо упомянуть и недостаток вопросно-ответной системы Wolfram|Alpha, заключающийся в том, что командное окно имеет небольшой размер, что несколько ограничивает в возможностях ввода сложных аналитических зависимостей.
С использованием вышеуказанной вопросно-ответной системы можно построить графики нечётких множеств для визуализации, например, унарных операций над нечёткими множествами.
Прежде всего, укажем несколько определений, необходимых для последующих расчётов.
Лингвистической переменной (ЛП) называется набор (β, Т, X, G, М),
где β – наименование лингвистической переменной;
Т – множество её значений (терм-множество). Множество Т называется базовым терм-множеством лингвистической переменной;
X – универсальное множество (область определения β);
G– синтаксическая процедура, позволяющая оперировать элементами терм-множества T, в частности, генерировать новые термы (значения). Множество T ∪ G(T), где G(T) – множество сгенерированных термов, называется расширенным терм-множеством лингвистической переменной;
М – семантическая процедура, позволяющая превратить каждое новое значение лингвистической переменной, образуемое процедурой G, в нечёткую переменную, т.е. сформировать соответствующее нечёткое множество.
Нечёткая переменная характеризуется тройкой (α, X, А),
где α – наименование переменной;
X – универсальное множество (область определения α);
А – нечёткое множество на X, описывающее ограничения (т.е. μA(x)) на значения нечёткой переменной α.
Операция концентрации (concentration) CON(A) определяется как алгебраическое произведение нечёткого множества А на самого себя:
В результате применения CON(A) операции ко множеству А уменьшаются степени принадлежности элементов xмножества А, причём если µA(x) ≈ 1, то это уменьшение относительно мало, а для элементов с малой степенью принадлежности – относительно велико.
На естественном языке применение этой операции к тому или иному значению лингвистической переменной А соответствует использованию усиливающего терма «очень» (например, «очень высокий», «очень старый» и т.д.)
Пример действия оператора концентрирования на внутренний (на рисунке ниже под а) и крайний (на рисунке ниже под б) нечёткие множества.
Смысл концентрирования заключается в том, что «очень средними» следует считать только те значения универсального множества, которые расположены очень близко к центру носителя множества.
Использование оператора концентрирования возможно и для крайних нечётких множеств, однако вместо этого в подобных ситуациях часто строят новое крайнее нечёткое множество «очень большой» как на (б).
Операция растяжения (dilation) DIL(A) определяется как:
Действие операции DIL(A) противоположно действию операции концентрации и соответствует неопределённому терму «довольно», выполняющему функцию ослабления следующего за ним (основного) терма А: «довольно высокий», «довольно старый» и т.п.
Можно ввести и другие аналогичные по смыслу операции, позволяющие модифицировать значения лингвистической переменной.
Пример. Рассмотрим лингвистическую переменную «Температура в помещении», заданную на универсальном множестве, выраженном диапазоном значений от 5 до 35. Лингвистическая переменная «Температура в помещении» включает три терма: холодно, комфортно и жарко, - задаваемых функциями принадлежности, как показано ниже.
Ниже также приведено графическое представление каждого терма: синий цвет соответствует терму – холодно, серый терму комфортно, а красный цвет соответствует терму жарко.
Воспользуемся [https://zen.yandex.ru/media/id/603a418d1684900aa2499416/62a1f488277a7c77974d8087] для того, чтобы построить в WolframAlpha график функции принадлежности для, например, терма "Комфортно".
Для этого используем так называемую колоколообразную функцию принадлежности, которая в WolframAlpha задаётся следующей командой:
Plot [1/(1+ abs[(x-c)/a]^(2*b))], {x, 0, 10}
Внесём соответствующие параметры a = 3, b = 3, c = 20.
Для этого в Wolframalpha внесём команду:
Plot [1/(1+ abs[(x-20)/3]^(2*3))], {x, 5, 35}
Получим результат:
Получим новые термы, используя унарные операции "концентрирование" и "растяжение", определения которых сформулированы выше, используя следующие аналитические зависимости:
Сформируем для WolframAlpha следующую совокупность команд:
Plot [1/((1+ abs[(x-20)/3]^(2*3)))^2], {x, 5, 35}
Plot [1/((1+ abs[(x-20)/3]^(2*3)))^4], {x, 5, 35}, {y, 0, 1}
Plot [1/((1+ abs[(x-20)/3]^(2*3)))^1/2], {x, 5, 35}
Объединим эти команды, чтобы графики и первоначального терма, и новых термов строились на одной декартовой плоскости (перечислим через запятую функции принадлежности для каждого терма).
Plot [1/(1+ abs[(x-20)/3]^(2*3)), 1/((1+ abs[(x-20)/3]^(2*3)))^2, 1/((1+ abs[(x-20)/3]^(2*3)))^4, 1/((1+ abs[(x-20)/3]^(2*3)))^1/2], {x, 5, 35}, {y, 0, 1}
В результате показаны все графические представления для терма "Комфортно" и его модифицированных термов.
На последнем рисунке синяя кривая соответствует первоначальному терму "Комфортно", красная - терму "Очень комфортно", оранжевая - терму "Очень-очень комфортно", а зеленая - терму "Довольно комфортно".
В качестве Упражнения воспользуйтесь WolframAlpha для модифицирования термов "Холодно" и "Жарко" лингвистической переменной «Температура в помещении».