domingo, 26 de abril de 2015


ALGORITMO DISEÑADO

 El algoritmo cuenta con el siguiente diagrama de flujo
 La función de costo El primer paso en el desarrollo del algoritmo consiste en definir la función de costo, para nuestro caso en particular la función que evalúa la aptitud es la ecuación de dos variables que buscamos resolver se reemplazan los valores de x y de y en la ecuación y la aptitud será la distancia al resultado. 5.2. Las restricciones Con el fin de permitir que el algoritmo converja hacia la solución de una manera más rápida se restringe el valor de la variable x para que no sea mayor que doce, el valor de y para que no sea mayor que cien; los valores en



sí mismos deben ser enteros y se ajusta el algoritmo para que busque la mínima solución posible debido a que la ecuación en si misma tiene múltiples soluciones. 
 La codificación Para el presente algoritmo no se utilizó codificación binaria ni de ningún tipo debido a que los valores de las parejas enteras (x,y) aleatoriamente generadas pertenecientes a la población pueden evaluarse directamente en la función de aptitud  Selección El algoritmo escoge de cada población de 10 elementos los 5 mejores y estos los cruza para generar 5 descendientes para completar los 10 elementos de la segunda generación se agregan 5 parejas aleatorias. 
Cruce Debido a que el algoritmo evalúa cantidades enteras que no han pasado por ningún proceso de codificación se utilizó como método de cruce el promedio de las dos cantidades enteras, como este promedio no siempre corresponde a una cantidad entera, si el resultado era decimal, se redondeaba a la cantidad entera más cercana. 5.6. Mutación En el presente algoritmo no se utilizó la mutación para los elementos de la población

Una estructura de datos es una representación de datos junto con las operaciones
permitidas sobre dichos datos.

Típicamente todas las estructuras de datos permiten inserciones arbitrarias. Las estructuras de datos varían en como permiten el acceso a los miembros del grupo.
 Algunas permiten tanto accesos como operaciones de borrado arbitrarios. 
Otras imponen restricciones, tales como permitir el acceso sólo al elemento más recientemente insertado, o al menos recientemente insertado.

Las estructuras de datos nos permiten lograr un importante objetivo de la programación
orientada a objetos: la reutilización de componentes. Una vez que una estructura de datos ha sido implementada, puede ser utilizada una y otra vez en diversas aplicaciones.

El enfoque, separación de la interfaz y la implementación, es parte del paradigma de
la programación orientada a objetos.

El usuario de la estructura de datos no necesita ver la implementación, sólo las operaciones disponibles. Esta es la parte de ocultamiento y encapsulación, de la programación orientada a objetos.

Otra parte importante de la programación orientada a objetos es la abstracción, Se deben
pensar cuidadosamente el diseño de las estructuras de datos sin tener en cuenta la
implementación. Esto hace la interfaz más limpia, más flexible, más reutilizable y generalmente más fácil de implementar.


Para añadir un nuevo elemento al final:

ultimo.siguiente = new NodoLista( ); //nuevo nodo lista
ultimo = ultimo.siguiente;                  //ajusta el ultimo
ultimo.dato = x ;                                // coloca x en el nodo
ultimo.siguiente = null;                     // Es el último, ajusta el siguiente

Iterar a través de una lista enlazada (básico):

for ( NodoLista p=analista.primero ; p ! = null ; p.siguiente)
System.out.println( p.dato )
Iterar a través de una lista enlazada (con un iterador):
//recorrer la lista, utilizando la abstracción y el iterador…
ListaIter iter = new ListaIter (laLista); // cuidado…
for ( iter.primero( ) ; iter.estaDentro( ); iter.avanzar ( ) )
System.out.println( iter.recuperar( )




No hay comentarios:

Publicar un comentario