⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 estimatedperformance.java

📁 著名的开源仿真软件yale
💻 JAVA
字号:
/* *  YALE - Yet Another Learning Environment *  Copyright (C) 2002, 2003 *      Simon Fischer, Ralf Klinkenberg, Ingo Mierswa,  *          Katharina Morik, Oliver Ritthoff *      Artificial Intelligence Unit *      Computer Science Department *      University of Dortmund *      44221 Dortmund,  Germany *  email: yale@ls8.cs.uni-dortmund.de *  web:   http://yale.cs.uni-dortmund.de/ * *  This program is free software; you can redistribute it and/or *  modify it under the terms of the GNU General Public License as  *  published by the Free Software Foundation; either version 2 of the *  License, or (at your option) any later version.  * *  This program is distributed in the hope that it will be useful, but *  WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *  General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with this program; if not, write to the Free Software *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *  USA. */package edu.udo.cs.yale.operator.performance;import edu.udo.cs.yale.example.Example;/** * This class is used to store estimated performance values <b>before</b> an actual * performance test is done using a test set. * @version $Id: EstimatedPerformance.java,v 2.6 2003/05/14 13:33:20 fischer Exp $ */public class EstimatedPerformance extends PerformanceCriterion {    private String name;    private double value;    private double exampleCount = 1;    private boolean reciprocalFitness;    /** Clone constructor. */    public EstimatedPerformance() {}    /** Constructs a new extimated performance criterion.     *  @param name Human readable name     *  @param value The Value of the performance criterion     *  @param numberOfExamples The number of examples used to estimate this value.     *  @param reciprocalFitness Indicates whether or not the reciprocal value should be used as fitness value.     */    public EstimatedPerformance(String name, 				double value, 				int numberOfExamples,				boolean reciprocalFitness) {        this.name = name;	setValue(value, numberOfExamples);	this.reciprocalFitness = reciprocalFitness;    }    public double getVariance() { return Double.NaN; }    /** Sets the value of this estimated performance criterion.     *  @param value The Value of the performance criterion     *  @param numberOfExamples The number of examples used to estimate this value. It is used     *                          for calculateing the average. */    public void setValue(double value, int numberOfExamples) {	this.value        = value * numberOfExamples;	this.exampleCount = numberOfExamples;    }    public double getValue() {	return value / exampleCount;    }    /** Returns the fitness. */    public double getFitness() { 	if (reciprocalFitness) {	    if (getValue() == 0d) return Double.POSITIVE_INFINITY;	    return 1/getValue();	} else {	    return getValue();	}    }    /**     * Returns the name of this estimated performance criterion, which can be     * set using <tt>setName()</tt>.     *     * @return The name.     */    public String getName()  { 	return name;     }    void clonePerformanceCriterion(PerformanceCriterion other) {	super.clonePerformanceCriterion(other);	EstimatedPerformance ep = (EstimatedPerformance)other;	this.name               = ep.name;	this.reciprocalFitness  = ep.reciprocalFitness;	this.exampleCount       = ep.exampleCount;	this.value              = ep.value;    }    public void buildAverage(PerformanceCriterion performance) {	super.buildAverage(performance);	EstimatedPerformance other = (EstimatedPerformance)performance;	if (!other.name.equals(this.name))	    throw new RuntimeException("Cannot build average of different criterion types ("+this.getName()+"/"+other.getName()+").");	this.exampleCount += other.exampleCount;	this.value        += other.value;    }}

⌨️ 快捷键说明

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