• Aucun résultat trouvé

Description du raisonnement flou du protocole de routage SynFAnt

Chapitre 7 : un protocole de routage, de diagnostic et surveillance d’un système de communication

7.2. Description du protocole de routage

7.2.4. Description du raisonnement flou du protocole de routage SynFAnt

Classiquement, les rouages d'un système flou sont basés sur la structure illustrée à la figure 7.4, qui comprend 5 blocs ou couches :

A. La base de connaissances

Présenté par la couche 1 de la figure 7.4, il contient les définitions des fonctions d'appartenance (formulaires et paramètres) associées aux variables d'entrée / sortie ainsi que l'ensemble des règles floues. Dans le protocole proposé, les hôtes voisins et le débit efficace sont des entrées

pour le modèle de bande passante, et son résultat est exprimé par la valeur de confiance de la bande passante. De même, l'énergie et le nombre de paquets envoyés et reçus sont des entrées pour le modèle de durée de vie et sa sortie est la valeur de confiance de la durée de vie. En outre, les deux valeurs de confiance de bande passante et de durée de vie en sortie sont les entrées du modèle global de structure de raisonnement par inférence floue présenté à la figure 7.3.

B. La fuzzification

La première étape consiste à transformer les variables (entrée et sortie) en variables linguistiques, comme indiqué dans la couche 2 de la figure 7.3. L’univers de la parole (c’est-à- dire la plage de valeurs que peut prendre la variable) est défini. Ensuite, chaque variable est divisée en catégories appelées variables linguistiques. Ces variables sont exprimées par des mots qui leur donnent un sens en utilisant le langage humain (valeurs linguistiques).

La figure 7.5. montre le mécanisme de modification de la variable. Par exemple, les hôtes voisins d'un nœud sont divisés en modalités (un individu avec 4 hôtes voisins est faible à 20%, moyen à 60% et haut à 0%). Ce processus est similaire à la définition des lois a priori dans les statistiques bayésiennes, cet exemple étant une loi antérieure (0.2, 0.6, 0). La différence dans ce cadre est que la somme des vérités ne doit pas nécessairement valoir 1.

De la figure 7.5 :

- Univers vocal : correspond au nombre de nœuds, il peut être représenté par un entier [0-10]. - Variable linguistique : est le nom de la variable de sortie (nombre de nœud).

- Valeurs de langue : "Cat1" (bas), "Cat2" (moyen) et "Cat3" (haut).

C. Inférence floue

 Construire un ensemble de règles

Sur la base des catégories précédemment exécutées, un ensemble de règles est construit. Comme le montre la figure 7.4, chacune des variables u(t) et x(t) est divisée en 3 catégories (haute, moyenne et basse).

Une véracité pour chacune des règles est ensuite calculée. La construction de ces règles, basée principalement sur les opérateurs logiques "ET" et "OU" est traduite mathématiquement de cette manière.

Figure 7.3. Block de la structure de raisonnement d'inférence floue

Le lien de sortie de la couche 2, représenté par la valeur d'appartenance, spécifie le degré d'appartenance de la valeur d'entrée à l'étiquette respective. On peut formuler des règles linguistiques qui relient les étiquettes linguistiques pour x (t) et u (t) via une partie Si, appelée antécédent d’une règle, et la partie Alors, également appelée une conséquence de la règle qui détermine le résultat linguistique. Et qui donne une étiquette pour x (t +1). La structure d’une règle unique peut donc être présentée par l’équation 7.2:

   

   

   

IF x t is Ax t AND u t is Au t , THEN x t 1 is Ax t 1  (7.2)

Figure 7.4. Structure de la couche floue des nœuds du réseau de Petri fuzzy deMamdani.

u(t)

X(t)

Couche 1 Couche 2 Couche 3 Couche 4 Couche 5

X(t+1)

Alors Si

où Ax (t), Au (t) et Ax (t+1) sont les étiquettes linguistiques pour x (t), u (t) et x (t + 1), respectivement, générées pour les points de données.

 Implication: Calcul de la règle d'activation

Il reste à définir une règle d'activation afin d'obtenir une seule réponse. Cette étape s'appelle l'implication. La méthode Mamdani présentée dans la couche 3 de la figure 7.3 est utilisée dans la méthode proposée.

   

 0 

