Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une...

141
Diagrammes de Décision Binaires Etienne Renault & Alban Linard Avril 2015 https://www.lrde.epita.fr/~renault/teaching/imc/ Renault Etienne BDD Avril 2015 1 / 40

Transcript of Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une...

Page 1: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Diagrammes de Décision Binaires

Etienne Renault & Alban Linard

Avril 2015

https://www.lrde.epita.fr/~renault/teaching/imc/

Renault Etienne BDD Avril 2015 1 / 40

Page 2: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

BDD ? Prérequis. . .

Renault Etienne BDD Avril 2015 2 / 40

Page 3: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Pourquoi un cours sur une structure de données ?

Commençons par un exemple simple :Modèle lequel ?

Algorithme lequel ?

Nécessite de parcourir tous les étatsQuelques nombres intéressants :

ÉtatsMémoire (1 état = 8 octet)

800.000.000 To

Temps (109 états/seconde)

3.170 ans

Renault Etienne Introduction Avril 2015 3 / 40

Page 4: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Pourquoi un cours sur une structure de données ?

Commençons par un exemple simple :Modèle Ping, 20 clients

Algorithme lequel ?

Nécessite de parcourir tous les étatsQuelques nombres intéressants :

ÉtatsMémoire (1 état = 8 octet)

800.000.000 To

Temps (109 états/seconde)

3.170 ans

Renault Etienne Introduction Avril 2015 3 / 40

Page 5: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Pourquoi un cours sur une structure de données ?

Commençons par un exemple simple :Modèle Ping, 20 clients

Algorithme Accessibilité

(aucun état ne doit vérifier une propriété p)Nécessite de parcourir tous les états

Quelques nombres intéressants :États

Mémoire (1 état = 8 octet)

800.000.000 To

Temps (109 états/seconde)

3.170 ans

Renault Etienne Introduction Avril 2015 3 / 40

Page 6: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Pourquoi un cours sur une structure de données ?

Commençons par un exemple simple :Modèle Ping, 20 clients

Algorithme Accessibilité (aucun état ne doit vérifier une propriété p)

Nécessite de parcourir tous les étatsQuelques nombres intéressants :

ÉtatsMémoire (1 état = 8 octet)

800.000.000 To

Temps (109 états/seconde)

3.170 ans

Renault Etienne Introduction Avril 2015 3 / 40

Page 7: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Pourquoi un cours sur une structure de données ?

Commençons par un exemple simple :Modèle Ping, 20 clients

Algorithme Accessibilité (aucun état ne doit vérifier une propriété p)Nécessite de parcourir tous les états

Quelques nombres intéressants :États

Mémoire (1 état = 8 octet)

800.000.000 To

Temps (109 états/seconde)

3.170 ans

Renault Etienne Introduction Avril 2015 3 / 40

Page 8: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Pourquoi un cours sur une structure de données ?

Commençons par un exemple simple :Modèle Ping, 20 clients

Algorithme Accessibilité (aucun état ne doit vérifier une propriété p)Nécessite de parcourir tous les états

Quelques nombres intéressants :États un peu moins de 1020

Mémoire (1 état = 8 octet)

800.000.000 To

Temps (109 états/seconde)

3.170 ans

Renault Etienne Introduction Avril 2015 3 / 40

Page 9: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Pourquoi un cours sur une structure de données ?

Commençons par un exemple simple :Modèle Ping, 20 clients

Algorithme Accessibilité (aucun état ne doit vérifier une propriété p)Nécessite de parcourir tous les états

Quelques nombres intéressants :États un peu moins de 1020

Mémoire (1 état = 8 octet) 800.000.000 ToTemps (109 états/seconde)

3.170 ans

Renault Etienne Introduction Avril 2015 3 / 40

Page 10: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Pourquoi un cours sur une structure de données ?

Commençons par un exemple simple :Modèle Ping, 20 clients

Algorithme Accessibilité (aucun état ne doit vérifier une propriété p)Nécessite de parcourir tous les états

Quelques nombres intéressants :États un peu moins de 1020

Mémoire (1 état = 8 octet) 800.000.000 ToTemps (109 états/seconde) 3.170 ans

Renault Etienne Introduction Avril 2015 3 / 40

Page 11: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Facile à résoudre, ce problème !

On a l’habitude :I d’accélérer des traitements :

I cachesI structures de données adaptées (tri, hash, . . .)I . . .

I de gagner de la mémoire :I compressionI partageI . . .

Les deux en même temps ?

Renault Etienne Introduction Avril 2015 4 / 40

Page 12: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Facile à résoudre, ce problème !

On a l’habitude :I d’accélérer des traitements :

I cachesI structures de données adaptées (tri, hash, . . .)I . . .

I de gagner de la mémoire :I compressionI partageI . . .

Les deux en même temps ?

Renault Etienne Introduction Avril 2015 4 / 40

Page 13: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Ah, pas vraiment, en fait. . .

Il faut à la fois :I un gain mémoire de plusieurs ordres de grandeurI un gain temps de plusieurs ordres de grandeur

Renault Etienne Introduction Avril 2015 5 / 40

Page 14: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

C’est quoi la solution miracle ?

Une structure de données : les Diagrammes de Décision (Binaires) !Binary Decision Diagrams, BDD [5]

Ce cours présenteI la structure de donnéesI comment représenter des étatsI comment représenter des transitionsI comment générer un espace d’états

Renault Etienne Introduction Avril 2015 6 / 40

Page 15: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

C’est quoi la solution miracle ?

Une structure de données : les Diagrammes de Décision (Binaires) !Binary Decision Diagrams, BDD [5]

Ce cours présenteI la structure de donnéesI comment représenter des étatsI comment représenter des transitionsI comment générer un espace d’états

Renault Etienne Introduction Avril 2015 6 / 40

Page 16: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Que représente-t-on ?

Ce que l’on souhaite représenter :

I Les états (état initial, états accessibles)I Les transitions entre états

Ce qu’un BDD représente :

I une fonction Bn → B explicitementI exemple 1 : f (a, b, c) = c ∧ (a ∧ b)

I exemple 2 : g(a, b, c) = c ∧ (a ∨ b)

I (j’avoue, f et g sont identiques)Problèmes (abordés plus loin) :

I Caractéristiques des modèles ↔ utilisation des BDDs ?I Traduction du modèle en BDDs ?

Renault Etienne Principes Avril 2015 7 / 40

Page 17: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Que représente-t-on ?

Ce que l’on souhaite représenter :I Les états (état initial, états accessibles)I Les transitions entre états

Ce qu’un BDD représente :

I une fonction Bn → B explicitementI exemple 1 : f (a, b, c) = c ∧ (a ∧ b)

I exemple 2 : g(a, b, c) = c ∧ (a ∨ b)

I (j’avoue, f et g sont identiques)Problèmes (abordés plus loin) :

I Caractéristiques des modèles ↔ utilisation des BDDs ?I Traduction du modèle en BDDs ?

Renault Etienne Principes Avril 2015 7 / 40

Page 18: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Que représente-t-on ?

Ce que l’on souhaite représenter :I Les états (état initial, états accessibles)I Les transitions entre états

Ce qu’un BDD représente :I une fonction Bn → B explicitement

I exemple 1 : f (a, b, c) = c ∧ (a ∧ b)

I exemple 2 : g(a, b, c) = c ∧ (a ∨ b)

I (j’avoue, f et g sont identiques)Problèmes (abordés plus loin) :

I Caractéristiques des modèles ↔ utilisation des BDDs ?I Traduction du modèle en BDDs ?

Renault Etienne Principes Avril 2015 7 / 40

Page 19: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Que représente-t-on ?

Ce que l’on souhaite représenter :I Les états (état initial, états accessibles)I Les transitions entre états

Ce qu’un BDD représente :I une fonction Bn → B explicitementI exemple 1 : f (a, b, c) = c ∧ (a ∧ b)

I exemple 2 : g(a, b, c) = c ∧ (a ∨ b)

I (j’avoue, f et g sont identiques)Problèmes (abordés plus loin) :

I Caractéristiques des modèles ↔ utilisation des BDDs ?I Traduction du modèle en BDDs ?

Renault Etienne Principes Avril 2015 7 / 40

Page 20: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Que représente-t-on ?

Ce que l’on souhaite représenter :I Les états (état initial, états accessibles)I Les transitions entre états

