/***********************************************************************
This file is part of KEEL-software, the Data Mining tool for regression,
classification, clustering, pattern mining and so on.
Copyright (C) 2004-2010
F. Herrera (herrera@decsai.ugr.es)
L. S�nchez (luciano@uniovi.es)
J. Alcal�-Fdez (jalcala@decsai.ugr.es)
S. Garc�a (sglopez@ujaen.es)
A. Fern�ndez (alberto.fernandez@ujaen.es)
J. Luengo (julianlm@decsai.ugr.es)
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 3 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, see http://www.gnu.org/licenses/
**********************************************************************/
package keel.Algorithms.UnsupervisedLearning.AssociationRules.IntervalRuleLearning.MODENAR;
import java.util.*;
public class Chromosome {
private ArrayList<Gene> genes;
private double[] fitness;
private double ruleSupport;
private double ruleConfidence;
int rank;
boolean tournSelect;
public double getRuleConfidence() {
return ruleConfidence;
}
public void setRuleConfidence(double ruleConfidence) {
this.ruleConfidence = ruleConfidence;
}
public double getRuleSupport() {
return ruleSupport;
}
public void setRuleSupport(double ruleSupport) {
this.ruleSupport = ruleSupport;
}
public Chromosome()
{
this.genes = new ArrayList<Gene>();
}
public Chromosome(ArrayList<Gene> pgenes) {
// TODO Auto-generated constructor stub
this.genes = new ArrayList<Gene>();
for(int i=0;i<pgenes.size();i++) this.genes.add((pgenes.get(i)).copy());
}
public Chromosome copy() {
Chromosome chromo = new Chromosome(this.genes);
double[] fitness_copy = new double[4];
for(int i=0; i < 4; i++) fitness_copy[i] = this.fitness[i];
chromo.ruleSupport = this.ruleSupport;
chromo.ruleConfidence = this.ruleConfidence;
chromo.setFitness(fitness_copy);
return chromo;
}
public boolean equals(Object obj) {
Chromosome chr = (Chromosome)obj;
boolean ok = true;
for (int i=0; i < this.genes.size() && ok; i++)
if ( ! chr.getGenes().get(i).equals( this.genes.get(i)) ) ok = false;
return ok;
}
public double[] getFitness() {
return fitness;
}
public void setFitness(double[] fitness) {
this.fitness = fitness;
}
public ArrayList<Gene> getGenes() {
return genes;
}
public void setGenes(ArrayList<Gene> genes) {
this.genes = genes;
}
public String toString() {
String str = "Size: " + this.genes.size() + "\n";
for (int i=0; i < this.fitness.length; i++) str += "; Fit: " + i + " " + this.fitness[i] + "\n";
for (int i=0; i < this.genes.size(); i++) str += this.genes.get(i) + "\n";
return str;
}
public int getRank() {
return rank;
}
public void setRank(int rank) {
this.rank = rank;
}
}