Autor Tema: ¿Teorema? de los 4 colores

0 Usuarios y 1 Visitante están viendo este tema.

09 Enero, 2012, 08:00 pm
Respuesta #30

gaizka

  • $$\Large \color{#6a84c0}\pi$$
  • Mensajes: 4
  • Karma: +0/-0
Jabato:

Mi conclusión es la misma que la del dichoso ordenador, es decir que con cuatro colores basta.

Lo digo porque en tu último comentario pareces querer decir que estuviera afirmando lo contrario.

Seguiré pensándolo y buscando datos por ahí  :banghead:

Saludos.

09 Enero, 2012, 09:54 pm
Respuesta #31

Jabato

  • Visitante
No, no, la parte incorrecta (en mi opinión) de tu parecer no es esa, la parte que yo rechazo de tu opinión es la que afirma que demostrar el teorema de los cuatro colores es muy sencillo. Pero resulta que no, que no lo es. Tu llegas a la conclusión de que cuatro colores son suficientes, y yo te lo acepto, también afirmas que cualquier mapa vale, y eso no es verdad, cualquier mapa no vale, debe ser un mapa normal y además plano entre otras cosas, y por último das un razonamiento por el que concluyes la veracidad del teorema, pero no, no puede resumirse en dos párrafos una demostración como esa. Ya te lo digo, lee un poco más sobre el teorema, yo no he leído recientemente gran cosa sobre el asunto pero hace ya tiempo, cuando se publicó la demostración en un artículo de la revista Investigación y Ciencia, tuve ocasión de documentarme a fondo y te puedo asegurar que no, que demostrar ese teorema no se hace en la forma que tu propones ni nada que se le parezca, es algo bastante más complicado.

Saludos, Jabato. ;D

10 Enero, 2012, 12:22 pm
Respuesta #32

Elius

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 399
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino
Jabato:

Mi conclusión es la misma que la del dichoso ordenador, es decir que con cuatro colores basta.

Lo digo porque en tu último comentario pareces querer decir que estuviera afirmando lo contrario.

Seguiré pensándolo y buscando datos por ahí  :banghead:

Saludos.
gaizka,
me encanta encontrar otro kamikaze que se enfrenta a este problema, e intenta "lo imposible".

Si lees el tercer mensaje del hilo, allí propongo abandonar la estrategia que se sigue habitualmente, que es considerar un grafo cualquiera y demostrar que es reductible.
Lo que sugiero es un algoritmo que ordene los nodos de un grafo arbitrario, de tal manera que para cada nodo aún no coloreado, existan sólo 3 de orden inferior relacionados con él. Y en el caso en que existan 4, como no están todos relacionados entre sí, puede repetirse un color.

Saludos!


10 Enero, 2012, 12:53 pm
Respuesta #33

Jabato

  • Visitante
¿Y en el caso de que haya nodos que se relacionen con 50 ó 100 nodos distintos? es posible que eso ocurra, ¿no?


10 Enero, 2012, 01:12 pm
Respuesta #34

feriva

  • $$\Large \color{#a53f54}\pi\,\pi\,\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 11,339
  • País: es
  • Karma: +1/-0
  • Sexo: Masculino
Cita de: Elius link=topic=51122.msg212948#msg212948

me encanta encontrar otro kamikaze que se enfrenta a este problema, e intenta "lo imposible".


Hola, Elius. Opino que todo lo que sea pensar en un problema abierto -y resolver este problema a mano lo es- no es nunca perder el tiempo del todo; ahora bien, por lo menos desde el punto de vista del álgebra analítica, tiene una pinta tremenda de ser horrorosamente difícil  :laugh:

Saludos.

10 Enero, 2012, 07:38 pm
Respuesta #35

Elius

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 399
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino
Bueno, he hecho un algoritmo que no he posteado porque buscaba una demostración completa, pero ahora creo que sería mejor mostrar el algoritmo, y buscar la demo en conjunto.

1. DESCRIPCION DATOS INICIALES

Se recibe una matriz de relación por cada nivel con el inmediato superior.
Es triangular superior, pues si el nodo L1 en $niv está relacionado con el L2 en $niv+1, y L3>L1, en $niv, no puede estar relacionado con ningún nodo tal que L4 < L2, porque se cruzarían las aristas.
Esas matrices pueden representar todo grafo plano posible. Se supone sin pérdida de generalidad, que el grafo es una triangulación del plano, porque si no lo es, lo probado para la triangulación es válido para cualquier grafo que se obtenga suprimiendo aristas, pues los nodos involucrados tendrían menos relaciones, esto es, no crecería la cantidad de colores que se relacionan.

2. PLAN DE LA DEMOSTRACIÓN

El orden en que el algoritmo recorre los nodos es tal que, un nodo particular sólo está relacionado con tres nodos de orden inferior:
a) uno en el nivel inferior (siempre existe, pues de otra manera no pertenecería al nivel), SOLO HAY UNO DE ORDEN INFERIOR
b) otro en el nivel superior (eventual), y (OJO QUE PUEDE HABER 2 SI SE MARCAN ANTES LOS ENTREPISOS, pero en este caso se puede repetir un color)
c) otro en el mismo nivel, con latitud inferior. Puede tener una arista con latitud superior en el mismo nivel, y orden inferior, pero en ese caso, no tiene relaciones en el nivel superior, porque está solapado bajo una arista que relaciona un nodo de latitud inferior a la suya, con otro que tiene una latitud superior a la de él, en el mismo nivel.

Un nodo sólo puede estar relacionado con otros del nivel inmediato superior o inferior, o de su propio nivel. Supongamos que nod1 en nivel1 está relacionado con nod2 en nivel1+2. Esto significaría que hay un camino desde nod2 hasta el nodo raíz de longitud nivel1+1, con lo cual nod2 no pertenece al nivel1+2 sino a nivel1+1.

Fselect() es una función no codifica aún, que lo que tiene es una arreglo con los colores de los nodos relacionados con newnodo que tienen un orden menor. La función va tomando los colores y se fija si están en el arreglo, si es así, continúa, si no está, se lo asigna a newnodo.

El algoritmo está en awk, un lenguaje interpretado que suele usarse en Unix para procesar texto, y es similar a C.

Es algo engorroso para leer, sé que no tiene suficientes comentarios, pero para las tardes de domingo lluviosas y sin compañía, suele ser un buen rompedero de cabezas ja ja ja!

Saludos!



function explore(nodo)
{
    termnod=nodo; //* termnod: si es nodo terminal, lo retorna, si no,
                  //* lo pisa en cada llamada
    niv=nodo.nivel;
    lat=nodo.latitud;
    ord[nodo]=nord++;
   
      for ( l=minlat[niv+1]; l<maxlat[niv+1]; l++ )
      {   
         /* Exploración nivel superior */
         if ( rel[niv, lat, niv+1, l]==true )
        {
            //* Si hay una arista entre <niv,lat> y <niv+1,l> ...
            newnodo.nivel=niv+1;
            newnodo.latitud=l;
            minlat[niv+1]=l+1; //* No puede haber relaciones con latitud
                               //* menor, porque se cruzarían las aristas
               
            if ( ord[newnodo]==null ){
               //* Si newnodo aún no fué explorado...
               pre[newnodo]=termnod;
                  
               sig[termnod]=newnodo; //<<@j0 * ver cómo reportar el sig.
                                     //* del último de una rama
               
               ord[newnodo]=nrord++;
               
               testear_entrepiso(newnodo);
               
               color[newnodo] = Fselect(newnodo);
               
               termnod=explore(newnodo);
            } //* Fin if ( pre[newnodo]==null )
            
         } //* Fin if ( rel[niv, lat, niv+1, l]==true )
   
      } //* Fin for niv+1
   
      sig[termnod]=nodo; //* ¿Podría llegar a ser el mismo?
      
      return(termnod);
   
} //* Fin explore()

