|
|
SIFOA: Simulation of Information Flows and Organizational Architecture
|
Première Partie (2006) : Construction du Simulateur
Version : Mai 2006 (document provisoire, en travaux …)
Ce document est une synthèse de mon blog “Architecture Organisationnelle” sur le sujet de la simulation des flux d’information dans une entreprise. Le blog a été ouvert en tant que « blog-note » pour décrire, expliquer et discuter d’un projet de simulation et d’étude : SIFOA. Ce projet est né il y a trois ans, en 2004, et il est ambitieux à plusieurs titres. D’une part, je ne suis pas un expert des sujets tels que la théorie de la communication ou l’organisation des entreprises. J’ai commencé d’entreprendre mon éducation en 2004, et je suis preneur de tout commentaire, suggestion et proposition pour enrichir ma culture. D’autre part, il s’agit d’un sujet « risqué », puisque rien de garantit l’existence d’un modèle tractable et pertinent. Autrement dit, rien ne permet de penser que les couches successives de simplification nécessaires pour produire un modèle qui soit, d’une part, implémentable sur un ordinateur, et d’autre part analysable suivant un nombre raisonnablement limité de dimensions, ne finissent pas par décorréler les résultats de la simulation de toute réalité. Pour finir, il s’agit d’un effort sur une très longue durée, probablement une dizaine d’année.
Pourquoi proposer une synthèse du blog ? Parce que les idées et la structure du modèle évoluent et qu’il devient difficile de comprendre l’ensemble en lisant uniquement la suite des messages. Le principe est donc de mettre à jour périodiquement (quelques fois par an), une synthèse des messages publiés, agrémentée de quelques figures réalisées pour des présentations de ce programme de recherche.
Ce document est organisé comme suit. La section 2 rappelle les motivations originelle de ce travail, à savoir l’étude d’un ensemble de règles d’organisation d’entreprise (que nous appellerons les « leviers » du consultant en organisation), au travers de la propagation de l’information dans l’entreprise. La section 3 propose un modèle du fonctionnement de l’entreprise, construit autour de la notion de processus métier.
La section suivante décrit le modèle de l’organisation que nous utilisons. Il représente l’entreprise comme un ensemble d’agents, réparti en deux catégories. Les agents productifs sont organisés en unités, tandis que les agents de coordination sont regroupé dans la catégorie « management », elle-même décomposée en une gestion hiérarchique verticale (contrôle-commande) et une partie de pilotage des processus.
La section 5 précise traite des flux d’information. C’est la section la plus importante et la plus originale du document, puisque le traitement des flux d’information est le cœur de notre approche. Il s’agit donc de caractériser les différents canaux de transfert d’information.
La section 6 présente les principes de la simulation par « Jeux et apprentissage ». La section 7 propose une description sommaire du simulateur (c’est un sujet qui n’a pas encore été abordé dans le blog).
Le point de départ de ce travail est la conviction que, dans notre « société de la connaissance » ou le travail de chacun est l’acquisition, la transformation et la diffusion d’information, il existe une relation structurelle entre l’organisation de l’entreprise et sa capacité à transporter les flux d’information. En particulier, je cherche à valider l’hypothèse qu’il est possible de qualifier la pertinence d’une réorganisation à partir des impacts souhaités sur le transfert d’information.
Un des objectifs concrets de ce travail est d’étudier 5 « leviers » de l’architecture des organisations. Ces cinq leviers font partie de la « boite à outil » des consultants en managements:
|
Réduire, ou augmenter, le nombre et la durée des « comités », c’est-à-dire des réunions planifiées | |
|
Aplatir l’organisation (en augmentant de nombre de « direct report ») | |
|
Introduire une forme d’organisation matricielle pour piloter les processus transverses de l’entreprise | |
|
Eliminer les « buffers » pour construire une organisation « lean and mean » | |
|
Augmenter la polyvalence, ou inversement, embaucher/former des spécialistes. |
Ce qui est intéressant, c’est que chaque
idée est bonne, mais que chaque fois, l’idée contraire peut être également
adaptée à une situation donnée. Mon objectif est donc de comprendre l’impact de
ces leviers, non pas pris de façon isolée, mais globale. Il est probablement
illusoire de chercher une théorie complète, nous allons le voir, chaque levier
joue de façon subtile et multiple, en fonction du contexte et de la culture
d’entreprise. En fait, il serait probablement plus pertinent, pour un sociologue
des organisations, de pousser l’analyse levier par levier.
Nous allons, au contraire, étudier les impacts combinés selon l’axe des flux
d’information. Cette approche, dans la quelle l’organisation est vue comme un
ensemble d’agents échangeant des flux d’information suivant plusieurs canaux, et
pour laquelle la ressource critique est le temps, ne peut que produire des
vérités simples.
Dans ce message, je me contente d'une réflexion générale sur les effets de ces leviers en terme d'emploi du temps (au sens littéral) et de flux d'information.
Il n’y a pas de question sur l’utilité des réunions planifiées:
| Priorisation des sujets (file d’attente implicite) | |
| Mutualisation des flux (1 émetteur -> n récepteurs) | |
| Capacité à planifier (vs. Réunions spontanées) | |
| Mutualisation des sujets (éviter le temps de « setup/déplacement » ) |
La question est plutôt de savoir comment mesurer cette efficacité pour la contraster avec des inconvénients:
| Crée une structure rigide qui n’est pas forcément adaptée aux urgences | |
| Tendance à accumuler des acteurs inutiles | |
| Tendance à remplir l’espace temps, au détriment du reste |
Cela pose la question de l’efficacité de la
réunion en tant que canal de communication, qui est une des mesures de la
performance de la culture d’entreprise.
L’idée qu’il faut aplatir les pyramides de management est particulièrement à la mode depuis 10 ans. Elle a été popularisée par un certain nombre de grands patrons américains et s’est transformé en véritable dogme. Parmi les avantages évidents, on trouve:
| Temps de propagation (descente des consignes) raccourci | |
| Temps d’arbitrage des conflits prioritaire raccourci (attention la bande passante est identique) | |
| Favorise une culture de la délégation |
Il faut néanmoins balancer par un certain nombre d’effets pervers :
| Moins de temps disponible pour le coaching de ses « direct report » : l’effet « binôme » est moins fort et le contrôle est plus lâche | |
| Moins de managers: moins de capacité à transporter de l’information dans l’organisation | |
| In fine, moins de temps personnel pour chaque manager |
La question ouverte est : est-il possible d’étudier cet impact d’un point de vue quantitatif ou est-ce avant tout un problème qualitatif qui revient à connaître la valeur du « temps libre consacré à la réflexion et à l’anticipation » de chaque manager. Même si il y a un consensus à peut près égal dans les ouvrages de management sur le fait que 20 à 30% du temps d’un « top manager » doit être consacré au futur et à la réflexion, voire à la formation (cf. P. Senge), personne ne s’aventure à quantifier une telle proposition. En attendant une hypothétique étude à la M. Porter sur la corrélation entre la valeur crée par l’entreprise et le temps qu’elle passe à imaginer son futur, cette piste semble hasardeuse et spéculative.
Ce sujet est parfaitement expliqué et traité
par Galbraith dans son livre fondateur « Designing Organizations ». Il
montre précisément ce qui est la thèse de ce travail: les avantages et
inconvénients de chaque modèle d’organisation, et les traits caractéristiques
qui prédisposent à l’une ou l’autre.
Dans la réalité, le sujet de l’organisation matricielle est complexe car il y a
de nombreux axes: géographiques, segmentation par ligne de marché, par fonction
ou compétence, par processus, etc. Dans le cas de la modélisation SIFOA, il ne
reste que deux axes mais ils sont suffisants pour évaluer certains concepts de
base et voir si les « perles de sagesse » recueillies par Galbraith peuvent se «
démontrer » à partir d’un modèle quantitatif.
Nous allons donc supposer que nous faisons cohabiter deux rôles de management (qui sont ou non exécutés par les mêmes individus, cela échappe à la précision de notre modèle) : (1) le rôle de pilotage hiérarchique (vertical) et d’optimisation des ressources (2) le rôle de pilotage (horizontal) des processus. En faisant varier la répartition de l’énergie disponible, nous pouvons représenter des organisations plus ou moins « matricielles ».
L’avantage de l’organisation « par processus » est classique:
| Augmente la capacité de transfert de flux pour le pilotage du processus | |
| Pilotage plus réactif, évite les montées/descentes dans l’organisation | |
| Favorise l’amortissement
horizontal des aléas, en faisant jouer la transversalité de l’organisation Néanmoins, une organisation traditionnelle de « bureaucratie » possède des avantages qui sont également classiques: | |
| Une structure stable (fonctionnelle) qui évite les « overheads » | |
| Peut éviter l’apparition d’une population de « coordinateurs » qui génèrent leur propre activité (le phénomène du « passeur de plats ») | |
| Favorise l’optimisation verticale et l’absorption des aléas par un meilleur pilotage des ressources. |
La question du « juste effectif » est une question éternelle dans l’optimisation des organisations. D’un coté, nous avons l’école de pensée « lean & mean », du « right-sizing » qui cherche à :
| Réduire les coûts associés aux effectifs | |
| Eviter la dispersion, c’est-à-dire : la capacité à générer sa propre activité, le « bruit » engendré par le sureffectif | |
| Se concentrer sur le « core » business et externaliser ce qui peut être (mieux) fait à l’extérieur |
Même si cette approche est facile à comprendre et à justifier, il existe des facteurs importants de succès qui, au contraire, s’accommodent d’un « léger sureffectif », ou, autrement dit, sont difficiles à obtenir dans une organisation trop « maigre »:
| La capacité à anticiper, à être réactif | |
| La capacité à capitaliser, à apprendre |
Cette question du dimensionnement
est malheureusement une question complexe, qui ne se traite correctement que
dans le contexte d’une industrie, voire d’une entreprise. Par exemple, on peut
reprendre la remarque précédente : il est très difficile de valoriser le temps
disponible pour l’apprentissage et la réflexion. L’impact positif ou négatif du
sureffectif dépend de l’activité et des conditions de travail.
Néanmoins, dans le cadre d’une évaluation SIFOA des capacités de transfert
d’information, il est facile de simuler des scénarios qui testent la réactivité
(rapidité d’adaptation) et la flexibilité (capacité d’adaptation) d’une
organisation.
Cette question est la question qui a fait couler le plus d’encre depuis la re-visite du « Taylorisme » que ce soit sur les chaînes de montage ou dans les « bureaucratie ». Comme la question précédente, c’est une question très difficile à modéliser et qui dépend d’un très grand nombre de facteurs. A ce titre, il est imprudent de vouloir la traiter de façon générique, puisque ces facteurs varient d’une industrie à l’autre et d’une culture d’entreprise à l’autre. Néanmoins, les « bases du Taylorisme » restent d’actualité pour une grande partie des activités humaines:
| La spécialisation, c’est-à-dire le fait de confier les mêmes tâches aux mêmes personnes, produit une courbe d’apprentissage accélérée et permet d’atteindre un plus grand niveau de compétence | |
| L’efficacité augmente avec le niveau de compétence, en délai et en qualité. |
Mais ..
| La polyvalence des acteurs (non-spécialisation) est un facteur de flexibilité | |
| La non-spécialisation est un facteur de motivation (diversité des activité et vsion plus globale) | |
| La polyvalence diminue le besoin de coordination de bout-en-bout (elle permet des organisations plus simples) |
Notre seule ambition ici est d’étudier l’impact réciproque de la spécialisation et de l’organisation de l’entreprise. L’objectif est de mesurer l’effet positif de la polyvalence en terme d’organisation du travail, qu’il conviendra de comparer avec les bénéfices de la taylorisation propre à chaque métier. Il ne peut donc pas y avoir de conclusion générique, mais il est peut-être possible de caractériser des liens génériques entre flexibilité et polyvalence.
Le modèle que je propose est un modèle
générique d’entreprise centré sur les processus. Il s’agit d’une abstraction du
fonctionnement de l’entreprise, qui fait apparaître les flux d’information entre
les acteurs et qui explicite le couplage (action <-> information), c’est-à-dire
quels flux sont produits par quelles actions et comment l’efficacité du
transfert d’information influe sur le résultat des actions.
Ce modèle générique repose sur des paramètres internes que nous ne connaissons
pas (coût du travail, impact de la compétence sur la productivité, efficacité
des canaux de communication, etc.), c’est pour cela que nous avons développé
l’approche « Simulation par Jeux & Apprentissage » présentée dans les la section
8.
Le modèle de fonctionnement des processus est le socle de ma démarche : si ce modèle ne vous convainc pas, rien de ce qui va suivre n’a le moindre intérêt. Il sert à formuler les interactions entre les différents « leviers » sur l’organisation de l’entreprise. C’est donc un exercice délicat en terme d’équilibre :
| si le modèle est trop complexe, personne n’y comprendra rien et le château de cartes s’écroule, | |
| si le modèle est trop simple, il ne traduira pas les interactions organisation / flux / processus. |
La structure du modèle (modéliser une entreprise par ses processus) est classique et repose, par exemple, sur les livres dont j’ai cité une partie précédemment. Ce qui est plus original, c’est la modélisation quantifiée des flux d’information associés et des interactions. La question qu’il faudra se poser à la fin du message est : « si nous connaissions les paramètres, ce modèle pourrait-il décrire le fonctionnement d’une entreprise ? »
Les ressources sont séparées en deux catégories, U pour les agents qui effectuent des activités et H pour les agents qui participent au management et au transfert d’information. Cela signifie que nous avons « virtualisée » l’activité de management et pilotage de chaque unité, et l’avons rattaché à l’entité globale de management. Ce regroupement évite de se poser des questions d’allocation de ressource de management, il représente une abstraction idéale du fonctionnement et rend la simulation plus simple.
Le cœur du modèle est un ordonnanceur de blocs de temps, en fonction de priorités. Comme nous raisonnons de façon macroscopique, il n’est pas possible de modéliser des chaînes de propagation. Si un bloc représente un ensemble de réunions, nous ne savons pas « à quel moment la décision de réallouer des ressource va être prise ». En ne représentant pas dans le modèle des éléments qui dépendent du temps de propagation, nous faisons également une simplification qui est une idéalisation du fonctionnement de l’entreprise.
Les processus sont simplement décrits comme des enchaînements de tâches (cf. figure). Les tâches sont effectuées par des unités. Une tâche est spécifiée par une charge de travail, en jour-homme, une compétence associée et un niveau minimal pour cette compétence. Le travail peut être réparti en un nombre variable d’agents, mais il y a un minimum et un maximum (le minimum pour des raisons d’efficacité, le maximum pour gérer la complexité du travail en commun : on n’écrit pas un rapport avec 100 personnes qui travailleraient 10 minutes).
Le processus crée de la valeur, qui est supposée dépendre du temps de façon simple : la valeur est nominale si le processus est effectué avant la date objectif, puis décroît linéairement jusqu’à une date limite (et vaut 0 au-delà).
|
début |
|
Fin
|
|
valeur
|
|
Priorité = f(vMax, proba) |
|
Skill i, level l,
Quantité = temps
#agents: [min,max] |
|
Tache 1
Unité U |
|
Tache 2
Unité U’ |
La charge de travail pour une simulation est obtenue en générant de façon
aléatoire un ensemble de processus, avec une loi d’arrivée qui est soit uniforme
soit de type Poisson. Les charges associées aux tâches sont également générées
aléatoirement, suivant un écart-type qui est un des paramètres des scénarios (on
peut choisir de simuler des activités régulières ou d’autres plus
« chaotiques »).
Il est intéressant de récapituler l’ensemble des paramètres associés au modèle qui forment le scénario d’une expérimentation :
| Loi de distribution de la charge de l’entreprise : granularité, déviation, etc. | |
| Degré d’interdépendance dans l’exécution : quantité de flux de type pilotage et synchronisation par rapport au « temps productif » | |
| Facteur de compétence: gains de productivité en fonction du niveau de compétence | |
| Efficacité des canaux de communication. Cette efficacité se mesure dans trois dimension : quantité d’information transportée, latence et fidélité du transfert. C’est ce point qui mérite plus de discussion | |
| Coût du travail (en % de la valeur produite) |
Comme nous l’avons dit en introduction, nous n’allons pas essayer de qualifier ces paramètres, mais plutôt utiliser l’approche « jeux & apprentissage » pour explorer les espaces de scénarios.
Le modèle des flux d’information qui est décrit dans la 5e section s’intéresse au « transport » du contenu plus qu’à la « signalisation ». Comme cela a été dit, c’est un modèle d’ordonnancement des blocs temporels d’activité nécessaire au transport de l’information. Ce modèle tient néanmoins compte du temps de propagation de l’information sur deux aspects : la réaction aux aléas et l’enchaînement des séquences de tâches.
Ce modèle représente deux types d’aléas dans le déroulement d’un processus :
Par ailleurs, nous représentons un délai explicit de synchronisation entre deux tâches qui forment une séquence. Si la tâche B a besoin que la tâche A soit terminée pour commencer :
Cette modélisation est conforme avec le parti-pris de représentation d’un fonctionnement idéal : nous sous-estimons grandement les effets du délai de propagation de l’information, mais au mois ce que nous prenons en compte « fait sens ».
Nous allons représenter une entreprise par un ensemble d’agents, et abstraire l’organisation interne en deux catégories, U et H. L’ensemble des agents H représente la structure de management, qui pilote un certain nombre d’unités U. Il ne s'agit pas d'une séparation supervision production, tous les agents sont des "acteurs de la société de la connaissance" et ont pour fonction le transfert, l'enrichissement et le routage de l'information. Disons simplement que les acteurs U participent directement aux processus (ce qui inclus de la coordination) et que les acteurs H effectuent uniquement des tâches de coordination.
|
H |
|
U1 |

