bitstringlistfixerdemo2.java
来自「Java版的SAT求解器」· Java 代码 · 共 55 行
JAVA
55 行
package positronic.satisfiability.demos;
/**
* <p>Title: TBS</p>
* <p>Description: TBS</p>
* <p>Copyright: Copyright (c) 2005</p>
* <p>Company: Positronic Software</p>
* @author Kerry Michael Soileau
* @version 1.0
*/
import java.util.List;
import positronic.satisfiability.bitstring.BitString;
import positronic.satisfiability.bitstring.BitStringFixer;
import positronic.satisfiability.bitstring.IBitString;
import positronic.satisfiability.elements.BooleanLiteral;
import positronic.satisfiability.elements.Conjunction;
import positronic.satisfiability.elements.IProblem;
import positronic.satisfiability.solutions.PartialSolution;
public class BitStringListFixerDemo2
{
public static void main(String[] args) throws Exception
{
IBitString[] listOfSites=new BitString[9];
for(int i=0;i<9;i++)
listOfSites[i]=new BitString(4);
IProblem[] constraints=
new BitStringFixer[]{
new BitStringFixer(listOfSites[0],new boolean[]{false,false,false,false}),
new BitStringFixer(listOfSites[1],new boolean[]{true,false,false,false}),
new BitStringFixer(listOfSites[2],new boolean[]{false,true,false,false}),
new BitStringFixer(listOfSites[3],new boolean[]{true,true,false,false}),
new BitStringFixer(listOfSites[4],new boolean[]{false,false,true,false}),
new BitStringFixer(listOfSites[5],new boolean[]{true,false,true,false}),
new BitStringFixer(listOfSites[6],new boolean[]{false,true,true,false}),
new BitStringFixer(listOfSites[7],new boolean[]{true,true,true,false}),
new BitStringFixer(listOfSites[8],new boolean[]{false,false,false,true})
};
IProblem bslf2=new Conjunction(constraints);
System.out.println(bslf2);
List s=PartialSolution.solveList(bslf2);
if(s!=null && s.size()>0)
{
for(int i=0;i<s.size();i++)
System.out.println(s.get(i));
BooleanLiteral.interpret(s);
for(int i=0;i<listOfSites.length;i++)
System.out.println(listOfSites[i]);
}
else
System.out.println("No solution.");
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?