📄 tourstatepicker.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 + -