[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[igraph] Question about igraph_linegraph

From: Giuseppe G
Subject: [igraph] Question about igraph_linegraph
Date: Thu, 16 Feb 2012 16:24:20 +0000
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv: Gecko/20120131 Thunderbird/3.1.18


I've just started using the C API for a number of purposes and I have a question about the igraph_linegraph function.

I need to compute the line graph of a network similar to the following

a b
a c
a d
b d

It is my understanding that igraph does not deal with string entries so I convert the network into numbers

1 2
1 3
1 4
2 4
and store the id->number map elsewhere.

Now, I need to compute the line graph of this graph, which is stored in a textfile. I wrote the following code

int main(int argc, char **argv) {
    if ( argc != 2 ){
        fprintf(stderr, "usage: %s filename.in\n", argv[0] );
    FILE *instream;
    igraph_t graph;
    igraph_t linegraph;
    int result;

    instream = fopen(argv[1], "r");
        if(instream == 0){
                fprintf(stderr, "Can't open input file.\n" );
result = igraph_read_graph_edgelist(&graph, instream, 0, IGRAPH_UNDIRECTED);
        if (result != 0) {
                fprintf(stderr, "Problems reading the inputstream. Code %d\n", 
        result = igraph_linegraph(&graph, &linegraph);
        if (result != 0) {
                fprintf(stderr, "Problems obtaining the linegraph. Code %d\n", 
        result = igraph_write_graph_edgelist(&linegraph, stdout);
        if (result != 0) {
fprintf(stderr, "Problems writing in the outputstream. Code %d\n", result);
        return 0;

this code will print the linegraph on the stdout as follows:

0 1
0 2
0 3
1 2
2 3

Now I was expecting something like

12 24
12 14
12 13
14 24
13 14

instead I'm getting a redefined set of vertices and the mapping between the line graph vertices (0,1,2) and the graph edges is not provided.

I need to cluster the line graph and then find out which line graph vertices cluster together (ie which of the original ab, bc etc edges cluster together) I was wondering if there's a way to get a different representation of the line graph or another way to achieve this. Thank you!


The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]