Я создал нечеткую базу правил для проекта. В настоящее время я тестирую, работают ли правила. Я пытаюсь явно проверить правило 7 из приведенных ниже правил (хотя у нечеткого контроллера есть все правила, написанные в них).Почему мои нечеткие правила не срабатывают?
RULE 7 : IF hotelClass IS aboveAverage AND travellerType IS familyMan AND room IS poor THEN trustWeight IS medium;
Я планирую держать «hotelClass», «travllerType» постоянной, а только меняя значения «номер», чтобы проверить, как ведет себя выходные. Код, который:
for (double room = 0.0; room <= 10; room += 0.1) {
fis.getVariable("room").setValue(room);
fis.getVariable("hotelClass").setValue(5);
fis.getVariable("travellerType").setValue(travellerType);
fis.evaluate();
// Print result & update plot
System.out.println(String.format("Room: %2.2f\t=> tweight: %2.2f ", room, fis.getVariable("trustWeight").getValue()));
}
Но мне кажется, что, когда у меня есть все мои правила на месте, правила не получите удар, оставляя выходные нечеткие значения, останется в 0. Но у меня нет никаких проблем, когда мой нечеткий контроллер только имеет это одно правило.
Это мои правила из исходного файла контроллера:
RULE 1 : IF hotelClass IS aboveAverage AND travellerType IS businessMan AND room IS poor THEN trustWeight IS high;
RULE 2 : IF hotelClass IS aboveAverage AND travellerType IS businessMan AND service IS poor THEN trustWeight IS high;
RULE 3 : IF hotelClass IS aboveAverage AND travellerType IS businessMan AND room IS excellent THEN trustWeight IS less;
RULE 4 : IF hotelClass IS aboveAverage AND travellerType IS businessMan AND service IS excellent THEN trustWeight IS less;
RULE 5 : IF hotelClass IS aboveAverage AND travellerType IS businessMan AND room IS good THEN trustWeight IS medium;
RULE 6 : IF hotelClass IS aboveAverage AND travellerType IS businessMan AND service IS good THEN trustWeight IS medium;
RULE 7 : IF hotelClass IS aboveAverage AND travellerType IS familyMan AND room IS poor THEN trustWeight IS medium;
RULE 8 : IF hotelClass IS aboveAverage AND travellerType IS familyMan AND service IS poor THEN trustWeight IS medium;
RULE 9 : IF hotelClass IS aboveAverage AND travellerType IS familyMan AND room IS excellent THEN trustWeight IS medium;
RULE 10 : IF hotelClass IS aboveAverage AND travellerType IS familyMan AND service IS excellent THEN trustWeight IS medium;
RULE 11 : IF hotelClass IS aboveAverage AND travellerType IS familyMan AND room IS good THEN trustWeight IS high;
RULE 12 : IF hotelClass IS aboveAverage AND travellerType IS familyMan AND service IS good THEN trustWeight IS high;
Дополнительной информация:
- Я делаю использование «центр тяжести» метода дефаззификации к obtainvalues для «trustweight»
- Мои нечеткие переменные и комплекты приведены ниже, а также
Может ли кто-нибудь сказать мне, что и где я иду не так? Любые комментарии, указатели, объяснения и т. Д. Действительно помогут.