Grafos Hamiltoniano

November 22, 2018 | Author: Israel Carrillo | Category: Graph Theory, Discrete Mathematics, Theoretical Computer Science, Mathematical Relations, Mathematics
Share Embed Donate


Short Description

Download Grafos Hamiltoniano...

Description

Gregorio Hernández Peñalver  Facultad de Informática, UPM

Teoría de Grafos

GRAFOS HAMILTONIANOS Definiciones Un camino hamiltoniano en un grafo es un camino que contiene a todos los vértices del grafo exactamente una vez (salvo v 0 =vn , si el camino es cerrado). Un grafo hamiltoniano es aquel que contiene un ciclo hamiltoniano.

A pesar de la aparente analogía entre grafos eulerianos y hamiltonianos, hay profundas diferencias en su estudio. La fundamental es que no se conoce ninguna caracterización para los grafos hamiltonianos. Veamos en primer lugar un par de condiciones necesarias, la primera de ellas válida sólo para grafos  bipartidos.  bipar tidos. Teorema Si el grafo bipartido G=(V1 ∪ V2 , A) es hamiltoniano entonces

 V1= V2

Teorema Si G es un grafo hamiltoniano entonces, para todo S⊂ V se cumple que el número de componentes conexas de G − S, es menor o igual que S.

Esta condición necesaria no es suficiente para asegurar que el grafo sea hamiltoniano. El grafo de Petersen la cumple pero no es hamiltoniano

S

Los siguientes resultados resultados proporcionan condiciones suficientes suficientes para asegurar la hamiltonicidad. hamiltonicidad. Sin embargo, hay grafos hamiltonianos, como Cn , que no las cumplen. Teorema (Ore) Sea G un grafo simple de n vértices (n ≥3). Si para todo par de vértices x e y no adyacentes se cumple que d(x)+d(y) ≥ ≥ n , entonces G es hamiltoniano. Corolario Corolario (Dirac ) Sea G un grafo simple de orden n ≥3 y tal que d(v)≥n/2

∀v ∈ V(G). Entonces G es hamiltoniano.

CÓDIGOS DE GRAY Consideremos el alfabeto I={0,1} y las 2n palabras de longitud n que se pueden formar con las letras de este alfabeto. Un código de Gray de orden n es una ordenación de esas 2n palabras tal que palabras consecutivas difieren en un sólo dígito. Por ejemplo, {000, 100, 110,010, 0111, 111, 101, 001, 000} es un código de Gray de orden 3. Recordemos la construcción de los grafos n-cubos (Qn es el grafo cuyo conjunto de vértices es el de las cadenas de longitud n de 0's y 1's, y donde dos vértices son adyacentes si las correspondientes cadenas difieren sólo en un dígito). Con esto resulta que un código de Gray de orden n corresponde a un ciclo hamiltoniano en Qn . 011

111

001 101

010

000

Un ciclo hamiltoniano en Q 3 110

100

1

Gregorio Hernández Peñalver  Facultad de Informática, UPM

Teoría de Grafos

La existencia de códigos de Gray de todos los órdenes es así equivalente a que los grafos Qn sean hamiltonianos. Veamos, gráficamente, la construcción del código de Gray de orden 3 a partir del código de orden 2.

01

011

11

111

001 00

101

10 01

00

11

010

10

000

110 100

Teorema El grafo n-cubo Qn es hamiltoniano para todo n>1  Dem. Q2 es hamiltoniano pues es un 4-ciclo. Si Q n es hamiltoniano entonces existe un ciclo hamiltoniano que

designamos

por

n

. El ciclo hamiltoniano que buscamos para Qn+1 es

n

n

n

