combinedmgenerator.java

来自「用于求解TSP(Traveling salesman problem」· Java 代码 · 共 69 行

JAVA
69
字号
/**
 * Description: The description of generating operator for achieve an trail state
 *
 * @ Author        Create/Modi     Note
 * Xiaofeng Xie    Apr 28, 2006
 * Xiaofeng Xie    Jul 14, 2006
 *
 * @version 1.0
 */

package maosKernel.behavior.generate;

import maosKernel.represent.*;
import maosKernel.behavior.mutate.*;
import maosKernel.behavior.setInfo.*;

public class CombinedMGenerator extends AbsGenerator implements ISetMAInfoEngine, ISetMSInfoEngine {
  private AbsGenerator baseGenerator;
  private AbsExplicitMutator[] mutators = new AbsExplicitMutator[0];

  public void initGenerator(AbsGenerator constructor) {
    this.baseGenerator = constructor;
  }

  public String getSummary() {
    String sumInfo = "";
    sumInfo += super.getSummary();
    sumInfo += "[Primary: "+baseGenerator.getSummary();
    if (mutators.length>0) {
      sumInfo += "; Mutators: ";
      for (int i=0; i<mutators.length; i++) {
        sumInfo += mutators[i].getSummary();
        if (i<mutators.length-1) sumInfo += "|";
      }
    }
    sumInfo += "]";
    return sumInfo;
  }

  public void initMutators(AbsExplicitMutator[] mutators) {
    this.mutators = mutators;
  }

  public void setInfo(EncodedState baseState) {
    if (baseGenerator instanceof ISetMAInfoEngine) {
      ((ISetMAInfoEngine)baseGenerator).setInfo(baseState);
    }
  }

  public void setInfo(StateSet baseState) {
    if (baseGenerator instanceof ISetMSInfoEngine) {
      ((ISetMSInfoEngine)baseGenerator).setInfo(baseState);
    }
  }

  public AbsGenerator getSubGenerator() {
    return this.baseGenerator;
  }

  public boolean generateBehavior(EncodedState trailState) {
    if(!baseGenerator.generateBehavior(trailState)) return false;
    for (int i=0; i<mutators.length; i++) {
      mutators[i].mutateBehavior(trailState.getSearchState());
    }
    return true;
  }

}

⌨️ 快捷键说明

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