basicincnodepicker.java

来自「pso源程序」· Java 代码 · 共 67 行

JAVA
67
字号
/**
 * Description:
 *
 * @ Author        Create/Modi     Note
 * Xiaofeng Xie    Dec 04, 2006
 *
 */

package implement.common.behavior.elemPick.increment;

import Global.basic.data.collection.*;
import Global.basic.nodes.utilities.*;

import maosKernel.represent.landscape.*;
import maosKernel.behavior.*;

import implement.common.represent.*;
import implement.common.knowledge.*;
import implement.common.behavior.elemPick.increment.candidateBuild.*;
import implement.common.behavior.elemPick.increment.candidatePick.clueBased.pick.*;
import implement.common.behavior.elemPick.increment.candidatePick.clueBased.assign.*;

public class BasicIncNodePicker extends AbsBehavior implements IIncNodePickEngine {
  //For candidate IDs
  private AbsLECandidateSetBuilder candidateSetBuilder = new RepLECandidateSetBuilder();

  private ICluePickEngine cluePicker;
  private IDValueAssignEngine clueAssigner;

  //temp
  private IDynamicICollectionEngine candidateArray;

  public BasicIncNodePicker() {}

  protected void setRootInfo(AbsLandscape landscape) {
    super.setRootInfo(landscape);
    int nodeNumber = landscape.getSearchSpace().getNodeNumber();
    candidateArray = new IArray(nodeNumber);
    int[] consArray = new int[nodeNumber];
    ConstraintKnowledge.getConstraintArray(consArray, (IConstraintEngine)(landscape));
    candidateSetBuilder.initValueArray(consArray);
  }

  public void initUtilities() {
    super.initUtilities();
    initUtility(new BasicUtility("candidateSetBuilder", candidateSetBuilder));
    initUtility(new BasicUtility("cluePicker", cluePicker));
    initUtility(new BasicUtility("clueAssigner", clueAssigner));
  }

  public void shortcutInit() throws Exception {
    super.shortcutInit();
    candidateSetBuilder = (AbsLECandidateSetBuilder)getValue("candidateSetBuilder");
    cluePicker = (ICluePickEngine)getValue("cluePicker");
    clueAssigner = (IDValueAssignEngine)getValue("clueAssigner");
  }

  public int pickBehavior(IAlienICollectionEngine existElements, int consGap) {
    candidateSetBuilder.initCandidateSet(candidateArray, existElements, consGap);
    if (candidateArray.getSize()==0) return -1;
    clueAssigner.setExistingElements(existElements);
    cluePicker.setRealClue(clueAssigner);
    return cluePicker.pickBehavior(candidateArray);
  }
}

⌨️ 快捷键说明

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