stringtranslate.com

Algoritmo del vecino más próximo

El algoritmo del vecino más próximo fue uno de los primeros algoritmos utilizados para resolver de forma aproximada el problema del viajante de comercio . En ese problema, el viajante comienza en una ciudad al azar y visita repetidamente la ciudad más cercana hasta que ha visitado todas. El algoritmo produce rápidamente un recorrido corto, pero por lo general no es el óptimo.

Algoritmo

Estos son los pasos del algoritmo:

  1. Inicializar todos los vértices como no visitados.
  2. Seleccione un vértice arbitrario y configúrelo como el vértice actual u . Marque u como visitado.
  3. Descubra el borde más corto que conecta el vértice actual u y un vértice no visitado v .
  4. Establezca v como el vértice actual u . Marque v como visitado.
  5. Si se visitan todos los vértices del dominio, se termina el proceso. De lo contrario, se pasa al paso 3.

La secuencia de los vértices visitados es la salida del algoritmo.

El algoritmo del vecino más próximo es fácil de implementar y se ejecuta rápidamente, pero a veces puede pasar por alto rutas más cortas que son fáciles de detectar con la percepción humana, debido a su naturaleza "codiciosa". Como guía general, si las últimas etapas del recorrido son comparables en longitud a las primeras etapas, entonces el recorrido es razonable; si son mucho más largas, entonces es probable que existan recorridos mucho mejores. Otra comprobación es utilizar un algoritmo como el algoritmo de límite inferior para estimar si este recorrido es lo suficientemente bueno.

En el peor de los casos, el algoritmo da como resultado un recorrido mucho más largo que el recorrido óptimo. Para ser precisos, para cada constante r existe una instancia del problema del viajante tal que la longitud del recorrido calculado por el algoritmo del vecino más cercano es mayor que r veces la longitud del recorrido óptimo. Además, para cada número de ciudades existe una asignación de distancias entre las ciudades para las cuales la heurística del vecino más cercano produce el único peor recorrido posible. (Si el algoritmo se aplica en cada vértice como vértice de inicio, el mejor camino encontrado será mejor que al menos N/2-1 otros recorridos, donde N es el número de vértices). [1]

Es posible que el algoritmo del vecino más cercano no encuentre ningún recorrido factible, incluso cuando exista alguno.

Notas

  1. ^ G. Gutin, A. Yeo y A. Zverovich, 2002

Referencias