Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MATEMÁTICAS DISCRETAS.
FACULTAD DE INGENIERÍA.
SEMESTRE IV.
Coloreados de grafos.
En Teoría de grafos, la coloración de grafos es un caso especial de etiquetado de
grafos; es una asignación de etiquetas llamadas colores a elementos del grafo. De
manera simple, una coloración de los vértices de un grafo tal que ningún vértice
adyacente comparta el mismo color es llamado vértice coloración. Similarmente, una
arista coloración asigna colores a cada arista talque aristas adyacentes no compartan
el mismo color, y una coloración de caras de un grafo plano a la asignación de un color
a cada cara o región tal que caras que compartan una frontera común tengan colores
diferentes. El vértice coloración es el punto de inicio de la coloración, y los otros
problemas de coloreo pueden ser transformados a una versión con vértices. Por
ejemplo, una arista coloración de un grafo es justamente una vértice coloración del
grafo línea respectivo, y una coloración de caras de un grafo plano es una vértice
coloración del grafo dual.
ALGORITMOS HEURÍSTICOS PARA EL COLOREADO DE GRAFOS
Se trata de colorear los nodos de un grafo de forma que no haya dos nodos adyacentes
del mismo color, utilizando el mínimo número de colores posible.
Los siguientes algoritmos solucionan el problema del coloreado de grafos:
Algoritmo Secuencial o Voraz.
Este algoritmo sigue una estrategia voraz, es decir comienza la coloración de los
vértices según orden de los éstos en la matriz de adyacencias del grafo. La coloración
se realiza siguiendo los siguientes pasos.
Algoritmos de grafos.
Existen un sin número de algoritmos de grados o que hacen uso de estos, entre los
cuales podemos encontrar los siguientes.
Algoritmo de Bellman-Ford
Algoritmo de Boruvka
Algoritmo de búsqueda A*
Algoritmo de Christofides
Algoritmo de Cuthill-McKee
Algoritmo de Dijkstra
Algoritmo de Edmond
Algoritmo de Emparejamiento de Edmonds
Algoritmo de Floyd-Warshall
Algoritmo de Johnson
Algoritmo de Prim
Algoritmo de propagación de creencias
Algoritmo del vecino más próximo
Algoritmos de búsqueda en grafos
Algoritmo de Dinic
Algoritmo de Edmonds-Karp
Algoritmo de Ford-Fulkerson
Algoritmo de Kruskal
El problema del agente viajero.
El problema del agente viajero responde a la siguiente pregunta: dada una lista de
ciudades y las distancias entre cada par de ellas, ¿cuál es la ruta más corta posible que
visita cada ciudad exactamente una vez y al finalizar regresa a la ciudad origen? Este es
un problema NP-Hard dentro en la optimización combinatoria, muy importante en
investigación operativa y en ciencias de la computación.
El problema fue formulado por primera vez en 1930 y es uno de los problemas de
optimización más estudiados. Es usado como prueba para muchos métodos de
optimización. Aunque el problema es computacionalmente complejo, se conoce gran
cantidad de heurísticas y métodos exactos, así que es posible resolver planteamientos
concretos del problema desde cien hasta miles de ciudades.
El TSP tiene diversas aplicaciones aún en su formulación más simple, tales como: la
planificación, la logística y la fabricación de circuitos electrónicos. Un poco modificado,
aparece como subproblema en muchos campos como la secuenciación de ADN. En
esta aplicación, el concepto de “ciudad” representa, por ejemplo: clientes, puntos de
soldadura o fragmentos de ADN y el concepto de “distancia” representa el tiempo de
viaje o costo, o una medida de similitud entre los fragmentos de ADN. En muchas
aplicaciones, restricciones adicionales como el límite de recurso o las ventanas de
tiempo hacen el problema considerablemente difícil. El TSP es un caso especial de los
Problemas del Comprador Viajante (travelling purchaser problem).
En la teoría de la complejidad computacional, la versión de decisión del TSP (donde,
dada una longitud “L”, el objetivo es decidir si el grafo tiene un camino menor o igual
que L) pertenece a la clase de los problemas NP-completos. Por tanto, es probable que
en el caso peor el tiempo de ejecución para cualquier algoritmo que resuelva el TSP
aumente de forma exponencial con respecto al número de ciudades.
Descripción de TSP
Se tiene un número de nodos (ciudades, localidades, tiendas, empresas, etc.) que
deben ser visitados por una entidad (persona, agente viajero, automotor, avión,
autobús, etc.), sin visitar 2 veces el mismo nodo. Si tenemos 3 nodos (a, b y c) por
visitar, entonces tendríamos una función de combinaciones sin repetición c(3,2), es
decir, tendríamos 6 posibles soluciones: abc, acb, bac, bca, cab, cba, para el caso de 4
nodos tendríamos 12 combinaciones, para 10 nodos tendríamos 90 combinaciones,
para 100 ciudades tendríamos 9,900 combinaciones y así sucesivamente. Como
ejemplo en el problema del Ulises de Homero que intenta visitar las ciudades descritas
en la Odisea exactamente una vez (16 ciudades) donde existen múltiples conexiones
entre las diferentes ciudades, Grötschel y Padberg (1993) llegó a la conclusión de que
existen 653,837’184,000 rutas distintas para la solución de este problema.
Algoritmo base
El Problema del Agente Viajero (TSP), es considerado como un conjunto de grafos
cuyas aristas son los posibles caminos que puede seguir la entidad para visitar todos
los nodos (Öncan et al., 2009), y cuyo algoritmo se puede representar de la siguiente
manera:
Definir el número de nodos, su posición y el costo por cada arista (i, j) donde i =
ciudad 1 y j = ciudad 2
Elegir el nodo inicial i
Hacer
Si el nodo más cercano no se ha visitado
Visitar nodo j
Actualizar lista de nodos visitados
Costo_total = costo_total + costoij
Nodo i = nodo j
Hasta haber visitado todos los nodos
Características de TSP
TSP se encuentra clasificado como Problema de optimización Combinatoria, es decir,
es un problema donde intervienen cierto número de variables donde cada variable
puede tener N diferentes valores y cuyo número de combinaciones es de carácter
exponencial, lo que da lugar a múltiples soluciones óptimas (soluciones que se calculan
en un tiempo finito) para una instancia.
TSP es un problema considerado difícil de resolver, denominándose en lenguaje
computacional NP-Completo, es decir, es un problema para el que no podemos
garantizar que se encontrará la mejor solución en un tiempo de cómputo razonable.
Para dar solución se emplean diferentes métodos, entre los cuales, los principales se
denominan heurísticas cuyo objetivo es generar soluciones de buena calidad en
tiempos de cómputo mucho más pequeños (soluciones óptimas tiempo – respuesta).
Las variables que han sido empleadas por la mayoría de los investigadores que dan
solución a TSP son: