📄 configuration.java
字号:
/*
Copyright (C) 2004 Julia Handl
Email: Julia.Handl@gmx.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
*/
/*****************************************************************
Julia Handl - 18004385
Monash University, 1.7.2001
File: Configuration.java
Package: JavaAnts
Description: Wrapping class for all essential parameter settings
*****************************************************************/
package javaants;
import java.lang.*;
import java.util.*;
import java.awt.*;
import java.awt.image.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
/**
* Wrapping class for all essential parameter settings.<br>
* Value- and String-based access to the following parameters is provided:
* <p>
* <p>
* <b>General parameters</b>
* <ul>
* <li><i><b>boolean test: </b></i> Enable detailed analysis of sorting progress</li>
* <li><i><b>boolean testData: </b></i> Enable further analysis (possible only with test data A1)</li>
* <li><i><b>boolean blocked: </b></i> Internal use: Ensures that only one topic map at a time can be viewed</li>
* <li><i><b>int method: </b></i> Toggle between old and new ant-algorithm, Ant-Q and the Hybrid</li>
* <li><i><b>String browser: </b></i> Configured browser path</li>
* </ul>
* <p>
* <b>Map parameters</b>
* <ul>
* <li><i><b>int xsize: </b></i> Map width</li>
* <li><i><b>int ysize: </b></i> Map height</li>
* <li><i><b>int runs: </b></i> Upper limit on number of runs for the ant-based methods</li>
* <li><i><b>int iterations: </b></i> Number of iterations per run</li>
* </ul>
* <p>
* <ul>
* <b>Ant parameters</b>
* <li><i><b>int nants: </b></i> Size of ant colony</li>
* <li><i><b>int speed: </b></i> Ant speed limit</li>
* <li><i><b>boolean homogenous: </b></i> Toggle between homogenous and inhomogenous population</li>
* <li><i><b>int memsize: </b></i> Ant memory size</li>
* <li><i><b>int sigma: </b></i> Size of perceived neighbourhood</li>
* <li><i><b>boolean adaptK: </b></i> Toggle between adaptive and non-adaptive mode for kd and kp</li>
* <li><i><b>double kd: </b></i> Regulation of dropping probability</li>
* <li><i><b>double kd_start: </b></i> Lower limit for kd in adaptive mode</li>
* <li><i><b>double kd_end: </b></i> Upper limit for kd in adaptive mode</li>
* <li><i><b>double kd_interval: </b></i> Stepwidth for kd in adaptive mode</li>
* <li><i><b>double kp: </b></i> Regulation of picking probability</li>
* <li><i><b>double kp_start: </b></i> Lower limit for kp in adaptive mode</li>
* <li><i><b>double kp_end: </b></i> Upper limit for kp in adaptive mode</li>
* <li><i><b>double kp_interval: </b></i> Stepwidth for kp in adaptive mode</li>
* <li><i><b>boolean adaptAlpha: </b></i> Toggle between adaptive and non-adaptive mode for alpha</li>
* <li><i><b>double alpha: </b></i> Scaling of dissimilarities</li>
* <li><i><b>double alpha_start: </b></i> Lower limit for alpha in adaptive mode</li>
* <li><i><b>double alpha_end: </b></i> Upper limit for alpha in adaptive mode</li>
* <li><i><b>double alpha_interval: </b></i> Stepwidth for alpha in adaptive mode</li>
* </ul>
* <p>
* <ul>
* <b>Document parameters</b>
* <li><i><b>int nkeys: </b></i> Dimension of document space</li>
* <li><i><b>int ndocs: </b></i> Number of documents</li>
* <li><i><b>double distscale: </b></i> Scaling paramter for dissimilarities</li>
* <li><i><b>int simMeasure: </b></i> Select similarity measure (Euclidean / Cosine / Overlap)</li>
* <li><i><b>int textMode: </b></i> Select retrieval mode (Snippets / Full-Text / META-Data)</li>
* <li><i><b>boolean useDefaults: </b></i> Use default preprocessing?</li>
* <li><i><b>int lowercutoff: </b></i> Lower bound cutoff frequency</li>
* <li><i><b>int uppercutoff: </b></i> Upper bound cutoff frequency</li>
* <li><i><b>int dim: </b></i> LSI Target dimension</li>
* <li><i><b>int choice: </b></i> Select test distribution</li>
* </ul>
* <p>
*/
public class Configuration implements Serializable {
// General program switches
private boolean test = false;
private boolean testData = false;
private boolean blocked = false;
private int method = 0;
private String browser = "netscape";
// Map parameters
private int xsize = 100;
private int ysize = 100;
private int iterations = 10000;
private int runs = 50;
// Ant parameters
private int nants = 20;
private int speed = 50;
private boolean homogenous = false;
private int memsize = 20;
private int sigma = 2;
private double kd = 0.01;
private double kp = 0.01;
private double kd_end = 0.01;
private double kd_start = 0.1;
private double kd_interval = 0.001;
private double kp_end = 0.01;
private double kp_start = 0.1;
private double kp_interval = 0.001;
private boolean adaptK = false; /** Toggle between adaptive and non-adaptive mode*/
private boolean adaptAlpha = true; /** Toggle between adaptive and non-adaptive mode*/
private double alpha_end = 1.0;
private double alpha_start = 0.1;
private double alpha_interval = 0.01;
private double alpha = 1.0;
// Document Parameters
private double distscale;
private int nkeys = 2;
private int simMeasure = 0; /** Select similarity measure (Euclidean / Cosine / Overlap) */
private int textMode = 0; /** Select retrieval mode (Snippets / Full-Text / META-Data) */
private boolean usedefaults = true;
private int lowercutoff = 2;
private int uppercutoff = 1000;
private int dim = 50;
private int ndocs = 600;
private int choice = 0;
/********** Constructor ***************************************************************************/
public Configuration() {
}
/********** simple manipulation functions *********************************************************/
// string based
public void setBrowser(String value) {
this.browser = value;
}
public void setLowerCutoff(String value) {
this.lowercutoff = new Integer(value).intValue();
}
public void setUpperCutoff(String value) {
this.uppercutoff = new Integer(value).intValue();
}
public void setdimension(String value) {
this.dim = new Integer(value).intValue();
}
public void setAlphaStart(String value) {
this.alpha_start = new Double(value).doubleValue();
}
public void setAlphaEnd(String value) {
this.alpha_end = new Double(value).doubleValue();
}
public void setAlphaInterval(String value) {
this.alpha_interval = new Double(value).doubleValue();
}
public void setKdStart(String value) {
this.kd_start = new Double(value).doubleValue();
}
public void setKdEnd(String value) {
this.kd_end = new Double(value).doubleValue();
}
public void setKdInterval(String value) {
this.kd_interval = new Double(value).doubleValue();
}
public void setKpStart(String value) {
this.kp_start = new Double(value).doubleValue();
}
public void setKpEnd(String value) {
this.kp_end = new Double(value).doubleValue();
}
public void setKpInterval(String value) {
this.kp_interval = new Double(value).doubleValue();
}
public void setxsize(String value) {
this.xsize = new Integer(value).intValue();
}
public void setysize(String value) {
this.ysize = new Integer(value).intValue();
}
public void setruns(String value) {
this.runs = new Integer(value).intValue();
}
public void setnants(String value) {
this.nants = new Integer(value).intValue();
}
public void setndocs(String value) {
this.ndocs = new Integer(value).intValue();
}
public void setnkeys(String value) {
this.nkeys = new Integer(value).intValue();
}
public void setspeed(String value) {
this.speed = new Integer(value).intValue();
}
public void setmemsize(String value) {
this.memsize = new Integer(value).intValue();
}
public void setkd(String value) {
this.kd = new Double(value).doubleValue();
}
public void setkp(String value) {
this.kp = new Double(value).doubleValue();
}
public void setalpha(String value) {
this.alpha = new Double(value).doubleValue();
}
public void setsigma(String value) {
this.sigma = new Integer(value).intValue();
}
// value based
public void setLowerCutoff(int value) {
this.lowercutoff = value;
}
public void setUpperCutoff(int value) {
this.uppercutoff = value;
}
public void setdimension(int value) {
this.dim = value;
}
public void setUseDefaults(boolean value) {
this.usedefaults = value;
}
public void setMethod(int value) {
this.method = value;
}
public void setAlphaStart(int value) {
this.alpha_start = value;
}
public void setAlphaEnd(int value) {
this.alpha_end = value;
}
public void setAlphaInterval(int value) {
this.alpha_interval = value;
}
public void setKdStart(int value) {
this.kd_start = value;
}
public void setKdEnd(int value) {
this.kd_end = value;
}
public void setKdInterval(int value) {
this.kd_interval = value;
}
public void setKpStart(int value) {
this.kp_start = value;
}
public void setKpEnd(int value) {
this.kp_end = value;
}
public void setKpInterval(int value) {
this.kp_interval = value;
}
public void setTest(boolean value) {
this.test = value;
}
public void setTestData(boolean value) {
this.testData = value;
}
public void setAdaptAlpha(boolean value) {
this.adaptAlpha = value;
}
public void setAdaptK(boolean value) {
this.adaptK = value;
}
public void setTextMode(int value) {
this.textMode = value;
}
public void setSimMeasure(int value) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -