tourstatepicker.java
来自「用于求解TSP(Traveling salesman problem」· Java 代码 · 共 51 行
JAVA
51 行
/**
* 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 + =
减小字号Ctrl + -
显示快捷键?