Plan Langage Java • Exceptions Algorithmique • Implantations dun
Soit F un parcours en largeur à partir de s d'un graphe G. Pour chaque sommet v ? s il existe un premier élément v' de F tel que (v'
Représentation des graphes et Programmation
un graphe non orienté est dit connexe si on peut aller de tout sommet vers tous les en profondeur et le parcours en largeur. ... Graphe : programme Java.
Algorithmes en Java Chap. 5 : Graphes
Nov 11 2013 Parcours en largeur. Parcours en profondeur. 3 Fermeture transitive des graphes. Algorithme de Warshall. 4 Recherche du plus court chemin.
Parcours de graphes
Graphes. 4. Représentation des graphes. 5. Parcours en profondeur. 6. Parcours en largeur. 7. Arbres de recouvrement java FIFO 10 3 4 5 - - 7 8 - - 9.
GRAPHES ET ALGORITHMES
Graphes et Algorithmes – 4ème édition – M. Gondran et M. Minou Lavoisier
Parcours dun graphe
Apr 1 2013 Parcours en largeur : principe de l'algorithme. Vous devez parcourir toutes les pages d'un site web. Les pages sont les sommets d'un graphe ...
Première partie : Algorithmique avancée pour les graphes
Algorithme 2 : Parcours en largeur d'un graphe. 1 Fonction BFS(g s0). Entrée. : Un graphe g et un sommet s0 de g. Postcondition : Retourne une arborescence
Théorie des graphes et optimisation dans les graphes Table des
8.2 Parcours en largeur (Breadth First Search = BFS) . ces petits dessins des graphes les points des sommets et les lignes des arcs ou arêtes
INF431 Algorithmes et Programmation: du séquentiel au distribué
de type Pascal C
À la recherche du plus court chemin
un algorithme du type parcours en largeur ou BFS (Breadth First Search). Un applet java permettant de créer son propre graphe et de trouver le plus ...
[PDF] Parcours de graphes
Représentation des graphes 5 Parcours en profondeur 6 Parcours en largeur 7 Arbres de recouvrement 8 Sortie de labyrinthe
[PDF] Algorithmes en Java Chap 5 : Graphes
11 nov 2013 · Parcours en largeur Parcours en profondeur 3 Fermeture transitive des graphes Algorithme de Warshall 4 Recherche du plus court chemin
[PDF] Plan Langage Java • Exceptions Algorithmique • Implantations d - Irif
Soit F un parcours en largeur à partir de s d'un graphe G Pour chaque sommet v ? s il existe un premier élément v' de F tel que (v' v)
[PDF] Première partie : Algorithmique avancée pour les graphes - CNRS
Dans ce chapitre nous étudions les deux principales stratégies d'exploration : — le parcours en largeur qui consiste à explorer les sommets du graphe niveau
[PDF] Représentation des graphes et Programmation
On distingue deux types de parcours : le parcours en profondeur et le parcours en largeur Page 30 Parcours d'un graphe • Soit le graphe suivant C'
[PDF] Algorithmique des graphes - Cours 3 – Parcours en largeur - LaBRI
Algorithme 1 : Parcours en largeur BFS(Gs) Données : graphe G sommet de départ s File D (initialisée à vide) marque des sommets (initialisé à
[PDF] IR2 - Algorithmique des graphes TP2 - Parcours en profondeur
L'objectif de ce TP est d'implanter les différents algorithmes vus en cours et en td à base des parcours en profondeur et en largeur (le parcours en largeur
[PDF] GRAPHES ET ALGORITHMES
Parcours en largeur Premières applications d'un algorithme de parcours Connexité – Forte connexité Divers 3 Optimisation et Graphes
Java : Algorithme des graphes - CodeS-SourceS
11 mai 2006 · Il permet de dessiner des graphes orientés et non orientés et de faire le parcours en largeur en profondeur de voir les arcs couvrant minimun
[PDF] Les bases de la programmation et de lalgorithmique
une carte routi`ere est un exemple de graphe on utilise la biblioth`eque Java xml sax (cf parcours en largeur au dernier amphi)
Comment parcourir un graphe en largeur ?
L'algorithme de parcours en largeur (ou BFS, pour Breadth-First Search en anglais) permet le parcours d'un graphe ou d'un arbre de la manière suivante : on commence par explorer un nœud source, puis ses successeurs, puis les successeurs non explorés des successeurs, etc.Comment se nomment les éléments d'un graphe reliant entre eux des nœuds ?
Une boucle est une arête qui relie un nœud à lui même. Un lien double caractérise l'existence de plusieurs arêtes entre deux nœuds donnés.Comment détecter un circuit absorbant dans le graphe ?
On suppose qu'il existe un chemin de poids minimal entre s à chacun des autres sommets du graphe (il n'y a pas de circuit de poids négatif, un tel circuit est dit absorbant), on note dmin(x) le poids minimal d'un chemin de s à x. { dmin(x) + p(x, y) } pour tout y ? X\\{s} avec dmin(s) = 0.- Pour obtenir un arbre ou une forêt couvrant(e) de poids minimum à partir d'un graphe pondéré G=(S,A), on proc? comme suit : On part du graphe G?=(S,?) (G sans arête). Prendre la plus petite arête (de poids minimal) restante dans G. L'ajouter à G? si cela ne crée pas de cycle.
Langage Java
• ExceptionsAlgorithmique
• Implantations d'un graphe • Parcours de graphe X, Petite classe 5X, Petite classe 5X, Petite classe 8X, Petite classe 8Exceptions
Une exception est un objet de la
classe java.lang.Exception (ou de l'une de ses sous-classes) class ExceptionPile extends ExceptionExceptionPile(String m)
System.out.println(m)
Utilisation :
int valeur() throws ExceptionPile if (estVide()) throw new ExceptionPile("Pile vide"); return contenu[hauteur-1]; X, Petite classe 5X, Petite classe 5X, Petite classe 8X, Petite classe 8Exceptions
Effets de la levée d'exception, par
"throws" (1) création d'un objet de la classeExceptionPile
(2) sortie de la méthode en cours (3) recherche dans l'arbre d'appel d'un bloc qui capte l'exceptionPile p = new Pile();
try// Exécution contrôléeSystem.out.println(p.valeur());
catch(ExceptionPile e)System.out.println(m)
X, Petite classe 5X, Petite classe 5X, Petite classe 8X, Petite classe 8Exceptions
Le bloc try lance l'exécution.
Si une erreur se produit pendant
cette exécution, l'éxécution se poursuit dans un bloc catch, avec comme argument e l'objet créé lors de la levée d'exception.Pile p = new Pile();
try// Exécution contrôléeSystem.out.println(p.valeur());
catch(ExceptionPile e)System.out.println(m)
X, Petite classe 5X, Petite classe 5X, Petite classe 8X, Petite classe 8Exceptions
On peut avoir 0, 1 ou plusieurs
blocs catch, qui se comportent comme un case dans un bloc switch. try// Exécution contrôlée readFromFile("monFichier"); catch(FilelNotFoundException e)System.out.println("Pas trouvé !")
catch(IOException e)System.out.println("Erreur d'entrée-
sortie"); catch(Exception e)// Autres erreursSystem.out.println("Erreur");
X, Petite classe 5X, Petite classe 5X, Petite classe 8X, Petite classe 8Finally
On peut rajouter un bloc finally,
qui est exécuté que l'exception soit levée ou pas, même en cas de return, avant que le programme ne quitte le try try// Exécution contrôlée readFromFile("monFichier"); catch { ... } finally// nettoyageRefermer les fichiers, les connections
Internet, etc.
X, Petite classe 5X, Petite classe 5X, Petite classe 8X, Petite classe 8Matrice d'adjacence
M i,j = {010100010010001001010001001000100 si (i, j) G
1 si (i, j) G1
2 34class GrapheMat
int[][] m;// Matrice d'adjacence int n; // nombre de sommetsGrapheMat(int n) {
this.n = n; m = new int[n][n]; X, Petite classe 5X, Petite classe 5X, Petite classe 8X, Petite classe 8Exemple d'utilisation
Thm Soit M la matrice d'adjacence
d'un graphe G. Pour tout n ³ 0, Mi,jest égal au nombre de chemins de longueur n de i à j.n n true s'il existe un chemin de longueur n de i à j false sinon class GrapheMat boolean[][] m;// Matrice d'adjacence int n; // nombre de sommets }Remarque Si M est définie comme matrice booléenne, on a M i,j = { X, Petite classe 5X, Petite classe 5X, Petite classe 8X, Petite classe 8Matrice d'incidence
1si i est l'origine de a
M i,a = {-1si i est l'extrémité de a0sinon
Exercice : montrer que M est
unimodulaire, i. e. le déterminant de toute sous-matrice carrée de M vaut 0, -1 ou 1.(Graphe sans boucle) 1 0 1 0-1 -1 1 0 0 00 0 0-1 1
0-1-1 1 012
3 4123
45
1 2 3 4 5
1 2 3 4 X, Petite classe 5X, Petite classe 5X, Petite classe 8X, Petite classe 8Par récurrence sur la taille n de la
matrice carrée extraite. • Clair pour n = 1 • On développe le calcul du déterminant D n par rapport à une colonne. - Si une colonne est nulle, Dn = 0 - Si une colonne contient un seul coefficient non nul, 1 ou -1, D n = ± Dn-1- Si toutes les colonnes ont deux coefficients non nuls (1 et -1), la somme des colonnes est nulle et D n = 0Solution X, Petite classe 5X, Petite classe 5X, Petite classe 8X, Petite classe 8Liste de successeurs
1 : 24
2 : 4 3 : 34 : 3public class GrapheListe
Liste[] succ;
int n;GrapheListe(int n)
this.n = n; succ = new Liste[n]; }1 2 3 4 X, Petite classe 5X, Petite classe 5X, Petite classe 8X, Petite classe 8Comparaison des tailles
Graphe à n sommets et m arcs.
Matrice d'adjacence : n2
Matrice d'incidence : nm
Liste de successeurs : n + m
X, Petite classe 5X, Petite classe 5X, Petite classe 8X, Petite classe 8Parcours d'un graphe connexe
non orienté à partir d'un sommet sC'est une suite S de sommets t.q.
(1) s est le premier sommet de S (2) Chaque sommet apparaît une fois et une seule dans S (3) Tout sommet sauf la racine est adjacent à un sommet placé avant lui dans la liste.Exemple : 5 3 6 2 1 4 7 est un parcours issu de 51 234 5 67
X, Petite classe 5X, Petite classe 5X, Petite classe 8X, Petite classe 8
On obtient une arborescence de
Trémeaux.
Ici, en partant
de s = 1 :Complexité (n sommets, m arêtes)
O(n + m) avec des listes de
successeurs, O(n2) avec des
matrices d'incidenceParcours en profondeurInitialisation : S = (s)
Si S = (s
1 , ..., sn-1), on prend
pour s n un voisin de sn-1, ou, à défaut, un voisin de s n-2, ou, à défaut, un voisin de s n-3, etc.1 235 6 74
X, Petite classe 5X, Petite classe 5X, Petite classe 8X, Petite classe 8 public class Graphe
Liste[] succ;
boolean[] marque; int n;Graphe(int n)
this.n = n; succ = new Liste[n]; marque = new boolean[n]; void marquer(int i) marque[i] = true; void demarquer() for (int i = 0; i < n; i++) marque[i] = false; X, Petite classe 5X, Petite classe 5X, Petite classe 8X, Petite classe 8Trémeaux Récursif
void profondeur(int i)System.out.print(i + " ");
marquer(i); for (Liste a = succ[i]; a != null; a = a.suivant) int v = a.contenu; if (!marque[v]) profondeur(v); void parcoursProfondeur() demarquer(); for (int i = 0; i < n; i++) if (!marque[i]) profondeur(i); X, Petite classe 5X, Petite classe 5X, Petite classe 8X, Petite classe 8quotesdbs_dbs44.pdfusesText_44[PDF] parcours lecture acces pas cher
[PDF] parcours lecture pdf
[PDF] parcours lecture le petit chaperon rouge
[PDF] parcours lecture acces avis
[PDF] parcours lecture occasion
[PDF] coexistence pacifique cours
[PDF] archives militaire en ligne
[PDF] livret militaire en ligne
[PDF] la coexistence pacifique de 1953 ? 1962 pdf
[PDF] cornière catnic
[PDF] corniere galva pour brique
[PDF] corniere pour linteau brique
[PDF] cornière support briques
[PDF] cornière pour linteau de brique