Двигатель вывода - гибридные правила с четкими и нечеткими фактами

Я хочу сделать нечеткий двигатель логического вывода, который выводит 3 типа правил:

  • Четкие правила.
  • Нечеткие правила.
  • Гибридные правила с четкими и нечеткими фактами.

Каждое правило имеет набор гипотез, набор выводов и фактор определенности. В фактах множества, если факт является нечетким фактом, то он имеет степень правды.

Существуют учебные пособия по выводу четких правил и нечетких правил, но как я могу вывести гибридные правила?

1 ответ

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

Например: входная температура как следующие MF:

temp_low_mf = fuzz.trimf(x_temp, [0, 0, 10])
temp_med_mf = fuzz.trimf(x_temp, [0, 20, 45])
temp_high_mf = fuzz.trimf(x_temp, [20, 45, 45])

Скорость вращения выходного вентилятора имеет одно из значений MF, связанных с четким правилом:

fanspeed_low_mf = fuzz.trimf(x_fanspeed, [0, 0, 0])

Таким образом, нечеткое правило, приведенное ниже, является четким правилом:

rule1 = ctrl.Rule(tempAnt['low'], fanspeedCon['low'], "Cold Climate Rule")

То есть: если температура меньше 10, то скорость вентилятора должна быть 0.

Другие вопросы по тегам