Está en la página 1de 115

UNIVERSIDAD NACIONAL

FACULTAD DE CIENCIAS EXACTAS Y NATURALES


ESCUELA DE MATEMÁTICA

El Agente Viajero: Un Algoritmo Determinístico

Proyecto de Graduación sometido a consideración del Tribunal Examinador de la


Escuela de Matemática como requisito parcial para optar al grado de Licenciatura en
LA ENSEÑANZA DE MATEMÁTICA

Erasmo López López

2011

Campus “Omar Dengo”

Heredia, Costa Rica

I
Este Proyecto de Graduación fue _____________________ por el Tribunal Exami-

nador de la Escuela de Matemática de la Universidad Nacional, como requisito parcial

para optar al grado de Licenciatura en la Enseñanza de la Matemática.

_______________________________________
Presidente del Tribunal Examinador

_______________________________________
Representante Escuela de Matemática

_______________________________________
Tutor

_______________________________________
Asesor

_______________________________________
Asesor

_______________________________________
Graduando

II
Dedicatoria

Al Padre Celestial, que cada día me da más fuerza para seguir admirando la belleza

de su creación. A ese ínclito ser que nos ha dado la vehemencia por el estudio y la

academia, que nos ha conducido a renunciar a las fruslerías y a tener un claro sentido

del deber individual y social.

A mi gran amor Kate Daniela López López por ser el motor que mueve mis sueños

y por las horas robadas.

A mi madre Zulay López y mi padre Mercedes Vargas por haberme dado el don de

la vida.

A mi bella esposa Guisselle López Laguna por su paciencia y las horas de sacrificio

en pro de mi superación.

III
Agradecimientos

Después de un arduo trabajo, siempre hay manos amigas que ayudan, a que un

sueño se materialice de esta forma. Es por ello que debo expresar mis agradecimientos:

Al Dr. Alex Murillo Fernández profesor catedrático de la Sede del Atlántico de la

Universidad de Costa Rica, por ser un pilar fundamental en el desarrollo de la presente

investigación.

Al Ph.D. Oscar Salas Huertas profesor de la Universidad Nacional de Costa Rica,

por el gran interés que siempre ha mostrado y por sus sabios consejos que siempre

estubieron llenos de aliento.

Al M.Sc. Carlos Azofeifa Zamora profesor catedrático de la Universidad de Costa

Rica, por la orientación en los avances de la investigación.

Al Bach. Cristian Berrocal Araya profesor del Colegio Técnico Profesional de Upala,

por ser el mayor apoyo en la programación en Visual Basic 6.0 y por sus valiosos

aportes.

A la Escuela de Matemáticas de la Universidad Nacional y los profesores de ésta,

por ser los responsables de mi preparación académica.

Finalmente, agradezco a todas la instituciones que me brindaron información para

que se probaran los resultados.

IV
Índice general

1. Introducción 1

1.1. Tema de investigación . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2. Justificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2.1. Justificación personal . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2.2. Justificación histórica . . . . . . . . . . . . . . . . . . . . . . . . 3

1.3. Estado de la Cuestión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.3.1. Algoritmos polinomiales y no polinomiales . . . . . . . . . . . . . 7

1.3.2. Implementaciones dadas al agente viajero . . . . . . . . . . . . . 10

1.4. El problema del agente viajero . . . . . . . . . . . . . . . . . . . . . . . . 19

1.4.1. Extensión del agente viajero . . . . . . . . . . . . . . . . . . . . . 20

1.4.2. Problema del agente viajero simétrico . . . . . . . . . . . . . . . 20

1.4.3. Problema del agente viajero asimétrico . . . . . . . . . . . . . . . 20

1.5. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

1.5.1. General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

1.5.2. Específicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

V
2. Marco Teórico 24

2.1. Inteligencia artificial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.1.1. Conceptualización . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.1.2. Las heurísticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.1.3. Sistemas expertos . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

2.2. Programación combinatoria . . . . . . . . . . . . . . . . . . . . . . . . . 33

2.3. Grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

2.4. Eficiencia de los algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . 36

2.4.1. Las notaciones asintóticas y sus propiedades . . . . . . . . . . . . 37

2.5. La óptimización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

2.5.1. Conceptualización . . . . . . . . . . . . . . . . . . . . . . . . . . 43

2.6. Programación en Visual Basic 6.0 . . . . . . . . . . . . . . . . . . . . . . 45

2.6.1. Los controles más usuales en Visual Basic 6.0 . . . . . . . . . . . 47

2.6.2. Los botones de comando (CommandButton) . . . . . . . . . . . . 47

2.6.3. Nombre de controles y objetos . . . . . . . . . . . . . . . . . . . 47

3. Marco Metodológico 50

3.1. Delimitación del tema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

3.2. Metodología . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

4. Resultados 55

4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

VI
4.2. El algoritmo determinístico . . . . . . . . . . . . . . . . . . . . . . . . . 57

4.2.1. La técnica búsqueda tabú . . . . . . . . . . . . . . . . . . . . . . 57

4.3. Trazado de rutas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

4.4. Exploración del problema . . . . . . . . . . . . . . . . . . . . . . . . . . 62

4.4.1. Exploración por nodos . . . . . . . . . . . . . . . . . . . . . . . . 73

4.4.2. Comparación con TSPLIB . . . . . . . . . . . . . . . . . . . . . . 77

4.5. Implementación en una situación real . . . . . . . . . . . . . . . . . . . 79

4.5.1. Escenario del agente de salud (AS) . . . . . . . . . . . . . . . . . 79

4.5.2. Escenario del asesor de matemáticas (AM) . . . . . . . . . . . . . 84

4.5.3. Escenario de las redes hídricas . . . . . . . . . . . . . . . . . . . 87

5. Conclusiones y Recomendaciones 93

5.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

5.2. Recomendaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

Bibliografía 98

VII
Índice de figuras

2.1. Ciudades y carreteras. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

2.2. Grafo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3.1. Esquema de tratamiento del problema. . . . . . . . . . . . . . . . . . . . 54

4.1. Localidad 10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

4.2. Recorrido natural. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

4.3. Recorrido mejorado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

4.4. Puntos aleatorios sobre una circunferencia de radio 6 cm. . . . . . . . . 66

4.5. Escenario 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

4.6. Recorrido óptimo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

4.7. Comportamiento de la diversificación. . . . . . . . . . . . . . . . . . . . 73

4.8. Escenarios del cuadro 4.14. . . . . . . . . . . . . . . . . . . . . . . . . . 76

4.9. Mapa del Cantón de Upala para los puestos de vigilancia de la salud. . . 81

4.10.Recorrido Óptimo de los puestos de vigilancia de la salud vía aérea. . . . 82

4.11.Recorrido Óptimo de los puestos de vigilancia de la salud vía terrestre. . 83

VIII
4.12.Mapa del Cantón de Upala para la ubicación de 12 colegios en la Zona

Norte Norte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

4.13.Recorrido óptimo de colegios12. . . . . . . . . . . . . . . . . . . . . . . 87

4.14.Nodos de los recibidores externos para Ctpu36. . . . . . . . . . . . . . . 90

4.15.Recorrido mejorado de los recibidores externos para Ctpu36. . . . . . . 91

IX
Índice de cuadros

1.1. Resumen resultados TSP Simétrico. . . . . . . . . . . . . . . . . . . . . . 14

2.1. Comparación entre el sistema experto y el sistema clásico. . . . . . . . . 30

2.2. Modelos funcionales de los sistemas expertos. . . . . . . . . . . . . . . . 32

3.1. Control de las iteraciones. . . . . . . . . . . . . . . . . . . . . . . . . . . 52

3.2. Control de los movimientos. . . . . . . . . . . . . . . . . . . . . . . . . . 52

4.1. Matriz de distancia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

4.2. Tabla para las permutaciones. . . . . . . . . . . . . . . . . . . . . . . . . 64

4.3. Matriz tabú. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

4.4. Historial de los admisibles. . . . . . . . . . . . . . . . . . . . . . . . . . . 65

4.5. Matriz distancia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

4.6. Permutaciones 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

4.7. Tablas de iteración 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

4.8. Tablas de tabú1 y frecuencia1. . . . . . . . . . . . . . . . . . . . . . . . . 68

4.9. Permutación 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

X
4.10.Permutación 34. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

4.11.Matriz frecuencia 34. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

4.12.Permutación 35. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

4.13.Permutación 144. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

4.14.Instancias aleatorias procesadas en VBA. . . . . . . . . . . . . . . . . . . 75

4.15.Comparación con las instancias TSPLIB y De los Cobos. . . . . . . . . . . 78

4.16.Distancias entre el Hospital de Upala y 20 puestos de vigilancia de la

salud (Kms). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

4.17.Distancias entre el CPTU y 12 Colegios de Upala (Kms.). . . . . . . . . . 85

4.18.Ctpu36. Distancia entre los recibidores externos (mts). . . . . . . . . . . 89

4.19.CTPU: Colegio Técnico Profesional de Upala, AS: Agente de la Salud,

AM: Asesor de Matemáticas, LT: Longitud Tabú, LD: Longitud Diversifi-

cación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

XI
Resumen

Este trabajo implementa un modelo de Algoritmo Tabú, llamado EraDeterminístico,

experimentado con el algoritmo básico y la diversificación.

El modelo se enfoca a encontrar soluciones cercanas a la óptima del problema del

Agente Viajero, sobre un ambiente de cómputo programado en Visual Basic 6.0.

Para probar la funcionalidad, el modelo se compara con algunas instancias de la

Travel Salesman Problem Library (TSPLIB), algunas instancias aleatorias y finalmente

se aplica a tres situaciones reales.

XII
Capítulo 1

Introducción

1.1. Tema de investigación

El problema del agente viajero o TSP como se le conoce en la literatura, consiste

en visitar las n ciudades de un tour comenzando y terminando en la misma ciudad,

visitando solamente una vez cada ciudad y haciendo el recorrido en un costo mínimo,

este costo de recorrido puede estar expresado en términos de tiempo o distancia, es

decir, recorrer el mínimo de kilómetros o llevar a cabo un tour en el menor tiempo

posible.

El problema del agente viajero se puede modelar fácilmente mediante un grafo

completo en donde los vértices del grafo son las ciudades y los arcos son los caminos,

dichos arcos deben tener un peso y este peso representa la distancia que hay entre dos

vértices que están conectados por medio de dicho arco. Una solución del problema del

1
agente viajero, se puede representar como una secuencia de n + 1 ciudades, en donde

un tour comienza y termina con la misma ciudad. Aquí se estudiarán los alcances y las

restricciones de un algoritmo determinístico que usará la Búsqueda Tabú para explorar

y diversificar las vecindades generadas por cada solución.

1.2. Justificación

1.2.1. Justificación personal

Hay muchas razones que nos han motivado a investigar un problema clásico de opti-

mización combinatoria. Sin embargo, la situación particular se enfoca en enfrentar un

reto en la exploración de una situación antigua mediante técnicas modernas, mostran-

do así el perfil profesional que moldea nuestra preparación académica.

Los recorridos juegan un papel central en nuestras vidas, en la gestión de sistemas

logísticos y su adecuada planificación puede significar considerables ahorros. Esos po-

tenciales ahorros justifican en gran medida la utilización de técnicas de Investigación

Operativa como facilitadoras de la planificación, dado que se estima que el inadecuado

manejo de la logística y el transporte conllevaría a un exorbitante desperdicio de los

recursos, que en muchos casos son limitados.

2
1.2.2. Justificación histórica

El surgimiento y desarrollo de la combinatoria ha sido paralelo al desarrollo de otras

ramas de la matemática, tales como el álgebra, la teoría de números y la probabilidad.

Desde la antigüedad los problemas de combinatoria han llamado la atención de los

matemáticos, tales como Euler, Hamilton, entre otros, así considerados por Johnson-

baugh (1986).

Los primeros problemas combinatorios dieron origen a la teoría de gráficas, en la

búsqueda de soluciones a situaciones cotidianas y también en el planteamiento de al-

gunos acertijos matemáticos como el problema de los puentes de Konigsber , el arreglo

de reinas en un tablero de ajedrez con alguna restricción, problemas de transporte, y

el problema del agente viajero (Johnsonbaugh, 1986), entre otros.

Actualmente se utiliza el poder computacional para resolver problemas que re-

quieren de una evaluación detallada de toda una basta cantidad de posibilidades, cuyo

objetivo fundamental es encontrar “una solución óptima” o cercana a ella, situaciones

de este tipo ocurren en la inversión de manufactura, localización de recursos, moni-

toreo de satélites, recorrido y construcción de redes, entre otros.

El intento por resolver algunas de estas situaciones ha dado origen a la explosión

combinatoria, la cual ha encontrado muchos obstáculos debido a que no es suficiente

contar con un sistema experto para mejorarlos, ni es suficiente confiar en la velocidad

de las supercomputadoras (De los Cobos, 1994). La mayoría de los programadores

de computadoras que se interesan por estas líneas de investigación, en su inicialización

3
han querido obtener una documentación capaz de introducirlos de forma adecuada en

el manejo y tratamiento de estos problemas (Castañeda, 2000).

Ahora se han desarrollado métodos que mediante un enfoque intuitivo, la estructura

de la situación puede interpretarse y explorarse inteligentemente, encuentran solu-

ciones cercanas a la óptima. Así podemos citar a: 2-Opt (Castañeda, 2000) Búsque-

da Tabú (Glover, 1993), Algoritmos Genéticos (Goldberg, 1989) y Recocido Simulado

(Kirkpatrick, 1983). Estos métodos examinan sólo un pequeño conjunto del total de

posibilidades.

Búsqueda Tabú es el principio de exploración por el que se interesa esta investi-

gación y es aplicable al problema del agente viajero.

El problema del agente viajero (Traveling Salesman Problem) es también conocido

como el problema del viajante de comercio y es la base para muchas aplicaciones de

reparto de mercadería en una ciudad. Las situaciones reales se complican aún más

con; más de un vehículo de reparto, horarios, demora, capacidad del vehículo, limita-

ciones de recorridos y otras.

Tradicionalmente este tipo de situaciones aparece en el mundo real y sugieren el de-

sarrollo de un modelo cuya resolución resulta prácticamente intratable usando técnicas

clásicas de investigación de operaciones, como lo es la programación lineal, progra-

mación dinámica, simulación, entre otros. En los últimos tiempos los avances logra-

dos en la inteligencia artificial y algoritmos han dado cabida a una nueva generación de

técnicas para la solución de estos problemas combinatorios de gran escala que surgen

4
con frecuencia en el mundo real (Nilsson, 1987).

Es cierto que para cada disciplina y para cada problema planteado existen espe-

cialistas que lo incursionarán. El acceso al conocimiento y al juicio de éstos, es ex-

tremadamente valioso en muchas ocasiones, sin embargo, en la mayoría de los campos

de actividad existen más problemas por resolver, que expertos para resolverlos. Para

solucionar este desequilibrio es necesario utilizar un sistema que en general, actuará

como ayudante para los humanos y como consultor cuando no se tiene otro acceso a la

experiencia.

Un sistema o algoritmo bien elaborado, además, de mejorar la productividad al

resolver y decidir los problemas más rápidamente permite ahorrar tiempo y dinero. A

veces, sin esa rapidez las soluciones obtenidas serían inútiles.

Los valiosos conocimientos de un especialista se guardan y se difunden, de for-

ma que no se pierden aunque desaparezca el especialista. En los sistemas se guarda

la esencia de los problemas que se intentan resolver y se programa cómo aplicar los

conocimientos para su resolución. Ayudan a entender cómo se aplican los conocimien-

tos para resolver un problema. Esto es útil porque normalmente el especialista da por

