⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tourstatepicker.java

📁 用于求解TSP(Traveling salesman problem
💻 JAVA
字号:
/**
 * 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.represent.*;

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

  public void init(IEvaluateEngine evaluateEngine, int taoB, boolean isBetter) {
    setTaoB(taoB);
    setDirection(isBetter);
    setEvaluateEngine(evaluateEngine);
  }

  public void setTaoB(int taoB){
    this.taoB = taoB;
  }

  public void setDirection(boolean isBetter){
    this.isBetter = isBetter;
  }

  public void setEvaluateEngine(IEvaluateEngine evaluateEngine){
    this.evaluateEngine = evaluateEngine;
  }

  public EncodedState pickBehavior(StateSet msState) {
    if (evaluateEngine==null) return msState.getRandomPoint();
    int[] indices = RandomGenerator.randomBlindSelection(msState.getLibSize(), taoB);
    if(indices.length==0) return msState.getRandomPoint();
    int currentIndex = indices[0];
    for (int i=1; i<indices.length; i++) {
      if (isBetter==evaluateEngine.evaluate(msState.getSelectedPoint(currentIndex), msState.getSelectedPoint(indices[i]))) {
        currentIndex = indices[i];
      }
    }
    return msState.getSelectedPoint(currentIndex);
  }
}

⌨️ 快捷键说明

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