simulation de l'exploitation des périmètres irrigués

69
Université Paris IX - Dauphine DEA 127 Informatique: Systèmes Intelligents Bases de Données, Intelligence Artificielle, Apprentissage Simulation de l'exploitation des périmètres irrigués: étude sur la coordination réactive par apprentissage dans l'utilisation d'une ressource Mémoire de DEA réalisé par : laboratoire : responsables de stage: Yawa Edern FIANYO L.LA. du centre ORSTOM d'Ile de France Jean-Pierre TREUIL (LWORSTOM) Yves DEMAZEAU (LeibnizlIMAG/CNRS) Suzanne PINSON (Université Paris IX- Dauphine) Septembre 1996

Upload: others

Post on 06-Nov-2021

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Simulation de l'exploitation des périmètres irrigués

Université Paris IX - DauphineDEA 127 Informatique: Systèmes IntelligentsBases de Données, Intelligence Artificielle, Apprentissage

Simulation de l'exploitation des périmètres irrigués:

étude sur la coordination réactive par apprentissage

dans l'utilisation d'une ressource

Mémoire de DEAréalisé par :

laboratoire :

responsables de stage:

Yawa Edern FIANYO

L.LA. du centre ORSTOM d'Ile de France

Jean-Pierre TREUIL (LWORSTOM)

Yves DEMAZEAU (LeibnizlIMAG/CNRS)

Suzanne PINSON (Université Paris IX- Dauphine)

Septembre 1996

Page 2: Simulation de l'exploitation des périmètres irrigués

Remerciements

Je tiens à remercier:

Monsieur Jean-Pierre Treuil, responsable du Laboratoire d1nformatique Appliquée du centre ORSTOM deBondy, pour m'avoir accueillie dans son équipe de recherche ainsi que pour l'aide constante et les judicieuxconseils qu'il m'a prodigués au cours de ce stage.

Monsieur Yves Demazeau, du laboratoire Leibniz de l'institut IMAG1, chargé de recherche au CNRS pour son

aide scientifique. Madame Suzanne Pinson, directrice du DEA pour ses critiques constructives.

Monsieur Gaston Pichon, directeur de recherche à l'ORSTOM pour son amicale collaboration.

Merci enfin à tous les membres du L.LA. et de l'atelier infonnatique du centre ORSTOM de Bondy: Anne-MarieAubry, Chantal Bernard, Erwan Mas, Lucienne Houx, Edith Perrier, Sandrine Vallat, Françoise Pelletier, YvetteLambert, Marc Le Bris ainsi qu'aux stagiaires Frédérique Luong, Christian Leclerc et Christophe Solignac.

IInstitut d'Informatique et de Mathématiques Appliquées de Grenoble

Page 3: Simulation de l'exploitation des périmètres irrigués

INTRODUCTION ....................................................•............................................................................................ 3

PREMIÈRE PARTIE: LE PROBLÈME DE L'UTILISATION D'UNE RESSOURCE 5

1 LA MÉTHODE DU SIMl'LEXE 5

II LA MÉTHODE DU RECUIT sIMULÉ 6

III LA RECHERCHE TABOU 7

IV LES ALGORITHMES GÉNÉTIQUES 8

DEuxIÈME PARTIE: LES CONCEPTS D'APPRENTISSAGE ET DE COORDINATION 10

1 L'APPRENTISSAGE ........................................•....................................................................................................... 10

L'approche spécifiste 10L'approche généraliste 10

II LA COORDINATION 13

La coordination réactive 14L'éco-résolution : la résolution de problème par coordination 15

TROISIÈME PARTIE: LES SIMULATIONS MULTI·AGENTS 17

I LA SMULATION 17

II LES SYsTÈ~MULTI-AGENTS 17

III LA SMULATION MULTI-AGENTS 18

QUATRIÈME PARTIE: LE MODÈLE ET SES RÉSULTATS 19

Le projet Freddy Walker 19

1LE MODÈLE 19

1. Description de l'univers du modèle 202. Le mécanisme de prise de décision 213. Le mécanisme d'apprentissage 214. Le calcul de la satisfaction globale: SG(t) 225. La vérification du modèle 23

II LES RÉSULTATS 24

1. Les hypothèses générales de fonctionnement 242. Les quatre cas de dynamique de la ressource 253. Discussion des résultats obtenus en fonction de la satisfaction globale 264. Résultats obtenus lorsque les exploitants se basent sur leur satisfaction individuelle 295. Les stratégies remarquables du système observées à l'état d'équilibre 306. Conclusions 31

CINQUIÈME PARTIE : DISCUSSION.•.......................................................................................................... 32

1 LA MÉTHODE DU SlMPLEXE 32

II LES MÉTHODES STOCHASTIQUES D'OPTIMISATION COMBINATOIRE 32

CONCLUSION 36

BIBLIOGRAPHIE : 38

ANNEXES ................................................•......•.............................................................................•............•.•...•... 40

Page 4: Simulation de l'exploitation des périmètres irrigués

Introduction

