dhl.addFuzzyTerm(dhl_medium)

# FUZZY TERM high
dhl_high = FuzzyTermType("high", FuzzyTermType.TYPE_trapezoidShape,
                         [5.5, 6.5, 7.5, 8.5])
dhl.addFuzzyTerm(dhl_high)

# FUZZY TERM high
dhl_veryhigh = FuzzyTermType("very high", FuzzyTermType.TYPE_trapezoidShape,
                             [7.5, 8.5, 10., 10.])
dhl.addFuzzyTerm(dhl_veryhigh)

kb.addVariable(dhl)

# RULE BASE
rb = MamdaniRuleBaseType("rulebase1")

# RULE 1
r1 = FuzzyRuleType("rule1", connector="and", connectorMethod="MIN", weight=1.)
ant1 = AntecedentType()
ant1.addClause(ClauseType(pcc, pcc_low))
ant1.addClause(ClauseType(pcp, pcp_low))
ant1.addClause(ClauseType(pcf, pcf_low))
ant1.addClause(ClauseType(pcr, pcr_low))
ant1.addClause(ClauseType(fgb, fgb_low))
con1 = ConsequentType()
con1.addThenClause(variable=dhl, term=dhl_verylow)
r1.setAntecedent(ant1)
r1.setConsequent(con1)
rb.addRule(r1)
# FUZZY TERM setosa
irisClass_setosa = FuzzyTermType("setosa", FuzzyTerm.TYPE_singletonShape, [1.0])
irisClass.addFuzzyTerm(irisClass_setosa);

# FUZZY TERM virginica
irisClass_virginica = FuzzyTermType("virginica", FuzzyTerm.TYPE_singletonShape, [2.0])
irisClass.addFuzzyTerm(irisClass_virginica)

# FUZZY TERM versicolor
irisClass_versicolor = FuzzyTermType("versicolor", FuzzyTerm.TYPE_singletonShape, [3.0])
irisClass.addFuzzyTerm(irisClass_versicolor)

kb.addVariable(irisClass)

# RULE BASE
rb = MamdaniRuleBaseType("rulebase-iris")

# RULE 1
r1 = FuzzyRuleType("rule1", connector="and", connectorMethod="MIN", weight=1.0)
ant1 = AntecedentType()
ant1.addClause(ClauseType(pw, pw_low))
con1 = ConsequentType()
con1.addThenClause(ClauseType(irisClass, irisClass_setosa))
r1.setAntecedent(ant1)
r1.setConsequent(con1)

rb.addRule(r1)

# RULE 2
r2 = FuzzyRuleType("rule2", connector="and", connectorMethod="MIN", weight=1.0)
ant2 = AntecedentType()
#FUZZY TERM NEU
force_neu = FuzzyTermType(name="zero", type_java=FuzzyTermType.TYPE_triangularShape, param=[88.0, 128.0, 168.0])
force.addFuzzyTerm(ft=force_neu)

#FUZZY TERM POS
force_pos = FuzzyTermType(name="positive", type_java=FuzzyTermType.TYPE_triangularShape, param=[128.0, 168.0, 208.0])
force.addFuzzyTerm(ft=force_pos)

#FUZZY TERM VPOS
force_vpos = FuzzyTermType(name="very positive", type_java=FuzzyTermType.TYPE_trapezoidShape, param=[168.0, 208.0, 255.0, 255.0])
force.addFuzzyTerm(ft=force_vpos)

kb.addVariable(var=force)

#RULE BASE
rb = MamdaniRuleBaseType(name="rulebase1")

#RULE 1
r1 = FuzzyRuleType(name="rule1", connector="and", connectorMethod="MIN", weight=1.0)
ant1 = AntecedentType()
ant1.addClause(c=ClauseType(ang, ang_vneg_or_neg))
ant1.addClause(c=ClauseType(ca, ca_vneg_or_neg))
con1 = ConsequentType()
con1.addThenClause(variable=force, term=force_vneg)
r1.setAntecedent(value=ant1)
r1.setConsequent(value=con1)
rb.addRule(rule=r1)

#RULE 2
r2 = FuzzyRuleType(name="rule2", connector="and", connectorMethod="MIN", weight=1.0)
ant2 = AntecedentType()
force_neu =  FuzzyTermType("zero", FuzzyTermType.TYPE_triangularShape,[ 88.0, 128.0, 168.0])
force.addFuzzyTerm(force_neu)

# FUZZY TERM POS
force_pos =  FuzzyTermType("positive", FuzzyTermType.TYPE_triangularShape,[ 128.0, 168.0, 208.0])
force.addFuzzyTerm(force_pos)

