Algorithm-SAT-Backtracking
view release on metacpan or search on metacpan
lib/Algorithm/SAT/Backtracking.pm view on Meta::CPAN
) > 0
);
# Otherwise, we don't know what the clause is.
return undef;
}
1;
__END__
=encoding utf-8
=head1 NAME
Algorithm::SAT::Backtracking - A simple Backtracking SAT solver written in pure Perl
=head1 SYNOPSIS
# You can use it with Algorithm::SAT::Expression
use Algorithm::SAT::Expression;
lib/Algorithm/SAT/Backtracking/DPLL.pm view on Meta::CPAN
while ( $index < scalar @{$list} ) {
splice( @{$list}, $index, 1 )
if grep { $_ eq $literal } @{ $list->[$index] };
$index++;
}
}
1;
=encoding utf-8
=head1 NAME
Algorithm::SAT::Backtracking::DPLL - A DPLL Backtracking SAT solver written in pure Perl
=head1 SYNOPSIS
# You can use it with Algorithm::SAT::Expression
use Algorithm::SAT::Expression;
lib/Algorithm/SAT/Backtracking/DPLLProb.pm view on Meta::CPAN
my $choice;
foreach my $variable ( shuffle( @{$variables} ) ) {
$choice = $variable;
last if ( !exists $model->{$variable} );
}
return $choice;
}
1;
=encoding utf-8
=head1 NAME
Algorithm::SAT::Backtracking::DPLLProb - A DPLL Probabilistic Backtracking SAT solver written in pure Perl
=head1 SYNOPSIS
# You can use it with Algorithm::SAT::Expression
use Algorithm::SAT::Expression;
lib/Algorithm/SAT/Backtracking/Ordered.pm view on Meta::CPAN
my $value = $model->get( substr( $var, 1 ) );
return !defined $value ? undef : $value == 0 ? 1 : 0;
}
else {
return $model->get($var);
}
}
1;
=encoding utf-8
=head1 NAME
Algorithm::SAT::Backtracking::Ordered - A simple Backtracking SAT ordered implementation
=head1 SYNOPSIS
# You can use it with Algorithm::SAT::Expression
use Algorithm::SAT::Expression;
lib/Algorithm/SAT/Backtracking/Ordered/DPLL.pm view on Meta::CPAN
my ( $self, $variables, $model ) = @_;
my $choice;
foreach my $variable ( @{$variables} ) {
$choice = $variable and last if ( !$model->exists($variable) );
}
return $choice;
}
1;
=encoding utf-8
=head1 NAME
Algorithm::SAT::Backtracking::Ordered::DPLL - A DPLL Backtracking SAT ordered implementation
=head1 SYNOPSIS
# You can use it with Algorithm::SAT::Expression
use Algorithm::SAT::Expression;
lib/Algorithm/SAT/Expression.pm view on Meta::CPAN
my ( undef, $var ) = @_;
return ( substr( $var, 0, 1 ) eq "-" )
? substr( $var, 1 )
: '-' . $var;
}
1;
__END__
=encoding utf-8
=head1 NAME
Algorithm::SAT::Expression - A class that represent an expression for L<Algorithm::SAT::Backtracking>
=head1 SYNOPSIS
# with the default implementation (Algorithm::SAT::Backtracking)
( run in 0.250 second using v1.01-cache-2.11-cpan-4d50c553e7e )