• Aucun résultat trouvé

Application de la méthodologie de décomposition au

A.3 Algorithme de la décomposition de la vérification

A.3.3 La fonction RepartitionG2()

8.2 Application de la méthodologie de décomposition au

8.2.1 Décomposition de la modélisation

Le rang de vigne étudié dans le chapitre 4 contient 262 blocs dont 10 de type

"Trou", dont les caractéristiques sont données dans la table 8.1. On remarque que le

premier bloc de la vigne est un bloc de type "Trou" et que la taille minimale d’un bloc de type "Trou", exprimée en durée, est 0.4s.

Table 8.1 – Position et taille des trous dans le rang d’étude Indice trous Durée (s)

0 0.6 6 1.0 30 0.6 48 0.9 69 0.4 84 0.9 91 0.5 105 1.1 140 0.7 160 0.4

Ainsi, la décomposition de la modélisation permet d’avoir 10 parties qui sont décrites par la table 8.2. La colonne "Limite" permet de donner l’indice du premier et du dernier bloc formant la partie et la colonne "Taille" donne le nombre de blocs formant la partie.

On remarque dans la table 8.2 qu’il y a des parties de petite taille (7 blocs) et des parties de taille beaucoup plus grande (102 blocs). Des trop petites parties risquent de compliquer inutilement le processus de validation en décomposant trop, et in- versement les trop grosses parties risquent d’exploser. L’idée consiste à assembler les parties de façon à avoir des parties de taille proche et de complexité "raison- nable" (entre 30 et 40 blocs)2. Il s’agit donc d’effectuer deux types d’actions : le

regroupement des parties trop petites, et la décomposition (qui sera cette fois par injection) des parties trop importantes. Les nouvelles parties ainsi obtenues, appelées

Qi, sont décrites par la table 8.3. Nous avons effectués les regroupement suivants3 : 2. Cette taille sera déterminée par expertise et vérifiée empiriquement.

3. La différence de taille (1 bloc) entre Q1 et P 1 + P 2 vient du fait que le bloc de recouvrement (ici le trou b6) est compté dans chacune des sous-parties P 1 et P 2 et une seule fois dans Q1

8.2. APPLICATION DE LA MÉTHODOLOGIE DE DÉCOMPOSITION AU RANG D’ÉTUDE197

Table 8.2 – Description des parties du rang d’étude Partie Limite Taille

P1 b0-b6 7 P2 b6-b30 25 P3 b30-b48 19 P4 b48-b69 22 P5 b69-b84 16 P6 b84-b91 8 P7 b91-b105 15 P8 b105-b140 36 P9 b140-b160 21 P10 b160-b261 102

Q1 = P 1 ∪ P 2 ; Q2 = P 3 ∪ P 4 ; Q3 = P 5 ∪ P 6 ∪ P 7. Les parties P 8 et P 9 restent

identiques, devenant respectivement Q4 et Q5.

La partie P 10 par contre est trop grande pour pouvoir être traitée par model- checking et elle doit donc être décomposée. Nous allons procéder à une décomposition par injection. Entre le bloc d’indice 160 et le bloc d’indice 261, il y a 49 blocs où

Cbest = Calt. Ces blocs ont les indices [160, 161, 163, 164, 165, 167, 168, 170, 171, 174, 179, 180, 184, 185, 187, 188, 189, 191, 193, 194, 196, 198, 201, 202, 204, 205, 206, 207, 209, 210, 214, 215, 224, 226, 227, 229, 235, 238, 239, 242, 243, 244, 246, 247, 252, 253, 255, 257, 259]. Plusieurs décompositions sont possibles, nous avons choisi de décomposer P 10 en 3 sous-parties Q6, Q7 et Q8 qui correspondent à la taille moyenne choisie.

Table 8.3 – Description des nouvelles parties Partie Limite Taille

Q1 b0-b30 31 Q2 b30-b69 40 Q3 b69-b105 37 Q4 b105-b140 36 Q5 b140-b160 21 Q6 b160-b194 35 Q7 b194-b224 31 Q8 b224-b261 38

L’application de nos techniques de décomposition nous a ainsi permis d’obtenir 8 parties globalement équilibrées en taille permettant de réduire significativement la complexité de la vérification pour chacune d’elles.

Après la formation des parties formant le rang, on génère les modèles SMQi (fichiers .xml) relatif à chacune des parties Qi et on génère deux fichiers .xml spé- cifiques (modèles + informations d’injection) pour la vérification par injection, le premier regroupant les 2 parties Q6 et Q7 (SMQ76) et le deuxième regroupant les

3 parties Q6, Q7 et Q8 (SMQ86−7) .

8.2.2 Décomposition de la vérification

La décomposition de la vérification consiste à vérifier la propriété 3 sur les sous- modèles des parties du rang. Les résultats sont décrits dans la table 8.4 pour chacune des parties Qi identifiées. Dans ce tableau, la colonne "Limite" est un peu différente des tableaux précédents pour les parties où on applique la décomposition par in- jection : en italique est indiqué le bloc initial du sous-modèle, à partir duquel on a injecté leur commande optimale, alors qu’en écriture normale ce sont les blocs ayant la liberté de commande. La colonne nommée "Coût" donne le coût optimal

