Algorithm-SAT-Backtracking

 view release on metacpan or  search on metacpan

b/0-or.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->solve;

b/1-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->xor( "foo", "bar" );
	    $expr->xor( "foo", "bar", "baz" );
            $expr->solve;
        },
        'SAT::Backtracking::DPLL' => sub {

b/2-and.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->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 0.555 second using v1.01-cache-2.11-cpan-4d50c553e7e )