SAT.MaxSAT
Back to table
/*
SAT
SAT.MaxSAT
[list() result]=SAT.MaxSAT(Dimacs problem, int K);
problem : the source of the problem in the Dimacs format.
K : an interger
Solve a MaxSAT(K) problem.
In the worst case, it may list out all the possible solution. Therefore, it may be time-consuming.
*/
//-------------------------------------------------------------------
// examples
f=Dimacs()
{
p cnf 5 19
-1 -2 0
-1 -3 0
-2 -1 0
-2 -3 0
-2 -4 0
-3 -1 0
-3 -2 0
-3 -4 0
-3 -5 0
-4 -2 0
-4 -3 0
-4 -5 0
-5 -3 0
-5 -4 0
1 2 3 0
2 1 3 4 0
3 1 2 4 0
4 2 3 5 0
5 3 4 0
}
[result]=SAT.MaxSAT(f,18);
Print(result);
//-------------------------------------------------------------------
// result
IsMonotonicFunction IsSelfDualFunction IsUnateFunction IsUnateFunctionTo ToAndOr FromBinary MaxValue ToBinary NineComplement Convert ToPOS ToXORP Dimacs Count Nand Nor PositiveDecimalToMantissa object() Realization To2LayerAndOr To2LayerAndXor To2LayerNand Solve Implementation ROBDD MultiCover GetPositiveLogicFunction AdjustLogicVariableCount IndependentBase Zero