ciertos sus conocimientos y no analiza cómo los aplica.

Se pueden utilizar personas no especializadas para resolver problemas. Además,

si una persona utiliza regularmente las técnicas de solución, aprenderá de él, apro-

ximándose de esta manera a la capacidad del especialista y cuyas soluciones serán

más fiables gracias al tratamiento automático de los datos, debido a que se suele tener

5
informatizado el conocimiento de varios expertos.

De aquí surge nuestro interés por explorar una estrategia de búsqueda, que reduzca

los tiempos de cálculos y con esto se estará haciendo un aporte tanto al conocimiento

matemático como a las ciencias, donde problemas de combinatoria estén presentes.

El estudio toma como base las ideas escritas por Fred Glover, cuando expone:

“La clave para tratar con tales problemas es ir un paso más allá de la aplicación

directa de la destreza y del conocimiento del experto, y generar recursos para un pro-

cedimiento especial (o marco), el cual monitorea y dirige el uso de ésta habilidad y

conocimiento. Careciendo de tal procedimiento, las reglas expertas se pueden em-

pantanar, permitiendo un punto donde ninguna mejora puede percibirse, a menos que

existan alternativas superiores” (De los Cobos et al, 2010, p. 105)

Así que, el propósito de esta investigación será proveer un marco específico y sobre

todo práctico en una nueva técnica, basada en la inteligencia artificial para la solución

de un problema combinatorio, el problema agente viajero y la técnica a utilizar se de-

nomina Búsqueda Tabú. Además, se analizará bajo que condiciones ésta es aplicable

y determinar sus alcances.

1.3. Estado de la Cuestión

Cuando la programación basada en procesos estocásticos se desarrolló, lo más lógi-

co era preguntar acerca de la dificultad computacional de sobre la minimización de

la función objetivo. Castañeda (2000) señala que Rabin, curioso investigador en 1960

6
se planteó una pregunta general: ¿Qué quiere decir que f sea más difícil de computar

que g? Rabin ideó una axiomática que fue la base para el desarrollo de la teoría de la

complejidad abstracta de Blum y otros.

1.3.1. Algoritmos polinomiales y no polinomiales

La complejidad se ha dividido principalmente en dos clases; como son las clases P

y NP (de los Cobos, 2010). La clase P corresponde a los problemas cuyos algoritmos

de solución son de complejidad polinomial en tiempo; y los problemas NP son los

problemas cuya solución hasta la fecha no han podido ser resueltos de manera exacta

por medio de algoritmos deterministas eficientes, pero que pueden ser resueltos por

algoritmos no determinísticos y cuya solución son de complejidad no polinomial en

tiempo.

Definición 1.3.1 : P denota la colección de todos los problemas de decisión los cuales

tienen algoritmos determinísticos en tiempo polinomial (Stinson, 1987).

Últimamente se ha demostrado que tres problemas importantes están en la clase P.

El primero es la programación lineal, demostrado por Khachian en 1979. El segundo es

determinar si dos grafos de grado (cuando mucho) d, son isomorfos, demostrado por

Luks en 1980 (el algoritmo es polinomial sobre el número de vértices para un d fijo,

pero exponencial en d). El tercero es la factorización de polinomios con coeficientes

racionales, fue demostrado por Lenstra y Lovaz en 1982 para polinomios de una va-

riable.

7
La generalización para polinomios en cualquier número fijo de variables fue demostra-

da por Kaltofen en 1982.

Definición 1.3.2 : NP denota la colección de todos los problemas de decisión los cuales

tienen algoritmos de solución no-determinísticos en tiempo polinomial (Stinson, 1987).

Esto es, algoritmos no determinísticos en los cuales hay siempre un camino com-

putacional exitoso que requiere tiempo polinomial en la longitud de la cadena de en-

trada; obviamente P NP (Reingold, 1977).

A los problemas que representan clases de complejidad se tratan como problemas

completos en esa clase, así se dice que se trata de un problema P-Completo o un proble-

ma NP-Completo (Varela, 1996). El desarrollo más importante de la complejidad algo-

rítmica es a ciencia cierta la teoría de la NP-completitud, por lo que la clase NP consta

de todos los conjuntos reconocibles en tiempo polinomial por una máquina de Turing

no determinística. En 1962 J. Bennet bajo el nombre de relaciones rudimentarias po-

sitivas extendidas definió una equivalente a NP utilizando cuantificadores lógicos en

lugar de máquinas de computación. En 1972, Karp le puso el nombre actual de clase

NP y Cook introdujo el concepto de NP-completo y demostró que el problema llama-

do de la 3-satisfacibilidad y el problema del subgrafo son NP- completos. Un año más

tarde, Karp encuentra 21 problemas NP-completos, lo que mostraba la importancia de

la materia.

Según Castañeda (2000), hay algunos problemas clásicos NP-Completos, uno de es-

tos problemas, entre otros muchos del mismo tipo, es el Problema del Agente Viajero

8
(PAV) que se describirá más adelante. También se encuentra el problema del circuito de

Euler, el cual encuentra un camino que toca todas las aristas exactamente una vez, se

puede resolver en tiempo polinomial. Otro problema interesante es el problema del cir-

cuito Hamiltoniano que busca un circuito sencillo que contenga todos los vértices. Para

este problema no se conocen algoritmos que garanticen una ejecución determinística

en tiempo polinomial (Wilf, 1986).

Definición 1.3.3 : Se dice que un problema es NP-Duro si todo problema en NP se puede

transformar polinomialmente a él (Reingold, 1977).

Definición 1.3.4 : Un problema se dice que es NP-Completo si es duro y es NP (Reingold,

1977).

Un problema NP-Completo tiene la característica de que todo problema en NP se

reduce polinomialmente a él (Wilf, 1986).

Por lo tanto es importante resolver problemas NP-Completos, porque si alguien

puede resolver un problema NP-Completo en tiempo polinomial se podrán resolver

todos los problemas NP-Completos en tiempo polinomial (Wilf, 1986).

Esto significa por ejemplo; que si se desea probar que un cierto problema de decisión

Q que es NP-Completo, se puede concentrar todo el esfuerzo en encontrar algoritmos

en tiempo polinomial usando justamente este problema Q. Más aún, si se tiene éxito al

encontrar un algoritmo en tiempo polinomial con instancias de Q, entonces automáti-

camente se ha encontrado un algoritmo rápido para hacer cada uno de los problemas

9
en NP. Esto se hace de la siguiente forma: Se toma una instancia I’ de cualquier proble-

ma Q’ en NP, ya que Q’ es rápidamente reducible a Q se puede transformar la instancia

I’ en una instancia I de Q. Entonces se usa el algoritmo que se encontró para problemas

en Q para decidir I. Así solamente una cantidad polinomial en tiempo se habrá usado

desde el inicio hasta el fin de esta tarea (Wilf, 1986).

Por lo que dada la importancia de los problemas NP-Completos y sabiendo que la

solución de un problema que este considerado ser NP-Completo, repercute en todos

los demás problemas del mismo tipo, se selecciona para su estudio un problema clási-

co NP-Completo como es el problema del Agente Viajero (PAV). Además, de la gran

aplicabilidad de este problema al tratamiento de monitoreo de satélites, construcción

de redes hídricas, telefonía, entre otras (De los Cobos, 1997)

1.3.2. Implementaciones dadas al agente viajero

Al investigar sus antecedentes, se verificó que algunas tesis de la Universidad de las

Américas Puebla habían estudiado este mismo problema. Se descubrió así que hay tres

tesis interesantes como son la de Castañeda (2000) con el nombre de “Estudio com-

parativo de diversos métodos de solución del problema del agente viajero (PAV)”, Tesis

Maestría en Ciencias con Especialidad en Ingeniería en Sistemas Computacionales, la

de María Del Rosario Pilar Varela Hernández con el nombre de "Diseño de una Heurís-

tica para el tratamiento del problema del Agente Viajero", asesorada por el Doctor

Mauricio Osorio Galindo, y la tesis de Ángel Reyes González con el nombre de “Un

10
ejemplo de optimización de funciones por medio del Algoritmo Ariadnes’s Clew : El ca-

so del Problema del Agente Viajero”, asesorada por el Doctor Juan Manuel Ahuactzin

Larios, ambas tesis realizadas para obtener el grado de maestría.

En la tesis de María Del Rosario Pilar Varela Hernández, se resolvió el problema del

agente viajero dándole el siguiente enfoque: Se estudiaron algoritmos de uso común

dentro de la técnica de búsqueda local como son el 2-Optimal y 3-Optimal, haciendo

una comparación de estos con el algoritmo genético llamado Algoritmo Evolutivo y

después comparando los resultados de los tres métodos para un número aleatorio de

ciudades (Varela, 1996).

Por otro lado, Angel Reyes González también trabajó con el PAV, pero la virtud de

éste trabajo es que se resolvió con el método Ariadnes’s Clew método innovador inven-

tado por el Doctor Juan Manuel Ahuactzin Larios que trabaja con dos subalgoritmos, el

Search y el Explore. El algoritmo Explore, recoge información del espacio de búsqueda

incrementando su resolución en cada iteración y colocando landmarks en el espacio de

búsqueda. Y el algoritmo Search es un método de búsqueda local que constantemente

revisa si el mínimo o máximo global puede ser alcanzado. El PAV fue probado para 100

y 200 ciudades (Reyes, 1997).

De la Cruz (2003), aplica las metodologías heurísticas Ant-Q, Búsqueda Tabú y Re-

cocido Simulado en la solución de instancias pequeñas del problema del agente viajero,

y además implementa algoritmos computacionales de estas técnicas para resolver ins-

tancias con muchas variables de decisión, lo cual permitirá encontrar soluciones que

11
puedan ser consideradas buenas, sino las óptimas, en comparación con las conocidas

en la bibliografía. Finalmente, analiza comparativamente las características de desem-

peño de los algoritmos implementados, con base en los resultados obtenidos para el

algoritmo 1.

Algoritmo 1 : Algoritmo Tabú

Paso 1. Se construye una solución inicial x0 2 X, mediante un algo-