# FUZZY TERM VPOS
force_vpos =  FuzzyTermType("very positive", FuzzyTermType.TYPE_trapezoidShape,[ 168.0, 208.0, 255.0, 255.0])
force.addFuzzyTerm(force_vpos)

kb.addVariable(force)


# RULE BASE
rb = MamdaniRuleBaseType("rulebase1")

# RULE1
r1 = FuzzyRuleType("rule1", connector="and", connectorMethod="MIN", weight=1.0)
ant1 = AntecedentType()
ant1.addClause(ClauseType(ang, ang_vneg_or_neg))
ant1.addClause(ClauseType(ca, ca_vneg_or_neg))
con1 = ConsequentType()
con1.addThenClause(variable=force, term=force_vneg)
r1.setAntecedent(ant1)
r1.setConsequent(con1)
rb.addRule(r1)

# RULE2
r2 = FuzzyRuleType("rule2", connector="and", connectorMethod="MIN", weight=1.0)
ant2 = AntecedentType()
tip.addFuzzyTerm(cheap)

# FUZZY TERM average
average = FuzzyTermType("average", FuzzyTermType.TYPE_triangularShape,
                        [5., 10., 15.])
tip.addFuzzyTerm(average)

# FUZZY TERM generous
generous = FuzzyTermType("generous", FuzzyTermType.TYPE_triangularShape,
                         [10., 15., 20.])
tip.addFuzzyTerm(generous)

kb.addVariable(tip)

# RULE BASE
rb = MamdaniRuleBaseType("rulebase1")

# RULE1
rule1 = FuzzyRuleType("rule1",
                      connector="or",
                      connectorMethod="MAX",
                      weight=1.)
ant1 = AntecedentType()
ant1.addClause(ClauseType(food, rancid))
ant1.addClause(ClauseType(service, poor, "very"))
con1 = ConsequentType()
con1.addThenClause(variable=tip, term=cheap)
rule1.setAntecedent(ant1)
rule1.setConsequent(con1)
rb.addRule(rule1)
Example #6
0
rb = AnYaRuleBaseType("rulebase1")
rb.addAnYaRule(anyarule)
if rb.getRuleBaseSystemTypeName() == "anYa":
    print("AnYaRuleBaseType test case passed.")
else:
    print("AnYaRuleBaseType test case failed.")
if rb.getAnYaRules()[0].getAnYaAntecedent().getDataCloudName().getName(
) == "foodmodified":
    print(
        "AnYaRuleBaseType, AnYaAntecedentType, AnYaRuleType, AnYaDataCloudType test case passed."
    )
else:
    print(
        "AnYaRuleBaseType, AnYaAntecedentType, AnYaRuleType, AnYaDataCloudType test case failed."
    )
rb = MamdaniRuleBaseType("rulebase1")
rb.addRule(fuzzyrule)
if rb.getRuleBaseSystemTypeName() == "mamdani":
    print("MamdaniRuleBaseType test case passed.")
else:
    print("MamdaniRuleBaseType test case failed.")
if rb.getRules()[0].getConsequent().getThen().getClause()[0].getVariable(
).getDefuzzifier().getName() == "LeftMostMax":
    print(
        "MamdaniRuleBaseType, ConsequentType, ConsequentClausesType FuzzyRuleType, FuzzyVariableType, Defuzzifier test case passed."
    )
else:
    print(
        "MamdaniRuleBaseType, ConsequentType, ConsequentClausesType, FuzzyRuleType, FuzzyVariableType, Defuzzifier test case failed."
    )
Example #7
0
#FUZZY TERM  virginica
irisClass_virginica = FuzzyTermType(name="virginica",
                                    type_java=FuzzyTerm.TYPE_singletonShape,
                                    param=[2.])
irisClass.addFuzzyTerm(irisClass_virginica)

#FUZZY TERM versicolor
irisClass_versicolor = FuzzyTermType(name="versicolor",
                                     type_java=FuzzyTerm.TYPE_singletonShape,
                                     param=[3.])
irisClass.addFuzzyTerm(irisClass_versicolor)

kb.addVariable(irisClass)

#RULE BASE
rb = MamdaniRuleBaseType("rulebase-iris")

#RULE 1
r1 = FuzzyRuleType(name="rule1",
                   connector="and",
                   connectorMethod="MIN",
                   weight=1.0)

ant1 = AntecedentType()
ant1.addClause(c=ClauseType(pw, pw_lowLIN))
con1 = ConsequentType()
con1.addThenClause(c=ClauseType(variable=irisClass, term=irisClass_setosa))
r1.setAntecedent(value=ant1)
r1.setConsequent(value=con1)
rb.addRule(r1)