29
Informatique th´ eorique : Construire des arbres dans le monde de Tetris et de Minecraft Alexandre Blondin Mass´ e epartement d’informatique Universit´ e du Qu´ ebec `a Montr´ eal 16 novembre 2016 Midi-conf´ erence du d´ epartement d’informatique Universit´ e de Montr´ eal A. Blondin Mass´ e (UQAM) 16 novembre 2016 1 / 26

Construire des arbres dans le monde de Tetris et de Minecraft ...2016/11/16  · I Multiplication de matrices; O(n2:3728639) I Test de primalit e. Le plus grand nombre premier connu

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Construire des arbres dans le monde de Tetris et de Minecraft ...2016/11/16  · I Multiplication de matrices; O(n2:3728639) I Test de primalit e. Le plus grand nombre premier connu

Informatique theorique : Construire des arbresdans le monde de Tetris et de Minecraft

Alexandre Blondin Masse

Departement d’informatiqueUniversite du Quebec a Montreal

16 novembre 2016Midi-conference du departement d’informatique

Universite de Montreal

A. Blondin Masse (UQAM) 16 novembre 2016 1 / 26

Page 2: Construire des arbres dans le monde de Tetris et de Minecraft ...2016/11/16  · I Multiplication de matrices; O(n2:3728639) I Test de primalit e. Le plus grand nombre premier connu

Table des matieres

1. Introduction

2. Polyominos

3. Polycubes

4. Conclusion

A. Blondin Masse (UQAM) 16 novembre 2016 2 / 26

Page 3: Construire des arbres dans le monde de Tetris et de Minecraft ...2016/11/16  · I Multiplication de matrices; O(n2:3728639) I Test de primalit e. Le plus grand nombre premier connu

Informatique theorique : qu’est-ce que c’est ?

I Discipline a l’intersection des mathematiques et del’informatique;

I S’interesse a la classification des problemes selon leurdifficulte :

I Problemes polynomiaux : peuvent etre resolus entemps O(nk);

I Problemes exponentiels : peuvent etre resolus entemps Ω(kn).

I Problemes indecidables : il est impossible deconstruire un algorithme pour resoudre le probleme.

A. Blondin Masse (UQAM) 16 novembre 2016 3 / 26

Page 4: Construire des arbres dans le monde de Tetris et de Minecraft ...2016/11/16  · I Multiplication de matrices; O(n2:3728639) I Test de primalit e. Le plus grand nombre premier connu

Quelques problemes celebres

I Probleme de la fouille. O(n)

I Probleme du tri; O(n log n)

I Recherche d’un mot dans un texte ? O(n + m)

I Multiplication de matrices; O(n2.3728639)

I Test de primalite. Le plus grand nombre premierconnu est

274 207 281 − 1 (22 338 618 chiffres)

O(log6 n)

I Decomposition en facteurs premiers. A la based’algorithmes de cryptographie. Ω(polynome) maiso(exponentiel).

A. Blondin Masse (UQAM) 16 novembre 2016 4 / 26

Page 5: Construire des arbres dans le monde de Tetris et de Minecraft ...2016/11/16  · I Multiplication de matrices; O(n2:3728639) I Test de primalit e. Le plus grand nombre premier connu

Quelques problemes celebres (2/2)

Prenons un graphe de n sommets et m aretes :

I Probleme du plus court chemin dans un graphe :

I Sans poids sur les aretes; O(n + m)

I Avec poids sur les aretes. O(m log n)

I Probleme du graphe eulerien/hamiltonien;O(non polynomial)

A. Blondin Masse (UQAM) 16 novembre 2016 5 / 26

Page 6: Construire des arbres dans le monde de Tetris et de Minecraft ...2016/11/16  · I Multiplication de matrices; O(n2:3728639) I Test de primalit e. Le plus grand nombre premier connu

La classe NP

I Classe de problemes tres importante en theorie de lacomplexite;

I NP 6= nonpolynomial ;

I NP = nondeterministic polynomial ;

I Intuitivement, il s’agit des problemes qu’on peut espererresoudre plus ou moins efficacement.

I Plus formellement, un probleme est de classe NP si, pourtout exemplaire, on peut lui associer

I un certificat de taille polynomiale et

I un algorithme de verification polynomial qui validece certificat.

A. Blondin Masse (UQAM) 16 novembre 2016 6 / 26

Page 7: Construire des arbres dans le monde de Tetris et de Minecraft ...2016/11/16  · I Multiplication de matrices; O(n2:3728639) I Test de primalit e. Le plus grand nombre premier connu

Exemples

I Est-ce que n est un nombre compose ?

I Certificat : deux nombres a et b;

I Verification : est-ce que ab = n ?

I Est-ce qu’une chaıne s apparaıt dans un texte t ?

I Certificat : deux indices i et j;

I Verification : est-ce que s = t[i, j] ?

I Est-ce que G est un graphe hamiltonien ?

I Certificat : une suite de sommets de G;

I Verification : est-ce la suite forme un cycle passantpar chaque sommet exactement une fois.

A. Blondin Masse (UQAM) 16 novembre 2016 7 / 26

Page 8: Construire des arbres dans le monde de Tetris et de Minecraft ...2016/11/16  · I Multiplication de matrices; O(n2:3728639) I Test de primalit e. Le plus grand nombre premier connu

Problemes NP-complet

Exemples de problemes NP-complets :

I Etant donne une formule logique, est-elle satisfiable ?

I Etant donne un graphe, possede-t-il un cyclehamiltonien ?

I Etant donne un graphe reliant n villes, existe-t-il unetournee de poids au plus k ?

A ce jour, on ne sait pas s’il est possible de resoudre cesproblemes en temps polynomial.

A. Blondin Masse (UQAM) 16 novembre 2016 8 / 26

Page 9: Construire des arbres dans le monde de Tetris et de Minecraft ...2016/11/16  · I Multiplication de matrices; O(n2:3728639) I Test de primalit e. Le plus grand nombre premier connu

Est-ce que P = NP ?

NP

NP-complet

P

I Un des problemes du millenaire !

A. Blondin Masse (UQAM) 16 novembre 2016 9 / 26

Page 10: Construire des arbres dans le monde de Tetris et de Minecraft ...2016/11/16  · I Multiplication de matrices; O(n2:3728639) I Test de primalit e. Le plus grand nombre premier connu

Table des matieres

1. Introduction

2. Polyominos

3. Polycubes

4. Conclusion

A. Blondin Masse (UQAM) 16 novembre 2016 10 / 26

Page 11: Construire des arbres dans le monde de Tetris et de Minecraft ...2016/11/16  · I Multiplication de matrices; O(n2:3728639) I Test de primalit e. Le plus grand nombre premier connu

Tetris

(source: The Tetris Company)

A. Blondin Masse (UQAM) 16 novembre 2016 11 / 26

Page 12: Construire des arbres dans le monde de Tetris et de Minecraft ...2016/11/16  · I Multiplication de matrices; O(n2:3728639) I Test de primalit e. Le plus grand nombre premier connu

Dominos

(source: apkpure.com)

A. Blondin Masse (UQAM) 16 novembre 2016 12 / 26

Page 13: Construire des arbres dans le monde de Tetris et de Minecraft ...2016/11/16  · I Multiplication de matrices; O(n2:3728639) I Test de primalit e. Le plus grand nombre premier connu

Polyominos

(source: David J. Goodger)

A. Blondin Masse (UQAM) 16 novembre 2016 13 / 26

Page 14: Construire des arbres dans le monde de Tetris et de Minecraft ...2016/11/16  · I Multiplication de matrices; O(n2:3728639) I Test de primalit e. Le plus grand nombre premier connu

Polyominos (suite)

I Ils ont ete beaucoup etudie par les chercheurs;

I Leur structure est tres complexe;

I Beaucoup de problemes difficiles :

I Combien y a-t-il de polyominos de n cellules ?Inconnu pour n ≥ 57;

I Peut-on paver le plan a l’aide d’un ensemble depolyominos donne ? Indecidable en general.

I Peut-on paver une region finie donnee avec unensemble de polyominos ? NP-complet.

A. Blondin Masse (UQAM) 16 novembre 2016 14 / 26

Page 15: Construire des arbres dans le monde de Tetris et de Minecraft ...2016/11/16  · I Multiplication de matrices; O(n2:3728639) I Test de primalit e. Le plus grand nombre premier connu

Dans chaque polyomino se cache un graphe

I Les sommets sont les cellules;

I Une arete relie deux cellules si elles partagent un cote.

I Un tel graphe peut contenir des cycles.

A. Blondin Masse (UQAM) 16 novembre 2016 15 / 26

Page 16: Construire des arbres dans le monde de Tetris et de Minecraft ...2016/11/16  · I Multiplication de matrices; O(n2:3728639) I Test de primalit e. Le plus grand nombre premier connu

Dans chaque polyomino se cache un graphe

I Les sommets sont les cellules;

I Une arete relie deux cellules si elles partagent un cote.

I Un tel graphe peut contenir des cycles.

A. Blondin Masse (UQAM) 16 novembre 2016 15 / 26

Page 17: Construire des arbres dans le monde de Tetris et de Minecraft ...2016/11/16  · I Multiplication de matrices; O(n2:3728639) I Test de primalit e. Le plus grand nombre premier connu

Dans chaque polyomino se cache un graphe

I Les sommets sont les cellules;

I Une arete relie deux cellules si elles partagent un cote.

I Un tel graphe peut contenir des cycles.

A. Blondin Masse (UQAM) 16 novembre 2016 15 / 26

Page 18: Construire des arbres dans le monde de Tetris et de Minecraft ...2016/11/16  · I Multiplication de matrices; O(n2:3728639) I Test de primalit e. Le plus grand nombre premier connu

Dans chaque polyomino se cache un graphe

I Les sommets sont les cellules;

I Une arete relie deux cellules si elles partagent un cote.

I Un tel graphe peut contenir des cycles.

A. Blondin Masse (UQAM) 16 novembre 2016 15 / 26

Page 19: Construire des arbres dans le monde de Tetris et de Minecraft ...2016/11/16  · I Multiplication de matrices; O(n2:3728639) I Test de primalit e. Le plus grand nombre premier connu

Polyominos arbres

I S’il n’y a pas de cycle, on parle de polyomino-arbre.

I Ce polyomino-arbre possede 4 feuilles.

A. Blondin Masse (UQAM) 16 novembre 2016 16 / 26

Page 20: Construire des arbres dans le monde de Tetris et de Minecraft ...2016/11/16  · I Multiplication de matrices; O(n2:3728639) I Test de primalit e. Le plus grand nombre premier connu

Nombre maximal de feuilles ?

I Considerons un polyomino-arbre de n cellules;

I Quel est le nombre maximal de feuilles qu’il peut posseder?

A. Blondin Masse (UQAM) 16 novembre 2016 17 / 26

Page 21: Construire des arbres dans le monde de Tetris et de Minecraft ...2016/11/16  · I Multiplication de matrices; O(n2:3728639) I Test de primalit e. Le plus grand nombre premier connu

Polyominos-arbres pleinement feuillus

Theoreme [B. M., Goupil, De Carufel, Samson; 2016]

Pour tout entier n ≥ 1, le nombre maximal de feuilles que peutposseder un polyomino-arbre est donne par

`2(n) =