Mamdani : ConclusionRiyMINyRi X ,ConclusionRi y

Soit x0 = (variable1, variable2) sont les caractéristiques de l'individu

- R xi( 0)est le degré d'activation de la règle;

- μ𝐶𝑜𝑛𝑐𝑙𝑢𝑠𝑖𝑜𝑛(𝑦) est la fonction d'appartenance de l'ensemble flou de sortie conformément à la règle de décision.

Figure 7.5. Ensembles flous de l'entrée de l'hôte voisin avec un nombre initial de 10  agrégation

Dans cette étape, toutes les règles sont regroupées. Ce regroupement est donc basé sur l'opérateur logique "OU". Nous utilisons les compositions MAXIMUM pour caractériser l'ensemble des sorties par une fonction d'appartenance égale au maximum des fonctions d'appartenance des sous-ensembles flous. L'étape d'agrégation est présentée par la couche 4 de la figure 7.3.

D. Défuzzification

Cette étape est présentée dans la couche 5 de la figure 7.3 où l'activation finale obtenue lors de l'étape d'agrégation est transformée en une valeur réelle. La méthode du centre de gravité (CdG) est utilisée, car elle est préférable (et plus cohérente avec les principes de la logique floue) en ce sens, qu'elle incorpore le fait qu'un individu peut appartenir à deux catégories à la fois.

0 0 : n x x i xi U i G n xi x x i U X d x CoG X d       

U est l'univers du discours de la variable de sortie.

Cela revient à considérer l'espérance liée à la densité

x x U d d   

associée à la fonction de

véracité. Le modèle de bande passante de la figure 7.3 est pris à titre d'exemple, ce qui constitue une entrée dans le modèle de structure de raisonnement d'inférence floue. Le mécanisme d’estimation de la valeur de confiance de la bande passante est également basé sur le raisonnement flou illustré à la figure 7.6. Il est clair que le raisonnement permettant d’estimer la valeur de confiance d’un tel nœud pour la largeur de bande métrique est un raisonnement flou, c’est-à-dire. Un réseau hiérarchique flou est exécuté au niveau de deux modèles de bande passante et de durée de vie.

La fonction d'appartenance pour les hôtes voisins, le débit, l'énergie, le nombre de paquets envoyés et reçus, la bande passante, la durée de vie et la fiabilité sont présentés dans le tableau 7.1, ainsi que les expressions linguistiques utilisées pour la fuzzification.

D. Analyse de RdPSynFAnt

Pour optimiser de manière optimale l'outil proposé, notre étude repose essentiellement sur une formule probabiliste permettant de calculer la meilleure probabilité de passer d'un nœud à un autre en fonction des paramètres cités précédemment. Notre étude se concentre sur les transitions,

1) fonction de base ‘BESTHOP’

Le but de cette fonction est de sélectionner le meilleur nœud voisin N parmi d’autres. Sa fonction essentielle est basée sur une formule probabiliste utilisée pour calculer la meilleure

probabilité de passer d’un nœud à un autre en fonction des paramètres cités dans la section (7.2.1).

Figure 7.6. Contrôle flou du modèle de bande passante modélisé par le réseau de Petri

L'algorithme de présentation de cette fonction est le suivant.

Algorithme: fonction BestHop

Début

BS: Meilleur Pas

Si S n'a pas de voisin, alors

Le noeud S est en dehors de la plage BS ← −1 Retour (BS)

Si non

Sélectionnez le meilleur nœud et ses voisins à l'aide du modèle de règles floues

ÉTAPE 1: Entrez les variables requises (montant, distance, etc.) pour la règle floue dans le modèle pour le connecteur de nœuds.

ÉTAPE 2: Calculez le degré d’adhésion de la proposition des variables à l’aide de la formule trapézoïdale.

ÉTAPE 3: Utilisez l’opérateur composé ET (min) pour calculer la puissance de tir. ÉTAPE 4: Utilisez l’opérateur de composition OU (MAX) pour définir la force de tir maximale.

La fonction renvoie le noeud qui a la meilleure valeur. / / Retour (BS)

Proposition 1: Une fonction constante F (t) = 1 est associée à chaque transition pour laquelle aucun événement externe n'a été détecté.

