Algorithm-Search
view release on metacpan or search on metacpan
search_this => $r_driver,
search_type => 'rdfs',
solutions_to_find => 2,
});
#print "sf \n";
$full_path = '';
if ($travel_search->solution_found) { #should be true, path to Urbana
#print "found path from Minneapolis to Urbana\n";
my $path_count = 0;
foreach my $path ($travel_search->paths) {
# print "Path ".$path_count++." ";
# print join("..", travel_path($path))."\n";
$full_path .= join("..", travel_path($path))."\n";
}
}
is ($full_path,
"St. Paul..Madison..Rockford..Bloomington..Champaign..Urbana
St. Paul..Madison..Rockford..Bloomington..Champaign..Chicago..Urbana
", 'find 2');
$r_driver->move([undef, 'Minneapolis']); #start out in Minneapolis
$travel_search->search({
maximum_depth => 4,
search_this => $r_driver,
search_type => 'rdfs',
solutions_to_find => 0,
});
#print "md \n";
$full_path = '';
if ($travel_search->solution_found) { #should be true, path to Urbana
#print "found path from Minneapolis to Urbana\n";
my $path_count = 0;
foreach my $path ($travel_search->paths) {
# print "Path ".$path_count++." ";
# print join("..", travel_path($path))."\n";
$full_path .= join("..", travel_path($path))."\n";
}
}
is ($full_path,
"St. Paul..Madison..Chicago..Urbana
Duluth..Chicago..Urbana
", 'rdfs max depth');
$r_driver->move([undef, 'Duluth']); #start out in Duluth
$travel_search->search({
search_this => $r_driver,
search_type => 'rdfs',
solutions_to_find => 0,
});
$full_path = '';
if ($travel_search->solution_found) {
$full_path = 'x';
}
is ($full_path, 'x', 'from duluth');
$r_driver->move([undef, 'Minneapolis']); #start out in Minneapolis
$travel_search->search({
search_this => $r_driver,
search_type => 'rdfs',
do_not_repeat_values => 1,
solutions_to_find => 0,
});
#print "md \n";
$full_path = '';
if ($travel_search->solution_found) { #should be true, path to Urbana
#print "found path from Minneapolis to Urbana\n";
my $path_count = 0;
foreach my $path ($travel_search->paths) {
# print "Path ".$path_count++." ";
# print join("..", travel_path($path))."\n";
$full_path .= join("..", travel_path($path))."\n";
}
}
is ($full_path,
"St. Paul..Madison..Rockford..Bloomington..Champaign..Urbana
", 'rdfs max dci dnrv');
#print STDERR "xx md \n";
$r_driver->move([undef, 'Minneapolis']); #start out in Minneapolis
$travel_search->search({
search_this => $r_driver,
search_type => 'rdfs',
initial_cost => $r_driver->distance_to_final_state,
cost_cannot_increase => 1,
solutions_to_find => 2,
});
#print STDERR "md \n";
$full_path = '';
if ($travel_search->solution_found) { #should be true, path to Urbana
#print STDERR "found path from Minneapolis to Urbana\n";
my $path_count = 0;
foreach my $path ($travel_search->paths) {
# print "Path ".$path_count++." ";
# print join("..", travel_path($path))."\n";
$full_path .= join("..", travel_path($path))."\n";
}
}
is ($full_path,
"St. Paul..Madison..Rockford..Bloomington..Champaign..Urbana
St. Paul..Madison..Chicago..Urbana
", 'not distance increas sol 2');
$r_driver->move([undef, 'Minneapolis']); #start out in Minneapolis
$travel_search->search({
search_this => $r_driver,
search_type => 'rdfs',
solutions_to_find => 0,
initial_cost => $r_driver->distance_to_final_state,
cost_cannot_increase => 1,
maximum_depth => 5,
});
#print "md \n";
$full_path = '';
if ($travel_search->solution_found) { #should be true, path to Urbana
#print "found path from Minneapolis to Urbana\n";
my $path_count = 0;
foreach my $path ($travel_search->paths) {
# print "Path ".$path_count++." ";
# print join("..", travel_path($path))."\n";
$full_path .= join("..", travel_path($path))."\n";
}
}
is ($full_path,
"St. Paul..Madison..Chicago..Urbana
", 'rdfs max depth 5 all sol not inc dist');
$r_driver->move([undef, 'Minneapolis']); #start out in Minneapolis
$travel_search->search({
search_this => $r_driver,
search_type => 'rdfs',
solutions_to_find => 0,
do_not_repeat_values => 1,
});
#print "md \n";
$full_path = '';
if ($travel_search->solution_found) { #should be true, path to Urbana
#print "found path from Minneapolis to Urbana\n";
my $path_count = 0;
foreach my $path ($travel_search->paths) {
# print "Path ".$path_count++." ";
# print join("..", travel_path($path))."\n";
$full_path .= join("..", travel_path($path))."\n";
}
}
is ($full_path,
"St. Paul..Madison..Rockford..Bloomington..Champaign..Urbana
", 'rdfs dnotrepeatvalues ');
$r_driver->move([undef, 'Minneapolis']); #start out in Minneapolis
$travel_search->search({
search_this => $r_driver,
search_type => 'rdfs',
solutions_to_find => 0,
no_value_function => 1,
maximum_depth => 7,
});
#print "md \n";
$full_path = '';
if ($travel_search->solution_found) { #should be true, path to Urbana
#print "found path from Minneapolis to Urbana\n";
my $path_count = 0;
foreach my $path ($travel_search->paths) {
# print "Path ".$path_count++." ";
# print join("..", travel_path($path))."\n";
$full_path .= join("..", travel_path($path))."\n";
}
}
is ($full_path,
"St. Paul..Minneapolis..St. Paul..Minneapolis..Duluth..Chicago..Urbana
St. Paul..Minneapolis..St. Paul..Madison..Chicago..Urbana
St. Paul..Minneapolis..Duluth..Chicago..Urbana
St. Paul..Madison..Rockford..Bloomington..Champaign..Urbana
St. Paul..Madison..Rockford..Bloomington..Champaign..Chicago..Urbana
St. Paul..Madison..Rockford..Madison..Chicago..Urbana
St. Paul..Madison..St. Paul..Minneapolis..Duluth..Chicago..Urbana
St. Paul..Madison..St. Paul..Madison..Chicago..Urbana
St. Paul..Madison..Chicago..Minneapolis..Duluth..Chicago..Urbana
St. Paul..Madison..Chicago..Urbana
Duluth..Chicago..Minneapolis..St. Paul..Madison..Chicago..Urbana
Duluth..Chicago..Minneapolis..Duluth..Chicago..Urbana
Duluth..Chicago..Urbana
", 'rdfs max d 7 no value fun dis can increase all sol ');
( run in 0.569 second using v1.01-cache-2.11-cpan-9581c071862 )