La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Coloreado de Mapas con Backtracking

Presentaciones similares


Presentación del tema: "Coloreado de Mapas con Backtracking"— Transcripción de la presentación:

1 Coloreado de Mapas con Backtracking

2 ¿ Que es Backtracking ? Técnica general de resolución de problemas, que suele aplicarse sobre todo a juegos y problemas de óptimización. Realiza una búsqueda exhaustiva y sistemática en el espacio de soluciones del problema. La solución de un problema de backtracking se puede expresar como una tupla (x1,x2,…,xn), que satisface una restricciones R(x1,x2,…,xn) y a veces optimizando una función objetivo.

3 En cada momento el algoritmo se encontrará en un cierto nivel k, con una solución parcial (x1,x2,…,xk) (con k<=n). Si puede añadirse un elemento xk+1 a la solución parcial se avanza al nivel k+1. Si no se prueban otros valores válidos para xk. Si no existe ningún valor que sea válido por probar, se retrocede al nivel anterior k-1. Se continua con este proceso hasta que la solución parcial sea una solución del problema o hasta que no queden más posibilidades por probar (en el caso de que no se encuentre ninguna solución o se busquen todas las soluciones del problema).

4 Backtracking En definitiva, el algoritmo realiza una búsqueda primero en profundidad (DFS) en el árbol de soluciones del problema. 1 x1 2 10 14 x2 3 6 7 11 12 15 16 x3 4 5 8 9 13 17 18

5 Backtracking. Complejidad
Por realizar una búsqueda exhaustiva en el espacio de soluciones del problema, los algoritmos de backtracking son bastante ineficientes. En general, se tienen tiempos con órdenes de complejidad factoriales o exponenciales. Por esto, los algoritmos de backtracking se utilizan en problemas para los que no existen un algoritmo eficiente que los resuelva.

6 Algoritmos De Backtracking
La filosofía de estos algoritmos no sigue unas reglas fijas en la búsqueda de las soluciones. Podríamos hablar de un proceso de prueba y error en el cual se va trabajando por etapas construyendo gradualmente una solución. Para muchos problemas esta prueba en cada etapa crece de una manera exponencial, lo cual es necesario evitar.

7 Coloreado de Mapas El teorema de los cuatro colores consiste básicamente, en que cualquier mapa puede ser coloreado solamente con cuatro colores distintos de tal manera que dos regiones adyacentes (es decir, que tienen una frontera en común y no sólo un punto) no tengan el mismo color. Aunque parece un problema no matemático, sin embargo lo es y su demostración no es nada sencilla, ha costado mucho esfuerzo y 125 años el conseguirlo.

8 Mapa de Estados Unidos Coloreado con Cuatro Colores

9 Mapa de España con Cuatro Colores

10 El comienzo Como tantos otros problemas matemáticos, comenzó de una manera casual. En 1850 un inglés estudiante de leyes, Francis Guthrie se entretenía intentando colorear el mapa de Inglaterra utilizando la menor cantidad de colores posibles e intentó hacerlo con sólo cuatro colores sin conseguirlo, pero tenía la intuición de que se podía hacer. Le contó a su hermano Frederick su problema. Frederick había estudiado con un prestigioso matemático inglés de la época llamado De Morgan, que no supo solucionar el problema. De Morgan le envió una carta  a Hamilton (otro matemático inglés importante) que no abordó el problema .      

11 El caso es que el problema de los cuatro colores empezó a adquirir fama de tal forma que en 1878 el profesor Cayley lo propuso oficialmente a la London Mathematical Society (una de las sociedades de matemáticos más importantes del mundo) como un problema a resolver. Al poco tiempo A. B. Kempe propuso una demostración que publicó en Esta demostración fue, en principio, aceptada y dio mucha fama a Kempe, hasta que Heawood descubrió en 1890, 11 años después, que la demostración de Kempe tenía un error, Heawood siguió trabajando en el problema pero no lo solucionó, sin embargo consiguió probar que con cinco colores si se podía colorear cualquier mapa. También se supo que tres colores no eran suficientes, de modo que sólo quedaba por probar o refutar los cuatro colores. El problema siguió dando vueltas. Algunos matemáticos pensaron incluso, que no todo mapa se podía colorear con cuatro colores.  

12 La prueba ¡Por fin!, en 1976 Appel  y Haken dieron una prueba del teorema. Demostraron mediante un complicado programa de ordenador que, efectivamente cuatro colores eran suficientes para colorear cualquier mapa . De nuevo surgieron objeciones. El proceso del ordenador, es decir los pasos internos del ordenador no podían seguirse ni comprobarse cuando la máquina los hacía; y para verificarlos "a mano", eran tantos, que habría  hecho falta toda una vida para realizarlos. De modo que algunos matemáticos han tenido muchas reservas con respecto a esta demostración. Por último, en 1996, Neil Robertson; Daniel P. Sanders; Paul Seymour y Robin Thomas, de la Escuela de Matemáticas del Georgia Institute of Technology de Estados Unidos, publicaron una nueva prueba que no tenía los inconvenientes de la demostración de Appel y Haken