Ce qu’un BDD représente :I une fonction Bn → B explicitementI exemple 1 : f (a, b, c) = c ∧ (a ∧ b)

I exemple 2 : g(a, b, c) = c ∧ (a ∨ b)

I (j’avoue, f et g sont identiques)

Problèmes (abordés plus loin) :

I Caractéristiques des modèles ↔ utilisation des BDDs ?I Traduction du modèle en BDDs ?

Renault Etienne Principes Avril 2015 7 / 40

Page 21: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Que représente-t-on ?

Ce que l’on souhaite représenter :I Les états (état initial, états accessibles)I Les transitions entre états

Ce qu’un BDD représente :I une fonction Bn → B explicitementI exemple 1 : f (a, b, c) = c ∧ (a ∧ b)

I exemple 2 : g(a, b, c) = c ∧ (a ∨ b)

I (j’avoue, f et g sont identiques)Problèmes (abordés plus loin) :

I Caractéristiques des modèles ↔ utilisation des BDDs ?I Traduction du modèle en BDDs ?

Renault Etienne Principes Avril 2015 7 / 40

Page 22: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Que représente-t-on ?

Ce que l’on souhaite représenter :I Les états (état initial, états accessibles)I Les transitions entre états

Ce qu’un BDD représente :I une fonction Bn → B explicitementI exemple 1 : f (a, b, c) = c ∧ (a ∧ b)

I exemple 2 : g(a, b, c) = c ∧ (a ∨ b)

I (j’avoue, f et g sont identiques)Problèmes (abordés plus loin) :I Caractéristiques des modèles ↔ utilisation des BDDs ?

I Traduction du modèle en BDDs ?

Renault Etienne Principes Avril 2015 7 / 40

Page 23: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Que représente-t-on ?

Ce que l’on souhaite représenter :I Les états (état initial, états accessibles)I Les transitions entre états

Ce qu’un BDD représente :I une fonction Bn → B explicitementI exemple 1 : f (a, b, c) = c ∧ (a ∧ b)

I exemple 2 : g(a, b, c) = c ∧ (a ∨ b)

I (j’avoue, f et g sont identiques)Problèmes (abordés plus loin) :I Caractéristiques des modèles ↔ utilisation des BDDs ?I Traduction du modèle en BDDs ?

Renault Etienne Principes Avril 2015 7 / 40

Page 24: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Comment représenter explicitement une fonction ?

Tables de vérité :

f (a, b, c) = c ∧ (a ∧ b)

a b c f0 0 0 10 0 1 00 1 0 00 1 1 01 0 0 11 0 1 01 1 0 11 1 1 0

g(a, b, c) = c ∧ (a ∨ b)

c b a g0 0 0 10 0 1 10 1 0 00 1 1 11 0 0 01 0 1 01 1 0 01 1 1 0

RemarqueI les variables sont ordonnées

Renault Etienne Tables de vérité Avril 2015 8 / 40

Page 25: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Comment représenter explicitement une fonction ?

Tables de vérité :

f (a, b, c) = c ∧ (a ∧ b)a b c f0 0 0 10 0 1 00 1 0 00 1 1 01 0 0 11 0 1 01 1 0 11 1 1 0

g(a, b, c) = c ∧ (a ∨ b)

c b a g0 0 0 10 0 1 10 1 0 00 1 1 11 0 0 01 0 1 01 1 0 01 1 1 0

RemarqueI les variables sont ordonnées

Renault Etienne Tables de vérité Avril 2015 8 / 40

Page 26: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Comment représenter explicitement une fonction ?

Tables de vérité :

f (a, b, c) = c ∧ (a ∧ b)a b c f0 0 0 10 0 1 00 1 0 00 1 1 01 0 0 11 0 1 01 1 0 11 1 1 0

g(a, b, c) = c ∧ (a ∨ b)c b a g0 0 0 10 0 1 10 1 0 00 1 1 11 0 0 01 0 1 01 1 0 01 1 1 0

RemarqueI les variables sont ordonnées

Renault Etienne Tables de vérité Avril 2015 8 / 40

Page 27: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Comment compresser ?

Certaines parties de la table de vérité sont inutiles :

1 les lignes dont le résultat est 0 (ou 1)2 les cellules sans influence sur le résultat

f (a, b, c) = c ∧ (a ∧ b)a b c f0 0 0 10 0 1 00 1 0 00 1 1 01 0 0 11 0 1 01 1 0 11 1 1 0

g(a, b, c) = c ∧ (a ∨ b)c b a f0 0 0 10 0 1 10 1 0 00 1 1 11 0 0 01 0 1 01 1 0 01 1 1 0

Renault Etienne Tables de vérité Avril 2015 9 / 40

Page 28: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Comment compresser ?

Certaines parties de la table de vérité sont inutiles :1 les lignes dont le résultat est 0 (ou 1)

2 les cellules sans influence sur le résultat

f (a, b, c) = c ∧ (a ∧ b)a b c f0 0 0 10 0 1 00 1 0 00 1 1 01 0 0 11 0 1 01 1 0 11 1 1 0

g(a, b, c) = c ∧ (a ∨ b)c b a f0 0 0 10 0 1 10 1 0 00 1 1 11 0 0 01 0 1 01 1 0 01 1 1 0

Renault Etienne Tables de vérité Avril 2015 9 / 40

Page 29: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Comment compresser ?

Certaines parties de la table de vérité sont inutiles :1 les lignes dont le résultat est 0 (ou 1)

2 les cellules sans influence sur le résultat

f (a, b, c) = c ∧ (a ∧ b)a b c f0 0 0 10 0 1 00 1 0 00 1 1 01 0 0 11 0 1 01 1 0 11 1 1 0

g(a, b, c) = c ∧ (a ∨ b)c b a f0 0 0 10 0 1 10 1 0 00 1 1 11 0 0 01 0 1 01 1 0 01 1 1 0

Renault Etienne Tables de vérité Avril 2015 9 / 40

Page 30: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Comment compresser ?

Certaines parties de la table de vérité sont inutiles :1 les lignes dont le résultat est 0 (ou 1)

2 les cellules sans influence sur le résultat

f (a, b, c) = c ∧ (a ∧ b)a b c f0 0 0 10 0 1 00 1 0 00 1 1 01 0 0 11 0 1 01 1 0 11 1 1 0

g(a, b, c) = c ∧ (a ∨ b)c b a f0 0 0 10 0 1 10 1 0 00 1 1 11 0 0 01 0 1 01 1 0 01 1 1 0

Renault Etienne Tables de vérité Avril 2015 9 / 40

Page 31: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Comment compresser ?

Certaines parties de la table de vérité sont inutiles :1 les lignes dont le résultat est 0 (ou 1)2 les cellules sans influence sur le résultat

f (a, b, c) = c ∧ (a ∧ b)a b c f0 0 0 10 0 1 00 1 0 00 1 1 01 0 0 11 0 1 01 1 0 11 1 1 0

g(a, b, c) = c ∧ (a ∨ b)c b a f0 0 0 10 0 1 10 1 0 00 1 1 11 0 0 01 0 1 01 1 0 01 1 1 0

Renault Etienne Tables de vérité Avril 2015 9 / 40

Page 32: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Comment compresser ?

Certaines parties de la table de vérité sont inutiles :1 les lignes dont le résultat est 0 (ou 1)2 les cellules sans influence sur le résultat

f (a, b, c) = c ∧ (a ∧ b)a b c f0 0 0 10 0 1 00 1 0 00 1 1 01 0 0 11 0 1 01 1 0 11 1 1 0

g(a, b, c) = c ∧ (a ∨ b)c b a f0 0 0 10 0 1 10 1 0 00 1 1 11 0 0 01 0 1 01 1 0 01 1 1 0

Renault Etienne Tables de vérité Avril 2015 9 / 40

Page 33: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Comment compresser ?

Certaines parties de la table de vérité sont inutiles :1 les lignes dont le résultat est 0 (ou 1)2 les cellules sans influence sur le résultat

f (a, b, c) = c ∧ (a ∧ b)a b c f0 0 0 10 0 1 00 1 0 00 1 1 01 0 0 11 0 1 01 1 0 11 1 1 0

g(a, b, c) = c ∧ (a ∨ b)c b a f0 0 0 10 0 1 10 1 0 00 1 1 11 0 0 01 0 1 01 1 0 01 1 1 0