L’organisation de management H est définie par une structure pyramidale hiérarchique (un arbre déterminé par sa taille et sa profondeur), qui remplit les fonctions classiques liées au lien manager-collaborateur, et une fonction de collaboration transverse liée aux processus de l’entreprise. La combinaison des deux éléments permet de simuler différents degrés de « matriciel » de l’organisation, en fonction d’un paramètre qui va déterminer la « distribution des prises de décision » selon les deux axes horizontaux et verticaux.
La structure H « contient » tous les managers, y compris les managers « locaux » de proximité ; il s’agit donc d’une décomposition théorique du travail des agents, et non pas d’une organisation. Si le niveau de management local est effectué par des collaborateurs qui répartissent leur temps entre des activités « productives » et des activités de « management », ils seront représentés par deux agents différents dans le modèle. De la même façon, nous séparons les heures de réunions des autres activités de communication de façon à pouvoir contrôler le temps alloué aux réunions comme un paramètre stratégique. Un agent de H n’est donc pas l’abstraction d’un collaborateur, mais l’abstraction d’une capacité de quelques heures d’activité par jour, selon plusieurs finalités.
Une organisation U est une collection d’agents, définis par leurs compétences. L’organisation U gère les tâches qui lui sont confiées en fonctions des compétences. Elle s’apparente au méta-processus de planification (au sens d’un planning de Gant) des tâches : qui fait quoi de quand à quand ? La modélisation de la spécialisation de l’entreprise joue sur le nombre d’unités et sur la distribution des compétences.
|
… |
|
U1 |
|
Un |
|
H |

