Problema del agente viajero monografia

12
Problema del Agente Viajero Programación Lógica Alfaro Mostacero Rubí Gutiérrez Valdivia Carolina Lastra Bazán Maicol

Transcript of Problema del agente viajero monografia

Page 1: Problema del agente viajero monografia

Problema del Agente Viajero

Programación Lógica

Alfaro Mostacero Rubí

Gutiérrez Valdivia Carolina

Lastra Bazán Maicol

Page 2: Problema del agente viajero monografia

Programación Lógica Problema del Agente Viajero

Indice Dedicatoria ............................................................................................................................... 2

Introducción ............................................................................................................................. 3

Marco Teórico........................................................................................................................... 4

Título: ................................................................................................................................... 4

El Problema del Agente Viajero .............................................................................................. 4

Definición:............................................................................................................................. 4

Responde a la siguiente pregunta: .......................................................................................... 4

Capítulo I: Descripción del Problema.................................................................................... 5

¿Cómo funciona?................................................................................................................... 5

Complejidad Computacional................................................................................................... 5

Estructuras de datos utilizadas: .............................................................................................. 5

Capitulo II: Fundamentación ................................................................................................. 6

Algoritmo Base: ..................................................................................................................... 6

Las variables empleadas: ........................................................................................................... 6

Aplicación de TSP ...................................................................................................................... 7

Algoritmos propuestos........................................................................................................... 8

Capítulo 3: Algoritmo........................................................................................................... 9

Conclusiones: ...........................................................................................................................11

Webgrafía ................................................................................................................................11

Page 3: Problema del agente viajero monografia

Programación Lógica Problema del Agente Viajero

Dedicatoria

Este trabajo está dedicado para nuestra Escuela de Informática de la “Universidad

Nacional de Trujillo”, como fuente motivadora de investigación, enriquecimiento de

nuestros conocimientos y la motivación de conocer nuevas áreas que nos permitan

incrementar nuestras habilidades como informáticos a través de la resolución de

nuevos casos de estudio.

Esperamos que sea gratificante para ustedes,

Page 4: Problema del agente viajero monografia

Programación Lógica Problema del Agente Viajero

Problema del Agente Viajero

Introducción

El problema del viajante es uno de los problemas más famosos de la matemática computacional.

Pertenece a una serie de problemas que parecen tener una fácil solución pero en la práctica

presentan una gran dificultad. Este problema en concreto ha sido muy estudiado por sus múltiples

aplicaciones en la optimización de recursos, tanto en el campo empresarial (logística de

transporte) como en el de la robótica (desplazamientos que se realizan al hacer un circuito

impreso).

Plantea cómo un viajante podría empezar y terminar en una ciudad concreta, pasando por todas

las ciudades que están en su mapa una sola vez, y por la mínima ruta posible. A priori la solución

puede parecer sencilla, solo habría que probar cuál de las posibles combinaciones de rutas sería la

óptima, lo que llamamos por “fuerza bruta”. La dificultad aparece cuando el número de ciudades es

elevado, las posibles combinaciones aumentan de manera exponencial.

Los problemas cuyo aumento de datos hacen que el tiempo de resolución (o computación)

aumente exponencialmente, se les llama NP-completos. Por tanto, el problema del viajante es NP-

completo, ya que un aumento de ciudades eleva exponencialmente el número de combinaciones

posibles y, debido a esto, el número de pruebas que hay que realizar para ver cuál es la

combinación óptima, incrementando exponencialmente el tiempo de resolución. Aquí estriba su

impedimento en la práctica, si el número de ciudades es elevado no existe computadora a nuestro

alcance capaz de computar (o solucionar) el problema en un tiempo razonable.

Page 5: Problema del agente viajero monografia

Programación Lógica Problema del Agente Viajero

Marco Teórico

Título:

El Problema del Agente Viajero

Definición:

Responde a la siguiente pregunta:

Dada una lista de ciudades y las distancias entre cada par de

ellas. ¿Cuál es la ruta más corta posible que visita cada

ciudad exactamente una vez y regresa a la ciudad origen?

Este problema es muy famoso en la matema tica computacional.

La importancia es que como e ste pertenece a una serie de problemas

que parecen tener una fa cil solucio n pero en la pra ctica presentan una

gran dificultad, permite desarrollar de forma ordenada las percepciones

brindadas, las acciones a realizar, para así buscar una solucio n o ptima en

sus recursos.

Es importante definir en este tipo de problemas:

• Los nodos

• Las distancias

• El objetivo

• Heurí sticas

Page 6: Problema del agente viajero monografia