13 El Coloreado de Mapas Dado un grafo conexo y un número m > 0, llamamos colorear el grafo a asignar un número i (1 ≤ i ≤ m) a cada vértice, de forma que dos vértices adyacentes nunca tengan asignados números iguales. Deseamos implementar un algoritmo que coloree un grafo dado.

14 Solución El nombre de este problema proviene de un problema clásico, el del coloreado de mapas en el plano. Para resolverlo se utilizan grafos puesto que un mapa puede ser representado por un grafo conexo. Cada vértice corresponde a un país y cada arco entre dos vértices indica que los dos países son vecinos. Desde el siglo XVII ya se conoce que con cuatro colores basta para colorear cualquier mapa planar, pero sin embargo existen situaciones en donde no nos importa el número de colores que se utilicen. Para implementar un algoritmo de Vuelta Atrás, la solución al problema puede expresarse como una n-tupla de valores X = [x1, x2, ..., xn] donde xi representa el color del i-ésimo vértice. El algoritmo que resuelve el problema trabajará por etapas, asignando en cada etapa k un color (entre 1 y m) al vértice k-ésimo. En primer lugar, y para un grafo con n vértices y con m colores, el algoritmo que encuentra una solución al problema es el siguiente:

15 CONST n = ...; (* numero de vertices *)
m = ...; (* numero maximo de colores *) TYPE GRAFO=ARRAY[1..n],[1..n]OF BOOLEAN; (* matriz adyacencia *) SOLUCION = ARRAY [1..n] OF CARDINAL; VAR g:GRAFO; X:SOLUCION; exito:BOOLEAN PROCEDURE Colorear1(k:CARDINAL); (* busca una posible solucion *) BEGIN X[k]:=0; REPEAT INC(X[k]); IF Aceptable(k) THEN IF k<n THEN Colorear1(k+1) ELSE exito:=TRUE END UNTIL (exito) OR (X[k]=m) END Colorear1;

16 La función Aceptable es la que comprueba las restricción definida para este Problema, que consiste en que dos países vecinos (vértices adyacentes) no pueden tener el mismo color: PROCEDURE Aceptable(k: CARDINAL): BOOLEAN; VAR j: CARDINAL; BEGIN FOR j:=1 TO k-1 DO IF (g[k,j]) AND (X[k]=X[j]) THEN RETURN FALSE END END; RETURN TRUE END Aceptable;

17 El programa principal del algoritmo ha de invocar a la función Colorear1 como sigue:
... exito:=FALSE; Colorear1(1); IF exito THEN ComunicarSolucion(X)

18 Algoritmo de Coloreado con Cuatro Colores
proc CUATRO_COLORES(k) si k = n entonces -- tenemos las solución imprimir color(1..n) si no para C en 1..4 hacer color(k+1):= C si es_aceptable(F(1..n, 1..n), color, k+1) entonces CUATRO_COLORES(k+1) fsi fpara fin CUATRO_COLORES

19 función es_aceptable(F, color, último) devuelve boolean
acept:= true pais:= 1 mientras pais < último y acept hacer si F(pais, último) y color(pais)=color(último) entonces acept:= false fsi pais:= pais + 1 fmientras devolver acept fin es_aceptable

20 Limitaciones de la solución
Las limitaciones de la implementación en netbeans son, que sólo se utilizan cuatro colores simplemente para el coloreado del mapa. La teoría dice que algunos mapas son coloreables con tan solo tres colores, sin embargo esta implementación sólo muestra el coloreado con cuatro colores. Además de lo ya citado, otra limitación del algoritmo en si, es que para problemas grandes, en este caso, para matrices grandes, el tiempo utilizado en su resolución se dispara. También, por el modo de implementación de la solución, no se podrán tratar formas de forma triangular o similares. Las matrices implementadas han de ser de forma cuadrada o rectangular.

21 Complejidad El problema del coloreado de mapas se resuelve mediante el uso de una matriz que representará un mapa. Los tiempos obtenidos en el algoritmo coloreado de mapas son: Tamaños Tiempos 1x2 251 4x5 250 100x100 270 2000x4000 1733

22 Arból de Expansión para el Coloreado

23 Análisis de Complejidad para coloreado con Cuatro Colores
Cada ensayo tiene cuatro posibles extensiones y la longitud de los ensayos es n. Por lo tanto, el número de nodos del árbol de ensayos está acotado superiormente por: n = (4n+1 − 1) / 3 Є O(4n ) Para cada nodo, hay que realizar las siguientes tareas: - construirlo - extenderlo - ver si es aceptable

24 Las dos primeras tareas son de orden constante
Las dos primeras tareas son de orden constante. El comprobar si es aceptable, no. En el caso peor, hay que visitar los k componentes del vector color que componen el ensayo en curso. Es decir, la función es_aceptable tiene un coste temporal de O(n). En consecuencia, en el caso peor, la función de coste temporal de CUATRO_COLORES cuando el mapa tiene n países es de orden O(n4n ) .


Descargar ppt "Coloreado de Mapas con Backtracking"

Presentaciones similares


Anuncios Google