Renault Etienne Tables de vérité Avril 2015 9 / 40

Page 34: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Comment compresser ?

Certaines parties de la table de vérité sont inutiles :1 les lignes dont le résultat est 0 (ou 1)2 les cellules sans influence sur le résultat

f (a, b, c) = c ∧ (a ∧ b)a b c f0 0 0 10 0 1 00 1 0 00 1 1 01 0 0 11 0 1 01 1 0 11 1 1 0

g(a, b, c) = c ∧ (a ∨ b)c b a f0 0 0 10 0 1 10 1 0 00 1 1 11 0 0 01 0 1 01 1 0 01 1 1 0

Renault Etienne Tables de vérité Avril 2015 9 / 40

Page 35: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Peut-on compresser plus ?

CurryficationLa curryfication consiste à transformer une fonction travaillant sur nvariables en une fonction travaillant sur seulement l’une d’elle. Sonrésultat n’est pas une valeur mais une fonction définie sur les n − 1variables restantes. Celle-ci retourne la même valeur que la fonctiond’origine.

Renault Etienne Arbre de Décision Avril 2015 10 / 40

Page 36: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Peut-on compresser plus ?Curryfication

l e t f a b c = ( not c ) && not ( ( not a ) && b ) ; ;l e t f_a = f t r u e ; ;l e t f_ab = f_a t r u e ; ;l e t r e s u l t = f_ab f a l s e ; ;

a

b

c

f (a, b, c) 1 0 0 0 1 0 1 0

c c c c

b b

a

0 1

c

b

a

g(a, b, c) 1 1 0 1 0 0 0 0

a a a a

b b

c

Renault Etienne Arbre de Décision Avril 2015 11 / 40

Page 37: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Peut-on compresser plus ?Curryfication

l e t f a b c = ( not c ) && not ( ( not a ) && b ) ; ;l e t f_a = f t r u e ; ;l e t f_ab = f_a t r u e ; ;l e t r e s u l t = f_ab f a l s e ; ;

a

b

c

f (a, b, c) 1 0 0 0 1 0 1 0

c c c c

b b

a

0 1

c

b

a

g(a, b, c) 1 1 0 1 0 0 0 0

a a a a

b b

c

Renault Etienne Arbre de Décision Avril 2015 11 / 40

Page 38: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Peut-on compresser plus ?Curryfication

l e t f a b c = ( not c ) && not ( ( not a ) && b ) ; ;l e t f_a = f t r u e ; ;l e t f_ab = f_a t r u e ; ;l e t r e s u l t = f_ab f a l s e ; ;

a

b

c

f (a, b, c) 1 0 0 0 1 0 1 0

c c c c

b b

a

0 1

c

b

a

g(a, b, c) 1 1 0 1 0 0 0 0

a a a a

b b

c

Renault Etienne Arbre de Décision Avril 2015 11 / 40

Page 39: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Encore plus ?

I Fusion des nœuds équivalentsI Récursivement, de bas en haut

a

b

c

f (a, b, c) 1 0 0 0 1 0 1 0

c c c c

b b

a c

b

a

g(a, b, c) 1 1 0 1 0 0 0 0

a a a a

b b

c

Renault Etienne Diagramme de Décision Avril 2015 12 / 40

Page 40: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Encore plus ?

I Fusion des nœuds équivalentsI Récursivement, de bas en haut

a

b

c

f (a, b, c) 1 0 0 0 1 0 1 0

c c c c

b b

a c

b

a

g(a, b, c) 1 1 0 1 0 0 0 0

a a a a

b b

c

Renault Etienne Diagramme de Décision Avril 2015 12 / 40

Page 41: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Encore plus ?

I Fusion des nœuds équivalentsI Récursivement, de bas en haut

a

b

c

f (a, b, c) 0 1

c c c c

b b

a c

b

a

g(a, b, c) 1 1 0 1 0 0 0 0

a a a a

b b

c

Renault Etienne Diagramme de Décision Avril 2015 12 / 40

Page 42: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Encore plus ?

I Fusion des nœuds équivalentsI Récursivement, de bas en haut

a

b

c

f (a, b, c) 0 1

c c c c

b b

a c

b

a

g(a, b, c) 1 1 0 1 0 0 0 0

a a a a

b b

c

Renault Etienne Diagramme de Décision Avril 2015 12 / 40

Page 43: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Encore plus ?

I Fusion des nœuds équivalentsI Récursivement, de bas en haut

a

b

c

f (a, b, c) 0 1

c c c c

b b

a c

b

a

g(a, b, c) 1 1 0 1 0 0 0 0

a a a a

b b

c

Renault Etienne Diagramme de Décision Avril 2015 12 / 40

Page 44: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Encore plus ?

I Fusion des nœuds équivalentsI Récursivement, de bas en haut

a

b

c

f (a, b, c) 0 1

c c

b b

a c

b

a

g(a, b, c) 1 1 0 1 0 0 0 0

a a a a

b b

c

Renault Etienne Diagramme de Décision Avril 2015 12 / 40

Page 45: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Encore plus ?

I Fusion des nœuds équivalentsI Récursivement, de bas en haut

a

b

c

f (a, b, c) 0 1

c c

b b

a c

b

a

g(a, b, c) 1 1 0 1 0 0 0 0

a a a a

b b

c

Renault Etienne Diagramme de Décision Avril 2015 12 / 40

Page 46: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Encore plus ?

I Fusion des nœuds équivalentsI Récursivement, de bas en haut

a

b

c

f (a, b, c) 0 1

c c

b b

a c

b

a

g(a, b, c) 1 1 0 1 0 0 0 0

a a a a

b b

c

Renault Etienne Diagramme de Décision Avril 2015 12 / 40

Page 47: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Encore plus ?

I Fusion des nœuds équivalentsI Récursivement, de bas en haut

a

b

c

f (a, b, c) 0 1

c c

b b

a c

b

a

g(a, b, c) 1 1 0 1 0 0 0 0

a a a a

b b

c

Renault Etienne Diagramme de Décision Avril 2015 12 / 40

Page 48: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Encore plus ?

I Fusion des nœuds équivalentsI Récursivement, de bas en haut

a

b

c

f (a, b, c) 0 1

c c

b b

a c

b

a

g(a, b, c) 1 1 0 1 0 0 0 0

a a a a

b b

c

Renault Etienne Diagramme de Décision Avril 2015 12 / 40

Page 49: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Encore plus ?

I Fusion des nœuds équivalentsI Récursivement, de bas en haut

a

b

c

f (a, b, c) 0 1

c c

b b

a c

b

a

g(a, b, c) 1 1 0 1 0 0 0 0

a a a a

b b

c

Renault Etienne Diagramme de Décision Avril 2015 12 / 40

Page 50: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Encore plus ?

I Fusion des nœuds équivalentsI Récursivement, de bas en haut

a

b

c

f (a, b, c) 0 1

c c

b b

a c

b

a

g(a, b, c) 1 0

a a a a

b b

c

Renault Etienne Diagramme de Décision Avril 2015 12 / 40

Page 51: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Encore plus ?

I Fusion des nœuds équivalentsI Récursivement, de bas en haut

a

b

c

f (a, b, c) 0 1

c c

b b

a c

b

a

g(a, b, c) 1 0

a a a a

b b

c

Renault Etienne Diagramme de Décision Avril 2015 12 / 40

Page 52: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Encore plus ?

I Fusion des nœuds équivalentsI Récursivement, de bas en haut

a

b

c

f (a, b, c) 0 1

c c

b b

a c

b

a

g(a, b, c) 1 0

a a a a

b b

c

Renault Etienne Diagramme de Décision Avril 2015 12 / 40

Page 53: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Encore plus ?

I Fusion des nœuds équivalentsI Récursivement, de bas en haut

a

b

c

f (a, b, c) 0 1

c c

b b

a c

b

a

g(a, b, c) 1 0

a a a

b b

c

Renault Etienne Diagramme de Décision Avril 2015 12 / 40

Page 54: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Encore plus ?

I Fusion des nœuds équivalentsI Récursivement, de bas en haut

a

b

c

f (a, b, c) 0 1

c c

b b

a c

b

a

g(a, b, c) 1 0

a a a

b b

c

Renault Etienne Diagramme de Décision Avril 2015 12 / 40

