亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? jshop2.java

?? SHOP2 一個人工智能里面關(guān)于任務(wù)分解和任務(wù)規(guī)劃的系統(tǒng)。JSHOP2是其java版本。
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
        PlanStepInfo newStep = new PlanStepInfo();        newStep.planFound = true;        planStepList.add(newStep);        numPlans++;        return true;      }    }    //-- This array of size 4 will store the atoms and protections that are    //-- deleted from and added to the current state of the world as a result    //-- of an operator being applied. This information is used in case a    //-- backtrack happens over that operator to store the state of the world    //-- to what it was before the backtracked operator was applied.    v.delAdd = new Vector[4];    //-- To iterate over the tasks we have the option to achieve right now.    v.e = v.t0.iterator();    //-- For each of the tasks that we have the option to achieve right now,    while (v.e.hasNext())    {      //-- Find the next option.      v.tl = (TaskList)v.e.next();      v.t = v.tl.getTask();      //-- Create a TRYING step for the list of plan steps      PlanStepInfo newStep = new PlanStepInfo();      newStep.action = "TRYING";      newStep.state = state.getState();      newStep.taskAtom = v.t;      planStepList.add(newStep);      //-- If that task is primitive,      if (v.t.isPrimitive())      {        //-- Remove the task from the task list, by replacing it with an empty        //-- task list.        v.tl.replace(TaskList.empty);        //-- Find all the operators that achieve this primitive task.        v.o = domain.ops[v.t.getHead().getHead()];        //-- For each of these operators,        for (v.j = 0; v.j < v.o.length; v.j++)        {          //-- Find the binding that unifies the head of the operator with the          //-- task.          v.binding = v.o[v.j].unify(v.t.getHead());          //-- If there is such bindings,          if (v.binding != null)          {            //-- Get the iterator that iterates over all the bindings that can            //-- satisfy the precondition for this operator.            v.p = v.o[v.j].getIterator(v.binding, 0);            //-- For each such binding,            while ((v.nextB = v.p.nextBinding()) != null)            {              //-- Merge the two bindings.              Term.merge(v.nextB, v.binding);              //-- If the operator is applicable, apply it, and,              if (v.o[v.j].apply(v.nextB, state, v.delAdd))              {                //-- Add the instance of the operator that achieved this task                //-- to the beginning of the plan, remembering how much it                //-- cost.                double cost = currentPlan.addOperator(v.o[v.j], v.nextB);                //-- Create a STATECHANGED step for the list of plan steps                newStep = new PlanStepInfo();                newStep.action = "STATECHANGED";                newStep.taskAtom = v.t;                newStep.delAdd = v.delAdd;                newStep.operatorInstance = v.o[v.j].getHead().applySubstitution(v.nextB).toString(JSHOP2.getDomain().getPrimitiveTasks());                planStepList.add(newStep);                //-- Recursively call the same function to achieve the                //-- remaining tasks. If a plan is found for the remaining                //-- tasks and we have found the maximum number of plans we are                //-- allowed, return true.                if (findPlanHelper(tasks) && plans.size() >= planNo)                  return true;                //-- Remove the operator from the current plan.                currentPlan.removeOperator(cost);              }              //-- Undo the changes that were the result of applying this              //-- operator, because we are backtracking here.              state.undo(v.delAdd);            }          }        }        //-- Insert the task we chose to achieve first back where it was,        //-- because we couldn't achieve it.        v.tl.undo();      }      //-- If that task is compound,      else      {        //-- Find all the methods that decompose this compound task.        v.m = domain.methods[v.t.getHead().getHead()];        //-- For each of these methods,        for (v.j = 0; v.j < v.m.length; v.j++)        {          //-- Find the binding that unifies the head of the method with the          //-- task.          v.binding = v.m[v.j].unify(v.t.getHead());          //-- If there is such binding,          if (v.binding != null)          {            //-- Initially, precondition of no branch of this method has            //-- already been satisfied, so set this variable to false.            v.found = false;            //-- Iterate on all the branches of this method. note the use of            //-- 'v.found' in the condition for the 'for' loop. It is there            //-- because of the semantics of the method branches in JSHOP2:            //-- Second branch is considered only when there is no binding for            //-- the first branch, the third branch is considered only when            //-- there is no binding for the first and second branches, etc.            for (v.k = 0; (v.k < v.m[v.j].getSubs().length) && !v.found; v.k++)            {              //-- Get the iterator that iterates over all the bindings that              //-- can satisfy the precondition for this branch of this method.              v.p = v.m[v.j].getIterator(v.binding, v.k);              //-- For each such binding,              while ((v.nextB = v.p.nextBinding()) != null)              {                //-- Merge the two bindings.                Term.merge(v.nextB, v.binding);                //-- Replace the decomposed task in task list with its                //-- decomposition according to this branch of this method.                v.tl.replace(v.m[v.j].getSubs()[v.k].bind(v.nextB));                //-- Create a REDUCED step for the list of plan steps                newStep = new PlanStepInfo();                newStep.action = "REDUCED";                newStep.taskAtom = v.t;                newStep.children = v.tl.subtasks;                newStep.ordered = v.m[v.j].getSubs()[v.k].isOrdered();                newStep.method = v.m[v.j].getLabel(v.k);                planStepList.add(newStep);                //-- Recursively call the same function to achieve the                //-- remaining tasks, but make the function choose its next                //-- tasks to achieve to be the substasks of the task we just                //-- decomposed, till an operator is seen and applied, or this                //-- whole task is achieved without seeing an operator (i.e.,                //-- this task was decomposed to an empty task list).                if (findPlanHelper(v.tl) && plans.size() >= planNo)                  //-- A full plan is found, return true.                  return true;                //-- The further branches of this method must NOT be considered                //-- even if this branch fails because there has been at least                //-- one satisfier for this branch of the method. Set this                //-- variable to true to prevent the further branches of this                //-- method from being considered.                v.found = true;                //-- Undo the changes in the task list, because this particular                //-- decomposition failed.                v.tl.undo();              }            }          }        }      }      //-- Create a BACKTRACKING step for the list of plan steps      newStep = new PlanStepInfo();      newStep.action = "BACKTRACKING";      newStep.taskAtom = v.t;      planStepList.add(newStep);    }    //-- Return false, because all the options were tried and none worked.    return false;  }  /** This function returns the planning domain.   *   *  @return   *          the current planning domain.  */  public static Domain getDomain()  {    return domain;  }  /** This function returns the current state of the world.   *   *  @return   *          the current state of the world.  */  public static State getState()  {    return state;  }  /** This function is used to initialize the planning algorithm.   *   *  @param domainIn   *          the planning domain.   *  @param stateIn   *          the initial state of the world.  */  public static void initialize(Domain domainIn, State stateIn)  {    domain = domainIn;    state = stateIn;  }}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合网色综合| 日本不卡一区二区三区高清视频| 高清不卡一二三区| 国产亚洲欧洲一区高清在线观看| 国产xxx精品视频大全| 国产精品色婷婷久久58| 色综合久久久久综合体桃花网| 亚洲精品日产精品乱码不卡| 欧美精品色综合| 九九**精品视频免费播放| eeuss鲁片一区二区三区| 精品视频一区二区不卡| 蜜臀av性久久久久蜜臀av麻豆| 日韩一区二区三区在线| 国产成人在线视频网址| 亚洲丝袜精品丝袜在线| 欧美电影在线免费观看| 国产一区二区三区在线看麻豆| 国产精品久久久久久久久免费桃花| 色婷婷av一区| 国内精品免费**视频| 中文字幕一区二区三区色视频 | 久久久精品免费观看| 99久久综合国产精品| 亚洲va天堂va国产va久| 26uuu亚洲| 欧洲国产伦久久久久久久| 久久成人综合网| 亚洲欧美日韩中文字幕一区二区三区| 91精品蜜臀在线一区尤物| 粉嫩aⅴ一区二区三区四区| 亚洲一区二区三区激情| 久久五月婷婷丁香社区| 91久久奴性调教| 国产精品一区专区| 亚洲大片精品永久免费| 久久久.com| 欧美日韩一区中文字幕| 成人免费视频播放| 免费av网站大全久久| 一个色妞综合视频在线观看| 久久亚洲影视婷婷| 在线观看91精品国产麻豆| 波多野结衣中文字幕一区 | 亚洲精品福利视频网站| 久久综合色一综合色88| 欧美性色综合网| 色综合久久99| 7777精品伊人久久久大香线蕉完整版| 国产精品羞羞答答xxdd| 欧美a一区二区| 亚洲综合色婷婷| 亚洲欧洲无码一区二区三区| 26uuu成人网一区二区三区| 欧美日韩一区二区三区四区五区| 成人国产在线观看| 国产精品乡下勾搭老头1| 久久久久国产精品麻豆ai换脸| 国产一区二三区好的| 视频一区在线视频| 亚洲欧美精品午睡沙发| 欧美激情在线观看视频免费| 精品国精品国产| 欧美一区二区三区四区久久 | 色哟哟在线观看一区二区三区| 国产麻豆91精品| 狠狠色丁香久久婷婷综合丁香| 亚洲成年人网站在线观看| 一区二区高清在线| 亚洲毛片av在线| 自拍av一区二区三区| 久久久激情视频| 国产亚洲欧美色| 中文av一区二区| 日本一区二区高清| 国产精品卡一卡二| 国产精品久久久久三级| 亚洲色图视频网站| 国产精品国产三级国产三级人妇| 欧美国产97人人爽人人喊| 中文无字幕一区二区三区 | 色婷婷激情一区二区三区| 一本到不卡免费一区二区| 色哟哟欧美精品| 在线视频你懂得一区| 欧美视频在线一区二区三区| 精品视频一区二区三区免费| 欧美日韩亚洲国产综合| 3d动漫精品啪啪| 精品免费99久久| 国产日韩欧美麻豆| 中文字幕一区二区视频| 亚洲一区av在线| 青青草伊人久久| 国内外成人在线视频| 大胆亚洲人体视频| 一本色道a无线码一区v| 91麻豆精品国产91久久久| 精品国产乱码久久久久久久久| 久久视频一区二区| 中文字幕在线观看不卡| 午夜激情综合网| 国产精品一品二品| 欧美亚洲综合色| 欧美不卡一区二区| 亚洲欧美经典视频| 看片的网站亚洲| 91欧美一区二区| 欧美一区二区三区四区五区 | 精品裸体舞一区二区三区| 国产欧美日韩综合精品一区二区| 亚洲日韩欧美一区二区在线| 亚洲午夜一区二区三区| 国产综合久久久久久久久久久久| 99热精品一区二区| 日韩欧美国产一区在线观看| gogo大胆日本视频一区| 国产精品99久久久久久似苏梦涵| 一本到高清视频免费精品| 精品999在线播放| 亚洲精品一二三| 国内精品国产成人国产三级粉色| 97久久人人超碰| 欧美一区二区人人喊爽| 中文字幕在线免费不卡| 麻豆免费精品视频| 色婷婷久久综合| 久久视频一区二区| 日韩专区一卡二卡| 99免费精品在线| 久久久久久久久久美女| 爽爽淫人综合网网站| eeuss鲁片一区二区三区 | 国产精品嫩草99a| 免费观看一级欧美片| 91在线国产观看| 国产欧美视频一区二区| 欧美aaa在线| 欧美三级中文字幕| 国产精品久久久久久久蜜臀| 国模冰冰炮一区二区| 欧美一区二区三区播放老司机| 1000部国产精品成人观看| 国产综合久久久久久久久久久久| 欧美日韩高清一区二区不卡| **网站欧美大片在线观看| 国产一区二区三区免费看| 制服丝袜激情欧洲亚洲| 亚洲无人区一区| 91蝌蚪porny| 国产精品美女久久久久久久网站| 国内成人自拍视频| 欧美一级视频精品观看| 日韩在线一区二区| 欧美吻胸吃奶大尺度电影| 亚洲视频一区二区在线| 成人国产精品免费观看动漫| 精品伦理精品一区| 黄网站免费久久| 久久综合狠狠综合久久激情| 久久99久久久久| 欧美大片一区二区三区| 免费高清不卡av| 日韩精品专区在线影院重磅| 久久精品国产精品亚洲红杏| 欧美一区二区三区在线视频| 日韩国产欧美在线播放| 欧美另类videos死尸| 青青草国产成人av片免费| 日韩精品中文字幕在线一区| 激情综合网av| 国产欧美日韩另类视频免费观看| 国产成人午夜高潮毛片| 国产精品区一区二区三区| 99久久精品费精品国产一区二区| 亚洲人成电影网站色mp4| 欧洲av一区二区嗯嗯嗯啊| 图片区小说区区亚洲影院| 欧美一区二区三区免费观看视频 | 99久久精品国产麻豆演员表| 亚洲免费看黄网站| 欧美日韩一区中文字幕| 美女网站一区二区| 久久综合成人精品亚洲另类欧美 | 九九国产精品视频| eeuss鲁片一区二区三区| 日韩视频一区二区在线观看| 狠狠色丁香久久婷婷综合_中| 国产亲近乱来精品视频 | 亚洲精品免费播放| 91麻豆精品国产91久久久久| 国产一区免费电影| 亚洲色图一区二区| 日韩一级二级三级精品视频| 成人中文字幕电影| 午夜精品久久久久| 欧美国产成人精品| 欧美精品丝袜中出| eeuss鲁片一区二区三区在线观看| 亚洲一区欧美一区|