Les SIF gérés par cette bibliothèque sont de type MIMO, Multiple Input Multiple Output. Le SIF est construit à partir des informations contenues dans le fichier de configuration. Le module de base comporte deux fonctions principales, toutes deux définies au sein de la classe FIS : Infer et Performance. partbiblifonc
La fonction Infer, à partir d'un vecteur d'entrée, infère une valeur pour chacune des sorties actives. Les étapes de l'inférence floue sont les suivantes :
SI Entrée 1 est Sef 2 ET Entrée 2 est Sef 1 ALORS Sortie 1 est Valeur 1
SI Entrée 1 est Sef 1 ET Entrée 2 est Sef 1 ALORS Sortie 1 est Sef 2
La fonction ExecRule de la classe RULE calcule le degré de vérité de la règle pour l'exemple, au sein de la classe PREMISE. Il s'agit d'une opération de conjonction des degrés d'appartenance des valeurs des différentes variables d'entrée (Entree 1 et Entree 2) pour les sous-ensembles flous qui décrivent la prémisse de la règle (SEF numéro 2 et SEF numéro 1 pour la première règle ; 1 et 1 pour la seconde). La classe PREMISE est construite avec un pointeur sur le tableau des entrées qui lui permet d'accéder au champ Mfdeg des différentes entrées. Ce degré de vérité est stocké au sein de la classe RULE dans une variable publique Weight. Lorsque les règles sont pondérées (voir la section Menu SIF - Fenêtre Règles), cette valeur est multipliée par le poids expert.
Les conclusions des règles pour la sortie sont des valeurs numériques pour une sortie nette ou bien des numéros de sous-ensembles flous pour une sortie floue. On obtient ainsi un ensemble de valeurs possibles.
Pour chacune de ces valeurs, les degrés de vérité des règles sont cumulés pour une agrégation de type sum ou bien seul le maximum est conservé, cas d'une agrégation de type max. Le degré de vérité résultant de l'agrégation est stocké dans le tableau MuInfer, le tableau RuleInfer contient le numéro de la règle correspondant au max, agrégation max, ou bien celui de la dernière règle dont le degré de vérité a été ajouté, agrégation sum.
est le nombre de règles, est le degré de vérité de la règle pour la donnée multidimensionnelle .
est le nombre de termes linguistiques de la partition de la variable de sortie (sortie floue) ou le nombre de valeurs différentes des conclusions des règles (sortie nette).
Les niveaux d'activation résultant de l'agrégation sont :
, la valeur inférée pour l'exemple , dépend des opérateurs de défuzzification sont différents et du type de sortie, nette ou floue.
La figure 5 illustre le processus de défuzzification pour une sortie floue.
Opérateurs d'implication
Pour les règles implicatives, trois opérateurs d'implication sont disponibles :
Le résultat de l'inférence est une distribution de possibilité, qui peut être défuzzifiée. L'implémentation actuelle ne permet pas de paramétrer l'opérateur de défuzzification. Celui qui est appliqué par défaut est la Moyenne des maxima, qui correspond au milieu du noyau de la distribution.