nevaluator.java

来自「是zuojie用java实现的gep库」· Java 代码 · 共 64 行

JAVA
64
字号
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 + =
减小字号Ctrl + -
显示快捷键?