?? nevaluator.java
字號:
package gep.num;import ga.Evaluator;import ga.Fitness;import ga.Protein;import gep.Formula;/** * 數值評價器 */public class NEvaluator implements Evaluator{ private NFitness fitnessFunction; // 適應度函數 private double[][] parameters; // 訓練數據的參數 public NEvaluator(Fitness fitnessFunction, NDataSet dataSet) { this.fitnessFunction = (NFitness) fitnessFunction; this.parameters = dataSet.getParameters(); } /** * 評價,返回適應度 * @param protein 待評價的"蛋白質" * @return 適應度值 */ public double evaluate(Protein protein) { NEvaluable evaluable = (NEvaluable) protein; int size = parameters.length; // 計算每一個樣本的值 double[] model = new double[size]; for (int i=0; i<size; i++) { double[] sample = parameters[i]; // 模型計算值 try { model[i] = evaluable.evaluate(sample); } catch (Exception e) { return fitnessFunction.getMinFitness(); } } // 計算適應度 double f = fitnessFunction.calculate(model); // TODO 測試"世界簡單性原理" if (false) f += 1/((Formula) protein).getComplex(); return f; } public String toString() { return getClass().getName(); }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -