Algorithm-SAT-Backtracking
view release on metacpan or search on metacpan
#!/usr/bin/perl
use lib '../';
use Benchmark qw(:all);
use Data::Dumper;
use Algorithm::SAT::Expression;
my $result = cmpthese(
100000,
{ 'SAT::Backtracking' => sub {
my $expr = Algorithm::SAT::Expression->new;
$expr->or( '-foo@2.1', 'bar@2.2' );
$expr->or( '-foo@2.3', 'bar@2.2' );
$expr->or( '-baz@2.3', 'bar@2.3' );
$expr->or( '-baz@1.2', 'bar@2.2' );
$expr->solve;
#!/usr/bin/perl
use lib '../';
use Benchmark qw(:all);
use Data::Dumper;
use Algorithm::SAT::Expression;
my $result = cmpthese(
100000,
{ 'SAT::Backtracking' => sub {
my $expr = Algorithm::SAT::Expression->new;
$expr->xor( "foo", "bar" );
$expr->xor( "foo", "bar", "baz" );
$expr->solve;
},
'SAT::Backtracking::DPLL' => sub {
#!/usr/bin/perl
use lib '../';
use Benchmark qw(:all);
use Data::Dumper;
use Algorithm::SAT::Expression;
my $result = cmpthese(
100000,
{ 'SAT::Backtracking' => sub {
my $expr = Algorithm::SAT::Expression->new;
$expr->and( "foo", "bar" );
$expr->and("baz");
$expr->solve;
},
'SAT::Backtracking::DPLL' => sub {
b/3-or-xor.b view on Meta::CPAN
#!/usr/bin/perl
use lib '../';
use Benchmark qw(:all);
use Data::Dumper;
use Algorithm::SAT::Expression;
my $result = cmpthese(
100000,
{ 'SAT::Backtracking' => sub {
my $expr = Algorithm::SAT::Expression->new;
$expr->or( '-foo@2.1', 'bar@2.2' );
$expr->or( '-foo@2.3', 'bar@2.2' );
$expr->or( '-baz@2.3', 'bar@2.3' );
$expr->or( '-baz@1.2', 'bar@2.2' );
$expr->xor( '-foo@2.1', 'bar@2.2' );
lib/Algorithm/SAT/Backtracking/DPLL.pm view on Meta::CPAN
package Algorithm::SAT::Backtracking::DPLL;
use Storable qw(dclone);
use Data::Dumper;
use strict;
use warnings;
our $VERSION = "0.13";
# this allow to switch the parent implementation (needed for the Ordered alternative)
sub import {
my ( $class, $flag ) = @_;
if ($flag) {
eval "use base '$flag'";
}
t/01_backtrack.t view on Meta::CPAN
use strict;
use Test::More 0.98;
use Data::Dumper;
use Algorithm::SAT::Backtracking;
my $agent = Algorithm::SAT::Backtracking->new;
#Testing resolve
subtest "resolve()" => sub {
my $t_model = { blue => 1, red => 0 };
is( $agent->resolve( "blue", $t_model ),
( run in 1.650 second using v1.01-cache-2.11-cpan-a5abf4f5562 )