Qu’est-ce qu’un graphe acyclique dirigé (DAG) ?

Un homme debout présente au public un graphique posé sur un chevalet.

Auteurs

Alice Gomstyn

Staff Writer

IBM Think

Alexandra Jonker

Staff Editor

IBM Think

Qu’est-ce qu’un graphique acyclique dirigé (DAG) ? 

Un graphe acyclique dirigé (DAG) est un type de graphe dans lequel les nœuds sont reliés par des connexions à sens unique qui ne forment aucun cycle. Les DAG sont utilisés pour illustrer les dépendances et les relations de cause à effet.

Un graphe acyclique dirigé

Comme tous les graphiques, les DAG peuvent être utiles pour visualiser les relations entre les nœuds représentant des données, des tâches ou des événements. Cependant, les DAG permettent de représenter des systèmes dans lesquels les événements se produisent dans un ordre spécifique, comme un calendrier de tâches à accomplir pour atteindre un objectif.

Les DAG sont également importants pour créer des diagrammes de causalité : les DAG peuvent représenter des systèmes où certains nœuds ont un impact sur d’autres nœuds, mais les effets causaux ne fonctionnent pas dans l’autre sens. Un exemple de base de telles relations à sens unique peut être trouvé dans les arbres généalogiques, car les DAG cartographient les générations successives de parents et d’enfants.

L’utilisation des DAG est courante en informatique. Les développeurs et les ingénieurs utilisant les DAG pour les pipelines et le traitement de données, l’architecture des réseaux neuronaux, la robotique, etc.

Design 3D de balles roulant sur une piste

Les dernières actualités et informations en matière d’IA 


La newsletter hebdomadaire Think vous apporte toute l’actualité sur l’IA, le cloud et bien d’autres sujets. 

Quels sont les composants d’un DAG ?

Pour mieux comprendre le principe du graphe acyclique dirigé, détaillons ses composants :

Nœuds : les nœuds, également appelés vertices, représentent des entités, des objets ou des variables sur un graphique. Ils sont généralement représentés sous forme de points ou de cercles.

Arêtes : les arêtes symbolisent les connexions entre les entités. Elles sont représentées par des lignes.

Arêtes dirigées : les arêtes dirigées représentent des connexions qui peuvent être parcourues dans une seule direction. Les flèches sur ces arêtes indiquent leur direction.

Graphes dirigés : les graphes composés entièrement d’arêtes dirigées sont des graphes dirigés ou digraphes. En revanche, les graphes sans arêtes dirigées sont des graphiques non dirigés.

Collisionneurs : les collisionneurs sont des nœuds vers lesquels deux arêtes dirigées pointent.

Chemins : les chemins sont une séquence d’arêtes reliant un nœud donné à un autre. Les chemins composés entièrement d’arêtes dirigées sont appelés chemins dirigés. Les chemins dirigés qui indiquent des relations causales sont appelés chemins causaux.

Arbre : en informatique, un arbre est un graphe acyclique dirigé où chaque nœud n’a qu’une seule arête dirigée vers lui, à l’exception du nœud de départ (le nœud « racine »). Alors que les arêtes s’étendent à partir du nœud racine, aucune arête ne pointe vers le nœud racine.

En plus de comprendre les éléments d’un DAG, il est également important de reconnaître un composant qui lui manque : un cycle. Dans un graphe acyclique dirigé, le terme « acyclique » fait référence à l’absence de cycles ou de boucles fermées sur ce type de graphes. En d’autres termes, lorsque vous partez d’un nœud dans un DAG et que vous traversez les nœuds et les arêtes successifs, il est impossible de revenir au nœud de départ.

Mixture of Experts | 12 décembre, épisode 85

Décryptage de l’IA : Tour d’horizon hebdomadaire

Rejoignez notre panel d’ingénieurs, de chercheurs, de chefs de produits et autres spécialistes de premier plan pour connaître l’essentiel de l’actualité et des dernières tendances dans le domaine de l’IA.

