• Aucun résultat trouvé

Modélisation avec ajout de la fonction de remaining

5.5 Résultats de l’application de la méthode à une parcelle réelle

5.5.3 Modélisation avec ajout de la fonction de remaining

La performance de UppAal-CORA peut être améliorée en calculant pour chaque état une borne inférieure estimée du coût restant. Cette borne inférieure est mé- morisée dans une variable réservée appelée remaining. Cette information permet à l’algorithme de model-checking de ne pas explorer jusqu’au bout une solution po- tentielle dont le coût s’annonce trop élevé pour représenter une solution optimale possible [15]. La fonction remaining permet donc de réduire le nombre d’états explo- rés de manière spectaculaire et par conséquence améliorer l’efficacité de la résolution. La fonction de remaining ne modifie pas la complexité globale maximale en termes

5.5. RÉSULTATS D’APPLICATION DE LA MÉTHODE 151

de nombre de chemins potentiellement explorables. Elle raccourcit seulement l’ex- ploration en profondeur de l’arbre des chemins potentiels, par évaluation continue d’une borne inférieure du coût total d’un chemin incluant le début du chemin en cours d’évaluation.

5.5.3.1 Fonction de remaining

Pour le modèle DHP _P T A et à chaque état, la variable remaining a été calculée en utilisant la formule suivante qui représente une borne inférieure estimée du coût que pourrait représenter la suite du chemin en cours.

remaining = HarvestingT ime

+ nEmptyingN onSelec × DumpT ime

+ nEmptyingN onSelec × (2 × minDBin) − f actDBin

+ (nbRowN otHarvested − nEmptyingSelec) × dmin + f actdmin (5.2) Sachant que :

HarvestingTime : est le temps de récolte de la totalité des rangs non encore

récoltés.

nbRowNotHarvested : est le nombre de rangs non encore récoltés.

nEmptyingNonSelec : est la limite inférieure du nombre de vidanges de trémies restant, calculé en fonction des capacités des trémies et des quantités des raisins non encore récoltées. En d’autres termes, nEmptyingNonSelec est calculé comme si la récolte s’effectuait en mode non sélectif et que les raisins A et B étaient mélangés dans une seule trémie de capacité 2 x CmaxHopper.nEmptyingSelec : est la limite inférieure du nombre de vidanges de tré-

mies restant calculé comme si la récolte s’effectuait en mode sélectif. On a

nbRowN otHarvested ≤ nEmptyingSelec ≤ nEmptyingN onSelec. La valeur

de nEmptyingSelec est toujours inférieure ou égale à nbRowNotHarvested et supérieure ou égale à nEmptyingNonSelec.

DumpTime : est le temps de vidange des deux trémies dans la benne.minDBin : est le temps de trajet minimum entre l’emplacement des bennes

et un rang parmi ceux non encore récoltés.

factDBin : est un facteur correctif du temps de trajet entre l’emplacement

des bennes et un rang parmi ceux non encore récoltés. Il vaut 0 si HM est dans l’emplacement des bennes et il vaut minDBin si HM est dans un rang.dmin : le temps de trajet minimum entre deux rangs non encore récoltés.

factdmin : est un facteur correctif du temps de trajet entre deux rangs. Il vaut dmin si HM est dans un rang et il vaut 0 dans les autres cas.

Une illustration de ces variables est donnée dans la figure 5.13. Avant de com- mencer la récolte, le nombre de rangs non encore récoltés nbRowNotHarvested est 4, le nombre minimum de vidange calculé en mode sélectif en fonction des capacités des trémies nEmptyingSelec est 2 et le nombre minimum de vidange calculé en mode mixé en fonction des capacités des trémies nEmptyingNonSelec est 2.

Il est aisé de vérifier que la fonction de remaining est une borne inférieure du coût restant, tous les termes constituant le calcul du remaining étant soit des minimums des valeurs, soit des valeurs exactes.

N1 S1 N2 S2 N3 S3 N4 S4 dmin Bin minDBin nEmptyingSelec : 2 nEmptyingNonSelec : 2 nbRowNotHarvested : 4

Figure 5.13 – Exemple illustratif de calcul de la fonction de remaining

5.5.3.2 Résultats du problème de DHP avec remaining

Le tableau 5.4 montre le résultat de la résolution du problème de DHP avec la gestion du coût restant, pour un ensemble d’instances de modèle défini par nRCiRi, avec nCiRi est le même codage défini précédemment en section 5.5.26. On ajoute

le R dans le nom de l’instance pour désigner l’utilisation de la fonction de Remai- ning. L’utilisation de remaining a permis de résoudre le problème DHP pour les 12 premiers rangs du champ étudié.

Les informations suivantes sont données pour chaque instance : nombre d’états explorés (States), coût total qui est le temps de récolte et de déplacement en secondes (Cost), temps de vérification de la requête dans UppAal-CORA en secondes (TE), taille maximale de mémoire nécessaire pour cette vérification en KBytes (Max RSS)