0, si n = 1;

2, si n = 2;

n− 1, si n = 3, 4, 5;

`2(n− 4) + 2, si n ≥ 6.

DemonstrationPar construction et par contre-exemple minimal.

A. Blondin Masse (UQAM) 16 novembre 2016 18 / 26

Page 22: Construire des arbres dans le monde de Tetris et de Minecraft ...2016/11/16  · I Multiplication de matrices; O(n2:3728639) I Test de primalit e. Le plus grand nombre premier connu

Table des matieres

1. Introduction

2. Polyominos

3. Polycubes

4. Conclusion

A. Blondin Masse (UQAM) 16 novembre 2016 19 / 26

Page 23: Construire des arbres dans le monde de Tetris et de Minecraft ...2016/11/16  · I Multiplication de matrices; O(n2:3728639) I Test de primalit e. Le plus grand nombre premier connu

Minecraft

I Voir exemple en WebGL;

A. Blondin Masse (UQAM) 16 novembre 2016 20 / 26

Page 24: Construire des arbres dans le monde de Tetris et de Minecraft ...2016/11/16  · I Multiplication de matrices; O(n2:3728639) I Test de primalit e. Le plus grand nombre premier connu

Polycubes

I La version 3D des polyominos est appelee polycube;

I Chaque cellule a au plus 6 voisins plutot que 4;

I La question se pose aussi : quel est le nombre maximal defeuilles qu’on peut realiser dans un polycube-arbre ?

A. Blondin Masse (UQAM) 16 novembre 2016 21 / 26

Page 25: Construire des arbres dans le monde de Tetris et de Minecraft ...2016/11/16  · I Multiplication de matrices; O(n2:3728639) I Test de primalit e. Le plus grand nombre premier connu

Polycubes-arbres pleinement feuillus

Theoreme [B. M., Goupil, De Carufel, Samson; 2016]

Pour tout entier n ≥ 1, le nombre maximal de feuilles que peutposseder un polycube-arbre est donne par

`3(n) =

