• Aucun résultat trouvé

3.4 Conclusion

4.1.1 Un modèle d’économie monétaire de production

Une économie fermée

Toutes les grandeurs (monnaie, forces de travail, marchandises) qui circulent dans le modèle sont endogènes. Il n’y a pas d’échange avec l’extérieur.

La monnaie

Toute la monnaie qui circule dans le modèle est une monnaie de crédit. C’est une monnaie scripturale, un nombre inscrit dans les livres de comptes de la banque. Les

paiements se font par chèque ou par virement, les agents non bancaires ne manipulent jamais directement de monnaie. Le financement de la production est le seul objet du crédit. Les ménages n’ont donc pas accès au crédit.

Les marchandises

Toutes les entreprises produisent le même type de marchandise, qui est un bien de consommation. Pour les entreprises, ce bien est non périssable : il peut être stocké sans perte. En revanche pour les ménages l’achat vaut consommation immédiate.

Le capital productif

Le stock de capital productif des entreprises — les machines — est exogène. Il n’y a pas d’investissement productif, pas d’innovation, et donc pas de croissance.

Le temps

Chaque boucle du programme correspond à une période de base du modèle, dont la durée est définie comme celle qui sépare deux paiements consécutifs des revenus (salaires et dividendes) aux ménages. Nous dirons donc que la durée d’une période est égale à un mois.

Cela ne signifie pas que tous les événements intervenant au cours d’une période sont simultanés. La structure interne de la période est elle-même séquentielle et nous distinguons, au sein d’une période t, 8 instants (notés t + 07, t + 17,. . . jusqu’à t + 77) correspondant à 8 états distincts du système. Le diagramme de séquence des flux monétaires (figure 4.1, page 85) inspiré des diagrammes de séquence UML2, donne une représentation graphique de l’enchaînement chronologique des états et des transitions monétaires au sein d’une période de base t.

Si la périodicité des revenus est fixée par la structure du modèle, les deux autres durées importantes — la durée du cycle de production, la durée du crédit — sont des paramètres exogènes, exprimés en nombre de périodes de base.

2. L’Unified Modeling Language (UML) est un langage de modélisation graphique. Dans sa version 2, il définit 13 types de diagrammes, structurels, comportementaux ou dynamiques, dont les diagrammes de séquence. A l’origine étroitement lié à la programmation orientée objet et au développement logiciel, son application ne se limite plus au seul domaine informatique.

t + 0 7 t + 17 t + 2 7 t + 37 t + 4 7 t + 57 t + 6 7 t + 77 DF,t DB,t NLt WBt St INTPt RLt Dividendes Dividendes Nouveaux crédits Salaires Consommation Intérêts payés Crédits remboursés MH,t MF,t MH,t+1 MF,t+1

Ménages Entreprises Banque

+

+

-

-

4.1.2

Un modèle décentralisé

Pour modéliser le caractère décentralisé des économies de marché, nous avons choisi de peupler le modèle d’agents multiples, hétérogènes, autonomes et concur- rents.

Multiplicité

Les agents qui peuplent le modèle sont de trois types : ménage, entreprise, banque. Le nombre d’agents de chaque type est un paramètre exogène.

Les ménages : Ils sont normalement les agents les plus nombreux. Les principales fonctions des ménages sont le travail et la consommation. Pour pouvoir consommer, les ménages doivent avoir un revenu ; pour avoir un revenu, ils doivent avoir un travail ou être propriétaires d’une entreprise ou de la banque. Les ménages sans emploi ne reçoivent aucun revenu. Quelle que soit sa situation matérielle et monétaire, un ménage ne disparaît pas.

Les entreprises : Elles sont normalement moins nombreuses que les ménages, puisque chaque entreprise peut employer plusieurs ménages. La principale fonction des entreprises est la production. Chaque entreprise a un propriétaire unique, un ménage choisi au hasard parmi tous les ménages qui peuplent la simulation. Chaque entreprise s’endette, embauche ou licencie, produit, vend, rembourse ses crédits et verse des dividendes à son propriétaire. Une entreprise peut être mise en faillite et disparaître. Elle est alors automatiquement remplacée, un an plus tard, par une entreprise identique (de même taille et de même productivité).

La banque : Elle diffère des ménages et des entreprises car c’est une banque unique, représentative de l’ensemble du secteur bancaire. En effet, dans une économie avec monnaie endogène, le secteur bancaire est généralement supposé être accommo- dant, l’initiative de la création monétaire via le crédit revenant aux entreprises3, la désagrégation du secteur bancaire n’a donc a priori qu’un intérêt secondaire pour l’étude de la dynamique macroscopique de l’économie modélisée.