6. n est le nombre de rangs dans le champ (n ∈ [7, 12]), Ci la capacité maximale de la trémie en litres avec C1 = 1000l et C2 = 2000l, Ri spécifie la valeur de Rmin avec R1 = 50% et R2 = 70%

5.5. RÉSULTATS D’APPLICATION DE LA MÉTHODE 153

et Facteur de Gain (FG) qui est le rapport du nombre d’états explorés sans ajout de la fonction de remaining au nombre d’états explorés avec ajout de la fonction de remaining (comparaison avec la table 5.2).

Table 5.4 – Résultats expérimentaux avec la gestion du coût restant Instance States Cost TE (s) RSS (KB) FG

7RC1R1 32019 655 0.31 7684 8 7RC1R2 33189 665 0.30 7076 6 7RC2R1 78035 655 0.51 11680 5 7RC2R2 66045 655 0.43 10512 5 8RC1R1 8031 669 0.10 88 117 8RC1R2 13552 676 0.21 6388 53 8RC2R1 50771 668 0.51 12408 40 8RC2R2 50487 668 0.51 11908 33 9RC1R1 974467 827 6.76 123252 9 9RC1R2 449599 827 3.48 60148 9 9RC2R1 2591458 809 17.45 305068 7 9RC2R2 1918631 809 13.30 220080 6 10RC1R1 181584 844 1.86 35916 – 10RC1R2 154027 844 1.63 30212 – 10RC2R1 800879 825 8.63 147708 – 10RC2R2 793346 825 8.43 144460 – 11RC1R1 29861147 990 203.31 3818508 – 11RC1R2 7659725 990 69.33 994700 – 11RC2R1 29557772 967 255.38 4105804 – 11RC2R2 30626152 967 266.12 4055288 – 12RC1R1 1598213 1007 19.18 297832 – 12RC1R2 1639723 1007 20.11 300416 – 12RC2R1 12823061 983 157.40 2429152 – 12RC2R2 12583816 983 156.28 2370280 – A) Gain en performance

Comparé aux résultats obtenus sans considérer le coût restant, le nombre d’états ex- plorés a été fortement réduit, avec un facteur de 5 pour 7C2R2 et jusqu’à un facteur de 117 pour 8C1R1. Ces chiffres confirment donc le gain en complexité que nous espérions. Ce gain dépend évidemment et fortement des paramètres du problème (seuil de récolte de raisins de qualité A, capacité des trémies). Il dépend également de la précision et de l’efficacité de la fonction de remaining, chacun des chemins coupé étant une source de complexité. Dans la suite, une analyse de l’influence de la précision de la fonction de remaning est fournie.

B) Influence de la précision de la fonction de remaining

Dans le tableau 5.4, on peut observer que, pour une même configuration de pa- ramètres, le nombre d’états explorés est plus élevé lorsque le nombre de rangs n est impair que lorsque le nombre de rangs est pair. Cela résulte de la précision de la borne inférieure offerte par notre fonction de remaining. En effet, l’équation de

remaining est en partie basée sur le trajet le plus court d’une extrémité d’un rang

à l’emplacement des bennes (minDBin). Généralement, ce trajet est égal à la dis- tance (ou le temps de parcours) entre l’emplacement des bennes et l’extrémité du rang non récolté la plus proche de l’emplacement des bennes. Dans notre cas les extrémités Nord sont les plus proches de l’emplacement des bennes. Dans le cas d’un nombre impair de rangs, et comme l’illustre la figure 5.14, il y a un trajet à effectuer entre l’emplacement des bennes et une extrémité Sud d’un rang non récolté (trajet en rouge entre Bin et S3 sur la figure 5.14). Ce temps de déplacement est beaucoup plus long que minDBin, et la borne inférieure choisie pour la fonction de

remaining est alors plus éloignée du coût restant minimum réel. Cette sous estima-

tion peut conduire à ne pas rejeter assez tôt les chemins peu prometteurs, et donc à explorer plus d’états.

N1 S1 N2 S2 N3 S3 dmin Bin minDBin nEmptying : 2 nbRowNotHarvested : 3

Figure 5.14 – Exemple d’un nombre de rang impair

Les instances avec une capacité de trémie élevée sont plus difficiles à résoudre que les instances avec une capacité de trémie inférieure. En effet, malgré l’ajout d’une fonction remaining, les phénomènes décrits à la section 5.5.2.2 sont encore applicables.

Plus la fonction de remaining est proche de la valeur exacte du coût restant, plus elle sera efficace. Il n’est toutefois pas toujours possible de la calculer de façon exacte. De plus, il faut trouver le juste équilibre entre la complexité de calcul de cette fonction qui est effectuée dans tous les états du graphe, et la complexité globale du processus de validation.

5.5. RÉSULTATS D’APPLICATION DE LA MÉTHODE 155

5.5.4 Résolution du DHP : Comparaison du model checking