Page 55: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Encore plus ?

I Fusion des nœuds équivalentsI Récursivement, de bas en haut

a

b

c

f (a, b, c) 0 1

c c

b b

a c

b

a

g(a, b, c) 1 0

a a a

b b

c

Renault Etienne Diagramme de Décision Avril 2015 12 / 40

Page 56: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Encore plus ?

I Fusion des nœuds équivalentsI Récursivement, de bas en haut

a

b

c

f (a, b, c) 0 1

c c

b b

a c

b

a

g(a, b, c) 1 0

a a a

b b

c

Renault Etienne Diagramme de Décision Avril 2015 12 / 40

Page 57: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Encore plus ?

I Fusion des nœuds équivalentsI Récursivement, de bas en haut

a

b

c

f (a, b, c) 0 1

c c

b b

a c

b

a

g(a, b, c) 1 0

a a a

b b

c

Renault Etienne Diagramme de Décision Avril 2015 12 / 40

Page 58: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Encore plus ?

I Fusion des nœuds équivalentsI Récursivement, de bas en haut

a

b

c

f (a, b, c) 0 1

c c

b b

a c

b

a

g(a, b, c) 1 0

a a a

b b

c

Renault Etienne Diagramme de Décision Avril 2015 12 / 40

Page 59: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Et les compressions de la table ?

I Suppression des lignes donnant 0I Suppression des cellules inutiles (« Don’t care », BDD)I Suppression des cellules inutiles (« Zero-Suppressed », ZDD)

Tous les noeuds dont l’arc ’vrai’ va vers le terminal zero peuventêtre supprimés.

a

b

c

f (a, b, c) 0 1

c c

b b

a c

b

a

g(a, b, c) 1 0

a a a

b b

c

Renault Etienne Compressions Avril 2015 13 / 40

Page 60: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Et les compressions de la table ?I Suppression des lignes donnant 0

I Suppression des cellules inutiles (« Don’t care », BDD)I Suppression des cellules inutiles (« Zero-Suppressed », ZDD)

Tous les noeuds dont l’arc ’vrai’ va vers le terminal zero peuventêtre supprimés.

a

b

c

f (a, b, c) 0 1

c c

b b

a c

b

a

g(a, b, c) 1 0

a a a

b b

c

Renault Etienne Compressions Avril 2015 13 / 40

Page 61: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Et les compressions de la table ?I Suppression des lignes donnant 0

I Suppression des cellules inutiles (« Don’t care », BDD)I Suppression des cellules inutiles (« Zero-Suppressed », ZDD)

Tous les noeuds dont l’arc ’vrai’ va vers le terminal zero peuventêtre supprimés.

a

b

c

f (a, b, c) 0 1

c c

b b

a c

b

a

g(a, b, c) 1 0

a a a

b b

c

Renault Etienne Compressions Avril 2015 13 / 40

Page 62: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Et les compressions de la table ?I Suppression des lignes donnant 0

I Suppression des cellules inutiles (« Don’t care », BDD)I Suppression des cellules inutiles (« Zero-Suppressed », ZDD)

Tous les noeuds dont l’arc ’vrai’ va vers le terminal zero peuventêtre supprimés.

a

b

c

f (a, b, c) 1

c c

b b

a c

b

a

g(a, b, c) 1 0

a a a

b b

c

Renault Etienne Compressions Avril 2015 13 / 40

Page 63: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Et les compressions de la table ?I Suppression des lignes donnant 0

I Suppression des cellules inutiles (« Don’t care », BDD)I Suppression des cellules inutiles (« Zero-Suppressed », ZDD)

Tous les noeuds dont l’arc ’vrai’ va vers le terminal zero peuventêtre supprimés.

a

b

c

f (a, b, c) 1

c c

b b

a c

b

a

g(a, b, c) 1 0

a a a

b b

c

Renault Etienne Compressions Avril 2015 13 / 40

Page 64: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Et les compressions de la table ?I Suppression des lignes donnant 0

I Suppression des cellules inutiles (« Don’t care », BDD)I Suppression des cellules inutiles (« Zero-Suppressed », ZDD)

Tous les noeuds dont l’arc ’vrai’ va vers le terminal zero peuventêtre supprimés.

a

b

c

f (a, b, c) 1

c

b b

a c

b

a

g(a, b, c) 1 0

a a a

b b

c

Renault Etienne Compressions Avril 2015 13 / 40

Page 65: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Et les compressions de la table ?I Suppression des lignes donnant 0

I Suppression des cellules inutiles (« Don’t care », BDD)I Suppression des cellules inutiles (« Zero-Suppressed », ZDD)

Tous les noeuds dont l’arc ’vrai’ va vers le terminal zero peuventêtre supprimés.

a

b

c

f (a, b, c) 1

c

b b

a c

b

a

g(a, b, c) 1 0

a a a

b b

c

Renault Etienne Compressions Avril 2015 13 / 40

Page 66: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Et les compressions de la table ?I Suppression des lignes donnant 0

I Suppression des cellules inutiles (« Don’t care », BDD)I Suppression des cellules inutiles (« Zero-Suppressed », ZDD)

Tous les noeuds dont l’arc ’vrai’ va vers le terminal zero peuventêtre supprimés.

a

b

c

f (a, b, c) 1

c

b b

a c

b

a

g(a, b, c) 1 0

a a a

b b

c

Renault Etienne Compressions Avril 2015 13 / 40

Page 67: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Et les compressions de la table ?I Suppression des lignes donnant 0

I Suppression des cellules inutiles (« Don’t care », BDD)I Suppression des cellules inutiles (« Zero-Suppressed », ZDD)

Tous les noeuds dont l’arc ’vrai’ va vers le terminal zero peuventêtre supprimés.

a

b

c

f (a, b, c) 1

c

b b

a c

b

a

g(a, b, c) 1

a a a

b b

c

Renault Etienne Compressions Avril 2015 13 / 40

Page 68: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Et les compressions de la table ?I Suppression des lignes donnant 0

I Suppression des cellules inutiles (« Don’t care », BDD)I Suppression des cellules inutiles (« Zero-Suppressed », ZDD)

Tous les noeuds dont l’arc ’vrai’ va vers le terminal zero peuventêtre supprimés.

a

b

c

f (a, b, c) 1

c

b b

a c

b

a

g(a, b, c) 1

a a a

b b

c

Renault Etienne Compressions Avril 2015 13 / 40

Page 69: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Et les compressions de la table ?I Suppression des lignes donnant 0

I Suppression des cellules inutiles (« Don’t care », BDD)I Suppression des cellules inutiles (« Zero-Suppressed », ZDD)

Tous les noeuds dont l’arc ’vrai’ va vers le terminal zero peuventêtre supprimés.

a

b

c

f (a, b, c) 1

c

b b

a c

b

a

g(a, b, c) 1

a a

b b

c

Renault Etienne Compressions Avril 2015 13 / 40

Page 70: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Et les compressions de la table ?I Suppression des lignes donnant 0

I Suppression des cellules inutiles (« Don’t care », BDD)I Suppression des cellules inutiles (« Zero-Suppressed », ZDD)

Tous les noeuds dont l’arc ’vrai’ va vers le terminal zero peuventêtre supprimés.

a

b

c

f (a, b, c) 1

c

b b

a c

b

a

g(a, b, c) 1

a a

b b

c

Renault Etienne Compressions Avril 2015 13 / 40

Page 71: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Et les compressions de la table ?I Suppression des lignes donnant 0

I Suppression des cellules inutiles (« Don’t care », BDD)I Suppression des cellules inutiles (« Zero-Suppressed », ZDD)

Tous les noeuds dont l’arc ’vrai’ va vers le terminal zero peuventêtre supprimés.

a

b

c

f (a, b, c) 1

c

b b

a c

b

a

g(a, b, c) 1

a a

b

c

Renault Etienne Compressions Avril 2015 13 / 40

Page 72: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Et les compressions de la table ?I Suppression des lignes donnant 0I Suppression des cellules inutiles (« Don’t care », BDD)

I Suppression des cellules inutiles (« Zero-Suppressed », ZDD)Tous les noeuds dont l’arc ’vrai’ va vers le terminal zero peuventêtre supprimés.

a

b

c

f (a, b, c) 1

c

b b

a c

b

a

g(a, b, c) 1

a a

b

c

Renault Etienne Compressions Avril 2015 13 / 40

