Vous êtes sur la page 1sur 13

INF 4017 - Complexité et algorithmique avancée

SOMMAIRE

INTRODUCTION 2

1. Description et typologie du problème 3

2. Quelques applications dans le monde réel du problème 4

3. Formalisation du problème 5

4. Proposition d’un algorithme 6

5. Evaluation détaillée de la complexité de l’algorithme 7

6. Implémentation en C++ 8

7. Tableau d'expérimentations de l'implémentation 12

CONCLUSION 13

Page 1/13
INF 4017 - Complexité et algorithmique avancée

INTRODUCTION

Un algorithme est une suite d'opérations finies et concises visant à résoudre un


problème précis . Nous pouvons donc associer a chaque probleme un algorithme precis.
Dans le cadre de notre devoir il sera question pour nous de presenter le probleme du
plus grand carre blanc et de proposer un algorithme qui permettra de resoudre ce
probleme.

Page 2/13
INF 4017 - Complexité et algorithmique avancée

1. Description et typologie du problème

On considère le problème suivant : étant donné une image monochrome n x n,


déterminer le plus grand carré blanc, i.e. qui ne contient aucun point noir. Déterminer
la taille PGCB(x,y) du plus grand carré blanc dont le pixel en bas à droite a pour
coordonnées (x,y).
Un carré m x m de pixels C est blanc si et seulement si :
● le pixel en bas à droite de C est blanc ;
● Les trois carrés (m-1) x (m-1) en haut à gauche, en haut à droite et en bas à
gauche sont tous blancs.

Page 3/13
INF 4017 - Complexité et algorithmique avancée

2. Quelques applications dans le monde réel du problème

Tous les algorithmes sont appliqués à des domaines précis afin de resoudre un
probleme précis de la vie courante.Concernant le PGCB nous pouvons citer comme
application:
● Le traitement d’images pour la détection d’un élément sur une image

Page 4/13
INF 4017 - Complexité et algorithmique avancée

3. Formalisation du problème

Relation de récurrence

● Si le pixel (x,y) est noir, alors : PGCB(x,y)=0.


● Si (x,y) est blanc et dans la première ligne en haut ou la première colonne à
gauche, alors : PGCB(x,y)=1.
● Si (x,y) est blanc et ni dans la première ligne en haut ni dans la première colonne
à gauche, alors :
PGCB(x,y) = 1 + min{PGCB(x-1,y-1),PGCB(x,y-1),PGCB(x-1,y)}.:

Page 5/13
INF 4017 - Complexité et algorithmique avancée

4. Proposition d’un algorithme

L’algorithme est donc le suivant:

Algorithme : PGCB

Entrées : n : La taille du carré

Sortie: pgcb(x,y) : le plus grand carré blanc de l’image

Variables: x,y : entier

Début:
pour x = 1 à n faire
pour y = 1 à n faire
si (x,y) est noir faire
pgcb[x,y] = 0
sinon si x = 1 ou y = 1 faire
pgcb[x,y] = 1
sinon faire
pgcb[x,y] = 1 + min{pgcb(x-1,y-1),pgcb(x,y-1),pgcb(x-1,y)}
fin si
fin pour
fin pour

Fin

Page 6/13
INF 4017 - Complexité et algorithmique avancée

5. Evaluation détaillée de la complexité de l’algorithme

Nombre de cases du tableau : n2 . Complexité de calcul d'une case : Θ(1). Complexité


temporelle : Θ(n2 ).
La taille du plus grand carré blanc est :
maxx=1,...,nmaxy=1,...,n pgcb[x,y] (version itérative)
Ce calcul requiert de parcourir les n2 cases du tableau pgcb, et se fait donc en Θ(n2). La
complexité globale de l'algorithme de programmation dynamique est donc Θ(n2).

Page 7/13
INF 4017 - Complexité et algorithmique avancée

6. Implémentation en C++

Page 8/13
INF 4017 - Complexité et algorithmique avancée

Page 9/13
INF 4017 - Complexité et algorithmique avancée

Page 10/13
INF 4017 - Complexité et algorithmique avancée

Page 11/13
INF 4017 - Complexité et algorithmique avancée

7. Tableau d'expérimentations de l'implémentation

Page 12/13
INF 4017 - Complexité et algorithmique avancée

CONCLUSION

En definitive tout au long de notre devoir il etait question pour nous de presenter
le probleme du plus grand carre blanc d’une part et de proposer un algorithme de
resolution qui a ete implemente par la suite. Nous avons donc implémenté un
algorithme de complexite O(n^2).

Page 13/13

Vous aimerez peut-être aussi