Beruflich Dokumente
Kultur Dokumente
Encontrar el camino más corto entre Logroño y Valencia usando el algoritmo voraz
primero el mejor y el algoritmo A*
Además del anterior mapa que indica la distancia entre dos ciudades adyacentes por
medio de líneas entre dichas ciudades y un valor, se tiene la siguiente tabla relativa a
las distancias aéreas (distancia euclídea) entre las diferentes ciudades:
Guadalajara
Tarragona
Castellón
Zaragoza
© Universidad Internacional de La Rioja (UNIR)
Valencia
Logroño
Cuenca
Madrid
Huesca
Burgos
Teruel
Bilbao
Soria
Tarragona 0 419 177 340 424 216 374 187 432 318 308 167 229
Bilbao 419 0 242 97 323 358 293 246 119 171 361 436 473
1
Huesca 177 242 0 172 335 207 284 67 272 176 271 240 296
Logroño 340 97 172 0 251 261 212 157 103 77 267 340 375
Madrid 424 323 335 251 0 220 51 273 214 182 138 314 302
Teruel 216 358 207 261 220 0 176 146 310 195 93 98 115
Guadalajara 374 293 284 212 51 176 0 221 212 138 106 273 270
Zaragoza 187 246 67 157 273 146 221 0 245 133 204 198 246
Burgos 432 119 272 103 214 310 212 245 0 119 284 402 424
Soria 318 171 176 77 182 195 138 133 119 0 191 284 311
Cuenca 308 361 271 267 138 93 106 204 284 191 0 178 164
Castellón 167 436 240 340 314 98 273 198 402 284 178 0 63
Valencia 229 473 296 375 302 115 270 246 424 311 164 63 0
Soria 311
Zaragoza 246
Madrid 302
Guadalajara 270
2
Teruel 115
Tarragona 229
Cuenca 164
Castellón 63
Valencia 0
Tabla 2. Función heurística para cada ciudad tomando como objetivo Valencia.
Al igual que sucedía en el Algoritmo Voraz, se añaden en la lista abierta las opciones
que se pueden seleccionar según los nodos visitados, y de esta lista se tacha la mejor
opción para ser añadida a la lista cerrada, la cual representa los nodos visitados.
Abierta = {Logroño (375)}
Cerrada = {Logroño (375)}
Ahora se expande el nodo añadido en la lista cerrada (Logroño) con los caminos que
salen de él, pero sin tener en cuenta los ya recorridos (en este caso el camino a
© Universidad Internacional de La Rioja (UNIR)
Logroño), esta exclusión se llevará a cabo a la hora de expandir todos los nodos
seleccionados en la lista cerrada.
3
La lista abierta se ordena de mayor a menor valor de f(n), la razón es para siempre
sacar de esta lista el último valor, el cual representa el mejor o más óptimo.
Abierta = {Bilbao (609), Burgos (556), Huesca (535), Zaragoza (416), Soria (411)}
Cerrada = {Logroño (375), Soria (411)}
Se expande el nodo Soria con sus respectivos caminos posibles.
En este caso, y en comparación con el algoritmo voraz, la lista abierta no borra sus
anteriores opciones, esto sucede ya que el algoritmo A* tiene la propiedad de
devolverse si ve que el camino por donde va no es el más óptimo o si se encuentra
encerrado.
Abierta = {Madrid (633), Bilbao (609), Burgos (556), Guadalajara (540), Huesca (535),
Zaragoza (416)}
Cerrada = {Logroño (375), Soria (411), Zaragoza (416)}
© Universidad Internacional de La Rioja (UNIR)
4
El nodo escogido (Zaragoza) no estaba en el camino que se seguía, sin embargo, el
algoritmo permitió pasar hacia él debido a que su valor de f(n) es más bajo, indicando
a su vez que es el más óptimo.
Para Zaragoza aparece la opción Huesca, sin embargo, como Huesca ya estaba en la
lista abierta, se deja solo el valor más bajo entre estos dos, el cual es de 535.
El nodo Guadalajara ya estaba en la lista abierta, así que se deja el valor más bajo que
es de 540.
Abierta = {Tarragona (635), Madrid (633), Bilbao (609), Burgos (556), Guadalajara
(540), Huesca (535), Teruel (455)}
Cerrada = {Logroño (375), Soria (411), Zaragoza (416), Teruel (455)}
Se expande el siguiente mejor nodo que es Teruel.
© Universidad Internacional de La Rioja (UNIR)
El nodo Guadalajara ya estaba en la lista abierta, así que se deja el valor más bajo que
es de 540.
Abierta = {Tarragona (635), Madrid (633), Bilbao (609), Burgos (556), Castellón (547),
5
Guadalajara (540), Huesca (535)}
Cerrada = {Logroño (375), Soria (411), Zaragoza (416), Teruel (455), Huesca (535)}
Ahora se vuelve a cambiar de ruta y se expande el nodo Huesca con el valor más bajo
de f(n) de 535.
El nodo Bilbao ya estaba en la lista abierta, así que se deja el valor más bajo que es
de 609.
El nodo Tarragona ya estaba en la lista abierta, así que se deja el valor más bajo que
es de 635.
Abierta = {Tarragona (635), Madrid (633), Bilbao (609), Burgos (556), Castellón (547),
Guadalajara (540)}
Cerrada = {Logroño (375), Soria (411), Zaragoza (416), Teruel (455), Huesca (535),
Guadalajara (540)}
6
El nodo Madrid ya estaba en abierta, así que se deja el valor más bajo que es de 633.
Abierta = {Tarragona (635), Madrid (633), Bilbao (609), Cuenca (570), Burgos (556),
Castellón (547)}
Cerrada = {Logroño (375), Soria (411), Zaragoza (416), Teruel (455), Huesca (535),
Guadalajara (540), Castellón (547)}
Nuevamente se cambia la ruta y se expande el nodo Castellón.
© Universidad Internacional de La Rioja (UNIR)
El nodo Tarragona ya estaba en abierta, así que se deja el valor más bajo que es de
635.
Aunque ya aparece Valencia como nodo, aún este no será añadido a la lista cerrada
debido a que hay mejores opciones para añadir a dicha lista.
7
Abierta = {Tarragona (635), Madrid (633), Bilbao (609), Cuenca (570), Valencia (557),
Burgos (556)}
Cerrada = {Logroño (375), Soria (411), Zaragoza (416), Teruel (455), Huesca (535),
Guadalajara (540), Castellón (547), Burgos (556)}
Debido a que Burgos es una mejor opción que Valencia aún no termina el algoritmo,
y se debe expandir el primero que se mencionó.
El nodo Madrid ya estaba en abierta, así que se deja el valor más bajo que es de 633.
Abierta = {Tarragona (635), Madrid (633), Bilbao (609), Cuenca (570), Valencia (557)}
Cerrada = {Logroño (375), Soria (411), Zaragoza (416), Teruel (455), Huesca (535),
Guadalajara (540), Castellón (547), Burgos (556), Valencia (557)}
Ya que se agregó Valencia a la lista cerrada el algoritmo termina.
La lista cerrada a diferencia del algoritmo voraz, no marca el camino óptimo a seguir,
este camino se debe obtener del árbol generado finalmente, y en caso de que se esté
programando, este camino se debe obtener de los punteros que marcan la
trayectoria que se siguió.
El camino señalado como óptimo entre Logroño y Valencia es:
© Universidad Internacional de La Rioja (UNIR)