Proposition 2: Un marquage instable sera enregistré après le franchissement d'un événement par une transition, qui n'a pas été associée à une temporisation d et qui a une durée égale à 0.

RdPF de model bande passante

La fonction fait appel à l’algorithme de diagnostic Diag-R pour faire le control de la qualité des liens et nouds

Fin si

Fin

7.2.5. Illustration d'algorithme de routage

L'illustration de l'algorithme de routage du système Ant flou (SynFAnt) peut être présentée à l'aide d'un pseudo-algorithme, dont le but est de montrer le fonctionnement général du protocole.

Algorithme: SynFAnt S = source;

D = destination

Table de nœuds: contient la stabilité (Stab), les hôtes voisins, la valeur de confiance calculée par la fonction BestHop.

Début

1. La base de règles R est un ensemble de règles logiques déduites de l'expression logique du raisonnement d'inférence floue et du tableau 1.

2. Chaque place P modélise une communication possible et est associé à une proposition logique di: «le signe i est en train de se produire».

3. Chaque transition ti modélise une règle logique Ri, qui exprime l’apparition d’une nouvelle communication en combinant les propositions logiques.

4. Si une transition modélise l'évolution d'une communication, c'est-à-dire connaissant la durée d de l'activité capable de générer cette communication, alors le coefficient de la vérité de cet événement est flou. 5. Une communication peut être décrite comme une conjonction / disjonction du lien déjà produit. Le coefficient

de vérité de la variable logique correspondante respecte les règles de réunion ou d'intersection applicables aux ensembles flous.

Si (meilleur saut (s) ≠ -1) alors

// envoie un message entre S et le meilleur voisin Initialisation: τij ← τ0

(i, j) {1 ... n}, chaque fourmi place au hasard un nœud de direction pour t= 1 à t = tmax do

Pour chaque fourmi k faire

Construisez un chemin (t) avec la règle de transition 1. Calculez la longueur Lk (t) de l'itinéraire Fin pour

Laissons T + trouver le meilleur chemin et la longueur correspondante L +. Mettre à jour la phéromone conformément à la règle 2

Fin si

Retour T + et L +

/ / Destination trouvée, retourne et marque la table de chaque nœud Ant (S, D) Replay de l'algorithme Sinon

Si (Meilleur saut (S) = -1) alors

Si (NbNear [S] = 0) alors

Nœud S hors limites Erreur de communication autre Le nœud D est directement connecté à S Ant (S, D)

Fin si Si Diag-R<>0

Le protocole détecte un problème ou défaut Comparer le signe avec les références de diagnostic Black lister la route

Actualiser la table

Envoie message d’alerte aux nœuds voisins Appel à l’algorithme de diagnostic

Envoyer cette erreur aux nœuds voisins pour refaire l’actualisation de tableau. Replay étape de calcule de destination

Fin si

Fin

La description détaillée de l'algorithme de routage proposé est donnée par:

Phase 1 : découverte des voisins

Tous les nœuds du réseau diffusent un message «Hello» contenant leurs adresses périodiquement. Le nœud qui reçoit ce paquet déclare le nœud émetteur en tant que voisin et l'ajoute à la table du voisin. Ensuite, la fonction BestHop est automatiquement déclenchée par ce nœud pour classer le nouveau nœud dans la table de routage en fonction de la valeur de confiance attribuée.

Tableau 7.1. Échelle d'évaluation des hôtes voisins, efficacité du débit, énergie, nombre de paquets envoyés et reçus, et fiabilité des critères de la COIF (c'est-à-dire L (faible), M (moyen), H (élevé) et VH (très faible) HAUTE))

Phase 2 : découverte de l'itinéraire

Lorsqu'un nœud source S souhaite transmettre des données à un nœud de destination D, il envoie périodiquement un certain nombre de fourmis de transmission pour trouver le meilleur itinéraire. L’envoi périodique de ces paquets nous permet de trouver de meilleurs itinéraires qui seront utilisés lors de l’envoi de paquets de données, tout en assurant la maintenance de l’itinéraire. À mesure qu'il avance vers la destination, F-Ant enregistre l'adresse des nœuds visités, la bande passante minimale, le délai de la route et sa fiabilité. Chaque F-ant choisit un nouveau nœud à visiter parmi ses voisins en fonction d’une probabilité appelée probabilité de transition définie par l’équation 1 chapitre 5.