Concepts de théorie des graphes pertinents pour les DAG

Dans la théorie des graphes (l’étude des graphes), plusieurs concepts ou processus sont souvent appliqués lorsque l’on travaille avec des graphes acycliques dirigés. En voici quelques exemples :

  • Tri topologique
  • Clôture transitive
  • Réduction transitive

Tri topologique

Un tri topologique, également connu sous le nom d’ordre topologique, est une manière d’organiser les nœuds d’un DAG de manière linéaire afin que les nœuds qui pointent vers d’autres nœuds apparaissent en premier et que les successeurs n’apparaissent pas avant leurs prédécesseurs. Les algorithmes de tri topologique peuvent produire de telles séquences basées sur des DAG.1

Clôture transitive

Dans les graphes complexes, il peut être difficile de reconnaître les nœuds qui peuvent être « accessibles » par des chemins dirigés à partir d’autres nœuds. Dans la clôture transitive, ces liens indirects entre les nœuds sont identifiés et schématisés.

Par exemple, si un graphique comporte une arête dirigée reliant le nœud A et le nœud B et une autre arête dirigée reliant le nœud B et le nœud C, cela indiquera que A et C sont liés indirectement. Un résultat de fermeture transitive donnerait une nouvelle arête reliant A à C (qui est désormais le chemin le plus court entre ces deux nœuds) en plus des arêtes dirigées originales entre A et B et B et C. Comme pour le tri topologique, les algorithmes peuvent être utilisés pour les calculs de clôture transitive.

Réduction transitive

La réduction transitive peut être considérée comme l’inverse de la clôture transitive. Dans le contexte d’un graphe orienté, la réduction transitive du graphe a le même nombre de nœuds que le graphe original et les paires de nœuds atteignables sont les mêmes. Cependant, le nombre d’arêtes dans la réduction transitive du graphe est réduit au minimum.

Considérons, par exemple, un graphe original qui comprend une arête dirigée reliant le nœud A au nœud C, et une séquence d’arêtes dirigées reliant le nœud A au nœud B et le nœud B au nœud C. Une réduction transitive de ce graphique exclurait l’arête entre A et C tout en conservant les arêtes entre l’ensemble plus large de variables : A et B et B et C.

En d’autres termes, le chemin le plus long entre A et C dans le graphique original est inclus dans le nouveau graphe, tandis que le chemin avec une seule arête est éliminé. 

Quelles sont les applications des DAG en informatique ?

Les graphiques acycliques dirigés occupent une place prépondérante dans l’informatique à travers une multitude de cas d’utilisation :

  • Traitement de données
  • Réseaux neuronaux
  • Inférence causale dans le machine learning
  • Robotique
  • Conception du compilateur
  • Blockchain

Traitement de données

Les DAG aident les ingénieurs de données à définir des structures de données et à optimiser les flux de données. Les plateformes d’harmonisation des données, comme par exemple Apache Airflow, utilisent des DAG (définis dans les scripts Python) pour définir les tâches de traitement des données et spécifier leur ordre d’exécution dans les pipelines de données et les workflows.

Dans les cas où plusieurs DAG dépendent les uns des autres, les outils d’orchestration peuvent créer des graphiques de dépendance pour clarifier ces relations.2 Les plateformes d’observabilité des données peuvent être utilisées avec les plateformes d’harmonisation des données pour identifier et résoudre les problèmes liés au pipeline de données.

L’accélération de l’adoption d’applications d’intelligence artificielle générative, qui reposent sur l’accès aux données, a amplifié l’importance des pipelines de données et des DAG dans l’environnement technologique moderne.

Réseaux neuronaux

Un réseau neuronal est un programme de machine learning qui prend des décisions comme le ferait un cerveau humain en utilisant des processus qui imitent la façon dont les neurones biologiques collaborent via des observations, puis des conclusions. Les DAG sont utilisés pour cartographier les réseaux neuronaux et peuvent être particulièrement utiles pour la visualisation des réseaux neuronaux profonds à couches multiples.

