Iván Sánchez Ortega escribió:
> El Sábado, 13 de Diciembre de 2008, Jaume Figueras escribió:
>   
>> pues yo no se ver que relación hay entre lo que pide Sergio y el cálculo
>> de rutas óptimas o del TSP.
>>     
>
> Pues yo creo que sí se puede convertir el problema de Sergio en un TSP. A 
> saber:
>
> Coges el grafo, y transformas los nodos en aristas y las aristas en nodos. Es 
> decir, por cada arista del grafo creas un nodo; por cada nodo que tienen en 
> común un par de aristas, creas una arista. Se le da un peso cero a todas las 
> aristas del nuevo grafo.
>
> (No se puede llamar un grafo dual, porque la dualidad de grafos es otro 
> concepto distinto).
>
> En este nuevo grafo, el recorrer un nodo corresponde a completar una calle. 
> Cada nodo tendrá asociada la longitud de la arista correspondiente en el 
> grafo origen, pero este número no es un peso, a priori.
>
>   
el problema de tu solución es que a veces entra en el nodo (un tramo de 
calle) y vuelve a salir por donde ha entrado,
es decir, imaginando una doble T entro por {1} y puedo girar a dcha {2} 
o izq {3}, elijo izq {3} y vuelvo a tener la opción de dcha {4} o izq 
{5} pero la solución puede mandarme a dcha anterior {2}. lo que supone 
en la realidad a recorrer el tramo y hacer un cambio de sentido. como 
hemos simplificado los arcos como nodos la solución no entiende que 
estoy volviendo sobre mis pasos.
lo que hay que evitar para que funcione bien. (no se si me he explicado 
con claridad)

> Ahora bien, ¿qué pasa con las calles que hay que recorrer dos veces? Aquí es 
> donde entran en juego las simplificaciones y el TSP.
>
> Para cada nodo del nuevo grafo, se calcula el "spanning tree" al resto de 
> nodos, para calcular el peso de hacer un recorrido entre un par de nodos 
> cualesquiera (el peso será el sumatorio de las longitudes asociadas a todos 
> los nodos por los que se ha pasado al hacer el árbol).
>
>
> Así que al final, se tiene un conjunto de nodos, una tabla que te da las 
> distancias entre todos los nodos... y el problema es recorrer todos los nodos 
> con un coste mínimo. Un TSP de toda la vida.
>
> (Véase que el coste intrínseco del problema no se tiene en cuenta, dado que 
> hay que recorrer todas las calles al menos una vez sí o sí; en el caso 
> óptimo, que es que el TSP te diga que el coste es cero, significa que no se 
> repite ninguna calle).
>
>
>   
esto ultimo me he perdido

he intentado
resolver un problema como dices con el software Grafos del que os pasé 
un link
y que solo resuelve TSP, creo que solo funcionaría de manera correcta si 
es dirigido (todas las calles oneway)

unas fotos de ejemplo
http://www.tumbao.ws/osm/cpp/pinocentinelaJOSM (calles reales de ejemplo)
http://www.tumbao.ws/osm/cpp/pinocentinelaGrafoTSP_cruces.png (los nodos 
son los cruces del ejemplo) esta solución es la ruta óptima para 
recorrer todos los cruces, valdría para recoger los nombres de todas las 
calles pero no para trazas de todas las calles.
http://www.tumbao.ws/osm/cpp/pinocentinelaGrafoTSP_arcos.png (los nodos 
son las calles del ejemplo) ocurre el problema que he mencionado antes.


> Saludos algorítmicos,
>   
>   
idem
> ------------------------------------------------------------------------
>
> _______________________________________________
> Talk-es mailing list
> Talk-es@openstreetmap.org
> http://lists.openstreetmap.org/listinfo/talk-es
>   


_______________________________________________
Talk-es mailing list
Talk-es@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-es

Responder a