Page 73: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Et les compressions de la table ?I Suppression des lignes donnant 0I Suppression des cellules inutiles (« Don’t care », BDD)

I Suppression des cellules inutiles (« Zero-Suppressed », ZDD)Tous les noeuds dont l’arc ’vrai’ va vers le terminal zero peuventêtre supprimés.

a

b

c

f (a, b, c) 1

c

b b

a c

b

a

g(a, b, c) 1

a a

b

c

Renault Etienne Compressions Avril 2015 13 / 40

Page 74: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Et les compressions de la table ?I Suppression des lignes donnant 0I Suppression des cellules inutiles (« Don’t care », BDD)

I Suppression des cellules inutiles (« Zero-Suppressed », ZDD)Tous les noeuds dont l’arc ’vrai’ va vers le terminal zero peuventêtre supprimés.

a

b

c

f (a, b, c) 1

c

b

a c

b

a

g(a, b, c) 1

a a

b

c

Renault Etienne Compressions Avril 2015 13 / 40

Page 75: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Et les compressions de la table ?I Suppression des lignes donnant 0I Suppression des cellules inutiles (« Don’t care », BDD)

I Suppression des cellules inutiles (« Zero-Suppressed », ZDD)Tous les noeuds dont l’arc ’vrai’ va vers le terminal zero peuventêtre supprimés.

a

b

c

f (a, b, c) 1

c

b

a c

b

a

g(a, b, c) 1

a a

b

c

Renault Etienne Compressions Avril 2015 13 / 40

Page 76: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Et les compressions de la table ?I Suppression des lignes donnant 0I Suppression des cellules inutiles (« Don’t care », BDD)

I Suppression des cellules inutiles (« Zero-Suppressed », ZDD)Tous les noeuds dont l’arc ’vrai’ va vers le terminal zero peuventêtre supprimés.

a

b

c

f (a, b, c) 1

c

b

a c

b

a

g(a, b, c) 1

a a

b

c

Renault Etienne Compressions Avril 2015 13 / 40

Page 77: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Et les compressions de la table ?I Suppression des lignes donnant 0I Suppression des cellules inutiles (« Don’t care », BDD)

I Suppression des cellules inutiles (« Zero-Suppressed », ZDD)Tous les noeuds dont l’arc ’vrai’ va vers le terminal zero peuventêtre supprimés.

a

b

c

f (a, b, c) 1

c

b

a c

b

a

g(a, b, c) 1

a

b

c

Renault Etienne Compressions Avril 2015 13 / 40

Page 78: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Et les compressions de la table ?I Suppression des lignes donnant 0I Suppression des cellules inutiles (« Don’t care », BDD)

I Suppression des cellules inutiles (« Zero-Suppressed », ZDD)Tous les noeuds dont l’arc ’vrai’ va vers le terminal zero peuventêtre supprimés.

a

b

c

f (a, b, c) 1

c

b

a c

b

a

g(a, b, c) 1

a

b

c

Renault Etienne Compressions Avril 2015 13 / 40

Page 79: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Et les compressions de la table ?I Suppression des lignes donnant 0I Suppression des cellules inutiles (« Don’t care », BDD)I Suppression des cellules inutiles (« Zero-Suppressed », ZDD)

Tous les noeuds dont l’arc ’vrai’ va vers le terminal zero peuventêtre supprimés.a

b

c

f (a, b, c) 1

c

b b

a c

b

a

g(a, b, c) 1

a a

b

c

Renault Etienne Compressions Avril 2015 13 / 40

Page 80: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Et les compressions de la table ?I Suppression des lignes donnant 0I Suppression des cellules inutiles (« Don’t care », BDD)I Suppression des cellules inutiles (« Zero-Suppressed », ZDD)

Tous les noeuds dont l’arc ’vrai’ va vers le terminal zero peuventêtre supprimés.a

b

c

f (a, b, c) 1

c

b b

a c

b

a

g(a, b, c) 1

a a

b

c

Renault Etienne Compressions Avril 2015 13 / 40

Page 81: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Et les compressions de la table ?I Suppression des lignes donnant 0I Suppression des cellules inutiles (« Don’t care », BDD)I Suppression des cellules inutiles (« Zero-Suppressed », ZDD)

Tous les noeuds dont l’arc ’vrai’ va vers le terminal zero peuventêtre supprimés.a

b

c

f (a, b, c) 1

b b

a c

b

a

g(a, b, c) 1

a a

b

c

Renault Etienne Compressions Avril 2015 13 / 40

Page 82: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Et les compressions de la table ?I Suppression des lignes donnant 0I Suppression des cellules inutiles (« Don’t care », BDD)I Suppression des cellules inutiles (« Zero-Suppressed », ZDD)

Tous les noeuds dont l’arc ’vrai’ va vers le terminal zero peuventêtre supprimés.a

b

c

f (a, b, c) 1

b b

a c

b

a

g(a, b, c) 1

a a

b

c

Renault Etienne Compressions Avril 2015 13 / 40

Page 83: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Et les compressions de la table ?I Suppression des lignes donnant 0I Suppression des cellules inutiles (« Don’t care », BDD)I Suppression des cellules inutiles (« Zero-Suppressed », ZDD)

Tous les noeuds dont l’arc ’vrai’ va vers le terminal zero peuventêtre supprimés.a

b

c

f (a, b, c) 1

b b

a c

b

a

g(a, b, c) 1

a a

b

c

Renault Etienne Compressions Avril 2015 13 / 40

Page 84: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Et les compressions de la table ?I Suppression des lignes donnant 0I Suppression des cellules inutiles (« Don’t care », BDD)I Suppression des cellules inutiles (« Zero-Suppressed », ZDD)

Tous les noeuds dont l’arc ’vrai’ va vers le terminal zero peuventêtre supprimés.a

b

c

f (a, b, c) 1

b

a c

b

a

g(a, b, c) 1

a a

b

c

Renault Etienne Compressions Avril 2015 13 / 40

Page 85: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Et les compressions de la table ?I Suppression des lignes donnant 0I Suppression des cellules inutiles (« Don’t care », BDD)I Suppression des cellules inutiles (« Zero-Suppressed », ZDD)

Tous les noeuds dont l’arc ’vrai’ va vers le terminal zero peuventêtre supprimés.a

b

c

f (a, b, c) 1

b

a c

b

a

g(a, b, c) 1

a a

b

c

Renault Etienne Compressions Avril 2015 13 / 40

Page 86: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Et les compressions de la table ?I Suppression des lignes donnant 0I Suppression des cellules inutiles (« Don’t care », BDD)I Suppression des cellules inutiles (« Zero-Suppressed », ZDD)

Tous les noeuds dont l’arc ’vrai’ va vers le terminal zero peuventêtre supprimés.a

b

c

f (a, b, c) 1

b

a c

b

a

g(a, b, c) 1

a a

b

c

Renault Etienne Compressions Avril 2015 13 / 40

Page 87: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Et les compressions de la table ?I Suppression des lignes donnant 0I Suppression des cellules inutiles (« Don’t care », BDD)I Suppression des cellules inutiles (« Zero-Suppressed », ZDD)

Tous les noeuds dont l’arc ’vrai’ va vers le terminal zero peuventêtre supprimés.a

b

c

f (a, b, c) 1

b

a c

b

a

g(a, b, c) 1

a a

b

Renault Etienne Compressions Avril 2015 13 / 40

Page 88: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Un bonus ?

CanonicitéÉtant donné un ordre sur les variables, toute fonction est représentéepar un unique BDD (ou ZDD) [13, 1, 5]

Conséquence :I pour un même ordre de variables, égalité de deux fonctions en

temps constant : O(1)

Renault Etienne Canonicité Avril 2015 14 / 40

Page 89: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Problème : Ordre des variables

Nous avons vu :I que le nombre de nœuds dépend de l’ordre des variablesI que les compressions dépendent de l’ordre des variables

À retenirEn fixant les compressions (BDD ou ZDD), trouver le meilleur ordreest un problème NP-complet ! [11, 16, 3, 7]

Comment choisir un ordre ?

I Au hasard ! (la plupart du temps)I Connaissance du modèle [12, 2, 15]I Modification et test dynamique [10]

Renault Etienne Problème de l’ordre Avril 2015 15 / 40

Page 90: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Problème : Ordre des variables

