Advertisement
Advertisement
| 06.01.2008 at 08:38AM PDT, ID: 23448127 |
|
[x]
Attachment Details
|
||
|
[x]
The Solution Rating System
|
||
With so many solutions, how can you tell which solutions are most likely to help you and which ones are not? To provide you with a tool to use, we rate our solutions based on various elements that most accurately determine if a solution is a quality solution. To explain what factors affect the solution rating, here are the elements we take into consideration when formulating our solution rating.
Your Input Matters If you have any suggestions that you would like to make for our rating system, please ask a question in the Suggestions Zone of Community Support. Thank you! |
||
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: |
use DBI;
use Graph;
#Connect to database
my $dbh = DBI->connect("DBI:mysql:database=test;user=root;password=aeg682sk") or die "Could not connect: $DBI::errstr\n";
#Created undirected graph
my $graph = Graph->new(undirected=>1);
#Get data from database
my $sth = $dbh->prepare("SELECT CITING, NODE FROM edges");
$sth->execute;
#create and edge according to db (a vertex is automatically created if it doesn't already exist)
while(my ($a, $b) = $sth->fetchrow_array) {
$graph->add_weighted_edge($a, $b, 1);
}
#Create statement to insert data
my $sth_insert = $dbh->prepare("INSERT INTO DISTANCES (CITING, NODE, DISTANCE) VALUES (?, ?, ?);");
#Calculate shortest distances
foreach my $a ($graph->vertices) {
foreach my $b ($graph->vertices) {
next if $a eq $b; #skip from-to same node
my @nodes = $graph->SP_Dijkstra($a, $b);
next unless @nodes; #skip when $a to $b is not reachable
$sth_insert->execute($a, $b, $#nodes);
}
#clear cache
$graph->SPT_Dijkstra_clear_cache;
}
|