📄 debencodedata.java
字号:
/** * Description: An double array with two elements for goodness evalution * First: for Constraints * Second: for Objective funtions * $the frontial is more important * * @ Author Create/Modi Note * Xiaofeng Xie Mar 1, 2004 * Xiaofeng Xie May 8, 2004 Support multiobjective * * @References: * [1] Deb K. An efficient constraint handling method for genetic algorithms. * Computer Methods in Applied Mechanics and Engineering, 2000, 186(2-4): 311-338 */package maosKernel.represent.encode.debEncode;import java.util.*;import Global.define.*;import Global.methods.*;import Global.basic.*;import Global.basic.attrib.*;import maosKernel.represent.encode.*;public class DebEncodeData extends BasicObject implements OEncodeData { public static final int WOSRTVALUE = Integer.MAX_VALUE; public static final int LOWERVALUE = -Integer.MAX_VALUE; private double[] optData = new double[0]; public double conData = 0; public DebEncodeData(int optSize) { optData = new double[optSize]; resetData(); } public void resetData() { Arrays.fill(optData, WOSRTVALUE); conData = WOSRTVALUE; } public boolean isSatisfyConstraints() { return conData==0; } public void removeInfo() { this.conData = WOSRTVALUE; } public boolean isInfoRemoved() { return this.conData == WOSRTVALUE; } public void importData(IImportableEngine otherData) { DebEncodeData outData = (DebEncodeData)otherData; System.arraycopy(outData.optData, 0, optData, 0, optData.length); conData = outData.conData; } public int moCompare(DebEncodeData objData) { if(getConInfo()==objData.getConInfo()) { return DominateComaparator.compareDominate(getOptInfo(), objData.getOptInfo()); } else { return DominateComaparator.compareDominate(getConInfo(), objData.getConInfo()); } } public boolean compareTo(IEncodeComparable object) { return (moCompare((DebEncodeData)object)!=MultiCompareEnumValue.DOMINATE_NON); } public int getOptSize() { return optData.length; } public double[] getOptInfo() { return optData; } public double getConInfo() { return conData; } public double getObjValue() { double Vobj = conData; for(int i=0; i<optData.length; i++) { Vobj += optData[i]; } return Vobj; } public void readInfo(String infoString) throws Exception { String[] subStrings = GlobalString.tokenize(infoString, "/"); String[] optStrings = GlobalString.tokenize(subStrings[0], "|"); for (int i=0; i<this.optData.length; i++) { optData[i] = TypeConverter.toDouble(optStrings[i]); } conData = Integer.parseInt(subStrings[1]); } public String writeInfo() { return GlobalString.serinize(optData, "|")+"/"+conData; } public String toPlainText() { String str = TypeConverter.toString(conData); for(int i=0; i<optData.length; i++) { str += optData[i]+" \t"; } return str; } public Vector toOnlineSummary() { Vector sumVector = new Vector(); if (getOptSize()==0) { sumVector.add(new Double(conData)); } else if (getOptSize()==1) { //write optimal result if (conData!=0) { sumVector.add(new Double(conData)); } sumVector.add(new Double(getOptInfo()[0])); } return sumVector; } public String getSummary() { String propStr = "CONS="+conData +", OPTIM="; for(int i=0; i<getOptSize(); i++) { propStr += optData[i]; if(i!=getOptSize()-1) { propStr+= "|"; } } return propStr; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -