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 + -
显示快捷键?