Nous avons vu :I que le nombre de nœuds dépend de l’ordre des variablesI que les compressions dépendent de l’ordre des variables

À retenirEn fixant les compressions (BDD ou ZDD), trouver le meilleur ordreest un problème NP-complet ! [11, 16, 3, 7]

Comment choisir un ordre ?I Au hasard ! (la plupart du temps)I Connaissance du modèle [12, 2, 15]I Modification et test dynamique [10]

Renault Etienne Problème de l’ordre Avril 2015 15 / 40

Page 91: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Manipulation

I Nous savons créer un BDD à la main. . .I Quelles sont les manipulations possibles ?

Renault Etienne Manipulation Avril 2015 16 / 40

Page 92: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Opérations ensemblistes : APPLY

I ∪,∩, \, . . .I Opérandes sur

les mêmesvariables

I Opérateur surle terminal

APPLY(lhs, rhs, �) = switch docase lhs ∈ {0, 1}∧ rhs ∈ {0, 1}

result ← lhs � rhscase lhs.var = rhs.var

result.var ← lhs.var;result.lhs ← APPLY(lhs.false, rhs.false, �);result.rhs ← APPLY(lhs.true, rhs.true, �);

case lhs.var < rhs.varresult.var ← lhs.var;result.lhs ← APPLY(lhs.false, rhs, �);result.rhs ← APPLY(lhs.true, rhs, �);

case lhs.var > rhs.varresult.var ← rhs.var;result.lhs ← APPLY(lhs, rhs.false, �);result.rhs ← APPLY(lhs, rhs.true, �);

return result;

Renault Etienne Manipulation Avril 2015 17 / 40

Page 93: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

APPLY (Exemple f ∨ g)

a

b

c

d

0 1

a

c

d

0 1

case lhs ∈ {0, 1}∧ rhs ∈ {0, 1}result ← lhs � rhs

case lhs.var = rhs.varresult.var ← lhs.var;result.lhs ← APPLY(lhs.false, rhs.false);result.rhs ← APPLY(lhs.true, rhs.true);

case lhs.var < rhs.varresult.var ← lhs.var;result.lhs ← APPLY(lhs.false, rhs);result.rhs ← APPLY(lhs.true, rhs);

case lhs.var > rhs.varresult.var ← rhs.var;result.lhs ← APPLY(lhs, rhs.false);result.rhs ← APPLY(lhs, rhs.true);

Renault Etienne Manipulation Avril 2015 18 / 40

Page 94: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

APPLY (Exemple f ∨ g)

a

b

c

d

0 1

a

c

d

0 1

a

b

c

d

0 1

Renault Etienne Manipulation Avril 2015 18 / 40

Page 95: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

APPLY (Exemple f ∨ g)

a

b

c

d

0 1

a

c

d

0 1

I Nécessité d’un cache : on nerecalcule pas une opérationdéjà effectuée

Renault Etienne Manipulation Avril 2015 18 / 40

Page 96: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Calcul de résultat : RESTRICT

I Calculer lafonctiong = f (x ⇒ v)

I Peut s’appliqueritérativementjusqu’à ce quetoutes lesvariables soientliées

RESTRICT(bdd , variable, value) = switch docase bdd .var = variable ∧ 6 value

result ← bdd .falsecase bdd .var = variable ∧ value

result ← bdd .truecase bdd .var < variable

result.var ← variable ;result.false ← RESTRICT(bdd .false,variable,value);result.true ← RESTRICT(bdd .true,variable,value);

case bdd .var > variableresult.var ← bdd

return result;

Renault Etienne Manipulation Avril 2015 19 / 40

Page 97: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

RESTRICT (Exemple f |b)

a

b b

c c

0 1

case bdd .var = variable ∧ 6 valueresult ← bdd .false

case bdd .var = variable ∧ valueresult ← bdd .true

case bdd .var < variableresult.var ← variable ;result.false ←RESTRICT(bdd .false,variable,value);result.true ←RESTRICT(bdd .true,variable,value);

case bdd .var > variableresult.var ← bdd

Renault Etienne Manipulation Avril 2015 20 / 40

Page 98: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

RESTRICT (Exemple f |b)

a

b b

c c

0 1

c

0 1

Renault Etienne Manipulation Avril 2015 20 / 40

Page 99: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Ca marche vraiment ?

Oui ! Et depuis longtemps :1990 [4]1992 [6] : « 1020 states and beyond. . . »

Renault Etienne Performances Avril 2015 21 / 40

Page 100: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Pourquoi ça fonctionne ?

Mémoire :I Canonicité =⇒ fonctions identiques représentées qu’une seule

foisI Curryfication =⇒ partage de fonctionsI Compressions =⇒ gain variable selon certaines caractéristiques

de la fonctionsTemps :I Caches de calcul pour chaque nœud =⇒ parcours de graphe,

pas d’arbre

Renault Etienne Performances Avril 2015 22 / 40

Page 101: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Représentation d’ensembles

Model checkingI Ensemble d’états

Que signifie le terminal ?

true l’état est dansl’ensemble

false l’état est hors del’ensemble

Quelles sont les variables ?

I Encodage binaire d’un état

I Il doit y avoir un nombre fixéde bits manipulés

Renault Etienne Représentation des états Avril 2015 23 / 40

Page 102: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Représentation d’ensembles

Model checkingI Ensemble d’états

Que signifie le terminal ?

true l’état est dansl’ensemble

false l’état est hors del’ensemble

Quelles sont les variables ?

I Encodage binaire d’un état

I Il doit y avoir un nombre fixéde bits manipulés

Renault Etienne Représentation des états Avril 2015 23 / 40

Page 103: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Représentation d’ensembles

Model checkingI Ensemble d’états

Que signifie le terminal ?

true l’état est dansl’ensemble

false l’état est hors del’ensemble

Quelles sont les variables ?

I Encodage binaire d’un état

I Il doit y avoir un nombre fixéde bits manipulés

Renault Etienne Représentation des états Avril 2015 23 / 40

Page 104: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Représentation d’ensembles

Model checkingI Ensemble d’états

Que signifie le terminal ?

true l’état est dansl’ensemble

false l’état est hors del’ensemble

Quelles sont les variables ?

I Encodage binaire d’un état

I Il doit y avoir un nombre fixéde bits manipulés

Renault Etienne Représentation des états Avril 2015 23 / 40

Page 105: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Représentation d’ensembles

Model checkingI Ensemble d’états

Que signifie le terminal ?

true l’état est dansl’ensemble

false l’état est hors del’ensemble

Quelles sont les variables ?

I Encodage binaire d’un état

I Il doit y avoir un nombre fixéde bits manipulés

Renault Etienne Représentation des états Avril 2015 23 / 40

Page 106: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Représentation d’ensembles

Model checkingI Ensemble d’états

Que signifie le terminal ?

true l’état est dansl’ensemble

false l’état est hors del’ensemble

Quelles sont les variables ?

I Encodage binaire d’un état

I Il doit y avoir un nombre fixéde bits manipulés

a b c d e

Renault Etienne Représentation des états Avril 2015 23 / 40

Page 107: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Représentation d’ensembles

Model checkingI Ensemble d’états

Que signifie le terminal ?

true l’état est dansl’ensemble

false l’état est hors del’ensemble

Quelles sont les variables ?

I Encodage binaire d’un étatI Il doit y avoir un nombre fixé

de bits manipulés

a b c d e

Renault Etienne Représentation des états Avril 2015 23 / 40

Page 108: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Quelles sont les variables du système ?

Tout dépend du formalisme !

Automate

Identifiant de l’état

Réseau de Petri

Marquages des places

Programme

Variables globales, état de la pile, état du tas

Les variables sont les bits de la représentation binaire d’un état !

Renault Etienne Représentation des états Avril 2015 24 / 40

Page 109: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Quelles sont les variables du système ?

Tout dépend du formalisme !

AutomateIdentifiant de l’état

Réseau de Petri

Marquages des places

Programme

Variables globales, état de la pile, état du tas

Les variables sont les bits de la représentation binaire d’un état !

Renault Etienne Représentation des états Avril 2015 24 / 40

Page 110: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Quelles sont les variables du système ?

Tout dépend du formalisme !

AutomateIdentifiant de l’état

Réseau de PetriMarquages des places

Programme

Variables globales, état de la pile, état du tas