Programación Lógica Problema del Agente Viajero

Capítulo I: Descripción del Problema

¿Cómo funciona?

Consiste en un agente de ventas que tiene “n” ciudades por visitar, comenzando

y terminando en la misma cuidad, visitando solamente una vez cada cuidad, y

haciendo que el recorrido sea el costo mínimo, este costo puede estar

expresado en términos de tiempo o distancia, es decir recorre el mínimo de

kilómetros o lleva a cabo un recorrido en el menor tiempo posible.

El problema consiste en encontrar una ruta que, empezando y terminando en la

misma ciudad, recorra sólo una vez las ciudades restantes y que a la vez esta

ruta sea la mínima posible.

Los costos son simétricos en el sentido de que viajar desde la ciudad X a la

ciudad Y tiene el mismo costo que viajar desde la ciudad Y a la ciudad X. La

condición de visitar todas las ciudades implica que el problema se reduce a

decidir en qué orden las ciudades van a ser visitadas.

Complejidad Computacional

El problema del Vendedor Viajero es un problema NP Completo en un orden de

complejidad exponencial, por ello, no existe una solución polinómica.

Podemos aplicar técnicas heurísticas, obteniendo soluciones aproximadas en

unos 97%, no necesariamente óptimas.

Estructuras de datos utilizadas:

Fue mediante Árboles y puede representarse mediante grafos

El problema se puede moldear fácilmente mediante un grafo completo dirigido,

en donde los vértices son las ciudades y los arcos son los caminos, dichos arcos

Page 7: Problema del agente viajero monografia

Programación Lógica Problema del Agente Viajero

deben de tener un peso, y este representa la distancia que hay entre dos

vértices que están conectados por medio de dicho arcos.

Capitulo II: Fundamentación

Algoritmo Base:

El Problema del Agente Viajero (TSP), es considerado como un conjunto de

grafos cuyas aristas son los posibles caminos que puede seguir la entidad para

visitar todos los nodos (Öncan et al., 2009), y cuyo algoritmo se puede

representar de la siguiente manera:

Definir el número de nodos, su posición y el costo por cada arista (i, j)

Donde i = ciudad 1 y j = ciudad 2

Elegir el nodo inicial i

Hacer

Si el nodo más cercano no se ha visitado

Visitar nodo j

Actualizar lista de nodos visitados

Costo_total = costo_total + costoij

Nodo i = nodo j

Hasta haber visitado todos los nodos

Las variables empleadas:

Tiempo de recorrido entre ciudades: horas, minutos, días, semanas, etc.

Page 8: Problema del agente viajero monografia

Programación Lógica Problema del Agente Viajero

Distancia de recorrido entre ciudades: metros, kilómetros, millas,

milímetros, etc.

Costo de traslado: dinero, desgaste de las piezas, gasto de energía, etc.

Las variables que se pueden adoptar dependen de cada problema, por

ejemplo:

Circuitos electrónicos: cantidad de soldadura utilizada, menor espacio

entre los puntos de soldadura de los circuitos, evitar el cruce entre las

líneas de soldadura, tiempo de fabricación, distribución de los circuitos,

entre otras.

Control de semáforos: Número de semáforos (nodos), tiempo de

traslado entre semáforos, cantidad de autos que pasan por un punto,

entre otras variables.

Previsión del tránsito terrestre: puntos en una ciudad, cantidad de

vehículos, tiempo de traslado, tipos de vehículos, horas pico, correlación

entre variables, regresión lineal, etc.

Entrega de productos: Peso de las entregas, número de entregas, nodos

(domicilios) a visitar, recorridos, tiempos de traslado, tipo de vehículo,

etc.

Estaciones de trabajo: secuencia de actividades, lugar de las

herramientas (nodos), Tipo de herramientas, tiempo de uso, etc.

Edificación: puntos de edificación (construcciones), distancia entre las

construcciones y los insumos, vehículos (grúas, camiones de volteo,

etc.), cantidad de combustible que emplean, etc.

Entre otras variables

Aplicación de TSP

TSP se puede emplear en cualquier situación que requiere seleccionar nodos en

cierto orden que reduzca los costos:

Page 9: Problema del agente viajero monografia

Programación Lógica Problema del Agente Viajero

Reparto de productos. Mejorar una ruta de entrega para seguir la

más corta.

Transporte. Mejorar el recorrido de caminos buscando la menor

longitud

Robótica. Resolver problemas de fabricación para minimizar el

número de desplazamientos al realizar una serie de perforaciones en

un circuito impreso.

Turismo y agencias de viajes. Aun cuando los agentes de viajes no

