bitstringlistuniquerdemo.java

来自「Java版的SAT求解器」· Java 代码 · 共 59 行

JAVA
59
字号
package positronic.satisfiability.demos;

import java.util.List;

import positronic.satisfiability.bitstring.BitString;
import positronic.satisfiability.bitstring.IBitString;
import positronic.satisfiability.bitstringlist.BitStringList;
import positronic.satisfiability.bitstringlist.BitStringListFixer;
import positronic.satisfiability.bitstringlist.BitStringListUniquer;
import positronic.satisfiability.bitstringlist.IBitStringList;
import positronic.satisfiability.elements.BooleanLiteral;
import positronic.satisfiability.elements.Conjunction;
import positronic.satisfiability.elements.IProblem;
import positronic.satisfiability.solutions.PartialSolution;

public class BitStringListUniquerDemo/*questionable*/
{
	public static void main(String[] args) throws Exception
	{
		IBitStringList A=new BitStringList("A",new IBitString[]
	  {
	    new BitString("010"),
	    new BitString("110"),
	    new BitString("010"),
	    new BitString("011")
	  });
	
	  IBitStringList B=new BitStringList("B",new IBitString[]
	  {
	  		new BitString("000"),
	  		new BitString("000"),
	      new BitString("000"),
	      new BitString("000")
	  });
	  
	  System.out.println(B);
	
	  IProblem p1=new BitStringListUniquer(A,B);
	  System.out.println(p1);
	  
	  IProblem problem=new Conjunction(
	  		new BitStringListUniquer(A,B),
	  			//new BitStringListSubsetter(B,A),
	  				new BitStringListFixer(A));
	
	  System.out.println(problem);
	
	  List s=PartialSolution.solveList(problem);
		if(s!=null && s.size()>0)
	  {
	    BooleanLiteral.interpret(s);
	    System.out.println("A = "+A);
	    System.out.println("B = "+B);
	  }
	  else
	    System.out.println("No solution.");
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?