Código de Java - Usando fitness para ordenar palabras

Imágen de perfil

Usando fitness para ordenar palabrasgráfica de visualizaciones


Java

Publicado el 04 de Julio del 2017 por Rafael Angel
259 visualizaciones desde el 04 de Julio del 2017. Una media de 28 por semana
Basado en códigos genéticos, podría decirse que esta es una de las funciones de un código genético.
La que le da el valor de aptitud a un individuo virtual.
Pero en esta ocasión su usó es para darle un valor a 3 palabras que se le pasen por medio de parámetros.
Las cuales serán ordenadas de acuerdo a su valor, hablando en código genético por su aptitud o fitness.
Se ha hecho uso de la palabra Fitness para familiarizar al publico con la nomenclatura de los algoritmos genéticos.

Requerimientos

Tener cualquiera de estos editores o cualquiera que lo haga en Java.
DrJava, Geany, Eclipse, NetBeans.

1.0

Publicado el 04 de Julio del 2017gráfica de visualizaciones de la versión: 1.0
260 visualizaciones desde el 04 de Julio del 2017. Una media de 28 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
//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
 

Comentar la versión: 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s4060