COi en quantité de produit pulvérisé pour la partie Qi. Pour les lignes concernant la vérification de parties avec injection, cette colonne donne par définition le coût total des blocs indiqués. La colonne nommée "TE" (Temps d’Exécution) donne le temps total requis pour la vérification de la propriété et la colonne nommée "M" (Mémoire) donne la mémoire requise pour la vérification de la propriété.

Nous pouvons observer dans ce tableau 8.4 que la vérification de la propriété 3 sur les parties Q4 et Q8 a produit un problème d’explosion combinatoire. Nous avons dû de nouveau appliquer la méthode de décomposition par injection sur ces deux parties, ce qui a mené à la création de 2 parties supplémentaires.

On peut également remarquer que la vérification de la propriété 3 sur les parties

Q2 et Q3, elles aussi de tailles importantes, n’a pas conduit à une explosion com-

binatoire. Ceci se justifie par le fait que la complexité de la vérification n’est pas uniquement dépendante du nombre de blocs. Elle est aussi dépendante du nombre de choix par blocs, c’est-à-dire ici du nombre de blocs où Cbest= Calt. Par exemple, dans la partie Q2, pourtant de taille supérieure (40 blocs), il y a 25 blocs où Cbest= Calt ce qui limite fortement la complexité, tandis que dans la partie Q4 il n’y a que 15 blocs où Cbest = Calt.

Avec ces décompositions, nous avons donc pu obtenir le coût optimal global CO en quantité du produit pulvérisé pour le rang étudié, qui est égal à la somme des coûts de chaque partie décomposée par trou, ainsi que le coût global du sous-modèle complet de la partie décomposée par injection. On a donc :

CO = CO1+ CO2+ CO3+ CO4_2+ CO5+ CO6+ CO7+ CO8_2 = 4668

Ce coût optimal correspond à une commande de pulvérisation qui elle-même est optimale, et que nous allons étudier ci-dessous.

8.2. APPLICATION DE LA MÉTHODOLOGIE DE DÉCOMPOSITION AU RANG D’ÉTUDE199

Table 8.4 – Coût optimal des parties formant le rang d’étude

Partie Limite Coût (COi) TE (s) M (KB)

Q1 b0-b30 460 7.81 169 972 Q2 b30-b69 748 4.50 120 200 Q3 b69-b105 596 36.34 912 948 Q4_1 b105-b137 492 57.56 1 158 136 Q4_2 b105-b137-b140 548 0.10 76 Q5 b140-b160 398 0.90 16 736 Q6 b160-b194 658 6.51 155 928 Q7 b160-b194-b224 1184 14.12 419 416 Q8_1 b160-b224-b252 1722 12.41 432 416 Q8_2 b160--b252-b261 1918 0.10 76 Rang complet b160-b261 4668 140,35 1 158 136

8.2.3 Séquence de commande optimale obtenue

La Figure 8.4 montre la séquence de contrôle optimale avec le coût le plus bas obtenue sur notre exemple. Sa légende rappelle qu’à chaque type de commande, une couleur est affectée. Dans cette séquence, CH est la commande la plus fréquente. Elle apparaît dans 94 blocs de végétation. Ensuite, on trouve la commande LH & CH (magenta), elle apparaît dans 83 blocs de végétation. Au contraire, la commande CH & HH (jaune) est présente seulement 6 fois. Il apparaît dans la solution op- timale qu’une main seule est suffisante pour pulvériser 42% des blocs, alors qu’un pulvérisateur classique non contrôlé dynamiquement utiliserait toujours deux mains. Souvent, en pulvérisation de précision, le temps de réponse des buses n’est pas pris en compte, alors que notre méthode AMPS prend en considération cet aspect.

Pour montrer l’apport de notre méthode, nous allons comparer la configuration de la solution optimale, que nous avons obtenue grâce à notre méthode, à trois autres configurations de commande : la pulvérisation classique qui utilise toujours 2 mains, la pulvérisation théoriquement idéale en appliquant seulement les commandes à Cbest et sans prendre en compte le temps de réponse des buses, et enfin la pulvérisation en appliquant seulement les commandes à Cbest et en prenant en compte le temps de réponse des buses. Le tableau 8.5 est un tableau comparatif des économies de produit réalisées par rapport à la pulvérisation classique.

La configuration Pulvérisateur classique consiste à utiliser les mains LH&HH pour tout le rang, ce qui résulterait pour les 262 blocs à une pulvérisation en débit nominal pendant 137,2 secondes. Si nous disposons maintenant de la possibilité de commander séparément et dynamiquement les buses, nous avons d’abord considéré la meilleure séquence de contrôle théorique, en appliquant une cartographie Cbest sans tenir compte de la dynamique du pulvérisateur (c’est-à-dire en supposant un temps d’ouverture et de fermeture instantanés). Cette séquence permettrait, s’il elle