Implementación Implementación

En primer lugar, se implementan los algoritmos genéricos y, a continuación, se crean clases que heredan de las clases madres que permiten resolver el problema de la mochila.

Se utilizan dos versiones del problema de la mochila: la primera es la que se presenta como ejemplo en el algoritmo voraz (con 16 objetos), y la segunda es una versión más compleja y aleatoria, que permite comparar mejor los distintos algoritmos.

Se realiza un análisis de los resultados obtenidos al final de esta sección.

1. Clases genéricas

En primer lugar, hay que definir algunas clases e interfaces muy genéricas. Nos permitirán crear, a continuación, los distintos algoritmos.

ISolution es una interfaz que representa una solución potencial para un problema determinado. La única obligación para esta solución es tener una propiedad que permita conocer su valor.


public interface Isolution  
{  
    double Value { get; }  
}
 

Es posible, ahora, definir un problema gracias a una interfaz IProblem. Debemos poder obtener una solución aleatoria (RandomSolution()), el vecindario de una solución (Neighbourhood()) y, por último, la mejor solución de entre una lista pasada como parámetro. Todos estos métodos se utilizarán en los diversos algoritmos.


using System.Collections.Generic;  
   
public interface Iproblem  
{  
    List<ISolution>...
Si desea saber más, le proponemos el siguiente libro:
couv_DPT2INT.png
60-signet.svg
Versión impresa
20-ecran_lettre.svg
Versión online
41-logo_abonnement.svg
En ilimitado con la suscripción ENI
130-boutique.svg
En la tienda oficial de ENI
Anterior
Dominios de aplicación
Siguiente
Resumen