tienen un conocimiento explícito del Problema del Agente Viajero,

las compañías dedicadas a este giro utilizan un software que hace

todo el trabajo. Estos paquetes son capaces de resolver instancias

pequeñas del TSP.

Horarios de transportes laborales y/o escolares. Estandarizar los

horarios de los transportes es claramente una de sus aplicaciones,

tanto que existen empresas que se especializan en ayudar a las

escuelas a programarlos para optimizarlos en base a una solución

del TSP.

Inspecciones a sitios remotos. Ordenar los lugares que deberá

visitar un inspector en el menor tiempo.

Secuencias. Se refiere al orden en el cual n trabajos tienen que ser

procesados de tal forma que se minimice el costo total de

producción.

Algoritmos propuestos

El Problema del Agente Viajero puede resolverse de diferentes maneras:

Enumeración de todas las soluciones factibles. Es decir, enlistar

todas las posibles soluciones al problema, calcular sus costos

asociados, e identificar, por comparación, cuál es la solución con el

costo más conveniente.

Page 10: Problema del agente viajero monografia

Programación Lógica Problema del Agente Viajero

Métodos exactos. También llamados algoritmos óptimos, intentan

descartar familias enteras de posibles soluciones, tratando así de

acelerar la búsqueda y llegar a una óptima. Los que más se usan para

resolver el TSP son Ramificación y Acotamiento, y Ramificación y

Corte.

Heurísticas. Son métodos obtienen buenas soluciones en tiempos

de cómputo muy cortos, aunque sin garantizar la solución única.

Capítulo 3: Algoritmo

El TSP puede ser formulado por la programación lineal en

enteros.7 8 9Sea igual 1, si existe el camino de ir de la i a la ciudad j, y 0 en

otro caso, para el conjunto de ciudades 0,..., n. Sean para i = 1,..., n variables

artificiales y sea la distancia desde la ciudad i a la ciudad j. Entonces el

modelo de programación lineal en enteros puede ser escrito como:

El primer conjunto de igualdades asegura que cada ciudad 0,..., n de salida

llegue exactamente a una ciudad, y el segundo conjunto de igualdades

aseguran que desde cada ciudad 1,..., n se salga exactamente hacia una

Page 11: Problema del agente viajero monografia

Programación Lógica Problema del Agente Viajero

ciudad (ambas restricciones también implican que exista exactamente una

salida desde la ciudad 0.) La última restricción obliga a que un solo camino

cubra todas las ciudades y no dos o más caminos disjuntos cubran

conjuntamente todas las ciudades. Para probar esto se muestra en (1) que

toda solución factible contiene solamente una secuencia cerrada de

ciudades, y en (2) que para cada uno de los recorridos que cubren todas las

ciudades, hay valores para todas las variables que satisfacen las

restricciones.

Para probar que cada solución factible contiene solamente una secuencia

cerrada de ciudades, es suficiente mostrar que cada sub-ruta en una

solución factible pasa a través de la ciudad 0 (note que las igualdades

aseguran que solamente pude haber un recorrido de ese tipo). Por tanto, si

sumamos todas las desigualdades correspondiente a para cada

sub-ruta de k pasos que no pasan a través de la ciudad 0,

obtenemos lo cual es una contradicción.

Ahora, mostramos que para cada recorrido que cubre todas las ciudades,

hay valores de las variables que satisfacen las restricciones.

Sin pérdida de generalidad, se define el recorrido con origen y fin en la

ciudad 0. Escoger si la ciudad i es visitada en el paso t (i, t = 1, 2,...,

n). Entonces dado no puede ser mayor que n y no

puede ser menor que 1; por lo tanto las restricciones se satisfacen siempre

que Para

se satisfacen las

restricciones.

Page 12: Problema del agente viajero monografia

Programación Lógica Problema del Agente Viajero

Conclusiones:

• Concluimos que gracias a este tipo de problemas podemos mejorar en nuestro análisis y

aprender principios de inteligencia artificial.

• Este problema se utiliza más que todo para acortar las distancias y optimizar el tiempo.

Webgrafía

• http://es.wikipedia.org/wiki/Problema_del_viajante

• http://queaprendemoshoy.com/problema-del-viajante/

• http://doranellygonzalez.blogspot.com/2010/05/proyecto-5-problema-del-viajante-

tsp.html

• http://www.uaeh.edu.mx/scige/boletin/tlahuelilpan/n3/e5.html

• https://www.princeton.edu/~achaney/tmve/wiki100k/docs/Travelling_salesman_pr

oblem.html