Diagrammes du Deep Neural Network utilisant des cercles dans des nuances de bleu

Inférence causale dans le machine learning

Les DAG peuvent jouer un rôle dans les efforts visant à « apprendre » aux modèles IA à reconnaître les relations causales par le biais de l’inférence causale. L’inférence causale est un paradigme permettant de déterminer les effets de causalité et utilise souvent des DAG. Par exemple, les DAG peuvent aider à détecter les « facteurs de confusion », qui sont des variables qui déforment ou obscurcissent la causalité réelle. L’IA améliorée par l’inférence causale est en train de devenir un outil en particulier pour l’épidémiologie. Elle pourra aider les chercheurs dans leurs études sur la recherche des déterminants de la maladie.3

Robotique

Des chercheurs ont proposé d’utiliser une méthode de planification structurelle basée sur un DAG et un grand modèle de langage (LLM) pour améliorer la performance des robots à deux bras. Dans le cadre des exigences proposé, un LLM génère un DAG qui représente des tâches complexes sous forme de sous-tâches, avec des arêtes indiquant les interdépendances. Dans le framework, ces informations sont utilisées pour déterminer la planification des mouvements et la coordination entre les 2 bras pour l’exécution des tâches.4

Conception du compilateur

Les DAG sont utilisés pour optimiser la conception des compilateurs, qui sont des programmes qui convertissent les langages de programmation (code source) en instructions pour les ordinateurs (code machine). Par exemple, un DAG peut aider à identifier les sous-expressions courantes qui peuvent être éliminées pour améliorer l’efficacité.

Blockchain

Selon les chercheurs, une blockchain basée sur un DAG présente de meilleures performances que les blockchains conventionnelles. Une blockchain basée sur DAG peut permettre le traitement parallèle des transactions, augmentant ainsi le taux de transactions traitées sur une certaine période et permettant plus de flexibilité et d’évolutivité. De telles améliorations peuvent avoir des applications dans des domaines tels que la gestion de la chaîne d’approvisionnement et les contrôles d’accès aux réseaux de l’Internet des objets .5, 6

Solutions connexes
IBM Databand

Découvrez IBM Databand, le logiciel d’observabilité pour les pipelines de données. Il collecte automatiquement les métadonnées pour établir des lignes de base historiques, détecter les anomalies et créer des workflows afin de résoudre les problèmes de qualité des données.

Découvrir Databand
Solutions d’intégration de données

Créez des pipelines de données résilients, performants et optimisés en termes de coûts pour vos initiatives d’IA générative, vos analyses en temps réel, la modernisation de vos entrepôts et vos besoins opérationnels avec les solutions d’intégration des données d’IBM.

Découvrir les solutions d’intégration des données
Services de conseil pour les données et les analyses

Avec IBM Consulting, exploitez les données de votre entreprise et développez une organisation basée sur les informations pour tirer des avantages métier.

Découvrir les services d’analytique
Passez à l’étape suivante

Pour prospérer, les entreprises doivent exploiter les données pour fidéliser leur clientèle, automatiser les processus métier et innover avec des solutions pilotées par l’IA.

  1. Explorer les solutions d’analytique
  2. Découvrir les services d’analytique
Notes de bas de page

1Chapter 4 – Fundamentals of algorithms.” Electronic Design Automation. 2009.

2DAGs.” Apache Airflow. Consulté le 28 février 2025.

3Machine learning in causal inference for epidemiology." European Journal of Epidemiology. 13 novembre 2024

4DAG-Plan: Generating Directed Acyclic Dependency Graphs for Dual-Arm Cooperative Planning.” arXiv.org. 30 juin 2024.

5RT-DAG: DAG-Based Blockchain Supporting Real-Time Transactions.” IEEE. 24 juin 2024.

6DAG blockchain-based lightweight authentication and authorization scheme for IoT devices." Journal of Information Security and Applications. Mai 2022.