Thème : algorithmes et graphes
Download
Report
Transcript Thème : algorithmes et graphes
Algorithmes et graphes
Olivier Cogis
Professeur des Université
Informatique
Algorithmes et Graphes
olivier cogis
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
1
première partie
_______
Autour d’un algorithme numérique
Algorithmes et Graphes
olivier cogis
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
2
10
20
30
40
50
60
70
80
90
100
110
x = 50
y = 64
z=0
if 2*int(x/2) = x then 60
z = z+y
x = int(x/2)
if (x = 0) then 100
y = 2*y
goto 40
print z
end
Basic
Algorithmes et Graphes
olivier cogis
function Ahmes(a, b : integer) : integer ;
var
x, y , z : integer ;
begin
x := a ;
y := b ;
z := 0 ;
while x<>0 do
begin
if odd(x) then z := z+y ;
x := x div 2 ;
y := y*2 ;
end
Ahmes := z
end
Pascal
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
3
def ahmes(a,b) :
x=a
y=b
z=0
while x != 0 :
if x%2 == 1 :
z = z+y
x = int(x/2)
y = y*2
return z
Python
Algorithmes et Graphes
olivier cogis
static int ahmes(int a, int b) {
int x = a;
int y = b;
int z = 0;
while (x != 0) {
if (x % 2 == 1) {
z = z + y;
}
x = x / 2;
y = y * 2;
}
return z;
Java
}
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
4
donnée : deux entiers positifs ou nuls a et b
résultat : calcule dans …
Algorithmes et Graphes
olivier cogis
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
5
Une trace de avec a = 50 et y = 64
x
y
z
50
64
0
25
128
0
12
256
128
6
512
128
3
1024
128
1
2048
1152
0
4096
3200
Algorithmes et Graphes
olivier cogis
x¬a
y¬b
z¬0
tantque x ¹ 0 faire
é si impair(x) alors z ¬ z + y
ê
ê x ¬ x¸2
êë y ¬ y ´ 2
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
6
Principe de preuve par invariant
Soit l'instruction répétitive tantque < B > faire < I > où
• < B > est une expression booléenne
• < I > est une instruction
Soit P une propriété. On montre successivement que :
1. la propriété P est établie par l’initialisation
2. la propriété P est maintenue par chaque itération
3. la répétitive converge.
On en conclut que la propriété P < B > est satisfaite à la fin de
la répétitive
Algorithmes et Graphes
olivier cogis
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
7
donnée : deux entiers positifs ou nuls a et b
résultat : calcule dans …
z + xy = ab
∧x=0
Algorithmes et Graphes
olivier cogis
z = ab
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
8
Algorithmes et Graphes
olivier cogis
x
y
z
z+xy
50
64
0
3200
25
128
0
3200
12
256
128
3200
6
512
128
3200
3
1024
128
3200
1
2048
1152
3200
0
4096
3200
3200
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
9
donnée : deux entiers positifs ou nuls a et b
résultat : calcule dans z le produit ab
Algorithmes et Graphes
olivier cogis
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
10
donnée : deux entiers positifs ou nuls a et b
résultat : calcule dans z le produit ab
initialiser x, y et z de sorte que z + xy = ab
z + xy = ab
tantque x 0 faire
diminuer strictement la valeur de x
tout en conservant la valeur
de l'expression z + xy
∧x=0
Algorithmes et Graphes
olivier cogis
z = ab
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
11
donnée : deux entiers positifs ou nuls a et b
et un entier k ≥ 2
résultat : calcule dans z le produit ab
z + xy = ab
x a
y b
z 0
tantque x 0 faire
z z + (x mod k) y
x xk
y yk
z + xy
= z + (kq+r)y
= (z+ry) + q(yk)
= z’ + x’y’
∧x=0
Algorithmes et Graphes
olivier cogis
z = ab
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
12
x
y
z
4 5 0 0
1 2 3
0
1 3 5
9 0 0
4 5 0 0
_____________
+
1 3 5
9 0 0
4 5 0 0
______________
______________
z
5 5 3 5
5 5 3 5
Algorithmes et Graphes
olivier cogis
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
13
Complexité asymptotique
On compte le nombre d’itérations effectuées par l’algorithme.
Soit N ce nombre, et soit k la base utilisée :
ìï 0 si x = 0
N =í
ïî 1+ êëlogk (x)úû si x ³1
Algorithmes et Graphes
olivier cogis
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
14
deuxième partie
_______
Autour de la notion d’ordre
Algorithmes et Graphes
olivier cogis
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
15
Graphe de précédence
A
G
B
F
C
E
D
graphe de précédence
Algorithmes et Graphes
olivier cogis
On peut imaginer que A,
B, … et G sont les
chapitre d’un manuel
d’enseignement et qu’il
y a un arc de X vers Y
lorsque les notions
développées dans X sont
utilisées dans Y
le graphe n’a pas de circuit
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
16
A
G
B
F
C
E
D
un graphe de précédence
Algorithmes et Graphes
olivier cogis
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
17
A
B
E
G
D
B
A
G
F
C
E
F
D
un graphe de précédence
Algorithmes et Graphes
olivier cogis
C
le même graphe de précédence
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
18
B
E
D
A
G
F
C
l‘ordre induit
Algorithmes et Graphes
olivier cogis
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
19
Un algorithme non déterministe
donnée : un graphe de précédence G
lequel ?
résultat : ? un graphe transitif ?
en tout cas un graphe transitif contenant G au sens des arcs
tantque G possède un triplet incomplet (x,y,z) faire
ajouter à G l’arc de x à z
(x,y,z) triplet incomplet de G
G possède l’arc de xy et l’arc de yz, mais pas l’arc de xz
Algorithmes et Graphes
olivier cogis
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
20
La fermeture transitive
Gt est le plus petit des graphes transitifs contenant G
l’inclusion des graphes s’entend au sens des arcs
• première caractérisation
la définition est fondée :
• le graphe complet est un des H
• contenir G « passe » à l’intersection
• être transitif « passe » à l’intersection
Algorithmes et Graphes
olivier cogis
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
21
La fermeture transitive
Gt est le plus petit des graphes transitifs contenant G
l’inclusion des graphes s’entend au sens des arcs
• deuxième caractérisation
Gt est le graphe qui comporte l’arc xy si et seulement si
il existe dans G un parcours non trivial de x à y
un tel graphe :
• contient G
• est transitif
• est contenu dans tout graphe transitif contenant G
Algorithmes et Graphes
olivier cogis
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
22
Un algorithme non déterministe
pour la fermeture transitive
donnée : un graphe G
résultat : calcule dans H la fermeture transitive Gt de G
H G
tantque H possède un triplet incomplet (x,y,z) faire
ajouter à H l’arc xz
Algorithmes et Graphes
olivier cogis
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
23
1
Algorithmes et Graphes
olivier cogis
4
2
3
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
24
Les opérateurs
Si G = (S, A) est un graphe avec :
• S ensemble des sommets
• A ensemble des arcs, A SS
et si xS est un sommet de G,
on définit le graphe x(G) par x(G) = (S, x(A)) où :
x(A) = A { yz SS yx, xz A }
x
x
x(G)
y
Algorithmes et Graphes
olivier cogis
z
y
z
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
25
L’algorithme de Roy-Warshall
donnée : un graphe G
résultat : calcule dans H la fermeture transitive de G
H G
pour chaque sommet x de H faire
H x(H)
Algorithmes et Graphes
olivier cogis
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
26
1
Algorithmes et Graphes
olivier cogis
4
2
3
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
27
L’algorithme de Roy-Warshall
donnée : un graphe G
résultat : calcule dans H la fermeture transitive de G
H G
pour chaque sommet x de H faire
H x(H)
Algorithmes et Graphes
olivier cogis
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
28
Soit x1,x2,… xn une permutation de S et posons :
Gi = Qxi (Q xi-1 ( ... Qx2 (Q x1 (G))... ))
Preuve de l’algorithme avec l’invariant :
ab est un arc de Gi si et seulement si il existe
dans G un parcours de a vers b dont tous les
sommets intermédiaires appartiennent à
l’ensemble {x1,x2,… xi}
Algorithmes et Graphes
olivier cogis
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
29
Preuve par les propriétés algébriques des opérateurs
G = (S, A) transitif
les opérateurs sont
• isotones :
• croissants :
• idempotents :
• permutables :
Algorithmes et Graphes
olivier cogis
Û
"x Î S Qx (G) = G
G x(G)
G H x(G) x(H)
x(x(G)) = x(G)
x(y(G)) = y(x(G))
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
30
Preuve par les propriétés algébriques des opérateurs
G Gn
isotonie
Gn est transitif
Gn Gt
propriété caractéristique avec
commutativité et idempotence
croissance et idempotence
Q x (Gn ) = Q x (Q x (Q x ( ... Q x (Q x (G))... )))
i
i
n
n-1
2
1
= Q xn (Q xn-1 ( ... Q xi (Q xi (Q xi-1 (... Q x1 (G)...))) ... ))
= Q xn (Q xn-1 ( ... Q x2 (Q x1 (G))... ))
= Gn
Algorithmes et Graphes
olivier cogis
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
31
Q x (Gn )
i
= Q xi (Q xn (Q xn-1 ( ... Q x2 (Q x1 (G)) ... )))
= Q xn (Q xn-1 ( ... Q xi (Q xi (Q xi-1 (... Q x1 (G)...))) ... ))
= Q xn (Q xn-1 ( ... Q x2 (Q x1 (G)) ... ))
= Gn
Algorithmes et Graphes
olivier cogis
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
32
Complexité asymptotique
Le nombre d’itérations de l’algorithme de Roy-Warshall
est n3 si n est l’ordre du graphe
Algorithmes et Graphes
olivier cogis
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
33
B
B
E
E
D
A
A
G
G
F
graphe de précédence
D
F
C
C
fermeture transitive
B
E
D
A
G
réduction transitive
F
Algorithmes et Graphes
olivier cogis
C
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
34
Un algorithme non déterministe
pour la réduction transitive
donnée : un graphe G
résultat : calcule dans H un graphe ayant la même
fermeture transitive que G et minimum pour
cette propriété
H G
tantque H possède un triplet complet (x,y,z) faire
supprimer de H l’arc xz
(x,y,z) triplet complet de G
G possède les 3 arcs de xy, yz et xz
Algorithmes et Graphes
olivier cogis
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
35
Algorithmes et Graphes
olivier cogis
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
36
La t-équivalence
l’inclusion des graphes s’entend au sens des arcs
Définition
Deux graphes sont t-équivalents lorsqu’ils ont
la même fermeture transitive.
Propriété
La t-équivalence est une relation d’équivalence.
La classe de t-équivalence d’un graphe G possède
un plus grand élément qui est Gt, mais ne
possède pas, en général, de plus petit élément.
Algorithmes et Graphes
olivier cogis
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
37
La réduction transitive
des graphes sans circuits
Théorème
Si un graphe est sans circuits, sa classes de
t-équivalence possède un plus petit élément.
Ce plus petit élément s’appelle la réduction transitive du
graphe et c’est l’intersection de tous les graphes de la
classe.
C’est également le résultat unique du calcul effectué par
l’algorithme non déterministe de réduction transitive.
Algorithmes et Graphes
olivier cogis
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
38
Quelques propriétés étapes pour une démonstration
• tous les parcours d’un graphe sans circuits d’ordre
n sont de longueur majorée par n 1
• tout graphe t-équivalent à un graphe sans circuits
est lui-même sans circuit
• deux graphes sans circuits t-équivalents
possèdent les mêmes parcours de longueur
maximum entre chaque couple de sommets
• l’intersection de deux graphes t-équivalents est
un graphe t-équivalent aux deux premiers
Algorithmes et Graphes
olivier cogis
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
39
Point de vue
A la notion intuitive d’ordre, on peut associer une
classe de t-équivalence de graphes sans circuits qui :
• est ordonnée par inclusion au sens des arcs
• possède un plus grand élément qui est la fermeture
transitive de tous les éléments de la classe et qui
est un ordre au sens de l’algèbre des relations
• possède un plus petit élément, appelé réduction
transitive de chaque élément de la classe
Algorithmes et Graphes
olivier cogis
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
40
Numérotations compatibles
ou extensions linéaires
B
7
7
E
D
6
6
5
4
A
G
3
5
1
1
F
Algorithmes et Graphes
olivier cogis
4
3
2
2
C
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
41
Numérotations compatibles
ou extensions linéaires
• une numérotation compatible des sommets d’un graphe
est une numérotation telle que si xy est un arc du graphe,
le numéro de x est inférieur à celui de y
• le fait de posséder une numérotation compatible de ses
sommets est une caractérisation des graphes sans circuits
• une numérotation compatible des sommets d’un graphe
sans circuits induit un ordre total sur ses sommets, qui
est une extension linéaire de l’ordre induit par le graphe :
si x précède y dans l’ordre partiel, il doit le précéder dans
l’extension linéaire, qui est un ordre total
Algorithmes et Graphes
olivier cogis
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
42
Extension linéaire
ou numérotation compatible
donnée : un graphe G = (S, A) sans circuits
résultat : calcule dans une numérotation compatible pour G
• XS
• est numérotation compatible de G[S]
• G ne possède aucun arc de A\S vers S
X
k 0
tantque X ≠ S faire
choisir une source x de G[S \ X]
k k+1
[x] k
X X {x}
Algorithmes et Graphes
olivier cogis
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
43
En guise de conclusion
Les algorithmes sont des objets dignes de l’attention
du mathématicien !
• ils sont conçus pour résoudre des problèmes
• il faut les spécifier
• il faut les prouver
• il faut en évaluer la complexité
• il faut les généraliser
• il faut les spécialiser
• …
Algorithmes et Graphes
olivier cogis
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
44
Merci de votre attention
Algorithmes et Graphes
olivier cogis
Regroupement inter académique
1 et 2 décembre 2011 − Montpellier
45