• Aucun résultat trouvé

TP1

N/A
N/A
Protected

Academic year: 2022

Partager "TP1"

Copied!
4
0
0

Texte intégral

(1)

ARS-TP1

TP 1 : Igraph/R - Introduction

Rushed Kanawati December 2, 2019

Abstract

The goal of this training is to master theigraphAPI: a graph analysis package.

igraph : installation

igraphis an open source graph analysis and visualisation package (seehttp://igraph.sourceforge.

net/). The package is available for bothPython andRenvironments. In the curent training we’ll use it in aRenvironment.

In yourRstudio shell execute te following instructions :

1 install.packages("igraph")# this installs the package in your environment

2 library(igraph)# to load the library in the execution environment

3 help(igraph)# this provides basic informations about the package

Graph generation & loading

Graph construction

The functiongraph.empty()generates an empty graph : g <- graph.empty(directed=FALSE)

you can add nodes and links using the following functions : add.verticesandadd.edges.

g <- add.vertices(g,4) g <- add.edges(g,c(1,2))

You can delete nodes and links usingdelete.verticesetdelete.edges.

Functionsummary(g)returns a textual description of graphgplot(g)allow to plot the graph.

Simple graph generation

igraphprovides a bunch of graph generation functions. Some exemples are given here:

1

(2)

ARS-TP1

Figure 1: Exemples of graph generation

graph( c(1,2,2,3,3,4,5,6), directed=FALSE ) graph.star(10, mode="undirected")

graph.lattice(c(3,3,3), directed=FALSE) graph.ring(10, directed=FALSE)

graph.tree(10, 2, mode="undirected") graph.full(5, loops=FALSE, directed=FALSE)

Figure 1 illustrates the graphs generated by the previous commands.

Random graphs

igraphoffers also a set random graphs generation models: Erd¨os-Renyi model, small-world graph model (Watts-Strogratz) and preferential attachement (Barabasi-Albert). Some exemples are given below:

er_graph <- erdos.renyi.game(100, 2/100)

ws_graph <- watts.strogatz.game(1, 100, 4, 0.05) ba_graph <- barabasi.game(100)

Reading graphs

The functionread.graphallows to read a graph saved in a file. The graph format is specified by the parameterformat. Exemples:

karate <- read.graph("http://cneurocvs.rmki.kfki.hu/igraph/karate.net", format="pajek") setwd( working directory)

football <- read.graph("football.gml", format="gml")

The functionwrite.graph saves a graph in one of the supported format.

2

(3)

ARS-TP1

Graph metrics

igraphprovides a rich set of metric functions. Main functions are:

• vcount(g): number of nodes ing

• ecount(g): number of links ing

• graph.density(g): returns the density ofg

• diameter(g): returns the diameter ofg

• degree(g): returns the degree list of nodes ing

• degree.distribution(g): computes the degree distribution ofg

• transitivity(g): returns the clustering-coefficient ofg

• shortest.paths(g) : returns a matrix where elements i,j are the length of shortest paths between nodes i and j.

• betweenness(g): computes the betweenness centrality.

• closeness(g): computes the closeness centrality.

• is.connected(g): returnsTRUE ifg is connected.

• clusters(g): returns the list of connected components ing

• neighbors(g,x): returns the list of neighbors of nodexin graphg

Graph visualisation

Functionplot(g) plots a graph. This function admets a large set of parameters in order to customize the plot. V(g) (resp. E(g)) is the list of nodes (resp. links) in g. we can add to a node (resp. a link) a set of attributes. For exemple, we can add the attributecoloras follows:

V(g)$color <- sample( c("red", "black"), vcount(g), rep=TRUE) E(g)$color <- "grey"

plot(g)

Attributshapecan be used to set the shape of a node (ex. circle, square). Attributlayoutde- termines the visualisation algorithm to applied for graph plotting. Exemple :

g <- graph.ring(10) g$layout <- layout.circle plot(g)

3

(4)

ARS-TP1

Exercices

1 Develop aRscript that returns the basic topological features of a complex network.

2 Develop a script that plot the degree distribution of a graph.

3 Study the variation of graph diameter and transitivity for different random graph models in function of the number of nodes. Conclusion ?

4 Download the following files dolphins.gml, polblogs.gml, football.gml, karate.gml fromhttp://lipn.fr/~kanawati/ars. In these graphs the ground-truth community of each node is given by the attribut value. Plot these graphs by coloring each community with a different color. (NB. use the functionrainbowfor generating different colors)

5 Plot these graphs by changing the size of nodes in function of degree centrality and then in function of the closeness centrality.

6 From each graph, extract a sub-graph centered on the most central node. Apply different centrality measures.

4

Références

Documents relatifs

McGrory and Titterington (2007) and (2009) studied the properties of variational estimates in terms of model selection for Gaussian mixtures and hidden Markov models.. Despite

We use the finite Markov chain embedding technique to obtain the distribution of the number of cycles in the breakpoint graph of a random uniform signed permutation.. This further

The first option is to use one of the proposed gene set testing methods that are based on classical statistical models, and which by construction already test a self-contained

Seara, On the Steiner, geodetic and hull number of graphs, Discrete Math. Canoy, Jr., The Edge Steiner Number of a Graph, Bulletin of

Label the end vertices of an edge, say 2, of % 0 that is not common to % &amp; by distinct singleton sets so that 2 is mono-indexed and label the succeeding

In this paper we define the generalized island Johnson graph of P as the graph whose vertex consists of all islands of P of cardinality k, two of which are adjacent if

Serratosa, A general model to define the substitu- tion, insertion and deletion graph edit costs based on an embedded space, Pattern Recognition Let- ters 138 (2020) 115 –

Finally, we show the ubiquity of finitely generated free dense subgroups of the automorphism group of the Random Graph whose action on it have all orbits