Implémentation et tests

Implémentation et tests

Afin d’illustrer l’algorithme de partitionnement flou des 2-tuples sémantiques, nous allons détailler ce dernier sur un exemple concret et évoquer l’implémentation à proprement parler des 2-tuples sémantiques, ainsi que la manière de les utiliser. 

Implémentation des 2-tuples sémantiques

L’ensemble des applications et services de Deveryware est réalisé et déployé dans un environnement autour des technologies Java et des logiciels libres. Nous avons donc choisi la librairie Java jFuzzyLogic [Cingolani et Alcala-Fdez, 2012] pour implémenter les 2-tuples sémantiques, facilitant ainsi leur insertion dans l’environnement technique chez Deveryware [Abchir, 2011]. jFuzzyLogic est une librairie Java implémentant les spécifications du FCL (« Fuzzy Control Langage IEC 61131 part 7 », soit en français : « Langage de contrôle flou »), ce qui permet de concevoir facilement des contrôleurs flous sous forme de fichier FCL dans tout programme implémenté en Java. FCL est un langage développé spécialement pour la conception de contrôleurs flous. Il permet de décrire les entrées, la sortie et les règles du système d’inférence désiré. 

Les variables des entrées et celle de la sortie sont définies dans des blocs nommés respectivement FUZZIFY et DEFUZZIFY dont l’élément principal est un TERM. Chaque bloc TERM définit un sous-ensemble flou de la variable en question et décrit sa fonction d’appartenance. Pour la sortie il est possible de définir, en plus des sous-ensembles flous, la méthode de défuzzification et sa valeur par défaut. L’exemple suivant décrit en FCL la modélisation de l’alcoolémie notée BAC (pour Blood Alcohol Content) que nous avons vue en section 4.1 et illustrée par la figure 4.1. trian est un mot-clef permettant de définir des fonctions d’appartenance triangulaires. Il est bien évidemment possible de définir d’autres types de fonctions d’appartenance (trapézoïdales, gaussiennes, singletons, etc.). 

Extension de FCL

Dans sa version originelle, le FCL (et par extension jFuzzyLogic) ne permet de créer que des variables numériques reposant sur des fonctions d’appartenance selon la vision de la logique floue précédemment introduite en section 2.1.1.

 Implémentation et tests

Nous proposons donc une extension du FCL afin de prendre en charge les 2-tuples linguistiques et sémantiques. Pour ce faire, nous introduisons deux nouveaux mots-clefs dans la définition de TERM : ling et pairs correspondant respectivement aux 2-tuples linguistiques et aux couples sémantiques dont la sémantique est décrite par des 2-tuples sémantiques.

Ainsi, nous avons étendu la grammaire FCL dans jFuzzyLogic qui est fondée sur une grammaire ANTLR 28 puis nous avons implémenté les différents algorithmes de partitionnement flou. L’alcoolémie peut ainsi être définie en FCL sous forme de 2-tuples comme le montre l’exemple suivant dans lequel la variable BAC_Ling est exprimée par des 2-tuples linguistiques et la variable BAC_Sem est exprimée par des couples sémantiques. 

Formation et coursTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *