Двигатель вывода - гибридные правила с четкими и нечеткими фактами
Я хочу сделать нечеткий двигатель логического вывода, который выводит 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.