$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: asutton_at_[hidden]
Date: 2007-08-10 12:18:44
Author: asutton
Date: 2007-08-10 12:18:43 EDT (Fri, 10 Aug 2007)
New Revision: 38572
URL: http://svn.boost.org/trac/boost/changeset/38572
Log:
Adding new examples (and build) for degree centrality
Added:
   sandbox/SOC/2007/graphs/libs/graph/examples/Jamfile.v2   (contents, props changed)
   sandbox/SOC/2007/graphs/libs/graph/examples/degree_centrality.cpp   (contents, props changed)
   sandbox/SOC/2007/graphs/libs/graph/examples/influence_prestige.cpp   (contents, props changed)
   sandbox/SOC/2007/graphs/libs/graph/examples/information_network.graph   (contents, props changed)
   sandbox/SOC/2007/graphs/libs/graph/examples/social_network.graph   (contents, props changed)
Added: sandbox/SOC/2007/graphs/libs/graph/examples/Jamfile.v2
==============================================================================
--- (empty file)
+++ sandbox/SOC/2007/graphs/libs/graph/examples/Jamfile.v2	2007-08-10 12:18:43 EDT (Fri, 10 Aug 2007)
@@ -0,0 +1,10 @@
+
+project
+    : requirements
+        <include>../../../
+        <include>$BOOST_ROOT
+    ;
+
+exe degree_centrality : degree_centrality.cpp ;
+
+exe influence_prestige : influence_prestige.cpp ;
\ No newline at end of file
Added: sandbox/SOC/2007/graphs/libs/graph/examples/degree_centrality.cpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2007/graphs/libs/graph/examples/degree_centrality.cpp	2007-08-10 12:18:43 EDT (Fri, 10 Aug 2007)
@@ -0,0 +1,75 @@
+// (C) Copyright Andrew Sutton 2007
+//
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0 (See accompanying file
+// LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+
+#include <iostream>
+#include <string>
+#include <vector>
+#include <map>
+
+#include <boost/graph/undirected_graph.hpp>
+#include <boost/graph/exterior_property.hpp>
+#include <boost/graph/degree_centrality.hpp>
+
+#include "helper.hpp"
+
+using namespace std;
+using namespace boost;
+
+//[declare_social_network
+struct Person
+{
+    string name;
+};
+
+typedef undirected_graph<Person> Graph;
+typedef graph_traits<Graph>::vertex_descriptor Vertex;
+
+typedef exterior_vertex_property<Graph, size_t> CentralityProperty;
+typedef CentralityProperty::container_type CentralityContainer;
+typedef CentralityProperty::map_type CentralityMap;
+
+typedef map<string, Vertex> VertexMap;
+//]
+
+int
+main(int argc, char *argv[])
+{
+    //[setup_social_network
+    Graph g;
+    map<string, Vertex> verts;
+    //]
+
+    //[build_social_network
+    // Read in and build the graph
+    for(string line; getline(cin, line); ) {
+        if(line.empty()) continue;
+        size_t index = line.find_first_of(',');
+        string first(line, 0, index);
+        string second(line, index + 1);
+
+        Vertex u = add_named_vertex(g, first, verts);
+        Vertex v = add_named_vertex(g, second, verts);
+        add_edge(u, v, g);
+    }
+    //]
+
+    //[measure_social_network
+    // Compute the degree centrality for graph
+    CentralityContainer cents(num_vertices(g));
+    CentralityMap cm(cents, g);
+    degree_centrality(g, cm);
+    //]
+
+    //[print_social_network
+    // Print the degree centrality of each vertex
+    graph_traits<Graph>::vertex_iterator i, end;
+    for(tie(i, end) = vertices(g); i != end; ++i) {
+        cout << g[*i].name << ": " << cm[*i] << "\n";
+    }
+    //]
+
+    return 0;
+}
Added: sandbox/SOC/2007/graphs/libs/graph/examples/influence_prestige.cpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2007/graphs/libs/graph/examples/influence_prestige.cpp	2007-08-10 12:18:43 EDT (Fri, 10 Aug 2007)
@@ -0,0 +1,84 @@
+// (C) Copyright Andrew Sutton 2007
+//
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0 (See accompanying file
+// LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+
+#include <iostream>
+#include <iomanip>
+#include <string>
+#include <vector>
+#include <map>
+
+#include <boost/graph/directed_graph.hpp>
+#include <boost/graph/exterior_property.hpp>
+#include <boost/graph/degree_centrality.hpp>
+
+#include "helper.hpp"
+
+using namespace std;
+using namespace boost;
+
+//[declare_information_network
+struct Person
+{
+    string name;
+};
+
+typedef directed_graph<Person> Graph;
+typedef graph_traits<Graph>::vertex_descriptor Vertex;
+
+typedef exterior_vertex_property<Graph, size_t> CentralityProperty;
+typedef CentralityProperty::container_type CentralityContainer;
+typedef CentralityProperty::map_type CentralityMap;
+
+typedef map<string, Vertex> VertexMap;
+//]
+
+int
+main(int argc, char *argv[])
+{
+    //[setup_information_network
+    Graph g;
+    map<string, Vertex> verts;
+    //]
+
+    //[build_information_network
+    // Read in and build the graph
+    for(string line; getline(cin, line); ) {
+        if(line.empty()) continue;
+        size_t index = line.find_first_of(',');
+        string first(line, 0, index);
+        string second(line, index + 1);
+
+        Vertex u = add_named_vertex(g, first, verts);
+        Vertex v = add_named_vertex(g, second, verts);
+        add_edge(u, v, g);
+    }
+    //]
+
+    //[measure_information_network
+    // Compute the influence and prestige for the graph
+    CentralityContainer influence(num_vertices(g));
+    CentralityMap im(influence, g);
+    degree_centrality(g, im, measure_influence(g));
+
+    CentralityContainer prestige(num_vertices(g));
+    CentralityMap pm(prestige, g);
+    degree_centrality(g, pm, measure_prestige(g));
+    //]
+
+    //[print_information_network
+    // Print the degree centrality of each vertex
+    graph_traits<Graph>::vertex_iterator i, end;
+    for(tie(i, end) = vertices(g); i != end; ++i) {
+        Vertex v = *i;
+        cout << setiosflags(ios::left) << setw(12)
+             << g[v].name << "\t"
+             << im[v] << "\t"
+             << pm[v] << "\n";
+    }
+    //]
+
+    return 0;
+}
Added: sandbox/SOC/2007/graphs/libs/graph/examples/information_network.graph
==============================================================================
--- (empty file)
+++ sandbox/SOC/2007/graphs/libs/graph/examples/information_network.graph	2007-08-10 12:18:43 EDT (Fri, 10 Aug 2007)
@@ -0,0 +1,11 @@
+myspace,digg
+blogger,digg
+blogger,slahsdot
+blogger,wikipedia
+digg,slashdot
+digg,wikipedia
+blogspot,slashdot
+blogspot,wikipedia
+slashdot,bbc
+slashdot,wikipedia
+bbc,wikipedia
\ No newline at end of file
Added: sandbox/SOC/2007/graphs/libs/graph/examples/social_network.graph
==============================================================================
--- (empty file)
+++ sandbox/SOC/2007/graphs/libs/graph/examples/social_network.graph	2007-08-10 12:18:43 EDT (Fri, 10 Aug 2007)
@@ -0,0 +1,11 @@
+Scott,Jill
+Mary,Scott
+Jill,Mary
+Bill,Scott
+Josh,Bill
+Scott,Frank
+Laurie,Frank
+Anne,Frank
+Howard,Anne
+Frank,Howard
+Josh,Frank
\ No newline at end of file