foralltest.java

来自「SHOP2 一个人工智能里面关于任务分解和任务规划的系统。JSHOP2是其jav」· Java 代码 · 共 192 行

JAVA
192
字号
import JSHOP2.*;class Operator0 extends Operator{	public Operator0()	{		super(new Predicate(0, 0, TermList.NIL), -1, -1, new TermNumber(1.0));		DelAddElement[] delIn = new DelAddElement[0];		setDel(delIn);		DelAddElement[] addIn = new DelAddElement[0];		setAdd(addIn);	}	public Precondition getIterator(Term[] unifier, int which)	{		Precondition p;		p = (new PreconditionNil(0)).setComparator(null);		p.reset();		return p;	}}class Precondition1 extends Precondition{	Precondition[] p;	Term[][] b;	public Precondition1(Term[] unifier)	{		p = new Precondition[4];		p[1] = new PreconditionAtomic(new Predicate(1, 1, new TermList(TermVariable.getVariable(0), TermList.NIL)), unifier);		p[2] = new PreconditionAtomic(new Predicate(1, 1, new TermList(TermVariable.getVariable(0), TermList.NIL)), unifier);		p[3] = new PreconditionNegation(new PreconditionAtomic(new Predicate(2, 1, new TermList(TermVariable.getVariable(0), TermList.NIL)), unifier), 1);		b = new Term[4][];		b[0] = unifier;		b[0] = Term.merge( b, 1 );		setFirst(false);	}	public void bind(Term[] binding)	{		b[0] = binding;		b[0] = Term.merge( b, 1 );		p[1].bind(binding);		b[1] = null;		b[2] = null;		b[3] = null;	}	protected Term[] nextBindingHelper()	{		while (b[3] == null)		{			boolean b2changed = false;			while (b[2] == null)			{				boolean b1changed = false;				while (b[1] == null)				{					b[1] = p[1].nextBinding();					if (b[1] == null)						return null;					b1changed = true;				}				if ( b1changed ) {					p[2].reset();					p[2].bind(Term.merge(b, 2));				}				b[2] = p[2].nextBinding();				if (b[2] == null) b[1] = null;				b2changed = true;			}			if ( b2changed ) {				p[3].reset();				p[3].bind(Term.merge(b, 3));			}			b[3] = p[3].nextBinding();			if (b[3] == null) b[2] = null;		}		Term[] retVal = Term.merge(b, 4);		b[3] = null;		return retVal;	}	protected void resetHelper()	{		p[1].reset();		p[2].reset();		p[3].reset();		b[1] = null;		b[2] = null;		b[3] = null;	}}class Method0 extends Method{	public Method0()	{		super(new Predicate(0, 1, TermList.NIL));		TaskList[] subsIn = new TaskList[1];		subsIn[0] = createTaskList0();		setSubs(subsIn);	}	TaskList createTaskList0()	{		TaskList retVal;		retVal = new TaskList(1, true);		retVal.subtasks[0] = new TaskList(new TaskAtom(new Predicate(0, 1, TermList.NIL), false, true));		return retVal;	}	public Precondition getIterator(Term[] unifier, int which)	{		Precondition p;		switch (which)		{			case 0:				p = (new PreconditionForAll(new PreconditionAtomic(new Predicate(0, 1, new TermList(TermVariable.getVariable(0), TermList.NIL)), unifier), new Precondition1(unifier), 1)).setComparator(null);			break;			default:				return null;		}		p.reset();		return p;	}	public String getLabel(int which)	{		switch (which)		{			case 0: return "Method0Branch0";			default: return null;		}	}}public class foralltest extends Domain{	public foralltest()	{		TermVariable.initialize(1);		constants = new String[3];		constants[0] = "p";		constants[1] = "q";		constants[2] = "w";		compoundTasks = new String[1];		compoundTasks[0] = "succeed";		primitiveTasks = new String[1];		primitiveTasks[0] = "!do-something";		methods = new Method[1][];		methods[0] = new Method[1];		methods[0][0] = new Method0();		ops = new Operator[1][];		ops[0] = new Operator[1];		ops[0][0] = new Operator0();		axioms = new Axiom[3][];		axioms[0] = new Axiom[0];		axioms[1] = new Axiom[0];		axioms[2] = new Axiom[0];	}}

⌨️ 快捷键说明

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