Transmisión de fotografías desde un satélite Las fotografías se transmiten a la Tierra por medio de largas sucesiones de números, cada uno de los cuales indica el color (o el grado de gris, si la foto es en blanco y negro) de uno los pixeles de la foto. Si,  por ejemplo, se dispone d e una escala de grises de 1 a 8 (el 1 es el b lanco y el 8 el negro) y un pixel está marcado con el valor 5, su código de Gray es el 011. Al transmitir la señal 011 las interferencias pueden cambiar algún dígito y transformarla en 010, que corresponde al valor 4 de gris por lo que la foto no se alterará sustancialmente. Así pues, la ventaja de la utilización de los códigos de Gray es que permiten codificar las fotos de forma que los errores de transmisión causados por interferencias no alteran esencialmente las fotos enviadas.

Problema del viajante Un viajante de comercio desea visitar n ciudades volviendo al punto de partida. ¿Qué ruta debe seguir   para minimizar la distancia total recorrida? Esta cuestión se conoce con el nombre de Problema del viajante (Travelling Salesman Problem) y tiene una clara interpretación en términos de grafos. Sea G el grafo ponderado y conexo cuyos vértices vi representan las ciudades a visitar, y donde el peso w ij de la arista v i v j indica la distancia recorrida para viajar directamente desde v i hasta v j . Podemos suponer que el grafo G es completo, pues si no hay ruta directa entre v i y v j podemos definir wij =dist(v i , v j ). El Problema del viajante pregunta por un ciclo hamiltoniano de mínimo peso. Un algoritmo obvio para resolver este problema consiste en calcular el peso de todos los ciclos hamiltonianos del grafo G. Pero el número de estos ciclos es (n-1)!/2, por lo este algoritmo no es eficiente. (Por ejemplo, para n=50 una computadora que realice 108 operaciones por segundo, tardaría 1049 años en calcular el peso de todos los ciclos de G). Y más aún, se puede probar que el problema del viajante es NP-completo. Presentamos a continuación tres algoritmos eficientes que obtienen ciclos hamiltonianos de peso cercano al mínimo. En estos algoritmos, asumimos que los pesos de las aristas satisfacen la desigualdad triangular, es decir, wik ≤wij +w jk . Esta hipótesis adicional es totalmente razonable.

2

Gregorio Hernández Peñalver  Facultad de Informática, UPM

Teoría de Grafos

Algoritmos aproximados Un algoritmo aproximado para un problema de optimización es un algoritmo que alcanza una solución del  problema pero que no garantiza la solución óptima. ¿Cómo medir cuánto nos acercamos a ella? Si S* es la solución óptima con un coste c(S*), un algoritmo δ-aproximado es un algoritmo que devuelve una solución S tal que c(S) ≤ δ c(S*) (para un problema de minimización) c(S*) ≤ δ c(S) (para un problema de maximización)

Algoritmo de inserción (2-aproximación) En este algoritmo insertamos en un ciclo de longitud k un nuevo vértice con la condición de que la arista que lo une al ciclo sea la de menor peso. Consideraremos K 1 y K 2 como ciclos degenerados.  Entrada: Un grafo G, completo y ponderado, satisfaciendo la desigualdad triangular  Salida: Un ciclo hamiltoniano de peso “bajo”. Paso 1: Elegir cualquier vértice y considerarlo como un 1-ciclo C1 de G. Tomar i=1 Paso 2: Si i=n, entonces FIN, pues C=Cn es el ciclo buscado. En caso contrario buscamos un vértice x, no del ciclo Ci , tal que el peso de la arista xz (con z sí en el ciclo Ci ) sea mínimo. Paso 3: Sea Ci+1 el ciclo de longitud i+1 obtenido al insertar el vértice x inmediatamente antes de z en C i . Hacemos i=i+1 y volvemos al paso 2. Teorema El algoritmo anterior obtiene un ciclo hamiltoniano cuyo peso es menor que dos veces el peso de un ciclo hamiltoniano de peso mínimo. Análisis de la complejidad El paso 2 es el fundamental en el análisis y se repite n veces. ¿Cuál es el coste cada vez?. Si se ha construido Ci , se debe hallar la arista de menor peso entre i(n-i) aristas. Como i(n-i)
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF