Нечёткая логика

25.07.2023


Нечёткая логика (англ. fuzzy logic) — раздел математики, являющийся обобщением классической логики и теории множеств, базирующийся на понятии нечёткого множества, впервые введённого Лотфи Заде в 1965 году как объекта с функцией принадлежности элемента ко множеству, принимающей любые значения на отрезке [ 0 , 1 ] [0,1] , а не только 0 {displaystyle 0} или 1 1 . На основе этого понятия вводятся различные логические операции над нечёткими множествами и формулируется понятие лингвистической переменной, в качестве значений которой выступают нечёткие множества.

Предметом нечёткой логики считается исследование рассуждений в условиях нечёткости, размытости, сходных с рассуждениями в обычном смысле, и их применение в вычислительных системах.

Направления исследований нечёткой логики

В настоящее время[уточнить] существует по крайней мере два основных направления научных исследований в области нечёткой логики:

  • нечёткая логика в широком смысле (теория приближённых вычислений);
  • нечёткая логика в узком смысле (символическая нечёткая логика).

Математические основы

Символическая нечёткая логика

Символическая нечёткая логика основывается на понятии t-нормы. После выбора некоторой t-нормы (а её можно ввести несколькими разными способами) появляется возможность определить основные операции над пропозициональными переменными: конъюнкцию, дизъюнкцию, импликацию, отрицание и другие.

Нетрудно доказать теорему о том, что дистрибутивность, присутствующая в классической логике, выполняется только в случае, когда в качестве t-нормы выбирается t-норма Гёделя[уточнить].

Кроме того, в силу определённых причин, в качестве импликации чаще всего выбирают операцию, называемую residium (она, вообще говоря, также зависит от выбора t-нормы).

Определение основных операций, перечисленных выше, приводит к формальному определению базисной нечёткой логики, которая имеет много общего с классической булевозначной логикой (точнее, с исчислением высказываний).

Существуют три основных базисных нечётких логики: логика Лукасевича, логика Гёделя и вероятностная логика (англ. product logic). Интересно, что объединение любых двух из трёх перечисленных выше логик приводит к классической булевозначной логике.

Синтез функций непрерывной логики заданных таблично

Функция нечёткой логики Заде всегда принимает значение одного из своих аргументов либо его отрицания. Таким образом, функцию нечёткой логики можно задать таблицей выбора, в которой перечислены все варианты упорядочения аргументов и отрицаний, и для каждого варианта указано значение функции. Например, строка таблицы функции двух аргументов может иметь следующий вид:

x 1 ≤ x 2 ≤ x ¯ 2 ≤ x ¯ 1 : x 2 {displaystyle x_{1}leq x_{2}leq {ar {x}}_{2}leq {ar {x}}_{1}:x_{2}} .

Однако произвольная таблица выбора не всегда задаёт функцию нечёткой логики. В работе был сформулирован критерий, позволяющий установить является ли функция, заданная таблицей выбора, функцией нечёткой логики и предложен простой алгоритм синтеза, основанный на введённых концепциях конституент минимума и максимума. Функция нечёткой логики представляет собой дизъюнкцию конституент минимума, где конституента максимума — это конъюнкция переменных текущей области больших либо равных значению функции в этой области (справа от значения функции в неравенстве, включая значение функции). Например, для указанной строки таблицы конституента минимума имеет вид x 2 x ¯ 2 x ¯ 1 {displaystyle x_{2}{ar {x}}_{2}{ar {x}}_{1}} .

Теория приближённых вычислений

Основное понятие нечёткой логики в широком смысле — нечёткое множество, определяемое при помощи обобщённого понятия характеристической функции. Затем вводятся понятия объединения, пересечения и дополнения множеств (через характеристическую функцию; задать можно различными способами), понятие нечёткого отношения, а также одно из важнейших понятий — понятие лингвистической переменной.

Вообще говоря, даже такой минимальный набор определений позволяет использовать нечёткую логику в некоторых приложениях, для большинства же необходимо задать ещё и правило вывода (и оператор импликации).

Нечёткая логика и нейронные сети

