Logique floue
Un article de Wikibot.
[modifier] Généralités
En informatique on utilise fréquemment des états en les considérant soit vrai soit faux, mais il y a un certain nombre de problèmes pour lesquels cela n'a guère de sens. Par exemple, pour catégoriser des objets d'après des propriétés communes comme de savoir s'il est gros ou petit, ou bien catégoriser des états internes comme les humeurs.
Pour résoudre ce type de problème on fait souvent appel à la logique floue.
[modifier] Principe
On ne passe plus à un état vrai à un état faux par seuil, mais par une suite continue d'états intermédiaires.
Dans un concept plus large, on transite d'un système binaire (2 possibilités) à un système numérique (comportant un nombre arrêté de possibilités).
Autrement dit, on peut visualiser ce principe sous la forme d'un système à base de pourcentage. C'est à dire qu'on ne se base plus sur la fait que quelque chose peut-être vrai ou faux (1 ou 0), mais sur le fait quelque chose peut-être "vrai" (100%), "surement vrai" (75%), "peut-être vrai"(50%), "sans doute faux" (25% vrai), ou alors "faux" (0% vrai).
Cette méthode conceptuelle est une base très importante en informatique, notamment en Intelligence Artificielle, mais aussi en electronique.
[modifier] Exemple d'application
Ce concept se concrétise en programmation par différentes variables. Par exemple, dans ce code C, la première solution ne propose que deux seuils et la seconde par états intermédiaires
// il faut traiter l'humeur d'un personnage
bool BonneHumeur; // on propose ici l'emploi d'un bool de donne humeur, ce qui restreint le choix
scanf("%d", BonneHumeur);
if (BonneHumeur = true) // l'humeur est bonne ou pas
Printf("Bonne nouvelle!");
else
Printf("Oh làlà, domage, il fait si beau.");
int Humeur; // on utilise maintenant un int qui contiendra pour chaque humeur possible un nombre, les possibilités sont maintenant à la mesure du besoin
scanf("%d", Humeur);
switch (Humeur) // en fonction du chiffre entré correspondant à une humeur
{
case 1: // Bonne humeur
printf("Heureux de vous savoir de bonne humeur.");
break;
case 2: // Las
printf("Ne soyez pas si triste...");
break;
case 3: // En colère
printf("Ne fusillez pas l'ordinateur s'il vous plait, je tien à la vie.");
break;
}

