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

📄 aiproblemiohandler.java

📁 用于求解TSP(Traveling salesman problem
💻 JAVA
字号:
/**
* Description: provide IOHandler for writing/reading solution in
 *  integer array
 *
 * @ Author        Create/Modi     Note
 * Xiaofeng Xie    Apr 6, 2005     xiaofengxie@tsinghua.org.cn
 */

package implement.common.infoIO;

import Global.define.*;
import Global.math.*;
import Global.methods.*;
import maosKernel.represent.*;
import maosKernel.infoIO.*;

public abstract class AIProblemIOHandler extends AbsProblemIOHandler {

  public String writeSolution(EncodedState state) throws Exception {
    String colStr = "";
    int[] solution = state.getSearchState().getIArray();
    for (int i=0; i<solution.length; i++) {
      colStr += solution[i]+BasicTag.RETURN_TAG;
    }
    return colStr;
  }

  protected void naiveReadSolution(EncodedState state, String content) throws Exception {
    String[] lines = GlobalString.getMeaningfulLines(content);
    int[] solution = state.getSearchState().getIArray();
    int index = 0;
    for (int i=0; i<lines.length; i++) {
      String[] lineContents = GlobalString.tokenize(lines[i], BasicTag.NULL_SEPERATE_TAG);
      for (int j=0; j<lineContents.length; j++) {
        solution[index] = Integer.parseInt(lineContents[j]);
        index++;
        if (index>=solution.length) {
          return;
        }
      }
    }
  }

  public void readSolution(EncodedState state, String content) throws Exception {
    super.readSolution(state, content);
    removeBias(state.getSearchState().getIArray());
  }

  private void removeBias(int[] sol) {
    //remove bias value
    int biasV = ArrayMath.getExtermal(sol, false);
    if (biasV!=0) {
      for (int i=0; i<sol.length; i++) {
        sol[i] -= biasV;
      }
    }
  }
}

⌨️ 快捷键说明

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