[Next] [Previous] [Up] [Top]

chapitre 6 Le décideur, son organisation et son environnement

6-2.3 Test du langage de simulation


Le modèle suivant a été tiré de Allan et Stahel (1983). Il représente un modèle "a priori" sur la guerre en Afghanistan avec une attention spéciale portée à la question de savoir si (et sous quelles conditions) la guérilla peut survivre. Etant donné qu'il n'existait pas que très peu de données sur ce conflit en 1981-82, les paramètres sont des estimations fondées sur des données empiriques que l'on possède sur d'autres conflits estimés comparables. Pour estimer la problématique "la guerilla peut-elle survivre", le modèle doit a-priori estimer les chances de la guérilla de façon pessimiste. La structure de base du modèle est reproduite

dans la figure 6-2 qui montre les niveaux les plus importants du système. Les flux entre eux sont représentés à l'aide des flèches.

Dans notre langage de simulation numérique discrète d'événements, les niveaux doivent être bien différenciés des flux à cause de l'algorithme de calcul. Le modèle ci-dessus présente ce type de structure. Par contre, la manière de définir les objets de simulation (en termes traditionnels: les équations et les paramètres) reste très souple. C'est le modéliseur qui décide s'il préfère un modèle très compact ou très désagrégé avec beaucoup de variables. Ici, nous avons choisi de travailler avec relativement beaucoup d'objets par rapport au modèle d'origine. L'idée derrière ce choix est qu'il sera plus simple de les manipuler avec d'autres mécanismes, par exemple des systèmes d'inférence ou des simulations orientée objets. Voici les "équations" qui définissent le modèle:

  ; --- guerilla 
  (def-level ?guerilla sbs (*gen*) ini (155000) 
             eq (+ ?guerilla ?guer-gains (- ?guer-losses))) 
  (def-flow ?guer-gains sbs (*gen*) ini (0) 
            eq (* ?guer-gain-r ?guer-pot)) 
  (def-parm ?guer-gain-r sbs (*gen*) ini (0.01)) 
  (def-flow ?guer-losses sbs (*gen*) ini (0) 
            eq (* ?guer-loss-r ?guerilla (+ ?ussr ?afgh))) 
  (def-parm ?guer-loss-r sbs (*gen*) ini (0.00000035)) 
  ; -- potential guerilla 
  (def-level ?guer-pot sbs (*gen*) ini (1470000) 
             eq (- ?guer-pot ?guer-gains)) 
  ; -- rest of population 
  (def-level ?rest-pop sbs (*gen*) ini (10850000) 
             eq (- ?rest-pop ?army-recruits ?genocide ?refugees)) 
  (def-parm ?army-recruits sbs (*gen*) ini (1500)) 
  (def-flow ?genocide sbs (*gen*) ini (0) 
            eq (* 0.0011 ?rest-pop)) 
  (def-flow ?refugees sbs (*gen*) ini (0) 
            eq (+ 120803)) 
  ; -- ussr army 
  (def-level ?ussr sbs (*gen*) ini (0) 
             eq (+ ?ussr ?ussr-flow (- ?ussr-losses))) 
  (def-flow ?ussr-flow sbs (*gen*) ini (0) 
            eq (- ?ussr-objective ?ussr)) 
  (def-parm ?ussr-objective sbs (*gen*) ini (85000)) 
  (def-flow ?ussr-losses sbs (*gen*) ini (0) 
            eq (* 0.003 ?guerilla)) 
  ; -- afghanistan 
  (def-level ?afgh sbs (*gen*) ini (35000) 
             eq (+ ?afgh ?army-recruits (- ?afgh-losses))) 
  (def-flow ?afgh-losses sbs (*gen*) ini (0) 
            eq (* 0.006 ?guerilla)) 
  ; -- observations 
  (def-obs ?guer-tot-losses sbs (*gen*) ini (0) 
           eq (+ ?guer-tot-losses ?guer-losses)) 
  (def-obs ?ussr-tot-losses sbs (*gen*) ini (0) 
           eq (+ ?ussr-tot-losses ?ussr-losses)) 
  (def-obs ?afgh-tot-losses sbs (*gen*) ini (0) 
           eq (+ ?afgh-tot-losses ?afgh-losses)) 
Voici les résultats d'une simulation:

==> (sim-plot *gen* 72) 
a = ?GUERILLA        min: 167801.25                max: 252302.585649685 
b = ?GUER-POT        min: 712937.31430302          max: 1455300. 
c = ?REST-POP        min: 1552781.45434478         max: 1.0715762e7 
d = ?USSR            min: 84243.092243051          max: 84535. 
e = ?AFGH            min: 35570.                   max: 43998.9650902446 
f = ?GUER-GAINS      min: 7201.38701316182         max: 14700. 
g = ?GUER-LOSSES     min: 1898.75                  max: 10938.1432205581 
h = ?GENOCIDE        min: 1844.62198396161         max: 11935. 
i = ?REFUGEES        min: 120803                   max: 120803 
j = ?USSR-FLOW       min: 465.                     max: 85000 
k = ?USSR-LOSSES     min: 465.                     max: 756.907756949056 
l = ?AFGH-LOSSES     min: 930.                     max: 1513.81551389811 
m = ?GUER-TOT-LOSSES min: 1898.75                  max: 712241.155119586 
n = ?USSR-TOT-LOSSES min: 465.                     max: 49500.5174548777 
o = ?AFGH-TOT-LOSSES min: 930.                     max: 99001.0349097554 

STEP   1: ** ea  *                     g             d     * 
STEP   2: **    e  a*                   g         d       ** 
STEP   3: * *     e   a *                 g   d          **  
STEP   4: * *       e     a*               dg           **   
STEP   5: *  *        e      a *       d     g         **    
STEP   6: *  *          e        *   d         g      * *    
STEP   7: *   *          e        da*           g    * *     
STEP   8: *    *           e   d      a*          g * *      
[ ................ ]
STEP  66: * **                 d  a    *           ge    *   
STEP  67: * **                  da    *            g  e  *   
STEP  68: ***                   ad   *             g   e  *  
STEP  69: **                   a  d *             g      e * 
STEP  70: **                  a    *              g       e* 
STEP  71: *                  a    * d             g         * 
Le résultat de ce modèle était que la guérilla survivra (lettre a ci-dessus). Cela a été confirmé par l'histoire. Voici quelques valeurs de deux variables importantes d'observation, les pertes totales de la guérilla et des soviétiques.

==> (list-sim *gen* ?guer-tot-losses ?ussr-tot-losses) 
SIM-I> LIST OF SIMULATION BASE *GEN* OBJECTS 
         ?GUER-TOT-*?USSR-TOT-* 
MAX     : 712241.155  49500.517 
MIN     :   1898.750    465.000 
STEP   0:   1898.750    465.000 
STEP   1:   8952.569    968.404 
STEP   2:  16349.533   1494.305 
STEP   3:  24069.475   2041.238 
STEP   4:  32091.955   2607.801 
STEP   5:  40397.181   3192.659 
......... 
STEP  61: 619066.486  43208.591 
STEP  62: 628657.773  43861.449 
STEP  63: 638188.840  44509.182 
STEP  64: 647659.400  45151.735 
STEP  65: 657069.196  45789.055 
STEP  66: 666418.003  46421.093 
STEP  67: 675705.623  47047.802 
STEP  68: 684931.887  47669.138 
STEP  69: 694096.644  48285.061 
STEP  70: 703199.769  48895.533 
STEP  71: 712241.155  49500.517 
Comparons ces résultats avec les résultats obtenus dans la simulation continue originale de Allan et Stahel. Avec leur méthode de calcul, ils arrivent après 72 cycles à 712'000 pertes pour la guérilla et à 49'000 pertes pour les Soviétiques. Notre modèle arrive à ces chiffres un cycle plus tôt, ce qui est un résultat excellent. En résumé, on peut donc formuler l'hypothèse que notre système calcule avec suffisamment de précision les résultats que l'on pourrait obtenir avec un langage de simulation utilisant des méthodes de calcul plus sophistiqués. Ces langages de simulation offre plusieurs avantages par rapport au notre, notamment la possibilité d'estimation de paramètres ce qui est crucial en simulation numérique de systèmes dynamiques. Cependant, une fois qu'un tel modèle a été créé, on peut le transporter sans grand danger dans notre système qui possède une flexibilité de modélisation très intéressante par rapport aux modèles mathématiques fermés. L'élément "discret" (c'est à dire les décisions) est primordial dans tout système social et une simulation mathématique ne peut pas le modéliser de la même façon*1.


THESE présentée par Daniel Schneider - 19 OCT 94

Generated with WebMaker