L'étude effectuée lors de ce stage s'inscrit dans le cadre des travaux effectuées au LIA (Laboratoire

d'1nfonnatique Appliquée) de l'ORSTOM (Institut français de recherche scientifique pour le développement en

coopération) en collaboration avec le ClRAD-GREEN sur les interactions entre sociétés et milieux.

L'objectif de ces travaux est de contribuer à la recherche des conditions d'un développement durable; c'est à dire

d'une co-viabilité à long terme des écosystèmes et des modes d'exploitation qu'ils supportent. Cette démarche en

terme de co-viabilité impose une recherche sur l'adaptation des systèmes productifs aux variabilités naturelles et

économiques.

La démarche adoptée consiste à prendre en compte la structure complexe des écosystèmes étudiés plutôt que

d'étudier le système d'un point de vue spécifique: biologique (étude du système écologique subissant les actions

de l'homme) ou sociologique (étude de l'homme soumis à la variabilité de son milieu naturel).

Cette démarche se place à l'interface des sciences de l'environnement (principalement l'écologie) et des sciences

sociales. C'est une recherche interdisciplinaire pour étudier les relations entre dynamiques naturelles et

dynamiques sociales.

La méthode utilisée conduit à modéliser le système en se situant au niveau de l'individu ou de l'entité composante

du système (Individual-based modelling) pour comprendre comment peuvent émerger les propriétés du système

étudié. Dans un tel type de modélisation, l'Homme n'est plus considéré comme l'élément central du système mais

comme un élément en interaction avec les autres composants du système.

Une thèse est actuellement menée par Olivier Barreteau sur l'influence des modes d'organisation et de gestion

d'un périmètre irrigué sur la viabilité de celui-ci. L'irrigation a pendant longtemps été gérée de façon centralisée

au niveau de l'Etat dans de nombreux pays sahéliens. Cependant, suite au désengagement des Etatspour alléger

leurs budgets et donner plus de responsabilités aux acteurs locaux, de nouvelles conditions de relation avec

l'environnement apparaissent pour les paysans. La thèse actuellement menée par Olivier Barreteau a pour objet

de mieux comprendre les dynamiques des périmètres irrigués en vue de leur gestion viable.

La viabilité d'un périmètre irrigué comporte de multiples facettes. Le problème de l'utilisation de l'eau pour

l'irrigation est une des facettes les plus importantes du problème. L'eau est en effet une ressource partagée qui est

parfois rare et peut ne pas suffire à satisfaire simultanément les besoins de tous. TI faut donc que se mette en place

une organisation où chacun coordonne son activité avec celle des autres.

L'objectif de notre travail est d'étudier la coordination entre utilisateurs dans l'usage d'une ressource en utilisant

des méthodes de simulations multi-agents. Il s'agit de construire à partir d'une formalisation théorique du

problème une plate-forme multi-agents permettant de simuler les effets globaux des décisions individuelles

relatives à l'utilisation de la ressource. En partant de l'hypothèse - évidemment discutable - que les utilisateurs de

la ressource ne communiquent pas entre eux, mais qu'ils reçoivent via l'environnement certaines informations sur

leur satisfaction générale, on essaie d'aboutir à une coordination de leurs actions de sorte que la ressource soit

utilisée de la meilleure façon possible.

De façon plus concrète, nous simulons un système composé d'une ressource et d'un ensemble d'utilisateurs : les

exploitants. Les exploitants ont des désirs (ils aimeraient recevoir une certaine quantité de ressource) et

3

Page 5: Simulation de l'exploitation des périmètres irrigués

effectuent des actions. A chaque période de temps de la simulation, les exploitants décident s'ils vont utiliser ou

non la ressource. Ce sont ces décisions qui vont déterminer la quantité de ressource dont va bénéficier chaque

exploitant. Le but de notre système est d'aboutir grâce à un mécanisme d'apprentissage à ce que les exploitants

coordonnent leur décisions de telle sorte que les quantités de ressource reçues par chacun conduisent à la

satisfaction la plus grande possible.

Nous travaiIlons donc sur un problème de partage d'une ressource. C'est un problème classique étudié en

Recherche OpérationneIle. Dans une première partie. nous présentons quelques méthodes de résolution du

problème. Notre objectif étant de parvenir à une coordination d'actions par un mécanisme d'apprentissage, dans

une deuxième partie. nous présentons ces deux concepts. La troisième partie de ce mémoire a pour objet la

méthodologie que nous avons utilisée: la simulation multi-agents. La quatrième partie du mémoire est consacrée

au modèle construit ainsi qu'aux résultats que nous avons obtenus.

Nous terminons ce mémoire par une discussion sur la démarche que nous avons utilisée. Nous essayons en

particulier de comparer cette démarche avec les méthodes plus classiques de résolution du problème de partage

de ressource que nous avons présentés dans la première partie.

4

Page 6: Simulation de l'exploitation des périmètres irrigués

Première partie: Le problème de l'utilisation d'une ressource

Le problème du partage d'une ressource entre plusieurs utilisateurs se rencontre dans de très nombreuses

situations de la vie courante et dans plusieurs disciplines. En économie se pose le problème de l'investissement

qui consiste à répartir une certaine somme d'argent entre plusieurs projets. En infonnatique. on peut mentionner

le problème de la répartition d'un ensemble de tâches à un ensemble de robots ou le problème de l'allocation de

temps CPU à un ensemble de processus. Enfin. en sciences de l'environnement l'exploitation d'une ressource

naturelle pose également le problème de l'utilisation optimale de la ressource. Ce problème appartient à la famille

des CSP (Constraints Satisfaction Problem).

Un CSP est un problème qui peut se décomposer comme suit:

- un ensemble fini de variables.

- chaque variable est associée à un ensemble fini de valeurs.

- un ensemble de contraintes restreint les valeurs que les variables peuvent prendre en même temps.

Résoudre un CSP consiste à trouver une solution réalisable. c'est à dire à déterminer l'ensemble des valeurs que

doivent prendre les variables tout en respectant l'ensemble des contraintes.

Le problème de répartition optimale d'une ressource est un cas particulier de la famille des CSP. c'est un CSP

d·optimisation. En effet. il faut non seulement trouver une répartition réalisable. mais encore s'assurer que cette

répartition est selon un certain critère (la fonction d'évaluation) la meilleure.

Il existe deux grandes familles de résolution des problèmes d·optimisation. La programmation linéaire et les

méthodes stochastiques. L'algorithme de base de la programmation linéaire est la méthode du simplexe. Cette

méthode et ses méthodes dérivées (algorithme dual-simplexe) s'appliquent à une grande variété de problèmes

d·optimisation. Les méthodes stochastiques permettent de réduire l'explosion combinatoire des problèmes

d'optimisation en utilisant des heuristiques pour parcourir l'espace de recherche.

Dans les paragraphes qui suivent nous présentons différentes méthodes de résolution des problèmes

d'optimisation combinatoire : la méthode du simplexe et trois méthodes stochastiques (la recherche tabou. le

recuit simulé et les algorithmes génétiques).

1La méthode du simplexe

La méthode du simplexe est une méthode de programmation linéaire d'optimisation. Pour qu'elle soit applicable,

le problème doit pouvoir prendre une forme standard. c'est à dire être spécifié comme suit:

Soit 1 ={ l •...•i .... ,m} un ensemble de ressources à répartir. m ~ 1 et J={ 1•...J•...•n} un ensemble de produits à

fabriquer n ~ 1. La fabrication d'un produit j nécessite aiJ unités de la ressource i. On dispose de hi unités de

chaque ressource i. La fabrication d'une unité du produitj apporte un profit de Cj francs.

Le problème est de trouver le nombre d'unités Xj de chaque produit j à fabriquer. de manière à maxiIIÙser le

profit global sans dépasser les disponibilités.

5

Page 7: Simulation de l'exploitation des périmètres irrigués

On définit les variables d'écart XH i =bi - L ai,jx j qui représentent la quantité de ressource i qui reste aprèsje]

que l'on ait affecté à chaque produitj à fabriquer les quantités aijxj

Trouver une solution au problème revient à trouver:

- les quantités x j.je{l,n] des produits j à fabriquer (ces variables jouent le rôle des variables hors base au départ de

l'algorithme)

- et les quantités Xn+i,ie[l,m] ; quantités de ressource restantes ( ces variables jouent le rôle des variables de base

au départ de l'algorithme)

que l'on peut représenter sous la forme d'un vecteur X à lecomposantes X =( Xl. , •. ,xj' ... ,x..., Xn+l, ...• xn+..) telles

que la fonction Z(X) =z, = L CjXj soit maximale.je]

Le principe de l'algorithme du simplexe est le suivant:

On part de la solution de base X telle que les variables hors base sont toutes nulles et les variables de base sont

toutes égales à b,.. 'Lx est donc nul.

Puis

On cherche la variable hors base Xk qui doit entrer dans la base (c'est la variable Xt telle que Ct> 0 est

maximale; Ck représente le profit que rapporte une unité de variable x0;

s'il n'yen a pas, c'est que X est solution optimale

sinon

on cherche la variable de base YI qui doit sortir de la base (c'est la variable YI telle que

~ bl • {[ b, JI} cA:' b,U = -- = mIn -- ai,A: > 0 . La variable Xk va être augmentée de -- cela va faire passer la valeural,A: «, al,A:

de la variable YI de bl à 0).

s'il n'y en a pas, c'est que la fonction 'Lx présente un optimum infini pour Xk= +00,

sinon on effectue l'échange de variable Xk =x"

et on recommence avec la nouvelle variable X'

L'algorithme du simplexe peut être utilisé dans une grande variété de cas de problèmes d'optimisation, Cependant

c'est une méthode qui s'avère peu rapide dès que le nombre de variables à combiner devient important.

Il La méthode du recuit simulé

Le recuit simulé est une méthode stochastique d'optimisation combinatoire (Kirkpatrick, 1983), qui permet de

déterminer la solution optimale ou à défaut une très bonne solution d'un problème en évitant le piège des

solutions sub-optimales (les optima locaux) au moyen d'une règle probabiliste basée sur un paramètre décroissant

appelé température.

L'optimisation consiste à minimiser une fonction appelée énergie.

L'idée du recuit simulé en optimisation combinatoire est de simuler numériquement une opération de recuit

thermique (le recuit thermique est une technique de refroidissement des métaux). Le principe est le suivant:

6

Page 8: Simulation de l'exploitation des périmètres irrigués

On considère un système composé de N éléments. A chaque configuration du système est associée une fonction à

optimiser. Si l'on cherche la configuration qui minimise la fonction, celle-ci joue le rôle de l'énergie. Si on

recherche au contraire un maximum, alors on prend comme énergie l'opposée de la fonction.

Les configurations du système peuvent être modifiées par des changements d'états discrets des composants du

système.

Le principe du recuit simulé est le suivant:

Initialisation:

- on part d'une solution réalisable aléatoire.

- on fixe un paramètre de température (T) accessible au système.

Boucle de l'algorithme (processus de Monte-Carlo ou de Metropolis)

- on tire au sort une modification de la configuration actuelle qui change l'énergie du système d'une quantité ~.

- si l'énergie diminue,

AE

alors on effectue le changement avec une probabilité e T et on reprend le processus de Monte-Carlo

sinon on diminue un peu la température et on reprend le processus de Monte-Carlo de décroissance de

l'énergie.

- On arrête lorsque les diminutions de températures restent inefficaces.

Fin Boucle.

Les méthodes d'optimisation habituelles n'acceptent que des mouvements qui font diminuer l'énergie et donc

peuvent conduire à des minima locaux. L'originalité de la méthode du recuit simulé consiste à tolérer les autres

mouvements avec une probabilité qui décroît avec la température. A forte température, on accepte pratiquement

tous les mouvements, mais à basse température, on accepte pratiquement que ceux qui réduisent l'énergie.

Une des difficultés d'application de cette méthode réside dans le fait qu'il faut pouvoir définir une série de

températures décroissantes T~T1> ... > Tn'

III La recherche tabou

La recherche Tabou est une méta-stratégie et non pas une méthode directement opératoire, car elle doit être

utilisée avec une méthode d'optimisation combinatoire complémentaire comme la méthode du hiIl-c1irnbing.

Cette méthode permet d'accélérer la recherche en imposant des restrictions, à l'aide d'une mémoire à court terme

des solutions récentes étudiées pour guider le processus de recherche.

A chaque itération, une méthode d'optimisation combinatoire est utilisée pour obtenir une nouvelle solution dans

le voisinage N(s) de la solution courante s. Chaque solution réalisable s est évaluée suivant une fonction de coût

c(s).

A chaque itération, on choisit parmi les solutions voisines de la solution courante, celle dont le coût est le plus

bas. Certaines solutions voisines peuvent être interdites, en fonction d'une mémoire à court terme, la liste tabou.

Cette liste est constitué d'un ensemble dynamique de règles définis par l'utilisateur qui permet de trouver en

fonction des événements passés quelles sont les solutions voisines interdites.

Il est cependant possible de revenir en arrière vers de précédentes solutions, grâce aux critères d'aspiration. Ces

critères peuvent être utilisés pour lever le statut tabou de certaines solutions de telles sortes que différents

chemins de recherche puissent être explorés.

7

Page 9: Simulation de l'exploitation des périmètres irrigués

La méthode de recherche Tabou peut être résumée comme suit:

- Initialisation:

recherche de la solution initiale par application de la méthode de recherche de solution.La mémoire (H) est initialisée à vide

- Boucle:

on détennine l'ensemble des solutions voisines N(s) de la solution courante son sélectionne la solution qui minimise le coût c(s)on vérifie que le critère d'optimisation recherché n'est pas atteint. Sinon, on arrêteon met à jour de la mémoire H.

Fin boucle.

L'intérêt majeur de la recherche Tabou est qu'elle permet de se mémoriser le passé ce qui accélère la recherche

par l'évitement des cycles.

IV Les algorithmes génétiques

Les algorithmes génétiques (Holland, 1975) sont une classe d'algorithmes de recherche qui empruntent leurs

idées de fonctionnement à la nature. Leur principe est basé sur l'évolution biologique. Plus un individu est adapté,

plus il a de chance de survivre, de se reproduire et de transmettre ses gènes à ses descendants.

Pour adapter ce principe à des problèmes d'optimisation, on doit être capable de coder les solutions candidates

comme des séquences de gènes (chaque gène prenant en général -mais pas nécessairement- la valeur 0 ou 1). Il

faut également pouvoir exprimer la fonction d'optimisation du problème en fonction des configurations de ces

séquences. Cette fonction d'optimisation est appelée fonction d'adaptation (fitness function). Enfin, la dernière

condition d'applicabilité des algorithmes génétiques est que les recombinaisons des séquences de gènes doivent

pouvoir être interprétées comme des solutions candidates.

Le principe d'un algorithme génétique appliqué à un problème d'optimisation est le suivant:

Initialisation: Génération d'une population de solutions.

Boucle:

• Sélection d'un échantillon de la population en fonction du caractère d'adaptation de chaque individu de la

population (les individus les mieux adaptés ont plus de chances d'être sélectionnés). Cet échantillon constitue

la population de travail.

• Reproduction par recombinaison des individus de la population de travail. A partir de deux individus de la

population de travail, on construit deux descendants en recombinant les chromosomes des solutions parentes.

(crossing-over).

• De temps en temps, de façon aléatoire, les gènes voient leur valeur changer. Cette opération est appelée

mutation. Cela permet d'envisager de nouvelles solutions qui peuvent déboucher sur la solution optimale

mais qui n'existaient pas dans la population courante.

Fin boucle.

Le cycle sélection-reproduction par recombinaison-mutation fonne ce qu'on appelle une génération. Le nombre

d'itérations de la boucle de l'algorithme peut être fixé au départ. On peut également utiliser comme critère d'arrêt

de l'algorithme le fait que la population s'homogénéise au bout d'un certain nombre d'itérations. En effet, les

individus les plus adaptés étant privilégiés à chaque itération, il peut arriver que cela conduise à ne sélectionner

que les mêmes types d'individus.

8

Page 10: Simulation de l'exploitation des périmètres irrigués

L'intérêt majeur des algorithmes génétiques vient du fait qu'ils sont faciles à mettre en oeuvre et à utiliser. Ils

peuvent être utilisés pour optimiser des fonctions non linéaires.

Dans cette partie. nous avons présenté quelques méthodes classiques de résolution de problèmes d'optimisation

combinatoire qui auraient peut être pu être utilisées pour résoudre notre problème. Ceci a été fait dans le but

d'introduire une discussion entre ces différentes méthodes et la méthode que nous avons utilisée pour traiter le

sujet.

9

Page 11: Simulation de l'exploitation des périmètres irrigués

Deuxième partie les concepts d'apprentissage et de coordination

1L'apprentissage

L'apprentissage en informatique caractérise les propriétés d'un système lui permettant d'agir non pas sur le monde

mais sur ses structures internes de telle sorte qu'il devienne plus efficace dans l'accomplissement de sa tâche.

L'apprentissage est du domaine de l'Intelligence Artificielle.

Grurnbach (1994) classe les systèmes d'apprentissage selon deux approches: l'approche "spécifiste" et l'approche

"généraliste" .

L'approche spécifisteL'approche spécifiste consiste à construire des programmes qui apprennent dans un domaine particulier. Cette

approche est née dans les années 1970. La plupart des systèmes d'apprentissage de jeux en font partie. On peut

citer par exemple le système d'apprentissage au jeu de Poker de Watennan (1970).

Les systèmes conçus ont pour caractéristiques communes de proposer des modèles d'apprentissage relatifs à un

problème précis, sans avoir la préoccupation de couvrir un domaine très vaste. Ils nécessitent une grande quantité

de connaissances, et ne peuvent apprendre que s'ils sont dotés d'une compétence initiale importante

(connaissances générales et spécifiques). Ils se révèlent très performants à l'usage.

L'approche généralisteL'approche généraliste est plus ancienne (on peut citer les travaux de Rosenblatt, 1962). Elle s'intéresse aux

modèles d'apprentissage artificiels capables d'auto-organisation, d'adaptation dans le but de synthétiser des

programmes intelligents. Elle bénéficie depuis les années 1980 d'un regain d'intérêt suite à l'accroissement

important de la puissance de calcul des ordinateurs.

Grurnbach(l994) classe le système Eurisko de Lénat(l983) dans cette approche. Eurisko est le successeur d'un

système de découverte de théorèmes mathématiques (AM). Il résout des problèmes à partir de connaissances très

générales. Il peut s'adapter à une grande variété de problèmes. Son originalité est de manipuler (de créer et

d'utiliser) des connaissances sur plusieurs niveaux : au niveau des connaissances spécifiques au domaine

considéré et aux niveaux supérieurs, correspondant à des connaissances plus générales relatives à la résolution de

problème par exemple.

Eurisko peut ainsi créer de nouveaux concepts (le concept des nombres pairs, le concept des nombres premiers)

et de nouvelles heuristiques.

Depuis 1985 ont émergé au sein de l'approche généraliste des courants de grande ampleur :

- les réseaux connexionnistes

-les algorithmes génétiques

-la vie artificielle

Ces courants ont pour caractéristique d'engendrer des systèmes autonomes qui évoluent dans un environnement,

le terme évoluer signifiant à la fois se comporter (survivre) et améliorer leurs comportements. De tels systèmes

interagissent avec l'environnement par le biais de capteurs et d'effecteurs.

Grumbach (1994) reprend les hypothèses définies par CarboneIl (1986) pour caractériser ces systèmes:

10

Page 12: Simulation de l'exploitation des périmètres irrigués

- l'environnement contient l'information utilisée par le système;

- l'environnement est suffisamment complexe pour que le système ne puisse pas s'en construire un modèle exact;

- les communications entre le système et l'environnement se font uniquement par le biais des capteurs et des

effecteurs;

- le système est capable d'apprendre de manière incrémentale en permanence;

- plusieurs systèmes sont mis en concurrence de façon à sélectionner le meilleur.

Le processus général d'apprentissage de tels systèmes est un processus d'apprentissage par expérience, par essais­

erreurs. On parle également d'apprentissage par renforcement "reinforcement learning".(Kaebling, 1993)

L'apprentissage par renforcement associatifUn système qui apprend par renforcement associatif va effectuer une action à partir d'une situation courante

particulière. Cette action va modifier l'environnement et le système va recevoir une valeur de renforcement

provenant de l'environnement indiquant la nouvelle valeur de l'état du monde. La comparaison de la valeur de

renforcement actuelle avec celle de l'état précédent va donner au système des indications sur la pertinence de

l'action effectuée.

Kaebling(l993) formalise comme suit le processus d'apprentissage par renforcement:

Trois éléments caractérisent un système d'apprentissage par renforcement associatif:

-un état interne s,

-une fonction de mise àjour, u (pour update)

-une fonction d'évaluation e.

A chaque instant, l'état interne s contient l'information que le système a choisi de retenir concernant ses

interactions avec le monde.

L'algorithme général d'apprentissage basé sur les trois éléments composant le système est alors le suivant: (L'état

interne du système est initialisé à 50 et l'algorithme boucle à l'infini.)

s := 50boucle

i := état du mondea := e(s, i)output ar := reinforcements := u(s,i,a,r)

fin boucle

ra

Figure J : Fonctionnement d'un système parapprentissage associatif.D'après

Kaelbling(I993)

Il

Page 13: Simulation de l'exploitation des périmètres irrigués

Un état du monde (i) est obtenu grâce aux capteurs du système. La fonction d'évaluation (e) est appliquée à l'état

interne en fonction de l'état du monde ce qui permet de déterminer l'action à effectuer. Cette action conduit le

monde et le système dans un nouvel état et une nouvelle valeur de renforcement est produite. Le système

récupère cette valeur de renforcement et utilise cette infonnation en combinaison avec l'état du monde en entrée

et l'action effectuée pour mettre à jour l'état interne du système. C'est le rôle de la fonction de mise à jour (u). La

fonction de mise à jour explicite l'apprentissage par une modification du comportement du système en fonction

de la valeur de renforcement.

Les critères d'appréciation d'un tel apprentissage

Le système d'apprentissage sera considéré comme étant performant (c'est à dire qu'il y a effectivement

apprentissage) s'il respecte deux critères:

- critère de convergence: en une période de temps finie, il converge vers un comportement stable.

- critère de rectitude : lorsque son comportement est devenu stable, la valeur de renforcement que lui renvoie

l'environnement à chaque instant est positive ou croissante.

La méthode d'apprentissage que nous utilisons pour notre étude est une méthode d'apprentissage par

renforcement associatif. Chaque exploitant de notre système effectue à chaque pas de temps une action: il prend

une décision concernant l'utilisation de la ressource. Lorsque tous les exploitants ont choisi l'action qu'ils vont

effectuer, ils reçoivent chacun une certaine quantité de ressource et déterminent leur niveau de satisfaction

individuelle. La satisfaction globale du système peut alors être calculée. C'est la comparaison de la valeur

actuelle de la satisfaction globale par rapport à la valeur précédente qui joue le rôle de valeur de renforcement. A

la différence de cet algorithme, dans notre système, les exploitants ne mettent pas à jour leur état interne à chaque

pas de temps mais à intervalles réguliers à une date qui est spécifique à chacun d'eux.

12

Page 14: Simulation de l'exploitation des périmètres irrigués

Il La coordination

La coordination est définie par Thomas Malone et Krevin Crowston [Malone & Crowston 90] comme l'acte de

gestions des inter-dépendances des différentes activités [des agents qui constituent le système] exécutées pendant

la réalisation d'un but. Les inter-dépendances regroupent les pré-requis (le résultat d'une activité est nécessaire à

une autre activité), le partage des ressources et la simultanéité (il existe une synchronisation entre l'exécution des

activités). Durlee (1995) précise que l'on ne peut parler de coordination que lorsque les résultats des choix d'un

agent dépendent des choix que d'autres ont pris dans le passé, prendront dans le futur ou sont en train de prendre

simultanément avec lui. Il note que la coordination n'implique pas la coopération. La coordination n'est pas

obligatoirement un acte symétrique au contraire de la coopération : un agent peut coordonner ses actions avec

celles d'un autre sans que cet autre se coordonne avec lui.

Ferber (1995) dégage quatre fonnes principales de coordinations d'actions:

• la coordination par synchronisation est selon lui la fonne la plus élémentaire de coordination. La

coordination par synchronisation est mise en oeuvre lorsque plusieurs actions doivent être exécutées

simultanément et que l'on veut s'assurer de la cohérence de leurs résultats. Ce sont des problèmes classiques

étudiés en base de données pour la construction de systèmes distribués (les systèmes répartis, les multi-bases

de données).

• La coordination par réglementation a pour principe d'élaborer des règles de comportement qui visent à

éliminer les conflits possibles. Elle est mise en oeuvre dans les systèmes qui ne nécessitent qu'une

coordination limitée.

• La coordination par planification est la technique traditionnelle de coordination en lA. Elle repose sur un

découpage de l'action en deux phases: la première phase est la production des plans la seconde est l'exécution

des plans. Lorsque l'environnement est susceptible d'évolution, la planification doit être dynamique c'est à

dire que les plans peuvent être modifiés en cours d'exécution. De plus, lorsque l'on est dans le cas d'un

système multi-agents, si chaque agent possède ses propres buts, il peut apparaître des situations de conflits

d'objectifs ou d'accès à une ressource. Coordonner les plans consiste alors à résoudre ces conflits et à

satisfaire ainsi les buts des différents agents. Selon Ferber(l995), la coordination par planification assure une

bonne qualité de coordination mais se révèle inefficace lorsque des situations imprévues ou trop complexes se

présentent.

• La coordination réactive est une technique récente de l'lA qui considère qu'il est souvent plus facile de mettre

en oeuvre des mécanismes de coordination fondés sur des agents réactifs que de planifier l'ensemble des

actions et de leurs interactions avant d'agir. Ce type de coordination nous intéresse particulièrement car le

système que nous avons conçu met en oeuvre une certaine fonne de coordination que l'on peut rapprocher de

la coordination réactive par utilisation de marque. Le fonctionnement de notre système en tant que système de

résolution du problème de la répartition optimale d'une ressource s'inspire également des principes de la

résolution par coordination ou éco-résolution. Ces deux concepts sont présentés dans les paragraphes qui

suivent.

13

Page 15: Simulation de l'exploitation des périmètres irrigués

La coordination réactiveLa coordination réactive est relative aux agents réactifs. Les agents réactifs sont très simples et ne possèdent pas

de mémoire. De ce fait, toutes les informations relatives à leur comportement se trouvent dans l'environnement et

leurs réactions dépendent uniquement de la perception qu'ils peuvent en avoir.

La coordination réactive pour un agent consiste à réagir à des modifications de l'environnement et souvent à

marquer cet environnement pour adapter son action à celle des autres agents. Les méthodes de coordination

réactives se résument à l'utilisation de deux techniques:

- l'utilisation de champs de potentiels ou champs de vecteurs pour déterminer le déplacement des agents mobiles

- l'utilisation de marques pour coordonner l'action de plusieurs agents, ces marques permettant d'utiliser

l'environnement comme un système de communication souple, robuste et simple.

• L'utilisation de champs de potentiels définit des comportements d'attraction ou de répulsion des agents.

L'objectif consiste souvent pour les agents dans ce cas à accomplir leurs buts tout en s'évitant comme dans le cas

du contrôle aérien. Dans ce type de coordination, la perception de l'environnement consiste à percevoir la

position et l'état des autres agents, l'analyse consiste à calculer une fonction potentiel à partir de cette perception

et à définir la force qui dirige vers l'action préférable; l'action sur l'environnement consiste à se déplacer.

Ferber( 1995) cite le système CRAASH de K. Zéghal qui simule l'évolution d'un ensemble d'avions disposant d'un

système d'anti-collision basé sur un champs de forces symétriques et sur une force de glissement. Grâce à ce

système réactif, Zeghal montre qu'une cinquantaine d'appareils civils (Airbus, Boing, etc.) sont capables

d'évoluer pour tous venir atterrir de manière automatique sur le même aéroport, sans entrer en col1ision.

• Les marques sont des empreintes qui servent à indicer artificiellement l'environnement afin de

coordonner les actions des agents. Les marques peuvent être déposées, lues et retirées par les agents. Leur effet

peut disparaître après un certain temps passé dans l'environnement. Dans une coordination par utilisation de

marques, la perception s'applique aux marques laissées par d'autres agents, l'analyse consiste à interpréter les

marques pour choisir l'action préférable, l'action peut être un déplacement, un changement d'état ou le dépôt

d'une marque.

L'utilisation des marques peut servir à synchroniser les actions d'agents réactifs. Lorsque plusieurs robots

polyvalents effectuent de concert un travail quelconque composé d'un assemblage de tâches, marquer l'action que

chaque robot est en train d'effectuer permet d'empêcher les actions inefficaces éventuelles, comme la réexécution

d'un action par exemple.

L'utilisation des marques peut également servir à améliorer les performances d'un groupe et à former des

structures autocatalytiques, c'est à dire des organisations qui émergent des interactions. Ferber( 1995) rapporte

que Deneubourg et Steels se sont inspirés de la façon dont certaines fourmis se transmettent la position des

sources de nourriture pour imaginer une coordination réactive entre robots explorateurs à la recherche de

minerai. Chaque robot explorateur dépose une marque lorsqu'il a trouvé du minerai. Ces marques améliorent le

processus de recherche du minerai car elles permettent de signaler l'existence d'une source.

L'utilisation des marques peut être considérée comme un moyen de communication réactive entre agents, le

support de communication étant l'environnement.

14

Page 16: Simulation de l'exploitation des périmètres irrigués

L'éco-résolution: la résolution de problème par coordinationL'éco-résolution est un terme employé par Ferber (1995) pour caractériser les méthodes de résolution par

coordination. Ces méthodes diffèrent des méthodes classiques de résolution de problème par la démarche

employée. Plutôt que de formaliser un problème de manière globale et de définir ensuite des méthodes de

résolution s'appliquant directement à sa définition, on considère qu'il est préférable de reformuler le problème de

manière à ce qu'il soit conçu comme un ensemble d'agents en interaction qui tentent de satisfaire chacun leur

propre but.

Principes de l'éco-résolutionDans le cadre de l'éco-résolution, aborder un problème. c'est définir une population d'agents dont l'ensemble des

comportements tend à aboutir à un état stable que l'on appelle la solution du problème. Au lieu de considérer la

solution d'un problème comme étant le résultat de la minimisation d'une fonction mathématique globale , on

l'exprime comme l'état d'équilibre d'un ensemble d'agents programmables de petite granularité qui interagissent

les uns avec les autres ou avec les données de l'environnement. (Demazeau)

Les particularités essentielles de cette approche selon Ferber{l995) sont les suivantes:

• il n'y a pas d'exploration globale de l'espace des états possibles du monde. Les états du monde ne sont pas

directement utilisés par l'éco-résolution. Seuls les états internes des agents et leur relation perceptive avec

l'environnement sont pris en compte.

• L'évolution de l'univers ne modifie pas le mécanisme de résolution. Un changement de l'état du monde est

presque une donnée normale dans l'évolution du système qui peut être prise en compte sans aucune difficulté.

• Cette méthode ne présente que très peu d'explosion combinatoire. ce qui la rend capable de résoudre des

problèmes de taille relativement importante.

Définition d'un problème en éco-résolutionUn éco-problème est défini par :

1. Un ensemble d'agents, chaque agent étant caractérisé par un but et un ensemble de comportements

élémentaires prédéfinis qui l'entraînent dans une quête perpétuelle d'un état de satisfaction.

2. Une configuration initiale, décrite par un ensemble des agents placés dans leur états de départ

3. Un critère de terminaison défini comme une fonction des états de satisfaction des éco-agents.

Les principes de l'éco-résolution ont été appliqués avec succès pour la résolution de problème. Il nous a paru

intéressant de présenter une application permettant de résoudre certains types de problème de satisfactions de

contraintes par éco-résolution.

Résolution de contraintes par éco-résolutionK. Guédira (1996) a développé une méthode de distribution du recuit simulé pour les problèmes de satisfaction

de contraintes (CSP) tels que nous les avons définis dans la première partie, par une approche multi-agents en

reprenant les idées de l'éco-résolution. L'idée générale consiste à considérer les variables et les contraintes

comme des agents qui interagissent et qui cherchent à trouver un état de satisfaction maximale.

Une contrainte est ainsi satisfaite si elle est instanciée et si sa relation est respectée. (Une contrainte est dite

instanciée si toutes ses variables sont instanciées). Une contrainte insatisfaite choisit, de manière aléatoire, une de

ses variables et lui demande de changer de valeur.

15

Page 17: Simulation de l'exploitation des périmètres irrigués

Une variable est satisfaite si elIe est instanciée et non solIicitée par une de ses contraintes pour un changement de

valeur. Une variable insatisfaite choisit une valeur de telle façon que le plus possible de ses contraintes soient

satisfaites.

Si on lui demande de changer de valeur, une variable choisit aléatoirement une valeur de son domaine de

définition et demande à ses contraintes leur opinion, c'est à dire si ces valeurs les satisfont ou non. A partir de

toutes ces réponses, elIe décide d'accepter ou non cette valeur en fonction d'un critère de choix dépendant d'un

mécanisme fondé sur la notion de recuit simulé (cf. Première partie).

Le mécanisme de terminaison est le suivant:

une variable dont la tolérance est devenue nulle n'accepte que des changements augmentant strictement son

niveau de satisfaction ; si une valeur est dans ce cadre refusée par une variable, elle devient interdite ; une

variable dont toutes les valeurs, sauf sa valeur d'instanciation courante, sont interdites est dite bloquée ; une

contrainte instanciée-insatisfaite, dont toutes les variables sont bloquées devient elle-même bloquée, ce qui a

pour conséquence qu'elle ne fait plus rien ; le processus se termine quand toutes les contraintes sont, soit

satisfaites, soit bloquées.

Les travaux théoriques montrent que cette méthode est capable d'aboutir à la solution optimale. La distribution du

recuit simulé augmente l'efficacité et la qualité de cette méthode. Enfin, des modifications légères de l'ensemble

des contraintes ne remettent pas en cause l'ensemble des situations déjà trouvées. Les insatisfactions se propagent

de proche en proche aux variables et aux autres contraintes et le système privilégie les solutions proches des

solutions déjà trouvées.

Le système que nous avons construit même s'il ne suit pas tous les principes de l'éco-résolution définis par Ferber

s'en approche. Même si nous spécifions le problème de façon globale, c'est l'activité individuelIe de chaque agent

qui permet d'aboutir à la solution optimale.

Le paragraphe suivant est consacré à la simulation par multi-agents qui est la méthodologie que nous avons

utilisée pour construire le système.

16

Page 18: Simulation de l'exploitation des périmètres irrigués

Troisième partie: Les simulations multi-agents

Nous avons utilisé une démarche de simulation multi-agents pour étudier le problème. Ce paragraphe a pour

objet de présenter la méthodologie employée.

1La simulation

La simulation dans son sens le plus large correspond à l'utilisation pratique d'un modèle (Shannon, 1992). La

simulation est qualifiée de numérique lorsqu'elle utilise comme support un ordinateur. La simulation suppose

donc qu'une démarche de modélisation a été entreprise.

Le processus de modélisation peut être abordé de deux façons:

• on peut analyser le système en essayant de dégager les paramètres dont la variation explique le

fonctionnement du système que l'on étudie. On parle alors d'approche analytique.

• on peut au contraire essayer d'expliquer le système en simulant son fonctionnement à partir des interactions

entre ses composants. C'est l'approche constructiviste ou par simulation. L'idée sous-jacente de cette approche

est que notre compréhension du système ne peut que se trouver améliorée par les efforts nécessaires à sa

reconstruction sur un support alternatif (l'ordinateur dans le cas de la simulation numérique).

Il Les systèmes multi-agents

Les systèmes multi-agents (SMA) ou systèmes de l'intelligence artificielle distribuée (lAD) sont des systèmes

composés d'agents. D'après Ferber (1995) un agent est une entité physique ou virtuelle qui évolue dans un

environnement, qu'il est capable de percevoir; cette entité est également capable d'agir dans l'environnement, de

communiquer avec d'autres agents, d'exhiber un comportement autonome qui peut être le fruit de sa connaissance

sur l'environnement, de ses interactions avec les autres agents ou qui peut être accompli dans la poursuite d'un

but. Demazeau(1991 ) précise qu'une entité réelle ou virtuelle peut être qualifiée d'agent dès lors qu'eUe est

capable de contrôler localement tout ou partie de son fonctionnement: perception, communication, acquisition de

connaissance, raisonnement, déclenchement d'une action.

Les systèmes multi-agents se réclament en général d'une des deux approche suivante:

• l'approche cognitiviste qui est la plus ancienne en lAD conçoit un agent comme une entité capable de

résoudre certains problèmes de façon autonome. Les agents cognitifs sont des agents intentionnels. Ils

possèdent des buts et mettent en oeuvre des plans explicites leur permettant d'accomplir leurs buts. Dans ce

cas, les agents coordonnent leurs actions en communiquant entre eux de façon explicite notanunent par des

actes de communication tels que l'envoi de message, les demandes de renseignement ou de service. Ces

agents ont une capacité d'anticipation qui leur permet de prévoir les événements futurs et de s'y préparer.

• l'approche réactive postule qu'il n'est pas nécessaire que les agents soient intelligents individuellement pour

que le système ait un comportement inteUigent. Dans ce cas, les agents n'ont ni buts ni plans spécifiques et ne

communiquent pas explicitement entre eux. Au contraire des agents cognitifs, les agents réactifs n'ont pas de

17

Page 19: Simulation de l'exploitation des périmètres irrigués

représentation de leur environnement et des autres agents. Ils ne peuvent donc pas prévoir le futur et

l'anticiper en planifiant les actions à accomplir. Ils peuvent être dirigés par des mécanismes de motivations,

Ferber parle d'agents pulsionnels. Les agents réactifs peuvent ne répondre qu'à des stimuli de l'environnement,

leur comportement étant intégralement guidé par l'état local du monde dans lequel ils se trouvent. Ferber parle

d'agents tropiques.

La force des systèmes réactifs réside dans leur organisation en société ou en population. Pris individuellement,

les agents réactifs n'ont que peu de possibilités. Lorsqu'ils sont regroupés, des capacités d'adaptation et

d'évolution émergent des interactions des différents membres. Ils peuvent faire face à des tâches complexes.

Notre démarche est réactive. Notre système suit les trois principes de Drogoul (1993) caractérisant les systèmes

d'agents réactifs:

• le principe de réaction: l'action d'un agent se fait en réponse à un stimulus

• le principe de discrimination passive: l'agent ne réagit qu'à une seule sorte de stimuli

• le principe de parcimonie : mieux vaut un agent simple s'il résout le problème. Ce principe de parcimonie

implique un principe d'incrémentalité : si le problème ne peut pas être résolu par un agent simple, il faut

augmenter sa granularité.

III La simulation multi-agents

Faire de la simulation multi-agents (Le Page[1996] parle également de construction de modèle micro-analytique

ou de simulation individu-centrée) consiste à représenter sous forme infonnatique le comportement des entités

qui agissent dans le monde avec comme objectif de faire émerger un phénomène à partir des interactions d'un

ensemble d'agents disposant de leur propre autonomie.

L'informaticien qui réalise une simulation numérique (expérience in silico) utilise la simulation comme un

laboratoire virtuel. Il crée un monde synthétique dans lequel les situations étudiées sont des situations-jouets très

simplifiées; c'est à dire selon Ferber (1995) "dépouillées de toutes les aspérités de la réalité, mais qui du fait de

leur austérité, offrent les conditions idéales à une bonne compréhension des phénomènes mis en oeuvre".

Ce monde synthétique est constitué d'entités plongées dans un environnement et qui réagissent à des stimuli.

Un modèle de simulation multi-agents permet de modéliser simplement des situations complexes. On qualifie un

système de complexe lorsqu'il est composé de plusieurs éléments en interaction (Weisbuch, 1989). Il est ainsi

possible de faire surgir des structures, des solutions, des propriétés au niveau du système en le modélisant au

niveau de ses composants.

18

Page 20: Simulation de l'exploitation des périmètres irrigués

Quatrième partie : Le modèle et ses résultats

Notre modèle de simulation multi-agents est un système composé d'un ensemble d'exploitants (les agents) qui

prennent des décisions concernant l'utilisation d'une ressource à chaque pas de temps de la simulation. Chaque

exploitant désire obtenir une certaine quantité de ressource à chaque période. La quantité de ressource qu'il reçoit

dépend du nombre d'exploitants qui vont choisir d'utiliser la ressource en même temps que lui. Notre objectif est

d'arriver par un mécanisme d'apprentissage très simple à ce que les exploitants décident judicieusement de

l'utilisation de la ressource, de telle sorte que l'ensemble des exploitants soit globalement le plus satisfait

possible.

L'approche que nous utilisons est une approche réactive: les agents du système ont un comportement câblé très

sommaire. Un exploitant est conçu sous la forme d'un automate d'apprentissage probabiliste. Il possède une

dynamique de comportement très simple : il peut soit décider d'utiliser la ressource, soit décider de ne pas

l'utiliser. Le protocole d'apprentissage des exploitants est également très simple; ce principe de comportement est

inspiré de l'idée mise en oeuvre dans le projet "Freddy Walker".

Le projet Freddy Walker

Le projet "Freddy WaIker" (Van DUÜfen, Demazeau) consiste à apprendre à marcher à un robot nommé Freddy

Walker possédant quatre pattes. A chaque patte, on fait correspondre un graphe de transitions d'états où :

• un noeud représente une position possible de la patte (il y a quatre positions possibles pour chaque patte)

• un arc représente la transition entre deux positions. Chaque arc est pondéré par un décimal compris entre 0 et

1 représentant la probabilité pour la patte considérée de franchir la transition.

La dynamique d'apprentissage se fait en observant le résultat global (déplacement des quatre bras) et en mettant à

jour les poids suivant les actions qui ont le plus contribué au but global. Le but du système est que les

mouvements effectués conduisent le robot à se déplacer vers l'avant. Les arcs du graphe dont le franchissement

conduit à une avancée du robot voient leurs probabilités de franchissement augmenter. Le principe consiste donc

à modifier la probabilité de franchissement de chaque arc en fonction de l'avancée du robot.

1Le modèle

Le principe de fonctionnement du projet "Freddy Walker" a été repris et adapté pour notre système. Dans notre

cas, le but global est d'aboutir à la satisfaction globale la plus grande possible. Les exploitants modifient leurs

comportements non pas pour atteindre chacun la meilleure satisfaction individueIle possible. mais de sorte que le

système entier ait une satisfaction maximale.

19

Page 21: Simulation de l'exploitation des périmètres irrigués

1. Description de l'univers du modèleLe modèle est composé de deux sortes d'entités : les exploitants et l'environnement. Les exploitants sont les

agents du système. Ils ne communiquent pas entre eux, mais déposent et récupèrent des informations dans

l'environnement.

Le modèle est simulé pendant un certain nombre d'années choisi par le simulateur. Chaque année est composée

d'un ensemble de périodes qui constituent l'unité de temps de la simulation. Nous avons choisi dans nos

simulations de découper chaque année de simulation en 100 périodes.

Une interface graphique (cf. Figure 2) permet de suivre l'évolution du comportement des exploitants. Cette

interface est composée de deux fenêtres : la première fenêtre montre pour chaque exploitant et pour chaque

période quelle a été la décision prise par l'exploitant concernant l'utilisation de la ressource. Un rectangle noir

signifie que l'exploitant a décidé d'utiliser la ressource à la période de temps considérée. Un rectangle blanc

signifie qu'il a choisi de ne pas utiliser la ressource. La seconde fenêtre permet de visualiser la satisfaction

individuelle de chaque exploitant par période de temps. Lorsqu'un exploitant est totalement satisfait, le rectangle

qui lui est relatif est de couleur rouge. Moins l'exploitant est satisfait, moins la couleur du rectangle qui lui

correspond est chaude. Les exploitants qui ne sont pas satisfaits du tout ont un rectangle correspondant de

couleur bleu acier.

La structure et la dynamique des entités du modèle sont présentées dans les paragraphes qui suivent.

L'exploitantChaque exploitant possède:

• Des désirs. Chaque exploitant garde en mémoire les quantités de ressource qu'il souhaiterait obtenir pour

chaque période de temps de l'année.

• Un comportement. A chaque période, l'exploitant prend une décision qui est d'utiliser la ressource ou de ne

pas l'utiliser. Cette décision est une décision probabiliste : selon ce qui s'est passé à la période précédente,

l'exploitant a une certaine probabilité de décider d'utiliser la ressource et une probabilité complémentaire de

décider de ne pas utiliser la ressource.

• Des satisfactions. A chaque période de temps, l'exploitant calcule sa satisfaction en fonction de ses désirs et

de la quantité de ressource qu'il a effectivement obtenue.

L'environnementL'environnement comprend les données globales et les indicateurs globaux du système:

• la quantité de ressource disponible à chaque période pour l'ensemble des exploitants;

• la satisfaction globale du système pour chaque période.

Dynamique de l'exploitantÀ chaque période, chaque exploitant:

• prend une décision: utiliser ou non la ressource;

• reçoit une certaine quantité de ressource;

• calcule sa satisfaction moyenne individuelle (en fonction de la quantité de ressource reçue par rapport à la

quantité de ressource désirée);

• évalue et enregistre l'effet de sa décision sur l'évolution de la satisfaction globale.

20

Page 22: Simulation de l'exploitation des périmètres irrigués

DECISIONS - Annee 99 SATISFACTIONS INDIVIDUELLES - Annee 99

o 5 10 15 20 25 30 354045 50 55 50 55 70 75 80 8:'. 90 35

11111I11111il' 1111 III Il!1111'" "11111111I1I111I11I111111111ll111111111"1111' III 1111111111111.11111111/1Il111111I11I111111I111I11111111111I11I11I11I111I1111I11I11I1111I11I11I11I11I11I1111I111I11

111111111111111111111111111111111111111111111111I11111111111111111111I11111111I111I11I111111I11I111'1 1111I111111111111111111111111'1111111111111111111111111111111111111111111111111'111111I11111: Il 1II111111111111111111111l1l1l111ll11l1l1l: 1I1111111111111111111111111111111111111111111

t (Periodes

."111"'11"""""111""""""'[0111"""11111111"'IIII""IIIIIIIII"""'III!

111I1111111I1111I11111" 111111111111111111111/11I111 t 1111111111IIl''' 111I11111111111I1 /11111I111111

1I111111J1111111111111111111111' Il l'' 1111111111111111111111111/111111111111111111111'1'" 1111111

1111111I11111I111111111111111111:m:::::::::l:Ill:II::::::::1::::::::::::::::l::li:::lIl::::::l111I1111111I11I111111111111I111111111I1111111111111111111111111111111111I111111111111111I11I111I11I

~ .": III!

. . - . .111111111111111111111111111111I1III 111111I111111111111I11I1111111111111111111111111111111111111111

, 'II 1111I111111I11I11111111 11I1111111111I11I11I1111I111I 1111111111111I1111I1111111I1111I1111I11.. ' Il Il'' Il III III III III Il III Il 1111I III Il III "'11I Il 11I11I III III Il Il Il1i\!11 11I11I "'111111

111111I11111 1111 III 11I11111111I111nlllllllllllllllllllllllllllllllllllllllllllllllllllllllllili,111111111111111111111111111111111I111111111111I1"II 111111111111" Il' 111111111111I'1" "'11111111111111111111" 11111111'111111111" 1111111 t 1111

11111111111" i" IIIt Il''111111111111111111111111I11111111I11'' 1111'111111111"" III' 1111111111I1

1111I111I1111111111111111111111I1111111111111111111I1111111111111111I'"11111I111111I11111111I111I1

11I11I1111 1111111!llllllllll1'IIIIIIIIIIII"111111I1I1 111"111"1.1'''11111 1'1111"111111I11111I1111111111111111111111111111111111I11I1111111111111111111111I11111I111111I111I1111I111

, " 1111111 1II11111111111111111111UII 1111 11I1111I 1111I11I'111111I1111111111I11 1111I 11111I11111111111111111111111111J111I1" t 1111111111111111111111"1111111111111111111111111111'1111111111

11111111111111111111111I11I'11111111I11111111111111111I111111111111111111111111111111111111111I1111; 'II 111I111I11I11 III 111I1111 Il III Il "1111 Il 11I1I1lI11I 1II11 Il III Il Il Il1It1 III III Il1III Il Il Il III

1

!~!fIl

t (Periodes

~

o 5

~ bp~PPPP

i~

!

n (Uti 1isate urs) n (Utilisateurs)

Page 23: Simulation de l'exploitation des périmètres irrigués

À intervalles réguliers, chaque exploitant modifie les probabilités qui conduisent son comportement en fonction

de l'effet qu'a eu chaque décision prise. Cette modification correspond à la fonction de mise à jour du processus

d'apprentissage tel que le définit Kaelbling(l993) que nous avons présenté dans la deuxième partie du mémoire.

La période à laquelle a lieu cette modification est spécifique à chaque exploitant. La période de temps durant

laquelle l'exploitant doit enregistrer l'effet des décisions qu'il a prises est fixée globalement par l'environnement,

il lui revient néanmoins de déterminer à le moment où il va effectuer la première modification de son

comportement.

Dynamique de l'environnementL'environnement:

• détermine la quantité de ressource disponible pour chaque exploitant une fois que tous les exploitants ont pris

leurs décisions;

• calcule la satisfaction globale du système;

• communique aux exploitants les informations qui leur sont nécessaires: la quantité de ressource effective à

laquelle ils ont droit, la satisfaction globale du système, la durée d'observation durant laquelle ils doivent

enregistrer les effets de leurs décisions, etc.

Le but du systèmeLe but à atteindre par le système est de maximiser la satisfaction globale.

2. Le mécanisme de prise de décisionEn règle générale, chaque exploitant prend une décision concernant l'utilisation de la ressource à chaque période

de temps t en fonction de la décision qu'il a prise à la période précédente (t-1). Cette règle ne s'applique pas à la

première période de l'année: à la période t=O, la décision prise est une décision aléatoire.

Le mécanisme de prise de décision peut être représenté sous la forme d'un graphe de transition représentant le

comportement de l'exploitant. (cf. figure 3). Ce graphe de transition est composé de deux états et de transitions

entre ces états.

Les deux états sont:

• état a :décider d'utiliser la ressource

• état 1 : décider de ne pas utiliser la ressource.

Les transitions relient les états et matérialisent le passage d'un état à un autre. Chaque transition est associée à un

réel compris entre aet 1, indiquant la probabilité de franchissement de la transition considérée.

3. Le mécanisme d'apprentissageLe mécanisme d'apprentissage consiste pour chaque exploitant à modifier les probabilités associées aux

transitions d'états de telle sorte que les transitions qui ont contribué à l'évolution positive de la satisfaction

globale du système voient leurs probabilités associées augmenter aux dépends des probabilités qui ont moins

contribué à cette évolution positive.

Chaque transition du graphe de transitions est associée à un compteur d'évaluation. Ce compteur d'évaluation a

pour objet d'enregistrer l'effet du passage de cette transition sur l'évolution de la satisfaction globale du système.

L'effet du passage d'une transition est enregistré de la façon suivante:

21

Page 24: Simulation de l'exploitation des périmètres irrigués

Poo Coo

PlI CIl

POl COI

PlO CIO

Pxy probabilité étant à l'état x de passer à l'état Y

Cxy compteur permettant d'évaluer l'effet du passage d'un étatà un autre sur le système

Figure 3 : graphe de transition du comportement d'un exploitant

Page 25: Simulation de l'exploitation des périmètres irrigués

• Le compteur d'évaluation correspondant à la transition franchie est décrémenté si la satisfaction

globale a sensiblement diminué entre la période précédente et la période considérée;

• Le compteur d'évaluation est incrémenté si la satisfaction globale a sensiblement augmenté entre la

période précédente et la période actuelle;

• Le compteur d'évaluation reste inchangé si l'évolution de la satisfaction globale a été nulle ou

négligeable.

Ce mécanisme d'apprentissage est formalisé par la formule suivante:

A intervalles réguliers, lorsque tEvaluation périodes se sont écoulées depuis le dernier moment où il a mis à jour

ses probabilités, l'exploitant compare ses compteurs d'évaluation deux à deux. La probabilité ( Pxy ) associée à la

transition dont le compteur d'évaluation est le plus grand est augmentée selon la formule ci-dessous:

pxy = Pxy +(1 - p xy ) * tauxModificationc -c-

* P" P"

tEvaluation

Où tauxModification est un réel compris entre 0 et 1 permettant de modifier la vitesse d'apprentissage de

l'exploitant.

c représente le compteur d'évaluation associé à la transition qui a le plus contribué à l'évolution positive de laP"

satisfaction globale. c- représente le compteur d'évaluation associé à la transition complémentaire. Sur lepZ"!

graphe de transitions, c'est la transition dont l'origine est la même.

4. Le calcul de la satisfaction globale: SG(t)La satisfaction globale est calculée par l'environnement. Elle est égale à la somme des satisfactions moyennes

N-l

individuelles de chaque exploitant. Ainsi: SG(t) =LSM(i, t) où t représente la période considérée, N est lei=O

nombre total d'exploitants du système et SM(i,t) représente la satisfaction moyenne de l'individu i pour la période

t.

La satisfaction moyenne individuelle SM(i,t)La satisfaction moyenne d'un exploitant représente la satisfaction moyenne ressentie par un exploitant depuis le

début de l'année jusqu'à la période considérée. Elle est calculée par chaque exploitant selon la formule suivante:

1 1

SM(i,t) = --LSl(i, r) où Sl(i, r) représente la satisfaction instantanée d'un exploitant pour la période tt+ 1 ~O

considérée.

Utiliser une telle formule permet de s'assurer qu'un exploitant ne sera totalement satisfait à une période de temps

donnée que s'il a été entièrement satisfait pendant toutes les périodes précédant la période considérée.

La satisfaction instantanée SI(i, t)La satisfaction instantanée représente la satisfaction ressentie par un exploitant à une période t considérée. Elle

est calculée sur une fenêtre de taille m, pour pondérer l'effet des décisions prises à chaque instant sur la

satisfaction instantanée. Ainsi, un exploitant même s'il a décidé de ne pas utiliser la ressource n'aura pas

forcément une satisfaction nulle. En effet, la satisfaction instantanée dépend du rapport entre la quantité de

22

Page 26: Simulation de l'exploitation des périmètres irrigués

ressource Qm (i, t) obtenue par l'exploitant i à la période courante ainsi qu'aux mol périodes précédentes et la

quantité de ressource qu'il désirait Qm (i, t) pendant ces m périodes. Cette définition est exprimée par la formule

{Qm(~,t) si Qm(i,t) > Qm(i,t)

suivante: SI(i,t) = Qm(l,t)

1 sinon

où Qm (i, t)et Qm (i, t) sont respectivement définies par les fonnules suivantes:

1

Qm (i,t) = Lq(i, (J)9=0

1

Qm(i,t)= Lq(i,(J)9=1-m

1

Qm(i,t) = Lq(i,(J)9=0

1

Qm(i,t)= Lq(i,(J)9=1-m

pour t ~ m

pour t > m

q(i, t) et q(i, t) représentent respectivement la quantité de ressource obtenue et la quantité de ressource désirée

par l'utilisateur i pour la période t.

Les choix d'implémentationLe système a été implémenté avec le langage C++ et le générateur d'interface graphique Devguide sous UNIX.

Le langage C++ se justifie par l'expérience qui existe au LIA sur son utilisation. C'est un langage de

programmation efficace effectuant rapidement les calculs. C'est également un langage permettant de faire de la

programmation orientée objet.

Dans notre application, chaque type d'entités (exploitant et environnement) a été implémenté sous forme de

classe. Les quantités de ressource disponibles et les quantités de ressources désirées par chaque exploitant sont

chargées au lancement de l'application à partir de fichiers.

5. La vérification du modèleIl s'agit de vérifier que le comportement du modèle lors de la simulation est bien conforme au comportement

attendu. Pour cela, nous avons effectué des tests pour vérifier que les algorithmes implémentés ne comportaient

pas d'erreur de logique

Vérification des probabilités: relation entre les probabilités associées aux transitions etcelles associées aux états du graphe de transition.(cj. Annexe A)En notant:

Poo la probabilité de passage entre l'état 0 et l'état O. Cette probabilité représente la chance que l'exploitant a de

décider de ne pas utiliser la ressource à la période t lorsque à la période t-I il ne l'a pas utilisé.

Pli la probabilité de passage entre l'état 1 et l'état 1. Cette probabilité représente la chance que l'exploitant a de

décider d'utiliser la ressource à la période t lorsque à la période t-l il a décidé de l'utiliser.

POl probabilité de passage entre l'état 0 et ['état 1

PlO probabilité de passage entre l'état 1 et l'état 0

23

Page 27: Simulation de l'exploitation des périmètres irrigués

et :

x probabilité pour un exploitant d'être à l'état 0 à une période donnée t. C'est la probabilité pour un

exploitant de ne pas utiliser la ressource

y probabilité pour un exploitant d'être à l'état 1 à une période donnée t. C'est la probabilité pour un

exploitant d'utiliser la ressource

On a pu établir la relation suivante en supposant que le comportement des exploitants suivaient un processus

Markovien:

1- PlIx=----.:.....:..:....---(1- Pu ) +(1- Poo)

1- Py= 00

(1- Pu ) +(1- Poo)

Après simulation on a bien vérifié que la fréquence de décisions négatives et positives d'utilisation de la

ressource pour chaque individu est en moyenne égale aux probabilités x et y calculées avec une marge d'erreur

jamais supérieure à plus de 0,01.

Il Les résultats

Les résultats obtenus proviennent de la simulation du modèle sous certaines hypothèses simplificatrices de

fonctionnement.

1. Les hypothèses générales de fonctionnement- -

• q(i,t)=q

La quantité de ressource désirée par chaque exploitant est choisie constante et ne dépend ni de l'exploitant ni de

la période de temps considérée.

• Q(n,t)=Q(n)

La quantité de ressource globale disponible à chaque période de temps t n'est pas fonction du temps, mais varie

suivant le nombre d'exploitants (n) utilisant effectivement la ressource à une période de temps considérée.

Avec ses hypothèses, la quantité de ressource reçue par un exploitant décidant d'utiliser la ressource à une

période de temps donnée sera égale à :

. Q(yN) ,q(l,t) = y ou:

yN

y est la fréquence moyenne de décision positive d'utilisation de la ressource de l'exploitant considéré

N est le nombre total d'exploitants du système.

Les formules définies plus haut se simplifient alors comme suit:

24

Page 28: Simulation de l'exploitation des périmètres irrigués

Cas n° 1 : "puits sans fond"

Cas n02 : "canal d'irriguation"

160140 /~ .-.-.-.-.-.-.-.-.-.

120 / seuil d'utilisation de la100 ressource au delà duquel la

80 / quantité disponible reste

60 / constante

40 • Nombre effectifs d'utilisateurs20 / (n-yN)0" 1 1 1 • 1 1 1 1 1 1 1 1 1 1 1

o 1 2 3 4 S 6 7 8 9 10 " 12 13 14 lS

Quantité globale

fréquence optimaled'utilisation de la ~.ressource /./

/./.

/./.

/./.

/./.

/.166 - ..y.

58 - ;Aombre d'utilisateurs effectif de la ressource~./ (n-yN)

8 ~--i 1 1 1 1 1 1 1 1 1 1 1 1 1

8 1 2 3 4 5 6 7 8 9 10 " 12 13 14 15

Quantité Globale de la ressource

450 (Q - qn)

400

350

300

2SéJ20b156

.. ..-.-.-.-.-.-.-.-.-.-.-.-.-.-.~-.-.-.\ ----/ -._------.

/• charge maximale du

• réseau50 /

Nombre d'utilisateurs effectifs/ (n-yN)

o " 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1o 1 2 3 4 5 6 7 8 9 10 " 12 13 14 15

100

150

Cas n04 : "performance d'un réseauinformatique"

Performance Globale du réseau

7 8 9 10 " 12 13 14 15

Nombre effectif d'utilisateurs( n-yN )

1 1 1 1 1 1 1 1 1

,58

,88

stl

0., 1 1 1 1 1 1

0 1 2 3 4 S 6

cas n° 3 : "robinet d'eau courante"QûiRHlS GISHGle de la ressource (Q)

288 -,"

Figure 4 : Les 4 cas de la dynamique de la ressource

Page 29: Simulation de l'exploitation des périmètres irrigués

Q ( ' ) Q(yN)m l, t =my --=----=----

yN

SM(i,t) =Sl(i,t)

SG(t) = Q(yN)q

La satisfaction globale dépend donc de la quantité de ressource disponible qui est elle­

même fonction de la fréquence moyenne y d'exploitants qui utilisent la ressource à la

période de temps considérée.

2. Les quatre cas de dynamique de la ressourceLa dernière formule nous permet d'obtenir une relation entre la satisfaction globale (SG) et la fréquence moyenne

y d'exploitants utilisateurs effectifs de la ressource à un moment donné.

Ainsi, en faisant varier cette quantité de ressource on peut déterminer si le système une fois qu'il a atteint son état

d'équilibre est arrivée à la solution optimale en observant la fréquence moyenne d'utilisateurs effectifs de la

ressource.

Quatre cas de variation sont considérés (cf. Figure 4):

Cas 1 : le cas du ''puits sans fond"Dans ce cas, la dynamique de la ressource peut être considérée comme celle de l'eau d'un puits sans fond : le

nombre d'utilisateurs de l'eau est illimité, mais chaque utilisateur n'a le droit de puiser qu'un seau d'eau de

capacité fixe.

La dynamique d'une telle ressource peut être formalisée comme suit: Q(yN) =q * yN

Q(yN) est maximale quand y=1 ce qui correspond à ce que tous les exploitants décident d'utiliser la ressource.

Cas 2 : le cas du "canal d'irrigation"Dans ce cas, la quantité de ressource disponible est fonction du nombre d'utilisateurs effectifs tant que ce nombre

reste inférieur à un certain seuil, après ce seuil, la capacité du canal étant limitée, la quantité de ressource reste la

même quelque soit le nombre d'utilisateurs effectifs.

{q * yN si y < Yo

Q(yN) = .q * yoN SI y ~ Yo

Dans ce cas, Q(yN) est maximale l'orque y ~ Yo

Cas 3 : le cas du "robinet d'eau courante"Dans ce cas, la quantité de ressource disponible n'est pas fonction du nombre d'utilisateurs effectifs.

Q(yN) = K.

II n'y a pas de solution optimale prévisible.

25

Page 30: Simulation de l'exploitation des périmètres irrigués

o

2

3

4

o 5 10 1520 2S 30 3540 4S 50 5S 60 65 70 75 90 85 90 95

o

2

3

6

7

a

9

10

11

12

13

o 5 10 15 20 25 30 35 '10 45 50 55 60 65 70 75 80 65 90 ~51 1

Figure 5 : Décisions prisesla centième année pourle cas 1

• Utilisation de la ressource

o Non utilisation de la ressource

100 expl oitants

15exploitantso 5 10 15 20 25 30 35 "10"15 50 SS 60 65 70 75 aoas 90 95

~~.~ ~ ~~ ~~.~ ~ . ~ ~ .•....... •.... .... ~ ...••..•. ~ •.........• •........ ~...• .•...•. .•.:... =~ ; : : ; ~ ~ ;; ;;.: : ; ;•.:.:.;.;.:.;.~.:";.:.;.:. ;.:.;.:.;.:.;.;.:.;.~..;;.:..;.~.;.;. ;";.;.:"

.:.:.:.:.:.:.:.:.:.: .:.:.:.:.:.:.:.:.:.:.:.:. :.:.:~.:.:-:·:·:-:·:·:..x·:·:·:·:·:·:·:.:·:-:·:-:·:..:··.~. ~ •••• ~ •• ~~ ~ •• ~ •••• 4~~~~ ~ ~~ ~ , •• ~ ••••• ~~~ ••• ~ ~ ~~: ~ ~ . ~~ ~ ..~~~ ~ .~ .~ . ~ ~.~~~ .

~:~.~::; = •• ;~:= ;: .::.::==; ~:;; ;:.::Â::;:.:;::a:::2

:.=.:.;;..w..:.:·:.:·:·:.:·y).·:);.. ;.:1·~;.:.:·:.:·:.:;..:·:.:;:·~{<~;..:~:ù~..:..~~-1.~•.~~.:.:•.:.;.;,.i .~.~.• :~.~ .~.• :; .~ ~ : ~ .~ .~ ~;~ : .~;. ~ :: :~.~ .~ ~ ~..~!;- :~ ~ f ;~ ·~ .::i f

: : ." .'~-::'~-:-~'~~.~~~:':':-:'~-:-:':'~-:':':-:.~';:';-:-:-:-:-:.::-:-:::-:..,

f: :':f~·: :': :':':': :':': ~': :.:.~.:.:.~ :':=:": ~':: :.~ :':'::: :':: : :':':::': ~.••••,._ '1 ., &11 "' )1. y .

:::~..,(: ~.~ ·.~..~.~A~~ ~ ~;~..·.:~ ~..:~~~.~.~~.-v.)••~~.~.~•••:••;;~~~... ~ .. _._ .•..•.......•.....•••.•...•••...•.••. ••.~.

~~;;,i~~:~;~j~~iii?ii=.•••••.........••..••..•••.....•...•. •.•..•....•. ,

:I~ ·:::::::::::;:::::::::=.:~~:::~:~::::~.:::::::::::::;:::::::::;:.:::::::h:::~:.:;:::::::::::::~:.. . .. , . , . ..a:~:i::.:i:~:~:~:~:j,;~: ~:i;i::.:;;~:~:i;~:~;~:~::.:i:~~;~'i:~:~:;,;i;;:iôi:i;i::.:~:i::;~:i:;:~:~:l::;:

:: ~~i~:~(i~;~;~;~:~:z;~:~i;~~~;~;~;~;~;i;~;:;~~;i~;i~:i;~;~~~~)i~:~~:~~~~~*~::• : ". ' _..', ' " ..... .. ~ i •. - - : . :, ; 1 :. • : • • - : ;

:1" :;-:.:.:~.:~.:.:~:.:.:.:.:.:.:~:.:.:.:.:.:.:.:~.:.:~-:.:.:~:~:~:.:.:A:a:-:.:.:.:.:.:~~::.:-:':::=:~~~::::~-::::::::::t.::::::/,.::::::-:::::.:.~.(~:::-;-;:::{.~~-;"1~:~:~;::::::::::-;::::~

::

=f

W.

50 exploitants

o 5 1015202530354045505580657075908590951 1

5 exploitants

Page 31: Simulation de l'exploitation des périmètres irrigués

Cas 4 : le cas de la ''performance d'un réseau informatique"La performance du système croît en fonction du nombre d'utilisateurs jusqu'à ce que ce nombre atteigne une

valeur limite. Lorsque le nombre d'utilisateurs de la ressource dépasse la charge maximale du système, il y a

dégradation des performances.

Cette dynamique est modélisée comme suit:

{q *yN si y 5: Yo

Q(yN) =q* yNo -k(yN -8) si y > Yo

Dans ce cas, la quantité de ressource est maximale lorsque le nombre d'utilisateurs effectifs de la ressource est

égal à Ilo.

3. Discussion des résultats obtenus en fonction de la satisfaction globaleLe modèle a été simulé en faisant varier;

N le nombre total d'exploitants

tauxModification le taux utilisé dans la formule d'apprentissage du

avec les valeurs [5, 15,50, 100 ]

avec les valeurs [0.25, 0.5, 0.75,

système 0.875, 1]

probaDep(l) la probabilité au départ de la simulation pour chaque avec les valeurs [0, 0.5, 1]

exploitant de décider d'utiliser la ressource

La durée de la simulation a été fixée à 100 ans; chaque année étant composée de 100 périodes.

Les premières simulations ont montré que l'augmentation du taux d'apprentissage tauxModifiaction permet

d'accélérer la vitesse d'apprentissage du système. Nous avons donc stabilisé ce taux a la valeur de 0,5 pour éviter

d'arriver trop rapidement à une situation d'équilibre qui pourrait ne pas être la solution optimale.

Le cas 1 : "le puits sans fond"La simulation a d'abord été lancée avec N = 5 pour le cas 1 de variation de la quantité globale de ressource.

Quand N est petit, les résultats espérés sont très proches des résultats attendus. En simulant sur une période de

100 avec un taux d'apprentissage de 0.5, on obtient les résultats suivants; (cf. Figure 5)

Nombre Comportement au départ de la Fréquence moyenne de décision positive d'utilisationd'exploitants simulation de la ressource frequenceFin(l) observée sur la:N dernière année de la simulation lorsque la fréquence

optimale théorique est 15 les exploitant n'utilisent jamais la 0.99

ressource probaDep(l) = 05 les exploitant utilisent la ressource 0.99

une fois sur deux probaDep( 1) = 0,5

Lorsque N devient grand, les performances se dégradent et le système a tendance à rester piégé dans un optimum

local. Pour N allant de 15 à 100, avec un taux d'apprentissage = 0.5 on obtient les résultats suivants: (cf. Figure

5)

26

Page 32: Simulation de l'exploitation des périmètres irrigués

Nombre Comportement au départ de la Fréquence moyenne de décision positive d'utilisationd'exploitants simulation de la ressource frequenceFin(l) observée sur la:N dernière année de la simulation lorsque la fréquence

optimale théorique est 1les exploitant n'utilisent jamais la

15 ressource probaDep( 1) = 0 0.92les exploitant n'utilisent jamais la

50 ressource probaDep(1) = 0 0.74les exploitant n'utilisent jamais la

100 ressource probaDep(1) = 0 0.55

Le problème d'optimum local vient du fait que lorsqu'une majorité d'exploitants a atteint le comportement

optimal, la variation de la satisfaction globale devient nulle. Les exploitants se fixant sur cette variation pour

faire évoluer leur comportement, il n'y a plus d'évolution du système.

Pour arriver à une meilleure solution, nous avons modifié le mécanisme d'apprentissage pour y intégrer la notion

d'intérêt personnel. Dans le nouveau mécanisme, lorsque la satisfaction globale ne varie plus, les exploitants

prennent en compte leur intérêt personnel. Après chaque prise de décision, si leur satisfaction individuelle est

supérieure à la satisfaction individuelle moyenne du groupe, ils considèrent que la prise est bonne et incrémente

le compteur d'évaluation correspondant. Dans le cas où leur satisfaction est inférieure à la moyenne du groupe, ils

évaluent négativement l'action effectuée.

Cette modification modifie notablement le résultat final. Les résultats obtenus sont les suivants :

Nombred'exploitants:N

15

50

100

Comportement au départ de lasimulation

les exploitant n'utilisent jamais laressource probaDep{ 1) = 0les exploitant n'utilisent jamais laressource probaDep( 1) = 0les exploitant n'utilisent jamais laressource probaDep(1) = 0

Fréquence moyenne de décision positived'utilisation de la ressource frequenceFin(l)observée sur la dernière année de lasimulation lorsque la fréquence optimalethéorique est 1

0.72

0.71

0.74

On observe une amélioration notable pour le cas ou N=loo, mais le résultat est moins bon pour N = 15. Les

exploitants ont tendance à décider d'utiliser la ressource avec une fréquence constante d'environs 70%.

Lorsque au milieu de l'année, on oblige tous les exploitants à prendre une décision négative concernant

l'utilisation de la ressource, on obtient les résultats suivants :

Nombred'exploitants:N

Comportement au départ de lasimulation

Fréquence moyenne de décision positived'utilisation de la ressource frequenceFin(l)observée sur la dernière année de lasimulation lorsque la fréquence optimalethéorique est 1

les exploitants n'utilisent jamais la15 ressource probaDep( 1) = 0 0.90

les exploitants n'utilisent jamais la50 ressource probaDep(1) = 0 0.87

les exploitants n'utilisent jamais la100 ressource probaDep(I) = 0 0.70

27

Page 33: Simulation de l'exploitation des périmètres irrigués

Ces résultats sont dans l'ensemble meilleurs pour N=:lOO que ceux obtenus en introduisant une notion d'intérêt

personnel. Cela est dû au fait que les décisions négatives prises simultanément par l'ensemble des exploitants

permet à chacun d'évaluer négativement cette prise de décision. C'est une fonne de coordination imposée.

Les cas 2 et 3 : le "canal d'irrigation" et le "robinet d'eau courante"Les résultats obtenus pour le cas 2 sont les suivants :

N Comportement au départ de la Fréquence théorique Yo Fréquence moyenne de décisionsimulation représentant le seuil au delà positive d'utilisation de la ressource

duquel la solution optimale est y observée sur la dernière année deatteinte la simulation

5 les exploitants n'utilisent jamaisla ressource probaDep(l) = 0 0.6 0.99

15 les exploitants n'utilisent jamaisla ressource probaDep( 1) = 0 0.8 0.85

50 les exploitants n'utilisent jamaisla ressource probaDep(l) = 0 0.7 0.70

100 les exploitants n'utilisent jamaisla ressource probaDep(l) = 0 0.7 0.63

Lorsque N est élevé (N=I00), la solution optimale n'est pas atteinte. Comme dans le cas précédent, le système

reste bloqué dans un optimum local. Cela est du au fait que comme dans le premier cas, lorsqu'une majorité

d'exploitants utilise la ressource, la satisfaction globale ne varie plus, ce qui bloque le mécanisme

d'apprentissage.

Pour le cas 3, il n'y a pas de solution optimale théorique à laquelle les résultats observés pourraient être

comparés. C'est la raison pour laquelle ces résultats n'ont pas été présentés.

Le cas 4: "le cas de la performance d'un réseau informatique"Ce cas a été expérimenté pour 50 utilisateurs sur une période de simulation de 100 ans. Chaque année est

composée de 100 périodes. avec cinq fonctions différentes de variation de la quantité de ressource globale.

Les fonctions de variation de la quantité de ressource globale.

Ces fonctions ont la même allure, mais le maximum et la pente de la fonction varie.(cf. Figure 6)

{30YN si y < Yo = 0.2

Q(yN) = .-5yN +350 SI Y~ Yo

Pour cette fonction, l'optimum théorique à atteindre est no= 10. Les

exploitants doivent utiliser la ressource avec une fréquence

moyenne Yo égale à 0,2

{

30YN si y < Yo = 0.3 Pour cette fonction, l'optimum théorique à atteindre est no=15. LesQ2(yN) = -7,5yN + 562,5 si y ~ Yo exploitants doivent utiliser la ressource avec une fréquence

moyenne Yo égale à 0,3

{30YN si y < Yo = 0.4

Q3(yN) = .-lOyN +800 SI Y~ Yo

Pour cette fonction, l'optimum théorique à atteindre est no=20. Les

exploitants doivent utiliser la ressource avec une fréquence

moyenne Yo égale à 0,4

28

Page 34: Simulation de l'exploitation des périmètres irrigués

Cas 4 : la dynamique de la ressource

1200 r----------------------------------------...,--------------,

1000

~ 8000'ë

i... 600•'0'G.:t::..c!0

400

200

O+-+--+---f--I---+--+----.---+--+--+--+--+--+--+--+-+-..........+---..........--+--+--+--+--+--+--+--+--+--+--+--+-+-+--+-----+---+--+--+--+--+--+--+--+--+--+-+---l1 2 345 6 7 8 9 1011121314151617181920212223242526272829303132333435363738394041424344454647484950

Nombre d'exploitants (n=yN)

Figure 6

Page 35: Simulation de l'exploitation des périmètres irrigués

{

30YN si y < Yo = 0.6Q4(yN) =

-30yN +1800 si y ~ Yo

{30YN si y < Yo = 0.8

Qs(yN) = .-30yN + 2400 SI Y ~ Yo

Les résultats sont les suivants:

Pour cette fonction, l'optimum théorique à atteindre est 110=30. Les

exploitants doivent utiliser la ressource avec une fréquence

moyenne Yo égale à 0,6

Pour cette fonction, l'optimum théorique à atteindre est no=40. Les

exploitants doivent utiliser la ressource avec une fréquence

moyenne Yo égale à 0,8

Fréquence moyenne de décision positive d'utilisation de la ressourceComportement au départ observée sur la dernière année de simulationde la simulation QI Q2 <b Q. Ch

fréquence fréquence fréquence fréquence fréquenceoptimale optimale optimale optimale optimale

attendue = attendue = attendue = attendue = attendue =0.2 0.3 0.4 0.6 0,8

Les exploitants n'utilisentjamais la ressourcerpro baDep(l )=0] 0.33 0.37 0.47 0.55 0.75Les exploitants utilisenttoujours la ressource[probaDep( 1)= 1] 0.25 0.39 0.43 0.57 0.68

Les résultats montrent que sans obtenir la solution optimale, la fréquence de décision positive à l'état d'équilibre

se rapproche de la fréquence optimale théorique attendue. Par exemple, pour une fréquence optimale attendue de

0.6, lorsque au départ les exploitants n'utilisent jamais la ressource, on observe lors de la dernière année de

simulation une fréquence moyenne d'utilisation de 0.55. Lorsque au départ de la simulation les exploitants

utilisent toujours la ressource la fréquence moyenne d'utilisation de la ressource durant l'année 100 est de 0.57.

Par ailleurs, l'apprentissage est plus efficace lorsque au départ, le système est loin de la solution optimale

théorique:

- Lorsque la solution optimale est que les exploitants décident d'utiliser la ressource avec une fréquence moyenne

de 0,8 le système se stabilise à une fréquence moyenne de 0.75 dans le cas où au départ de la simulation. les

exploitants décidaient toujours de ne jamais utiliser la ressource.

- Lorsque la solution optimale est de peu utiliser la ressource (fréquence d'utilisation de 0.2), le résultat est

meilleur lorsque au départ de la simulation tous les exploitants utilisent la ressource. (Cf. Figure 7 ; résultats

lorsque les exploitants n'utilisent pas la ressource au départ)

4. Résultats obtenus lorsque les exploitants se basent sur leur satisfaction individuelleA titre de comparaison, nous présentons les résultats observés lorsque l'apprentissage ne se fait pas sur la base

d'un indicateur global tel que la satisfaction globale du système, mais lorsque chaque exploitant évalue son

comportement en fonction de sa satisfaction individuelle. A chaque pas de temps de la simulation, l'exploitant

29

Page 36: Simulation de l'exploitation des périmètres irrigués

(chaque ligne représente lecomportement d'unexploitant au cours des 100périodes de la centièmeannée de simulation)

FIgure 7DécIsIons prl... pllr ,.

fJJCplo/tants lors de ladernière année pour le8

5 variations du css 4

• Utilisation de la ressource

o Non utilisation de la ressource

o 5 '0 15 20 25 30 354045 50 55 60 65 70 75 BO 85 90 95, .

o ~ 10 15 20 2~ 30 3~ "1045 sa5~ 60 55 70 r.l 80 85 90 95

o 5 10152025303540"1550556065707580 85 9095

o 5 10' 5 20 25 30 35 '10 45 50 ~5 60 65 70 75 80 8~ 90 95

o s 10'5 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 9S

f

Page 37: Simulation de l'exploitation des périmètres irrigués

compare sa satisfaction individuelle courante SI(t) à sa satisfaction individuelle qu'il a obtenu à la période

précédente SI(t-l) pour modifier le compteur d'évaluation qui correspond à l'action qu'il vient d'effectuer.

Pour une simulation effectuée sur 100 années comportant 100 périodes chacune, avec un nombre total

d'exploitants égal à 50 qui au départ de la simulation n'utilisent jamais la ressource, lorsque l'on fixe le taux

d'apprentissage à 0.5, les résultats obtenus sont les suivants :

Cas 1:

La fréquence observée lors de la dernière année de simulation est égale à 0.99

Cas 2 :

Lorsque la fréquence théorique Yo représentant le seuil au delà duquel la solution optimale est atteinte est fixée à

0.7, on observe une fréquence de 0.75 lors de la dernière année de simulation.

Cas 4 : dans les 5 cas de variations de la ressources, on obtient:

fréquence optimale attendue 0.2 0.3 0.4 0.6 0.8

fréquence observée (année 100) 0.67 0.68 0.68 0.71 0.78

Les résultats obtenus montrent que les exploitants ont tendance à toujours utiliser la ressource. Lorsque la

solution est que tous les exploitants utilisent la ressource, le résultat attendu est atteint. Mais dans le cas 4 lorsque

la solution est que les exploitants utilisent peu la ressource fréquence attendue de 0.2, les utilisateurs l'utilisent

avec une fréquence de 0.67.

Les résultats sont donc meilleurs lorsque l'apprentissage est basé sur un indicateur global.

5. Les stratégies remarquables du système observées à l'état d'équilibreLes fréquences moyennes d'utilisation de la ressource observées sont obtenues à partir de comportements

individuels qui ne sont pas forcément homogènes.

Il y a 3 types de comportements ou de stratégies remarquables en fonction des probabilités transitoires Pli et Poo

qui représentent respectivement la probabilité de décider d'utiliser la ressource après l'avoir utilisé à la période

précédente et la probabilité de décider de ne pas utiliser la ressource après avoir décidé de ne pas l'utiliser à la

période précédente.

La stratégie du "toujours non"Cette stratégie est caractéristique des individus dont le Poo est très grand. Lorsque Poo est proche de l, l'individu a

tendance à rester dans l'état "décider de ne pas utiliser la ressource" quelque soit la valeur de Pli . On peut dire

que ces individus se sacrifient pour la communauté.

La stratégie du "toujours oui"Les individus qui appliquent cette stratégie ont tendance à toujours décider d'utiliser la ressource. Ces individus

sont caractérisés par un Pl' très proche de 1 quelle que soit la valeur de Poo. Ces individus sont ceux qui

globalement sont toujours les plus satisfaits.

La stratégie une ''fois sur deux"Cette stratégie s'observe chez un individu dont Poo et Pli sont très proche de O. L'individu a alors tendance à

décider le contraire de ce qu'il avait décidé à la période précédente.

30

Page 38: Simulation de l'exploitation des périmètres irrigués

Ces trois types de comportement se rencontrent lorsque le système tend vers une solution optimale ou la

fréquence d'utilisation doit être très grande (Ilo =1) ou alors très faible no = 0,2.

Lorsque la solution optimale est que tous les exploitants utilisent la ressource, quand N est grand, on observe que

la plupart des exploitants adoptent la stratégie du "toujours oui". Cependant une minorité d'exploitants reste

indécise et adopte la stratégie du "une fois sur deux".

Lorsque la solution optimale est que très peu d'utilisateurs utilisent la ressource, on observe qu'une forte minorité

d'exploitants se sacrifient en adoptant la stratégie du "toujours non" au profit de deux ou trois individus qui

accaparent toutes les ressources. (cf. Figure 7 - QI>

Ces convergences sont explicables (cf. Annexe B)

6. ConclusionsCes premiers résultats permettent de dégager quelques conclusions sur la stratégie de résolution que nous avons

choisie:

- il est plus facile d'atteindre la solution optimale lorsque le nombre d'exploitants du système est petit;

- le système de fonctionnement du modèle quel qu'il est défini ne permet pas de résoudre tous les cas de

coordination. Par exemple, il est impossible d'obtenir que chaque utilisateur utilise la ressource exactement toutes

les cinq périodes. En effet, le contrôle n'est exercé que sur les probabilités, ce qui laisse une grande liberté de

manoeuvre aux exploitants ;

- cette stratégie n'est pas égalitaire: on observe en général une grande disparité entre les individus. Dans les cas

où la ressource est rare, certains individus n'utilisent pratiquement jamais la ressource au profit d'une minorité qui

accapare toutes les disponibilités. Même lorsque la ressource est disponible pour tout le monde, certains

individus sont plus mal lotis que d'autres.

Ces résultats montrent néanmoins que dans tous les cas, le système a tendance à converger vers la solution

optimale, même s'il ne l'atteint pas toujours. C'est un résultat important compte tenu du fait que les agents du

système ont des capacités extrêmement limitées. La stratégie que nous avons mis en oeuvre repose en effet sur

des bases très élémentaires: les agents ne coordonnent pas explicitement leur activité: il n'y a aucun mécanisme

de communication. Les agents ne peuvent réaliser que deux actions : décider ou non d'utiliser la ressource. Ce

sont des agents probabilistes: ils agissent en fonction de probabilités.

On peut noter que lorsque que l'on complique un peu le mécanisme de l'évaluation des actions effectuées en

introduisant une certaine dose d'intérêt personnel ou une coordination imposée, les résultats s'améliorent.

Une des améliorations prometteuses du système est d'augmenter la mémoire des exploitants. Pour \'instant,

l'exploitant ne conserve que l'action qu'il a effectuée à la période précédente. En évaluant ses actions passées sur

une période de temps plus grande, le comportement de l'exploitant est susceptible de s'affiner.

Une idée d'amélioration est également rendre plus local le critère d'apprentissage du système. Pour l'instant,

l'apprentissage s'effectue sur la seule base de la satisfaction globale. On peut imaginer que chaque exploitant ne

s'intéresse qu'à la satisfaction globale d'un ensemble limité d'exploitants qui constitueraient son réseau de

connaissances. Il y aurait alors plusieurs critère d'apprentissage, ce qui permettrait au système de ne plus rester

bloqué dans un optimum local. Cette idée est renforcée par le fait que les résultats sont meilleurs lorsque le

système est composé d'un petit nombre d'exploitants.

31

Page 39: Simulation de l'exploitation des périmètres irrigués

Cinquième partie: Discussion

Nous allons dans cette partie tenter une comparaison entre les méthodes classiques de résolution du problème de

la répartition optimale présentées dans la première partie et la méthode que nous avons employée. Ces méthodes

classiques peuvent être divisées en deux groupes : les méthodes linéaires auxquelles appartient la méthode du

simplexe et les méthodes stochastiques dont font partie toutes les autres.

Notre problème peut être spécifié comme un problème CSP si on le décompose comme suit:

- l'ensemble fini de variables est l'ensemble des décisions d(j),} E [1, N] que prennent chacun des N

exploitants à chaque période;

- chaque décision d(j) prend une valeur binaire 0 ou 1;

Lorsque tous les exploitants ont pris leur décision, il est possible de déterminer la quantité de ressource dont

~fd(OJchaque utilisateur peut disposer. Elle est égale à q(j) =d(j) * _.o.,N"...i=.:....1---<-

Id(i)i=1

Le problème est alors de maximiser la satisfaction générale défmie par : SG = i ~(~) où q(j) représente laj=1 qCJ)

quantité de ressource désirée par l'exploitantj.

1La méthode du simplexe

La méthode du simplexe semble difficile à appliquer car dans notre cas, nous ne connaissons pas a priori la

quantité de ressource Q(n) à répartir. Cette quantité dépend en effet du nombre d'exploitants ayant décidé

d'utiliser la ressource à une période donnée (n) et non pas du nombre d'exploitants total du système (N).

Il Les méthodes stochastiques d'optimisation combinatoire

Pour appliquer une méthode stochastique d'optimisation combinatoire, nous pouvons spécifier notre problème

sous la forme d'un problème d'optimisation des comportements. L'espace de solutions qui nous intéresse est

l'ensemble des stratégies collectives possibles {Sj} d'utilisation de la ressource Sj = [S( ,... , si ,... , S~].

Chaque stratégie collective est composée de N stratégies individuelles si qui sont codées dans notre système à

l'aide des probabilités transitoires Poo , Pli , PlO , Pm mais qui pourraient être codées de toutes autres manière. A

chaque stratégie collective possible Sj correspond une valeur de satisfaction globale sa du système et que l'on

veut maximiser.

On peut par exemple imaginer d'appliquer la méthode du recuit simulé de la façon suivante:

On part d'une stratégie collective quelconque. Par exemple l'ensemble des stratégies individuelles est la même et

consiste à ne jamais utiliser la ressource.

32

Page 40: Simulation de l'exploitation des périmètres irrigués

Comme paramètre de température, on se fixe un chiffre entier correspondant au nombre maximal de changements

de stratégies individuel1es que l'on s'autorise.

A chaque itération de l'algorithme;

on choisit aléatoirement une stratégie individuelle à laquelle on applique une légère modification.

on simule le système pour obtenir la nouvel1e satisfaction globale SG que l'on compare à l'ancienne.

si l'évolution de la satisfaction globale est positive, alors on conserve la modification et on décrémente

le paramètre de température.

si l'évolution de la satisfaction globale est négative, alors on conserve la modification avec une

probabilité proportionnelle à la température courante et on décrémente la température si cette

modification est effectuée.

Lorsque la température devient nul1e, on n'accepte plus que les modifications des stratégies qui permettent

d'améliorer la satisfaction globale.

On arrête le processus quand la satisfaction globale n'évolue plus.

lA stratégie individuelle Sjsubit une légère modificationet devient Sj

••

••

••

Figure 8 ; Application du recuit simulé ànotre problème d'optimisation descomportements

De la même façon, il est possible d'imaginer l'application du principe des algorithmes génétiques à notre

problème en utilisant par exemple le mécanisme suivant:

On génère un ensemble de stratégies collectives chacune d'el1es étant composée d'un ensemble de stratégies

individuelles construites aléatoirement.

Puis on itère un certain nombre de fois le processus suivant;

On détermine la satisfaction globale associée à chaque stratégie collective et on sélectionne les

meilleures.

On produit de nouvelles stratégies collectives à partir des stratégies collectives sélectionnées en

échangeant entre elles un certain nombre de stratégies individuel1es. C'est la phase de reproduction par

recombinaison.

A intervalle régulier, on effectue une opération de mutation; chaque stratégie col1ective voit quelques

unes de ses stratégies individuelles subir une légère modification.

33

Page 41: Simulation de l'exploitation des périmètres irrigués

Sl1 S.. SIN sa'

S21 S2' S2!' sa2

Ski S., sJ sai

Sm smJ smL Sam

Ski Sk' sJ sak

Sl1 S2i S2N sai

S2l SI' SI~ sa2

SkI Sk SIrJ sai

Ski Sir; SIrJ Sam

Ski smJ SmL sak

Reproduction parrecombinaison et sélectiondes k meilleures stratégiescollectives

Mutation de certainesstratégies individuelles

Figure 9 : Les trois opérations de l'algorithme génétique Reproduction. Sélection - Mutation

Notre méthode d'apprentissage peut également être considérée comme une méthode stochastique d'optimisation

combinatoire. En effet, la caractéristique essentielle des méthodes stochastiques est l'utilisation d'une heuristique

permettant d'évoluer à travers l'espace de recherche des solutions réalisables jusqu'à ce que la solution optimale

soit atteinte. L'heuristique de la méthode tabou consiste à mémoriser les configurations déjà examinées et qui

sont susceptibles de conduire le processus de recherche dans une situation de blocage (optimum local) ou dans un

cycle. L'heuristique du recuit simulé est de permettre avec une certaine probabilité une évolution du processus de

recherche vers des solutions qui au premier abord n'améliorent pas la solution courante pour éviter de tomber

dans le piège des optima locaux. L'heuristique des algorithme génétique est de partir d'un ensemble de solutions

possibles, de sélectionner celles qui donnent les meilleurs résultats et de recombiner celles-ci pour aboutir à de

nouvelles solutions dont on a l'espoir qu'elles seront meilleures.

Le mécanisme d'apprentissage que nous utilisons consiste également à naviguer à travers l'espace des solutions

réalisables possibles, en modifiant à intervalles réguliers le comportement des exploitants, en fonction de

l'évolution de la satisfaction globale du système. A partir d'une solution de départ choisie aléatoirement, on

applique un principe d'apprentissage qui est l'heuristique de la méthode considérée avec l'espoir que ce processus

fasse converger le système vers la solution optimale. Le fait que chaque exploitant évalue et modifie les valeurs

de ses probabilités transitoires à un instant qui lui est spécifique peut être comparé à l'application de la méthode

du recuit simulé distribué telle qu'elle a été défini par Guédira (1996).

34

Page 42: Simulation de l'exploitation des périmètres irrigués

l'exploitant j modifie soncomportement par lemécanisme d'apprentissage

••

••

••

Figure 10 : Application de notre mécanisme d'apprentissage

35

Page 43: Simulation de l'exploitation des périmètres irrigués

Conclusion

Le sujet de ce stage avait pour objet d'étudier la coordination temporelle de l'usage d'une ressource à partir d'une

modélisation de l'exploitation d'un périmètre irrigué. Pour étudier le problème, nous avons construit un système

de simulation multi-agents où chaque exploitant utilisateur de la ressource est un agent réactif doté de capacités

très élémentaires mais qui possède des qualités d'apprentissage qui lui permettent de modifier son comportement.

La simulation du modèle et les premiers résultats que nous avons observés permettent de conclure qu'un tel

système peut arriver à converger vers la solution optimale dans les cas où la dynamique de la ressource est

simple. La coordination des utilisateurs est meilleure lorsque ceux-ci sont en petit nombre.

Dans les cas où la dynamique de la ressource nécessite une coordination stricte entre les usagers (par exemple, la

ressource est tellement rare que les utilisateurs doivent l'utiliser à tour de rôle) le manque de communication

explicite entre les agents ainsi que leur trop grande liberté d'action (ce sont des automates probabilistes, il est

donc impossible de prévoir avec certitude l'action qu'ils vont effectuer) empêche le système de trouver la solution

optimale.

Cependant, les résultats que l'on observe lorsque les exploitants adaptent leur comportement en fonction de la

satisfaction générale sont meilleurs que ceux observés lorsqu'ils se basent sur leur satisfaction individuelle pour

modifier leur comportement. Dans ce dernier cas, les exploitants ont en effet tendance à sur-utiliser la ressource.

C'est le phénomène de la tragédie des communs.

Plusieurs points du modèle peuvent encore être explorés: notre formule de satisfaction globale conduit à ce qu'un

exploitant soit satisfait dès qu'il reçoit une quantité de ressource supérieure ou égale à celle qu'il désirait. Le cas

de l'excès de la ressource (inondation) n'est pas traité. II serait intéressant de formuler autrement la satisfaction

pour tenir compte de ce cas. Il serait également intéressant d'explorer le comportement du modèle avec des

exploitants ayant des capacités un peu plus grandes au niveau de la mémoire (mémorisation de l'effet des actions

antérieures à la période précédente) et s'intéressant un peu plus aux activités des autres agents du système

(coordination des actions entre exploitants appartenant à un même réseau -famille, amis, ...)

Nous avons finalement limité nos simulations à des cas où la dynamique de la ressource ne varie pas en fonction

du temps, contrairement à ce qui était prévu au départ. Cette simplification avait pour objet de nous aider à mieux

comprendre le fonctionnement du système. C'est un des résultats du stage. Cette démarche est assez

déconcertante au départ pour l'informaticien qui a tendance à modifier son modèle afin d'aboutir aux résultats

qu'il espère obtenir. Notre travail a été un travail de programmation mais surtout un travail d'analyse. Cela a été

l'occasion de mieux appréhender le concept de la simulation multi-agents en tant qu'outil de réflexion théorique.

Nous nous sommes posé tout au long du stage des questions sur l'utilité du problème à étudier et sur la méthode

que nous devions adopter: quel intérêt y a-t-il à simuler le fonctionnement d'exploitants aux capacités cognitives

si limitées dans l'utilisation d'une ressource, alors qu'il existe un grand nombre de méthodes de résolution de ce

type de problème ? Les exploitants ont si peu de capacités internes qu'il est impossible de les comparer à des

paysans exploitant les parcelles d'un périmètre irrigué. Notre réponse actuelle est que ce travail a permis de tester

une hypothèse et de répondre à une question: est-il possible de se coordonner sans mécanisme de communication

explicite. Cette démarche peut être rapprochée de celle utilisée dans les travaux du domaine de la théorie des

jeux, beaucoup de ces travaux ont en effet pour objet de répondre à des questions apparemment simples mais qui

ne trouvent de réponse que lors de simulation. Par exemple, Ito et Yano( 1995) ont construit un modèle pour

étudier l'émergence de la coopération dans une société d'agents autonomes. Les agents jouent au jeu du dilemme

36

Page 44: Simulation de l'exploitation des périmètres irrigués

du prisonnier itéré (Axelrod, 1984). Chacun de leurs agents est doté d'une stratégie (coopérer toujours, donnant­

donnant, trahir toujours) et à chaque pas de temps ils jouent avec un des autres agents du système. Les agents qui

réussissent le mieux se reproduisent en utilisant les techniques des algorithmes génétiques. Les auteurs montrent

que les stratégies les plus robustes sont celles du donnant-donnant.

Pour conclure, nous considérons que ce travail a été l'occasion de mieux appréhender les problèmes

d'apprentissage, de résolution distribuée de problème ainsi que les problèmes de coordination réactive. Ce stage a

constitué une vraie initiation au travail de recherche.

37

Page 45: Simulation de l'exploitation des périmètres irrigués

Bibliographie :

1. Barreteau O. 1995. Des modes de gestion à la viabilité d'un périmètre irrigué. Projet de thèse provisoire ­inédit.

2. Battiti Roberto, Tecchiolli Giampietro. 1994. The Reactive Tabu Search. ORSA Journal on Computing.Vol. 6, N. 2. Pp 126-140.

3. Bouron T. 1993. Structures de communication et d'organisation pour la coopération dans un univers multi­agents. Thèse de Doctorat, Université Paris 6.

4. Bousquet F. 1994. Des milieux, des poissons, des hommes: étude par simulations multi-agents. Le cas de lapêche dans le delta central du Niger. Thèse de Doctorat, Université Claude Bernard - Lyon 1.

5. Bousquet F. 1996. Usage des ressources renouvelables et modélisations des représentations: une approchepar les systèmes multi-agents.in Actes des Journées du programme Environnement, Vie et Société, tendancesnouvelles en modélisation pour l'environnement. Ed. CNRS.

6. Demazeau Y, Müller J-P(eds}.. 1991. Decentralized A.I. 2. ElsevierlNorth-Holland.

7. Durfee Edmund H. 1995. Blissful Ignorance: Knowing Just Enough to Coordinate Weil. ProceedingsProceedings of the First International Conference on Multi-Agents Systems ICMAS-95. AAAI Press!TheMIT Press

8. Ferber J. 1995. Les systèmes multi-agents. Vers une intelligence collective. InterEditions

9. Gilbert N. 1995. Simulation: an emergent perspective. Talk at the conference on New Technologies in theSocial Sciences, 27-29th October, 1995, Bournemouth, UK and atLAFORIA, Paris, 22nd January 1996.

10. Grumbach A. 1994. Cognition Artificielle. Du réflexe à la réflexion.Addison-Wesley France.

11. Guédira Khaled. 1996. Apport du recuit simulé distribué par rapport au centralisé : cas des problèmes desatisfaction de contraintes. In IA distribuée et Systèmes MuIti-Agents. Actes des 4èmes JournéesFrancophones d' lAD et SMA. Coordonnateurs: Jean-Pierre Müller, Joël Quinqueton. Hermès.

12. Duberman Bernardo. A, Glanee Nathalie 8.1993. Evolutionary games and computer simulations.Proceedings on the National Academy ofSciences.

13. Ito A, Yano H. 1995. The Emergence of Cooperation in a Society of Autonomous Agents -The Prisoner'sDilemma Game under the disc10sure of Contract Histories -. Proceedings of the First InternationalConference on Multi-Agents Systems ICMAS-95. AAAI PressfThe MIT Press.

14. Kaelbling Leslie Pack. 1993. Learning in embedded systems. A Bradford Book, The MIT Press

15. Langton C.G. 1989 Artificial Life. in Artificial Life - c.G. Langton, editor - Proceedings of the FirstInterdisciplinary Workshop on the Synthesis and Simulation of Living Systems editor Addison-Wesley

16. Le Page C. 1996. Biologie des populations et simulations individus-centrées. Thèse de Doctorat, UniversitéParis 6

17. Levy G. 1994. Algorithmique combinatoire. Méthodes constructives, Dunod

18. Malone Thomas W. Crowston Kevin. 1994. The interdisciplinary study of coordination, ACM ComputingSurveys, Vol. 26, No. 1.

38

Page 46: Simulation de l'exploitation des périmètres irrigués

19. Tsang E. 1993. Foundations of Constraint Satisfaction. Academic Press, Harcourt Brace & CompanyPublishers.

20. Yan Duüren F, Demazeau Y, Steels L. 1990. Learning to walk in a real environment through self­organizing coordination between legs. Vrije Universiteit Brussel.

21. Weisbuch G. 1989. Dynamique des systèmes complexes. Une introduction aux réseaux d'automates.InterEditionslEditions du CNRS.

Références d'ouvrages mentionnés:

1. Axelrod R. 1984. The Evolution of Cooperation. Basic Books, New York.

2. Rolland J. 1975. Adaptation in natural and artificial systems. University of Michigan Press, Ann Arbor.

3. Kirkpatrick S, Gelatt C.D., Yecchi M.P.Jr. 1983. Optimisation by simulated annealing. Sciences, 220.

4. Latané B. 1996. Dynamic social impact: robust predictions from simple theory. In : Hegselmann R., MueHerU., and Troitzsch K. (Eds), Modelling and simulating in the social sciences from a philosophy of sciencepoint ofview. Dordrech:K.luwer

5. Rosenblatt F. 1962. Principles of neurodynamics. New York Spartan.

6. Schelling T. 1971. Dynamic models of segregation. Journal ofMathematical Sociology, 1, 143-186

7. Waterman D.A. 1970. Genera1ization learning techniques for automating the learning of heuristics. ArtijicialIntelligence, tome 1.

8. ZeiglerB.P. 1976 Theory ofmodelling and simulation. New York: John Wiley & Sons.

39

Page 47: Simulation de l'exploitation des périmètres irrigués

ANNEXES

40

Page 48: Simulation de l'exploitation des périmètres irrigués

Annexe A : relation entre les probabilités associées aux transitions et celles associées aux

états du graphe de transition.

Nous avons établi une relation entre les probabilités associées aux transitions du graphe de transition et les

probabilité associées aux états du graphe de transition. Ces probabilités associées aux états du graphe de

transitions doivent en principe être égale aux fréquences relatives aux décisions, observées après la simulation.

Soit:

Poo la probabilité de passage entre l'état 0 et l'état O. Cette probabilité représente la chance que l'exploitant a de

décider de ne pas utiliser la ressource à la période t lorsque à la période t-l il ne l'a pas utilisé.

Pli la probabilité de passage entre l'état 1 et l'état 1. Cette probabilité représente la chance que l'exploitant a de

décider d'utiliser la ressource à la période t lorsque à la période t-l il a décidé de l'utiliser.

On en déduit :

POl probabilité de passage entre l'état 0 et l'état 1

PlO probabilité de passage entre l'état 1 et l'état 0

Soit:

proba(O) =x. Probabilité pour un exploitant d'être à l'état 0 à une période donnée t. C'est la probabilité pour un

exploitant de ne pas utiliser la ressource

proba(1) =y. Probabilité pour un exploitant d'être à l'état 1 à une période donnée t. C'est la probabilité pour un

exploitant d'utiliser la ressource

Soit x' =proba(O) à la période t+ 1

y' = proba(l) à la période t+ 1

On peut établir une relation entre x', y', et x, y, Poo et Pli

{

X' = Poox + PIOY

y' = POIX + PlIY

X + y =x'+y' =1

A l'équilibre du système on doit vérifier:

Pour trouver x et y à l'état d'équilibre, on peut déterminer la valeur propre correspondant à la matrice

[ Poo PlO] et qui vérifie la relation x+y = x/+y/ = 1. Des deux valeurs propres trouvées )l = 1 etPOl Pli

)l =a + b - 1, c'est la première qui permet de vérifier cette relation. On obtient alors:

Page 49: Simulation de l'exploitation des périmètres irrigués

Après simulation on a bien vérifié que la fréquence de décisions négatives et positives d'utilisation de la

ressource pour chaque individu est en moyenne égale aux probabilités x et y calculées avec une marge d'erreur

jamais supérieure à plus de 0,01.

Page 50: Simulation de l'exploitation des périmètres irrigués

Annexe B : les comportements remarquables auxquels on peut s'attendre

Nous avons fonnalisé l'évolution des compteurs d'évaluation en fonction des probabilités transitoires Poo, POl> PlO,

Pli··

A chaque période t, on modifie un des quatre compteurs coo, Col> CIO, Cil. Le compteur d'évaluation à modifier

dépend du compteur modifié à la période précédente et des probabilités transitoires. Par exemple, si à la période

t-1, on a agit sur le compteur Coo, à la période t on a un choix entre deux possibilités:

- modifier ce même compteur avec une probabilité Poo.

- modifier le compteur COI avec une probabilité POl

De la même façon, si à la période t-1, on modifie le compteur Cil, à la période suivante t, on aura deux

possibilités:

- modifier le compteur CIO avec une probabilité PlO

- modifier le compteur Cil avec une probabilité Pu

C'est ce que l'on a fonnalisé sur le graphe de transition de la figure suivante.

De la même façon dont on a déterminé la probabilité pour un exploitant d'être dans un état donné, on calcule la

probabilité de modifier les compteurs d'évaluation coo, COl> CIl), Cil. par le calcul des valeurs propres de la matrice

correspondant au graphe de transition.

Coo COI CIO Cu

Coo Poo 0 Poo 0

COI POl 0 POl 0

CIO 0 PlO 0 PlO

Cil 0 Pli 0 PlI

En posant a = Poo et b=PII , on obtient:

a(1-b)a=----=------=----

(l-a)+(1-b)

(1- a)(l- b)X = ---'-----'--'----'--

(1-a)+(1-b)

/3= (l-a)(l-b)(l-a)+(l-b)

8= b(l-a)(l-a)+(l-b)

Où Cl, ~,x, cS représentent respectivement les probabilités de modification des compteurs Coo, COI, CIO, Cil··

Page 51: Simulation de l'exploitation des périmètres irrigués

En utilisant ces fonnules, le nombre de mises àjour d'un compteur d'évaluation durant la période d'évaluation est

Ccry = tEvaluation *proba[Ccry] (1)

où proba[ccry] prend les valeurs a, ~, ;(, Ô.

A la période d'évaluation le comportement des exploitants (c'est à dire les probabilités de transition) va être

modifié suivant la fonnule d'apprentissage Pcry = Pcry +(1- Pcry) * tauxModification

La probabilité de transition à modifier Pxy dépend de l'état des compteurs d'évaluation.

Plusieurs cas se présentent:

1. Coo > COIPoo doit être modifié. En posant Poo = an , la fonnule d'apprentissage devient:

C -ca = a +(1 - a ) * tauxModification * Poo POl

n+l n n tEvaluation

cpoo - cPOI

=Coo - COI

= tEvaluation(a - X) d'après (1)

. (an(1-bn)-(I-anXl-bn)]= tEvaluatwn ( ) ( )

l-a + I-bn n

(1- b )(2a - 1)= tEvaluation n n

(1- aJ + (1- bn )

En remplaçant dans la formule d'apprentissage, on obtient;

tauxModification *(1- an )(1- bn)*(2an-1)a =a+------''----------:.:.-----:.:.-----:.:.--

Ml n (1-an)+(1-bn)

c -c-* PD P"

tEvaluation

1Si l'on suppose Poo > POl alors Poo > 1- Poo ce qui équivaut à Poo >­

2

1Donc an+! > an > - .

2

1(an> -)

2

Lorsque an = } on obtient an+!=}' La valeur 1 est un point fixe et un attracteur de la relation de récurrence

donnant la loi d'évolution de Poo... Quelque soit p11, Poo reste à 1. Cela correspond au cas où l'exploitant n'utilise

jamais la ressource. Dès que l'exploitant décide de ne pas utiliser la ressource, il reste dans cet état; il ne

l'utilisera plus jamais.

Page 52: Simulation de l'exploitation des périmètres irrigués

attracteur

!

2. Cil > CIO

Pli doit être modifié.En posant Pli = bn et en remplaçant dans la formule d'apprentissage ClI et CIO par leurs

valeurs fonction de leurs probabilités, on obtient de la même façon que précédemment:

b = b + tauxModification *(1- aJ(1- bn)*(2bn-1)n+1 n (1-an)+(1- bJ

1En supposant que Pli > PlO alors Pu > 1- Pli ce qui équivaut à Pli >­

2

1(bn >-)

2

1Donc bn+l > bn > -. Lorsque bn = 1 on obtient bn+l=l . . La valeur 1 est un point fixe et un attracteur de la

2

relation de récurrence donnant la loi d'évolution de Pl1 . Quelque soit Poo. Pli reste à 1. Cela correspond au cas

où l'exploitant utilise toujours la ressource. Dès que l'exploitant décide d'utiliser la ressource il reste à l'état 1, il

utilisera toujours la ressource.

bn

+-- attracteur

0.5

1n

3. COI> COlI et CIO> CIl

Dans ce cas, on modifie les probabilités POl et PlO .

Par la même méthode que dans les cas précédents, et en posant:

POl = 1 - Poo

PlO = I-Pll

an =Poo

bn = Pli

On obtient les formules suivantes:

(1- b X1- 2a )(1- an+l ) = (1- an) + an * tauxModification (1- ~n )(1- b

n

n)

(l-a )(1-2b)(1- bn+1 ) = (1- bn) + bn* tauxModification ( n )( n)

1-Q I-bn n

Page 53: Simulation de l'exploitation des périmètres irrigués

1Pli < 1- PlI ce qui équivaut à Pli <­

2

Si l'on suppose PlO > Pli et POl > Poo alors

1(h" <-)

21 1

Poo < 1- Poo ce qui équivaut à Poo < - .....(a" < -)2 2

1 1Donc bn+J< bn< - et an+J < an < -. Lorsque bn =0 et an =0 on obtient bn+J=O et an+J =O. La valeur 0 est un

2 2point fixe des deux relations de récurrence donnant les lois d'évolution de poo et Pli. Dans ce cas, lorsque

l'exploitant a décidé d'utiliser la ressource à la période t-l, il décidera de ne pas l'utiliser à la période t. Et lorsque

l'exploitant a décidé de ne pas utiliser la ressource à la période t-l, il décidera de l'utiliser à la période t. C'est le

comportement "une fois sur deux".

bn

0.5

attracteur

Page 54: Simulation de l'exploitation des périmètres irrigués

ANNEXEe:• Définition de l'exploitant (fichier exploitArray.h) et de l'environnement(fichier simulation.h)

• Programme principal de l'application (fichier exploiterPer_stubs.cc)

Page 55: Simulation de l'exploitation des périmètres irrigués

IlIl Definition de l'environnement : fic~ier simulation.hIl11##ii#i##################################i########### ################################################

#ifndef#define#include#include#include#include#include#include

SIMULATION HSIMULATION H

<iostream.h><fstream.h>"floatArray.h""intArray.h""exploitArray.h""canevas.h"

class Exploitant;class exploitantArray;

class Simulation {public: Simulation();

Simulation(int T, int N, int M, int tMemExp);-Simulation(){}Simulation& operator=(const Simulation&);void chargerQteGlobale(char*);void chargerDesExploitants(char*);void chargerIntExploitants(char*);void print(ostream& os = cerr);void DecisionExploitants(int instant);int calculDebitsEffectifs(int instant);void DessineDecExploit(Canevas fen, int instant);void SatisfactionExploitants(int instant, int m);void DessineSatExploitants(Canevas fen, int instant);void SatisfactionGlobale(int inst);void CalculPoidsDecExploitants(int instant, intArray& tabPos, intArray& tabNeg, int annee);void ReajustementPoidsDecExploitants(float marge, int ecart);void CreerFicSG(char*);void CreerFicUE(char*);void CreerFicUT(char*);void CreerFicQNt(char *);void CreerFicQnt(char *);void DessinerResultatl(char*, char *, char *, int);void DessinerResultat2(char*, char *, char*, int);void EcrireAbsOrd(Canevas fen, char* coul)

{ fen.EcrireAbsOrd(coul, nbExploitants, nbPeriodes);Exploitant& refExploitant(int ind)

{ return tabExploitants[ind]; }void EcrireLegendeDecision(Canevas fen,

Page 56: Simulation de l'exploitation des périmètres irrigués

char *titre, char* coul, int annee);void EcrireLegendeSatisfaction(Canevas fen, char *titre,

char* coul, int annee);float SatisfactionAnnuelle();double getsatisGlobale(int inst) ( return satisGlobale[instl;float MoyDecPositive();void CalculNbPerEffObservee();void CalculFrequenceAttendue();int getNbExp() ( return nbExploitants;void ImprimerEcart();void CreerFicQdt(char *);float MoyQteGlob();void UtilisateurEffectif();void AfficherNumUtilisateurPassif();void enregistrerProbaCompteur(char* nomfic);

private:int nbExploitants;int nbExpVirtuels;int nbPeriodes;int tailleMernoireExp;exploitantArray tabExploitants;floatArray2Dim qteGlobale;doubleArray satisGlobale;intArray nbPerEffObservee;doubleArray frequenceAttendue;floatArray debitsEffectifs;intArray nbreExpEffectifs;

} ;

#endif

Page 57: Simulation de l'exploitation des périmètres irrigués

IlIl Definition de l'exploitant: fichier exploitArray.hIl11****#*##*#*##***##********#********##**##***#*****## #######*#####################################

hfndef*define

EXPLOITARRAY HEXPLOITARRAY H

#include <iostrearn.h>

class exploitantArray;ostrearn& operator« (ostream&, exploitantArray&);

class Exploitant;class exploitantArray{public :exploitantArray() {nbcol = 0; tableau = o;}

exploitantArray(int);exploitantArray(const exploitantArray &);-exploitantArray() {delete [) tableau;}Exploitant& operator [) (int inde);exploitantArray& operator=(const exploitantArray &);int getnbcol() {return nbcol;}void print(ostream& os = cerr);

private:int nbcol;Exploitant *tableau;

} ;

#include <stdlib.h>#include <math.h>#include "floatArray.h"#include "intArray.h"#include "simulation.h"

class Simulation;class Exploitant {friend class Simulation;public: Exploitant();

Exploitant (int T, int N, int tailleMemoire, Simulation* -pere);-Exploitant () {};Exploitant& operator= (const Exploitant&);void print (ostream& os = cerr);void prendreDecision (int inst);void calculerSatisPropre (int inst, int m);void calculerSatislndiv (int inst);void evaluationDecision (int inst);void reajustementDecision (float marge, int ecart);

Page 58: Simulation de l'exploitation des périmètres irrigués

int getnbPerEff(){ return nbPerEff; }double getprobaOO() {return probaDec[O];}double getproba11() {return (1 - probaDec[2]);}int getPoids(int nb) {return poidsDec[nb];}double CalcuIFrequenceAttendue();float getSouhaits_t(int i) { return souhaits_tri];int aUtiliseUneFois();void enregistrerProbaCompteur(char* nomfic);

private:Simulation* pere;int nbPerEff;

int aUtilise;

Il nbre de fois ou l'utilisateur estIl aIle cultive en un anIl =1 si l'exp. a utilise la ress.Il =0 sinon

floatArray souhaits_t;doubleArray satisPropre_t;doubleArray satislndiv_t;doubleArray qidelta;doubleArray qisdelta;intArray decision_t; Il 0 ou 1 - aller ou non sur sa parcellefloatArray amis_ni Il reel compris entre 0 et 1 - degre d'amitie avec les autres expl.doubleArray probaDec; Il tableau des probabilites de decisionintArray poidsDec; Il compteur + ou - en fonction du resultat de

Il la decision sur la satisfaction globale

} ;

fendif

Page 59: Simulation de l'exploitation des périmètres irrigués

Il programme principal de l'application

IlIl exploiterPer_stubs.cc - Notify and event callback function stubs.Il This file was generated by 'gxv++' from 'exploiterPer.G'.Il

#include <stdio.h>#include <sys/param.h>#include <sys/types.h>#include <xview/xview.h>#include <xview/panel.h>#include <xview/textsw.h>#include <xview/xv xrect.h>#include "exploiterPer_ui.h"

Il includes ajoutes#include <iostream.h>#include <fstream.h>#include <stdlib.h>#include <string.h>#include <gfm.h>#include <gfm_ui.h>#include <strstream.h>#include <math.h>#include <X11/Xlib.h>#include "canevas.h"#include "parametres.h"

IlIl constantesIl#define LONGUEURMOT#define LONGUEURLIGNE#include <group.h>

801024

Il longueur du nom d'un fichier

voidvoidvoid

afficher_courbe_quantdisp(panel_item, int, Event *);afficher courbe satisfact(Panel item, int, Event *);afficher=courbe=satannuelle(panel_item, int, Event *);

IlIl Global object definitions.IlexploiterPer_window1_objectsgfm-popup_objects

Exploiterper_window1;*MenQteDes, *MenQteObt, *MenPoids;

Page 60: Simulation de l'exploitation des périmètres irrigués

char *nomficQO = new char[LONGUEURMOT)ichar *nomficQD = new char[LONGUEURMOT)ichar *nomficP = new char[LONGUEURMOT)ichar *nomficSG new char[LONGUEURMOT)ichar *nomficUE = new char[LONGUEURMOT)ichar *nomficUT = new char[LONGUEURMOT);char *nomficQNt new char[LONGUEURMOT)ichar *nomficQnt = new char[LONGUEURMOT)ichar *nomficQdt = new char[LONGUEURMOT)ichar *nomficSatGlobAnn = new char[LONGUEURMOT)ichar *nomficMoyDecPos = new char[LONGUEURMOT)ichar *nomProbaExp = new char[LONGUEURMOT)ichar *nomVarSG = new char[LONGUEURMOT);fstream ficQteObt, ficQteDes, ficPoids;char *cheminMatriceDesiree = REPMATDES;char *cheminMatriceObtenue = REPMATOBTichar *cheminMatricePoids = REPMATPOIDS;char *fichierTemp;char *couleurSatisfaction(6) = {"Steel Blue", "Cyan", "Green", "Yellow", "Gold", "Red"};int T, M, N, nbAnnees, passage, cptAn;Ilint tailleFenLissageSatisfaction = 10;const float margeCrolssance = .Siconst int ecartMax = tEvaluationiIl variables d'affichagedouble moySGsim = 0, moyQGsim = Oi

finclude "simulation.h"

#ifdef MAIN

IlIl Instance XV_KEY_DATA key. An instance is a set of relatedIl user interface objects. A pointer to an object's instanceIl is stored under this key in every object. This must be aIl global variable.IlAttr_attribute INSTANCEiSimulation maSimuliCanevas fenDecision, fenSatisfactionifloatArray TabSatGlobAnn, TabMoyDecPos, TabQteGlobAnniintArray TabVarPosSatis, TabVarNegSatisi

#include "utilitaires.cc"

Page 61: Simulation de l'exploitation des périmètres irrigués

main(int argc, char **argv){

IlIl Initialize XView.Ilxv init(XV INIT ARGC PTR ARGV, &argc, argv, NULL);INSTANCE -xv_unique=key();

IlIl Initialize user interface components.Il Do NOT edit the object initializations by hand.Ilstrcpy(nomficSG, REPTRAVAIL);strcat(nomficSG, "ficSG");strcpy(nomficUE, REPTRAVAIL);strcat (nomficUE, "ficUE");strcpy(nomficUT, REPTRAVAIL);strcat(nomficUT, "ficUT");strcpy(nomficQNt, REPTRAVAIL);strcat(nomficQNt, "ficQNt");strcpy(nomficQnt, REPTRAVAIL);strcat(nomficQnt, "ficQnt");strcpy(nomficQdt, REPTRAVAIL);strcat(nomficQdt, "ficQdt");strcpy(nomficSatGlobAnn, REPTRAVAIL);strcat(nomficSatGlobAnn, "nomficSatGlobAnn");strcpy(nomficMoyDecpos, REPTRAVAIL);strcat(nomficMoyDecPos, "nomficMoyDecpos");strcpy(nomProbaExp, "./resultats/base/");strcat(nomProbaExp, "probaCpt.txt");strcpy(nomVarSG, "./resultats/base/");strcat(nomVarSG, "cptVarSG.txt");Exploiterper_windowl.objects_initialize(NULL);MenQteDes = gfm_initialize(NULL,NULL,"Chargement Quantites Desirees");MenQteObt = gfm initialize(NULL,NULL,"Chargement Quantites Globales");MenPoids = gfm_"initialize(NULL,NULL,"Chargement Matrice Interets");

IlIl Turn control over to XView.Ilxv_main_loop(Exploiterper_windowl.windowl);exit (0) ;

#endif

Page 62: Simulation de l'exploitation des périmètres irrigués

IlIl Notify callback function for 'button_choix_mat_qte_cons'.IlvoidpresenterChoixMatriceCons(Panel_item item, Event *event){

exploiterPer windowl objects *ip = (exploiterPer wlndowl obJects *) xv get(item, XV KEY DATA, INSTANCE);gfm activate(MenQteObt,cheminMatriceObtenue,"".*$", filter callback, callbackQteObt, NULL,GFM_LOAD);fputs("exploiterper: presenterChoixMatriceCons\n", stderr);

Il gxv_start_connections DO NOT EDIT THIS SECTION

IlIl Notify callback function for 'button init'.IlvoidInitialisation(Panel item item, Event *event){

exploiterPer_windowl_objects *ip = (exploiterPer_windowl objects *) xv_get(item, XV_KEY_DATA, INSTANCE);

fputs("exploiterPer: Initialisation\n", stderr);if (passage != 0 ){ fenDecision. ColorierFGlobale ("White") ;

fenSatisfaction.ColorierFGlobale("White");}

else passage++;maSimul= Simulation(T,N,M,tailleMemoireExploitants);IISimulation Tr = maSimul;maSimul.chargerQteGlobale(nomficQO);maSimul.chargerDesExploitants(nomficQD);maSimul.chargerIntExploitants(nomficP);cptAn = 0;nbAnnees = (int)xv get(ExploiterPer windowl.slider annees, PANEL_VALUE);if (nbAnnees <= l)-nbAnnees = 1; - -TabSatGlobAnn = floatArray(nbAnnees);TabMoyDecPos = floatArray(nbAnnees);TabQteGlobAnn = floatArray(nbAnnees);TabVarPosSatis = intArray(nbAnnees);TabVarNegSatis = intArray(nbAnnees);Il gxv_start connections DO NOT EDIT THIS SECTION

xv_set (ExploiterPer_windowl.slider_QO, PANEL_INACTIVE, FALSE, NULL);

xv_set (Exploiterper_windowl.slider_annees, PANEL_INACTIVE, FALSE, NULL);

Page 63: Simulation de l'exploitation des périmètres irrigués

IlIl Notify callback function for 'button_choix_mat_qte_des'.IlvoidpresenterChoixMatriceDesir(Panel_item item, Event *event){

exploiterPer windowl objects *ip = (exploiterPer windowl objects *) xv get(item, XV KEY DATA, INSTANCE);gfm_activate(MenQteDes,cheminMatriceDesiree, "A.*$", filter_callback, callbackQteDes~NULL, GFM_LOAD);

fputs("exploiterper: presenterChoixMatriceDesir\n", stderr);

Il gxv_start_connections DO NOT EDIT THIS SECTION

IlIl Notify callback function for 'button_choix_mat-poids'.IlvoidPresenterChoixMatricePoids(Panel ltem item, Event *event){

exploiterPer windowl objects *ip = (exploiterPer windowl objects *) xv get(item, XV_KEY_DATA, INSTANCE);gfm_activate(Menpoids,cheminMatricepoids, "A.*$",-filter_callback, callbackPoids, NULL,GFM_LOAD);

fputs("exploiterper: PresenterChoixMatricePoids\n", stderr);

Il gxv_start_connections DO NOT EDIT THIS SECTION

IlIl Notify callback function for 'button fin'.Ilvoidquitter_application(Panel item item, Event *event){

exploiterPer_windowl objects *ip = (exploiterPer_windowl objects *) xv_get(item, XV_KEY_DATA, INSTANCE);

Page 64: Simulation de l'exploitation des périmètres irrigués

fputs("exploiterPer: quitter_application\n", stderr);exit (0) ;

Il gxv_start connections DO NOT EDIT THIS SECTION

IlIl Notify callback function for 'slider_QO'.IlvoidexploiterPer_windowl_slider_QO_notify_callback(panel_item item, int value, Event *event){

exploiterPer_windowl_objects *ip = (exploiterPer_windowl_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);

fprintf(stderr, "exploiterPer: exploiterPer_windowl_slider_QO_notify_callback: value: %d\n", value);

Il gxv_start_connections DO NOT EDIT THIS SECTION

fprintf(stderr, "value of slider_QO is %d\n", (int) xv_get(ExploiterPer_windowl.slider_QO, PANEL_VALUE»;

IlIl Notify callback function for 'slider annees'.IlvoidexploiterPer_windowl_slider_annees_notify_callback(Panel_item item, int value, Event *event){

exploiterPer_windowl_objects *ip = (exploiterPer_windowl_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);

fprintf(stderr, "exploiterPer: exploiterper_windowl_slider_annees_notify_callback: value: %d\n", value);

Il gxv_start_connections DO NOT EDIT THIS SECTION

fprintf(stderr, "value of slider annees is %d\n", (int) xv_get(Exploiterper_window1.slider_annees, PANEL_VALUE»;

/1

Page 65: Simulation de l'exploitation des périmètres irrigués

Il Notify callback function for 'setting_resultats_annuels'.IlvoidexploiterPer_windowl setting resultats annuels notify callback(Panel item item, int value, Event *event){

exploiterPer_windowl_objects *ip = (exploiterPer_windowl_objects *) xv_get(item, XV_REY_DATA, INSTANCE);

fprintf(stderr, "exploiterPer: exploiterPer_windowl_setting_resultats_annuels_notify_callback: value: %u\n", value);

Il gxv_start_connections DO NOT EDIT THIS SECTIONIl gxv_end_connections

IlIl User-defined action for 'setting_resultats_annuels'.Ilvoidafficher_courbe_quantdisp(Panel_item item, int value, Event *event){

exploiterPer_windowl_objects *ip (exploiterPer_windowl_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);

maSimul.CreerFicQNt(nomficQNt);maSimul.CreerFicQnt(nomficQnt);maSimul.CreerFicQdt(nomficQdt);maSimul.CreerFicUT(nomficUT);maSimul.DessinerResultat2(nomficQNt, nomficQnt, nomficQdt, cptAn);

fputs("exploiterPer: afficher courbe_quantdisp\n", stderr);

IlIl User-defined action for 'setting_resultats_annuels'.Ilvoidafficher_courbe_satisfact(Panel_item item, int value, Event *event){

exploiterPer_windowl_objects *ip (exploiterPer_windowl_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);

maSimul.CreerFicSG(nomficSG);maSimul.CreerFicUE(nomficUE);maSimul.CreerFicUT(nomficUT);maSimul.DessinerResultatl(nomficSG, nomficUE, nomficUT, cptAn);

fputs("exploiterPer: afficher_courbe_satisfact\n", stderr);

Il

Page 66: Simulation de l'exploitation des périmètres irrigués

Il Notify callback function for 'setting_resultats_globaux'.IlvoidexploiterPer_windowl setting resultats globaux notify callback(Panel item item, int value, Event *event){

exploiterPer_windowl_objects *ip = (exploiterPer_windowl_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);

fprintf(stderr, "exploiterPer: exploiterPer_windowl_setting_resultats_globaux_notify_callback: value: %u\n", value);

Il gxv_start_connections DO NOT EDIT THIS SECTION

if (value == 0){

afficher_courbe_satannuelle(item, value, event);

IlIl User-defined action for 'setting_resultats_globaux'.Ilvoidafficher_courbe satannuelle(Panel item item, int value, Event *event){

exploiterPer windowl objects *ip = (exploiterPer windowl objects *) xv_get(item, XV_KEY_DATA, INSTANCE);CreerFicSatGlob(nomficsatGlobAnn, nbAnnees); - -CreerFicMoyDecPos(nomficMoyDecPos, nbAnnees);maSimul.CreerFicUT(nomficUT);DessinerSatGlobAnn (nomficSatGlobAnn, nomficUT, nomficMoyDecPos, nbAnnees);fputs("exploiterPer: afficher_courbe_satannuelle\n", stderr);

IlIl fonction de deroulement global de l'algorithme pour une annee donneeIl

void{

deroulerAlgoSurAnnee( Simulation& sim, Canevas& fenDec, Canevas& fenSat, int annee, int T, int tpsEval, float marge, int ecart,fenDec.ColorierFGlobale("White");fenSat.ColorierFGlobale("White");for (int i=O; i < T; i++){ sim.DecisionExploitants(i);

sim.DessineDecExploit(fenDec,i);int nbExpEff = sim.calculDebitsEffectifs(i);sim.SatisfactionExploitants (i, tailleFenLissageSatisfaction);sim.DessineSatExploitants(fenSat,i);

Page 67: Simulation de l'exploitation des périmètres irrigués

sim.SatisfactionGlobale(i);sim.CalculPoidsDecExploitants (i,TabVarPosSatis, TabVarNegSatis,annee );if ( (1 != 0) && (i%tpsEval -- 0) )

{sim.ReajustementPoidsDecExploitants(marge, ecart);

}

sim.UtilisateurEffectif();sim.EcrireAbsOrd(fenSat,"Blue");sim.EcrireAbsOrd(fenDec,"Blue");sim.EcrireLegendeDecision(fenDec,"DECISIONS", "Blue", annee);sim.EcrireLegendeSatisfaction(fenSat,"SATISFACTIONS INDIVIDUELLES", "Blue", annee);TabSatGlobAnn[annee] = sim.SatisfactionAnnuelle();TabMoyDecPos[annee] = sim.MoyDecPositive();TabQteGlobAnn[annee] = sim.MoyQteGlob();cerr « "annee : "« annee« "\n";

IlIl Notify callback function for 'setting_run'.Ilvoidexploiterper_windowl_setting_run_notify_callback(Panel_item item, int value, Event *event){

exploiterPer windowl objects *ip = (exploiterPer windowl objects *) xv get(item, XV KEY DATA, INSTANCE);fprintf(stderr, "exploiterPer: exploiterper_windowl_settlng_run_notify=callback: value:-\u\n", value);fenDecision= Canevas (ExploiterPer windowl.windowl, ExploiterPer windowl.grille decisions);fenSatisfaction= Canevas (Exploiterper windowl.windowl, Exploiterper windowl.grllle satisfaction);if (value == 0) Il mode pas a pas - --{ if (cptAn < nbAnnees)

{ deroulerAlgoSurAnnee (maSimul, fenDecision, fenSatisfaction, cptAn, T, tEvaluation, margeCroissance, ecartMecptAn++;

} ;}

else{ int i = cptAn;

while (i < nbAnnees ){ deroulerAlgoSurAnnee (maSimul, fenDecision, fenSatisfaction, cptAn, T, tEvaluation, margeCroissance, ecartMax, Tat

cptAn = ++i;} ;

} ;maSimul.CalculNbPerEffObservee();maSimul.CalculFrequenceAttendue();maSimul.ImprimerEcart();rnaSimul.AfficherNumUtilisateurPassif();rnaSimul.print();TabSatGlobAnn.print();

Page 68: Simulation de l'exploitation des périmètres irrigués

maSimul.enregistrerProbaCompteur(nomProbaExp);enregistrerCptVarSG(TabVarPosSatis, TabVarNegSatis, nomVarSG);

Il moyenne de la satisfaction globale sur la periode de simulationfor (int k;O; k < nbAnnees; k++)

moySGsim += TabSatGlobAnn[k);moySGsim ; moySGsim 1 nbAnnees;cout « "\n\nMoyenne SG sur periode de simulation "« moySGsim « endl;

TabQteGlobAnn.print();Il moyenne de la quantite globale sur la periode de la simulation

for (k;O; k < nbAnnees; k++)moyQGsim +; TabQteGlobAnn[k);

moyQGsim ; moyQGsim 1 nbAnnees;cout « "\n\nMoyenne QG sur periode de simulation "« moyQGsim « endl;

Il gxv_start_connections DO NOT EDIT THIS SECTION

xv_set (Exploiterper_window1.slider_annees, PANEL_INACTIVE, TRUE, NULL);

xv_set (ExploiterPer_window1.slider_QO, PANEL_INACTIVE, TRUE, NULL);

IlIl Notify callback function for 'setting_resultats_annuels'.Ilvoidalgo_run(Panel item item, int value, Event *event){

exploiterPer_window1_objects *ip ; (exploiterPer_window1 objects *) xv_get(item, XV_KEY_DATA, INSTANCE);

fprintf(stderr, "exploiterPer: algo_run: value: %u\n", value);

Il gxv_start connections DO NOT EDIT THIS SECTION

if (value ;= 1){

afficher courbe_quantdisp(item, value, event);

if (value ;= 0){

afficher courbe satisfact(item, value, event);

Page 69: Simulation de l'exploitation des périmètres irrigués