📄 qkpknowledge.java
字号:
/** * Description: * * @ Author Create/Modi Note * Xiaofeng Xie Aug 19, 2006 * * @version 1.0 * @Since SWAF1.0 */package implement.QKP.knowledge;import Global.basic.data.collection.*;import maosKernel.represent.space.*;import implement.QKP.represent.*;public class QKPKnowledge { protected IGetProblemDataEngine problemData = null; public QKPKnowledge(IGetProblemDataEngine problemData) { this.problemData = problemData; } public int getNodeNumber() { return problemData.getNodeNumber(); } public void appendRelativeDensityArray(double[] densityArray, int nodeID) { int nodeNumber = problemData.getNodeNumber(); for (int i=0; i<nodeNumber; i++) { densityArray[i] += problemData.getQuadraticValueAt(i)[nodeID]/(double)problemData.getWeightAt(i); } } private int initSubDensityAt(int nodeID, SearchState baseState){ int density = problemData.getLinearValueAt(nodeID); IAlienICollectionEngine trueElements = baseState.getTrueElements(); int[] qValues = problemData.getQuadraticValueAt(nodeID); for (int j=0; j<trueElements.getSize(); j++) { density += qValues[trueElements.getElementAt(j)]; } return density; } public void initFullDensityArray(double[] densityArray) { initFullDensityArray(densityArray, problemData); } public double assignDINCCostAt(int index) { return initAbsoluteDensityAt(index, this.problemData); } public static double initAbsoluteDensityAt(int index, IGetProblemDataEngine problemData) { int density = problemData.getLinearValueAt(index); int nodeNumber = problemData.getNodeNumber(); int[] qValues = problemData.getQuadraticValueAt(index); for (int j=0; j<nodeNumber; j++) { density += qValues[j]; } return density/(double)problemData.getWeightAt(index); } public static void initFullDensityArray(double[] densityArray, IGetProblemDataEngine problemData) { int nodeNumber = problemData.getNodeNumber(); for (int i=0; i<nodeNumber; i++) { densityArray[i] = initAbsoluteDensityAt(i, problemData); } } public void initRelativeDensityArray(double[] densityArray, SearchState baseState){ int nodeNumber = problemData.getNodeNumber(); for (int i=0; i<nodeNumber; i++) { densityArray[i] = initSubDensityAt(i, baseState)/(double)problemData.getWeightAt(i); } } public int getWDifference(SearchState state) { return getWSum(state)-problemData.getWeightLimit(); } public int getTotalConstrainValue(SearchState baseState) { return getWDifference(baseState); } public int getLocalChangedConstrainValue(int selectedID) { return problemData.getWeightAt(selectedID); } public int getWSum(SearchState state) { int wSum = 0; IBasicICollectionEngine basicCollection = state.getTrueElements(); for (int i=0; i<basicCollection.getSize(); i++) { wSum += problemData.getWeightAt(basicCollection.getElementAt(i)); } return wSum; } public int getLSum(SearchState state) { int lSum = 0; IBasicICollectionEngine basicCollection = state.getTrueElements(); for (int i=0; i<basicCollection.getSize(); i++) { lSum += problemData.getLinearValueAt(basicCollection.getElementAt(i)); } return lSum; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -