/***********************************************************************
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.Genetic_Rule_Learning.Advanced_Ant_Miner;
import java.util.*;
/**
* <p>T�tulo: Ant Colony Optimization</p>
* <p>Descripci�n: Clase muestra.
* Contiene una linea del fichero, cada linea tiene una muestra de la forma
* condiciones => clase </p>
* <p>Copyright: Copyright (c) 2007</p>
* <p>Empresa: </p>
* @author Vicente Rub�n del Pino Ruiz
* @version 1.0
*/
public class Muestra {
private Vector condiciones; //Atributos de la regla
private Atributo clase; //Clase de la regla
private int posicion; //Posicion en el fichero de donde se ha extraido
private boolean cubierta; //Indica si la muestra esta cubierta por alguna regla
/**
* Constructor por defecto
* Crea una muestra vacia
*/
public Muestra() {
condiciones=new Vector();
clase=new Atributo();
posicion=-1;
cubierta =false;
}
/**
* Constructor
* Crea una regla a partir de los atributos y la clase que se le pasan
* por parametro.
*
* @param conjuntoAtributos Vector
* @param claseOriginal String
* @param posicionFichero int
*/
public Muestra(Vector conjuntoAtributos, Atributo claseOriginal,int posicionFichero){
condiciones= new Vector(conjuntoAtributos);
clase= new Atributo (claseOriginal);
posicion= posicionFichero;
cubierta=false;
}
/**
* Modulo que inserta un atributo junto con su valor en la regla
*
* @param original Atributo Atributo que se inserta en la regla.
*/
public void insertarAtributo(Atributo original){
condiciones.addElement(original);
}
/**
* Modulo que inserta la clase a la que identifica la regla con todos
* sus atributos
*
* @param original Atributo Clase que se inserta en la regla
*/
public void insertarClase(Atributo original){
clase=original;
}
/**
* Inserta la posicion que ocupa la muestra en el fichero de origen
* @param posicionFichero int
*/
public void insertaPosicion(int posicionFichero){
posicion=posicionFichero;
}
/**
* Modulo que pone a cubierta la muestra
*/
public void siEstaCubierta(){
cubierta=true;
}
/**
* Modulo que pone a no cubierta la muestra
*/
public void noEstaCubierta(){
cubierta=false;
}
/**
* Funcion que indica si la muestra esta cubierta o no
* @return boolean Booleano que indica si esta cubierta la muestra
*/
public boolean estaCubierta(){
return cubierta;
}
/**
* Funcion que avisa si un atributo esta ya junto con su valor en una regla
*
* @param original Atributo Atributo que se busca en la regla
* @return boolean True si el atributo esta en la regla, False en caso contrario
*/
public boolean estaAtributo(Atributo original){
boolean devolver= condiciones.contains(original);
return devolver;
}
/**
* Funcion que avisa si la clase que tiene la muestra es igual que la pasada por parametro
* @param original Atributo Clase a comparar con la que contiene la muestra
* @return boolean Booleano que indica si la clase es igual (true) o no (false)
*/
public boolean estaClase(Atributo original){
boolean devolver;
String s1=clase.getValor();
String s2=original.getValor();
if(s1.equals(s2))
return true;
else
return false;
}
/**
* Funcion que devuelve el valor de la condicion que esta en la posicion indice
* @param indice int Indice de la condicion
* @return double Valor de la condicion
*/
public Atributo getValor(int indice){
Atributo actual=(Atributo)condiciones.get(indice);
return actual;
}
/**
* Funcion que devuelve el valor de la clase
* @return double Valor de la clase de la muestra
*/
public Atributo getClase(){
return clase;
}
/**
* Modulo que imprime por pantalla todas las condiciones de la muestra, seguidas de su
* clase correspondiente
*/
public void imprimir(){
String valor;
Atributo at;
int i;
for(i=0;i<condiciones.size()-1;i++){
at=(Atributo)condiciones.get(i);
valor=at.getValor();
System.out.print(valor+" AND ");
}
//La ultima iteracion no se pinta el AND
at=(Atributo)condiciones.get(i);
valor=at.getValor();
System.out.print(valor);
//Ultima iteracion
valor=clase.getValor();
System.out.print(" ---> "+valor+" \n");
}
}