Les variables sont les bits de la représentation binaire d’un état !

Renault Etienne Représentation des états Avril 2015 24 / 40

Page 111: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Quelles sont les variables du système ?

Tout dépend du formalisme !

AutomateIdentifiant de l’état

Réseau de PetriMarquages des places

ProgrammeVariables globales, état de la pile, état du tas

Les variables sont les bits de la représentation binaire d’un état !

Renault Etienne Représentation des états Avril 2015 24 / 40

Page 112: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Quelles sont les variables du système ?

Tout dépend du formalisme !

AutomateIdentifiant de l’état

Réseau de PetriMarquages des places

ProgrammeVariables globales, état de la pile, état du tas

Les variables sont les bits de la représentation binaire d’un état !

Renault Etienne Représentation des états Avril 2015 24 / 40

Page 113: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Quelques exemples

Renault Etienne Représentation des états Avril 2015 25 / 40

Page 114: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Que faire si on manipule des entiers ?

BorneIl est nécessaire que les bornes soient connues.

À partir des bornes, on détermine le nombre de bits de lareprésentation, donc le nombre de variables.

Que faire si on ne connaît pas les bornes ?

Utiliser d’autres Diagrammes de Décision : DDDs [8] et SDDs [9]

Renault Etienne Représentation des états Avril 2015 26 / 40

Page 115: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Que faire si on manipule des entiers ?

BorneIl est nécessaire que les bornes soient connues.

À partir des bornes, on détermine le nombre de bits de lareprésentation, donc le nombre de variables.

Que faire si on ne connaît pas les bornes ?

Utiliser d’autres Diagrammes de Décision : DDDs [8] et SDDs [9]

Renault Etienne Représentation des états Avril 2015 26 / 40

Page 116: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Que faire si on manipule des entiers ?

BorneIl est nécessaire que les bornes soient connues.

À partir des bornes, on détermine le nombre de bits de lareprésentation, donc le nombre de variables.

Que faire si on ne connaît pas les bornes ?Utiliser d’autres Diagrammes de Décision : DDDs [8] et SDDs [9]

Renault Etienne Représentation des états Avril 2015 26 / 40

Page 117: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Adéquation des optimisations ?Quelles compressions conviennent au modèle ?

Suprimer le terminal true

S’il y a plus d’états accessibles que non accessibles(aucun package de BDD ne le fait)

Supprimer le terminal false

S’il y a plus d’états non accessibles qu’accessibles

« Don’t care »

Si le modèle est plutôt synchrone (BDD)

« Zero-Suppressed »

Si le modèle est plutôt asynchrone [14] (ZDD)

Renault Etienne Représentation des états Avril 2015 27 / 40

Page 118: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Adéquation des optimisations ?Quelles compressions conviennent au modèle ?

Suprimer le terminal trueS’il y a plus d’états accessibles que non accessibles(aucun package de BDD ne le fait)

Supprimer le terminal false

S’il y a plus d’états non accessibles qu’accessibles

« Don’t care »

Si le modèle est plutôt synchrone (BDD)

« Zero-Suppressed »

Si le modèle est plutôt asynchrone [14] (ZDD)

Renault Etienne Représentation des états Avril 2015 27 / 40

Page 119: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Adéquation des optimisations ?Quelles compressions conviennent au modèle ?

Suprimer le terminal trueS’il y a plus d’états accessibles que non accessibles(aucun package de BDD ne le fait)

Supprimer le terminal falseS’il y a plus d’états non accessibles qu’accessibles

« Don’t care »

Si le modèle est plutôt synchrone (BDD)

« Zero-Suppressed »

Si le modèle est plutôt asynchrone [14] (ZDD)

Renault Etienne Représentation des états Avril 2015 27 / 40

Page 120: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Adéquation des optimisations ?Quelles compressions conviennent au modèle ?

Suprimer le terminal trueS’il y a plus d’états accessibles que non accessibles(aucun package de BDD ne le fait)

Supprimer le terminal falseS’il y a plus d’états non accessibles qu’accessibles

« Don’t care »Si le modèle est plutôt synchrone (BDD)

« Zero-Suppressed »

Si le modèle est plutôt asynchrone [14] (ZDD)

Renault Etienne Représentation des états Avril 2015 27 / 40

Page 121: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Adéquation des optimisations ?Quelles compressions conviennent au modèle ?

Suprimer le terminal trueS’il y a plus d’états accessibles que non accessibles(aucun package de BDD ne le fait)

Supprimer le terminal falseS’il y a plus d’états non accessibles qu’accessibles

« Don’t care »Si le modèle est plutôt synchrone (BDD)

« Zero-Suppressed »Si le modèle est plutôt asynchrone [14] (ZDD)

Renault Etienne Représentation des états Avril 2015 27 / 40

Page 122: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Qu’est-ce qu’une transition ?

00

01 10

11

α β

γ δ

ε

α

x1

x2

x′1

x′2

1

β

x1

x2

x′1

x′2

1

γ

x1

x2

x′1

x′2

1

δ

x1

x2

x′1

x′2

1

ε

x1

x2

x′1

x′2

1

I Une transition est une relation entre deux étatsI Codée par l’état de départ et l’état d’arrivéeI Si un état est codé par n variables, une transition est codée par

2n variablesRenault Etienne Représentation des transitions Avril 2015 28 / 40

Page 123: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Qu’est-ce qu’une transition ?

00

01 10

11

α β

γ δ

ε

α

x1

x2

x′1

x′2

1

β

x1

x2

x′1

x′2

1

γ

x1

x2

x′1

x′2

1

δ

x1

x2

x′1

x′2

1

ε

x1

x2

x′1

x′2

1

I Une transition est une relation entre deux étatsI Codée par l’état de départ et l’état d’arrivéeI Si un état est codé par n variables, une transition est codée par

2n variablesRenault Etienne Représentation des transitions Avril 2015 28 / 40

Page 124: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Qu’est-ce qu’une transition ?

00

01 10

11

α β

γ δ

ε

α

x1

x2

x′1

x′2

1

β

x1

x2

x′1

x′2

1

γ

x1

x2

x′1

x′2

1

δ

x1

x2

x′1

x′2

1

ε

x1

x2

x′1

x′2

1

I Une transition est une relation entre deux étatsI Codée par l’état de départ et l’état d’arrivéeI Si un état est codé par n variables, une transition est codée par

2n variablesRenault Etienne Représentation des transitions Avril 2015 28 / 40

Page 125: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Qu’est-ce qu’une transition ?

00

01 10

11

α β

γ δ

ε

α

x1

x2

x′1

x′2

1

β

x1

x2

x′1

x′2

1

γ

x1

x2

x′1

x′2

1

δ

x1

x2

x′1

x′2

1

ε

x1

x2

x′1

x′2

1

I Une transition est une relation entre deux étatsI Codée par l’état de départ et l’état d’arrivéeI Si un état est codé par n variables, une transition est codée par

2n variablesRenault Etienne Représentation des transitions Avril 2015 28 / 40

Page 126: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Qu’est-ce qu’une transition ?

00

01 10

11

α β

γ δ

ε

α

x1

x2

x′1

x′2

1

β

x1

x2

x′1

x′2

1

γ

x1

x2

x′1

x′2

1

δ

x1

x2

x′1

x′2

1

ε

x1

x2

x′1

x′2

1

I Une transition est une relation entre deux étatsI Codée par l’état de départ et l’état d’arrivéeI Si un état est codé par n variables, une transition est codée par

2n variablesRenault Etienne Représentation des transitions Avril 2015 28 / 40

Page 127: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Qu’est-ce qu’une transition ?

00

01 10

11

α β

γ δ

ε

α

x1

x2

x′1

x′2

1

β

x1

x2

x′1

x′2

1

γ

x1

x2

x′1

x′2

1

δ

x1

x2

x′1

x′2

1

ε

x1

x2

x′1

x′2

1

I Une transition est une relation entre deux étatsI Codée par l’état de départ et l’état d’arrivéeI Si un état est codé par n variables, une transition est codée par

2n variablesRenault Etienne Représentation des transitions Avril 2015 28 / 40

Page 128: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Représentation de l’ensemble des transitions

TransitionI Relation entre v1, . . . vn variables d’entrée et v ′1, . . . v

′n variables

de sortie

Ensemble de transitionsI On manipule des ensembles d’états

