2015-02-11 8 views
0

Я создал нечеткую базу правил для проекта. В настоящее время я тестирую, работают ли правила. Я пытаюсь явно проверить правило 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»
  • Мои нечеткие переменные и комплекты приведены ниже, а также

enter image description here

Может ли кто-нибудь сказать мне, что и где я иду не так? Любые комментарии, указатели, объяснения и т. Д. Действительно помогут.

ответ

0

Вы пытались убедиться, что в правилах нет противоречий? Что произойдет, если в комнате будет плохо, а обслуживание отличное?