Parameters Low Meduim High Verry High Neighbor hosts [0, 3] [2, 6] [5, 10] [9, 14] Efficient throughput [0, 4] [3, 8] [7, 12] [11, 16] Energy (joules) [0, 0.4] [0.4, 0.7] [0.5,0.9] [0.8, 1.5] Nombre de paquets envoyés et reçus [0, 3] [2, 5] [4, 8] [7, 10] Reliability coef [0, 0.45] [0.40, 0.7] [0.65, 1] / Durée de vie [0, 0.55] [4, 0.70] [0.63, 1] Bandwidth [0, 0.33] [0.2, 0.75] [0.60, 1] /

Pour chaque nœud N choisi, la fourmi suivante vérifiera si ce nœud a déjà été visité. Si c’est le cas, il existe un cycle qui devrait être évité en supprimant tous les nœuds successeurs de k dans la liste des noeuds visités (champ de paquet F-Ant). Ensuite, F-Ant choisit un nouveau nœud intermédiaire en fonction de la probabilité de transition.

Si le nœud n'est pas encore visité, l'antenne de transmission vérifie si ce nœud est la destination souhaitée. Si ce n'est pas le cas, il s'agit d'un noeud intermédiaire qui n'a pas encore été visité. Le protocole effectuera les tâches suivantes:

- Ajouter ce nœud à la liste des nœuds visités.

- Vérifiez si le débit de ce lien est inférieur au de taux de champ de F-Ant. - Basculez cette valeur sur ce champ si c'est le cas.

- Ajouter au champ délai la valeur de délai de ce lien (Délai = Délai + délai du lien). - Vérifiez si la stabilité de ce lien est inférieure à la stabilité enregistrée dans le tableau

des fourmis (Stab).

- Attribuez cette valeur à ce champ si c'est le cas (Stab = stabilité de la liaison).

Si le routage atteint la destination souhaitée, il crée le fichier Backward et transfère toutes les informations qu'il a transmises (vitesse, délai, stabilité, liste des nœuds visités et somme des phéromones de tous les liens). Enfin, cette F-ant sera tuée. La procédure pour trouver la route optimale est décrite à la figure 7.6.

Phase3: Calcul de la quantité de phéromone à ajouter aux liens

Le nœud de destination "D" détecte un nouveau voisin "N" à chaque fois, qui sera ajouté à la table des voisins du nœud. Ensuite, la valeur de la phéromone de liaison (S, Ni) sera affectée à une constant.

Ensuite, cette valeur est mise à jour, quand une fourmi en arrière passe. A ce moment, cette valeur est ajoutée à une quantité de phéromone calculée en fonction de la qualité de la route parcourue par la fourmi avant. Cette quantité notée (S, D) est exprimée par l'équation (7.3):

( ) ( ) ( , ( ) ) B T i j D B R T R u u D R       (7.3) où:

- B (R) est la bande passante de la route R. C'est la bande passante minimale de tous les liens formant R car il s'agit d'une métrique concave.

Figure 7.7. Organigramme de recherche d'itinéraire

- D (R) est le retard de la route R. C'est la somme des retards de tous les liens formant R parce que c'est une métrique additive.

- T (R) est la stabilité de la route R. C'est la stabilité minimale de tous les liens formant R car il s'agit d'une métrique concave.

- B, T et D sont des poids, représentant l’importance relative de chacune des métriques lors

de la mise à jour de la phéromone sur les liaisons de route R.

Pour respecter le principe d'évaporation de la phéromone, la quantité de phéromone sur toutes les liaisons du réseau est périodiquement multipliée par le facteur d'évaporation p, sachant que 0 <p <1.

La quantité de phéromone spécifiant la qualité de l'itinéraire trouvé est également calculée à l'arrivée de la destination du nœud Ant avant. Cette quantité est stockée dans le champ Phéromone de la table de routage

Phase 4: Réponse à la fourmi avant F-Ant

La B-Ant prend le chemin opposé à celui emprunté par la fourmi avant. Il utilise la liste des

Début

Envoyer B-Ant pour rechercher un itinéraire

Choisissez un voisin K en

