
fm.AddRule(FzAND(Target_Medium, Ammo_Okay), VeryDesirable);
fm.AddRule(FzAND(Target_Medium, Ammo_Low), Desirable);
fm.AddRule(FzAND(Target_Far, Ammo_Loads), Desirable);
fm.AddRule(FzAND(Target_Far, Ammo_Okay), Desirable);
fm.AddRule(FzAND(Target_Far, Ammo_Low), Undesirable);
Once a FuzzyModule has been initialized, it’s a painless matter to input val
-
ues and calculate a crisp conclusion. Here’s a method that does just that:
double CalculateDesirability(FuzzyModule& fm, double dist, double ammo)
{
//fuzzify the inputs
fm.Fuzzify("DistToTarget", dist);
fm.Fuzzify("AmmoStatus", ammo);
//this method automatically processes the rules and defuzzifies
//the