The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
This package is the R implementation of functions to manage a Fuzzy
Inference System (FIS) provided by the open source software FisPro.
FisPro
allows to create Fuzzy Inference Systems and to use them for reasoning
purposes, especially for simulating a physical or biological system.
In this brief User Guide we describe how to build and use a FIS to infer
input values.
See Fuzzy
Logic Elementary Glossary for more details about Fuzzy Logic.
library(FisPro)The FIS configuration file can be designed using the FisPro open source software.
fis_file <- system.file("extdata", "test.fis", package = "FisPro")
fis <- NewFis(fis_file)Create a new empty FIS.
The design must be completed using the
available functions to add inputs, outputs and rules before it can be
used for inference.
fis <- NewFis()
fis$name <- "foo"Add 2 inputs to the FIS.
Create the first input with 2 MFs regular standardized fuzzy partition:
fisin1 <- NewFisIn(2, 0, 1)
fisin1$name <- "input1"
fis$add_input(fisin1)Create the second input with 3 MFs:
fisin2 <- NewFisIn(0, 1)
fisin2$name <- "input2"
mf1 <- NewMfTrapezoidalInf(0, 0.5)
mf1$label <- "Low"
fisin2$add_mf(mf1)
mf2 <- NewMfTriangular(0, 0.5, 1)
mf2$label <- "Average"
fisin2$add_mf(mf2)
mf3 <- NewMfTrapezoidalSup(0.5, 1)
mf3$label <- "High"
fisin2$add_mf(mf3)
fis$add_input(fisin2)Add 2 outputs to the FIS.
Create a crisp output with range [0, 1]:
fisout1 <- NewFisOutCrisp(0, 1)
fisout1$name <- "output1"
fis$add_output(fisout1)Create a fuzzy output with 2 MFs regular standardized fuzzy partition in range [0, 1]:
fisout2 <- NewFisOutFuzzy(2, 0, 1)
fisout2$name <- "output2"
fis$add_output(fisout2)Add 2 rules to the FIS.
Each rule is initialized with a vector of
premises and conclusions.
- a premise is the 1-based index of MF in
the input [FisIn], 0 means the rule is incompelete.
- a conclusion
is a numeric value for crisp output [FisOutCrisp], or the 1-based index
of MF in the fuzzy output [FisOutFuzzy].
In this example the second
rule is incomplete, the second input of the FIS has no effect on this
rule.
fis$add_rule(NewRule(c(1, 2), c(0, 1)))
fis$add_rule(NewRule(c(2, 0), c(1, 2)))Save the FIS to the file “foo.fis”:
fis$save("foo.fis")Infers all outputs:
inferred <- fis$infer(c(0.25, 0.75))Infers first output:
inferred_output1 <- fis$infer_output(c(0.25, 0.75), 1)Infers second output:
inferred_output2 <- fis$infer_output(c(0.25, 0.75), 2)Infers dataset:
test_file <- system.file("extdata", "test_data.csv", package = "FisPro")
dataset <- read.csv(test_file)
inferred_dataset <- fis$infer(dataset)These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.