K = destination

K déjà visité

Récupérer les informations sur les fourmis à venir

End

Best HobTable de noeud

Mettre à jour les champs de fourmis en avant Synchroniser la table de ces nœuds Calcule la phéromone Créer B-ant Supprimer F-Ant No No

Raisonnement d'inférence floue

Yes

Node K

Yes

Ajoutez ce nœud à la liste des nœuds visités

nœuds visités par la F-Ant dans la direction opposée. Lorsque la fourrière approche du nœud source, elle met à jour les tables des nœuds traversés.

7.2.6. Comportement de l’algorithme SyncFAnt aux différents nœuds

Le protocole proposé est implémenté en tant qu'agent de routage s'exécutant sur tous les nœuds du réseau. Plusieurs fonctions sont implémentées comme décrit à la figure 7.7. L'appel de ses fonctions dépend de la nature du nœud (nœud source, nœud de destination ou nœud intermédiaire).

 Au nœud source

Selon la figure 7.8, le nœud source S pourrait être un demandeur de route pour envoyer des données à un nœud de destination D. De plus, le nœud S peut également recevoir un message de rappel des autres nœuds préalablement visités par un certificat de transfert. Le comportement du nœud source dans chaque cas est décrit dans les algorithmes suivants.

Fonction d'algorithme SyncFAnt au nœud source

S = source; D = destination Liste de visites: Table

Début

Si S veut envoyer des données à D qui ne se trouve pas dans la table de routage, alors

Créez des fourmis et envoyez-les lors de la recherche d'itinéraire.

Fin si

Si le noeud S reçoit une fourmi en arrière envoyée par D, alors

Mettre à jour les tables (routage et voisins) Tuer la fourmi en arrière

Envoyer des données

Fin si Fin

 Au nœud intermédiaire

Figure 7.8.Les différentes fonctions de l'algorithme SynFAnt aux différents nœuds Algorithme SynFAnt Fonction nœuds intermédiaires

Début

Si le paquet reçu est un ant avant, alors

Si ce nœud k a visité (nœud pas encore visité) alors Ajouter ce nœud à la liste des nœuds visités Mettre à jour les champs F-Ant:

Débit min (Débit, débit de liaison) Retard Retard + retard du lien Stab min (Stab, stabilité du lien)

Envoyer F-Ant au nœud choisi en fonction de la transition de probabilité (équation 1 chap 5) Supprimez le cycle et envoyez le Forward à un autre nœud en fonction de la probabilité de

transition donnée par BestHop Function. Fin si

Si non

Si le paquet reçu est une fourmi arrière, alors

Mettre à jour les tables (table des voisins et table de routage) Envoyez la fourrière au nœud suivant dans la liste des visites. Fin si

Fin si

Fin

Source Nœud intermédiaire Nœud intermédiaire Destination

Forward ant

Ajouter ce nœud à la visite sur le terrain Mettre à jour le tableau de l'agent de fourmi Mettre à jour BestHop –

Fuzzy inputs- Forward ant

Ajouter cet arbre au champ visité s'il n'est pas déjà visité

Forward ant

Récupérer des informations à partir de F- Ant

calculer

Calculer la qualité of the road

Create backward ant Kill Forward Ant Backward ant

Update la table de routage des voisins Backward ant

Update la table de routage des voisins B-ant Table des voisins D est dans la table de S

Récupérer des informations de F- Ant

Créer backward ant Kill Forward Ant Backward ant

Mettre à jour les tables de routage des voisins Kill Backward

Ant

Envoyer les packets Mettre à jour les tables de routage voisines Kill Backward Ant Envoyer des packets

Forward ant

Mettre à jour le tableau de l'agent de fourmi

Update BestHop Inputs – Fuzzy inputs-

 Au nœud de destination

Lorsqu'un nœud reçoit un paquet F-Ant, il vérifie s'il s'agit du nœud de destination. Si tel est le cas, la procédure est la suivante:

Algorithme: Fonction SynFAnt au noeud de destination

Début

Si le paquet reçu est un ant avant, alors

Calculez la quantité de phéromone à ajouter aux arches (équation 2). Créer une fourmi en arrière

Envoi de la version précédente au noeud de destination Tuer F-Ant

Fin si Fin