Démo
Découpez une demande en tâches, réglez le nombre de sous-agents : le planning se recalcule.
Chargement de la démonstration…
En bref
Décrivez une demande ou partez d'un exemple : elle est découpée en tâches avec leurs dépendances. Réglez le nombre de sous-agents, modifiez une durée, et le planning, le chemin critique et le Gantt se recalculent. Vous pouvez aussi provoquer un échec pour voir la reprise.
Ce qu'on y voit
Découpez une demande en tâches, réglez le nombre de sous-agents : le planning se recalcule.
L'idée
Paralléliser des agents est un problème d'ordonnancement : dépendances, chemin critique, vérification croisée.
La fabrication
Graphe de tâches modifiable, tri topologique, ordonnancement par chemin critique, diagramme de Gantt recalculé à chaque réglage.
Sous le capot
5 points d'implémentationPile
- TypeScript strict
- React
- Graphe acyclique (DAG)
- Tri topologique de Kahn
- Ordonnancement par liste
Fichiers
lib/sim/scheduler.tslib/sim/scheduler.check.tscomponents/demos/Orchestre.tsxcontent/demos/orchestre.tscomponents/demos/Orchestre.module.css
Implémentation
- Le graphe est typé (durée, dépendances, relecture) ; le tri topologique de Kahn détecte les cycles et addDep refuse une dépendance qui en créerait un.
- Analyse : début au plus tôt = plus long chemin des prédécesseurs ; queue = plus long chemin des successeurs, durée comprise ; marge = chemin critique − début − queue.
- Ordonnancement non préemptif par liste : à chaque instant, les tâches prêtes sont triées par queue décroissante, et chaque agent libre prend la première. La borne basse vaut max(chemin critique, travail total / agents).
- Un échec coupe la tentative à l'instant choisi, libère l'agent et fait repartir la tâche de zéro ; les successeurs sont décalés d'autant.
- La vérification croisée ajoute une relecture de 35 % de la durée (arrondie, minimum 1 minute) et fait attendre les successeurs jusqu'à cette relecture.