2015-02-11 69 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

您是否试过确保规则中没有矛盾?如果房间很差,服务很好,会发生什么?

相关问题