Поскольку нечёткие множества описываются функциями принадлежности, а t-нормы и k-нормы обычными математическими операциями, можно представить нечёткие логические рассуждения в виде нейронной сети. Для этого функции принадлежности надо интерпретировать как функции активации нейронов, передачу сигналов как связи, а логические t-нормы и k-нормы, как специальные виды нейронов, выполняющие математические соответствующие операции. Существует большое разнообразие подобных нейро-нечётких сетей (neuro-fuzzy network (англ.)) . Например, ANFIS (Adaptive Neuro fuzzy Inference System) — адаптивная нейро-нечеткая система вывода. (англ.)

Она может быть описана в универсальной форме аппроксиматоров как

y ( x ) = ∑ i = 1 N ϕ i ( x ) ∗ θ i y(x)=sum _{i=1}^{N}phi _{i}(x)* heta _{i} ,

кроме того, этой формулой могут быть описаны также некоторые виды нейронных сетей, такие как радиально базисные сети (RBF), многослойные персептроны (MLP), а также вейвлеты и сплайны.

Примеры

Нечёткое множество, содержащее число 5

Нечёткое множество, содержащее число 5, можно задать, например, такой характеристической функцией: μ A ( x ) = ( 1 + | x − 5 | n ) − 1 mu _{A}left(x ight)=left(1+left|x-5 ight|^{n} ight)^{-1}

Пример определения лингвистической переменной

В обозначениях, принятых для лингвистической переменной:

  • X = «Температура в комнате»
  • U = [5, 35]
  • T = {«холодно», «тепло», «жарко»}

Характеристические функции:

  • μ c o l d ( u ) = 1 1 + ( u − 10 7 ) 12 mu _{cold}left(u ight)={frac {1}{1+left({frac {u-10}{7}} ight)^{12}}}
  • μ o k ( u ) = 1 1 + ( u − 20 3 ) 6 mu _{ok}left(u ight)={frac {1}{1+left({frac {u-20}{3}} ight)^{6}}}
  • μ h o t ( u ) = 1 1 + ( u − 30 6 ) 10 mu _{hot}left(u ight)={frac {1}{1+left({frac {u-30}{6}} ight)^{10}}}

Правило G порождает новые термы с использованием союзов «и», «или», «не», «очень», «более или менее».

  • не A: 1 − μ A ( u ) 1-mu _{A}left(u ight)
  • очень A: ( μ A ( u ) ) 2 left(mu _{A}left(u ight) ight)^{2}
  • более или менее A: μ A ( u ) {sqrt {mu _{A}left(u ight)}}
  • A или B: max ( μ A ( x ) , μ B ( x ) ) max left(mu _{A}left(x ight),mu _{B}left(x ight) ight)
  • A и B: min ( μ A ( x ) , μ B ( x ) ) min left(mu _{A}left(x ight),mu _{B}left(x ight) ight)

Нечёткая логика в информатике

Нечёткая логика — набор нестрогих правил, в которых для достижения поставленной цели могут использоваться радикальные идеи, интуитивные догадки, а также опыт специалистов, накопленный в соответствующей области. Нечёткой логике свойственно отсутствие строгих стандартов. Чаще всего она применяется в экспертных системах, нейронных сетях и системах искусственного интеллекта. Вместо традиционных значений Истина и Ложь в нечёткой логике используется более широкий диапазон значений, среди которых Истина, Ложь, Возможно, Иногда, Не помню (Как бы Да, Почему бы и Нет, Ещё не решил, Не скажу…). Нечёткая логика просто незаменима в тех случаях, когда на поставленный вопрос нет чёткого ответа (да или нет; «0» или «1») или наперёд неизвестны все возможные ситуации. Например, в нечёткой логике высказывание вида «X есть большое число» интерпретируется как имеющее неточное значение, характеризуемое некоторым нечётким множеством. «Искусственный интеллект и нейронные сети — это попытка смоделировать на компьютере поведение человека. А так как люди редко видят окружающий мир лишь в чёрно-белом цвете, возникает необходимость в использовании нечёткой логики».