testear_entrepiso( nodo )
{
     /* Exploración 2do. nivel actual hasta latitud actual en ese nivel
      ** partiendo desde el extremo más lejano, y marcando uno solo */
      /* Esto podría ir arriba por los entrepisos */
      for (l=maxlat[niv+1]; l>l.punto_de_llamada+1; l--)
      {
         if ( rel[niv+1, lat, niv+1, l]==true &&
           rel[niv, lat, niv, l]==true)
      {
         
            newnodo.nivel=niv;
            newnodo.latitud=l;

            //* Si newnodo aún no fué explorado...
            if ( pre[newnodo]==null ){
               pre[newnodo]=termnod;
                  
               sig[termnod]=newnodo; //<<@j0 * ver cómo reportar el sig.
                                     //del último de una rama
               
               ord[newnodo]=nrord++;
                                
               termnod=explore(newnodo);
            } //* Fin if ( pre[newnodo]==null )
            
            break; //* Hallada una arista = nivel y no adyacente, no sigue
                   //* explorando                
        } //* Fin if ( rel[niv, lat, niv, l]==true )
         
      } //* Fin for nivel actual
}

//* Carga matriz de relación
load_matrel();

//* Nodo inicial
nodo.nivel=0;
nodo.latitud=0;
nrord=1;

//* Explora a partir del nodo origen
explore(0,0);



10 Enero, 2012, 07:44 pm
Respuesta #36

Elius

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 399
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino
Más adelante postearé una versión del algoritmo en lenguaje natural, representando el grafo como un laberinto vertical que una persona recorre exhaustivamente. Debe ser vertical, porque si no hay que estar pensando en los grados que gira cada vez que toma una nueva arista, para prevenir que entre en recorridos cíclicos (ahi sí que no salimos más!!).

Saludos!


10 Enero, 2012, 07:53 pm
Respuesta #37

Elius

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 399
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino
¿Y en el caso de que haya nodos que se relacionen con 50 ó 100 nodos distintos? es posible que eso ocurra, ¿no?
En ese caso es una especie de abanico, y como el grafo no es tridimensional (es decir, no hay aristas que pasen por debajo o por encima de otras: si se cruzan, forman un nuevo nodo), ese subgrafo puede colorearse así: color1 central, los periféricos en una alternancia color2 - color 3; si la cantidad es par, eso basta, si no hay que usar el cuarto color.

Olvidé decir que usé la reducción de los mapas a grafos, demostrada por alguien cuyo nombre no recuerdo, en el curso de la larga historia del problema.

Saludos!


10 Enero, 2012, 08:00 pm
Respuesta #38

Elius

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 399
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino
Construye un mapa cualquiera que necesite cuatro colores. Y ahora añade un país que rodee completamente al mapa, ¿estas seguro de que podrás colorearlo?

Esto en la reducción a grafos se representa como un nodo que tiene una arista para cada uno de los otros nodos, es un nodo concentrador, por lo que no conviene dejarlo para el final, sino comenzar por él, o por lo menos darle prioridad sobre los otros que se relacionan con él. Creo que esto está previsto en el algoritmo, pero... espero una pequeña ayuda de los amigos :D

Saludos!


11 Enero, 2012, 03:13 am
Respuesta #39

Elius

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 399
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino
@gaizka
P.D.: Te cuento que si tu propuesta funcionara, abandonaría gustoso el bendito algoritmo que aún no puedo demostrar que funcione como pretendo. Lo que puedo decir es tú vas construyendo un mapa que parte de la configuración minimal 4-coloreable. Y deduces correctamente que si quieres añadir otro país, puedes repetir un color porque hay otro que queda aislado. Pero el problema original es otro: dado un mapa, demostrar que es 4-coloreable. Habría que demostrar que si  puedes construírlo ya 4-coloreado, no es posible que partiendo de un mapa sin colorear ya construído, no lo puedas colorear con menos de 5 colores.
Si puedes encontrar en internet alguna reseña de la primera demostración que se creyó valedera, aunque luego resultó fallida (Alfred Kempe, 1879), verás que es muy complicado. Hay que tener en cuenta una cantidad enorme de configuraciones posibles (suponer que siempre queda un país aislado no es realista). Por ejemplo, un círculo dividido en tercios, ya necesita 3 colores. Después agregas largas cadenas bicoloreables, que pueden entrecruzarse, y verás que pronto necesitas reordenar los colores. Y ese reordenamiento fue lo que falló en la demostración de Kempe.

Pero puedes insistir con tu idea. Sólo hay que demostrar que ser siempre capaz de construir un 4-col, implica que puedes 4-colorear cualquiera ya construído.

Suerte!