Des algorithmes dans les graphes
stage IREM - Nov./D´ec. 2010
Plan
1 Cinq probl`emes. . .
2 Les graphes
3 Des algorithmes Parcours
Arbres couvrants minimaux Plus courts chemins
Chemins Hamiltoniens Chemins Eul´eriens
4 Repr´esentation des graphes
Plan
1 Cinq probl`emes. . .
2 Les graphes
3 Des algorithmes Parcours
Arbres couvrants minimaux Plus courts chemins
Chemins Hamiltoniens Chemins Eul´eriens
4 Repr´esentation des graphes
Comment sortir ?
novembre 29, 2010_1.pdf - Page 3
Trouver un chemin optimal
Comment aller de Chevaleret `a Porte de Bagnolet ?
Funiculaire de Montmartre
Orlyval tarification spéciale Stade de France
St-Denis St-Denis–Porte de Paris Basilique de St-Denis
Porte de St-Ouen
Lamarck Caulaincourt
Jules Joffrin GuyMôquet
Porte de Clichy
Châtelet Les Halles
Stalingrad Marcadet
Poissonniers
Hôtel de Ville Arts et Métiers Château Rouge
Strasbourg St-Denis
St-Mandé Hoche Marx
Dormoy La Courneuve
Aubervilliers Le Bourget
Jaurès
Place des Fêtes
Belleville Jourdain Télégraphe
Ourcq Porte de Pantin
Jacques Bonsergent
Saint-Fargeau
Pelleport Porte de Bagnolet Danube
Botzaris Buttes Chaumont
République Parmentier
Sèvres Babylone
Richelieu Drouot
Palais Royal Musée du Louvre
Réaumur Sébastopol
Raspail Pyramides
Montparnasse Bienvenüe
Mabillon Cluny La Sorbonne
Malakoff Rue Étienne Dolet
Chaussée d’Antin La Fayette
Bonne Nouvelle Grands Boulevards Bourse Sentier
Barbès Rochechouart La
Chapelle Pigalle
Poissonnière Liège
Notre-Dame de-Lorette St-Georges Abbesses
Anvers La Fourche
Place de Clichy
Pereire–Levallois Blanche
Villiers
Opéra Auber Havre Caumartin
Trinité d’Estienne d'Orves
Franklin D. Roosevelt Neuilly–Porte Maillot
Avenue Foch
Bir-Hakeim Invalides
Pasteur Pont
de l’Alma
Javel André Citroën Javel
Michel-Ange Molitor
La Muette
Michel-Ange Auteuil
Boulainvilliers Champ de Mars
Tour Eiffel Champs
Élysées Clemenceau Trocadéro Avenue
Henri Martin
Avenue du Pdt Kennedy
Commerce
Félix Faure Rue
de la Pompe Iéna
Ranelagh
Jasmin
Exelmans Chardon Lagache Église d’Auteuil
Duroc La Motte Picquet Grenelle
Assemblée Nationale
Varenne
St-Michel Notre-Dame Solférino
Musée d’Orsay
Concorde Les Halles
Jussieu Odéon Étienne Marcel
Vavin St-Germain
des-Prés
St-Sulpice
St-Placide
Place Monge Pont Neuf
Tuileries
Notre-Dame des-Champs Luxembourg
Port-Royal Louvre Rivoli
St-Michel
Bastille
Daumesnil Reuilly–Diderot
Père Lachaise Oberkampf
Quai de la Rapée
Saint
Marcel Bercy
Filles du Calvaire
Chemin Vert St-Sébastien Froissart
des BouletsRue Charonne
Sèvres Lecourbe Cambronne
Pont Marie Sully Morland
Philippe Auguste Alexandre Dumas Avron Voltaire Quatre Septembre
St-Ambroise Rue St-Maur
Pte de Vincennes Maraîchers Porte
de Montreuil Robespierre Croix de Chavaux
Buzenval Pyrénées
Laumière
Château d’Eau
Porte Dorée Porte de Charenton
Ivrysur-Seine Porte
de Choisy Porte d’Italie Porte d’Ivry
Olympiades
Créteil–Université Créteil–L’Échat Maisons-Alfort Les Juilliottes Maisons-Alfort–Stade Denfert
Rochereau
Maison Blanche Censier Daubenton
Tolbiac
Le Kremlin BicêtreVillejuif
Léo Lagrange Villejuif Paul Vaillant-Couturier Glacière
Corvisart Nationale
Chevaleret
CitéUniversitaire
Gentilly
Antony Malakoff
Plateau de Vanves Mouton Duvernet Gaîté
Edgar Quinet
Bd Victor
Issy Porte de St-Cloud
Pantin
Magenta
Vitry sur-Seine Saint-Ouen
Ledru-Rollin Ménilmontant Couronnes Colonel Fabien
Montgallet
Michel Bizot
Charenton–Écoles Liberté Faidherbe Chaligny
École Vétérinaire de Maisons-Alfort St-Paul
Maubert Mutualité Cardinal Lemoine
Temple Château Landon
Bolivar Église de Pantin
Bobigny–Pantin R. Queneau
Riquet Crimée
Corentin Cariou Porte de la Villette Aubervilliers–Pantin
Quatre Chemins Fort d’Aubervilliers
Les Gobelins Campo
Formio Quai
de la Gare Cour St-Émilion
Pierre et Marie Curie
Dugommier Bel-Air
Picpus
St-Jacques Dupleix
Passy
Alésia Pernety Plaisance Pte de Vanves Convention
Vaugirard
Porte de Versailles
Corentin Celton Volontaires
Falguière
Lourmel Boucicaut
Ségur Rue du Bac
Rennes Saint François Xavier
Vaneau École Militaire La Tour Maubourg
Avenue Émile Zola
Charles Michels Mirabeau Porte d’Auteuil
Boulogne Jean Jaurès
Billancourt Marcel Sembat
Cité MarceauAlma
Boissière Kléber
George V Argentine
Victor Hugo Les Sablons
Porte Maillot Pont de Neuilly Esplanade de La Défense
St-Philippe du-Roule Miromesnil
St-Augustin Courcelles Ternes
Monceau Malesherbes Rome
Wagram Porte de Champerret Anatole France
Louise Michel
Europe
Le Peletier Cadet Pereire
Brochant Mairie de Clichy
Garibaldi Mairie de St-Ouen
Carrefour Pleyel
Simplon
Bérault Richard
Lenoir Goncourt
Bréguet Sabin Rambuteau La Plaine Stade de France
Madeleine Gabriel Péri
Bibliothèque Fr. Mitterrand Les Agnettes
Porte de Clignancourt
Gare de l’Est
Garede Lyon St-Denis–Université
Porte de la Chapelle
La Courneuve 8 Mai 1945
Bobigny Pablo Picasso
Pré St-Gervais
Mairie des Lilas
Mairie de Montreuil Gallieni Louis
Blanc
Porte des Lilas
Gambetta Gare du Nord
Charles de Gaulle Étoile Pont de Levallois
Bécon
Porte Dauphine La Défense
Boulogne Pont de St-Cloud
Châtelet
Gared’Austerlitz Nation
Château de Vincennes
Créteil–Préfecture Mairie d’Ivry
Place d’Italie
Villejuif Louis Aragon Mairie d’Issy
Châtillon–Montrouge Pont
de Sèvres Issy Val de Seine
Gare St-Lazare
Gare Montparnasse
Haussmann St-Lazare
Porte d’Orléans Balard
Pontdu Garigliano
St-Lazare Asnières–Gennevilliers
Les Courtilles CDG
Grande Arche
Orly
Paris
www.ratp.fr
MR
Propriété de la RATP - Agence Cartographique - PMI 04-2008- BO Design: bdcconseil - Reproduction interdite
Trouver un chemin optimal
Comment aller de Paris `a Morlaix ?
• en minimisant la distance ?
• en minimisant la dur´ee ?
• en minimisant le coˆut ?
• . . .
Calculs de plus courts chemins dans un graphe !
Le probl`eme de la ville embourb´ee
Probl` eme : Paver suffisamment de rues pour que tous les
habitants puissent se rendre n’importe o`u les pieds au
sec. . . mais en utilisant le moins de pav´es possible. novembre 29, 2010_4.pdf - Page 2
Le probl`eme des bandits
Probl` eme : Des bandits veulent visiter toutes les villes d’une
r´egion sans jamais repasser par une ville. novembre 29, 2010_2.pdf - Page 4
Le probl`eme de la goudronneuse
Probl` eme : On veut faire passer une goudronneuse une et une seule fois par chaque rue.
(on s’autorise `a repasser aux croisements. . . ) novembre 29, 2010_2.pdf - Page 5
Plan
1 Cinq probl`emes. . .
2 Les graphes
3 Des algorithmes Parcours
Arbres couvrants minimaux Plus courts chemins
Chemins Hamiltoniens Chemins Eul´eriens
4 Repr´esentation des graphes
Plan
1 Cinq probl`emes. . .
2 Les graphes
3 Des algorithmes Parcours
Arbres couvrants minimaux Plus courts chemins
Chemins Hamiltoniens Chemins Eul´eriens
4 Repr´esentation des graphes
Les graphes
G = (S, A) :
• S est un ensemble fini de sommets.
• A est un ensemble fini d’arˆetes (ou arcs, ou transitions. . . ).
On va consid´erer des graphes orient´es ou non-orient´es, et parfois valu´es.
novembre 29, 2010_3.pdf - Page 6
Les graphes
G = (S, A) :
• S est un ensemble fini de sommets.
• A est un ensemble fini d’arˆetes (ou arcs, ou transitions. . . ).
On va consid´erer des graphes orient´es ou non-orient´es, et
parfois valu´es. novembre 29, 2010_3.pdf - Page 7
Plan
1 Cinq probl`emes. . .
2 Les graphes
3 Des algorithmes Parcours
Arbres couvrants minimaux Plus courts chemins
Chemins Hamiltoniens Chemins Eul´eriens
4 Repr´esentation des graphes
Comment sortir ?
novembre 29, 2010_1.pdf - Page 3
Quel algorithme ?
Quel est le probl`eme ?
Longer le mur sur la gauche ?
Utiliser un fil d’Ariane ?
Quel algorithme ?
Quel est le probl`eme ?
Longer le mur sur la gauche ?
Utiliser un fil d’Ariane ?
Quel algorithme ?
Quel est le probl`eme ?
Longer le mur sur la gauche ?
Utiliser un fil d’Ariane ?
Exemple
novembre 30, 2010_4.pdf - Page 6
Parcourir sans boucler
Commencer par la premi`ere case du labyrinthe. . .
1 Si la case courante est la sortie, alors c’est fini !
2 (Sinon :) marquer la case
3 pour chaque case C atteignable en “un coup” :
Si la case C n’est pas marqu´ ee, l’explorer en
recommen¸ cant au point 1
Du labyrinthe au graphe
novembre 29, 2010_6.pdf - Page 8
Parcours depuis une origine
Initialisation : Couleur[r] ← blanc et Π[r ] ← nil ∀r ∈ S.
Puis appel de PP-Visiter(G , q init ) : PP-Visiter(G , q)
begin
Couleur[q] ← noir;
pour chaque (q, q 0 ) ∈ A faire si Couleur[q 0 ] = blanc alors
Π[q 0 ] ← q;
PP-Visiter(G , q 0 );
end
(variante simplifi´ee du parcours en profondeur)
Recherche d’un chemin de q init `a q F
Initialisation : Couleur[r] ← blanc et Π[r ] ← nil ∀r ∈ S.
Puis appel de Chemin(G , q init , q S ) : Chemin(G , q, q S )
begin
si q = q S alors retourner Vrai;
Couleur[q] ← noir;
pour chaque (q, q 0 ) ∈ A faire si Couleur[q 0 ] = blanc alors
Π[q 0 ] ← q;
trouve ← Chemin(G , u);
si trouve = Vrai alors retourner Vrai retourner Faux
end
Parcours en profondeur
Algorithme important !
A la base des algorithmes de recherche des composantes fortement connexes (par ex. algorithme de Tarjan) et de tri topologique.
Algorithme de type “backtracking”.
Un autre parcours classique est le parcours en largeur.
Plan
1 Cinq probl`emes. . .
2 Les graphes
3 Des algorithmes Parcours
Arbres couvrants minimaux Plus courts chemins
Chemins Hamiltoniens Chemins Eul´eriens
4 Repr´esentation des graphes
Le probl`eme de la ville embourb´ee
Probl` eme : Paver suffisamment de rues pour que tous les habitants puissent se rendre n’importe o`u les pieds au sec. . . mais en utilisant le moins de pav´es possible. novembre 29, 2010_4.pdf - Page 2
NB : graphe non-orient´e, valu´e et connexe.
Algorithme 1
1 S = ∅
2 On trie les arˆetes par poids croissant.
3 Pour chaque arˆete (x , y ) :
Si (x , y ) ne cr´ee pas de cycle,
alors on l’ajoute `a S
S est une solution !
Algorithme 2
1 S = ∅
2 On choisit un sommet de d´epart s.
3 On ajoute `a S une arˆete (s, x ) de poids minimal,
4 On ajoute `a S une arˆete (q, q 0 ) reliant un sommet isol´e `a l’arbre en construction et de poids minimal,
5 recommencer le point 4 jusqu’`a la connection de tous les sommets.
S est une solution !
Exemple Exemple d’ACM
q 0 q 1 q 2
q 3 q 4 q 5
q 6
2
2 2 4
1 3 2
2 1 8
5
Arbres couvrants minimaux
Plus formellement. . .
G = (S, A, w) : non-orient´e, connexe et valu´e (w : A → R ).
D´ efinitions :
• un arbre couvrant de G est un graphe T = (S , A 0 ) avec A 0 ⊆ A, connexe et acyclique.
• un arbre couvrant T = (S, A 0 ) est dit minimal lorsque : w (A 0 ) = min{w (A 00 ) | T 0 = (G , A 00 ) est un AC de G } avec w(A) def = P
(x,y)∈A w (x , y ) Propri´ et´ e :Existence d’un ACM
Tout graphe non-orient´e, valu´e et connexe admet un ou
plusieurs ACM.
Construire des ACM
Algorithme 1 : algorithme de Kruskal.
Algorithme 2 : algorithme de Prim.
Des algorithmes tr`es efficaces : en O (|A| · log(|A|)) et O(|A| · log(|S|)).
(mais le choix des structures de donn´ees est important).
Plan
1 Cinq probl`emes. . .
2 Les graphes
3 Des algorithmes Parcours
Arbres couvrants minimaux Plus courts chemins
Chemins Hamiltoniens Chemins Eul´eriens
4 Repr´esentation des graphes
Trouver un chemin optimal
Comment aller de Chevaleret `a Porte de Bagnolet ?
Funiculaire de Montmartre
Orlyval tarification spéciale Stade de France
St-Denis St-Denis–Porte de Paris Basilique de St-Denis
Porte de St-Ouen
Lamarck Caulaincourt
Jules Joffrin GuyMôquet
Porte de Clichy
Châtelet Les Halles
Stalingrad Marcadet
Poissonniers
Hôtel de Ville Arts et Métiers Château Rouge
Strasbourg St-Denis
St-Mandé Hoche Marx
Dormoy La Courneuve
Aubervilliers Le Bourget
Jaurès
Place des Fêtes
Belleville Jourdain Télégraphe
Ourcq Porte de Pantin
Jacques Bonsergent
Saint-Fargeau
Pelleport Porte de Bagnolet Danube
Botzaris Buttes Chaumont
République Parmentier
Sèvres Babylone
Richelieu Drouot
Palais Royal Musée du Louvre
Réaumur Sébastopol
Raspail Pyramides
Montparnasse Bienvenüe
Mabillon Cluny La Sorbonne
Malakoff Rue Étienne Dolet
Chaussée d’Antin La Fayette
Bonne Nouvelle Grands Boulevards Bourse Sentier
Barbès Rochechouart La
Chapelle Pigalle
Poissonnière Liège
Notre-Dame de-Lorette St-Georges Abbesses
Anvers La Fourche
Place de Clichy
Pereire–Levallois Blanche
Villiers
Opéra Auber Havre Caumartin
Trinité d’Estienne d'Orves
Franklin D. Roosevelt Neuilly–Porte Maillot
Avenue Foch
Bir-Hakeim Invalides
Pasteur Pont
de l’Alma
Javel André Citroën Javel
Michel-Ange Molitor
La Muette
Michel-Ange Auteuil
Boulainvilliers Champ de Mars
Tour Eiffel Champs
Élysées Clemenceau Trocadéro Avenue
Henri Martin
Avenue du Pdt Kennedy
Commerce
Félix Faure Rue
de la Pompe Iéna
Ranelagh
Jasmin
Exelmans Chardon Lagache Église d’Auteuil
Duroc La Motte Picquet Grenelle
Assemblée Nationale
Varenne
St-Michel Notre-Dame Solférino
Musée d’Orsay
Concorde Les Halles
Jussieu Odéon Étienne Marcel
Vavin St-Germain
des-Prés
St-Sulpice
St-Placide
Place Monge Pont Neuf
Tuileries
Notre-Dame des-Champs Luxembourg
Port-Royal Louvre Rivoli
St-Michel
Bastille
Daumesnil Reuilly–Diderot
Père Lachaise Oberkampf
Quai de la Rapée
Saint
Marcel Bercy
Filles du Calvaire
Chemin Vert St-Sébastien Froissart
des BouletsRue Charonne
Sèvres Lecourbe Cambronne
Pont Marie Sully Morland
Philippe Auguste Alexandre Dumas Avron Voltaire Quatre Septembre
St-Ambroise Rue St-Maur
Pte de Vincennes Maraîchers Porte
de Montreuil Robespierre Croix de Chavaux
Buzenval Pyrénées
Laumière
Château d’Eau
Porte Dorée Porte de Charenton
Ivrysur-Seine Porte
de Choisy Porte d’Italie Porte d’Ivry
Olympiades
Créteil–Université Créteil–L’Échat Maisons-Alfort Les Juilliottes Maisons-Alfort–Stade Denfert
Rochereau
Maison Blanche Censier Daubenton
Tolbiac
Le Kremlin BicêtreVillejuif
Léo Lagrange Villejuif Paul Vaillant-Couturier Glacière
Corvisart Nationale
Chevaleret
CitéUniversitaire
Gentilly
Antony Malakoff
Plateau de Vanves Mouton Duvernet Gaîté
Edgar Quinet
Bd Victor
Issy Porte de St-Cloud
Pantin
Magenta
Vitry sur-Seine Saint-Ouen
Ledru-Rollin Ménilmontant Couronnes Colonel Fabien
Montgallet
Michel Bizot
Charenton–Écoles Liberté Faidherbe Chaligny
École Vétérinaire de Maisons-Alfort St-Paul
Maubert Mutualité Cardinal Lemoine
Temple Château Landon
Bolivar Église de Pantin
Bobigny–Pantin R. Queneau
Riquet Crimée
Corentin Cariou Porte de la Villette Aubervilliers–Pantin
Quatre Chemins Fort d’Aubervilliers
Les Gobelins Campo
Formio Quai
de la Gare Cour St-Émilion
Pierre et Marie Curie
Dugommier Bel-Air
Picpus
St-Jacques Dupleix
Passy
Alésia Pernety Plaisance Pte de Vanves Convention
Vaugirard
Porte de Versailles
Corentin Celton Volontaires
Falguière
Lourmel Boucicaut
Ségur Rue du Bac
Rennes Saint François Xavier
Vaneau École Militaire La Tour Maubourg
Avenue Émile Zola
Charles Michels Mirabeau Porte d’Auteuil
Boulogne Jean Jaurès
Billancourt Marcel Sembat
Cité MarceauAlma
Boissière Kléber
George V Argentine
Victor Hugo Les Sablons
Porte Maillot Pont de Neuilly Esplanade de La Défense
St-Philippe du-Roule Miromesnil
St-Augustin Courcelles Ternes
Monceau Malesherbes Rome
Wagram Porte de Champerret Anatole France
Louise Michel
Europe
Le Peletier Cadet Pereire
Brochant Mairie de Clichy
Garibaldi Mairie de St-Ouen
Carrefour Pleyel
Simplon
Bérault Richard
Lenoir Goncourt
Bréguet Sabin Rambuteau La Plaine Stade de France
Madeleine Gabriel Péri
Bibliothèque Fr. Mitterrand Les Agnettes
Porte de Clignancourt
Gare de l’Est
Garede Lyon St-Denis–Université
Porte de la Chapelle
La Courneuve 8 Mai 1945
Bobigny Pablo Picasso
Pré St-Gervais
Mairie des Lilas
Mairie de Montreuil Gallieni Louis
Blanc
Porte des Lilas
Gambetta Gare du Nord
Charles de Gaulle Étoile Pont de Levallois
Bécon
Porte Dauphine La Défense
Boulogne Pont de St-Cloud
Châtelet
Gared’Austerlitz Nation
Château de Vincennes
Créteil–Préfecture Mairie d’Ivry
Place d’Italie
Villejuif Louis Aragon Mairie d’Issy
Châtillon–Montrouge Pont
de Sèvres Issy Val de Seine
Gare St-Lazare
Gare Montparnasse
Haussmann St-Lazare
Porte d’Orléans Balard
Pontdu Garigliano
St-Lazare Asnières–Gennevilliers
Les Courtilles CDG
Grande Arche
Orly
Paris
www.ratp.fr
MR
Propriété de la RATP - Agence Cartographique - PMI 04-2008- BO Design: bdcconseil - Reproduction interdite