Un agent d’une unité U a pour but unique d’exécuter des tâches liées aux processus. Comme expliqué précédemment, les activités de management sont représentées par des agents de type H. La gestion du temps « disponible » pour la planification, réflexion, etc. est ignorée dans la version 2006 du modèle. Le temps « libre » est juste un « buffer » pour d’autres tâches. Cela signifie que, lorsque nous allons évaluer l’intérêt de disposer d’un peu de « marge » dans le dimensionnement, nous ne pourrons évaluer les avantages qu’en terme de flexibilité. C’est parfaitement logique, puisqu’il n’existe pas de modèle permettant d’évaluer les bénéfices de la réflexion (en terme d’anticipation, d’évitement de risques ou d’erreur, etc.).
Un agent d’une unité est donc simplement défini par un ensemble de compétences, auxquelles des niveaux sont associés. Nous utilisons un générateur aléatoire de profils de compétences qui équilibre la « valeur totale » de l’agent : la somme des niveaux reste constante. La sensibilité au niveau en terme d’efficacité économique est un paramètre externe du modèle. Ce paramètre décrit à quel point un spécialiste qui se concentre sur une compétence est plus efficace, à valeur intrinsèque égale, qu’un autre collaborateur de même valeur qui développe deux compétences. Ce paramètre est un bon exemple de paramètre externe, très variable selon le type d’activité et d’industrie, qui est difficile à évaluer, et qui justifie l’emploi de techniques de « sampling » pour travailler sur la thématique spécialisation vs. polyvalence.
D’un point de vue opérationnel, un agent est assimilé à son emploi du temps, c’est-à-dire la liste ordonnées des tâches auxquelles il participe. L’ordonnancement des tâches pour chaque unité est fait de façon simple, en utilisant une heuristique :
1. recherche d’un sous-ensemble d’agent avec les bonnes compétences et disponible au plus tôt (le tri est fait avec une fonction qui est défini par les paramètres tactiques de l’organisation)
2. recherche de la liste d’agent qui permet de terminer la tâche au plus tôt, en respectant les contraintes du nombre min/max d’agents
3. la tâche est inscrite, de façon synchrone (i.e., même date de début et de fin pour tous) dans les emplois du temps de ces agents.
On notera la contrainte forte de synchronie, qui représente le travail en équipe. Pour éviter d’introduire une trop grande rigidité, chaque tâche est décomposée de façon préalable en sous-tâches, de charge limitée, qui peuvent être confiée à différentes équipes en parallèle. Dans la pratique, nous décomposons une « macro-tâches » en blocs qui sont de durée inférieure à 15 jour et peuvent être effectué par une équipe de 10 agents.
Comme nous l’avons expliqué dans la section 2, nous allons étudier les « stratégies organisationnelles » des entreprises selon 5 axes, qui correspondent aux cinq leviers que nous avons identifiés. Pour chacun, nous utilisons un paramètre simple (un pourcentage) :
| temps total passé en réunion : pourcentage du temps passé en réunion, | |
| organisation plate ou profonde : profondeur de l’arbre H, qui est fonction du nombre moyen de subordonnés par manager, | |
| degré de redondance ou, au contraire, organisation dimensionnée « au plus juste : nombre d’agents par rapport à la charge de travail théorique-. Ce paramètre existe à la fois pour le dimensionnement du management et des unités. Nous ne considérons que le dimensionnement du management dans la stratégie, tandis que le facteur de « marge » dans le dimensionnement des unites est un des paramètres des « scénarios ». | |
| spécialisation des collaborateurs (vs. généralistes) : distribution et nombre de compétences. Comme expliqué précédemment, nous utilisons un pourcentage de spécialisation : 100% représente un spécialisation complète (chaque agent possède une compétence unique) et 0% représente une polyvalence complète. | |
| type d’organisation matricielle : pourcentage des agents de H qui sont désignés dans des rôles de coordination processus, et n’ont par conséquent pas d’activité de type hiérarchique. On notera, puisqu’un agent ne représente pas un collaborateur mais une abstraction, que les variations de ce paramètre ne représentent pas des variations en terme de structure matricielle, mais en terme d’allocation des heures des managers. |
En revanche, l’utilisation des canaux pour les différents types de flux représente ce que nous avons appelé la « tactique » de l’entreprise, et que nous allons optimiser à l’intérieur de la simulation. Plus précisément, la tactique est l’ensemble des paramètres qui représentent :
| L'utilisation des quatre types de canaux de communication pour les 4 types de flux. Dans cette première version du modèle, nous utilisons une matrice à triple entrée : le type de flux, la priorité et le « span » du flux, c’est-à-dire le nombre de destinataires du message (cf. plus loin, Section 5). | |
| Le management des priorités : comment l’entreprise associe des priorités aux processus et aux tâches. Nous supposons que la priorité est une fonction de la valeur finale, du coût de production et de la probabilité de succès (sous forme d’espérance de résultat). En jouant sur les paramètres, on peut représenter des approches plus ou moins favorables à la prise de risque et des choix heuristiques (favoriser ce qui rapport et qui va bien, ou se concentrer sur ce qui a besoin d’être réparé, …). | |
| L’ordre de préférence de remplissage des agendas des agents, en fonction des compétences et de la disponibilité | |
| Le « diamètre réunionel » associé au système des réunions, c’est-à-dire le nombre moyen d’autres collaborateurs que chaque collaborateur rencontre durant ses réunions programmées (cf. Section suivante). |
L’exécution d’un processus engendre et nécessite un certain nombre de flux d’information. Le modèle que je propose en distingue quatre :
Les pourcentages de génération de type de flux par processus font partie des paramètres généraux (liés aux scénarios). Ils dépendent, par exemple, du type d’industrie (voire d’entreprise) :
- Processus plus ou moins complexes,
- Processus plus ou moins transverses.
Il serait effectivement intéressant de savoir, pour une entreprise donnée, combine une heure d’activité génère d’heures ou minutes de transfert d’information et de synchronisation. Pour l’instant, nous allons traiter ces grandeurs comme des paramètres, mais leur détermination statistique n’est pas hors de portée d’une entreprise moderne.
Nous avions une typologie simple en terme de flux que nous pouvons encore simplifier puisque n’avons pas besoin d’associer des actions à la réalisation de l’ensemble des types de flux. Nous obtenons le deux catégories suivantes :
· Monitoring & Feedback
· Transfert & synchronisation :
Un flux est donc caractérisé par son type, par le nombre de destinataire (le « span ») et par la durée totale de communication, qui est le produit du span et de la durée unitaire. La notion de span est une caractérisation abstraite du flux (elle n’est pas mesurée de façon habituelle) qui détermine le « degré de transversalité de l’entreprise ». Il a été communément remarqué que les entreprises ne sont pas égales devant de phénomène de l’accroissement des réunions, en fonction de leur taille mais surtout de la nature de leurs activités. Pour simplifier notre modèle et la compréhension des résultats, nous avons défini trois catégories de span :
La répartition des flux par groupe de span est un paramètre extérieur qui décrit le type d’entreprise que l’on veut simuler.
La durée globale d’un élément de communication est considérée comme proportionnelle à la durée de la tâche du processus à laquelle cet élément s’applique. Le facteur de proportionnalité est également un paramètre externe.
Les communications sont réparties selon quatre canaux :
La répartition entre les canaux fait partie de la tactique de l’entreprise, en fonction du « span » (nombre d’agents impliqués dans le transfert d’information) et de la priorité du processus. La répartition « idéale » en fonction des besoins et de l’efficacité des canaux sera obtenue par apprentissage. Cela signifie que la matrice à trois entrées évoquée précédemment est obtenue par raffinements successifs (cf. prochaine section).
Le traitement d’un flux de communication est, finalement, relativement sophistiqué et peut être décrit par les étapes suivantes :
Il faut noter que le modèle s’est enrichi de façon progressive, au fur et à mesure que les versions plus simples aboutissaient à des simulations non réalistes.
L’ordonnacement des unités de communication dans les emplois du temps des agents de H est similaire à l’ordonnancement des taches pour les agents des unités U :
1. Recherche d’un sous-ensemble d’agents disponibles au plus tôt (le tri est fait avec une fonction qui est défini par les paramètres tactiques de l’organisation) et qui sont disponibles sur le canal concerné.
2. Recherche de la date au plus tôt permettant d’inscrire le bloc de communication de façon synchrone pour les participants à cette communication. C’est parce que nous utilisons un ordonnancement synchrone que nous faisons la décomposition que nous venons d’expliquer en fonction du canal. C’est également pour cette raison que les tâches sont décomposées en sous-tâches de durée inférieure à une semaine, ce qui produit des éléments de communication courts (quelques heures) dont la planification synchrone est réaliste (pour représenter une réunion par exemple).
Nous caractérisons les quatre canaux de communication avec quatre paramètres, les trois que nous avons déjà présenté et que nous allons reprendre ; plus un quatrième qui représente la fréquence d’accès au canal :
| Le taux de répétition (R): nombre moyen de fois ou le message a besoin d’être émis pour être efficace. Cette idée élégante est due à Thierry Benoit : plutôt que de représenter une notion de perte d’information, ce qui est complexe, nous utilisons une caractérisation macroscopique qui précise combien de fois il faut répéter le message pour que l’information soit réellement transmise. Dans un premier temps, nous allons ignorer ce paramètre (et travailler dans un monde idéal ou « tout le monde comprends tout du premier coup ») mais, ensuite, nous pourrons étudier la sensibilité du modèle à cette dimension. Aujourd’hui, le « taux de répétition » est une grandeur que certains managers savent caractériser de façon intuitive (en fonction du type de message), mais il serait envisageable de le mesurer (par exemple sur les mails) et d’en faire un indicateur d’efficacité (par exemple, un sujet qui génère des dizaines de cascades de mails aurait-il été mieux traité en direct ?). | |
| Mutualisation (M): le nombre de récepteurs moyen d’un message. Cela permet de représenter la mutualisation obtenue en réunion ou avec l’envoi d’un email. Contrairement au paramètre suivant, on parle ici des récepteurs « utiles » qui sont réellement concernés par le transfert d’information. | |
| Utilisation (U): le nombre de personnes occupées durant l’échange d’information, y compris les personnes qui ne sont pas concernées de façon utile (participants qui s’ennuient en réunion, destinataires inutiles en cc d’un email, etc.). Ce paramètre est facile à mesurer de façon statistique (nombre de participants moyens dans les réunions planifiées, nombre de destinataires dans les mails. | |
| Fréquence (F) : ce dernier paramètre représente la fréquence « de base » de l’accès au canal. Par exemple, une collaborateur a, en moyenne, quatre réunions planifiée par jour, il lit ses messages deux fois par jours (fréquence de 5 heures), etc. Ces valeurs sont très dépendantes de la culture d’entreprise (est-ce qu’on sort d’une réunion pour prendre un coup de fil ?) mais elles sont raisonnablement stables et faciles à estimer. |
Nous pouvons en déduire les règles d’ordonnancement de « charge de communication en fonction du canal ». Cela signifie que nous attribuons, en fonction du canal, une durée et un nombre d’agents à une tache de communication définie par une charge théorique (L, en heure, appelée durée théorique globale de communication précédemment), de la façon suivante :
| si le canal est synchrone, la durée globale (durée unitaire x nombre d’unité) est égale à la charge et le nombre de participants par unité est deux (d’où le principe de décomposer un flux en S/2 unités). | |
| si le canal est le canal de réunion, D = L * R et le nombre d’agents est S * U / M. Le rapport (U/M) est un facteur multiplicatif qui traduit le nombre de participants « inutiles » lors d’une réunion. | |
| si le canal est le canal mail (ASYNC), la durée D vaut L * R, tandis que le nombre d’agents vaut *alpha* + *beta* x S * (U / M). Nous utilisons deux constantes : *alpha* est le rapport de vitesse d’écriture sur celui de l’élocution (combien de temps faut il pour écrire un mail par rapport au temps pour le dire) et *beta* est le rapport de la vitesse de lecture sur celui de l’écoute. Pour faire simple, on écrit (lorsqu’on le fait en continu devant un terminal, lorsqu’on écrit un mail) 5 fois plus lentement qu’on ne parle, mais on lit 10 fois plus vite (resp. 30, 150 et 300 mots à la minute). C’est une simplification, il existe une littérature passionnante et abondante sur le sujet. Pour un résumé et une bibliographie, voir : http://www.keller.com/articles/readingspeed.html | |
| si le canal est HF2F (le canal hiérarchique), nous utilisons la profondeur de la hiérarchie (P) comme approximation de la longueur de la chaîne de points « face à face » qui doivent avoir lieu pour transporter l’information d’un point à une autres (P – 1). C’est d’ailleurs sur cette hypothèse que les partisans des organisations plates s’appuie : une organisation plus plate signifie une redescente/remontée d’information plus rapide. La durée globale est (P – 1) x L / S, ce qui signifie que nous faisons l’hypothèse que le nombre de points est indépendant du span. En clair, le canal hiérarchique est un peu coûteux, mais il est efficace pour toucher plusieurs destinataires.. |
Nous arrivons maintenant à la question cruciale de la modélisation de la latence. Commençons par caractériser ce la latence signifie dans notre modèle macroscopique du fonctionnement de l’entreprise. Le déroulement des processus (enchaînement de tâches) produit des transfert de flux d’information (monitoring, feedback, synchronisation, etc.). Comme notre modèle d’ordonnancement traite ces flux en bloc, on ne peut pas utiliser de dépendance entre des blocs. Par exemple, si la coordination d’une activité de 100 homme.jour nécessite 50 heures de réunion, nous allons placer un bloc de 50h. La latence est le temps qu’il faut pour transmettre une information d’une unité au management (ou à une autre unité) au travers de ce canal (réunion). La modélisation par bloc est suffisante pour raisonner sur les quantités totales, mais pas sur la propagation. La réalité de ce qui est représenté dans le modèle par deux blocs consécutifs peut être un entrelacement de réunions. Pour que le modèle d’ordonnancement puisse servir à calculer la latence, il faudrait un niveau de précision beaucoup plus grand, et on retomberait sur un modèle « intractable » (en franglais).
Voici, en conséquence, les modèles que j’ai retenus :
| si le canal est ASYNC, la latence est 1/F x N. F est la fréquence, N est le nombre de sujets moyen dans l’agenda des agents impliqués. Le principe est de faire le produit de la latence « à vide » (si l’agent est disponible) par un facteur qui indique la probabilité d’être disponible pour le sujet concerné. C’est la que nous pouvons utiliser les informations produites par l’ordonnancement. Puisque les blocs sont triés par priorités, nous pouvons compter le nombre de sujets plus importants et l’utiliser comme facteur multiplicateur (N). De la sorte, si le flux est prioritaire, on supposera que la première « pause email » est la « bonne », tandis que si il est le troisième dans l’ordre d’importance, on supposera qu’il faut attendre trois séances de lecture de mail pour traiter le sujet. | |
| si le canal est SYNC, la latence est 1/F x (N1 + N2 – 1). Le doublement de l’effet du taux d’occupation est lié au fait qu’il faut que les deux agents soient disponibles au même moment pour pouvoir communiquer. C’est également une approximation optimiste par rapport à un modèle probabiliste qui ferait un produit de disponibilité. | |
| si le canal est MEET, il nous
faut estimer deux choses: la latence pour trouver la réunion “adaptée”, soit
1/F * N, et le nombre de réunions à monter pour transmettre l’information
d’un point à un autre. Nous avons besoin, pour cela, d’introduire un autre
paramètre qui décrit la culture de réunion d’une entreprise, que nous avons
appelé « diamètre réunionnel » (DR) est qui est le nombre de personnes
rencontrée (total) dans les réunions programmée d’une personne. DR est
fonction du nombre de réunion, de la taille des réunions et du fait que les
réunions ait lieu « toujours avec les mêmes » ou au contraire « couvre une
grande partie de l’entreprise ». Le degré de connexion (dans le graphe des
participation aux réunions) est le nombre de réunions nécessaires pour faire
passer l’information est estimé par log(#Agents)/log(DR). Par ailleurs, en
première approximation, (DR / U) représente le nombre de réunions
différentes d’un agent. Il faut donc attendre (DR / U) réunions en moyenne
pour trouver « la bonne » pendant la quelle l’information est passée à une
autre personne qui va relayée à la réunion suivante et ainsi de suite … Le
nombre de relais est la degré de connexion dont nous venons de parler.
Ceci nous donne la formule de la latence pour les réunions : 1/F * log(#Agents)/log(DR) * (DR / U) Le fait que ce temps est indépendant du taux d’occupation des agents est bien sur une simplification, qui suppose que le principe des réunions programmées avec un ordre du jour et un thème est respecté. | |
| enfin, si le canal est HF2F, nous comptons simplement le nombre de points hiérarchiques nécessaires, comme dans la section précédente et obtenons 1/F * (P – 1) * (H / 2), en supposant que si un manager a H subordonnés, le point adéquat parmi les points hiérarchiques de fréquences 1/F est en moyenne « au milieu ». |
Nous allons aujourd’hui nous intéresser à une approche de la modélisation de systèmes complexes fondée sur la théorie des jeux, et sur la théorie de la rationalité limitée, qui postule que le comportement de chaque acteur est lié à l’optimisation d’objectifs propres (qui correspondent à sa perception). Nous allons proposer une méthode de simulation dont l’objectif est de faire émerger des propriétés d’un système complexe, incertain et partiellement inconnu.
Le point de départ est le suivant : supposons que nous ayons construit un modèle, qui nous semble valide dans sa structure, mais pour lequel ils soit difficile d’obtenir les paramètres (par exemple, les cœfficients des équations du modèle). Ce modèle représente un « jeu » dans le sens le plus général possible : il existe un certain nombre d’acteurs, et une notion de valeur produite par chaque acteur en fonction du contexte (marché) et des décisions des autres acteurs. Le modèle est en quelque sorte une mise en équation des « règles du jeu ». Ce qui est difficile dans une modélisation économique n’est pas de trouver des équations, mais bien d’ajuster les paramètres pour décrire une réalité le plus fidèlement possible. Nous allons distinguer trois types de « difficultés » :
les coefficients représentent des sensibilités, des élasticités, qui demanderaient des études poussées. Par exemple, il est raisonnable de modéliser l’appétence du public à un produit donné avec une « courbe en S », il est par contre difficile, sauf à disposer d’études marketing, de connaître précisément les valeurs qui caractérisent cette courbe en S.
les coefficients représentent la stratégie des acteurs (ou de l’acteur, si il est unique). Dans ce cas, nous souhaitons précisément conserver ces paramètres globaux de notre modèle. Nous ne connaissons pas forcément la stratégie des acteurs, mais l’intérêt de la simulation est précisément d’étudier les effets combinés des différentes stratégies, comme dans une approche de théorie des jeux.
Les coefficients qui sont sous l’arbitrage de chaque acteur, mais qui sont dominés par les objectifs stratégiques. Autrement dit, il s’agit de paramètres que chaque acteur peut adapter en fonction de ses objectifs. Si nous laissions ces paramètres comme des éléments de stratégies, nous aurions un espace de combinaisons très grand et dont une partie n’aurait pas de sens.
Le premier groupe contient les paramètres qui sont indépendants des acteurs et qui peuvent représenter « le marché ». Le deuxième groupe contient les paramètres qui définissent les objectifs de chaque acteur dans le jeu/modèle, tandis que le troisième groupe contient les paramètres que chaque acteur tient à sa disposition pour atteindre ses objectifs. Pour reprendre un exemple trivial, le premier groupe peut décrire les appétences du marché à un certain type de produits, le second groupe les objectifs des acteurs (part de marché, bénéfice, etc.) et le troisième groupe les tactiques associées (prix de vente, promotion, etc.)
Nous proposons une approche que nous nommerons « Simulation par Jeux & Apprentissage », qui consiste à étudier les effets de combinaisons de stratégies dans un contexte incertain, et lorsque la fonction qui décrit le retour économique est elle-même complexe (ce qui représente donc une extension de la « théorie des jeux classiques » dans deux dimensions. Plus formellement, nous allons supposer que pour chaque combinaison de stratégie d’acteur, la fonction qui décrit le retour économique est une fonction paramétrique, dont une partie des paramètres décrit le marché et n’est connu que de façon approximative sous la forme d’intervalle, et l’autre partie est optimisable par chaque acteur. Nous retrouvons donc ici nos trois groupes de paramètres que nous allons traiter de la façon suivante :
Les paramètres du premier groupes, dits paramètres économiques, seront géré par une simulation de type Monte-Carlo, c’est-à-dire en générant un très grand nombre de tuples de paramètres de façon aléatoire. Comme nous ne formulons aucune hypothèse sur la distribution des « vraies valeurs » des paramètres au sein des intervalles, nous utiliserons une distribution uniforme des valeurs aléatoires.
Les paramètres qui décrivent les stratégies des acteurs sont identifiés comme paramètre stratégique et vont servir à déterminer une matrice d’interaction (à n dimension, pour n joueurs). Le but de la simulation sera de caractériser une, plusieurs, ou l’ensemble des cases de cette matrice.
Les paramètres du troisième groupe sont les « paramètres tactiques » et nous allons déterminer leurs valeurs (ou leurs trajectoires) par optimisation/apprentissage. Si le problème d’optimisation est parfaitement défini pour chaque acteur, le problème global est plus complexe, et nous allons voir plusieurs façons de l’aborder.
Le déroulement de la simulation, pour un ensemble de stratégies fixé (c’est-à-dire pour une case de la matrice) peut être décrit comme suit (j'avais prévu une Figure mais je maîtrise mal cet outil :-(). Chaque tirage des valeurs des paramètres économiques correspond à une phase. Une simulation va comporter de quelques milliers à quelques millions (ou plus) de phases, selon la complexité de l’espace des paramètres économiques. La simulation d’une phase consiste à rechercher un équilibre de Nash dans l’optimisation des paramètres tactiques des acteurs. Il y aurait un livre entier à écrire sur la caractérisation des espaces de recherche et sur les stratégies d’optimisation. Pour l’instant, nous procédons par :
(a) optimisation locale pour chaque acteur pour ajuster ses paramètres,
(b) cycle d’optimisation acteur par acteur, jusqu’à l’obtention éventuelle d’un point fixe.
Compte tenu de cette approche très simple, nous pouvons caractériser certains équilibres (de Nash par construction) mais nous ne pouvons pas garantir que nous allons trouver de tels équilibres si ils existent. Notre approche expérimentale distingue 3 états :
- Convergent,
- divergent (on peut caractériser une trajectoire divergente, le plus souvent qui correspond à une « guerre » économique)
- chaotique (par différence).
Une modélisation est « réussie » si les phases chaotiques sont « rares ». Les informations que nous cherchons à extraire (dominance d’un acteur, adéquation d’une stratégie à un objectif, etc.) sont obtenues des phases convergentes. Ce sujet méritera, bien sûr, des développements plus longs.
Nous allons maintenant illustrer cette approche sur deux exemples.
Le premier exemple que j’ai implémenté représente une simulation de trois acteurs dans un marché mature, tel que celui de la téléphonie mobile. Comme il s’agit d’un marché avec subvention du terminal, donc coût d’acquisition important (cela serait vrai pour de nombreux autres exemples), il existe un certains nombre de dimensions dans les actions de chaque acteur qui rend le jeu « intéressant » (quelle subvention, quelle fidélisation, etc.).
Le modèle économique est simple, il décrit le marché selon deux processus, celui de « churn » et celui d’acquisition. Les équations sont des équations « différentielles », en ce sens que les valeurs sont obtenues comme la somme d’une valeur par défaut et d’une différence. Les valeurs par défaut (churn et part de marché) sont celles qui ont été publiées en 2005. Les différences sont des fonctions linéaires des changements de prix, de subvention et de fidélisation. Les paramètres économiques sont précisément ces coefficients d’élasticité du comportement des consommateurs par rapport aux prix.
Le « jeu » se joue sur 3 ans. Les stratégies représentent simplement les objectifs, sous forme d’une trajectoire espérée, en terme de part de marché, d’ebitda ou de chiffre d’affaire. Par exemple, la stratégie d’un acteur peut être de garantir une croissance de 8% de son EBITDA par an. Certaines stratégies sont plus agressives que d’autres (par exemple, si chaque acteur souhaite augmenter sa part de marché), mais il est possible de représenter des stratégies plus « financières » (orientées résultat).
La tactique dans ce modèle représente les règles qui vont déterminer le prix de vente du « produit moyen », le montant de la subvention moyenne et le montant de ce qui est dépensé par client dans le programme de fidélisation. La même approche différentielle/linéaire est appliquée : nous partons des valeurs moyennes 2005 avec des coefficients pour introduire des variations linéaires en fonction des variations constatés sur les trois paramètres stratégiques (part de marché réelle vs. objectif, ebitda constaté vs. objectif et chiffre d’affaire vs. objectif). La tactique est donc décrite avec une matrice 3 x 3. L’apprentissage se fait par optimisation locale (hill-climbing) de chacun des 9 coefficient et semble donner de bons résultats : pour une phase et une situation donnée (les jeux des autres acteurs), l’algorithme d’apprentissage converge très rapidement.
Bien sûr, ce modèle souffre de nombreux défauts, le premier étant la linéarité des équations (ce qui serait facile à corriger avec des « courbes en S » appropriées). La seconde limitation (cohérente avec la première) est que la tactique est une matrice indépendante de la situation. Cela signifie que ce modèle n’est « valide » que lorsque les phases correspondent à des évolutions proches de la situation de 2005. Les premiers résultats sont néanmoins intéressants J Je renvoie le lecteur aux autres messages du blog sur ce thème.
Ce second exemple est précisément l’étude des effets combinés des leviers stratégiques d’organisation d’une entreprise. Dans cet exemple, nous n’avons qu’un seul acteur, mais un espace de stratégie organisé selon 5 axes et pour lequel nous souhaitons examiner les combinaisons, à la manière d’une matrice de théorie des jeux. Ici, le modèle économique représente les flux d’informations et de travails nécessaires pour effectuer des processus dans une entreprise. Plus précisément, voici quelques exemples de ce que nous avons appelés les paramètres économiques :
|
Facteur de compétence: gains de productivité en fonction du niveau de compétence. | |
|
Efficacité des canaux de communication. | |
|
« Besoin de coordination » (quantité de temps pour le transfert, quantité de temps pour la synchronisation, …). | |
|
Coût du travail (en % de la valeur produite). | |
|
Quantités d’aléas générés lors de la simulation. |
Ces paramètres sont définis par des intervalles (min, max) et nous utiliserons l’approche Monte-Carlo pour engendrer des phases correspondant à des situations multiples. Si l’on se réfère à ce qui a été dit dans les messages précédents, chaque phase (instanciation des paramètres économiques) va correspondre au contexte économique et industriel d’une entreprise.
Les stratégies représentent les choix d’organisation selon les cinq leviers que nous avons identifiés dans le message précédent :
- temps total passé en réunion,
- organisation plate ou profonde,
- degré de redondance ou, au contraire, organisation dimensionnée « au plus juste »,
- spécialisation des collaborateurs (vs. généralistes),
- type d’organisation matricielle.
L’objectif est de confronter les
effets combinés des 5 axes stratégiques. En particulier, il s’agit de voir si il
est possible de caractériser des « espaces de phases » propices à certaines
combinaisons stratégiques.
Les paramètres tactiques représentent l’adaptation de l’entreprise en fonction
de ses objectifs stratégiques. Plus précisément nous allons représenter les
choix suivants :
|
Management du temps : comment le temps est alloué dans l’entreprise par catégorie (communication, travail, préparation, etc.) | |
|
Utilisation des canaux de communication en fonction des flux d’informations. Les canaux correspondent approximativement aux contacts directs (synchrones), asynchrones (mails) et aux réunions. Les différents flux correspondent au fonctionnement de l’entreprise et de ses processus (pilotage, synchronisation, transfert). | |
|
Gestion des priorités : chaque processus participe à la création de valeur, la gestion des priorité représente à la fois la formule pour attribuer des priorités variables en fonction des différents critères (valeur, délai, difficulté) et la façon dont ces priorités influence les transferts d’information (flux). | |
|
Gestion des aléas et délai : le modèle de fonctionnement inclut la génération d’aléas en terme de valeur et de délai. La façon dont ces aléas sont traités est également un paramètre tactique. |
Il va de soi que pour que les
indications relevées par simulation soient le moins du monde pertinentes, il
faut d’abord se convaincre du bien-fondé du modèle. Pour cela il nous faudra
revenir en détail sur la notion de processus et la façon dont ils sont
représentés dans notre modèle.
Cette approche s’inspire de la théorie des jeux, mais représente une évolution
radicale, puisque nous quittons la modélisation mathématique pour rentrer dans
la modélisation informatique (cf. « A New Kind of Science » de Steve
Wolfram). C’est à la fois beaucoup plus puissant et beaucoup moins convaincant.
Les équations qui représentent les comportements des joueurs et leurs retours ne
sont plus des matrices ou des processus markoviens, ce sont des automates
programmables. C’est pour cela que nous avons besoin d’apprentissage.
Le principe de fonctionnement du simulateur reprend l’approche de « Jeux et apprentissage » que nous venons d’évoquer. Les paramètres du modèle sont décomposés en trois catégories :
|
Scénario |
|
Stratégie
5 leviers |
|
Tactique |
|
Expérience |
|
Simulation |
|
Apprentissage |
|
Valeur produite
Par les processus |
Une expérience de simulation est définie par la donnée des deux éléments : scenario, stratégie ainsi que quelques méta-paramétres qui contrôle l’algorithme suivant :
- Répéter N fois (nombre d’instanciations) :
Pour chaque paramètre de la stratégie,
Ajuster la meilleure valeur possible (cela dépend du domaine de valeur, continu ou discret) :
- Choisir un « mouvement local »
- Tester le changement sur 5 tirages (chaque tirage produit une charge de travail différente par instantiation aléatoire des processus)
- Le test consiste « simplement » à lancer la simulation à événements discrets
- Le changement est retenu si il améliore le revenu généré
- Stocker les résultats de l’expérience sur un fichier
On voit que l’algorithme d’apprentissage est très simpliste, mais il est néanmoins effectif. En 2007, l’utilisation de méthodes plus puissantes telles que les algorithmes génétiques ou hybrides sera à l’ordre du jour …
Le simulateur représente approximativement 2000 lignes de CLAIRE <référence>, soit approximativement 8000 lignes de C++. Avec le recul des deux dernier mois, je suis surpris par la difficulté rencontrée à réaliser un simulateur stable et réaliste.
(1) réaliste : comme les messages précédents l’atteste, ce simulateur est plus complexe que prévu. La structure du programme (simulation à événement discrets, génération de processus, apprentissage) s’appuie sur des expériences précédentes. En revanche, la modélisation des tâches et les méthodes d’ordonnancement sont plus complexes et subtiles que ce à quoi je m’attendais.
(2) stable (et efficace) : pour traiter plusieurs milliards d’événements, il faut une programmation « un peu sérieuse » avec des structures de données optimisée et un soin (classique) porté à la gestion de la mémoire.
A l’heure où j’écris ces lignes, le programme de simulation tourne depuis plus d’une semaine. Chaque fichier script contient entre 10 et 20 expériences à réaliser, et utilise le PC (moderne, bi-pro et 3.2 Ghz/1Go de RAM) en continu pendant plusieurs jours. En effet :
|
une itération de simulation consiste à simuler une année d’activité et à ordonnancer 25 000 tâches. | |
|
un itération d’apprentissage nécessite, pour l’instant, 1000 simulations, soit 25 millions de tâches à ordonnancer | |
|
une expérience repose, pour l’instant, sur 10 instantiation Monte-Carlo (chiffre qui devra être porté à 100 par la suite). |
Ce programme de recherche serait un bon candidat pour un grid … J
Il est beaucoup trop tôt pour écrire une conclusion J Il faut continuer à suivre le blog pour connaître les épisodes suivants … ainsi que les premiers résultats de la simulation.