• Aucun résultat trouvé

Mise en Contexte / Mise en Oeuvre

N/A
N/A
Protected

Academic year: 2022

Partager "Mise en Contexte / Mise en Oeuvre"

Copied!
12
0
0

Texte intégral

(1)

Mise en Contexte / Mise en Oeuvre

Année 2020-2021 par Prof. Nicolas Loménie

Sur la base du cours de Prof. Etienne Birmelé (2016-2020)

Algorithmie Avancée

(2)

Un bestiaire de graphes

On note K

n

le graphe complet d’ordre n.

K

2

K

3

K

4

K

5

K

n

possède

𝟐

arêtes

n(n-1)

(3)

Un bestiaire de graphes

Complete Graph

A complete graph with N = 16 nodes and Lmax = 120 links. The adjacency matrix of a complete graph is Aij = 1 for all i, j = 1, .... N and Aii = 0. The average degree of a

complete graph is ‹k› = N - 1. A complete graph is often called a clique, a term

frequently used in community identification

http://networksciencebook.com/chapter/2#real-networks

(4)

Un bestiaire de graphes

Arbres aléatoires de

Bienaymé--Galton-Watson

http://igor-kortchemski.perso.math.cnrs.fr/images.htm

(5)

Un bestiaire de graphes

(6)

Un bestiaire de graphes

(7)

Un bestiaire de graphes → réseaux

(8)

Les premières questions qui se posent naturellement Comment parcourir un graphe ?

➢ parcourir ses sommets, parcourir ses arêtes ?

➢ dans quel ordre ? → BFS, DFS

➢ peut-on passer une et une seule fois par chaque sommet ? par chaque arête ? → graphe eulérien, hamiltonien

➢ comment éviter de « tourner en rond » ? → cycles Comment aller d’un sommet à un autre ?

➢ est-ce toujours possible ? → connexité

➢ comment trouver le chemin le plus court ? → recherche PCC Graphes et chemins

(9)

Graphes et chemins Chemin simple

Un chemin est dit simple s’il ne comporte pas plusieurs fois le même arc.

((1,2),(2,4),(4,5),(5,2),(2,7)) est simple

((1,2),(2,4),(4,5),(5,6),(6,1),(1,2),(2,7)) n’est pas simple Chemin élémentaire

Un chemin est dit élémentaire s’il ne passe pas plusieurs fois par le même

sommet.

((1,2),(2,4),(4,5),(5,6)) est élémentaire

((1,2),(2,4),(4,5),(5,2),(2,7)) n’est pas élémentaire

5 3

7

1

2

4

6

(10)

Théorie des Graphes 2

AlgoAvanceeParE_Birmele.pdf

Support de cours de Prof. Etienne Birmelé 

Planche 15 à 32 (chemin, cycle, connexité,

arbre, arbre couvrant)

(11)

Une structure de données simple

Dans un TP courant on vous propose d’implémenter cette fonction prototypée : void marquerVoisins (int** adjacence, int ordre, int s) ;

Dans laquelle un graphe est représenté par sa matrice d’adjacence.

Exemple

1 2 3 4 5

1 0 1 1 0 0

2 0 0 0 1 0

3 0 1 0 0 0

4 0 0 1 0 1

5 0 0 1 1 0

Le malloc associé :

L’adressage linéarisé correspondant :

https://www.sanfoundry.com/c-program-represent-graph-adjacency-matrix/

adjacence = malloc(sizeof(int *) * ordre);

for(int i=0; i<ordre; ++i) {

adjacence[i]=malloc(sizeof(int)*ordre);

}

int *adj (int*)malloc(sizeof(int) * ( prdre * ordre));

adj[ u*ordre + v ] = value;

https://stackoverflow.com/questions/52463236/adjacency-matrix-implementation-in-

(12)

Eventuellement POOisée

#include<stdio.h>

#include<stdlib.h>

struct Graph{

int V;

int E;

int **adj;

};

struct Graph* adjmatrix(){

int u,v,i;

struct Graph* G=(struct Graph*)malloc(sizeof(struct Graph));

if(!G)

printf("Memory Null");

printf("enter the number of vertex and edges");

scanf("%d %d",&G->V,&G->E);

//Allocation de la mémoire : voir slide précédent

… ///

for(u=0;u<G->V;u++){

for(v=0;v<G->V;v++){

G->adj[u][v]=0;

} }

for(i=0;i<G->V;i++){

printf("reading edge");

scanf("%d %d",&u,&v);

G->adj[u][v]=1;

G->adj[v][u]=1;

}

return G;

}

Références

Documents relatifs

[1] Après Amiens, les voûtes de Metz sont les plus hautes de France dans une cathédrale achevée. [2] Ce sont en effet les principaux éléments de l’architecture gothique, qui

FETE DES MERES fête des mères. fête des mères

Compléter l'œuvre en ajoutant des morceaux de coton hydrophile, des chutes de papier de soie blanche ou calque pour faire la neige sur les branches ou au sol ou éventuellement de

Créer de la peinture dans les couleurs secondaires : orange, vert, jaune d'or, rouge, pourpre, à partir de la gouache dans les couleurs primaires : jaune, magenta et cyan puis

- soit l’union disjointe d’un sommet, appelé sa racine, d’un arbre binaire, appelé sous- arbre gauche, et d’un arbre binaire, appelé sous-arbre droit. De façon très

computers) are connected to each other; (b) the Hollywood actor network, where two actors are connected if they played in the same movie; (c) a protein-protein interaction

✗ la programmation dynamique : méthode ascendante, utilisable pour des problèmes d'optimisation, qui consiste à construire la solution d'un problème à partir des solutions de

Trouver un algorithme polynomial pour un problème NP-complet ou prouver qu'il n'en existe pas permettrait de savoir si P = NP ou P ≠ NP, une question ouverte qui fait