09.11.2013 Views

Recuperación de información para respuesta a preguntas en ...

Recuperación de información para respuesta a preguntas en ...

Recuperación de información para respuesta a preguntas en ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Figura 9. Grafo: a) conexo, b) inconexo.<br />

Nótese que la <strong>de</strong>finición <strong>de</strong> trayectoria permite repeticiones <strong>de</strong> vértices o aristas o ambos.<br />

Se pue<strong>de</strong>n obt<strong>en</strong>er otras clases <strong>de</strong> trayectorias imponi<strong>en</strong>do restricciones sobre los nodos y/o<br />

vértices. Por ejemplo, sean v y w vértices <strong>en</strong> un grafo G, <strong>en</strong>tonces:<br />

Una trayectoria simple <strong>de</strong> v a w es una ruta <strong>de</strong> v a w sin vértices repetidos.<br />

Exist<strong>en</strong> algunos problemas <strong>para</strong> los cuales es útil <strong>de</strong>terminar la ruta más corta <strong>en</strong>tre un par<br />

<strong>de</strong> vértices <strong>en</strong> un grafo pon<strong>de</strong>rado. A continuación se muestra un algoritmo que <strong>en</strong>cu<strong>en</strong>tra<br />

la ruta más corta <strong>en</strong>tre dos vértices <strong>de</strong> un grafo pon<strong>de</strong>rado conexo.<br />

Algoritmo <strong>de</strong> Dijkstra<br />

El algoritmo <strong>de</strong> Dijkstra consiste básicam<strong>en</strong>te <strong>en</strong> asignar etiquetas temporales a los nodos.<br />

Sea L(v) la etiqueta <strong>de</strong>l vértice v.<br />

En cualquier paso <strong>de</strong>l algoritmo, algunos vértices pose<strong>en</strong> etiquetas temporales y el resto son<br />

perman<strong>en</strong>tes. Al inicio, todos los vértices ti<strong>en</strong><strong>en</strong> etiquetas temporales. En cada iteración <strong>de</strong>l<br />

algoritmo el estado <strong>de</strong> una <strong>de</strong> las etiquetas temporales cambia a perman<strong>en</strong>te, así el<br />

algoritmo termina cuando z recibe una etiqueta perman<strong>en</strong>te. En este punto L(v) proporciona<br />

la longitud <strong>de</strong> la ruta más corta <strong>de</strong> a a z.<br />

Algoritmo <strong>de</strong> la ruta más corta <strong>de</strong> Dijkstra.<br />

Este algoritmo <strong>en</strong>cu<strong>en</strong>tra la longitud <strong>de</strong> una ruta más corta <strong>de</strong>l vértice a al vértice z <strong>en</strong> un<br />

grafo pon<strong>de</strong>rado conexo. El peso <strong>de</strong> la arista (i, j) es w(i, j) > 0, y la etiqueta <strong>de</strong>l vértice x es<br />

L(x). Al terminar, L(z) es la longitud <strong>de</strong> la ruta más corta <strong>de</strong> a a z.<br />

Entrada: Un grafo G pon<strong>de</strong>rado conexo <strong>en</strong> el que todos los pesos son positivos, conjunto <strong>de</strong><br />

vértices <strong>de</strong> a a z.<br />

Salida: L(z), la longitud <strong>de</strong> la ruta más corta <strong>de</strong> a a z.<br />

30

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!