ritmo de inserción. Asigna a la lista tabú ' ?. Un contador t 0;
yx x0 ; f (x) f (x0 ):
Paso 2. Genera una vecindad N (xt ; ') a partir de xt con m(xt ):
m(xt ) consiste en hacer intercambios entre pares de nodos de la secuen-
cia x, similar a como se muestra en el Recocido Simulado.
Paso 3. Se encuentra una xt+1 2 N (xt ; ') de tal modo que f (xt+1 )
sea igual al menor de los f (xt+1 ) ; xt+1 2 N (xt ; ') :
Si existe un xt+1 2 N (xt ; ') ; xt+1 2 ' tal que f (xt+1 ) es menor
que f (x) ; x 2 X, entonces haga x xt+1 ; f (x) f (xt+1 ) :
Esta regla se conoce como criterio de aspiración.
Paso 4. Actualice la lista tabú ' y haga t t + 1: Si la condición
de terminación se satisface, detenga el algoritmo; de cualquier otro mo-
do, regrese al paso 2. Los movimienos que ingresan a la lista tabú son
los inversos de los generados , es decir, m 1 (xt+1 ) :

De los Cobos (2005), implementa un procedimiento heurístico para problemas

de optimización combinatoria y menciona que las heurísticas se pueden clasificar en

dos tipos: Las que construyen recorridos y las que los mejoran. Comenzando con las

primeras, se pueden resumir así:

1. Encontrar un sub-recorrido inicial (basta que tenga dos ciudades pero pueden

ser más).

2. Seleccionar una ciudad a ser añadida al sub-recorrido, usando alguna regla

12
de selección.

3. Insertar el nodo correspondiente en el sub-recorrido, basándose en un criterio

de inserción.

4. Si se tiene un recorrido, parar. Caso contrario ir a la 2.

Barros (2006), señala que son muchas las técnicas para la optimización de pro-

blemas cuyo propósito es determinar óptimos globales o locales. Las técnicas de búsque-

da global, se concentran en la búsqueda de la solución global del problema, mientras

que las locales, se concentran en la vecindad de la solución generada inicialmente por

otras técnicas adicionales, para encontrar el óptimo global.

En su meta-heurística Barros (2006) utiliza la estrategia de vecindad:

Mutación: Es el mismo utilizado por Delgado (1999), como vecindario tipo

Gendreu-Clarke conocido como intercambio del elemento de la ruta con el elemento

de la ruta.

Inserción: Es el mismo utilizado por Delgado (1999), como vecindario tipo

Gendreu-Clarke conocido como inserción del elemento de la ruta con el elemento e de

la ruta .

2OPT: Con ésta estrategia lo que se hace es invertir completamente una parte

de la secuencia de visitas.

Inserción-2OPT: Es una combinación de las estrategias descritas anteriormente.

Se usa un porcentaje de probabilidad para utilizar una u otra estrategia.

13
Cuadro 1.1: Resumen resultados TSP Simétrico.

En el cuadro 1.1, se muestran los resultados obtenidos por Barros (2006) para el

TSP Simétrico, éstos difieren máximo en un 4,18 % con respecto a la mejor solución

encontrada hasta el momento. El esfuerzo computacional se centró en minimizar los

factores A, B y C de la ecuación.

6
Y = 533; 271 + 0; 258AA 0; 002AAB + 4; 03E ABAB 0; 006C.

Figueroa (2007), señala que el manejo de los problemas NP - Completos como el

problema del Agente Viajero es una situación muy estudiada a lo largo de la historia

de las ciencias de la computación y que existen técnicas que garantizan obtener una

buena solución.

Así mismo agrega, que este problema ha ocupado la mente de numerosos investi-

gadores. Primeramente porque es un problema sencillo de enunciar, pero muy difícil de

resolver. En segundo lugar porque es un problema muy aplicable a situaciones reales

de planificación. Y tercero, porque se ha convertido en una especie de problema prueba

14
con el cual se busca evaluar los nuevos métodos de optimización combinatoria con el

objetivo de tener una idea de sus potencialidades.

Se han estudiado diferentes formas de atacar este problema; algunas son de tipo

heurístico, otras son con estudio de probabilidades, y aunque se le ha dedicado más al

tratamiento de estos problemas mediante algoritmos que encuentren soluciones garan-

tizadas a ser cercanas a la solución óptima no queda de lado la inserción de otras

técnicas que al igual que la búsqueda tabú, sus resultados sean satisfactorios.

Un buen algoritmo heurístico debe tener las siguientes propiedades: Eficiente, debe

obtener su solución en un tiempo y espacio aceptable. Bueno, la solución encontrada

debe estar cercana al óptimo. Robusto, la posibilidad de encontrar una mala solución

debe de ser baja (Figueroa, 2007).

Para medir esas propiedades, existen diversas técnicas entre las que se encuentran

por ejemplo:

COMPARACIÓN CON LA SOLUCIÓN ÓPTIMA, suena extraño ya que se recurre a

un algoritmo aproximado porque un método exacto es muy costoso computacional-

mente, sin embargo en ocasiones puede que dispongamos de un procedimiento que

proporcione el óptimo para un conjunto limitado de ejemplos. Por lo general se mide la

desviación porcentual de la solución heurística (Ch ) frente a la solución óptima (Copt )

en un problema de minimización, la desviación porcentual viene dada por Figueroa

(2007).

15
Ch Copt
DP = 100: (1.1)
Copt

Aquellos algoritmos que producen soluciones cuyo costo no se aleja de un por-

centaje de la solución óptima, se llaman Algoritmos -Aproximados. Esto es, en un

problema de minimización se tiene que cumplir para un > 0 que: Ch (1 + )Copt y

en particular señala que el Algoritmo Christofides es sencillo interesante e ingenioso.

Algoritmo 2 : Algoritmo Christofides (G)


1. Calcular un árbol generador de peso mínimo para G.
2. Obtener el conjunto de vértices S de grado impar en el árbol.
3. Obtener un emparejamiento perfecto de peso mínimo sobre S:
4. Añadir las aristas del emparejamiento del árbol generador.
5. Aplicar el procedimiento Obtención de Tour.
return();

Velásquez (2008), propone un algoritmo genético para el PAV, utilizando el cruce de

un punto y la mutación aleatoria. De ésta manera se produce una nueva población de

posibles soluciones, la cual reemplaza a la anterior y verifica la interesante propiedad

de que contiene una mayor proporción de buenas características en comparación con

la población anterior. Así, a lo largo de las generaciones las buenas características se

propagan a través de la población. Favoreciendo el cruce de los individuos mejor adap-

tados, van siendo exploradas las áreas más prometedoras del espacio de búsqueda. Si el

Algoritmo Genético ha sido bien diseñado, la población convergerá hacia una solución

óptima del problema.

Cromosoma (Genotipo): Contiene información de la solución que representan.

16
Función de evaluación: o también conocida “Función Objetivo”, es la función de

evaluación de cada cromosoma.

Fitness: Oportunidad de reproducción que tiene cada individuo con respecto a toda

la población.

Cruzamiento: Escoger aleatoriamente algún o varios puntos de cruce, y copiar la

información de un cromosoma hacia otro a partir del punto generado.

Mutación: Cambia aleatoriamente la descendencia, según una probabilidad.

17
Algoritmo 3 : Algoritmo Genético Para el PAV

Mientras mejorFitness es menor hasta un límite establecido hacer:


Mientras i < nroM ejores hacer
nuevaP obinsertar Pr ioridad(actualP ob:getElemento (i));
fin_mientras
mientra i < nroE l m inados=2 hacer
padre1 seleccion(actualP ob);
padre1 seleccion(actualP ob);
hijos cruzamiento (padre1; padre2) ;
generados [i 2] hijos:getElementoCola():dato;
generados [i 2 + 1] hijos:getElementoCola():dato;
fin_mientras
Si nroEliminados %2<>0
padre1 seleccion(actualP ob);
padre2 seleccion(actualP ob);
hijos cruzamiento (padre1; padre2) ;
generados [i 2 + 1] hijos:getElementoCola():dato;
fin_si
//mutar los generados con una probabilidad de pm
generados mutarP olacion (genrados; nroM utados; nroE l m inados) ;
Incrementar mejorF itness;
lo contrario
mejorF itness 0;
fin_si
actualP ob nuevaP ob:Copiar();
fin_mientras
retomarmejorindividuo de la población actual

Por lo que, tomando como antecedentes los trabajos realizados en las investiga-

ciones antes mencionadas y sabiendo que el PAV es un problema típico tanto de op-

timización combinatorial como un problema de decisión o bien un problema eucli-

diano que puede ser resuelto con técnicas exactas de búsqueda exhaustiva, con técnicas

aproximadas y para casos particulares con técnicas determinísticas. Se realizará un es-

18
tudio del mismo donde se implementará “La Técnica Búsqueda Tabú” para su solución;

además, se realizará un estudio comparativo con otros métodos determinísticos.

1.4. El problema del agente viajero

Castañeda (2000) define El Problema del Agente Viajero como: “Un viajero debe

visitar cada ciudad en su territorio exactamente una vez y debe regresar al punto de

partida. Se le da el costo de viajar entre todos los pares de ciudades. Debe planear su

itinerario dado que, debe visitar cada ciudad exactamente una vez y el costo total de

su viaje debe ser el mínimo. Por lo que en términos generales el problema es encontrar

el costo mínimo.

Más formalmente se define este problema como minimizar la función de costo C ( )

con

X
n 1
C (x) = S (i); (i+1) +S (n); (1) (1.2)
i=1

donde S (i); (j) representa el costo o distancia que hay entre la ciudad i y la ciudad
j.
Son muy importantes las tres variaciones del PAV normal mostradas por Castañeda

(2000) donde trata el PAV como un problema de decisión, como un problema de opti-

mización combinatorial y como un problema euclidiano. Hay además otras variaciones

del PAV como se muestran a continuación.

19
1.4.1. Extensión del agente viajero

Conocido con el nombre de Traveling Salesman Extension (TSE). En este problema

se tiene una ruta parcial, pero se desea saber si se puede generar el circuito completo

sin exceder un cierto peso.

1.4.2. Problema del agente viajero simétrico

Conocido como el Symmetric traveling salesman problem (TSP o PAV). Dado un

conjunto de n nodos y distancias para cada par de nodos, encontrar una longitud total

mínima que visite cada uno de los nodos exactamente una vez. La distancia del nodo i

al nodo j es la misma que del nodo j al nodo i.

1.4.3. Problema del agente viajero asimétrico

Conocido como Asymmetric Traveling Salesman Problem (ATSP). Dado un conjunto

de n nodos y distancias para cada par de nodos, encontrar una ruta de longitud total

mínima que visite cada uno de los nodos exactamente una vez. En este caso, la distancia

del nodo i al nodo j y la distancia del nodo j al nodo i, pueden ser diferentes.

20
1.5. Objetivos

1.5.1. General

Determinar los alcances y limitaciones que tiene, un Algoritmo de Búsqueda Tabú

en la aplicación al problema del agente viajero simétrico, mediante la exploración com-

putacional para su implementación a casos particulares.

La implementación se hará en situaciones reales, cuyo propósito es visualizar la

importancia que tiene este problema para el recorrido que debe hacer el Asesor de

Matemáticas, el Agente de Salud y el Abastecimiento del Recurso Hídrico. Siendo el

recorrido mínimo, un elemento de vital importancia para que las empresas de este tipo,

desempeñen sus funciones con el aprovechamiento óptimo de los recursos. Al trabajar

con métodos determinísticos los resultados permiten visualizar el mejoramiento en la

función evaluadora, para realizar así las comparaciones en los tiempos de ejecución y

el de grado exactitud de la respuesta.

La tendencia actual es utilizar el poder computacional para resolver problemas de

origen combinatorio en donde se requiere de una evaluación detallada de toda una

cantidad de posibilidades, cuyo objetivo fundamental es encontrar “una buena solu-

ción”. El agente viajero es de este tipo y se le dará tratamiento mediante el uso de

una búsqueda dirigida y controlada por una matriz tabú y una matriz de frecuencias.

Como existen diferentes tipos de heurísticas, ya sea para construir o mejorar una

solución, la aquí propuesta se clasificará dentro de las segundas. Uno de los mayores

21
inconvenientes con los que se enfrentan estos métodos es la existencia de óptimos

locales que no sean absolutos, así como el conseguir hacerse independientes de la

solución inicial. Con la búsqueda dirigida mediante la categorización de la función

objetivo, la matriz tabú y la matriz de frecuencias se estará implementando el concepto

de memoria a corto, mediano plazo y largo plazo.

1.5.2. Específicos

1. Desarrollar una búsqueda exhaustiva en nuevas regiones, sobre un conjunto de

soluciones factibles que determinen el mejor admisible.

2. Implementar el criterio de diversificación para redireccionar la búsqueda hacia

otras regiones no exploradas.

3. Determinar la rapidez computacional que tiene el Algoritmo Tabú en la solución

de situaciones particulares.

4. Comparar la rapidez computacional y la eficiencia que tiene el Algoritmo Tabú

con otros métodos heurísticos, en la solución de situaciones particulares.

El análisis de algoritmos estudia, desde el punto de vista teórico, los recursos com-

putacionales que necesita la ejecución de un programa de ordenador: su eficiencia.

Pero en el desarrollo real del software, existen otros factores que, a menudo, son más

importantes que la eficiencia: funcionalidad, corrección, robustez, usabilidad, modu-

laridad, mantenibilidad, fiabilidad, simplicidad y el tiempo del programador.

Con la eficiencia del algoritmo podemos establecer la frontera de lo factible y lo

22
imposible. Recordando que en ocasiones, un algoritmo ineficiente puede resultar más

adecuado para resolver un problema real ya que, en la práctica, hay que tener en cuenta

otros aspectos además de la eficiencia.

Por esta situación las comparaciones se harán para identificar aquellos factores

que afectan de manera significativa los resultados generados por el algoritmo. Se

analizarán factores como el tamaño de la lista tabú, tamaño de la población, número

de iteraciones y estrategia para elegir los vecindarios. Para realizar este análisis se

utilizarán herramientas como el diseño de experimentos, datos simulados y el simple

análisis de los resultados.

23
Capítulo 2

Marco Teórico

2.1. Inteligencia artificial

La aparición de la inteligencia artificial como un campo de las ciencias informáticas

ha conducido a una visión de ésta, como un fenómeno de un proceso de información.

El concepto, en realidad, es antiguo. La idea viene desde la Grecia clásica, por

ejemplo el historiador griego Polibio creía que Nabis, un dictador de España (2000

años a..c.) utilizó un robot para forzar a sus conciudadanos a pagar impuestos.

La inteligencia artificial es un tipo de sistema informático, por lo tanto, está ligada

a la historia de la computación.

El término inteligencia artificial se cree que fue utilizado por primera vez en 1956

por John McCarty, profesor de Matemáticas, USA, quien consideró la inteligencia ar-

tificial como disciplina independiente de la informática. Actualmente diferentes sis-

24
temas informáticos están a disposición de profesionales: médicos, ingenieros, profe-

sores, químicos y otros.

2.1.1. Conceptualización

La definición de inteligencia artificial depende de los intereses del investigador, así

por ejemplo en Answer Math.com encontramos algunas definiciones dadas por dife-

rentes autores:

“La interesante tarea de lograr que las computadoras piensen. . . máquinas con

mentes, en su amplio sentido literal” (Haugeland, 1985) (citado en Answer Math.com,

http://www.answermath.com/inteligencia-artificial.htm, 27/01/2011).

“La automatización de actividades que vinculamos con procesos de pensamiento

humano, actividades tales como toma de decisiones, resolución de problemas, apren-

dizaje. . . ” (Bellman, 1978) (citado en Answer Math.com, http://www.answermath.com/

inteligencia-artificial.htm, 27/01/2011).

“El arte de crear máquinas con capacidad de realizar funciones que realizadas

por personas requieren inteligencia” (Kurzweil, 1990) (citado en Answer Math.com,

http://www.answermath.com/inteligencia-artificial.htm, 27/01/2011).

“El estudio de cómo lograr que las computadoras realicen tareas que, por el mo-

mento, los humanos hacen mejor” (Rich y Knight, 1991) (citado en Answer Math.com,

http://www.answermath.com/inteligencia-artificial.htm, 27/01/2011).

“El estudio de las facultades mentales mediante el uso de modelos computacionales”

25
(Charniak y McDermott, 1985) (citado en Answer Math.com, http://www.answermath.

com/inteligencia-artificial.htm, 27/01/2011).

“El estudio de los cálculos que permiten percibir, razonar y actuar” (Winston,

1992) (citado en Answer Math.com, http://www.answermath.com/inteligencia-artificial.

htm, 27/01/2011).

“Un campo de estudio que se enfoca en la explicación y emulación de la conducta

inteligente en función de procesos computacionales”. (Schalkoff, 1990) (citado en Ans-

werMath.com, http://www.answermath.com/inteligencia-artificial.htm, 27/01/2011).

“La rama de la computación que se ocupa de la automatización de la conducta

inteligente” (Luger y Stubblefied, 1993) (citado en Answer Math.com, http://www.ans-

wermath.com/inteligencia-artificial.htm, 27/01/2011).

La inteligencia artificial carece de una rama de aplicación específica, ya que sus

ideas se aplican a diferentes ramas de la tecnología. Así por ejemplo, nos interesa los

problemas denominados “programación combinatoria”, que hacen que los algoritmos

intenten resolver problemas que agoten en breve tiempo las posibilidades de los más

grandes computadores, haciendo que la curva “ tiempo-tamaño” del problema crezca

lentamente como sea posible.

Existen sistemas que proporcionan conclusiones expertas acerca de áreas de temas

especializados, estos son sistemas optimizados de búsqueda de información que se les

llaman sistemas expertos.

26
2.1.2. Las heurísticas

De los Cobos (1994) define las heurísticas como criterios, métodos o principios para

decidir sobre varias alternativas de cursos de acción que prometen ser lo más efectivo

en orden a alcanzar alguna meta.

Nilsson (2003) define un método heurístico como un procedimiento para resolver

problemas mediante un enfoque intuitivo, en el cual la estructura de la situación puede

interpretarse y explorarse inteligentemente para obtener una solución razonable.

El papel de las heurísticas es el de enfocar la atención sobre las estrategias más

promisorias e intentar encontrar una solución sin explorar todas las posibles estrate-

gias.

Expresado de otra forma se puede decir que el método heurístico es aquel pro-

cedimiento paso a paso que permite en general, llegar rápidamente a la solución de

un problema. Esto no significa que el método responderá las preguntas: ¿El problema

tiene solución?, ¿Es irresoluble?, solamente se puede estar seguro que el método en-

contrará una solución muy cercana a la solución real y entre más cerca este de ésta,

más consistente será el método, considerando desde luego, el tiempo empleado para

lograrlo.

Nilsson (2003) señala que las heurísticas representan un compromiso entre dos re-

querimientos: la necesidad de hacer tales criterios sencillos y el deseo que discriminen

correctamente entre buenas y malas elecciones.

Una buena heurística debe poseer las cuatro propiedades siguientes:

27
1. Un esfuerzo computacional realista para obtener una solución.

2. La solución debería ser próxima al óptimo en término medio.

3. Que sea baja la probabilidad de encontrar una solución pobre.

4. Debe ser lo más simple posible para que el usuario la entienda y preferible-

mente explicable en términos intuitivos.

Una vez establecidos estos principios, es necesario definir lo que se llama proceso

formalizado y ver la diferencia que existe entre los formalizados y los que no lo están.

Así los procesos de información y conocimientos pueden clasificarse en cuatro grados:

1. Procesos de ejecución: Intervienen en tareas donde los flujos se tratan en

tiempo y espacio reales.

2. Procesos programados o algorítmicos: Comprenden cadenas de información

organizadas según una estructura determinista como lo puede ser un algoritmo.

3. Procesos pseudoprogramados: Cuando el programador debe intervenir per-

sonalmente y suplir las deficiencias de la información con su propia creatividad, riesgo

o experiencia personal.

4. Procesos psicoprogramados: Son los que intervienen valores típicamente psi-

cológicos y cuya determinación no puede ser delegada.

2.1.3. Sistemas expertos

Los sistemas expertos se pueden considerar como el primer producto verdadera-

mente operacional de la inteligencia artificial. Son programas de ordenador diseña-

28
dos para actuar como un especialista humano en un dominio particular o área de

conocimiento. En este sentido, pueden considerarse como intermediarios entre el ex-

perto humano, que transmite su conocimiento al sistema, y el usuario que lo utiliza

para resolver un problema con la eficacia del especialista. El sistema experto utilizará

para ello el conocimiento que tenga almacenado y algunos métodos de inferencia.

A la vez, el usuario puede aprender observando el comportamiento del sistema. Es

decir, los sistemas expertos se pueden considerar simultáneamente como un medio de

ejecución y transmisión del conocimiento.

Los sistemas expertos proceden inicialmente de la inteligencia artificial a media-

dos de los años sesenta. En ese período se creía que bastaban unas pocas leyes de

razonamiento junto con potentes ordenadores para producir resultados brillantes. Un

intento en ese sentido fue el llevado a cabo por los investigadores Alan Newell y Her-

bert Simon que desarrollaron un programa denominado GPS (General Problem Solver;

solucionador general de problemas). Podía trabajar con criptoaritmética, con las torres

de Hanoi y con otros problemas similares. Lo que no podía hacer el GPS era resolver

problemas del mundo real, tales como un diagnóstico médico.

A partir de 1965, un equipo dirigido por Edward Feigenbaum, comenzó a desarro-

llar sistemas expertos utilizando bases de conocimiento definidas minuciosamente.

En 1967 se construye DENDRAL, que se considera como el primer sistema experto.

Se utilizaba para identificar estructuras químicas moleculares a partir de su análisis

espectrográfico.

29
Entre 1970 y 1980 se desarrolló MYCIN para consulta y diagnóstico de infecciones

de la sangre. Este sistema introdujo nuevas características: utilización de conocimiento

impreciso para razonar y posibilidad de explicar el proceso de razonamiento. Lo más

importante es que funcionaba de manera correcta, dando conclusiones análogas a las

que un ser humano daría tras largos años de experiencia. En MYCIN aparecen clara-

mente diferenciados motor de inferencia y base de conocimientos. Al separar esas dos

partes, se puede considerar el motor de inferencias aisladamente.

La característica fundamental de un sistema experto es que separa los conocimien-

tos almacenados (base de conocimiento) del programa que los controla (motor de in-

ferencia).

Los sistemas expertos siguen una filosofía diferente a los programas clásicos. Estas

diferencias se pueden observar en el cuadro 2.1.

SISTEMA CLÁSICO SISTEMA EXPERTO


Conocimiento y procesamiento Base de conocimiento separada del
combinados en un programa mecanismo de procesamiento
No contiene errores Puede contener errores
No da explicaciones, los datos sólo Una parte del sistema experto la
se usan o escriben forma el módulo de explicación
Los cambios son tediosos Los cambios en las reglas son fá-
ciles
El sistema sólo opera completo El sistema puede funcionar con
pocas reglas
Se ejecuta paso a paso La ejecución usa heurísticas y lógi-
ca
Necesita información completa Puede operar con información in-
para operar completa
Representa y usa datos Representa y usa conocimiento

Cuadro 2.1: Comparación entre el sistema experto y el sistema clásico.

30
Los sistemas expertos son de gran utilidad por su cantidad de aplicaciones y son

muy eficaces cuando tiene que analizar una gran cantidad de información, interpretán-

dola y proporcionando una recomendación a partir de la misma. Entre ellos podemos

mencionar:

El análisis financiero, donde se estudian las oportunidades de inversión, de-

pendiendo de los datos financieros de un cliente y de sus propósitos.

Para detectar y reparar fallos en equipos electrónicos, se utilizan los sistemas

expertos de diagnóstico y depuración, que formulan listas de preguntas con las que

obtienen los datos necesarios para llegar a una conclusión.

Pronósticos médicos.

Para localizar problemas en sistemas informáticos grandes y complejos.

Predecir resultados futuros a partir del conocimiento que tienen.

La planificación es la secuencia de acciones necesaria para lograr una meta.

Conseguir una buena planificación a largo plazo es muy difícil, entre otros.

En el cuadro 2.2, se muestran los modelos funcionales de los sistemas expertos,

junto al tipo de problema que intentan resolver y algunos de los usos concretos a que

se destinan.

31
CATEGORÍA CATEGORÍA USO
Interpretación Deducir situaciones a partir Análisis de imágenes, re-
de datos observados conocimiento del habla, in-
versiones financieras
Predicción Inferir posibles conse- Predicción meteorológi-
cuencias a partir de una ca, previsión del tráfico,
situación evolución de la Bolsa
Diagnóstico Deducir fallos a partir de Diagnóstico médico, detec-
sus efectos ción de fallos en electrónica
Diseño Configurar objetos bajo Diseño de circuitos, au-
ciertas especificaciones tomóviles, edificios, entre
otros.
Planificación Desarrollar planes para lle- Programación de proyectos
gar a unas metas e inversiones. Planificación
militar
MonitorizaciónControlar situaciones Control de centrales nu-
o super- donde hay planes vulnera- cleares y factorías químicas
visión bles
Depuración Prescribir remedios para Desarrollo de software y
funcionamientos erróneos circuitos electrónicos
Reparación Efectuar lo necesario para Reparar sistemas infor-
hacer una corrección máticos, automóviles, entre
otros.
Instrucción Diagnóstico, depuración y Corrección de errores, en-
corrección de una conducta señanza
Control Mantener un sistema por Estrategia militar, control
un camino previamente de tráfico aéreo
trazado. Interpreta, predice
y supervisa su conducta
Enseñanza Recoger el conocimiento y Aprendizaje de experiencia
mostrarlo
Cuadro 2.2: Modelos funcionales de los sistemas expertos.

32
2.2. Programación combinatoria

Actualmente se hace intentos para estudiar en forma abstracta los procesos de solu-

ción de problemas, con el objeto de catalogar los diferentes métodos y deducir las

propiedades de los mismos. Sin importar el método elegido para resolverlo, este debe

constar de dos elementos: la representación y la búsqueda.

La idea más natural para resolver un problema es utilizando el método de ensayo ex-

haustivo y sistemático de todos los medios permitidos, hasta que se llega a la solución.

Esto puede generar serias complicaciones cuando el problema es de origen combinato-

rio, que incluso hace que un computador con capacidad de memoria y una velocidad

de cálculo mil veces superior a las actuales, necesite de la edad del sistema solar o más

para resolver un problema como el ajedrez (De los Cobos, 1994).

Es por ello, que nace la necesidad de implantar métodos de búsqueda que reduzcan

en gran medida los tiempos de cómputo. Estos métodos utilizan en cierta medida el

azar y ciertas restricciones para elegir una solución.

2.3. Grafos

La teoría de grafos se remonta, desde 1736, con la primera publicación por Leon-

hard Euler. Se extendió e intensifico su interés desde 1920 hasta 1930, dada su aplica-

bilidad a diversos campos como la computación, química y la ingeniería eléctrica.

33
Un grafo es un diagrama que consta de vértices y lados. Para la figura 2.1, los

vértices representan ciudades y los lados carreteras.

Figura 2.1: Ciudades y carreteras.

Definición 2.3.1 : Un grafo G, consiste en un conjunto V de vértices y un conjunto E

de lados, tales que cada lado e 2 E , esta asociado a un par no ordenado de vértices.

Definición 2.3.2 : Un grafo dirigido G consiste en un conjunto V de vértices y un con-

junto E de lados tales que, de cada lado e 2 E esta asociado a un par ordenado de vértices.

Definición 2.3.3 : Un circuito hamiltoniano o de Hamilton, en un grafo G es un camino

que comienza termina en un mismo vértice, pasando exactamente una vez por cada vértice.

Una aplicación inmediata relacionada con determinar un circuito hamiltoniano es

el problema del viajero; dado un conjunto de ciudades y la distancia entre cada par de

ellas, obtener la ruta más corta que pase por cada ciudad exactamente una sola vez y

34
termine en el punto de partida.

Además de los diagramas, los grafos pueden ser representados por matrices la cual

recibe el nombre de matriz de adyacencia.

Definición 2.3.4 : Una matriz de adyacencia, es aquella matriz cuadrada generada por

un grafo donde las columnas y las filas representan la unión que existe entre dos vértices

cualesquiera.

Para el grafo:

Figura 2.2: Grafo.

35
La matriz de adyacencia es

a b c d e
0 1
a B 0 1 0 0 1 C
B C
B C
b B
B 1 0 1 0 0 C
C
B C
B C
c B
B 0 1 1 0 1 C
C
B C
B C
B C
d B 0 0 0 0 1 C
B C
@ A
e 1 0 1 1 0
8
>
>
< 1 si el vértice i y el vértice j están unidos mediante un lado
donde aij =
>
>
: 0 en caso contrario

Definición 2.3.5 : Sea G un grafo con vértices V y lados E. Una sucesión de lados de

longitud n de un vértice X a un vértice Y , es un conjunto de lados S, que puede arreglarse

de modo que S = f(V0 ; V1 ) ; (V1 ; V2 ) ; :::; (Vn 1 ; Vn )g donde Vo = x y Vn = y.

La definición de sucesión de lados permite repeticiones de lados o vértices.

2.4. Eficiencia de los algoritmos

El análisis de los algoritmos tiene sentido como caso previo a la realización de un

programa a posteriori.

Como caso previo tiene sentido para evitar la pérdida de tiempo ante la máquina;

para determinar si un algoritmo es bueno y merece la pena hacer un programa para él

o para determinar entre dos algoritmos dados ¿cuál es preferible?

36
Como estudio a posteriori tiene sentido para comparar dos programas o para en-

contrar la causa del mal funcionamiento de un programa.

Un objetivo natural en el desarrollo de un programa es mantener tan bajo como sea

posible el consumo de los diversos recursos, aprovechándolos de la mejor manera que

se encuentre. Se desea un buen uso, eficiente de los recursos disponibles, sin desperdi-

ciarlos (Balcázar, 2008).

Conviene notar que se trata de un concepto relativo, no absoluto: un algoritmo es

más eficiente que otro si realiza las mismas tareas con menos recursos.

Medir la eficiencia de un algoritmo es medir la cantidad de recursos necesarios

para su ejecución, a efectos de cotejarla con la de otros algoritmos ya inventados o

por inventar. De este modo se puede seleccionar la mejor alternativa sin necesidad de

completar el desarrollo de un programa para cada uno (Balcázar, 2008).

2.4.1. Las notaciones asintóticas y sus propiedades

Se presentan a continuación algunas de las notaciones más corrientes para clasificar

funciones en base a su velocidad de crecimiento, su orden de magnitud. Se basan en su

comportamiento en casos límites, por lo que definen lo que llamaremos coste asintótico

de los algoritmos. Se seguirá esencialmente a Knuth (1973), Aho, Hopcroft y Ullman

(1983), y Vitányi y Meertens (1983).

A lo largo de la presente sección, todas las funciones que aparezcan, salvo indi-

cación contraria, son funciones de IN + . Todas las definiciones y resultados son váli-

37
dos también para las funciones de IN + en IR que tomen valores siempre superiores a la

unidad.

La O mayúscula

La notación O mayúscula, O(f ), denota el conjunto de las funciones g que crecen a

lo más tan rápido como f .

Definición 2.4.1 : O(f ) = fg j 9c0 2 IR+ 9n0 2 IN 8n n0 g(n) c0 f (n)g:

La correspondencia con la definición intuitiva es: el cuantificador existencial sobre

co formaliza la expresión módulo constantes multiplicativas, y no indica a partir de qué

punto es f realmente una cota superior para g.

La notación O(f ) tiene las siguientes propiedades, cualesquiera que sean las fun-

ciones f; g y h.

1. Invariabilidad multiplicativa: Para toda constante c 2 IR+ ,

g 2 O(f ) () c g 2 O(f ):

2. Reflexividad. f 2 O(f ).

3. Transitividad. Si. h 2 O(g) y g 2 O(f ) entonces h 2 O(f ):

4. Criterio de caracterización. g 2 O(f ) () O(g) O(f ).

5. Regla de la suma para O. O(f + g) = O(max(f; g)):

6. Regla del producto para O. Si g1 2 O(f1 ) y g2 2 O(f2 ), entonces g1 g2 2

O(f1 f2 ), donde denotamos f g la función que sobre el argumento n vale f (n) g(n).

38
7. Invariancia aditiva. Para toda constante c 2 IR+ ,

g 2 O(f ) () c + g 2 O(f ):

La o minúscula

La siguiente notación es también una cota superior, pero con significado diferente.

Mientras que g 2 O(f ) indica que, módulo constantes multiplicativas, f llega a ser en

algún momento una cota superior para g, y por lo tanto que el crecimiento de g no

supera el de f , en cambio g 2 o(f ) indica que el crecimiento de g es estrictamente más

lento que el de f . Su definición es:

Definición 2.4.2 : o(f ) = fg j 8c0 2 IR+ 9n0 2 IN 8n n0 g(n) c0 f (n)g:

Comparando con la definición de O(f ) vemos que la diferencia formal radica en la

cuantificación de la constante real positiva.

La notación o(f ) tiene las siguientes propiedades, cualesquiera que sean las fun-

ciones f; g y h. Denotamos por la inclusión propia, es decir inclusión sin igualdad.

1. Invariancia multiplicativa. Para toda constante c 2 IR+

g 2 o(f ) () c 2 o(f ):

2. Invariancia aditivo. Para toda constante c 2 IR+ ,

g 2 o(f ) () c + g 2 o(f ):

39
3. Antirreflexividad.f 2
= o(f ).

4. Caracterización en términos de O. g 2 o(f )si y sólo si g 2 O(f ) pero con

= O(f ); en particular, o(f )


f2 O(f ), y la antirreflexividad de muestra que la inclusión

es propia.

5. Otra relación con O. g 2 o(f ) () O(g) o(f ).

6. Transitividad. .Si h 2 o(g) y g 2 o(f ) entonces h 2 o(f ):

7. Caracterización por límites. Se cumple que:

g(n)
g 2 o(f ) () l mn!1 =0
f (n)

Las notaciones

Para denotar cotas inferiores de manera análoga a las cotas superiores, disponemos

de las notaciones . En la bibliografía existen dos definiciones distintas, que rara vez

aparecen juntas en el mismo texto ya que en general los autores siempre se abocan ha-

cia una u otra. La primera, que se denotará g 2 K (f ), indica que f es una cota inferior

a g desde un punto en adelante. El subíndice K es la inicial del autor que la propuso (D.

Knuth). Proporciona bastante información si el crecimiento de g es homogéneo, pues

indica un mínimo del cual g nunca baja. Sin embargo, si g presenta fuertes oscilaciones,

se puede obtener más información si buscamos cotas inferiores a los máximos de g. Se

denota g 2 1 (f ) el hecho de que en una cantidad infinita de ocasiones en que g

crezca lo suficiente como para alcanzar a f . Las definiciones formales son:

Definición 2.4.3 : K (f ) = fg j 9c0 2 IR+ 9n0 2 IN 8n n0 g(n) c0 f (n)g:

40
Definición 2.4.4 : 1 (f ) = fg j 9c0 2 IR+ 8n0 2 IN 9n n0 g(n) c0 f (n)g:

La disposición de los cuantificadores describe que la primera definición requiere a g

por encima de f para siempre de un punto en adelante, mientras que la segunda sólo

que requiere que g supera a f en puntos tan avanzados como se desee. La notación

con el significado de 1 (f ) es muy anterior a Knuth, y ya aparece en los trabajos de G.

H. Ardí y J. E. Littlewood en 1914.

Las notaciones (f ) tienen las siguientes propiedades, cualesquiera que sean las

funciones f; g y h.

1. Invariancia multilicativa. Para toda constante c 2 IR+ ,

g2 K (f ) () c g 2 K (f ):

g2 1 (f ) () c g 2 1 (f ):

2. Invariancia aditiva. Para toda constante c 2 IR+ ,

g2 K (f ) () c + g 2 K (f ):

g2 1 (f ) () c + g 2 1 (f ):

3. Relación entre K y 1. K (f ) 1 (f ).

4. Reflexividad. f 2 K (f ), y por tanto f 2 1 (f ).

5. Transitividad para K. Si h 2 K (g) yg2 K (f ) entonces h 2 K (f ).

6. Relación con O. g 2 K (f ) () f 2 O(g).

7. Relación con o.g 2 1 (f ) () g 2


= o(f ):

41
Notaciones

Denotan las funciones con la misma tasa de crecmiento que f:

(f ) = O(f ) \ K (f ):

Se puede definir otra versión diferente, 1 (f ) = O(f ) \ 1 (f ), que se tratará aquí.

La calse (f ) es un subconjunto de O(f ), y se denomina a veces el orden de magnitud

de f:

Algunas propiedades de la notación (f ) son:

1. Invariancia multiplicativa. Para toda constante c 2 IR+ ,

g2 (f ) () c g 2 (f ):

2. Invariancia aditiva. Para toda constante c 2 IR+ ,

g2 (f ) () c + g 2 (f ):

3. Relación con O Se tienen las siguientes equivalencias:

g2 (f ) () (g 2 O(f ) y f 2 O(g)) () O(f ) = O(g):

g(n)
4. Condición de límite. Si el límite l m existe, es finito y no es cero,
n!1 f (n)

entonces g 2 (f ):

5. Reflexividad. f 2 (f ):

6. Simetría. g 2 (f ) () f 2 (g) () (f ) = (g):

7. Transitividad. Si h 2 (g) y g 2 (f ) entonces h 2 (f ).

42
8. Regla de la suma para : (f + g) = (max(f; g)).

9. Regla del producto para : Si g1 2 (f1 ) y g2 2 (f2 ) entonces g1 g2 2

(f1 f2 )

2.5. La óptimización

Los problemas de optimización se dividen en dos categorías: problemas de opti-

mización con variables continuas y problemas de optimización con variables discretas

(problemas de optimización combinatoria).

2.5.1. Conceptualización

El problema de optimización combinatoria tiene la siguiente forma:

M inimizar C(x) : x 2 X IR.

La función objetivo puede ser lineal o no lineal y x puede tener incluso restricciones

de tipo lógico.

Definición 2.5.1 : Se define un movimiento v como un mapeo definido sobre un sub-

conjunto X(v) de X de la siguiente forma:

v : X(v) ! X:

43
Expresado de otra forma, un movimiento es una transición de una solución factible

a otra solución factible (transformada), el cual se puede describir mediante un conjunto

de atributos.

Una instancia de un problema combinatorio puede escribirse como la pareja (S; f ),

donde S denota el conjunto finito de todas las soluciones posibles y f la función de

costo, mapeo definido por:

f : S ! X:

Si el problema es de minimización, entonces se reduce a encontrar f (iopt ) 2 S que

satisfaga: f (iopt ) f (i), 8i 2 S. A la solución iopt se le llama solución globalmente

óptimo y fopt = f (iopt ) denota el costo óptimo, mientras que Sopt denota el conjunto de

soluciones óptimas.

Definición 2.5.2 : Si (S; f ) es una instancia de un problema de optimización combina-

toria, entonces una estructura de vecindades es un mapeo:

N : S ! 2S :

Que define para cada solución i 2 S un conjunto de Si S de soluciones que son

cercanas a i. El conjunto Si se llama vecindad de la solución i y cada j 2 Si se llama

vecino de i. Además se debe cumplir que: j 2 Si () i 2 Si

Definición 2.5.3 : Si (S; f ) es una instancia de un problema de optimización combina-

toria y N es una estructura de vecindades, entonces un mecanismo de generación es un

medio para escoger una solución j 2 Si generada por i.

44
Definición 2.5.4 : Si (S; f ) es una instancia de un problema de optimización combina-

toria y N es una estructura de vecindades, entonces io 2 S se llama una solución óptima

local o simplemente un óptimo local con respecto a N si io es menor o igual a todas sus

soluciones vecinas con respecto al costo.

En el caso de minimización, io se llama mínimo local sí f (io ) f (j) ; 8j 2 Si :

Definición 2.5.5 : Si (S; f ) es una instancia de un problema de optimización combina-

toria y N es una estructura de vecindades, entonces N se llama solución exacta si para cada

io 2 S que es un óptimo local con respecto a N, io también es un óptimo global.

2.6. Programación en Visual Basic 6.0

Visual Basic es un lenguaje de programación orientado a objetos creado por la Mi-

crosoft. Este lenguaje incorpora todas las herramientas necesarias para la creación de

cualquier aplicación para Windows. Con este lenguaje se puede crear desde una simple

calculadora hasta un procesador de texto de la talla de Word, o una hoja de cálculo

como Excel, o bien, cualquier aplicación que se le ocurra al programador.

Visual Basic es un lenguaje visual que se origina del lenguaje de programación Ba-

sic. La programación en Visual Basic se basa en un ambiente de desarrollo totalmente

grafico, que facilita la creación de interfaces gráficas, y en cierta medida, también la

programación misma. Todos los programas que realicemos en Visual Basic serán por

defecto, programas con todas las características de una aplicación típica de Windows.

45
Rodríguez (2008) señala que la programación orientada a objetos es aquella en la

que trabajamos con objetos visibles, cada uno de los cuales posee sus propias carac-

terísticas, métodos y eventos. La programación orientada a objetos, también llamada

lenguaje de quinta generación, toma como entidad principal los objetos de la natu-

raleza misma que contienen sus propias características y alguna función de utilidad.

En el mundo real un objeto es cualquier cosa material y determinada que tiene alguna

función de utilidad y que posee características o propiedades iguales o distintas a la de

otros objetos, por ejemplo, un carro, una computadora, un televisor, un celular, etc. En

el mundo de las computadoras un objeto es todo lo que se ve en una aplicación típica

de Windows, Linux, Beos, etc. Los objetos son, por ejemplo, un botón de comando,

una caja de texto, una imagen, un botón de opción, una lista desplegable, una barra de

desplazamiento, en general todo objeto visible que usted puede observar en la pantalla.

No podemos definir un objeto como algo que simplemente se ve en la pantalla,

un objeto es algo más abstracto y de inmensa profusión de datos. Un objeto posee

características o propiedades que definen su aspecto exterior, por ejemplo, el color, el

tamaño, el estilo, etc. Un objeto también posee métodos y eventos que son elementos

significativos del objeto.

En Visual Basic 6.0 los objetos con que trabajamos poseen propiedades, métodos y

eventos, aunque algunos objetos pueden no tener las mismas propiedades, métodos o

eventos que otros objetos poseen, también, algunos objetos pueden tener las mismas

propiedades de otros objetos.

46
2.6.1. Los controles más usuales en Visual Basic 6.0

Los controles más usuales son aquellos que usamos con mayor frecuencia al mo-

mento de crear una aplicación. Estos controles son por ejemplo: botones de comando,

botones de opción, cajas de texto, etiquetas, barras de desplazamiento, listas, cajas

combinadas, botones de verificación, etc.

2.6.2. Los botones de comando (CommandButton)

Los botones de comando son aquellos botones típicos que vemos frecuentemente

en las aplicaciones de Windows, que realizan una operación en especifico, por ejemplo,

salir, imprimir, cancelar, etc.

Los botones de comando se utilizan principalmente para iniciar, interrumpir o ter-

minar un proceso.

Estos controles pueden ser activados de múltiples formas como son: Haciendo clic

sobre él, presionando la tecla barra espaciadora o la tecla ENTRAR cuando este tiene

el enfoque, o bien, pulsando desde el teclado su respectivo acceso directo.

2.6.3. Nombre de controles y objetos

Cada control u objeto en Visual Basic debe tener un nombre, por medio del cual se

puede hacer referencia a dicho objeto en la aplicación. El nombre (name), puede ser el

47
que el programador desee, e incluso Visual Basic proporciona nombres por defecto para

los diversos controles. Estos nombres por defecto, hacen referencia al tipo de control y

van seguidos de un número, que se incrementa a medida que se van introduciendo más

controles de ese mismo tipo en el formulario; por ejemplo, Text1 para una caja de texto,

Text2 para otra caja de texto, Command1 para un botón de comando, Command2 para

otro botón de comando, así sucesivamente.

Los nombres por defecto no son recomendables para los controles colocados en

una aplicación de Visual Basic, debido a que solo hacen referencia al tipo de control,

pero no al uso que de dicho control está haciendo el programador en la aplicación.

Por ejemplo, si se agregan dos botones de comando en una aplicación (Command1,

Command2), uno para salir de la aplicación y el otro para cancelar la salida de la apli-

cación, sería recomendable que el botón de salir lleve por nombre cmdSalir y que el

botón de cancelar lleve por nombre cmdCancelar y no los nombres por defecto Com-

mand1 y Command2, ya que en ocasiones no distinguiremos para que utilizamos uno

y para que utilizamos el otro.

Para asignar los nombres a los controles de Visual Basic, existe una convención

ampliamente aceptada por la gran mayoría de los programadores; se utilizan siempre

tres letras en minúscula, que hacen referencia al tipo de control, seguido de otras letras

(la primera en mayúscula), libremente escogida por el programador, que tienen que

hacer referencia al uso que se va a dar a dicho control en la aplicación.

Estos controladores hacen de Visual Basic un lenguaje comprensible y de fácil acceso

48
para los que inician en el mundo de la programación, sin olvidar que se necesita de

ciertos conocimientos sobre las estructuras lógicas que permiten la comunicación entre

el ordenador y el programador.

Algunos de los diseños realizados en Visual Basic permiten que el usuario compren-

da rápidamente cuales son las estructuras mal diseñadas dentro del sistema. Por lo que

se facilita la corrección o el ajuste de la información.

49
Capítulo 3

Marco Metodológico

3.1. Delimitación del tema

Se estudiará el problema del Agente Viajero, que será tratado mediante un algorit-

mo determinístico, el cual se llamará EraDeterminístico basado en la técnica Búsqueda

Tabú. El tratamiento que se le dará a la situación, corresponde a una adaptación de

las técnicas empleadas por Sergio de los Cobos en el problema de calendarización. A

diferencia de este método, el implementado tratará de eliminar el enciclado mediante

la ejecución de ciclos que serán definidos por el operador en el momento de la inicia-

lización de las pruebas.

Es importante señalar, que el punto medular en esta investigación es el algoritmo

y no el problema. Se ha seleccionado el problema del Agente Viajero por la aplicabi-

lidad a casos de la vida real y por ello se implementará el algoritmo para el caso del

50
Agente de Salud, el Asesor de Matemáticas y la Distribución de Redes Hídricas, por

ser situaciones de gran importancia en la planificación de operaciones. Si embargo,

queda abierta la posibilidad que se adapte nuestro algoritmo a otros casos particulares

del Agente Viajero.

3.2. Metodología

La inteligencia artificial, mediante diversos sistemas trata de resolver situaciones

donde la explosión combinatoria prevalece y las elecciones están compuestas secuen-

cialmente, partiendo de una gran cantidad de posibilidades que se originan debido a

algunos problemas de optimización.

La investigación a tratar es de tipo experimental y describirá las características que

posee un algoritmo determinístico en la solución de un problema combinatorio, el Prob-

lema del Agente Viajero. Éste será incursionado con la técnica Búsqueda Tabú.

Una primera etapa será la implementación del algoritmo con la herramienta Vi-

sual Basic para Excel 2003 para un caso especial con 10 nodos donde los datos serán

generados por corridas en computadora y almacenados en las siguientes tablas:

51
ITERACIÓN = ( (1) ; (2) ; (3) ; :::; (n)) F( ) Tabú=1 Mejor Amisible

Cuadro 3.1: Control de las iteraciones.

MATRIZ TABÚ MATRIZ DE FRECUENCIAS

Cuadro 3.2: Control de los movimientos.

La matriz de frecuencias se construirá al inicio del procedimiento y llevará la histo-

ria de los movimientos admisibles y también será la responsable de definir el criterio

aspiración o la búsqueda exhaustiva. Sin embargo, es importante aclarar que el método

generará un conjunto de óptimos y se escogerá aquel cuya función de costo sea mejor.

Además, para empezar las iteraciones es necesario escoger una solución inicial, la cual

representa un óptimo local y a partir de éste se encontrarán las posibles vecindades.

Cada vecindad será explorada con detalle y se establecerá sobre sus elementos las

restricciones necesarias para reducir el número de posibilidades en cada iteración. El

método de restringir será semejante al expuesto por De los Cobos (1994) que está

basado en los estudios de Fred Glover (1993).

Como guía general, el proceso de construcción de la heurística se divide en tres eta-

pas: se estudia al problema y sus variables, se formula una selección de las restricciones

52
y se establece una representación simbólica de la estrategia de búsqueda.

En la primera etapa se definirá la complejidad del problema y la meta a que se desea

llegar. Aquí la experiencia en programación será un punto medular.

El segundo paso, la formulación, implica un análisis conceptual básico en el que se

deben hacer conjeturas. Las condiciones sobre las que actuará el método es la clave

de esta etapa; se aislarán o seleccionarán del entorno aquellos aspectos que sean rele-

vantes dentro del ámbito del problema, procediendo después a la exploración detallada

de las soluciones.

Una vez que se ha realizado la formulación lógica e incursionado las estrategias

propuestas, es necesario elaborar una representación simbólica de los métodos utiliza-

dos, así como su justificación formal.

La heurística que se empleará en este estudio, la hemos clasificado como intuitiva y

mejora a través de la experiencia almacenada.

En la figura 3.1, se muestra el esquema que presenta los pasos a seguir en el

tratamiento del problema.

53
Figura 3.1: Esquema de tratamiento del problema.

El ordenador a utilizar es una portátil Dell Vostro 1000 con procesador , con memo-

ria RAM de 1.00 GB y la herramienta empleada será Visual Basic 6.0 para aplicaciones

por su accesibilidad, comprensibilidad y funcionalidad.

54
Capítulo 4

Resultados

4.1. Introducción

El trazado de circuitos de Hamilton, es uno de los principales problemas en la op-

timización de operaciones logísticas, en sistemas en los que se busca primordialmente

la reducción de costos. El tratamiento de este problema, ha sido catalogado como

NPCompleto, debido a la gran cantidad de consumo en recursos computacionales para

encontrar una solución óptima que crece de forma factorial con respecto al número de

vértices propuestos, razón por la cual es tratado con algoritmos que no tienen la necesi-

dad de explorar todo el espacio de búsqueda para dar una respuesta aproximada.

Los algoritmos determinísticos son una familia de algoritmos cuya meta es precisa-

mente dar soluciones aproximadas a problemas generales de tipo NP, sin necesidad

de recorrer todo el espacio de búsqueda. Las heurísticas clásicas realizan una explo-

55
ración limitada sobre el espacio de búsqueda y normalmente las soluciones producidas

son buenas en poco tiempo. Su implementación es sencilla y son fácilmente adapta-

bles a problemas del mundo real. Existen dos tipos de heurísticas: constructivas y

de mejoramiento o de búsqueda local (Soto, 2008).

En las últimas décadas el desarrollo de métodos no exactos para la planeación de

rutas se ha focalizado en los algoritmos metaheurísticos: Recocido Simulado, Búsqueda

Tabú, Algoritmos Genéticos y Colonia de Hormigas.

El Agente viajero es otro de los más importantes problemas combinatoriales, así

como uno de los más destacados problemas de tipo NPCompleto. El problema trata

de un viajero que visita cada una de las n ciudades dadas exactamente una vez y

retorna a la ciudad inicial. La solución del problema consiste en hallar la secuencia de

ciudades visitadas (el ciclo) que minimice la distancia total del viajero. Esta situación,

ha sido enfrentada mediante diversas técnicas, entre las que sobresalen los Algoritmos

Evolutivos, Recocido Simulado, Búsqueda Tabú, Algoritmos Genéticos y Colonia de

Hormigas. Gregory Gutin en su libro, hace una descripción profunda de muchas de

estas técnicas.

Los Algoritmos Genéticos (AG’s) es uno de los enfoques más sobresalientes en el

campo de los Algoritmos Evolutivos y se definen como procedimientos iterativos de

búsqueda adaptativa con un propósito general, con la virtud de describir de manera

abstracta y rigurosa la adaptación colectiva de una población de individuos a un am-

biente particular, basándose en un comportamiento similar a un sistema natural (Soto,

56
2008).

Entre las situaciones relacionados con los circuitos de Hamilton y el Agente Viajero,

están el diseño de redes hídricas para el abastecimiento de agua en las urbanizaciones

o en los sistemas de riego, ya sea para la agricultura o la ganadería y el trazado de

rutas que en la literatura se le denomina como el problema del transporte. En estas

situaciones se pretende, planificar las rutas para prestar un servicio a varios usuarios,

sin tener en cuenta la capacidad de la flota y la demanda de cada usuario.

4.2. El algoritmo determinístico

4.2.1. La técnica búsqueda tabú

La Búsqueda Tabú (BT) es un algoritmo metaheurístico que puede utilizarse para

resolver problemas de optimización combinatoria, tales como el problema del vende-

dor viajero (TSP, del inglés Travelling Salesman Problem). La búsqueda tabú utiliza un

procedimiento de búsqueda local o por vecindades para moverse iterativamente desde

una solución x hacia una solución x en la vecindad de x, hasta satisfacer algún criterio

de parada. Para poder explorar regiones del espacio de búsqueda que serían dejadas

de lado por el procedimiento de búsqueda local, la búsqueda tabú modifica la estruc-

tura de vecinos para cada solución a medida que la búsqueda progresa. Las soluciones

admitidas para N (x), el nuevo vecindario, son determinadas mediante el uso de es-

tructuras de memoria. La búsqueda entonces progresa moviéndose iterativamente de

57
una solución x hacia una solución x en N (x).

Quizás la estructura de memoria más importante usada para determinar las solu-

ciones permitidas a un N (x), sea la lista tabú. En su forma más simple, una lista

tabú es una memoria de corto plazo que contiene las soluciones que fueron visitadas

en el pasado reciente (menos de n iteraciones atrás, donde n es el número de solu-

ciones previas que van a ser almacenadas). La búsqueda tabú excluye las soluciones

en la lista tabú de N (x). Una variación de la lista tabú prohíbe soluciones que tienen

ciertos atributos (i.e., soluciones al problema del viajante de comercio (TSP) que in-

cluyen aristas no deseadas) o prevenir ciertos movimientos (i.e., un arco que fue agre-

gado a un recorrido del TSP no puede ser eliminado en los siguientes n movimientos).

Los atributos seleccionados de las soluciones recientemente visitadas son denomina-

dos "tabú-activos." Las posibles soluciones que contengan elementos tabú-activos son

"tabú".

Las listas tabú que contienen atributos pueden ser más efectivas para algunos domi-

nios, pese a que presentan un nuevo problema. Cuando sólo un atributo es marcado

como tabú, esto por lo general resulta en que más de una solución es marcada co-

mo tabú. Algunas de estas soluciones, que ahora deben ser evitadas, podrían ser de

excelente calidad y no serían visitadas. Para mitigar este problema, se introducen los

criterios de aspiración: éstos pueden modificar el estado de tabú de una solución, por

lo tanto incluyendo la solución antes excluida en el conjunto de soluciones permitidas.

Un criterio de aspiración muy utilizado es admitir soluciones que son mejores que la

58
mejor solución conocida al momento.

Algoritmo 4 : Búsqueda Tabú

1. Selecciona un estado x 2 X inicial y sea x := x; k = 0 (contador de


iteración) y T := ;:

2. Si S(x) T = ; ir a 4;
sino, sea k := k + 1 y selecciona sk 2 S(x) T tal que sk (x) =
OP T IM O(s(x) : s 2 S(x) T ):

3. Sea x := sk (x): Si c(x) < c(x ) ( donde x es la mejor solución


encontrada hasta el momento), sea x := x:

4. Si se agotó el número de iteraciones o si S(x) T = ;, entonces


parar, sino, actualiza T (añade el movimiento actual a la lista tabú y
posiblemente elimina el elemento más viejo) y regresa a 2:

La búsqueda tabú puede utilizarse para encontrar una solución satisfactoria para

el TSP. Primero, la búsqueda tabú comienza con una solución inicial, que puede ser

generada con el algoritmo del vecino más cercano o por cualquier algoritmo de in-

serción. Para crear nuevas soluciones, el orden en que dos ciudades son visitadas es

intercambiado. La distancia total recorrida entre todas las ciudades es utilizada para

juzgar cuanto mejor es una solución de otra. Para prevenir ciclos y para salir de los óp-

timos locales, una solución es agregada a la lista tabú si es que es aceptada en N (x),

el vecindario de soluciones. Se continuan creando nuevas soluciones hasta que algún

criterio de parada, como por ejemplo, hasta que un número arbitrario de iteraciones,

es encontrado. Una vez que la búsqueda tabú se detiene, la mejor solución es aquella

cuya distancia total a recorrer entre las ciudades es la menor.

59
El algoritmo propuesto utiliza la memoria a corto y largo plazo, ya que hace uso de

la matriz de frecuencias que expone De los Cobos (2008), que permite la exploración

de nuevas regiones liberando de esta manera los movimentos señalados como tabú.

Algoritmo 5 : EraDeterminístico

Inicialización
1. Ingrese: MatrizDistancia, longitudTabú. MaxIter, CiclosDiver, ListaTabú.
2. Generar la solución inicial(permutación natural) y la distancia d(x):
3. Mientras Iter MaxIter.

3.1. Actualice MatrizTabu.


3.2. Menor distancia d(x):
3.3. Generar las n 1 permutaciones.
3.4. Determinar la distancia de cada permutación.
3.5. Clasifique los movimientos en prohibidos y no prohibidos.
3.6. Determinar la menor distancia de los movimientos no prohibidos y seleccione
la permutación.
3.7. Si todos los movimientos son prohibidos, aplique aspiración. Sino pare.
3.8. Actualice d(x):
3.9. Si d(x) < Op(x), entonces actualice Op(x). Pase a la instrucción 3.1.
3.10. Si en k iteraciones no se actualiza Op(x), entonces diversifique. Pase a la
instrucción 3.1.

4. El óptimo encontrado es Op(x):


Fin.

Este método funciona de manera iterativa. Una vez cumplido el criterio de parada,

se necesita evaluar la solución inicial y la resultante, a fin de observar la mejora. Si el

valor es inferior al inicial, se considera que se ha encontrado un nuevo valor mínimo y

además se almacena en una lista llamada OptimoLocal, nombre dado a la trayectoria

mínima y se almacena la lista de nodos en el orden en que se da esta condición.

60
4.3. Trazado de rutas

Para fines ilustrativos se muestran 10 nodos dispuestos en forma aleatoria sobre un

plano. En este modelo hipotético se necesita hacer el trazo de las rutas para que el

individuo ingrese y salga del nodo solamente una vez.

Figura 4.1: Localidad 10.

La investigación genera como elemento de inserción la permutación natural, ge-

nerando el diseño inicial como se muestra a continuación:

Figura 4.2: Recorrido natural.

61
La fase de mejoramiento del algoritmo debe ir generando circuitos que disminuyen

su distancia total a medida que se aumentan las iteraciones. Así que, un recorrido

mejorado podría ser el que se ilustra:

Figura 4.3: Recorrido mejorado.

La fase de mejoramiento se determina mediante la evaluación y comparación de la

función objetivo.

4.4. Exploración del problema

El propósito del presente trabajo es encontrar soluciones óptimas al problema del

agente viajero usando un algoritmo determinístico basado en la técnica Búsqueda Ta-

bú(BT). Para esto, se consideran instancias aleatorias, comparación con los TSPLIB y

tres modelos reales, uno para la redes de distribución de agua para el Colegio Técnico

Profesional de Upala (CTPU), otro para el Agente de la Salud (AS) y otro para el Asesor

de Matemáticas (AM).

62
Es importante inicialmente, localizar el problema del viajante respecto a su funciona-

lidad, la cual consiste en minimizar la distancia recorrida pasando sólo una vez por un

número de ciudades y retornar al punto inicial. A través de este documento guiare-

mos a la solución determinista de este problema de alta complejidad, ilustrando las

etapas necesarias para la búsqueda del óptimo local.

Una vez localizado y contextualizado el problema, desarrollamos unas etapas ge-

nerales, en lo que a lo programación se refiere. Para ello se plantea las tablas de

exploración con las condiciones iniciales:

dij 1 2 3 4 5 6 7 8 9 10
1 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
10 0

Cuadro 4.1: Matriz de distancia.


8
>
> Permutación Natural =
<
Longitud Tabú =
>
> Numéro de Iteaciones =
:
Número de Ciclos para diversificar=

Cuyas iteraciones seran almacenadas en la tabla:

63
Cuadro 4.2: Tabla para las permutaciones.

Los movimientos prohibidos serán almacenados en la tabla:

Cuadro 4.3: Matriz tabú.

La historia de los mejores admisibles seran registrados en la siguiente tabla:

64
Cuadro 4.4: Historial de los admisibles.

Con estas tablas y el algoritmo propuesto, se hará el tratamiento del Problema de

Agente Viajero (PAV), aplicando los procesos a los casos particulares anteriormente

mencionados.

Seguidamente se mostrará en forma resumida, el método empleado por las estrate-

gias de búsqueda para determinar un óptimo local. Para ello se proponen 10 puntos

generados aleatoriamente sobre una circunferencia de radio 6 cm y conociendo con

antelación el óptimo global (36,79 cm ), se obtienen las condiciones inicales:

65
Figura 4.4: Puntos aleatorios sobre una circunferencia de radio 6 cm.

dij 1 2 3 4 5 6 7 8 9 10
1 0 11.85 6.15 9.11 3.13 5.09 3.35 10.60 7.62 11.72
2 11.85 0 9.22 9.13 11.93 11.53 10.86 3.89 10.34 4.37
3 6.15 9.22 0 11.83 8.62 9.94 3.03 6.23 11.29 11.38
4 9.11 9.13 11.83 0 6.77 4.95 10.93 11.16 2.08 5.66
5 3.13 11.93 8.62 6.77 0 2.08 6.24 11.70 4.94 10.64
6 5.09 11.53 9.94 4.95 2.08 0 7.92 11.98 2.97 9.52
7 3.35 10.86 3.03 10.93 6.24 7.92 0 8.62 9.91 11.97
8 10.60 3.89 6.23 11.16 11.70 11.98 8.62 0 11.76 7.76
9 7.62 10.34 11.29 2.08 4.94 2.97 9.91 11.76 0 7.41
10 11.72 4.37 11.38 5.66 10.64 9.52 11.97 7.76 7.41 0

Cuadro 4.5: Matriz distancia.


8
>
> Permutación Natural ! (1,2, 3, 4, 5, 6, 7, 8, 9, 10, 1)
<
Longitud Tabú ! 4
>
> Número Máximo de Iteraciones ! 200
:
Número de Ciclos para diversificar ! 20

Cuyo escenario corresponde al que se muestra en la figura 4.5 y se inician las

iteraciones con la permutación natural.

66
Figura 4.5: Escenario 1.

Cuadro 4.6: Permutaciones 1.

Genarándose de esta forma el vecindario

67
Cuadro 4.7: Tablas de iteración 1.

Donde se observa que la permutación (2, 1, 3, 4, 5, 6, 7, 8, 9, 10, 2) es el mejor

candidato para continuar en la próxima iteración. Quedando prohibido que el nodo

1 esté en la posición 1 y el nodo 2 esté en la posición 2.

Cuadro 4.8: Tablas de tabú1 y frecuencia1.

De esta forma se tiene la segunda iteración.

68
Cuadro 4.9: Permutación 2.

Donde se observa que la permutación (2, 3, 1, 4, 5, 6, 7, 8, 9, 10, 2) es el mejor

candidato para continuar en la próxima iteración. De esta forma se continua hasta la

iteración 34, cuyo resultado será:

Cuadro 4.10: Permutación 34.

Hasta el momento han pasado 20 iteraciones que el óptimo local no se actualiza, por

lo que el algoritmo llama a un procedimiento para diversificar la búsqueda hacia otras

69
regiones no exploradas. Esta búsqueda no se realizar en forma aleatoria, más bien se

hace en la dirección que indique la matriz de frecuencias, la cual lleva un historial de

los movimientos realizados.

Observemos la historia de los movimientos registrados en la matriz de frecuencias.

Cuadro 4.11: Matriz frecuencia 34.

El criterio para ubicar el nodo en cierta posición, será la menor frecuencia registra-

da. Observemos que el nodo 1 tiene la menor frecuencia (0) en las posiciones 1, 6, 7,

8, 9 y 10, así que, es buen candidato para ocupar la posición 1. Análogamente, el nodo

2 es buen candidato para la posición 3, el nodo 3 es buen candidato para la posición

1, pero ésta ya está ocupada por lo que se situará en la posición 5, el nodo 4 es buen

candidato para la posición 6, el nodo 5 es buen candidato para la posición 1, pero ya

está ocupada por lo que se situará en la posición 2, así se continúa hasta generar la

nueva permutación de búsqueda que será (1, 5, 2, 8, 3, 4, 7, 6, 9, 10).

70
Cuadro 4.12: Permutación 35.

En esta nueva exploración, en el primer vecindario ningún movimiento es prohibido

porque se ha reiniciado la matriz tabú a cero. De esta forma se continúa hasta la ite-

ración 200 con 7 diversificaciones, encontrando el óptimo en la iteración 144 en 0,0626

seg., con la distancia de 36,79 cm.

Cuadro 4.13: Permutación 144.

Esta nueva permutación (5, 6, 9, 4, 10, 2, 8, 3, 7, 1, 5), ha transformado el recorrido

71
dado en la figura 4.5. en una donde no hay intersecciones entre los caminos trazados.

Figura 4.6: Recorrido óptimo.

Las presentaciones que se observaron anteriormente fueron programadas con fines

ilustrativos, en Visual Basic Para Aplicaciones (BVA) en una plataforma Microsoft Excel

2007. Las exploraciones para los diferentes nodos serán resultados del algoritmo en

Visual Basic 6.0 y se verá que los tiempos de ejecución disminuyen en gran medida.

Con el fin de visualizar el papel que desempeña la diversificación, se muestra el

gráfico para los 200 admisibles generados en cada vecindario.

72
Figura 4.7: Comportamiento de la diversificación.

Es claro ver que, en el momento de encontrar un óptimo local y ubicarse en un valle

profundo (De los Cobos, 2010), la diversificación permite explorar nuevas regiones

para poder mejorar el óptimo local.

4.4.1. Exploración por nodos

Con el propósito de ajustar los parámetros, de tal manera que el algoritmo evolu-

cione de la mejor forma posible y por consiguiente se obtengan buenos resultados, se

realizan diferentes exploraciones, en cada uno de los cuales se modifica una o viarias

condiciones iniciales y se observa el comportamiento del algoritmo. Los beneficios del

73
algoritmo se miden según su eficiencia y su mejora porcentual, ya que esto es una me-

dida de la posibilidad de obtener buenos resultados al ejecutar de manera constante el

algoritmo. Además, se ha decidido tener en cuenta el valor mínimo de restricciones

en la matriz tabú, ya que en última instancia éste es el valor con que se debe tomar la

decisión para el óptimo local.

Los casos de prueba para 10, 15, 20, 25 y 30 nodos, se ubican en la necesidad de

probar el algoritmo en instancias pequeñas. Para tal caso se expone la redistribución

de agua que se debería aplicar en el Colegio Técnico Prosesional de Upala (CTPU) y en

algunas instancias aleatorias.

En el cuadro 4.14, están los resultados obtenidos con la metodología propuesta, así

como las condiciones iniciales para las cuales fueron implementadas las pruebas. La

única condición inicial que no se muestra es la matriz distancia, pero si la longitud de

la permutación natural. La mejora porcentual (M P ) se midió con la fórmula:

Sin SOp
MP = 100: (4.1)
Sin

74
Numero Reco. Reco. Tiempo
Instancia LT MP
Iteraciones Inicial Mej. en Seg
Aleatoria10 4 y 3 150 158; 55 112; 96 0; 125 28; 75
5 120 158; 55 83; 63 0; 047 47; 25
Aleatoria15 4 y 3 1410 205; 47 83; 93 1; 093 59; 15
5 1410 205; 47 83; 93 1; 061 59; 15
Aleatoria20 4 y 3 2400 255; 58 100; 12 2; 469 62; 99
5 2400 255; 58 94; 58 2; 469 62; 99
Aleatoria25 4 y 3 3750 317; 67 122; 18 4; 356 61; 54
5 3750 317; 67 122; 18 4; 356 61; 54
Aleatoria30 5 4860 350; 63 124; 82 7; 872 64; 40

Cuadro 4.14: Instancias aleatorias procesadas en VBA.

Con base en los resultados de los experimentos, se comprueban las observaciones

realizadas por De los Cobos (2008) cuando señala que la longitud tabú no debe ser tan

grande ya que restingue la búsqueda y se cae en un valle profundo o que no deber ser

muy pequeña ya que la búsqueda no se direcciona hacia el local y se cae en el valle

profundo.

Una vez definido la dirección del espacio de búsqueda, la solución óptima no mejo-

ra aunque se le incremente el número de iteraciones ya que el algoritmo de inserción

siempre será el mismo (permutación natural). Sin embargo, se puede direccionar la

búsqueda mediante la diversificación, si es que la aspiración no satisface nuestras es-

pectativas.

El tiempo empleado en cada corrida depende del número de nodos por conectar,

pero no sobrepasa la línea de lo razonable (Figueroa, 2007).

En la figura 4.8, se muestran los escenarios de cada uno de los resultados obtenidos

en el cuadro 4.14.

75
Recorrido Inicial Recorrido Mejorado

n = 10

n = 15

n = 20

n = 25

n = 30

Figura 4.8: Escenarios del cuadro 4.14.

En estos escenarios se observa la influencia que tiene la mejora porcenual en la

solución óptima encontrada y que no depende de una inserción aleatoria para generar

76
buenos recorridos. Por el contrario, con la permutación natural se obtiene un posible

óptimo en un tiempo de ejecución aceptable.

4.4.2. Comparación con TSPLIB

Con base a las observaciones expuestas en la sección anterior, se decidió realizar un

segundo experimento en el cual se buscó explorar nuevas poblaciones, conociendo con

antelación las soluciones óptimas para cada instancia tratada. Para ello se utilizaron

resultados disponibles en TSPLIB.

Para comparar los resultados obtenidos en los experimentos, se le aplicó la medida

de la eficiencia con la ecuación (De los Cobos et al, 2010):

Z ZT
e=1 : (4.2)
ZT

y la desviación porcentual con la ecuación (Figueroa, 2007):

Ch COp
DP = 100: (4.3)
COp

77
Cuadro 4.15: Comparación con las instancias TSPLIB y De los Cobos.

En el cuadro 4.15 se observa que, en cualquier caso la eficiencia esta muy cercana

a uno, lo que nos indica que el algoritmo propuesto genera resultados satisfactorios

y de no ser así, éste da la oportunidad de dirigir la búsqueda hacia nuevas regiones

mediante la diversificación o mediante un permutación inicial que no sea la natural.

78
4.5. Implementación en una situación real

4.5.1. Escenario del agente de salud (AS)

Según la Dirección Vigilancia de la Salud, en el presente año (2010), se han re-

gistrado en el país un total de 19657 casos de dengue, lo que representa un incremento

de 637,1 % respecto del acumulado a la semana 32 del año 2009. Este incremento se

ha dado en todas las regiones, concentrándose el 98 % de los casos en las regiones

Chorotega, Central Norte, Pacífico Central, Brunca, Central Sur y Huetar Atlántica.

Desde el inicio de la pandemia (AH1N1) en abril de 2009 hasta la semana 32 del

2010 el Sistema de Vigilancia de la Salud, ha confirmado por laboratorio un total de

3743 casos, de los cuales 633 corresponden al 2010.

En cuanto a la malaria en la semana 32 no se reportaron casos, se han confirmado

un total 79 casos, 78 por Plasmodium vivax, 63 en el área de Matina, tres en Pococí, dos

en Siquirres, cuatro en Limón y cuatro en Talamanca, Región Huetar Atlántica. También

hay clasificados tres importados, uno de Nicaragua en el cantón de San Carlos, Región

Huetar Norte, un caso de P. falciparum en el cantón de Carrillo, Región Chorotega,

importado de Camerún, África y otro en San José, Región Central Sur procedente de

Guatemala.

Haciendo la consulta al encargado de la vigilancia de la salud para la Región Chorote-

ga, el Doctor Randall Alvarado Méndez, Director del Hospital y del área de salud de

Upala mencionó, que debido la calidad de los caminos y las frecuentes inundaciones,

79
en caso de un brote epidémico, los principales centros de vigilancia de la salud (EBAIS)

deben visitarse vía área.

En el Cuadro 4.16, se muestran las distancias1 entre el Hospital de Upala y 20

puestos de vigilancia de la salud entre EBAIS y Puestos de Salud de la Región Chorote-

ga, que correponden al escenario de la figura 4.9.

Cuadro 4.16: Distancias entre el Hospital de Upala y 20 puestos de vigilancia de la


salud (Kms).

1
La notación es la siguiente; 1: Hosp. Upala, 2: Ebais Upala, 3: PS Chimurria, 4: PS S. Isidro, 5: Ebais
Colonia, 6: Ebais Canalete, 7: Ebais Delicias, 8: PS México, 9: Ebais Bijagua, 10: Ebais Las Milpas, 11:
PS Moreno Cañas, 12: PS Quebradon, 13: Ebais Santa Clara, 14: Ebais S. Jose, 15: PS C. Bocas, 16: PS
Aguas Claras, 17: Ebais Birmania, 18: PS Dos Rios, 19: PS Porvenir, 20: PS Popoyuapa.

80
Figura 4.9: Mapa del Cantón de Upala para los puestos de vigilancia de la salud.

Lo que se desea conocer es la trayectoria de costo mínimo, por lo que se planteó

el PAV de la forma descrita anteriormente (figura 4.9 y cuadro 4.16). Se resolvió

utilizando la técnica de la búsqueda tabú, mediante un algoritmo con longitud tabú

igual a 11 y los ciclos de diversificación igual a 1000, cada vecindario fue de tamaño

n 1; se utilizó una portatil DELL Vostro 1000 con 1 GB de memoria RAM, procesador

Mobile AMD Sempron(tm) Processor 3600 + 2 GHz así como el paquete comercial

Visual Basic 6.0 con SP6, encontrándose los resultados dados en el cuadro 4.19 y el

escenario se muestra en la figura 4.10 y la figura 4.11.

81
Figura 4.10: Recorrido Óptimo de los puestos de vigilancia de la salud vía aérea.

82
Figura 4.11: Recorrido Óptimo de los puestos de vigilancia de la salud vía terrestre.

83
4.5.2. Escenario del asesor de matemáticas (AM)

Un asesor de matemáticas trabaja en una Dirección Regional. Sus funciones están

relacionadas con la formación y asesoramiento de grupos de profesores en ejercicio.

Se integra por tanto, en lo que suele denominarse formación permanente. En edu-

cación secundaria, los asesores tienen una especial dedicación al trabajo dentro de

su área. Ello no impide que, junto con otros asesores, aborde cuestiones generales

relativas al funcionamiento y gestión de los Institutos de Educación Secundaria. La

vinculación de los asesores con una Dirección Regional, va desde la colobaración para

laborar con los proyectos del Centro Regional, hasta la cooperación y asesoramien-

to de problemáticas educativas concretas que preocupen a los profesores en el con-

texto de su labor docente: tratamiento de la diversidad, adaptaciones curriculares o

temas transversales. Aunque básicamente queden definidas y reguladas por la Ad-

ministración Educativa, en la práctica, las funciones de un asesor están moduladas por

la zona geográfica donde esté ubicada la Dirección Regional, así como los recursos

institucionales de éste.

Los asesores de matemáticas en Educación Secundaria, trabajan preferentemente

con profesores de su área, que en la actualidad están inmersos en un proceso de im-

portantes cambios, tanto en el sistema educativo como en su propio curriculum de

matemáticas. Cualquier cambio efectivo en educación pasa necesariamente por el

profesorado. Ninguna medida legislativa puede tener efectos significativos si no va

acompañada del reconociminento de los profesores implicados, por ello Nieto (2005)

84
considera el asesoramiento en el área de matemáticas es una tarea compleja, cuya

conprensión global se mejora analizándola desde varios puntos de vista.

Es por lo anterior que los asesores de matemáticas deben estar actualizados en

lo que materia educativa se refiere y por consiguiente trasmitir esa información a los

profesores de matemática de toda la Región Educativa, lo que implica un continuo

movimiento del asesor por los diferentes Centros de Educacción Secundaria, para lo

cual se debe disponer de tiempo y combustible. Tomando en cuenta que se dispone

de recursos limitados, es de suma importancia hacer un uso racional de éstos.

Cuadro 4.17: Distancias entre el CPTU y 12 Colegios de Upala (Kms.).

En el cuadro 4.17, se muestran las distancias entre el Colegio Técnico Profesional

de Upala y los diferentes Centros Educativos de Secundaria para la Zona Norte Norte.

85
Figura 4.12: Mapa del Cantón de Upala para la ubicación de 12 colegios en la Zona
Norte Norte.

Las distancias2 se determinan a través de la carretera más corta o la más accesible.

Este caso se localizó un puente en mal estado (ruta Las Delicias-Santa Clara), así que

se optó por la ruta Las Delicias-Quebradón.

Lo que se desea conocer es la trayectoria de costo mínimo, por lo que se planteó

el PAV de la forma descrita anteriormente (figura 4.12 y cuadro 4.17). Se resolvió

utilizando la técnica de la búsqueda tabú, mediante un algoritmo con longitud tabú

igual a 4 y los ciclos de diversificación igual a 50, cada vecindario fue de tamaño n 1;
2
La notación es la siguiente; 1: CTPU, 2: Liceo Canalete, 3: Liceo las Delicias, 4: Liceo San José de
Upala, 5: Telesecundaria México, 6: Liceo Aguas Claras, 7: Liceo Villanueva, 8: Telesecundaria Cuatro
Bocas, 9: Liceo Bijagua, 10: Colegio de Birmania, 11: Colegio Colonia Puntarenas, 12: Telesecundaria
Dos Rios.

86
se utilizó una portatil DELL Vostro 1000 con 1 GB de memoria RAM, procesador Mobile

AMD Sempron(tm) Processor 3600 + 2 GHz así como el paquete comercial Visual Basic

6.0 con SP6, encontrándose los resultados dados en el cuadro 4.19 y el escenario se

muestra en la figura 4.13.

Figura 4.13: Recorrido óptimo de colegios12.

4.5.3. Escenario de las redes hídricas

El crecimiento de las urbanizaciones y residenciales en los núcleos de la población,

ha estado condicionado en primer lugar por la topografía existente y en segundo lugar

87
por la creación de los diferentes canales de comunicación que se han ido construyendo

y que han funcionado como umbrales en el desarrollo económico de las poblaciones

en los últimos años. Este crecimiento desmedido hace pensar que el suministro de

los recursos vitales tuviesen un colapso, a tal punto que se necesitaría invertir en im-

plementos adicionales para cumplir con las necesidades de la población, como el uso

de bombas para la expulsión del agua, racionamiento, aumento en los calibres de los

ductos, entre otros.

Con el fin de generar un escenario factible, es necesario llevar a cabo una mayor

coordinación entre la planificación hidrológica y el abastecimineto de este recurso.

Umbral que podrían generarse con la creación de una nueva red, con el propósito de

establecer criterios de ordenación del crecimiento poblacional o incluso la convenien-

cia. Así, considerando la posibilidad de que el crecimiento poblacional continue con

la dinámica que se ha producido hasta ahora, es importante la construcción de un red

que minimice las distancias en el recorrido total, y perpetuando un modelo de gestión

de agua sostenible, capaz de solucionar los problemas de suministro eficiente de este

recurso.

El tercer experimento consiste, en implementar el algoritmo para la planificación

del trazado de tuberias en el Colegio Técnico Profesional de Upala, en donde la dis-

tribución de tubos está constituida por ramificaciones del tubo primario. Esto genera

que en las partes más lejanas, el servicio de agua sea casi nulo en las horas de mayor

demanda del recurso (de 9: 00 am - 5:00 pm).

88
En el cuadro 4.18, se muestran las distancias en metros, entre los 36 recibidores

externos para cada pabellón del Colegio Técnico Profesional de Upala (CTPU), las co-

ordenadas se determinaron con un dispositivo GPS MAP Garmin 60CX a cargo del

Ing.Carlos Matarrita.

Cuadro 4.18: Ctpu36. Distancia entre los recibidores externos (mts).

89
Figura 4.14: Nodos de los recibidores externos para Ctpu36.

Se resolvió utilizando la técnica de la búsqueda tabú, mediante un algoritmo con

longitud tabú igual a 16 y los ciclos de diversificación igual a 5000, cada vecindario fue

de tamaño n 1; se utilizó una portatil DELL Vostro 1000 con 1 GB de memoria RAM,

procesador Mobile AMD Sempron(tm) Processor 3600 + 2 GHz así como el paquete

comercial Visual Basic 6.0 con SP6, encontrándose los resultados dados en el cuadro

4.19 y el escenario se muestra en la figura 4.15.

90
Figura 4.15: Recorrido mejorado de los recibidores externos para Ctpu36.

Número Recorrido Recorrido Tiempo


Instancia LT LD Ahorro
Iteraciones Inicial Propuesto en Seg
CTPU36 16 5000 20000 365,47m 218,26m 147,21m 30,428
AM12 4 50 2000 635,40km 301,90km 333,50km 0,452
AS20A 11 1000 5000 303km 233,37km 69,63km 2,599
AS20T 11 1000 10000 895,29km 306,7km 588,59km 5,103

Cuadro 4.19: CTPU: Colegio Técnico Profesional de Upala, AS: Agente de la Salud, AM:
Asesor de Matemáticas, LT: Longitud Tabú, LD: Longitud Diversificación.

En la instancia CTPU36, los nodos dados por el Ingeniero Matarrita están desple-

gados en el orden en que los recibidores fueron colocados, es por ello que el ahorro

no justifica que se vuelva a reestructurar el diseño del acueducto. Sin embargo, el

91
recorrido encontrado por el algoritmo, deja claro que es mejor al ya estructurado. Los

escenarios para la instancia se observan en la figura 8.14 y en la figura 8.15. Para que

este diseño sea tratado como un PAV se ha cerrado el ciclo, pero en la práctica es tal y

como se muestra en la figura 4.15.

En la instancia AM12 no se necesitaron muchas iteraciones para encontrar un reco-

rrido sastisfactorio, considerando que el tamaño de la instancia es mayor a Ciudad del

Carmen (De los Cobos, 2010). Los escenarios para la instancia se observan en la figura

4.10 y en la figura 4.14.

En la instancia para el Agente de Salud, hubo la necesidad de dar dos soluciones

para el PAV, uno para la vía aérea y otro para la vía terrestre. Recordando que el puente

que comunica a Quebradon-México, México-Santa Clara y Delicias-Santa Clara está en

construcción.

92
Capítulo 5

Conclusiones y Recomendaciones

5.1. Conclusiones

Con éste algoritmo se ha comprobado, lo que en la literatura se ha señalado so-

bre la búsquda tabú, en donde se menciona que las metaheurísticas pueden encontar

soluciones aproximadas a la óptima, en el problema del agente viajero. Cuya ventaja

radica en que son relativamente rápidos en su tiempo de ejecución y por consiguiente,

se convierte en un elección importante cuando el tiempo para encontrar una solución

es la restricción más importante.

El tipo de codificación para representar el PAV basado en éste algoritmo tabú garan-

tiza que los valores que se obtengan para la función objetivo sean de tipo determinís-

tico; por la estructura del mismo, se facilita la generación de soluciones vecinas y el

cálculo del valor de la función objetivo.

93
Se ha determinado el conjunto de parámetros iniciales (longitud tabú, número de

iteraciones y número de diversificaciones) que hacen que el método tenga un mejor

desempeño computacional para cada uno de los casos de prueba calibrándolos por

ensayo y error.

Se verificó la eficiencia de la técnica búsqueda tabú al compararlas con las mejores

respuestas reportadas en TSPLIB para los casos gr17, gr21, gr24, fri26, bayg29, gr48 y

Berlin52 siendo los más representativos los casos gr17 y fri26.

El tipo de codificación propuesta permite implementar otras técnicas metaheurís-

ticas tales como los Algoritmos Genéticos, Colonia de Hormigas o algoritmos híbridos

(BT y AG) que requieren de una adaptación a los métodos de búsqueda.

Desde el punto de vista práctico, el problema no está resuelto y desde el punto de

vista teórico, las técnicas empleadas son sólo aproximaciones. No suponen una resolu-

ción real del TSP y sólo ofrecen soluciones aproximadas suficientemente aceptables.

Hay una gran cantidad de problemas del mundo real que debido a su complejidad

no pueden ser resueltos por métodos analíticos por lo que se hace necesario el uso

de heurísticas y metaheurísticas para obtener soluciones aproximadas. En este caso,

se implementó en la distribución de tubos primarios para el abastecimiento de agua

y se observó que los resultados generados son mejores a cualquier solución aleatoria

que se proponga. La filosofía del algoritmo basado en la técnica búsqueda tabú no

es complicada, solamente necesita el contexto del problema y la historia del proceso.

Además, es flexible y puede ser aplicado a cualquier problema combinatorio en el que

94
se defina con claridad y precisión los elementos que intervienen.

A diferencia de otros trabajos, en la investigación aquí desarrollada se presenta la

búsqueda tabú como una alternativa para solucionar el problema del modelo básico,

cuando se trabaja con el criterio de minimizar la longitud total. Este problema ha

sido tratado por muchos autores, empleando para ello técnicas como la búsqueda lo-

cal, colonia de hormigas, algoritmos genéticos, métodos constructivos y enfriamiento

simulado; pero aplicado a otros criterios de ejecución.

Los resultados muestran que el algoritmo produce soluciones óptimas o cercanas al

óptimo en todas las instancias probadas. A pesar de que los experimentos con muchas

corridas no muestran diferencia significativa en las frecuencias de hallazgos del óptimo,

la prueba piloto (instancias aleatorias) muestra que los vecindarios generados por la

longitud tabú grande presenta los peores resultados y la longitud tabú igual a dos,

presenta un comportamiento superior en el valor de la función objetivo.

Buscando mejorar el desempeño computacional, se implementó el algoritmo en

lenguaje Visual Basic 6.0 y se observó que los tiempos de ejecución mejoran en gran

medida con respecto a Microsoft Excel 2003 (VBA).

Por último, dentro de los trabajos futuros podrían resolverse casos de prueba en

donde las condiciones del problema permitan importar datos del TSPLIB y hacer com-

binaciones con otros métodos de optimización estocástica; además, se podría hacer la

extensión del problema para explorarlo en paralello con más de un ornenador.

95
5.2. Recomendaciones
hn n i
Se recomienda que la longitud tabú esté en el intervalo 3; + 3 , donde n
2 2
representa la cantidad de nodos a visitar y que no sobrepasen más 10 diversifiacciones

por cada exploración.

De acuerdo a los resultados obtenidos al realizar las pruebas, se propone como

parte de una futura investigación, emplear técnicas enfocadas a la diversificación o la

exploración mediante un híbrido, con el ánimo de explorar regiones no analizadas.

Esto podría mejorar la calidad de las soluciones encontradas. Así mismo, a partir de la

estimación de un número de iteraciones sin mejorar que sea suficiente para llegar a la

solución óptima, es de interés evaluar la sensibilidad de este parámetro en la eficiencia

del algoritmo.

Con el fin de escapar de los óptimos locales, se propone implementar permutaciones

iniciales no naturales, para así, no alcanzar un valor crítico de iteraciones sin mejorar.

Respecto al criterio del número de iteraciones sin mejorar, los resultados del estudio

sugieren que se puede disminuir el valor de este parámetro sin afectar la calidad de las

soluciones encontradas.

Para el Instituto de Fomento y Asesoría Municipal (IFAM) se le recomienda actua-

lizar la información de la página web, sobre el cantón de Upala. Esto fue un punto

muy importante en la investigación ya que algunos puntos no aparecen en el mapa

(EBAIS de Popoyuapa y Liceo de Villa Nueva).

Al Hospital de Upala se le insta a tomar en cuenta los resultados mostrados en esta

96
investigación, en caso de un eventual brote epidémico o simplemente con el afán de

ahorar recursos cuando, se necesite realizar una gira cantonal.

A la Escuela de Matemática de la Universidad Nacional de Costa Rica se le invita

a reflexionar sobre el perfil profesional que desea formar. Considerando que nuestro

país no solo necesita profesores que se involucren en el mercado laboral, sino más

bien profesionales capaces de hacerle frente a las dificultades económicas en las que

estamos inmersos. Es por lo anterior que la Unidad Académica en cuestión debe pre-

ocuparse en fortalecer la enseñanza mediante el recurso tecnológico, la capacitación

en programación ( Visual Basic, LATEX, entre otros).

97
Bibliografía
Aho, A., Hopcroft, J. y Ullman, J. (1983). Data structures and algorithms. México: Addison-

Wesley (traducción castellana: Addison- Wesley Iberoamericana).

Answer Math.com. (n. d). Inteligencia Artificial, Algunas Definiciones. Obtenida el 27 de enero

del 2011, de http://www.answermath.com/inteligencia-artificial.htm.

Balcázar, J. (2008). Apuntes sobre el cálculo de la eficiencia de los algoritmos. Dep. Llenguat-

ges i Sistemas Informàtics. Manuscrito no pulicado.

Barros, H. (2006). Optimización de Ruteo de Vehículos Empleando Búsqueda Tabú. Bogotá:

Universidad de los Andes.

Belenguer, J. M. y Martínez, M. C. (2000). Búsqueda Tabú en Problemas de Rutas de Vehículos

con Demanda Compartida. Technical (Report 1-00). Universitat de Valencia.

Burr, D. J. (1988). An Improved Elastic Net Method for the Traveling Salesman Problem. IEEE

Conf. On Neural Networks, San Diego, 69-76. Disponible en

http://www.ing.unlp.edu.ar/cetad/mos/TSPBIB_home.html.

Castañeda, C. (2000). Estudio comparativo de diversos métodos de solución del problema del

agente viajero (PAV). Tesis de Maestría.en Ciencias con Especialidad en Ingeniería en

Sistemas Computacionales. Departamento de Ingeniería en Sistemas Computacionales,

Escuela de Ingeniería. México: Universidad de las Américas-Puebla.

Castro, J. L (2010) Complejidad Algorítmica. Depto. Ciencias de la Computación e Inteligencia

Artificial. Universidad de Granada. Disponible en

http://decsai.ugr.es/~castro/CA/node24.html

98
Chaudhry, S. y Luo, W. (2005). Application of genetic algorithms in production and oper-

ations management. A review. International Journal of Production Research, 43(19),

4083-4101.

De la Cruz, J. y Mendoza, A. (2003). Análisis comparativo de las aproximaciones heurísticas

Ant-Q, recocido simulado y búsqueda tabú en la solución del problema del agente

viajero. Grupo de Investigación en Sistemas Inteligentes, Ingeniería & Desarrollo de la

Universidad del Norte, 14, 141-157.

De los Cobos, S., Goddard, J., Gutiérrez, M. y Martínez A. (2010). Búsqueda y Exploración

Estocástica. México: Universidad Autónoma Metropolitana.

De los Cobos, S. y Gutiérrez, M. (1995). Lineamientos de implantación de la búsqueda tabú

para los problemas de calendarización. Memorias del IX Simposio Métodos Matemáticos

Aplicados a las Ciencias (p. ) Turrialba, Costa Rica.

De los Cobos, S. (1994). La técnica de la búsqueda tabú y sus aplicaciones. Tesis doctoral,

Posgrado de Ingeniería, México: Universidad Autónoma Metropolitana.

De los Cobos, S (1997). Programación Estocástica en Optimización, minicurso. Costa Rica: Edi-

ciones Castillo y Trejos.

Delgado, C. (1999). Uso de conjuntos de concentración en búsqueda tabú. Nuevas soluciones

para TSPLIB. Actas de la VII Jornada de ASEPMA, Valencia, 24 Septiembre de1999, p.

210-220.

Delgado, C., Pacheco, J. y Aragón.A. (2000). Diseño de algoritmos para el problema del trans-

porte escolar. Aplicación en la provincia de Burgos. Revista QÜESTIIÓ, 24(1), 55-82.

99
Burgos.

Eppen, G. (1987). Investigación de Operaciones en la Ciencia Administrativa. México: Prentice

Hall.

Figueroa, J. (2007). Una Solución Aproximada para un Problema Difícil. Tesis de Maestría en

Ciencia e Ingeniería de la Computación. México: Universidad Nacional Autónoma de

México.

Glover, F. (1989). Tabú Search: Part I. ORSA Journal on Computing, 1, 190-206.

Glover, F. (1990). Tabú Search: Part II. ORSA Journal on Computing, 2, 4-32.

Glover, F. (1993). Tabu Search: An Introduction. Annals of Operations Research, 41(1-4), 1-28.

Glover, F. y Melián, B. (2003). Búsqueda Tabú. Revista Iberoamericana de Inteligencia Artificial,

19, 29-48.

Glover, F. y M. Laguna. (1997). Tabu Search. Boston: KIuwer Academic Publishers.

Goldberg, D. (1989). Genetic Algorithms in search, Optimization and Machine Learning. México:

Addison-Wesley.

Gutiérrez, A, De los Cobos, S. y Pérez, R. (2005). Búsqueda Tabú: Un Procedimiento Heurístico

para Solucionar Problemas de Optimización Combinatoria. [Citado 10 de marzo del

2005]. Disponible en http:// www.azc.uammx/publicaciones/enlinea2/1-3.htm.

Jhonson, D. y Mcgeoch, L. (2002). Experimental analysis of the heuristics for the Symmetric

Traveling Salesman Problem. No publicado

Johnsonbaugh, R. (1986). Matematicas Discretas. EE. UU: Grupo Editorial Iberoamérica.

Kirkpatrick, S. (1983). Optimización by simulated annealing. Science, 220, 671-680.

100
Knuth, D. E. (1973). The art of computer programming 1: "Fundamental algorithms"(2a edi-

ción,traducción castellana.). México: Addison-Wesley.

Larrañaga, P. (1999) Algoritmos Genéticos Departamento de Ciencias de la Computación e In-

teligencia Artificial Universidad del País Vasco – Euskal Herriko Unibertsitatea. Disponible

en http://www.geocities.com/CapeCanaveral/9802/3d5ca000.htm

López, C. Mendoza, J. y Cuartas, E. (2008). Algoritmo para la exploración de todos los va-

lores posibles en el problema del agente viajero. Scientia et Technica, 39. (Universidad

Tecnológica de Colombia).

Martí, R. (2003). Procedimientos Metaheurísticos en Optimización Combinatoria. Matemà-

tiques, 1(1), 3-62

Melián, D., Perez, B. y Alvarez, J. (2003). Metaheurísticas: una visión global de Inteligencia

Artificial. Revista Iberoamericana de Inteligencia Artificial, 19, 7-28.

Morales, J. C. (1999). Algoritmos Genéticos. Universidad de los Andes, Departamento de Inge-

niería Industrial; Cll 1A No. 18A - 70 Bogotá, Colombia. Disponble en

http://www.cimat.mx/~horebeek/cursus/node35.html

Moscato, P. (1999). Pablo ’s Home. Page. Departamento de Electrotecnia, Facultad de Inge-

nieria, Universidad Nacional de La Plata. Argentina. Disponible en

http://cswww.essex.ac.uk/CSP/gls-tsp/gls-tsp.html.

Nieto, P. (2005). El trabajo de un Asesor de Educación Secundaria en el Área de Matemáticas.

La Gaceta, 330-338. (Sevilla, Italia).

Nilsson, C (2003). Heurislics for the Traveling Salesman Problem. EE.UU: Linkaping University.

101
Nilson, N. (1987). Principios de Inteligencia Artificial. México: Díaz de Santos S.A.

Osman, I. (1993). Metastrategy simulated annealing and tabu search algorithms for the vehi-

cle routing problem. Annals of Operations Research, 421- 451.

Reinelt, G. (2004). TSPLIB, Travelling Salesman Problem, Universitat Heidelberg. Disponible

en http://www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95.

Reingold E. y Nievergelt J. (1997). Combinatorial Algorithms Theory and Practice. New Jersey:

Prentice-Hall.

Reyes, A. (1997). Un ejemplo de Optimización de Funciones por Medio del Algoritmo Ariad’s

Clew : El caso del Problema del Agente Viajero. Tesis de Maestría. Universidad de las

Américas. Puebla: Departamento de Ingeniería en Sistemas Computacionales.

Rodriguez, C. (2008). Visual Basic 6.0: Orientado a Bases de Datos (Segunda edición). Grupo

Experto Bucarelly.

Ríos, R. y González, J. (2000). Investigación de operaciones en acción: Heurísticas para la

solución del Problema del Agente Viajero. Ingenierías, 3, 9-10.

Rudomín, I. (1995). Algoritmos Genéticos para Compresión Fractal de Imágenes. Disponible

en http://journey.cem.itesm.mx/compresiondemo.html.

Soto, D. (2008). Una metaheurística híbrida aplicada a un problema de planificación de rutas.

Revista Avances en Sistemas e Informática, 5(3). (Colombia).

Stinson, D. (1987). An Introduction to the Design and Analysis of Algorithms (Second Edition,

Revised). Canada: Winnipeg Manitoba.

Varela M. R. (1996). Diseño de una Heurística para el tratamiento del Problema del Agente

102
Viajero. Tesis de Maestría, Universidad de las Américas Puebla, Departamento de Inge-

niería en Sistemas Computacionales.

Velasquez, J. (2008). Algoritmo Genético para el Agente Viajero. Grupo de Inteligencia Artifi-

cial. Disponible en http://velasquez-berru.blogspot.com/.

Villalobos, M., Trejos, J. y De los Cobos S. (2006). Aplicación de la Búsqueda Tabú en Regre-

sión no Lineal. Revista de Matemáticas: Teoría y Aplicaciones, 13(1), 81-89. (San José,

Costa Rica).

Vitanyi, P. M., y Meertens, T. (1983). Big omega versus the wild functions, Stitching Mathema-

tisch Centrum Amsterdam, 23(9), 83.

Wilf, H. S. (1986). Algorithms and Complexity. México: Prentice Hall.

103

También podría gustarte