模糊循环三角隶属函数

时间:2014-05-21 17:09:52

标签: r fuzzy-logic

我对R中的模糊工具包很新。我一直在尝试创建图像中显示的模糊函数。

我正在使用此函数将时间表示为四个变量的列表

  1. 上午
  2. 中午
  3. 晚间
  4. 午夜
  5. 对于任何给定时间,所有四个变量都具有特定值。例如,当我们在凌晨3点的时间  早晨= 0.5,中午= 0,晚上= 0,午夜= 0.5

    这也是一个循环隶属函数。午夜变量包围0:00和24:00

    如何使用模糊工具包在R中实现这一点。非常感谢你提前。

    image

1 个答案:

答案 0 :(得分:0)

我想一个开始就是

FIS <- newFIS("daytest")
FIS <- addVar(FIS, "input", "daytime", 0:2400)
FIS <- addMF(FIS, "input", 1, triMF("Midnight", 0:2400, c(0,0,600,1)))
FIS <- addMF(FIS, "input", 1, triMF("Morning", 0:2400, c(0,600,1200,1)))
FIS <- addMF(FIS, "input", 1, triMF("Noon", 0:2400, c(600,1200,1800,1)))
FIS <- addMF(FIS, "input", 1, triMF("Evening", 0:2400, c(1200,1800,2400,1)))
FIS <- addMF(FIS, "input", 1, triMF("Mignight", 0:2400, c(1800,2400,2400,1)))


class(FIS)
plotMF(FIS, "input",1)

daytime FIS

问题在于文档没有明确说明关于循环模型的任何内容,因此它可能不太可能知道包装时间使得两个中午都是相同的。但是通过窥视物体,看起来你可以轻易地操纵它,这样你就可以制作出你想要的任何形状。所以我试过这个

FIS$inputList[[1]]$membershipFunctionList[[1]]$mfVals <- 
    FIS$inputList[[1]]$membershipFunctionList[[1]]$mfVals+
    FIS$inputList[[1]]$membershipFunctionList[[5]]$mfVals
FIS$inputList[[1]]$membershipFunctionList[[1]]$mfType <- "wrapmf"
FIS$inputList[[1]]$membershipFunctionList[[5]]<-NULL

这里我手动组合了两个午夜值,更改了“类型”,因此它不会意外地尝试在任何时候重置它或根据它认为是三角形的事实做出任何错误的假设,然后删除第二个午夜类别。不是它产生这个情节

cyclic FIS

您可以看到第一个和最后一个峰现在都是红色(并且第二个峰没有单独的标签)。基于我阅读的有限数量,这应该有用。