La banque peut être mise en faillite et disparaître. Comme c’est une banque unique et que sa présence est indispensable, la faillite bancaire est donc synonyme de la crise systémique et la simulation s’interrompt.

Echelle du modèle : Si le modèle ne peut contenir qu’une seule banque, il peut en revanche supporter théoriquement n’importe quel nombre d’entreprises et de mé- nages. Comme notre modèle se situe à un niveau d’abstraction encore très élevé, il ne peut prétendre constituer un modèle de décision et de prévision, il est donc in- utile de le peupler avec des populations de taille réaliste. L’expérience nous prouve qu’avec quelques centaines d’entreprises et quelques milliers de ménages, il est pos- sible de conduire des simulations très rapides et présentant des résultats suffisamment robustes pour pouvoir être exploités.

Hétérogénéité

Les agents sont hétérogènes d’abord parce qu’ils sont divisés en trois classes d’agents (ménages, entreprises, banque) aux fonctions différentes. Cependant, c’est l’hétérogénéité au sein d’une même classe d’agents qui est importante pour la modé- lisation du caractère décentralisé des économies de marché.

Nous ne mettons pas l’accent sur les caractéristiques exogènes des agents — leurs dotations initiales, les paramètres qui fixent leur comportement — mais plutôt sur l’hétérogénéité endogène, celle qui découle de l’activité des agents eux-mêmes et qui se traduit d’un agent à un autre par des états différents (employé ou chômeur, bon ou mauvais débiteur. . .) ou des niveaux différents (stocks d’inventaires, encaisses liquides, endettement. . .).

Autonomie

Les agents sont modélisés comme des agents réactifs simples. Les agents n’ont accès à aucune information macroéconomique (telle que le niveau moyen des prix ou des salaires, le taux inflation ou de chômage. . .). Chaque agent ajuste son compor- tement sur la base des déséquilibres constatés entre son état interne et ses objectifs. Les objectifs des agents sont définis par rapport à des niveaux normaux exogènes et il n’y a pas de processus d’apprentissage. Les fonctions de réaction des agents sont partiellement stochastiques.

Concurrence

Les réseaux sociaux occupent une place limitée dans le modèle. Les relations sociales se réduisent aux relations employeur–employé et fournisseur–client entre ménages et entreprises et à la relation créancier–débiteur entre la banque et les en- treprises. De plus, les relations employeur–employé et fournisseur–client sont des relations faibles, remises en cause très régulièrement sur le marché des biens et le

marché du travail. Il n’y a aucune relation horizontale directe d’agent à agent d’une même classe — aucune solidarité de classe — toutes les relations entre ménages et entre entreprises se réduisent à des relations indirectes de concurrence par l’intermé- diaire des marchés.

4.1.3

Un modèle informatique

Compte tenu de la complexité du modèle projeté, il nous a paru plus simple de construire entièrement le modèle plutôt que de s’appuyer sur une plateforme multi- agents existante. Nous avons donc dû programmer entièrement le modèle, y compris l’interface qui permet de le piloter et d’observer les résultats. Nous avons choisi pour cela le langage Java.

Un langage de haut niveau

Le langage Java est un langage de programmation orienté objet de haut niveau. Selon Axtell (2004, p. 12), c’est un langage susceptible de « repousser les limites » des modèles multi-agents. Il est moins rapide que le C++, mais plus facile à programmer : le programmeur est — presque — débarrassé des soucis de gestion de la mémoire. Moins préoccupé par les aspects techniques et par les bugs, le programmeur peut mieux se concentrer sur les questions de modélisation.

Un langage multi-plateformes

Le langage Java fonctionne indifféremment sur toute sorte de plateforme. On peut exécuter un programme Java sur n’importe quel type d’ordinateur. Il en est donc de même pour le code source : il est indépendant de la machine sur laquelle il a été écrit.

Le langage Java est donc en un sens universel ; c’est important puisque l’on sait que le langage de programmation du modèle en est le langage théorique naturel. Le langage Java est donc particulièrement adapté à la communication scientifique. Il permet d’élargir l’horizon d’utilisation et d’extension du modèle.

Interface graphique

Le langage Java dispose de nombreuses bibliothèques logicielles facilitant la construc- tion d’une interface graphique. En particulier la bibliothèque libre JFreeChart offre une très grande variété de graphiques adaptés à la représentation dynamique de données économiques.

Application web

Le langage Java permet enfin de développer des applications exécutables en ligne. Il est possible d’installer le modèle à l’intérieur d’une page web, et dans n’importe quel navigateur.