chapitre 6 Le décideur, son organisation et son environnement
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.517Comparons 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.
Generated with WebMaker