Kazimierz Kuratowski

Apenas ayer, 2 de febrero, se cumplieron 115 años del nacimiento del matemático K. Kuratowski. Kuratowski demuestra en 1930 un teorema que caracteriza a las gráficas planares, es decir aquellas que se pueden dibujar en una hoja de papel sin que se crucen dos de sus aristas. El teorema establece que una gráfica es planar si y sólo si no «contiene» una copia de la gráfica bipartita completa K_{3,3} o de la gráfica completa K_5. A continuación mostramos un par de dibujos, correspondientes a las gráficas mencionadas en el teorema.

Gráficas de Kuratowski

Gráficas prohibidas

Version pdf del dibujo.

Si observamos cuidadosamente el dibujo que mostramos previamente se puede apreciar un efecto que hacer parecer que las aristas estan una encima de otra. Para lograr esto, se utilizaron las siguientes definiciones (macros) en el preámbulo del documento.

\tikzstyle myBG=[line width=3pt,opacity=1]

\newcommand{\drawLinewithBG}[2]
{
  \draw[white,myBG]  (#1) -- (#2);
  \draw[black,very thick] (#1) -- (#2);
}
\newcommand{\drawPolarLinewithBG}[2]
{
  \draw[white,myBG]  (#1) -- (#2);
  \draw[black,very thick] (#1) -- (#2);
}

Al utilizar los comandos previamente definidos, lo que TikZ hace es primero trazar una linea blanca de 3 puntos de grosor y posteriormente se traza una linea negra encima de la linea blanca.

El código de TikZ para generar el dibujo es el siguiente.

\begin{tikzpicture}

  \useasboundingbox (-6.5,-3) rectangle (5.5,3);

  \begin{scope}[xshift=-6cm,yshift=-1cm]
    \foreach \x in {4,2,0} {
      \foreach \y in {0,2,4} {
        \drawLinewithBG{\x,0}{\y,2};
      }
    }

    \foreach \x in {0,2,4} {
      \foreach \y in {0,2} {
        \node at (\x,\y) [circle,fill=black] {};
      }
    }

    \node at (2,-1.5) {\Large$K_{3,3}$};
  \end{scope}

  \begin{scope}[xshift=3cm]
    \foreach \a in { 18, 90, 162, 234, 306 } {
      \foreach \b in { 18, 90, 162, 234, 306 } {
        \drawPolarLinewithBG{\a:2}{\b:2};
      }
    }

    \foreach \a in {18,90, 162, 234, 306 } {
      \node at (\a:2cm) [circle,fill=black] {};
    }
    \node at (0,-2.5) {\Large$K_5$};
  \end{scope}

\end{tikzpicture}

¡Hasta la próxima!

Gráfica de Pappus

En ocasión del 84 aniversario del natalicio del Claude Berge, quien formuló la Conjetura Fuerte de Gráficas Perfectas, presentaremos un dibujo de una gráfica perfecta, la gráfica de Pappus.

Gráfica de Pappus

Gráfica de Pappus

Dibujo en formato pdf.

Únicamente utilizamos la librería shadows de TikZ.

\usetikzlibrary{shadows}

El código para generar el dibujo es el siguiente.

\begin{tikzpicture}[
vertex_style/.style={circle,shading=ball,ball color=red,draw=red!80!white,drop shadow={opacity=0.4}},
edge_style/.style={ultra thick, black,drop shadow={opacity=0.4}}]

\useasboundingbox (-5.05,-5.3) rectangle (5.1,5.25);

\begin{scope}[rotate=90]
   \foreach \x/\y in {0/1,60/2,120/3,180/4,240/5,300/6}{
      \node[vertex_style] (\y) at (canvas polar cs: radius=2.5cm,angle=\x){};
   }
   \foreach \x/\y in {0/7,60/8,120/9,180/10,240/11,300/12}{
      \node[vertex_style] (\y) at (canvas polar cs: radius=5cm,angle=\x){};
   }

   \foreach \x/\y in {0/13,60/14,120/15,180/16,240/17,300/18}{
      \node[vertex_style] (\y) at (canvas polar cs: radius=1.25cm,angle=\x){};
   }

\end{scope}

\foreach \x/\y in {13/16,14/17,15/18}{
   \draw[edge_style] (\x) -- (\y);
}

\foreach \w/\x/\y/\z in {1/7/14/18,2/8/15/13,3/9/16/14,4/10/17/15,5/11/18/16,6/12/13/17}{
   \draw[edge_style] (\w) -- (\x);
   \draw[edge_style] (\w) -- (\y);
   \draw[edge_style] (\w) -- (\z);
}

\foreach \x/\y in {7/8,8/9,9/10,10/11,11/12,12/7}{
   \draw[edge_style] (\x) -- (\y);
}
\end{tikzpicture}

Gráfica de Tutte

Este día, en ocasión del 93 aniversario del natalicio del William Tutte, presentaremos un dibujo de la gráfica de Tutte.

Gráfica de Tutte

Gráfica de Tutte

El dibujo en formato pdf.

Al igual que en nuestro primer ejemplo, hemos incluido la libreria shadows de TikZ.

\usetikzlibrary{shadows}

El código utilizado para generar este dibujo es el siguiente.

\begin{tikzpicture}[
 vertex_style/.style ={circle,shading=ball,ball color=red,draw=red!40!white,drop shadow={opacity=0.4}},
 edge_style/.style={ultra thick, black},rotate=-30]

 \useasboundingbox (-14.2,-10.5) rectangle (14.3,16.2);

 \draw[edge_style] (0,0) -- (4.3431,0);
 \draw[edge_style] (0,0) -- (-2.1715,3.7612);
 \draw[edge_style] (0,0) -- (-2.1715,-3.7612);

 \draw[edge_style] (10,-5.6568) -- (-0.1010,-11.4886);

 \draw[edge_style] (-9.8989,5.8318) -- (-9.8989,-5.8318);

 \draw[edge_style] (10,5.6568) -- (-0.1010,11.4886);

 \node[vertex_style] at (0,0) {};
 % absolute positions
 \def\nodepos{0/0/0,1/0/2,2/4/2,3/4/4,4/0/4,
 5/-2/4,6/-4/4,7/-4/-4,8/4/-4,9/4/-2,
 10/4/0,11/2/0,12/2/-2,13/-2/-2,14/-2/0}

 \begin{scope}[rotate=0,xshift=10cm,rotate=135]
 \foreach \n/\x/\y in \nodepos{ \coordinate (\n) at (\x,\y);}
 \end{scope}

 \draw[edge_style] (0)
 \foreach \x in {1,...,14}{ --(\x)} -- cycle;

 \foreach \x/\y in {0/11,1/4,2/10,5/14,7/13,9/12}{
 \draw[edge_style] (\x) -- (\y);
 }

 \foreach \x in {0,1,...,14}{
 \node[vertex_style] at (\x){};
 }

 \begin{scope}[rotate=120,xshift=10cm,rotate=135]
 \foreach \n/\x/\y in \nodepos{ \coordinate (\n) at (\x,\y);}
 \end{scope}

 \draw[edge_style] (0)
 \foreach \x in {1,...,14}{ --(\x)} -- cycle;

 \foreach \x/\y in {0/11,1/4,2/10,5/14,7/13,9/12}{
 \draw[edge_style] (\x) -- (\y);
 }

 \foreach \x in {0,1,...,14}{
 \node[vertex_style] at (\x){};
 }

 \begin{scope}[rotate=240,xshift=10cm,rotate=135]
 \foreach \n/\x/\y in \nodepos{ \coordinate (\n) at (\x,\y);}
 \end{scope}

 \draw[edge_style] (0)
 \foreach \x in {1,...,14}{ --(\x)} -- cycle;

 \foreach \x/\y in {0/11,1/4,2/10,5/14,7/13,9/12}{
 \draw[edge_style] (\x) -- (\y);
 }

 \foreach \x in {0,1,...,14}{
 \node[vertex_style] at (\x){};
 }

\end{tikzpicture}

¡Hasta la próxima!

Gráfica de Petersen

En ocasión del 303 aniversario del natalicio de Leonhard Euler, padre de la teoría de gráficas, comenzamos esta semana con las publicaciones en esta bitácora. Presentamos a continuación un dibujo de la gráfica de Petersen.

La Gráfica de Petersen

Dibujo de la gráfica de Petersen

El dibujo en formato pdf.

Para producir las sombras de los vértices y aristas en este diagrama hemos utilizado la librería shadows de TikZ. Se sugiere incluír la línea

\usetikzlibrary{shadows}

en el preámbulo del documento. El código de TikZ para generar este diagrama se muestra a continuación.

\begin{tikzpicture}[
vertex_style/.style={circle,shading=ball,ball color=red,draw=red!80!white,drop shadow={opacity=0.4}},
edge_style/.style={ultra thick, black,drop shadow={opacity=0.4}}]

\useasboundingbox (-5.05,-4.4) rectangle (5.1,5.25);

\begin{scope}[rotate=90]
 \foreach \x/\y in {0/1,72/2,144/3,216/4,288/5}{
 \node[vertex_style] (\y) at (canvas polar cs: radius=2.5cm,angle=\x){};
 }
 \foreach \x/\y in {0/6,72/7,144/8,216/9,288/10}{
 \node[vertex_style] (\y) at (canvas polar cs: radius=5cm,angle=\x){};
 }
\end{scope}

\foreach \x/\y in {1/6,2/7,3/8,4/9,5/10}{
 \draw[edge_style] (\x) -- (\y);
}

\foreach \x/\y in {1/3,2/4,3/5,4/1,5/2}{
 \draw[edge_style] (\x) -- (\y);
}

\foreach \x/\y in {6/7,7/8,8/9,9/10,10/6}{
 \draw[edge_style] (\x) -- (\y);
}
\end{tikzpicture}

¡Hasta la próxima semana!