tourstatepicker.java

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

JAVA
53
字号
/**
 * Description: For two encoded states (A, B), updating A based on the B
 *
 * @ Author        Create/Modi     Note
 * Xiaofeng Xie    Apr 28, 2006    MAOS-TSP Beta 1.1.002
 *
 * @version 1.0
 */

package maosKernel.behavior.pick;

import Global.methods.*;
import maosKernel.memory.*;
import maosKernel.represent.landscape.*;
import Global.basic.nodes.utilities.*;

public class TourStatePicker extends AbsStatePicker {
  private boolean isBetter = true;
  private int taoB = 1;
  private IEncodedDataEvaluateEngine evaluateEngine;

  public TourStatePicker(){}

  protected void setRootInfo(AbsLandscape landscape) {
    evaluateEngine = landscape;
  }

  public void initUtilities() {
    super.initUtilities();
    initUtility(new BooleanUtility("isBetter", isBetter));
    initUtility(new IntegerUtility("taoB", taoB));
  }

  public void shortcutInit() throws Exception {
    super.shortcutInit();
    isBetter = TypeConverter.toBoolean(getValue("isBetter"));
    taoB = TypeConverter.toInteger(getValue("taoB"));
  }

  public EncodedState pickBehavior(IGetRandEnocdeStateEngine msState) {
    if (evaluateEngine==null ||taoB<2) return msState.getRandomPoint();

    EncodedState selState, baseState = msState.getRandomPoint();
    for (int i=1; i<taoB; i++) {
      selState = msState.getRandomPoint();
      if (isBetter==EncodedStateHandler.evaluate(evaluateEngine, selState, baseState)) {
        baseState = selState;
      }
    }
    return baseState;
  }
}

⌨️ 快捷键说明

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