I On applique des ensembles de transitions !I T =

∑i ti

Renault Etienne Représentation des transitions Avril 2015 29 / 40

Page 129: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Représentation de l’ensemble des transitions

TransitionI Relation entre v1, . . . vn variables d’entrée et v ′1, . . . v

′n variables

de sortie

Ensemble de transitionsI On manipule des ensembles d’étatsI On applique des ensembles de transitions !

I T =∑

i ti

Renault Etienne Représentation des transitions Avril 2015 29 / 40

Page 130: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Représentation de l’ensemble des transitions

TransitionI Relation entre v1, . . . vn variables d’entrée et v ′1, . . . v

′n variables

de sortie

Ensemble de transitionsI On manipule des ensembles d’étatsI On applique des ensembles de transitions !I T =

∑i ti

Renault Etienne Représentation des transitions Avril 2015 29 / 40

Page 131: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Bibliothèques de BDDs

I CUDD "Le meilleur" (à ma connaissance)I BuDDy Utilisé souventI JavaBDD Interface Java sur plusieurs bibliothèques de BDDI libsdd Next-Gen !

Renault Etienne Représentation des transitions Avril 2015 30 / 40

Page 132: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Bibliothèques de BDDs : CUDD

DdManager ∗manager ;DdNode ∗ f , ∗ var , ∗tmp ;i n t i ;

. . .f = Cudd_ReadOne (manager ) ;Cudd_Ref ( f ) ;f o r ( i = 3 ; i >= 0 ; i−−) {

va r = Cudd_bddIthVar (manager , i ) ;tmp = Cudd_bddAnd(manager , Cudd_Not ( va r ) , f ) ;Cudd_Ref ( tmp ) ;Cudd_Recurs iveDere f ( manager , f ) ;f = tmp ;

}

Renault Etienne Représentation des transitions Avril 2015 31 / 40

Page 133: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Bibliothèques de BDDs : BuDDy

bdd x , y , z ;

bdd_in i t ( 1000 , 100 ) ;bdd_setvarnum ( 5 ) ;

x = bdd_ithvar ( 0 ) ;y = bdd_ithvar ( 1 ) ;z = bdd_addref ( bdd_apply ( x , y , bddop_and ) ) ;

bdd_pr i n t t ab l e ( z ) ;bdd_de l r e f ( z ) ;bdd_done ( ) ;

Renault Etienne Représentation des transitions Avril 2015 32 / 40

Page 134: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Bibliothèques de BDDs : libsdd

c l a s s I n c ( I n d u c t i v e ) :def __init__( s e l f , var ,max ) :

super ( Inc , s e l f ) . __init__( va r )s e l f .max = max

@propagate ( F a l s e )def v a l u e s ( s e l f , var , v a l ) :

re tu rn [ v + 1 f o r v i n v a l i f v < s e l f .max ]

def main ( ) :d = node ( "a" ,0 , node ( "b" ,0 , node ( "b" ,0 ,ONE) ) )p r i n t " O r i g i n a l ␣␣ : " , de v en t s = f i x p o i n t ( add ( [ ID , I n c ( "b" ,3 ) ] ) )f i n a l = ev en t s ( d )p r i n t " Re su l t ␣␣␣␣ : " , f i n a l

Renault Etienne Représentation des transitions Avril 2015 33 / 40

Page 135: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Langages de manipulation

I CrocoPatMale ( "John" ) ;Female ( " A l i c e " ) ;ParentOf ( "John" , " A l i c e " ) ;FatherOf ( x , y ) := ParentOf ( x , y ) & Male ( x ) ;MotherOf ( x , y ) := ParentOf ( x , y ) & Female ( x ) ;ParentOf ( x , y ) := MotherOf ( x , y ) | FatherOf ( x , y ) ;Parent ( x ) := EX( y , ParentOf ( x , y ) ) ;C h i l d l e s s ( x ) := FA( y , ! ParentOf ( x , y ) ) ;

I JeddExemple trop gros pour montrer. . .

Renault Etienne Représentation des transitions Avril 2015 34 / 40

Page 136: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

ConclusionI Structure de données efficace en temps et mémoireI Adapté à la représentation d’ensembles d’étatsI Manipulation peu aisée

I Bibliothèques adaptées aux formalismesI Langages de manipulation

Renault Etienne Représentation des transitions Avril 2015 35 / 40

Page 137: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Bibliographie I

S. B. Akers. Binary decision diagrams, June 1978.

Beate Bollig, Martin Lobbing, and Ingo Wegener. Simulatedannealing to improve variable orderings for obdds.In In Int’l Workshop on Logic Synth, pages 5–5, 1995.

Beate Bollig and Ingo Wegener. Improving the variable orderingof obdds is np-complete.IEEE Trans. Comput., 45(9) :993–1002, 1996.

Karl S. Brace, Richard L. Rudell, and Randal E. Bryant. Efficientimplementation of a bdd package.In DAC ’90 : Proceedings of the 27th ACM/IEEE conference onDesign automation, pages 40–45, New York, NY, USA, 1990.ACM.

Renault Etienne Représentation des transitions Avril 2015 36 / 40

Page 138: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Bibliographie II

Randal E. Bryant. Graph-based algorithms for boolean functionmanipulation.IEEE Transactions on Computers, 35(8) :677–691, 1986.

Jerry R. Burch, Edmund M. Clarke, Kenneth L. McMillan,David L. Dill, and L. J. Hwang. Symbolic model checking :10**20 states and beyond.Inf. Comput., 98(2) :142–170, 1992.

G. Cabodi, S. Quer, Ch. Meinel, H. Sack, A. Slobodova, andC. Stangier. Binary decision diagrams and the multiple variableorder problem, 1998.

Renault Etienne Représentation des transitions Avril 2015 37 / 40

Page 139: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Bibliographie IIIJean-Michel Couvreur, Emmanuelle Encrenaz, EmmanuelPaviot-Adet, Denis Poitrenaud, and Pierre-Andrà c© Wacrenier.Data decision diagrams for petri net analysis.Lecture Notes in Computer Science (LNCS), pages 101–120,Adelaide, Australia, 2002. Springer-Verlag.

Jean-Michel Couvreur and Yann Thierry-Mieg. Hierarchicaldecision diagrams to exploit model structure.Lecture Notes in Computer Science (LNCS), pages 443–457,Taipei, Taiwan, 2005. Springer-Verlag.

E. Felt, G. York, R. Brayton, and A. Sangiovanni-Vincentelli.Dynamic variable reordering for bdd minimization.Design Automation Conference, 1993, with EURO-VHDL ’93.Proceedings EURO-DAC ’93. European, pages 130–135, Sep1993.

Renault Etienne Représentation des transitions Avril 2015 38 / 40

Page 140: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Bibliographie IV

S. J. Friedman and K. J. Supowit. Finding the optimal variableordering for binary decision diagrams.IEEE Trans. Comput., 39(5) :710–713, 1990.

Hiroshige Fujii, Goichi Ootomo, and Chikahiro Hori. Interleavingbased variable ordering methods for ordered binary decisiondiagrams.In ICCAD ’93 : Proceedings of the 1993 IEEE/ACM internationalconference on Computer-aided design, pages 38–41, LosAlamitos, CA, USA, 1993. IEEE Computer Society Press.

C.Y. Lee. Representation of switching circuits by binary-decisionprograms, July 1959.

Renault Etienne Représentation des transitions Avril 2015 39 / 40

Page 141: Diagrammes de Décision Binairesrenault/teaching/imc/3-bdd.pdf · Pourquoi un cours sur une structure de données? Commençonsparunexemplesimple : ModèlePing,20clients Algorithmelequel?

Bibliographie V

Shin-ichi Minato. Zero-suppressed bdds for set manipulation incombinatorial problems.In DAC ’93 : Proceedings of the 30th international conference onDesign automation, pages 272–277, New York, NY, USA, 1993.ACM.

C. Scholl, B. Becker, and A. Brogle. Solving the multiple variableorder problem for binary decision diagrams by use of dynamicreordering techniques.Technical report, 1999.

Seiichiro Tani, Kiyoharu Hamaguchi, and Shuzo Yajima. Thecomplexity of the optimal variable ordering problem of sharedbinary decision diagrams.In ISAAC’93, volume 762, 1993.

Renault Etienne Représentation des transitions Avril 2015 40 / 40