0, si n = 1;

f3(n) + 1, si n = 6, 7, 13, 19, 25;

f3(n), si 0 ≤ n ≤ 40 et n 6= 1, 6, 7, 13, 19, 25;

f3(n− 41) + 28, si 41 ≤ n ≤ 81;

`3(n− 41) + 28, si n ≥ 82.

ou

f3(n) =

b(2n + 2)/3c, si 0 ≤ n ≤ 11;

b(2n + 3)/3c, si 12 ≤ n ≤ 26;

b(2n + 4)/3c, si 27 ≤ n ≤ 40.

A. Blondin Masse (UQAM) 16 novembre 2016 22 / 26

Page 26: Construire des arbres dans le monde de Tetris et de Minecraft ...2016/11/16  · I Multiplication de matrices; O(n2:3728639) I Test de primalit e. Le plus grand nombre premier connu

Quelques polycubes pleinement feuillus

A. Blondin Masse (UQAM) 16 novembre 2016 23 / 26

Page 27: Construire des arbres dans le monde de Tetris et de Minecraft ...2016/11/16  · I Multiplication de matrices; O(n2:3728639) I Test de primalit e. Le plus grand nombre premier connu

Table des matieres

1. Introduction

2. Polyominos

3. Polycubes

4. Conclusion

A. Blondin Masse (UQAM) 16 novembre 2016 24 / 26

Page 28: Construire des arbres dans le monde de Tetris et de Minecraft ...2016/11/16  · I Multiplication de matrices; O(n2:3728639) I Test de primalit e. Le plus grand nombre premier connu

A quoi ca sert ?

I Pour etre honnete, probablement a rien;

I Mais...

I ... c’est amusant (selon le point de vue);

I ... il semblerait que ca puisse etre interessant enchimie.

I Plus precisement, on peut se demander si ces structuresapparaissent naturellement au niveau moleculaire ou dansles reseaux cristallins.

A. Blondin Masse (UQAM) 16 novembre 2016 25 / 26

Page 29: Construire des arbres dans le monde de Tetris et de Minecraft ...2016/11/16  · I Multiplication de matrices; O(n2:3728639) I Test de primalit e. Le plus grand nombre premier connu

La suite ?

I Etendre les resultats a d’autres reseaux;

I Etudier le probleme sur des graphes quelconques, pasnecessairement geometriques.

Conjecture

Le probleme de decider si un graphe simple quelconque possedeun sous-arbre induit de n cellules et ` feuilles estNP-complet.

A. Blondin Masse (UQAM) 16 novembre 2016 26 / 26