//Autor Rafael Angel Montero Fernández.
//Permite usar una funcion similar a la que se usa en algoritmos geneticos para darle valor a un objeto, una cadena de texto.
//por ejemplo en ordenamiento de palabras con las siguientes variantes de orden.
/*
Orden por vocales.
Orden por consonantes.
Orden por tamaño de la palabra.
Orden alfabetico.
*/
public class UsandoFitness
{
private boolean vQuitarFitness;//No se inicializa porque se inicializará en el constructor.
public UsandoFitness()//Constructor
{
setQuitarFitness(false);
}//Fin del constructor.
//Quita o permite que el valor fitnes aparesca al final de cada palabra.
private void setQuitarFitness(boolean quitar_valor_finess)
{
this.vQuitarFitness=quitar_valor_finess;
}//Fin de setQuitarFitness
private boolean getQuitarFitness()
{
return this.vQuitarFitness;
}//Fin de getQuitarFitness
//--------------------------------------------------------------------------------
private String fMejorFitness(int fitness1,int fitness2, int fitness3,String palabra1, String palabra2, String palabra3)
{
String vOrden_de_las_palabras="";
if (fitness1>=fitness2)
{
if (fitness1>=fitness3)
{
//_________________________________________________________________________________________________
if (fitness2>=fitness3)
{
//vOrden_de_las_palabras="1)"+palabra1 + " " + fitness1 + "\n2)"+palabra2 + " " + fitness2 + "\n3)"+ palabra3 + " " + fitness3;
if (getQuitarFitness()==false){
vOrden_de_las_palabras="1)"+palabra3 + " " + fitness3 + "\n2)"+palabra2 + " " + fitness2 + "\n3)"+ palabra1 + " " + fitness1;
}else{
vOrden_de_las_palabras="1)"+palabra3 + "\n2)"+palabra2 + "\n3)"+ palabra1;
}
}//fin del if
else
{
//vOrden_de_las_palabras="1)"+palabra1 + " " + fitness1 + "\n2)"+palabra3 + " " + fitness3 + "\n3)"+ palabra2 + " " + fitness2;
if (getQuitarFitness()==false){
vOrden_de_las_palabras="1)"+palabra2 + " " + fitness2 + "\n2)"+palabra3 + " " + fitness3 + "\n3)"+ palabra1 + " " + fitness1;
}else{
vOrden_de_las_palabras="1)"+palabra2 + "\n2)"+palabra3 + "\n3)"+ palabra1;
}
}//fin del else
//_________________________________________________________________________________________________
}//Fin del if
else//(fitness2<=fitness3) Fitness 2 menor o igual a fitness 3.
{
//_________________________________________________________________________________________________
if (fitness2>=fitness3)//(fitness1>=fitness2) Fitness 1 menor o igual a fitness 2.
{
if (getQuitarFitness()==false){
vOrden_de_las_palabras="1)"+palabra3 + " " + fitness3 + "\n2)"+palabra2 + " " + fitness2 + "\n3)"+ palabra1 + " " + fitness1;
}else{
vOrden_de_las_palabras="1)"+palabra3 + "\n2)"+palabra2 + "\n3)"+ palabra1;
}
}//fin del if
else//A<=B
{
if (getQuitarFitness()==false){
vOrden_de_las_palabras="1)"+palabra2 + " " + fitness2 + "\n2)"+palabra1 + " " + fitness1 + "\n3)"+ palabra3 + " " + fitness3;
}else{
vOrden_de_las_palabras="1)"+palabra2 + "\n2)"+palabra1 + "\n3)"+ palabra3;
}
}//fin del else
//_________________________________________________________________________________________________
}
}//Fin del if
else//Fitness1 es menor que Fitness2
{
if (fitness2>=fitness3)
{
//_________________________________________________________________________________________________
if (fitness1>=fitness3)
{
//vOrden_de_las_palabras="1)"+palabra2 + " " + fitness2 + "\n2)" + palabra1 + " " + fitness1 + "\n3)" + palabra3 + " " + fitness3;
vOrden_de_las_palabras="1)"+palabra3 + " " + fitness3 + "\n2)" + palabra1 + " " + fitness1 + "\n3)" + palabra2 + " " + fitness2;
}//Fin del if
else//A<=B
{
//vOrden_de_las_palabras="1)"+palabra2 + " " + fitness2 + "\n2)" + palabra3 + " " + fitness3 + "\n3)" + palabra1 + " " + fitness1;
if (getQuitarFitness()==false){
vOrden_de_las_palabras="1)"+palabra1 + " " + fitness1 + "\n2)" + palabra3 + " " + fitness3 + "\n3)" + palabra2 + " " + fitness2;
}else{
vOrden_de_las_palabras="1)"+palabra1 + "\n2)" + palabra3 + "\n3)" + palabra2;
}
}//Fin del else
//_________________________________________________________________________________________________
}//Fin del if
else//fitness2 es menor que fitness3
{
//_________________________________________________________________________________________________
if (fitness2>=fitness3)
{
//vOrden_de_las_palabras="1)"+palabra2 + " " + fitness2 + "\n2)" + palabra1 + " " + fitness1 + "\n3)" + palabra3 + " " + fitness3;
if (getQuitarFitness()==false){
vOrden_de_las_palabras="1)"+palabra1 + " " + fitness1 + "\n2)" + palabra2 + " " + fitness2 + "\n3)" + palabra3 + " " + fitness3;
}else{
vOrden_de_las_palabras="1)"+palabra1 + "\n2)" + palabra2 + "\n3)" + palabra3;
}
}//Fin del if
else//A<=B
{
//vOrden_de_las_palabras="1)"+palabra2 + " " + fitness2 + "\n2)" + palabra3 + " " + fitness3 + "\n3)" + palabra1 + " " + fitness1;
if (getQuitarFitness()==false){
vOrden_de_las_palabras="1)"+palabra3 + " " + fitness3 + "\n2)" + palabra2 + " " + fitness2 + "\n3)" + palabra1 + " " + fitness1;
}else{
vOrden_de_las_palabras="1)"+palabra3 + "\n2)" + palabra2 + "\n3)" + palabra1;
}
}//Fin del else
//_________________________________________________________________________________________________
}//Fin del else
}//Fin del else
return vOrden_de_las_palabras;
}//Fin de fMejorFitness
//----------------------------------------------------------------------------------------------------
public String getOrden_por_fitness(int fitness_palabra1, int fitness_palabra2, int fitness_palabra3, String palabra1, String palabra2, String palabra3)//Devuelve el orden de acuerdo al fitness o al valor numerico que se le pase a cada argumento el cual es como la aptitud de cada objeto.
{//La palabra fitness se usa en algoritmos geneticos artificiales, me ha parecido bien usarla aqui.
String vOrden_de_las_palabras="";
if (fitness_palabra1>=fitness_palabra2)
{
vOrden_de_las_palabras=fMejorFitness(fitness_palabra1, fitness_palabra2, fitness_palabra3, palabra1, palabra2, palabra3);
}//Fin del if
else
{
vOrden_de_las_palabras=fMejorFitness(fitness_palabra2,fitness_palabra3, fitness_palabra1,palabra2 ,palabra3 , palabra1 );
}
return vOrden_de_las_palabras;//Se invierte el orden.
}//Fin de getOrden_por_fitness
//_____________________________________________________________________________________
}//Fin del class
Comentarios sobre la versión: 1.0 (0)
No hay comentarios