Estructuras de Datos - I.T.Informática Gestión

Curso 01/02 - Segunda Práctica

 

7/10/2002: Añadida sección Solución de la práctica

Atención: Añadida sección Comentarios sobre la práctica

Uno de los problemas más famosos en ciencias de cómputo es el problema del viajante, que consiste en encontrar la ruta óptima (aquella que minimiza la distancia recorrida) para recorrer un conjunto de n ciudades (representadas por puntos en un plano bidimensional) de manera que sólo se pase una vez por cada una ciudad y se regrese al punto de partida (esto es, se recorra un ciclo). Aunque sencillo de enunciar, se cree que éste problema no se puede resolver en un tiempo polinómico, y que no existe una solución mucho mejor que la de enumerar las n! rutas posibles y escoger la óptima.

Sin embargo, es posible (o no) que la siguiente variante del problema, que denominaremos problema restringido del viajante, admita una solución más eficiente. En el problema restringido se exige que las ciudades se presenten ordenadas por la coordenada horizontal (es decir, la primera ciudad es la situada más al oeste y la última la situada más al este) y se añade la siguiente restricción que debe cumplir un ciclo para poder ser una solución del problema:

La ruta solución consta de dos partes, una ruta de ida y una ruta de vuelta:

La ruta solución consistirá en unir la ruta de ida a la ruta de vuelta, obteniendo un ciclo que parte de la primera ciudad y termina en ella. Claramente, una ciudad distinta a la primera o la última debe pertenecer o bien a la ruta de ida o bien a la de vuelta.

Ejemplo: En la figura 1 se muestra un conjunto de puntos correspondientes a las capitales de Castilla y León. El orden de las ciudades sería ZA-SA-LE-VA-AV-P-SG-BU-SO (coordenada horizontal creciente). En las figuras 2 y 3 se muestran dos posibles soluciones del problema restringido, en la figura 2 todas las ciudades entre la primera (ZA) y la última (SO) pertenecen a la ruta de ida, y ninguna a la de vuelta. En la figura 3 se presenta la solución óptima, con un ciclo de 861.8 Km., en la cual las ciudades LE-VA-P-BU pertenecen a la ruta de ida y SG-AV-SA a la de vuelta.

Fig. 1Fig. 2Fig. 3

La práctica consistirá en crear un algoritmo que encuentre la ruta óptima del problema restringido del viajante aplicando la estrategia de diseño de algoritmos más conveniente para este problema. La calificación dependerá, entre otras cosas, de la eficiencia del algoritmo obtenido. Se deberá entregar la siguiente documentación:

 

Comentarios sobre la práctica

Datos de entrada:

Resultados:

Casos de prueba adicionales:

 

Solución de la práctica

Notación

Estructura de la solución