Estructuras m´etricas en grafos
Transcript of Estructuras m´etricas en grafos
Estructuras metricas en grafos
Marıa del Carmen Somoza Lopez
Memoria para la obtencion del tıtulo de Doctor de la Universidad de Vigo
14 de Julio de 2015
3
A Isauro y Rogelio Somoza
4
Agradecimientos
Me gustarıa agradecer a mi tutor y director Eusebio Corbacho toda la ayudapersonal recibida para realizar este trabajo. Sin el me hubiera sido total-
mente imposible llevarlo a cabo. El ambiente creado en el seminario dondehe tenido ocasion de trabajar con Vaja Tarieladze, Ricardo Vidal, Fran-
cisco de Arriba, Teresa Abreu y Mikhail Tkachenko ha sido para mi unaexperienza que ha hecho crecer mi gusto por la investigacion matematica,a todos ellos mi agradecimiento por haberme ensenado tanto y ayudado en
este trabajo. Tambien me gustarıa agradecer su comprension y apoyo a miesposo Mario y a mi madre Mercedes.
Contenido
Presentacion 7
1 Conjuntos, Listas y Diccionarios 15
1.1 Teorıa de Conjuntos . . . . . . . . . . . . . . . . . . . . . . . 15
1.1.6 Clausura transitiva de una relacion. . . . . . . . . . . 28
1.2 Conjuntos en SAGE . . . . . . . . . . . . . . . . . . . . . . . 31
1.3 Listas en SAGE . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.4 Diccionarios en SAGE . . . . . . . . . . . . . . . . . . . . . . 36
1.5 Relaciones en SAGE . . . . . . . . . . . . . . . . . . . . . . . 37
2 Nucleos y digrafos 39
2.1 Nucleos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.1.9 Laplaciano de un nucleo . . . . . . . . . . . . . . . . . 48
2.2 Digrafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.2.9 Laplacianos de un digrafo . . . . . . . . . . . . . . . . 53
2.2.14 Grafos y multidigrafos . . . . . . . . . . . . . . . . . . 55
3 Cuasimetricas. 57
3.1 Cuasimetricas . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.1.4 Cuasimetricas asociadas a nucleos . . . . . . . . . . . 59
3.1.18 Embebimiento en un Hilbert . . . . . . . . . . . . . . 67
3.2 Cuasimetricas y metricas en digrafos . . . . . . . . . . . . . . 70
3.2.5 Metricas laplacianas en digrafos . . . . . . . . . . . . . 72
4 Conexiones hamiltonianas mınimas 81
4.1 Ciclos hamiltonianos mınimos . . . . . . . . . . . . . . . . . . 81
4.1.1 Distribuciones radiales . . . . . . . . . . . . . . . . . . 83
4.1.3 Cotas inferiores . . . . . . . . . . . . . . . . . . . . . . 85
4.1.9 Test de Farnsworth-Munsell . . . . . . . . . . . . . . . 89
4.2 Arboles hamiltonianos mınimos . . . . . . . . . . . . . . . . . 107
5 Caminos de Steiner 111
5.1 Arbol mınimo de Steiner . . . . . . . . . . . . . . . . . . . . . 111
5.2 Algoritmos de Steiner . . . . . . . . . . . . . . . . . . . . . . 112
5
6 CONTENIDO
5.3 Deformaciones en membranas de grafeno . . . . . . . . . . . . 115
5.4 Atajos de Steiner . . . . . . . . . . . . . . . . . . . . . . . . . 1165.5 Constantes de ganancia . . . . . . . . . . . . . . . . . . . . . 119
Resultados 127
Bibliografıa 130
Indice de programas 141
Anexos 191
Presentacion
En el basamento de este trabajo esta la memoria Estructuras metricas en
grafos, defendida el dıa 9 de septiembre de 2010 para la obtencion delDiploma de Estudios Avanzados dentro del programa de tercer ciclo Tecnicas
Matematicas Avanzadas y Aplicaciones, impartido por el departamento deMatematica Aplicada I en el bienio 2008-2010.
En dicha memoria los resultados teoricos estaban apoyados por programasinformaticos realizados en MATLAB y comenzamos este trabajo del mismo
modo hasta que en enero del 2012 el Prof. Francisco Botana nos hablode SAGE (Software for Algebra and Geometry Experimentation) que es un
software matematico libre de usar, modificar y distribuir, especialmente agilen el tratamiento de listas como se pondra de manifiesto a lo largo de este
trabajo. El uso de SAGE nos hizo modificar y ampliar los objetivos de estamemoria que podemos resumir del siguiente modo
OBJETIVOS Y ESTADO DE LA CUESTION:
1. Establecer un primer capıtulo donde se recuerde la axiomatica con-
juntista al estilo que se presenta en [48], introduciendo las primerasordenes de SAGE para manejar conjuntos. Esta conexion entre la ax-
iomatica conjuntista y su facilidad de programacion es SAGE no lahemos visto expresamente reflejada en los diferentes manuales de uso
de este Software.
2. Establecer para cada concepto o teorema unas funciones de SAGE
que nos permitan realizar los calculos y obtener los resultados de unamanera sistematica y con el mınimo esfuerzo.
3. Dar una nueva presentacion de la teorıa de Grafos Clasica, como laque se puede encontrar, por ejemplo, en [9], [10], [14], [15], [17], [18],[34], [54], [66], · · · , a partir de los conceptos de relacion y de nucleo
que son facilmente manejables en SAGE.
4. Estudiar familias de cuasimetricas asociadas a un nucleo generalizando
el estudio realizado en el DEA: Estructuras metricas en grafos.
7
8 CONTENIDO
5. En [8] se utilizo la facilidad de programacion en SAGE de listas y
diccionarios para abordar la construccion de ciclos hamiltonianos demınima longitud en conjuntos finitos del plano complejo. Este proble-
ma clasico que habıa sido abordado de diferentes maneras como pode-mos ver, por ejemplo, en [62], [81], [85], [86], · · · , se resolvio en [8] pe-
gando convenientemente los subconjuntos correspondientes a los dife-rentes niveles de convexidad y se ha utilizado en [52] para disenarcircuitos optimos de transporte en la Union Europea. El objetivo,
aquı, es cuantificar la bondad de dicho metodo y utilizarlo en unalınea bien diferente como es la valoracion del test colorimetrico de
Farnsworth-Munsell.
6. Si para un conjunto L de puntos del plano complejo llamamos ganancia
G(L) a la comparacion normalizada, entre la longitud H(L) del arbolhamiltoniano mınimo de L y la longitud S(L) de la conexion mınima
de Steiner:
G(L) = 100H(L)− S(L)
H(L)
surge la cuestion de hallar entre los conjuntos con |L| = n cuales son los
de ganancia maxima Gn. Este es el ultimo objetivo que nos planteamosen esta memoria cuando nos enteramos por [75] que la demostraciondada en [49] de la conjetura de Gilbert y Pollak [61] contenıa serios
errores.
Hemos dividido la memoria en cinco capıtulos y en todos ellos hemos disenado
programas informaticos trasladando directamente la teorıa para poder facil-itar los calculos y hacer experimentos que avalen nuestras conjeturas. Cada
capıtulo lo completamos con una hoja de trabajo (Worksheet) para permi-tir al lector utilizar los programas (funciones) que presentamos. Nuestrasfunciones seguramente puedan hacerse mas eficientes y esa es una de las
labores que dejamos pendientes para el futuro pero nos parecen un ejemploinstructivo de como programar a partir del conocimiento de la teorıa.
En el primer capıtulo presentamos la axiomatica de Bernays, Godel y
von Neumann, que constituye una guıa segura para la manipulacion declases y conjuntos que ha disipado las antinomias clasicas de la teorıa de
conjuntos. Sobre esa base ponemos de manifiesto la utilidad de SAGE en eltratamiento de conjuntos, listas, diccionarios y relaciones. Presentamos una
serie de ordenes de SAGE y funciones realizadas por nosotros que serviranal lector para entender y poder trabajar con las Worksheets de los siguientescapıtulos.
En el segundo capıtulo vemos que un nucleo k : X ×X → R es una lista de
tripletas o un diccionario de palabras de 2 letras de un alfabeto de n letras
CONTENIDO 9
(X,≤) y valores en R, en lugar de una matriz hueca como sucedıa cuando
utilizabamos MATLAB como software.
Estudiamos sus propiedades, el operador lineal inducido, presentamos prue-bas simples del teorema espectral de operadores autoadjuntos y del teorema
espectral de operadores cualesquiera que nos permiten una presentacionrapida y precisa del inverso de Moore-Penrose de un operador y definimos ellaplaciano de un nucleo estudiando alguna de sus propiedades para nucleos
simetricos.
Presentamos los digrafos como un caso particular de nucleo. La definicionclasica esta dada a partir del conjunto de vertices V , del conjunto de arcos
E y del peso w(u, v) de cada arco (u, v) ∈ E del digrafo D pero es claroque toda la informacion esta recogida en el nucleo w : V × V → R+. La
literatura sobre grafos, [9], [10], [14], [17], [18], [34], [54], [66], · · · , suelemostrar la relacion entre matrices y digrafos a veces con una lectura com-
plicada, nosotros tratamos el tema desde la informacion proporcionada porel nucleo w e intentamos que sea una exposicion de facil entendimiento parael lector. Un grafo es un digrafo simetrio y aunque se puede tratar la teorıa
de multidigrafos directamente, para la mayorıa de nuestros intereses hemoslogrado formular un problema equivalente, tratable en terminos de digrafos,
reemplazando los conjuntos de arcos paralelos por un solo arco con un pesoadecuado. Para ello utilizamos la funcion deplist(L, c) donde c puede ser el
criterio de reunificacion de arcos paralelos del maximo de sus pesos (M), odel mınimo (m), o de la suma (S) o de la resistencia (R), o de cualquier otro
que el usuario considere adecuado anadir. Gracias a la utilizacion de pesosadecuados para los arcos de un digrafo o las aristas de un grafo podemos
tratar desde un punto de vista formal las teorıas de grafos y multidigrafosdentro de la teorıa de digrafos.
En el tercer capıtulo presentamos la idea de nucleo generador de cuasime-trica y definimos varios tipos de ellos. Presentamos nuevas familias parame-
tricas de cuasimetricas que resultan metricas cuando el nucleo generador essimetrico. En este caso, estudiamos los valores del parametro para el que
las metricas resultan embebibles en un espacio de Hilbert.
Decimos que un nucleo k : V × V → R es generador de metrica en V siel nucleo asociado
q(4)k : V × V → R
(u, v) 7→ k(u, u) + k(v, v)− k(u, v)− k(v, u)
es una metrica en V . En terminos del operador K : RV → RV este nucleo
se escribe
10 CONTENIDO
q(4)K : V × V → R
(u, v) 7→ (K(eu − ev)|eu − ev)
y, si |V | = n y elegimos la ordenacion (v1, · · · , vn), en terminos del operadorK : Rn → Rn se escribe como un nucleo defindo en Nn = {1, · · · , n}
q(4)K Nn × Nn → R .
(i, j) 7→ (K(ei − ej)|ei − ej)
Diremos, equivalentemente, que K o K son generadores de una metrica.
Nosotros queremos hacer hincapie en estructuras metricas que se han definido
historicamente en un digrafo (V, E,w) sin imponer de salida la inmersion enun espacio de Hilbert pero comprobando, mediante el teorema de Schoen-
berg [103], si tal inmersion se produce o no.
En este capıtulo tambien tratamos las cuasimetricas de coste mınimo ocuasimetricas de Dikjstra en un digrafo (V, E,w), a partir de la composicion
de relaciones, operacion interna que juega un papel esencial en la teorıa delos espacios uniformes y cuasiuniformes y que, en nuestra presentacion, va adar lugar a una relacion transitiva y reflexiva, ligada al digrafo, que estable-
cera un calibre en V , facilmente programable en SAGE, del que obtendremoslas tablas de valores de la cuasimetrica. De este modo, ponemos de mani-
fiesto que la definicion de digrafo, de la que nosotros partimos, nos permitedesarrollar toda la teorıa de metricas de coste mınimo, considerando cuando
convenga, el digrafo traspuesto o el simetrizado del digrafo de partida.
Las metricas de coste mınimo no son sensibles a las adjunciones de nuevosvertices mediante nuevas aristas para ampliar el grafo dado y, por ello, no
son adecuadas para el estudio metrico de ciertos problemas de circuitoselectricos, quımicos o sociales de los que actualmente se ocupa con exito la
teorıa de grafos. Las cuasimetricas q(i)δ−βk introducidas en este tercer capıtulo
permiten apreciar los cambios de proximidad que se producen en un digrafo
al anadir un nuevo vertice cuando los pesos de los arcos de conexion delnuevo vertice son relativamente significativos.
Klein y Randic [79] probaron que el inverso de Moore-Penrose L+D, del ope-
rador laplaciano de un digrafo simetrico y conexo D, cumple que q(4)
L+D
es una
metrica con esas buenas propiedades. Chebotarev y Shamis [28] probaronque Qα = (I + αLD)−1, donde α > 0 y LD es el operador laplaciano de
un digrafo conexo y simetrico D, cumple que q(4)Qα
es una metrica con esas
buenas propiedades. En la seccion 3.2.5 presentamos pruebas originales delos resultados de [79] y [28] sin necesidad de considerar los digrafos como cir-
cuitos electricos ni de utilizar el complicado teorema de la matriz de bosques.
CONTENIDO 11
En el capıtulo 4 presentemos una forma de construir un ciclo hamiltonianooptimo de un conjunto de puntos L. Lo hacemos a partir del trabajo [8]
presentado en el ACA2013 en Malaga por F. de Arriba, E. Corbacho y R.Vidal donde se propuso la particion del conjunto L en sus diferentes nive-
les de convexidad, {L1, · · · , Ln}. Si co(L) es la envoltura convexa de L yδ(co(L)) es su frontera, definimos
L1 = L ∩ δ(co(L)),
L2 = L ∩ δ(co(L \ L1)),
L3 = L ∩ δ(co(L \ (L1 ∪ L2)),
· · ·
Ln = L ∩ δ(co(L \ (L1 ∪ · · · ∪ Ln−1)).
Podrıamos decir que el planteamiento clasico del calculo de un ciclo hamilto-
niano optimo ha sido proponer particiones en el rectangulo (tipo Riemann)y nosotros proponemos particiones segun la geometrıa del conjunto de pun-tos (tipo Lebesgue).
Con el fin de evaluar la bondad de este metodo definimos dos cotas infe-
riores. La primera a partir del arbol generador mınimo obtenido con elalgoritmo de Kruskal [81] y la segunda, propuesta por el Prof. Ricardo Vi-
dal, calcula para cada vertice de L la suma de la longitud de sus dos aristasmenores, siendo el valor de la cota el promedio de todas las sumas. La
funcion bondad sera
bondad(L) = 100 · cotaKV (L)
lon(C)[0]
donde la funcion cotaKV (L) es el maximo de las dos cotas y lon(C)[0]
es la longitud del ciclo hamiltoniano obtenido con la funcion cicloham(L).Testaremos nuestro metodo en distribuciones regulares de puntos y pre-
sentaremos una aplicacion del algoritmo cicloham a la evaluacion del testcolorimetrico de Farnsworth-Munsell que es uno de los mas empleados para
medir la capacidad de discriminacion cromatica y la vision defectiva delcolor, en los seres humanos [87]. Antes de esta evaluacion se presenta una
resumida teorıa matematica del color que nos sirve para introducir el coloren los programas de SAGE.
El ultimo apartado del capıtulo cuarto nos va a servir de introduccion parael capıtulo 5, en el tratamos el problema de construir arboles hamiltonianos
optimos, para listas de complejos con |L| < 6 la funcion optimiza(L) nos
12 CONTENIDO
proporciona dicho arbol pero para listas de cardinal mayor solamente con-
seguimos aproximaciones con las funciones CA(L) y caminoham(L). Pre-sentamos unas cotas inferiores, similares a las cotaK(L) y cotaV (L), y la
funcion bondada(L) que nos permite evaluar la bondad de caminoham.
En el ultimo capıtulo presentamos tres funciones en SAGE: Steiner3(L),Steiner4(L) y Steiner5(L) que calculan para un conjunto de 3, 4, o 5 pun-tos L en el plano complejo el arbol de Steiner mınimo (SMT(L)) (vease, [35],
[36], [37], [38], [68], [70], [75], [76], [74], [112], [113]) y nos devuelven:
1. Los puntos de Steiner de L.
2. El dibujo del SMT(L).
3. La longitud S(L) del SMT(L).
4. Una comparacion normalizada, entre la longitud H(L) de la mınima
conexion hamiltoniana de L y la longitud S(L), que llamamos ganancia
G(L) = 100H(L)− S(L)
H(L).
Las dos dislocaciones que se producen en una membrana de grafeno por
causas aun desconocidas son las deformaciones de Stone-Wales y la mitosis(ver, [117], [42], [88]), las funciones Steiner4(L) y Steiner4g(L) nos per-
miten presentar unas motivaciones novedosas para dichas dislocaciones.
Presentamos, entre otros, un ejemplo que, a partir del paquete de funcionesautonomic spain similar a union europea proporcionado por mi companeroEmilio Estevez, calcula la conexion hamiltoniana entre las 20 ciudades galle-
gas mas pobladas, su arbol generador mınimo usando el algoritmo de Kruskaly el arbol mınimo de Steiner proporcionado por nuestro metodo, en dicho
ejemplo puede verse que el SMT es de menor longitud que el proporcionandopor el algoritmo de Kruskal y esto pone de manifiesto que para determinados
problemas donde interese una conexion mınima es mejor calcular un SMTque un arbol generador mınimo.
Para finalizar el capıtulo y a partir de la conexion hamiltoniana optima es-
tudiaremos la constante de ganancia G(L) proporcionada por las funcionesSteinerN (L) para N = 3, 4 o 5. Para cada natural n ≥ 3 designamos
L(n) = {L | |L| = n} y Gn = maxL∈L(n)
{G(L)}
y nos planteamos las tres cuestiones siguientes:
1. La determinacion de listas optimas LOn ∈ L(n) de ganancia maxima.
CONTENIDO 13
2. El calculo de las constantes Gn = G(LOn).
3. El calculo de limn→∞
Gn.
Tenemos probado que LO3 es la configuracion equilatera y el valor de G3 =13.33974596215561 pero en la busqueda de las configuraciones optimas de
mayor numero de puntos, no hemos logrado teoremas definitivos, sin em-bargo nuestras funciones Steiner3, Steiner4 y Steiner5 nos han permitido
realizar experimentos de cierto interes y a partir de los cuales planteamosconjeturas sobre la configuracion de las LOn y el valor de Gn, la prueba de
dichas conjeturas sera nuestra futura lınea de trabajo.
14 CONTENIDO
Capıtulo 1
Conjuntos, Listas y
Diccionarios
1.1 Teorıa de Conjuntos
En el mundo hay cosas y para hablar mas comodamente de ellas cuando las
hacemos objeto de nuestro pensamiento, las designamos por letras minusculasx, y, z, · · · . Si todo lo que podemos pensar de la cosa x lo podemos pensarde y y todo lo que podemos pensar de la cosa y lo podemos pensar de x,
escribimos x = y o y = x.
Sucede con frecuencia que distintas cosas x, y, z, · · · , consideradas por cual-quier motivo bajo un mismo punto de vista, son reunidas mentalmente para
constituir una clase A. Escribimos, entonces, A = {x, y, z, · · · }. Cadacosa constituyente de una clase es un elemento de la misma. Ası, x es
elemento de A. Tambien se dice que x pertenece a A y se escribe x ∈ A.Si todos los elementos de la clase A son elementos de la clase B se dice que
A es una subclase de B o que A esta contenida en B y se escribe A ⊂ B.Si A ⊂ B tanto puede suceder que B ⊂ A como no suceder. En el primercaso, ambas clases son la misma cosa y, por tanto, A = B o B = A. En el
segundo caso decimos que A es una subclase propia de B o que el contenidoA ⊂ B es estricto.
Las cosas tienen propiedades que expresamos en forma de proposiciones
como, por ejemplo, x = y, x ∈ A o A ⊂ B. En general, las desig-namos por letras p, q, · · · y, ası, escribimos
• p[x] si y solo si la cosa x cumple la proposicion p.
• p ∨ q si alguna de las dos proposiciones es verdadera.
• p ∧ q si ambas proposiciones son verdaderas.
15
16 CAPITULO 1. CONJUNTOS, LISTAS Y DICCIONARIOS
• ¬p si y solo si p es falsa. En particular,
¬(x = y) se escribe x 6= y
¬(x ∈ A) se escribe x /∈ A¬(A ⊂ B) se escribe A 6⊂ B
• p ⇒ q si y solo si (¬p) ∨ q es verdadera.
• p ⇔ q si y solo si (p ⇒ q) ∧ (q ⇒ p).
Para establecer el alcance de una proposicion utilizamos los cuantificadores
∃ (existe) y ∀ (para todo). Para describir una clase haremos uso delclasificador {· · · : · · · } (todos los · · · tales que · · · ). Utilizaremos la
abreviatura tq para no repetir los dos puntos.
El proceso de rigorizacion de la matematica recibio a finales del XIX elextraordinario impulso de Frege, Dedekind y Cantor para fundamentar
la aritmetica en la logica con el apoyo del lenguaje preciso y las ideas con-juntistas que acabamos de introducir para, mas tarde, sustentar el algebray el analisis en la base firme de la aritmetica.
Sin embargo, ya en los primeros anos del siglo XX, Russell apunto el peligro
que se puede derivar de suponer que para cualquier propiedad p existe unaclase A(p) constituida por todas las cosas que tienen dicha propiedad:
La clase de todos los hombres, no es un hombre, luego hay clases que
no pertenecen a sı mismas. Si r es la propiedad que tienen las clasesque no pertenecen a sı mismas e intentamos responder a la pregunta
de si A(r) cumple r o ¬r, caemos en la siguiente antinomia:
r[A(r)] ⇒ A(r) ∈ A(r) ⇒ ¬r[A(r)] ⇒ A(r) /∈ A(r) ⇒ r[A(r)]
Zermelo observo que las propiedades r y ¬r se refieren a clases que pertenecen
a clases y, si la clase A(r) no fuera de este tipo, la pregunta de si cumpler o ¬r carecerıa de sentido. Ası llego a la necesidad de distinguir las clases
que pertenecen a otras clases y reservo para ellas el nombre tecnico de con-juntos y las letras mayusculas no cursivas A, B, · · ·X, Y, · · · . Cualquier
propiedad p tendra su clase asociada A(p) pero no siempre esta clase seraun conjunto.
La teorıa de conjuntos estudia la obtencion de nuevas clases a partir
de clases ya conocidas y determina si los resultados son conjuntos o no loson. Los once postulados siguientes, basados en la axiomatica de Bernays,Godel y von Neumann, constituyen una guıa segura para la manipulacion
de clases y conjuntos que ha disipado las antinomias clasicas y, hasta ahora,no ha generado otras nuevas. Las recordamos sucintamente para afianzar
las intuiciones del lector siguiendo el primer capıtulo de [48]:
1.1. TEORIA DE CONJUNTOS 17
1. Axioma de extension
(x ∈ A) ∧ (x = y) ⇒ (y ∈ A)
2. Axioma de formacionPara toda propiedad p referida a conjuntos existe la clase
A(p) = {x : (x es un conjunto) ∧ p[x]}
(a) Este axioma, junto con el de extension, nos asegura que existe laclase de Russell A(r) y que esta perfectamente determinada. SiA(r) fuese un conjunto deberıa ser posible decidir si cumple o no
cumple r. Como sabemos que ello es imposible, debemos concluirque A(r) no es un conjunto.
(b) Nos asegura la existencia de las clases
i. U = {x : (x es un conjunto) ∧ (x = x)} universal.
ii. ∅ = {x : (x es un conjunto) ∧ (x 6= x)} vacia.
(c) Dadas las clases A y B nos asegura la existencia de las clases
i. Ac = {x : ¬(x ∈ A)} complemento de Aii. A∪ B = {x : (x ∈ A) ∨ (x ∈ B)} union.
iii. A∩ B = {x : (x ∈ A) ∧ (x ∈ B)} interseccion.
iv. A \ B = A∩ Bc diferencia de A con B.
3. Axioma del vacıoLa clase vacia ∅ es un conjunto
4. Axioma de pareja
Si A y B son conjuntos distintos existe el conjunto de dos elementos
{A, B} = {x : (x = A) ∨ (x = B)}
5. Axioma de la union
Si I es un conjunto y para cada i ∈ I consideramos un conjuntoAi, definimos la familia {Ai : i ∈ I} de indicial I . Postulamosque la clase
⋃
i∈I
Ai = {x : ∃i ∈ I tq x ∈ Ai}
es un conjunto al que llamamos union de la familia.
6. Axioma de la traza
Si A es un conjunto, para toda clase A, A ∩ A es un conjunto.
(a) El vacıo es un conjunto contenido en cualquier clase A
∅ = ∅ ∩ A ⊂ A
18 CAPITULO 1. CONJUNTOS, LISTAS Y DICCIONARIOS
(b) Para toda propiedad p referida a conjuntos y todo conjunto A
A ∩A(p) = {x : (x ∈ A) ∧ p[x]}es un subconjunto de A.
(c) Si A es un conjunto no vacio, los axiomas de traza, de pareja y
de formacion, aseguran que
{A} = {A, ∅} ∩ {x : (x es un conjunto) ∧ (x = A)}es un conjunto de un solo elemento.
(d) La clase universal U no es un conjunto. Si lo fuera, tambiendeberıa serlo U ∩A(r) = A(r) y ya vimos que la clase de Russell
no es un conjunto.
(e) Toda clase contenida en un conjunto es un conjunto. En partic-
ular, si {Ai : i ∈ I} es una familia de conjuntos,⋂
i∈I
Ai = {x : ∀i ∈ I se cumple que x ∈ Ai}
es una clase contenida en el conjunto⋃
i∈I
Ai, luego un conjunto.
7. Axioma de la potenciaTodas las subclases de una clase A constituyen una nueva clase P(A)
llamada potencia de A pues, al ser sus elementos clases que pertenecena una clase, son conjuntos y, por el axioma de formacion,
P(A) = {B : (B es un conjunto) ∧ (B ⊂ A)}es una clase. Ahora postulamos que es un conjunto si lo es A.
(a) Ya vimos que dado un conjunto A 6= ∅, {A} es un conjunto.Como {∅} = P(∅), el axioma de la extiende el resultado al con-
junto vacıo. Es claro que P(∅) tiene un solo elemento, P({1}) ={∅, {1}} tiene dos, P({1, 2}) = {∅, {1}, {2}, {1, 2}} tiene cuatro y
P({1, 2, · · · , n}) tiene 2n.
(b) Dados dos conjuntos distintos A y B podemos considerar los con-
juntos {A} y {A, B} y formar el conjunto {{A}, {A, B}} que lla-mamos par ordenado y denotamos (A, B). Este nombre obe-
dece a que
(A, B) = (X, Y ) ⇔ (A = X) ∧ (B = Y )
(c) Sean A y B dos clases. El axioma de formacion asegura la exis-tencia de una clase constituida por pares ordenados
A× B = {(x, y) : (x ∈ A) ∧ (y ∈ B)}llamada producto cartesiano de A por B.
1.1. TEORIA DE CONJUNTOS 19
8. Axioma de la imagen
Una aplicacion f : A → B es una regla que asigna a cada elemento xde la clase A un unico elemento f(x) de la clase B. Por el axioma de
formacionf(A) = {f(x) : x ∈ A}
es una clase que llamamos imagen de A por f . Ahora postulamos
que si A es un conjunto, f(A) tambien es un conjunto.
(a) De este axioma y el de la union deducimos que si A y B son
conjuntos, el producto cartesiano A×B tambien es un conjunto.En efecto:
Para cada x ∈ A definimos la aplicacion
fx : B → A × B tq fx(y) = (x, y) ∀y ∈ B
cuya imagen fx(B) = {(x, y) : y ∈ B} = {x} × B es un
conjunto. La union de la familia de conjuntos {fx(B) : x ∈ A}que, claramente, es el producto A × B, es un conjunto.
(b) Si A y B son conjuntos, la clase constituida por todas las aplica-
ciones f : A → B, que denotaremos BA, es un conjunto.En efecto:Cada aplicacion f : A → B es una subclase del conjunto A × B
y, por tanto, un elemento del conjunto P(A× B). Precisamente,
BA = {x : (x ∈ P(A× B)) ∧ m[x]}
siendo m la propiedad ”para cada a ∈ A uno y solo un b ∈ B”.
Luego, por el axioma de formacion, BA es un conjunto.
9. Axioma del atomo
En todo conjunto A 6= ∅ existe un elemento a ∈ A tal que a ∩ A = ∅.Se admite que un conjunto A pueda tener elementos que sean clases
que, a su vez, contengan elementos de A pero no todos los elementosde A pueden ser de este tipo. Alguno, que llamaremos atomo a, debe
cumplir que (x ∈ A) ⇒ ¬(x ∈ a).
(a) Ningun conjunto A puede ser elemento de sı mismo pues,
A ∈ A ⇒ A ∈ A ∩ {A} ⇒ A ∩ {A} 6= ∅
y como A es el unico elemento de {A}, este conjunto {A} nocumplirıa el axioma del atomo. En consecuencia, A 6= {A}.
(b) Si A y B son conjuntos no vacıos no puede ser que A ∈ B y
B ∈ A pues, en tal caso, el conjunto {A, B} serıa un ejemplo deconjunto sin atomos.
20 CAPITULO 1. CONJUNTOS, LISTAS Y DICCIONARIOS
10. Axioma del infinito
Una aplicacion f : A → B tanto puede asociar a distintos elementosde A el mismo elemento de B, como tener f(A) ⊂ B estrictamente.
Para destacar las mejores cualidades decimos que f es
(a) inyectiva si (x1 6= x2) ⇒ (f(x1) 6= f(x2))
(b) suprayectiva si f(A) = B(c) biyectiva si es inyectiva y suprayectiva. En tal caso, existe,
y tambien es biyectiva, la aplicacion inversa de f
f−1 : B → A tq (f−1(y) = x) ⇔ (f(x) = y)
Si entre dos clases A y B se puede definir una aplicacion biyectivadecimos que son biyectables y escribimos A ∼ B o B ∼ A.
Si una clase no vacıa es biyectable con alguna de sus subclases propias,se dice infinita. El axioma del infinito postula la existencia de con-
juntos infinitos. Son necesarios algunos conceptos y notaciones paraprofundizar en su estudio.
(a) Si f : A → B y g : B1 → C son aplicaciones y B ⊂ B1, desig-
namos g|B a la restriccion de g a B y llamamos compuesta de gcon f a la aplicacion
g ◦ f : A → C tq g ◦ f(x) = g(f(x)) ∀x ∈ A
Si B ⊂ A, podemos definir por iteracion las composiciones
f ◦ f = f2, f2 ◦ f = f3, · · · , fn ◦ f = fn+1, · · ·
(b) Sea X un conjunto cualquiera y f : X → X una aplicacion.Decimos que A ⊂ X es invariante1 si f(A) ⊂ A.
Dado cualquier B ⊂ X no vacıo podemos considerar la familia desubconjuntos de X que contienen a B y son invariantes. La inter-seccion de esta familia es el subconjunto Bf ⊂ X que llamamos
envoltura invariante de B por cumplir las tres propiedades quesiguen.
i. B ⊂ Bf
ii. Bf es invariante.
iii. Si A es invariante y B ⊂ A, tambien Bf ⊂ A.
En efecto:
Sea {Ai : i ∈ I} la familia de todos los subconjuntos de X quecontienen a B y son invariantes.
1En caso de duda diremos f -invariante
1.1. TEORIA DE CONJUNTOS 21
i. Como B ⊂ Ai ∀i ∈ I , es claro que B ⊂⋂
i∈I
Ai = Bf
ii. Como f(Bf ) ⊂ f(Ai) ⊂ Ai ∀i ∈ I , es claro que f(Bf ) ⊂ Bf
iii. A es miembro de la familia {Ai : i ∈ I} luego Bf ⊂ A.
Destacamos la cuarta propiedad siguiente
Teorema 1.1.1 Principio de induccion completa
Para demostrar que Bf ⊂ Y basta comprobar que
B ⊂ Y y f(Bf ∩ Y ) ⊂ Y
Demostracion:
Si B ⊂ Y se cumple que B ⊂ Bf ∩ Y ⊂ Bf y, por tanto,
f(B) ⊂ f(Bf ∩ Y ) ⊂ f(Bf ) ⊂ Bf .
Si f(Bf ∩ Y ) ⊂ Y se cumple que f(Bf ∩ Y ) ⊂ Bf ∩ Yluego Bf ∩Y es invariante y contiene a B y, en consecuencia,Bf ⊂ Bf ∩ Y . Pero esto sucede si y solo si Bf ⊂ Y . ♦
(c) Un conjunto N es numerable si existe un par {u, f}, con u ∈ N
y f : N → N , tal que f es inyectiva, u /∈ f(N ) y {u}f = N .Como u ∈ N y f(N ) ⊂ N , {u, f(u), f2(u), · · · } ⊂ N y, como
{u, f(u), f2(u), · · · } es invariante y contiene a {u}, tambien secumple que N ⊂ {u, f(u), f2(u), · · ·}. Luego N = {u, f(u), f2(u), · · ·}.Ademas, por ser f inyectiva y u /∈ f(N ), todos los elementos
u, f(u), f2(u), · · · son distintos entre sı.Esto nos proporciona una idea secuencial, muy clara, de los con-
juntos numerables que, por ejemplo, nos permite asegurar quedos conjuntos numerables siempre son biyectables.
(d) Todo conjunto numerable es infinito.
En efecto:Si N es un conjunto numerable y f es la inyeccion canonica, esclaro que N ∼ f(N ). Ademas, el contenido f(N ) ⊂ N es estricto
porque u /∈ f(N ).
(e) Todo conjunto infinito tiene un subconjunto numerable.En efecto:
Sea A un conjunto infinito. Existe un B ⊂ A estrictamente y unabiyeccion f : A → B. Podemos pensarla como f : A → A, elegirun u ∈ A \ B y tomar N = {u}f . Como f(N ) ⊂ N tambien
podemos pensarla como una f : N → N que, naturalmente, serainyectiva. Como u /∈ f(A), u /∈ f(N ) y el par {u, f} prueba que
N es numerable.
22 CAPITULO 1. CONJUNTOS, LISTAS Y DICCIONARIOS
11. Axioma de eleccion
Dada una familia {Ai | i ∈ I} de conjuntos no vacıos y disjuntos dos ados, existe un conjunto E que consta exactamente de un elemento de
cada conjunto Ai.
Este axioma ha sido el mas contestado. Conocimos a un lord inglesque tenıa infinitos pares de zapatos e infinitos pares de calcetines. Sumayordomo Charles no tenıa ningun problema para formar un con-
junto cogiendo un zapato de cada uno de los pares pues siempre elegıael derecho. Sin embargo, se negaba a hacer lo mismo con el conjunto
de calcetines.
Godel probo en 1938 que si la teorıa basada en los 10 primeros axio-mas es consistente, tambien lo es la basada en los 11 axiomas y Cohen
probo en 1963 que el axioma de eleccion no se deriva de los otros 10.Ası pues, aunque Charles puede justificar razonadamente su negativa,
nosotros tenemos derecho a un universo matematico donde se puedeelegir sin restricciones. En ese universo se pueden hacer las siguientesextensiones:
(a) Sea X un conjunto cualquiera y {Ai : i ∈ I} cualquier familia
de subconjuntos con X =⋃
i∈I
Ai. Si Y es un conjunto arbitrario
y {fi : Ai → Y : i ∈ I} es una familia de funciones tal quefi|Ai∩Aj
= fj |Ai∩Aj∀(i, j) ∈ I × I , existe una unica funcion
f : X → Y que extiende a cada fi. Es decir, f |Ai= fi ∀i ∈ I .
(b) Si {Ai : i ∈ I} es una particion de X y {fi : Ai → Y : i ∈ I}es una familia de funciones, existe una unica funcion f : X → Yque es extension de cada fi.
Una parte importante del trabajo matematico que se puede realizar sobre
estos 11 axiomas, consiste en hacer operaciones con los elementos de un con-junto X o establecer relaciones entre ellos.
Una operacion interna en X es una aplicacion
∗ : X × X → X(x, y) 7→ x ∗ y
Diremos que esta operacion es
• asociativa si (x ∗ y) ∗ z = x ∗ (y ∗ z) ∀x, y, z ∈ X
• conmutativa si x ∗ y = y ∗ x ∀x, y ∈ X
• l-cancelativa si x ∗ y = x ∗ z ⇒ y = z ∀x, y, z ∈ X
1.1. TEORIA DE CONJUNTOS 23
• r-cancelativa si x ∗ y = z ∗ y ⇒ x = z ∀x, y, z ∈ X
• cancelativa si es l-cancelativa y r-cancelativa.
El conjunto X dotado de la operacion ∗ es una estructura que designamos
(X, ∗). En ella pueden existir elementos destacables:
• a ∈ X es absorbente si a ∗ x = x ∗ a = a ∀x ∈ X
• e ∈ X es neutro si e ∗ x = x ∗ e = x ∀x ∈ X
No esta asegurada la existencia de estos elementos pero si alguno existe,debe ser unico. La coexistencia de ambos se da si y solo si X = {a} = {e}.
La estructura (X, ∗) se llama semigrupo si la operacion ∗ es asociativa.Si, ademas, ∗ es conmutativa, el semigrupo se dice abeliano. Un semigrupo
(X, ∗) con elemento neutro e es un monoide y se denota (X, ∗, e).
Si en X , ademas de ∗, tenemos una segunda operacion � diremos que es
• l-distributiva con ∗ si x�(y∗z) = (x�y)∗(x�z) ∀x, y, z ∈ X
• r-distributiva con ∗ si (x∗y)�z = (x�z)∗(y�z) ∀x, y, z ∈ X
• distributiva con ∗ si es l-distributiva y r-distributiva.
Una relacion binaria en X es un elemento P del conjunto P(X × X).Diremos que
x esta P -relacionado con y ⇔ (x, y) ∈ P
El conjunto de todas las relaciones binarias de X se denota R(X).
La diagonal 4 = {(x, x) | x ∈ X} es un importante elemento de R(X).La transposicion canonica
> : X × X → X × X(x, y) 7→ (y, x)
lleva a cada P ∈ R(X) en la relacion traspuesta >(P ).
En R(X) definimos una operacion interna que llamamos composicion,
◦ : R(X)×R(X) → R(X)(P, Q) 7→ P ◦ Q
tal que P ◦ Q = {(x, y) ∈ X × X | ∃z ∈ X con (x, z) ∈ Q y (z, y) ∈ P}.En general, (R(X), ◦) es un semigrupo no conmutativo con unidad ∆ yelemento absorbente ∅ que admite divisores pues, por ejemplo,
{(x1, y1)} ◦ {(x2, y2)} = ∅ si x1 6= y2.
24 CAPITULO 1. CONJUNTOS, LISTAS Y DICCIONARIOS
Es facil comprobar la propiedad distributiva de la composicion respecto a la
union de relaciones:
(
⋃
i∈I
Pi
)
◦
⋃
j∈J
Qj
=⋃
(i,j)∈I×J
Pi ◦ Qj.
Una relacion P ∈ R(X) es reflexiva si ∆ ⊂ P , es simetrica si P = >(P ),
es antisimetrica si P ∩ >(P ) = ∆ y es transitiva si P ◦ P ⊂ P .
Si E ∈ R(X) es reflexiva, simetrica y transitiva diremos que es una relacion
de equivalencia. En este caso si (x, y) ∈ E escribiremos x ∼ y. Cadaelemento x ∈ X genera una clase de equivalencia
[x] = {x′ ∈ X | x′ ∼ x}.
El conjunto cociente X/ ∼= {[x] | x ∈ X} es una particion de X ya que∀x, y ∈ X tenemos la disyuntiva:
[x] ∩ [y] = ∅ o [x] = [y].
La biyectabilidad que hemos definido en la clase universal U ,
A ∼ B ⇔ ∃f : A → B biyectiva
es, claramente, una relacion de equivalencia. El elemento de U/ ∼ de
representante A se suele denotar card(A) o |A| y se llama cardinal de A.
Una relacion transitiva se llama preorden y suede denotarse ≺. Si enun conjunto X tenemos el preorden ≺, podemos definir la relacion �
(x � y) ⇔ (x ≺ y) ∨ (x = y)
que es transitiva y reflexiva. En el conjunto preordenado (X,�) son
importantes los siguientes conceptos:
1. M ∈ X es maximal si M � x ⇒ x � M
2. m ∈ X es minimal si x � m ⇒ m � x
3. s ∈ X es cota superior de A ⊂ X si x � s ∀x ∈ A.
4. σ ∈ X es supremo de A ⊂ X si
(a) σ es cota superior de A
(b) σ � s ∀s cota superior de A
5. i ∈ X es cota inferior de A ⊂ X si i � x ∀x ∈ A.
1.1. TEORIA DE CONJUNTOS 25
6. ı ∈ X es ınfimo de A ⊂ X si
(a) ı es cota inferior de A
(b) i � ı ∀i cota inferior de A
7. No esta asegurada la existencia de supremo (ınfimo) para cualquier
A ⊂ X pero, si existe, es unico. Lo designamos, sup A (inf A) pero, sisup A ∈ A (inf A ∈ A), preferimos hablar del maximo de A (mınimo
de A) y denotarlo maxA (minA).
8. Un subconjunto A ⊂ X se dice que es una cadena si
∀{x, y} ⊂ A se cumple que (x � y) ∨ (y � x)
Para estudiar la repercusion del axioma de eleccion en cuestiones de ordennecesitamos la definicion y el lema siguientes:
Definicion 1.1.2 Sea X un conjunto no vacıo y el conjunto preordenado(P(X),⊂). Una pareja {T , f} con T ⊂ P(X) y f : T → X , es una torre
en P(X), si cumple las tres condiciones siguientes
T1. ∅ ∈ T
T2. (C es cadena)∧(C ⊂ T ) ⇒ (⋃
A∈CA ∈ T )
T3. (A ∈ T ) ⇒ (A ∪ {f(A)} ∈ T )
Lema 1.1.3 Lema de la torreSi {T , f} es una torre en P(X), existe un A ∈ T tal que f(A) ∈ A.
Demostracion:
Es evidente que si {{Ti, f} : i ∈ I} es una familia de torres en P(X),
{⋂
i∈I
Ti, f} tambien es una torre y, por tanto, la interseccion de todas las
subtorres de {T , f} es una subtorre minimal {M, f}. Probaremos que M es
una cadena en (P(X),⊂) y podremos tomar A =⋃
M∈MM ya que, entonces,
A ∈ M ⇒ A ∪ {f(A)} ∈ M ⇒ A ∪ {f(A)} ⊂ A ⇒ f(A) ∈ A
Para probar que M es una cadena en (P(X),⊂), buscamos una propiedadcaracterıstica de los elementos de M que estan relacionados, segun ⊂, con
todos los demas elementos de M. Los llamamos enlaces y si E es uno deellos, para cualquier M ∈ M solo se puede dar uno de los dos casos
{
M ⊂ E
E ∪ {f(E)} ⊂ M.
26 CAPITULO 1. CONJUNTOS, LISTAS Y DICCIONARIOS
Ello se debe a que la familia
ME = {M ∈ M : (M ⊂ E) ∨ (E ∪ {f(E)} ⊂ M)}
y la aplicacion f constituyen una torre {ME, f} contenida en {M, f} y, elcaracter minimal de esta asegura que ME = M.
Esta propiedad de los enlaces asegura que si E es uno de ellos, E ∪ {f(E)}tambien lo es y, por tanto, E = {E ∈ M : E es un enlace} y f cumplen lacondicion T3 de las torres. Las otras dos condicionnes T1 y T2 son evidentes
y, ası, {E , f} es una subtorre de {M, f}. Su caracter minimal asegura queE = M y, ası, todo elemento de M es un enlace y M es una cadena. ♦.
Lema 1.1.4 Lema de Zorn En un conjunto preordenado (X,�) en el quetoda cadena tiene cota superior, existe al menos un elemento maximal.
Demostracion:
Sea C ⊂ P(X) el conjunto de todas las cadenas de X . Para cada A ∈ Celegimos una cota superior aA y consideramos el conjunto
TA = {x ∈ X : (aA � x) ∧ ¬(x � aA)}
Si TA = ∅ es claro que aA es maximal en (X,�) y la prueba esta concluida.Si suponemos, por el contrario, que {TA : A ∈ C} es una familia de conjuntos
no vacios, el axioma de eleccion nos asegura la existencia de una eleccion
f : C → XA 7→ f(A) ∈ TA
Considerando C ′ = C ∪ {∅} y extendiendo de cualquier modo la f a unaf ′ : C ′ → X , obtenemos la pareja {C ′, f ′} que es torre en P(X). En efecto:
T1. Se cumple por la propia definicion de C ′
T2. Si {Ai : i ∈ I} es una cadena en C ′, U =⋃
i∈I
Ai esta en C ′:
Debemos probar que si U 6= ∅, es una cadena en (X,�). Tomemos al
arbitrio un par {x, y} ⊂ U . Es claro que (x ∈ Aix)∧ (y ∈ Aiy) y como(Aix ⊂ Aiy) ∨ (Aiy ⊂ Aix) resulta que ({x, y} ⊂ Aix) ∨ ({x, y} ⊂ Aiy).
Tanto Aix como Aiy son cadenas en (X,�) luego, (x � y) ∨ (y � x)y, en consecuencia, U es una cadena.
T3. Si A = ∅, A∪{f ′(A)} es un atomo e X luego, trivialmente, una cadenaen (X,�). Si A ∈ C, f ′(A) = f(A) ∈ TA y debemos comprobar que
A ∪ {f(A)} es una cadena en (X �). Como A ya es cadena solo faltarelacionar cualquier x ∈ A con f(A) y ello es facil pues x � aA y
aA � f(A).
1.1. TEORIA DE CONJUNTOS 27
El lema de la torre asegura la existencia de un A ∈ C ′ tq f ′(A) ∈ A.
En particular, A 6= ∅ y f ′(A) = f(A) y caemos en la contradiccion
{
f(A) ∈ A ⇒ f(A) � aA
f(A) ∈ TA ⇒ ¬(f(A) � aA)
Ası pues, en la familia {TA : A ∈ C} debe haber algun TA = ∅. ♦
Un preorden reflexivo y antisimetrico es un orden y se representa habitual-
mente por ≤. El conjunto X con el orden ≤ es un conjunto ordenado quese denota (X,≤). Diremos que (X,≤) es totalmente ordenado si
∀{x, y} ⊂ X se cumple (x ≤ y) ∨ (y ≤ x)
Un subconjunto A de un conjunto totalmente ordenado (X,≤) tiene primerelemento si ∃p ∈ A tal que p ≤ x ∀x ∈ A.
Si todo subconjunto no vacıo de (X,≤) tiene primer elemento, se dice que(X,≤) esta bien ordenenado o tiene buena ordenacion.
Lema 1.1.5 Lema de Zermelo En un conjunto cualquiera X se puede definirun orden total ≤ de forma que (X,≤) este bien ordenado.
Demostracion:
En X siempre hay subconjuntos que pueden ser bien ordenados, como, porejemplo, el vacıo o un atomo. Consideramos la familia
F ={
(A,≤A) : (A ∈ P(X))∧ (≤
Aes buen orden en A)
}
y en ella definimos la relacion a
(A,≤A) a (B,≤
B) ⇔
A ⊂ B
≤B
=≤A
enA
(x ∈ A) ∧ (y ∈ B \ A) ⇒ (x ≤B
y)
que es, claramente, un preorden. Si comprobamos que en (F , a) toda ca-
dena tiene cota superior, el lema de Zorn nos asegurara, la existencia de unelemento maximal (M,≤
M) que debera cumplir M = X pues, si existiese
x ∈ X \M lo anadirıamos a (M,≤M
) como ultimo elemento y obtendrıamosun (M ′,≤′) ∈ F que negarıa el caracter maximal de (M,≤
M). Ası, ≤
Msera
un buen orden en X .Comprobemos, pues, que (F , a) cumple la hipotesis de Zorn:
Dada la cadena {(Ai,≤i) : i ∈ I} buscamos una cota superior (U,≤). Es
claro que debemos tomar U =⋃
i∈I
Ai. Veamos como definir ≤:
∀{x, y} ∈ U tenemos(
(x ∈ Aix)∧(y ∈ Aiy))
∧
(
(Aix ⊂ Aiy)∨(Aiy ⊂ Aix))
.
28 CAPITULO 1. CONJUNTOS, LISTAS Y DICCIONARIOS
Luego, ∃j ∈ I tq {x, y} ⊂ Aj . Podemos definir x ≤ y ⇔ x ≤j y
pues, si {x, y} ⊂ Ak para k 6= j, sabemos que (x ≤j y) ⇔ (x ≤k y).Es claro que (U,≤) es totalmente ordenado. Veamos que esta bien ordenado:
Si Q ⊂ U es no vacıo, ∃i ∈ I tq Q ∩ Ai 6= ∅. Sea q el primer elementode este subconjunto no vacio de (Ai,≤i) y comprobemos que tambien es
primer elemento de Q. Para cualquier y ∈ Q \ Ai debe existir un j ∈ I talque Ai ⊂ Aj e y ∈ Aj \ Ai luego q ≤j y. En resumen,
∃i ∈ I tq
{
q ≤ x ∀x ∈ Q ∩ Ai
q ≤ y ∀y ∈ Q \ Ai
luego q ≤ z ∀z ∈ Q
Luego (U,≤) ∈ F . Es muy facil ver que (Ai,≤i) a (U,≤) ∀i ∈ I ♦
Del axioma de eleccion hemos deducido el lema de Zorn y de este, el deZermelo. Podemos cerrar el cırculo viendo que del lema de Zermelo se de-
duce el axioma de eleccion:Dada una familia {Ai | i ∈ I} de conjuntos no vacıos y disjuntos dos a dos,
consideramos el conjunto X =⋃
i∈I
Ai y, en el, una buena ordenacion. Cada
Ai tendra un primer elemeto pi y el conjunto E = {pi : i ∈ I} constara
exactamente de un elemento de cada conjunto Ai.
Los lemas de Zorn y de Zermelo son aceptables si y solo si se acepta elaxioma de eleccion. Nosotros podremos usar esas dos potentes herramientas
para demostrar importantes teoremas de existencia.
En cada elemento de la clase universal U se puede definir, al menos, unabuena ordenacion. Por tanto, la clase
V = {(X,≤) : (X ∈ U) ∧ (≤ es buen orden en X)}
es tan o mas amplia que U . En V podemos considerar la relacion
(A,≤) ' (B,≤′) ⇔ ∃f : A → B biyectiva tq a1 ≤ a2 ⇒ f(a1) ≤′ f(a2)
que es, claramente, de equivalencia. El elemento de V/ ' de repre-
sentante (A,≤) se suele denotar ω(A,≤) y se llama ordinal de (A,≤).En este texto a un ordinal finito le llamaremos a veces alfabeto y a suselementos letras.
1.1.6 Clausura transitiva de una relacion.
Un elemento p de una relacion P ∈ R(X) es un par ordenado de elemen-tos de X que podemos denotar genericamente por (p−, p+). Una n-tupla
(p1, · · · , pn) ∈ Pn es un n-camino en X si p+i = p−i+1 ∀i = 1, · · · , n − 1.
1.1. TEORIA DE CONJUNTOS 29
Esta circunstancia la resaltamos escribiendo (p1, · · · , pn). Los elementos de
X, p−1 y p+n son llamados el origen y el final del camino. Denotamos por Pxy
el conjunto de todos los caminos con origen x y final y.
Un ciclo es un camino (p1, · · · , pn) con inicio y final iguales que cumple
card(p−1 , p+1 , · · · , p−n , p+
n ) >n
2+ 1
para evitar recorridos de ida y vuelta.
Para cada P ∈ R(X), definimos de forma recursiva
P (1) = P y P (k + 1) = P (k) ◦ P ∀k ∈ N.
Es facil ver que, para k > 1,
P (k) = {(x, y) ∈ X × X | ∃(p1, · · · , pk) ∈ Pxy}.
Definicion 1.1.7 Sea X un conjunto no vacıo, U ⊂ X y P ∈ R(X).
Decimos que U es P -maximal cuando U × U ⊂ P y U ′ × U ′ 6⊂P cuando U ⊂ U ′ y U 6= U ′.
Teorema 1.1.8 Sea X un conjunto no vacıo.
1. Una relacion reflexiva y transitiva C 6= X×X determina una particion
en X constituida por subconjuntos C-maximales a la que llamaremosC-particion.
2. Si D ⊂ C es otra relacion reflexiva y transitiva en X , la D-particiones un refinamiento de la C-particion.
3. La C-particion y la (C ∩ >(C))-particion son iguales y, ası, los con-juntos de la C-particion son las clases de la relacion de equivalencia
(C ∩ >(C)).
Demostracion:
1. Sea x ∈ X . Como (x, x) ∈ 4 ⊂ C, la familia {Xi | i ∈ I} de subcon-juntos de X tales que (x, x) ∈ Xi × Xi ⊂ C es no vacıa. Su union
Xx =⋃
i∈I
Xi tambien cumple que Xx × Xx ⊂ C pues
Xx × Xx =⋃
i∈I
Xi ×⋃
j∈I
Xj =⋃
(i,j)∈I×I
Xi × Xj
y dado cualquier (xi, xj) ∈ Xi ×Xj es claro que (xi, x) ∈ Xi ×Xi ⊂ Cy (x, xj) ∈ Xj × Xj ⊂ C con lo cual (xi, xj) ∈ C ◦ C ⊂ C.
Ası, para cada x ∈ X encontramos un Xx C-maximal que lo contiene.
30 CAPITULO 1. CONJUNTOS, LISTAS Y DICCIONARIOS
Ademas, si y 6= x son dos puntos de X se tiene la alternativa Xy =
Xx o Xy ∩ Xx = ∅. En efecto:Si Xy 6= Xx y ∃z ∈ Xy ∩ Xx es claro que
{
Xy × Xx = {(y1, x1) | ∃z tal que (y1, z) ∈ C y (z, x1) ∈ C} ⊂ C ◦ C ⊂ C
Xx × Xy = {(x1, y1) | ∃z tal que (x1, z) ∈ C y (z, y1) ∈ C} ⊂ C ◦ C ⊂ C
y, por tanto,
(Xy∪Xx)×(Xy∪Xx) = (Xy×Xy)∪(Xx×Xx)∪(Xy×Xx)∪(Xx×Xy) ⊂ C
con lo que, por suponer Xy 6= Xx, ni Xy ni Xx serıan C-maximales.
2. Inmediato.
3. Por 2, la (C ∩ >(C))-particion es un refinamiento de la C-particion.Pero es claro que si Xi × Xi ⊂ C tambien se cumple que Xi × Xi ⊂C ∩ >(C) y, por tanto, la C particion tambien es un refinamiento dela (C ∩ >(C))-particion, luego ambas particiones coinciden. ♦
Teorema 1.1.9 Sea X un conjunto no vacıo y P ∈ R(X).
1. T =
∞⋃
k=1
P (k) es una relacion transitiva en X .
2. Si card(P ) = m, T =
m⋃
k=1
P (k).
3. C = 4 ∪ T es una relacion reflexiva y transitiva en X y, por tanto,
determina una C-particion.
Demostracion:
1. T ◦ T =
( ∞⋃
i=1
P (i)
)
◦
∞⋃
j=1
P (j)
=∞⋃
k=1
P (k) = T.
2. Evidentemente
m⋃
k=1
P (k) ⊂ T . Para probar la otra inclusion, si (x, y) ∈
T existe n ∈ N tal que (x, y) ∈ P (n). Si n ≤ m la demostracion esta
terminada. Si n > m existe un n-camino (p1, . . . , pn) con p−1 = x yp+
n = y. Alguno de esos pj ∈ P deberıa aparecer mas de una vez enel n-camino y cambiando la parte pj, · · · , pj por pj, obtenemos que
(x, y) ∈ P (`) con ` < n. Si ` ≤ m la prueba esta terminada pero si` > m podemos repetir el argumento anterior. En un numero finito
de pasos, terminaremos la demostracion.
1.2. CONJUNTOS EN SAGE 31
3. Es evidente que 4 ⊂ C, luego es reflexiva. Ademas, es transitiva pues
C ◦C = (4∪ T ) ◦ (4∪ T ) = 4∪ T = C.
Segun 1.1.8, C determina una particion en X constituida por subcon-juntos C-maximales. ♦
La relacion T definida en 1.1.9,1 se llama la clausura transitiva de P .
1.2 Conjuntos en SAGE
Podemos utilizar SAGE para manejar conjuntos finitos y realizar las opera-
ciones definidas en el Axioma 2.
Un conjunto no vacıo puede denotarse enumerando sus elementos entrellaves. Cualquier conjunto, incluso el ∅, se denota enumerando sus elementos
entre corchetes precedidos de la palabra set. Por ejemplo:
S1 = {0, 1, 2, 3, 5}S2 = set([ ])
S3 = set([0, 3, 4, 6])
La union y la interseccion de conjuntos se realizan con las ordenes S1.union(S3)
y S1.intersection(S3) o con los comandos S1 | S2 y S1 & S3.
La diferencia S1 \ S3 se realiza con el comando S1 − S3.
1.3 Listas en SAGE
Definicion 1.3.1 Una lista L de longitud n > 0 en un conjunto C es una
aplicacion de un alfabeto de n letras (ver pag. 28) en C. Salvo mencion encontra, tomaremos como alfabeto canonico ({0, 1, ..., n− 1},≤) siendo ≤ elorden natural en N, y lo designaremos (0, 1, · · · , n− 1). Representaremos L
como la aplicacion:L : (0, 1, ..., n− 1) → C
En SAGE se escribe enumerando los elementos de la imagen entre corchetes:
[[L[0], L[1], ..., L[n− 1]]
La orden len(L) nos da la longitud de la lista L. El ultimo elemento L[n−1]lo podemos obtener con la orden L[−1] independiente de la longitud.
Dada una lista L : (0, 1, ..., n − 1) → C y un par (i, j) ∈ N × N tal que0 ≤ i < j ≤ n − 1, la orden L[i : j] genera la lista Lij : (0, ..., j − i) → C
cuya imagen es [L[i], L[i+ 1], ..., L[j− 1]]. En particular:
32 CAPITULO 1. CONJUNTOS, LISTAS Y DICCIONARIOS
Si j = n− 1, la orden se escribe L[i :] y genera la lista cuya imagen es
[L[i], L[i+ 1], ..., L[−1]]
Si i = 0, la orden se escribe L[: j] y genera la lista cuya imagen es
[L[0], L[1], ..., L[j − 1]]
Dada una lista L : (0, 1, ..., n− 1) → C y una k-tupla de numeros naturalesK = (i0, · · · , ik−1) tal que 0 ≤ i0 < · · · < ik−1 ≤ n − 1, la funcion selen-
list(L,K) nos da una lista cuya imagen es [L[i0], L[i1], ..., L[ik−1]].
Para saber el lugar que ocupa un elemento a en la imagen de una listaL : (0, 1, ..., n− 1) → C, usaremos la orden L.index(a).
Para saber cual es el siguiente de un elemento b en la imagen de una lista
L, podemos usar la funcion sig(b,L).
Para reordenar la imagen de una lista L de atras a delante usamos la orden
de SAGE L.reverse() que convierte la lista L en la nueva funcion. Por ello,puede ser conveniente ejecutar primero la orden M=copy(L) y luego la orden
M.reverse().
Para saber si, conjuntistamente, los elementos de la imagen de una lista Lestan en la imagen de otra lista M podemos usar la funcion conliset(L, M).
Para saber si, conjuntistamente, coinciden las imagenes de dos listas L y
M usamos la funcion igualiset(L, M).
La concatenacion de las imagenes de las listas L y M se realiza con la
orden L+M.
Dada una lista L : (0, 1, · · · , n − 1) → C la orden L.append(a) genera lalista La : (0, 1, ..., n) → C tal que L[i] = La[i] ∀i ∈ {0, 1, ..., n − 1} y
L[n] = a.
La supresion en la imagen de la lista L, de los elementos de la imagende la lista M , se consigue con la funcion restalistas(L,M).
La funcion depuralista(L) suprime de la imagen de la lista L los elemen-tos repetidos.
La funcion mezclalistas(L,M) construye una nueva lista en cuya imagen
aparecen, alternativamente, un elemento de la de mayor longitud y otro
1.3. LISTAS EN SAGE 33
de la de menor longitud. Cuando se acaban los elementos de la mas corta,
anade los elementos que quedan de la mas larga. Si ambas listas tienen lamisma longitud, toma alternativamente un elemento de la imagen de L y
otro la imagen de M .
En SAGE se puede obtener el listado de las permutaciones de la imagende una lista L, con elementos repetidos o no, mediante la orden Permuta-tions(L).list() y el listado de sus combinaciones de n elementos con la orden
Combinations(L,n).list()
Para cada numero natural n, range(n) es la lista correspondiente a la in-clusion canonica
I : (0, 1, ..., n− 1) → N
Dados tres numeros reales a, b, h tales que a < b y h < b − a, la orden[a, a + h..b] nos da la lista en R
L : (0, 1, ..., n) → R
k 7→ a + kh
donde n = max{m | a + mh ≤ b}.
La funcion listareales(m,M,n) nos devuelve una lista de numeros reales delongitud n cuya imagen son puntos aleatorios del intervalo [m, M ].
Dada una lista L de reales, min(L) y max(L) nos dan el mınimo y el maximo
de su imagen.
Dada una lista L de reales, la orden L.sort() la convierte en una nueva listacuyas imagenes estan en orden ascendente. Por ello, ejecutaremos primerola orden M=copy(L) y luego la orden M.sort().
Dada una lista L : (0, 1, · · · , n − 1) → R y una funcion f : R → C la
orden map(f,L) nos define la lista f ◦ L : (0, 1, · · · , n− 1) → C. Si L[i] es elpunto de la lista L donde f toma su valor maximo, la funcion MAX(f, L)
nos devuelve [f(L[i]), [L[i]] ], del mismo modo, si L[j] es el punto de lalista L donde f toma su valor mınimo, la funcion MIN (f, L) nos devuelve
[f(L[j]), [L[j]] ].
La funcion listacomplejos(T,n) nos devuelve una lista de longitud n denumeros complejos cuyas imagenes estan aleatoriamente distribuidas en elcuadrado [−T, T ]×[−T, T ]. La funcion lon(L) nos devuelve la longitud de la
poligonal determinada por las imagenes de la lista L y la longitud del tramomayor. Las funciones plce(L) y plse(L) pintan, con o sin ejes, las imagenes
de una lista de numeros complejos en color rojo, modificandolas facilmente
34 CAPITULO 1. CONJUNTOS, LISTAS Y DICCIONARIOS
podemos pintarlos en otros colores, por ejemplo la funcion plceb(L) lo hace
en color azul.
Las ordenes sum(L) y prod(L) nos dan la suma y el producto de todaslas imagenes de una lista numerica L.
La lista numerica L puede ser modificada sumando, restando, multiplicandoo dividiendo cada uno de los elementos de su imagen por uno fijo z mediante
la funcion oplista(L,o,z) donde (la operacion) o puede ser (la suma) s, (laresta) r , (la multiplicacion) m o (la division) d.
Son de utilidad las siguientes listas de SAGE cuyas imagenes constituyen
configuraciones de interes geometrico de puntos del plano complejo:
1. La funcion rectangular(n, m, b, h) nos devuelve una lista de longitudn × m de complejos distribuidos rectangularmente con n puntos en labase y m puntos en la altura, siendo b y h las distancias respectivas.
Por ejemplo, rectangular(20, 10, 2, 1)
Figura 1.1: rectangular(20,10,2,1)
2. La funcion triangular(n, b, h) una lista de longitudn(n+1)
2 de complejoscon distribucion triangular isosceles de n puntos en la base a distancia
b y alturas h. Por ejemplo, triangular(20, 2, 1)
Figura 1.2: triangular(20,2,1)
1.3. LISTAS EN SAGE 35
3. La funcion hexagonal(m, n, r) nos da una lista de longitud 2(n + m +
mn) de complejos situados en los vertices de n×m hexagonos de lador. Por ejemplo, hexagonal(5, 4, 1)
Figura 1.3: hexagonal(5,4,1)
4. La funcion radial(n, m, r, d) nos da una lista de longitud n×m de com-
plejos situados en los vertices de m polıgonos regulares de n vertices,homoteticos respecto de 0, siendo el primero de radio r, el segundo
de radio r + d, el tercero de radio r + 2d y, ası sucesivamente. Porejemplo, radial(8, 12, 1, 3).
Figura 1.4: radial(8,12,1,3)
Para experiementar con colectivos y empresas hemos disenado las funciones:
1. Poblacion(Ai, Af , n) genera una lista de n espanoles nacidos entre los
anos Ai y Af determinando aleatoriamente los datos de su DNI.
2. PoblacionQ(A,n) genera una lista de n espanoles que en el ano A tienen
entre 18 y 55 anos determinando aleatoriamente los datos de su DNI,su titulacion academica y el ambito de su formacion.
36 CAPITULO 1. CONJUNTOS, LISTAS Y DICCIONARIOS
1.4 Diccionarios en SAGE
Definicion 1.4.1 Un diccionario de palabras de m letras, con m > 1, delalfabeto de n letras (X,≤) y valores en el conjunto C es una aplicacion
D : Xm → C.
Si en Xm consideramos el orden lexicografico heredado de ≤, el diccionario
D se puede considerar una lista en un alfabeto de (n − 1)m letras.
Si x ∈ Xm se expresa como (x, y), con x ∈ X e y ∈ Xm−1 en lugar dela aplicacion D podemos usar la aplicacion:
D : X → CXm−1donde x 7→ Dx
siendo Dx la aplicacion:
Dx : Xm−1 → C tal que y 7→ D(x, y) .
Si SD y SDx son los soportes de las aplicaciones anteriores, esta informacion
se puede archivar en SAGE en la forma:
{x : {y : D(x, y) | y ∈ SDx}|x ∈ SD}
A su vez, si m − 1 > 1,Dx : Xm−1 → C
sera un diccionario de palabras de m−1 letras. Podremos iterar este proceso
k veces, justamente hasta que m − k = 1, en cuyo caso la aplicacion
Dx1...xk: X → C
sera una lista de elementos de C.
Para archivar la aplicacion D : Xm → C segun este metodo iterativo, uti-lizamos la funcion funtodict(L) siendo L el grafo del soporte de la aplicacion
D dado en el orden lexicografico de Xm.
Por ejemplo, si X = {0, 1, 2, 3}, m = 2 y C = R el diccionario
S : X × X → R
(x, y) 7→ x + y
cuyo grafo del soporte puede darse como la lista:
L = [[0,1, 1], [0, 2, 2], [0, 3, 3], [1, 0, 1], [1, 1, 2], [1,2, 3], [1, 3, 4], [2,0, 2], [2, 1, 3], [2,2, 4], [2, 3, 5], [3,0, 3], [3, 1, 4], [3, 2, 5], [3, 3, 6]]
con la funcion funtodict(L) obtenemos:
{0 : {1 : [1], 2 : [2], 3 : [3]},
1.5. RELACIONES EN SAGE 37
1 : {0 : [1], 1 : [2], 2 : [3], 3 : [4]},2 : {0 : [2], 1 : [3], 2 : [4], 3 : [5]},3 : {0 : [3], 1 : [4], 2 : [5], 3 : [6]}} .
Puede suceder que funtodict(L) no nos de los ultimos valores en C en-tonces debemos utilizar un proceso iterativo implementado en la funcionredict(L) para conseguirlo.
Por ejemplo, si X = {0, 1, 2}, m = 4 y C = R y el grafo del soporteesta dado por la lista:
L = [[0, 0, 0, 0, 7], [0,0, 1, 0, 6], [0, 1, 2, 0, 5], [1, 0, 1, 0, 4], [1, 1, 1, 2, 3], [1, 2, 2, 2, 1], [2,2, 0, 0, 4], [2, 2, 1, 2, 1], [2,2, 2, 1, 7]]
con la funcion funtodict(L) obtenemos:
{0 : {0 : {0 : [[0, 7]], 1 : [[0, 6]]}, 1 : {2 : [[0, 5]]}},1 : {0 : {1 : [[0, 4]]}, 1 : {1 : [[2, 3]]}, 2 : {2 : [[2, 1]]}},2 : {2 : {0 : [[0, 4]], 1 : [[2, 1]], 2 : [[1, 7]]}}}
considerando DLL = funtodict(L) y utilizando el proceso iterativo:
for c in DLL:
for b in DLL[c]:
DLL[c][b]=redict(DLL[c][b])
DLL
obtenemos,
{0 : {0 : {0 : {0 : [7]}, 1 : {0 : [6]}}, 1 : {2 : {0 : [5]}}},
1 : {0 : {1 : {0 : [4]}}, 1 : {1 : {2 : [3]}}, 2 : {2 : {2 : [1]}}},2 : {2 : {0 : {0 : [4]}, 1 : {2 : [1]}, 2 : {1 : [7]}}}} .
1.5 Relaciones en SAGE
Hemos dicho, (ver pag. 23) que una relacion binaria en un conjunto X esun subconjunto P ⊂ X × X .
Si (X,≤) es un ordinal finito, y en X×X consideramos el orden lexicograficoinducido por ≤, podemos entender P como una lista de SAGE
LP = [ [x, y] for (x, y) in P ]
o como el diccionario de palabras de dos letras en el alfabeto (X,≤)
DP : X × X → R ,
(x, y) 7→{
1 si (x, y) ∈ P
0 si (x, y) /∈ P
38 CAPITULO 1. CONJUNTOS, LISTAS Y DICCIONARIOS
La funcion DP puede ser entendida como la aplicacion:
D : X → RX donde Dx : X → R
x 7→ Dx y 7→ DP (x, y)
que en SAGE se puede archivar como
DP = {x : {y |(x, y) ∈ P} | x ∈ SD}
Para cada n ∈ N la funcion relacion(n) nos genera aleatoriamente unarelacion en el conjunto {0, · · · , n − 1} dada en forma de lista.
La funcion rid(n) nos genera la lista de la relacion identidad en el con-
junto {0, · · · , n − 1}.
Dada una lista L de pares de naturales, la funcion ralfabeto(L) nos de-vuelve el alfabeto (0, · · · , n − 1) mınimo en que puede definirse la relacion
dada por L.
La funcion rtranspose(LP ) genera la lista correspondiente a la relacion
transpuesta >(P ).
Dada una relacion P en forma de lista LP la funcion rlisttomatrix(LP )nos genera una matriz (mi,j) ∈ Mn×n con entradas
mi,j =
{
1 si (i, j) ∈ P
0 si (i, j) /∈ P
Dada una relacion P en forma de lista LP , la funcion rlisttodict(LP ) nosdevuelve P en forma de diccionario DP . A su vez,la funcion rdicttolist(DP )
nos la lista LP .
Dadas dos relaciones P y Q, la funcion comprel(LP , LQ) nos da la lista
de la relacion P ◦Q (ver pag. 23).
La funcion rct(L) hace la clausura transitiva (ver pag. 30) de una relaciondada por la lista L.
Las funciones rreflex(L), rsim(L), rtrans(L), rantisim(L) comprueban
si una relacion dada por la lista L es reflexiva, simetrica, transitiva o anti-simetrica.
Capıtulo 2
Nucleos y digrafos
2.1 Nucleos
Llamamos nucleo a todo diccionario de palabras de 2 letras de un alfabeto
de n letras (X,≤) y valores en R:
k : X × X → R.
El nucleo kt = k ◦ > : X × X → R donde > es la transposicion canonica(ver pag. 23) es el nucleo transpuesto de k.
Un caso importante es el nucleo de Kronecker
δ : X × X → R ,
(x, y) 7→{
1 si x = y
0 si x 6= y
Si (x1, · · · , xn) es una enumeracion cualquiera de X , el nucleo k : X×X → R
es representado por la matriz de Mn×n(R)
Mk =
k(x1, x1) · · · k(x1, xn)...
. . ....
k(xn, x1) · · · k(xn, xn)
El nucleo de Kronecker siempre se representa por la matriz unidad deMn×n(R).
Un nucleo k : X × X → R se dice simetrico si k = kt y en cualquierenumeracion esta representado por una matriz simetrica.
Si el soporte de k, Sk = {(x, y) | k(x, y) 6= 0}, tiene |Sk| = m < n2, en
cualquier software matematico consumiremos menos memoria archivando
39
40 CAPITULO 2. NUCLEOS Y DIGRAFOS
solo el conjunto {(x, y, k(x, y)) | (x, y) ∈ Sk}. En SAGE se guarda esta in-
formacion como la lista
Lk = [ [x, y, k(x, y)] para (x, y) en Sk].
Para una matriz M ∈ Mn×n(R), la funcion kmatrixtolist(M) nos devuelve
un nucleo k expresado en forma de lista Lk y para una lista de tripletasL = [[x, y, r] con (x, y, r) ∈ X × X × R?] la funcion klisttomatrix(L) nosdevuelve un nucleo k expresado en forma de matriz Mk.
Para calcular el alfabeto (X,≤) usamos la funcion kvertices(Lk).
Dados dos nucleos k1 : X × X → R y k2 : X × X → R representados
por las listas Lk1 y Lk2 podemos definir su composicion con la funcioncomposition(Lk1, Lk2) generalizando la composicion de relaciones (vease pag.
38).
Como todo diccionario un nucleo k : X × X → R tambien puede repre-sentarse como la aplicacion:
D : X → RX con Dx : X → R
x 7→ Dx y 7→ k(x, y)
Si SD y SDx son los soportes de estas aplicaciones tambien se puede archivar
esta informacion como el diccionario SAGE:
Dk = {x : {y : k(x, y) | y ∈ SDx} | x ∈ SD}
La funcion klisttodict(Lk) elabora un diccionario Dk a partir de una lista
Lk y la funcion kdicttolist(Dk) hace la conversion inversa.
El conjunto RX de todas las funciones f : X → R, dotado de la suma
puntual y el producto por escalares, tiene estructura de espacio vectorial.
En RX podemos definir el producto escalar (f |g) =
∑
x∈X
f(x)g(x) que lo con-
vierte canonicamente en un espacio euclıdeo. Para cada x ∈ X definimos el
vector ex ∈ RX tal que
ex : X → R
y 7→ δ(x, y)
Si (x1, · · · , xn) es una enumeracion de X , los vectores {ex1, · · · , exn} cons-
tituyen una base ortonormal del espacio euclıdeo RX . Podemos identificar
RX con Rn mediante la aplicacion lineal IX : RX → Rn tal que IX(exi) =
ei ∀i = 1, · · · , n siendo {e1, · · · , en} la base canonica de Rn.
Lema 2.1.1 Un nucleo k : X × X → R induce la aplicacion
2.1. NUCLEOS 41
Lk : RX → RX donde Lkg : X → R
g 7→ Lkg x 7→∑
y∈X
k(x, y)g(y)
que cumple las siguientes propiedades:
1. Lk(g1 + g2) = Lk(g1) + Lk(g2) ∀g1, g2 ∈ RX
2. Lk(λg) = λLk(g) ∀λ ∈ R, ∀g ∈ RX
3. (Lk(ey)|ex) = k(x, y) ∀x, y ∈ X
Demostracion:
Las dos primeras son inmediatas y aseguran que Lk : RX → R
X es unaaplicacion lineal. La tercera tambien es facil:
(Lkey|ex) =∑
x′∈X
Lkey(x′)ex(x
′) = Lkey(x) =∑
y′∈X
k(x, y′)ey(y′) = k(x, y). ♦
Por tanto, para una enumeracion (x1, · · · , xn) de X o una base {ex1, · · · , exn}de R
X , el operador Lk : RX → R
X viene representado por la matriz deMn(R) cuyas entradas son
(Lkexj|exi
) = k(xi, xj)
El nucleo transpuesto kt : X × X → R induce el operador lineal
Lkt : RX → RX donde Lktf : X → R
f 7→ Lktf y 7→∑
x∈X
kt(y, x)f(x)
y es claro que Lkt es el adjunto de Lk pues para todo f, g ∈ RX se cumple:
(Lkg|f) =∑
x∈X
∑
y∈X
k(x, y)g(y)
f(x) =∑
y∈X
(
∑
x∈X
kt(y, x)f(x)
)
g(y) = (g|Lktf).
Si k : X × X → R es un nucleo simetrico, el operador Lk : RX → RX
coincide con su adjunto Lkt y por ello se dice autoadjunto.
Un operador L : RX → RX lineal y autoadjunto se caracteriza por cumplir
(Lg|f) = (g|Lf) ∀f, g ∈ RX .
Si L es autoadjunto, todos sus autovalores son reales pues si α + iβ es
autovalor, existen f, g ∈ RX no nulos tales que
{
Lf = αf − βg
Lg = βf + αg. Luego
{
(Lf |g) = α(f |g)− β(g|g)
(Lg|f) = β(f |f) + α(g|f)y β = 0.
42 CAPITULO 2. NUCLEOS Y DIGRAFOS
Ademas, autovectores asociados a autovalores distintos son ortogonales:
{
Lf = λf
Lg = µg⇒{
(Lf |g) = λ(f |g)
(Lg|f) = µ(g|f)⇒ (λ − µ)(f |g) = 0.
Teorema 2.1.2 Teorema espectral de operadores autoadjuntos.Un operador lineal L : R
X → RX es autoadjunto si y solo si existe una base
ortonormal {fx | x ∈ X} de RX y una familia {λx | x ∈ X} ⊂ R tales que
L(f) =∑
x∈X
λx(fx | f)fx ∀f ∈ RX
Demostracion:
Si L es autoadjunto sus valores propios {λx | x ∈ X} son reales y sus autovec-tores asociados son ortogonales. Existe una base ortonormal {fx | x ∈ X}de autovectores. Por tanto,
f =∑
x∈X
(fx | f)fx y L(f) =∑
x∈X
(fx | f)L(fx) =∑
x∈X
λx(fx | f)fx.
Si L(f) =∑
x∈X
λx(fx | f)fx ∀f ∈ RX es claro que (Lg|f) = (g|Lf) ∀f, g ∈ R
X
y, por tanto, L es autoadjunto. Ademas, los λx son sus autovalores y los fx
sus autovectores asociados. ♦
Un operador autoadjunto L : RX → R
X se puede expresar como combi-nacion lineal de operadores de rango uno
L =∑
x∈X
λxfx ⊗ fx siendo fx ⊗ fx : RX → R
X
f 7→ (fx|f)fx
Teorema 2.1.3
1. Un operador lineal autoadjunto L : RX → R
X cumple
‖L‖ = sup‖f‖=1
{|(L(f)|f)|}.
2. Si, ademas, L es definido no negativo, los extremos de la funcion(L(f)|f) sobre la variedad ‖f‖ = 1 son autovalores de L y se alcanzan
en los autovectores correspondientes.
Demostracion:
2.1. NUCLEOS 43
1. Designemos B(f) = (L(f)|f) y S = sup‖f‖=1
{|B(f)|}.
Es claro que |B(f)| ≤ ‖L‖ · ‖f‖2 luego S ≤ ‖L‖.Para la desigualdad contraria tenemos en cuenta que
‖L‖ = sup‖f‖=1
{‖L(f)‖} = sup‖f‖=1
{ sup‖g‖=1
{(L(f)|g)}} = sup‖f‖=‖g‖=1
{(L(f)|g)}
Tambien es clara la siguiente cadena de desigualdades
(L(f)|g) =B(f + g)− B(f − g)
4≤ |B(f + g)|+ |B(f − g)|
4≤
≤ S‖f + g‖2 + ‖f − g‖2
4= S
‖f‖2 + ‖g‖2
2≤ S ∀‖f‖ = ‖g‖ = 1.
Por tanto, ‖L‖ ≤ S.
2. La lagrangiana del problema extremal es
LB : RX × R → R
(f, µ) 7→ (L(f)|f)− µ((f |f)− 1)
y las soluciones (f, µ) han de verificar ∇LB(f, µ) = 0, es decir, han de
cumplir queL(f) = µf y (f |f) = 1.
La primera condicion indica que µ debe ser autovalor de L y, multi-
plicandola escalarmente por f , vemos que µ debe ser, tambien, el valorextremo buscado. El vector f en que se alcance el valor extremal debe
ser un autovector de norma 1 asociado a µ. ♦
Teorema 2.1.4 Teorema espectral de operadores cualesquiera. Sean X eY dos conjuntos finitos y K : RY → RX un operador lineal de rango r.
Existen conjuntos ortonormales {g1, · · · , gr} ⊂ RY y {f1, · · · , fr} ⊂ R
X yun conjunto de reales positivos {λ1, · · · , λr} tales que
K =
r∑
i=1
λigi ⊗ fi siendo gi ⊗ fi : RY → R
X
g 7→ (gi|g)fi
Demostracion:
El operador Kt · K : RY → RY es autoadjunto y definido no negativo. El
teorema 2.1.2 asegura la existencia de una base ortogonal {g1, · · · , gn} deRY constituida por vectores propios de Kt · K. Si suponemos que
{
[g1, · · · , gr] = im Kt · K = im K[gr+1, · · · , gn] = kerKt · K = kerK
44 CAPITULO 2. NUCLEOS Y DIGRAFOS
los autovalores asociados seran {µ1 > 0, · · · , µr > 0, 0, · · · , 0} y, en conse-
cuencia,
Kt · K =r∑
i=1
µigi ⊗ gi.
El operador P = (Kt · K)12 =
r∑
i=1
√µigi ⊗ gi cumple
‖Pg‖2 = (Kt · K(g)|g) = ‖Kg‖2 ∀g ∈ RY
y, en consecuencia, podemos definir el operador isometrico
U0 : P(RY ) → RX
Pg 7→ Kg
y extenderlo al operador
K : RY P→ P(RY )
U0→ RX
g 7→ Pg 7→ Kg
Entonces,
Kg = U0
(
r∑
i=1
õi(gi|g)gi
)
=
r∑
i=1
√µi(gi|g)U0(gi) ∀g ∈ R
Y
y el teorema queda probado con
{
fi = U0(gi)
λi =√
µi
∀i = 1, · · · , r. ♦
Definicion 2.1.5 Dado un operador lineal K : RY → R
X decimos que eloperador lineal L : RX → RY es inverso generalizado o g-inverso de K si
K · L · K = K.
Teorema 2.1.6 Existe un unico g-inverso de K : RY → R
X , llamadoinverso de Moore-Penrose y denotado K+, con las siguientes propiedades:
1. K · K+ · K = K
2. K+ · K · K+ = K+
3. K · K+ = (K · K+)t
4. K+ · K = (K+ · K)t
Demostracion:
El teorema 2.1.4 asegura para K una representacion
K =
r∑
i=1
λigi ⊗ fi
2.1. NUCLEOS 45
Es inmediato comprobar que el operador representado por
K+ =r∑
i=1
1
λi
fi ⊗ gi
es lineal K+ : RX → RY y cumple las propiedades 1. 2. 3. 4.
Si suponemos que existen dos inversos K+1 y K+
2 :K+
1 = K+1 ·K·K+
1 = K+1 ·(K·K+
1 )t = K+1 ·(K+
1 )t ·Kt = K+1 ·(K+
1 )t·(K·K+2 ·K)t =
= K+1 · (K+
1 )t · Kt · (K+2 )t · Kt = K+
1 · (K · K+1 )t · (K · K+
2 )t = K+1 · K · K+
2 .Por otra parte, de modo similar:K+
2 = K+2 ·K·K+
2 = (K+2 ·K)t·K+
2 = Kt·(K+2 )t·K+
2 = (K·K+1 ·K)t·(K+
2 )t·K+2 =
= Kt · (K+1 )t · Kt · (K+
2 )t · K+2 = (K+
1 · K)t · (K+2 · K)t · K+
2 = K+1 · K · K+
2 .Ası, K+
1 = K+2 y la unicidad esta probada. ♦
Siguiendo exactamente los pasos de la demostracion del teorema 2.1.6 hemos
disenado la funcion mpinv(K) que nos devuelve el inverso de Moore-Penrosedel operador K : RX → RX . Sin embargo, si |X | > 8, es preferible usar la
orden importada de Numpy pinv() y aplicarla a la matriz MK del operadorK.
Observaciones 2.1.7
1. Si X = Y y K : RX → R
X es autoadjunto y definido no negativo, K+
tambien es autoadjunto y definido no negativo.
2. Para cualquier K : RY → RX sabemos que existe un unico vector de
norma euclıdea mınima en la variedad Mf = {g ∈ RY | K(g) = f}.
Ese vector es, precisamente, K+(f) porque
K+(f) ∈ (g0 + kerK) ∩ [kerK]⊥ siendo K(g0) = f.
En efecto:
K · K+(f) = K · K+ · K(g0) = K(g0) luego K+(f) ∈ g0 + kerK.
Por otra parte, K+(f) =
r∑
i=1
1
λi(fi|f)gi ∈ [kerK]⊥.
El siguiente lema, obtenido en colaboracion con el Prof. Vaja Tarieladzejuega un importante papel en el estudio de las cuasimetricas laplacianas en
digrafos (ver 3.2.5).
Lema 2.1.8
Sea X un conjunto finito y K : RX → R
X un operador autoadjunto. Sea(x1, · · · , xn) una enumeracion de X y K = (kij) la matriz de K en la base
{ex1, · · · , exn}.
46 CAPITULO 2. NUCLEOS Y DIGRAFOS
1. Si K es definido no negativo, kerK = {0} y kij ≤ 0 ∀i 6= j se
tiene:
(K−1exi|exj
) ≥ 0 y (K−1exi|exi
) > 0.
2. Si kerK = [1], la submatriz K[i, j] de K, obtenida al suprimir la filai y la columna j, es inversible ∀(i, j).
3. Si kerK = [1], kij ≤ 0 ∀i 6= j y kii ≥ 0 ∀i, se tiene:
(a) K es definido no negativo.
(b) La matriz K[k, k] es definida positiva ∀k = 1, · · · , n.
(c) Si Bk = (b(k)ij ) es la matriz inversa de K[k, k] y Nn = {1, · · · , n},
b(k)ij ≥ 0 ∀(i, j) ∈ (Nn \ {k})× (Nn \ {k}).
(d) El operador Hk cuya matriz Hk en la base {ex1, · · · , exn} tiene
entradas
h(k)ij =
{
b(k)ij si (i, j) ∈ (Nn \ {k})× (Nn \ {k})0 si (i, j) 6∈ (Nn \ {k})× (Nn \ {k})
es g-inverso de K.
Demostracion:
1. Sean µ1 ≥ µ2 ≥ · · · ≥ µn−1 ≥ µn > 0 los autovalores de K y seaβ > 0 tal que βµ1 < 1. El operador P = I − βK es autoadjunto, con
entradas no negativas y autovalores
0 < 1 − βµ1 ≤ 1− βµ2 ≤ · · · ≤ 1 − βµn−1 ≤ 1 − βµn < 1 .
Como P es autoadjunto definido positivo, el teorema 2.1.3, aseguraque
‖P‖ = sup{‖Pf‖ | ‖f‖ = 1} = 1 − βµn < 1.
Esto implica que
(I −P)−1 = I +
∞∑
k=1
Pk
y su matriz (I − P )−1 tendra entradas no negativas. Como K−1 =
β(I − P)−1, tambien la matrix K−1 tendra entradas no negativas y,por tanto,
(K−1exi|exj
) ≥ 0 ∀(i, j).
Ademas, ((I − P)−1exi|exi
) > 0 ∀i luego (K−1exi|exi
) > 0 ∀i.
2.1. NUCLEOS 47
2. La matriz K de entradas (kij) es simetrica y cumple
k11 · · · k1n
.... . .
...
kn1 · · · knn
1...
1
=
0...
0
.
Sus columnas {c1, · · · , cn} forman una familia de Rn cuya suma es 0
y dim [c1, . . . , cn] = n − 1. Suprimiendo cualquier cj obtenemos una
familia libre {c1, · · · , cj−1, cj+1, · · · , cn} y la matriz
k11 · · · k1j−1 kij+1 · · · k1n
.... . .
......
. . ....
kn1 · · · knj−1 knj+1 · · · knn
tendra rango n − 1. Sus filas {f1, · · · , fn} forman una famiia de Rn−1
cuya suma es 0 y dim [f1, . . . , fn] = n − 1. Suprimiendo cualquier fiobtenemos una familia libre {f1, · · · , fi−1, fi+1, · · · , fn} y la matriz
k11 · · · k1j−1 kij+1 · · · k1n
.... . .
......
. . ....
ki−11 · · · ki−1j−1 ki−1j+1 · · · ki−1n
ki+11 · · · ki+1j−1 ki+1j+1 · · · ki+1n
.... . .
......
. . ....
kn1 · · · knj−1 knj+1 · · · knn
= K[i, j]
tendra rango n − 1. Por ser (n − 1)× (n − 1)-cuadrada, es inversible.
3. (a) Sea ∆n = {(i, i) | i ∈ Nn} y designemos
∆+n = {(i, j) ∈ Nn×Nn | i < j} y ∆−
n = {(i, j) ∈ Nn×Nn | i > j} .
Para cualquier f ∈ RX se cumple que
(Kf | f) =n∑
i=1
kiif2(xi)+
∑
(i,j)∈∆+n
kijf(xi)f(xj)+∑
(i,j)∈∆−n
kijf(xi)f(xj)
Como 2f(xi)f(xj) ≤ f2(xi) + f2(xj) y kij ≤ 0 ∀i 6= j,tenemos
(Kf | f) ≥n∑
i=1
kiif2(xi)+
∑
(i,j)∈∆+n
kijf2(xi) + f2(xj)
2+
∑
(i,j)∈∆−n
kijf2(xi) + f2(xj)
2
Ahora bien,
n∑
i=1
kiif2(xi)+
∑
(i,j)∈∆+n
kijf2(xi) + f2(xj)
2+
∑
(i,j)∈∆−n
kijf2(xi) + f2(xj)
2=
48 CAPITULO 2. NUCLEOS Y DIGRAFOS
=
n∑
i=1
f2(xi)
kii +1
2
∑
j 6=i
(kij + kji)
y, como
n∑
j=1
kij = 0 ∀i ∈ Nn, kii + 12
∑
j 6=i
(kij + kji) ≥ 0 ∀i ∈
Nn . Luego
(Kf | f) ≥n∑
i=1
f2(xi)
kii +1
2
∑
j∈Nn\{i}(kij + kji)
≥ 0.
(b) De 3a se sigue que K[k, k] es definida no negativa y por 2 sabemosque rang K[k, k] = n − 1. Por tanto K[k, k] es definida positiva.
(c) Se sigue de 3a y de 1 aplicada a K[k, k].
(d) Fijado xk ∈ X sea Pk : RX → R
X la proyeccion ortogonal derango
RXk = [ex1, · · · , exk−1
, exk+1, · · · , exn ]
y sea Jk : RXk ↪→ R
X la inmersion canonica. Es claro que larestriccion de Pk · K · Pk al subespacio RX
k esta representado por
la matriz K[k, k] y que, si Bk : RXk → R
Xk es el operador de matriz
Bk, se tiene que
Hk = Jk · Bk · Pk .
Necesitamos probar que K · Hk · K = K y para ello es suficientever que
K · Hk · K(exi) = K(exi
) ∀i ∈ Nn.
Si i 6= k, tenemos Hk · K(exi) = Jk · Bk · Pk · K(exi
) = exiy, por
tanto,
K · Hk · K(exi) = K(exi
).
Para k, como K(1) = 0, tenemos:
K·Hk·K(exk) = K·Hk·K(1−
∑
i6=k
exi) = −
∑
i6=k
K(exi) = K(exk
) ♦
2.1.9 Laplaciano de un nucleo
Para cualquier nucleo k : X × X → R se define su nucleo laplaciano:
`k : X × X → R
(x, y) 7→ −k(x, y) + δ(x, y)∑
z∈X
k(x, z)
2.1. NUCLEOS 49
Si k viene representado por la lista Lk, la funcion laplacian(Lk) calcula la
lista correspondiente al nucleo `k.
Dada la enumeracion (x1, . . . , xn) de X o la base {ex1, . . . , exn} de RX el
nucleo `k : X × X → R y el operador L`k: RX → RX vienen representados
por la matriz laplaciana
M`k=
∑
j 6=1
k(x1, xj) −k(x1, x2) · · · −k(x1, xn)
−k(x2, x1)∑
j 6=2
k(x2, xj) · · · −k(x2, xn)
......
. . ....
−k(xn, x1) −k(xn, x2) · · ·∑
j 6=n
k(xn, xj)
que podemos obtener haciendo actuar la funcion klisttomatrix() sobre la
lista laplacian(Lk)
Teorema 2.1.10 La aplicacion
` : RX×X → RX×X
k 7→ `k
es lineal y cumple las siguientes propiedades:
1. im ` = {h ∈ RX×X |
∑
y∈X
h(x, y) = 0 ∀x ∈ X}
2. ker ` = {k ∈ RX×X | k(x, y) = 0 ∀x 6= y}
3. k ≥ 0 ⇒ `k(x, x) ≥ 0 ∀x ∈ X y `k(x, y) ≤ 0 ∀x 6= y.
Demostracion :La linealidad de ` es evidente. Veamos las propiedades:
1. ∀k ∈ RX×X y ∀x ∈ X se tiene que
∑
y∈X
`k(x, y) =∑
y∈X
(
−k(x, y) + δ(x, y)∑
z∈X
k(x, z)
)
=
= −∑
y∈X
k(x, y) +∑
z∈X
k(x, z) = 0.
Ademas, si∑
y∈X
h(x, y) = 0 ∀x ∈ X , se tiene que `(δ−1)h = h.
En efecto:
`(δ−1)h(x, y) = −(δ(x, y)− 1)h(x, y) + δ(x, y)∑
z∈X
(δ(x, z)− 1)h(x, z)
y, por tanto,
50 CAPITULO 2. NUCLEOS Y DIGRAFOS
(a) Si x 6= y, `(δ−1)h(x, y) = h(x, y).
(b) Si x = y, `(δ−1)h(x, x) =∑
z∈X
(δ(x, z)− 1)h(x, z) = h(x, x)
2. Si −k(x, y) + δ(x, y)∑
z∈X
k(x, z) = 0 ∀(x, y) ∈ X × X se cumple que
k(x, y) = 0 ∀x 6= y mientras k(x, x) puede tomar cualquier valor.
3. Si k : X × X → R es no negativo, es claro que
`k(x, x) =∑
z 6=x
k(x, z) ≥ 0 y `k(x, y) = −k(x, y) ≤ 0 si x 6= y ♦
Observaciones 2.1.11
1. Si k : X × X → R es un nucleo simetrico, tambien es simetrico su
nucleo laplaciano `k : X × X → R.
2. La suma de cada una de las filas de la matriz laplaciana de un nucleok : X × X → R es 0 pues ∀i = 1, · · · , n tenemos:
n∑
j=1
`k(xi, xj) = `k(xi, xi) +∑
j 6=i
`k(xi, xj) =∑
j 6=i
k(xi, xj) −∑
j 6=i
k(xi, xj) = 0
3. Si 1 : X → R es la funcion que toma constantemente el valor 1,la propiedad anterior nos dice que L`k
(1) = 0. El operador L`kno
es inyectivo y, por tanto, no inversible. Sin embargo tendra inversogeneralizado de Moore-Penrose.
2.2 Digrafos
Definicion 2.2.1 Un digrafo D es una terna (V, E,w) donde V es un con-
junto finito, E es una relacion en V y w : V × V → R+ es un nucleo cuyosoporte es E. Si ∆ ∩ E = ∅ decimos que el digrafo es simple.
Esta definicion clasica esta dada a partir del conjunto de vertices V , del con-junto de arcos E y del peso w(u, v) de cada arco (u, v) ∈ E del digrafo D pero
es claro que toda la informacion esta recogida en el nucleo w : V ×V → R+.
Como hemos dicho, el nucleo w puede venir dado por una lista Lw o por undiccionario Dw = klisttodict(Lw). Por ejemplo si
Lw = [[0, 1, 2], [0, 2, 3], [1, 3, 4], [1, 2, 1], [2, 4, 1], [2, 3, 2], [3, 2, 1]]
tendremos que
Dw = {0 : {1 : 2, 2 : 3}, 1 : {2 : 1, 3 : 4}, 2 : {3 : 2, 4 : 1}, 3 : {2 : 1}}
2.2. DIGRAFOS 51
y podemos recuperar los vertices V = [0, 1, 2, 3, 4] mediante la funcion
kvertices(Lw) (vease pag. 40).
Tambien podemos obtener la representacion habitual del digrafo mediantela orden de SAGE DiGraph( , edge labels = True) que actua tanto sobre
Lw como sobre Dw proporcionandonos la siguente grafica:
�
�
�
�
�
�
�
�
�
�
�
�
Figura 2.1: Digrafo 1
Definiciones 2.2.2 Sea D = (V, E, w) un digrafo.
1. Su digrafo traspuesto es Dt = (V,>(E), wt) siendo wt = w ◦ >.
2. Su digrafo simetrizado es Ds = (V, Es, ws) siendo Es = E ∪ >(E) y
ws =w + wt
2.
3. Si D = Ds decimos que D es un digrafo simetrico.
Para obtener los digrafos traspuesto y simetrizado de un digrafo D = (V, E, w)
dado por la lista Lw usaremos respectivamente, las funciones transpose(Lw)y symmetrized(Lw). Por ejemplo, para el digrafo de la Figura 2.1 obte-
nemos:
Figura 2.2: Digrafo traspuesto y digrafo simetrizado
52 CAPITULO 2. NUCLEOS Y DIGRAFOS
Definicion 2.2.3 Un digrafo D′ = (V ′, E ′, w′) es subdigrafo del digrafo
D = (V, E,w) cuando
V ′ ⊂ V, E ′ ⊂ E, y w′|E′ = w|E′.
Si, ademas, V ′ = V decimos que D′ es subdigrafo generador de D.
Definicion 2.2.4 Sea D = (V, E,w) un digrafo y sea T =
∞⋃
k=1
E(k) la
clausura transitiva de la relacion E (vease pag. 31) . Decimos que D es
conexo cuando 4∪ T = V × V .
Teorema 2.2.5 Sea D = (V, E,w) un digrafo y sea la relacion T =
∞⋃
k=1
E(k).
1. Si D es conexo y card(V ) > 1 se tiene que 4 ⊂ T .
2. Si D no es conexo y {V1, · · · , Vq} es la T -particion de V , el digrafo(Vi, Ei, wi) donde Ei = E ∩ Vi × Vi y wi|Ei
= w|Eies un subdigrafo
conexo de (V, E, w) ∀i = 1, · · · , q .
Demostracion:
1. Sea u ∈ V . Existe v ∈ V tal que (u, v) /∈ 4, luego (u, v) ∈ T y(v, u) ∈ T . Ası, (u, u) ∈ T y, como u es cualquiera, 4 ⊂ T .
2. (Vi, Ei, wi) es un claro subdigrafo de (V, E,w) y solo falta probar quees conexo, es decir, que
Vi × Vi = 4i ∪∞⋃
k=1
Ei(k) donde 4i = 4∩ Vi × Vi.
Si card(Vi) = 1, es trivial. Si card(Vi) > 1, es facil ver que Vi × Vi ⊂∞⋃
k=1
E(k). Ası, ∀(u, v) ∈ Vi×Vi existe un camino (e1, · · · , ek) en E con
(e−1 , e+k ) = (u, v) pero la T -maximalidad de Vi asegura que, tambien,
(e1, · · · , ek) es camino en Ei y, en consecuencia, Vi×Vi =
∞⋃
k=1
Ei(k).♦
Definicion 2.2.6 Los subdigrafos (Vi, Ei, wi) de (V, E,w), introducidos en2.2.5,2, son las componentes conexas de (V, E,w).
Definiciones 2.2.7
1. Un digrafo D = (V, E,w) conexo y sin ciclos se llama arbol.
2.2. DIGRAFOS 53
2. En un digrafo D = (V, E,w), un subdigrafo generador conexo y sin
ciclos se llama arbol generador.
Observacion 2.2.8 Un arbol D = (V, E,w) es siempre un digrafo simetrico
y cumple la siguiente ley |E| = 2(|V | − 1).
2.2.9 Laplacianos de un digrafo
Dado un digrafo D = (V, E, w) a los nucleos laplacianos `w y `ws los de-
signaremos, respectivamente, `D y `Ds y a sus operadores inducidos, L`w yL`ws
, los designaremos LD y LDs .
Definicion 2.2.10 Llamamos incidencia del digrafo D = (V, E,w) a laaplicacion
uD : E × V → R
(e, v) 7→√
w(e)2 (δ(e+, v)− δ(e−, v))
Teorema 2.2.11 Sea D = (V, E,w) un digrafo y sea UD : RV → RE el
operador asociado a uD. Entonces, U tD ◦ UD = LDs .
Demostracion:Es claro que
UD : RV → R
E donde UDf : E → R
f 7→ UDf e 7→√
w(e)2 (f(e+)− f(e−))
y, por tanto,
(U tD◦UDeu|ev) =
∑
e∈E
UDeu(e)·UDev(e) =∑
e∈E
w(e)
2(eu(e+)−eu(e−))·(ev(e
+)−ev(e−))
Si u 6= v, solo son no nulos los sumandos correspondientes a los pares (u, v)o (v, u) si pertenecen a Es, luego
(U tD ◦ UDeu|ev) = −w(u, v)
2− w(v, u)
2= −ws(u, v)
Por otra parte,
(U tD ◦ UDeu|eu) =
∑
e∈E
w(e)
2(eu(e+) − eu(e−))2 =
∑
v 6=u
ws(u, v)
pues solo son no nulos los sumandos correspondientes a elementos de Es quecontienen a u menos el posible lazo (u, u).
Segun la propiedad 3 del Lema 2.1.1, tenemos
(U tD ◦ UDeu|eu) = `ws(u, v) ∀(u, v) ∈ V × V luego U t
D ◦ UD = LDs .♦
54 CAPITULO 2. NUCLEOS Y DIGRAFOS
Comentario 2.2.12 Dado un digrafo D = (V, E,w) simetrico y elegida
una ordenacion de vertices {v1, · · · , vn}, por el teorema 2.2.11 sabemos quela matriz laplaciana M`D
es simetrica y definida no negativa pero no es
definida positiva :
(LDf |f) = (UDf |UDf) = ‖UDf‖2 =1
2
∑
e∈E
w(e)(f(e+) − f(e−))2 ≥ 0.
Corolario 2.2.13 Sea D = (V, E,w) un grafo simetrico con p ≤ n compo-nentes conexas. Su matriz laplaciana M`D
tiene las siguientes propiedades:
1. M`Des irreducible si y solo si p = 1.
2. rang M`D= n − p.
3. 0 es autovalor de M`Dde multiplicidad algebraica p.
4. M`Dtiene n − p autovalores reales positivos. El menor de ellos, que
designamos λ1, cumple que
λ1 = min{(M`D(x)|x) | x ∈ (kerM`D
)⊥ y ‖x‖ = 1}
Demostracion:
1. Si p > 1 existe una C-particion de V , no trivial, {V1, · · · , Vp}. Sienumeramos los vertices de V empezando por los de V1, despues los
de V2, y seguimos ası hasta terminar por los de Vp, es claro que M`D
tendrıa forma diagonal por bloques, con p bloques.
2. Si el i-esimo bloque es de tamano ki × ki, como la suma de cada unade sus columnas es nula, resulta que el vector ni, de coordenadas 1en los lugares k1 + k2 + · · · + ki−1 + 1, · · · , k1 + k2 + · · · + ki y 0 en
los restantes, esta en el nucleo de M`D. Es claro que el conjunto de
vectores {n1, · · · , np} es linealmente independiente. Por otra parte,
si f ∈ kerM`D, el comentario 2.2.12 asegura que f es constante en
cada subconjunto Vi y, por tanto, los vectores {n1, · · · , np} son un sis-
tema generador de kerM`D. Ası, dim kerM`D
= p y, en consecuencia,rangM`D
= n − p.
3. Acabamos de ver que 0 es un autovalor de M`Dde multiplicidad
geometrica p. Solo resta recordar que la multiplicidad algebraica coin-
cide con la geometrica si la matriz es simetrica.
4. Si el autovalor 0 tiene multiplicidad p, la suma de las multiplicidadesde los autovalores positivos es n−p. Sea λ1 el menor autovalor positivo.
Por ser LD : Rn → R
n autoadjunto, las relaciones de Lorch aseguran
2.2. DIGRAFOS 55
que (kerLD)⊥ = imLD . La restriccion de LD a (kerLD)⊥ es un opera-
dor P : (kerLD)⊥ → (kerLD)⊥ autoadjunto y positivo que tiene comoautovalores los autovalores positivos de LD. Segun 2.1.3, 2, es claro
que
λ1 = min{(LD(x)|x) | x ∈ (kerLD)⊥ y ‖x‖ = 1}. ♦
2.2.14 Grafos y multidigrafos
A un digrafo simetrico D = (V, E, w) se le ha llamado clasicamente grafo. Si
(u, v) es un arco, (v, u) tambien lo sera y con el mismo peso. En E podemosconsiderar la relacion de equivalencia (u, v) ∼ (v, u) que sustituye los dosarcos opuestos (u, v) y (v, u) por la arista {u, v} y al cociente A = E/ ∼ se
le llama conjunto de aristas {u, v} del grafo G = (V, A, w).Si el nucleo w viene dado por la lista Lw o por el diccionario Dw la orden
de SAGE G = Graph(Dw) lo considera como un objeto propio y la ordenG.plot() lo considera como un objeto grafico. Por ejemplo para el digrafo
simetrico dado en la figura 2.2 obtendrıamos la representacion:
Figura 2.3: Grafo
donde cada pareja de arcos (u, v) y (v, u) con el mismo peso ha sido sustituıdapor una sola arista con ese mismo peso.
Muchas situaciones de la vida real pueden ser modelizadas sobre estas graficas
de digrafos y de grafos. Los vertices pueden ser ciudades, los arcos autopis-tas, las aristas vıas de doble sentido y los pesos los correspondientes peajes ocualidades del viaje; o los vertices pueden ser nodos en un circuito electrico,
los arcos o las aristas los conductores y los pesos las correspondientes re-sistencias; o los vertices pueden ser nodos de una red hidraulica, los arcos o
las aristas tuberıas de agua y los pesos los correspondientes flujos o caudales.
56 CAPITULO 2. NUCLEOS Y DIGRAFOS
Dos ciudades pueden estar conectadas por mas de una autopista, dos nodoselectricos pueden estar conectados por mas de un conductor o dos nodos
hidraulicos pueden estar conectados por mas de una canerıa. Estas situa-ciones no pueden ser representadas por un nucleo pero pueden ser archivadas
en una lista que tenga diferentes tripletas con las mismas dos primeras coor-denadas. Por ejemplo, a la lista
L = [[0, 1, 2], [0, 1, 3], [0, 2, 3], [1, 3, 2], [1, 3, 4], [2, 4, 1], [2, 4, 1], [3, 2, 1], [3, 2, 3]]
le corresponde una grafica que denominamos multidigrafo
Figura 2.4: Multidigrafo
porque entre dos vertices puede haber arcos paralelos de igual o diferente
peso.
Aunque se puede tratar la teorıa de multidigrafos directamente, para lamayorıa de nuestros intereses hemos logrado formular un problema equiva-
lente, tratable en terminos de digrafos, reemplazando los conjuntos de arcosparalelos por un solo arco con un peso adecuado. Por ejemplo, si tenemos
diferentes autopistas entre dos ciudades, cogemos la mas barata o la quetenga mejores cualidades para el viaje. Si tenemos varias tuberias entre dos
nodos hidraulicos, consideramos una tuberıa con un flujo igual a la sumade los flujos. Si tenemos m conductores entre dos nodos electricos con re-sistencias r1, · · · , rm, consideramos unicamente un conductor con resistencia
r =(
1r1
+ · · ·+ 1rm
)−1.
Podemos hacer todo esto con la funcion deplist(L,c) donde c es el crite-rio de reunificacion de arcos paralelos que puede ser tomar el maximo de
sus pesos (M), o el mınimo (m), o la suma (S) o la resistencia (R) pero elusuario puede anadir otros criterios si lo considera necesario.
La utilizacion de pesos adecuados para los arcos de un digrafo o las aris-
tas de un grafo nos permite tratar desde un punto de vista formal las teorıasde grafos y multidigrafos dentro de la teorıa de digrafos.
Capıtulo 3
Cuasimetricas.
3.1 Cuasimetricas
Definicion 3.1.1 Un nucleo q : X ×X → R es una pseudocuasimetrica en
X si
1. q(x, x) = 0 ∀x ∈ X
2. q(x, y) ≥ 0 si x 6= y
3. q(x, y) ≤ q(x, z) + q(z, y) ∀(x, y, z) ∈ X × X × X
Si en 2. exigimos la desigualdad estricta, decimos que q es una cuasimetrica
y si, ademas, qt = q, decimos que q es una metrica.
Recordemos los siguientes resultados sobre cuasimetricas y metricas
Teorema 3.1.2 Un nucleo d : X×X → R es una metrica en X si cumple:
1. d(x, y) = 0 si y solo si x = y
2. d(x, y) ≤ d(x, z) + d(y, z) ∀(x, y, z) ∈ X × X × X
Demostracion:Tomando x = y, comprobamos que 0 ≤ 2d(x, z) ∀x, z ∈ X .
Tomando x = z, comprobamos que d(x, y) = d(y, x) ∀x, y ∈ X . ♦
Teorema 3.1.3
1. Si q es cuasimetrica en X , tambien lo es qt.
2. Si q es cuasimetrica en X y λ > 0, tambien lo es λq.
3. Si q1 y q2 son cuasimetricas en X , tambien lo es
(q1, q2)∞ : X × X → R
(x, y) 7→ max{q1(x, y), q2(x, y)}
57
58 CAPITULO 3. CUASIMETRICAS.
4. Si q1 y q2 son cuasimetricas en X y r ∈ [1,∞), tambien es cuasimetrica
(q1, q2)r : X × X → R
(x, y) 7→ (qr1(x, y) + qr
2(x, y))1r
5. Si q es cuasimetrica en X , (q, qt)r es una metrica en X ∀r ∈ [1,∞].
6. Si q1 y q2 son cuasimetricas en X , min{q1, q2} no es, necesariamente,cuasimetrica en X .
Demostracion:
1, 2 Inmediatas.
3 Es inmediato que (q1, q2)∞ cumple las propiedades 1 y 2 de 3.1.1. Para
la 3 basta observar que si i = 1, 2, se cumple que
qi(x, y) ≤ (q1, q2)∞(x, z) + (q1, q2)∞(z, y) ∀(x, y, z) ∈ X × X × X.
4 Para cualquier real r ∈ [1,∞) es inmediato que (q1, q2)r cumple las
propiedades 1 y 2 de 3.1.1. Ademas, ∀(x, y, z) ∈ X×X ×X se cumple
{
qr1(x, y) ≤ (q1(x, z) + q1(z, y))r
qr2(x, y) ≤ (q2(x, z) + q2(z, y))r
y, por tanto,
(qr1(x, y)+qr
2(x, y))1r ≤ ((q1(x, z) + q1(z, y))r + (q2(x, z) + q2(z, y))r)
1r .
Por la desigualdad de Minkowski
(|x1 + y1|r + |x2 + y2|r)1r ≤ ((|x1|r + |x2|r)
1r + ((|y1|r + |y2|r)
1r ,
tomando q1(x, z) = x1, q2(x, z) = x2, q1(z, y) = y1, q2(z, y) = y2,tenemos
((q1(x, z) + q1(z, y))r + (q2(x, z) + q2(z, y))r)1r ≤
≤ (qr1(x, z) + qr
2(x, z))1r + (qr
1(x, z) + qr2(z, y))
1r .
Luego (qr1(x, y) + qr
2(x, y))1r ≤ (qr
1(x, z) + qr2(x, z))
1r + (qr
1(z, x) +
qr2(z, y))
1r y, en consecuencia, (q1, q2)r cumple 3 de 3.1.1.
5 Por 3.1.3, (q, qt)r es cuasimetrica en X ∀r ∈ [1,∞]. Ademas es claro
que (q, qt)tr = (q, qt)r.
3.1. CUASIMETRICAS 59
6 Por ejemplo, si X = {1, 2, 3} y las matrices de q1 y q2 son, respectiva-
mente,
0 1 32 0 2
3 1 0
y
0 2 31 0 1
3 2 0
el min{q1, q2} no es cuasimetrica por tener matriz de valores
0 1 31 0 13 1 0
. ♦
Dada una lista L de tripletas [a, b, c] nos planteamos la existencia de unconjunto X y una cuasimetrica qL : X × X → R+ tal que
(?) [a, b, c] ∈ {[x, y, qL(x, y)] | (x, y) ∈ X × X} ∀[a, b, c] ∈ L.
Para obtener un conjunto minimal que nos sirva como X utilizamos la
funcion kvertices(L) (vease pag. 40) y la funcion qmetric(L) nos respondeTrue o False a la cuestion (?).
Si la respuesta es True, la funcion completeqmetric(L) nos proporciona lamatriz de la cuasimetrica qL : X × X → R relativa a la enumeracion de X
dada por kvertices(L).
3.1.4 Cuasimetricas asociadas a nucleos
Dado un conjunto finito X y un nucleo k : X × X → R nos planteamos
la existencia de cuasimetricas qk : X × X → R+, ligadas de algun modo
al nucleo k, que nos permita inferir la informacion de tipo topologico que
pueda inducir k en el conjunto X . Para abordar este problema damos lassiguientes:
Definiciones 3.1.5 Sea k : X × X → R un nucleo cualquiera. Conside-
ramos los siguientes nucleos que se anulan en la diagonal de X × X :
q(1)k : X × X → R
(x, y) 7→ k(x, x)− k(x, y)
q(2)k : X × X → R
(x, y) 7→ k(y, y)− k(x, y)
q(3)k : X × X → R
(x, y) 7→ k(x, x) + k(y, y)− 2k(x, y)
60 CAPITULO 3. CUASIMETRICAS.
q(4)k : X × X → R
(x, y) 7→ k(x, x) + k(y, y)− k(x, y)− k(y, x)
Para i = 1, 2, 3, 4, si q(i)k es una cuasimetrica en X decimos que el nucleo k
es i-generador de cuasimetrica y escribimos k ∈ Gi. Como q(4)k es siempre
un nucleo simetrico, si es cuasimetrica tambien sera metrica.
Teorema 3.1.6 Para cualquier nucleo k : X × X → R se cumplen:
1. q(3)k = q
(1)k + q
(2)k .
2. k ∈ G1 ⇔ kt ∈ G2
3. q(4)k = q
(1)k + q
(1)k
t= q
(2)k + q
(2)k
t
Demostracion:
1. q(1)k (x, y) + q
(2)k (x, y) = k(x, x)− k(x, y) + k(y, y)− k(x, y) = k(x, x) +
k(y, y)− 2k(x, y) = q(3)k (x, y) ∀x, y ∈ X .
2. k ∈ G1 ⇔ q(1)k es cuasimetrica ⇔ q
(1)tk es cuasimetrica.
Y sabemos que q(1)tk (x, y) = q
(1)k (y, x) = k(y, y) − k(y, x) = kt(y, y) −
kt(x, y) = q(2)kt (x, y) ∀x, y ∈ X . Por tanto tenemos que q
(1)tk es
cuasimetrica ⇔ q(2)kt es cuasimetrica ⇔ kt ∈ G2.
3. q(1)k (x, y)+ q
(1)tk (x, y) = k(x, x)−k(x, y)+k(y, y)−k(y, x) = q
(4)k (x, y)
y de forma analoga se prueba para i = 2. ♦
Observaciones 3.1.7 Si los operadorores Lk y Lkt : RX → R
X son losasociados al nucleo k : X × X → R podemos expresar:
1. q(1)k (x, y) = (Lk(ex − ey)|ex) ∀(x, y) ∈ X × X
2. q(2)k (x, y) = (Lkt(ey − ex)|ey) ∀(x, y) ∈ X × X
3. q(3)k (x, y) = (Lk(ex − ey)|ex) + (Lkt(ey − ex)|ey) ∀(x, y) ∈ X × X
4. q(4)k (x, y) = (Lk(ex − ey)|ex − ey) ∀(x, y) ∈ X × X
La eleccion de nucleos como los q(i)k esta sugerida, en parte, por el siguiente:
Teorema 3.1.8 Sea q : X × X → R un nucleo nulo en la diagonal.
1. Para i = 1, 2, 3 existe un nucleo ki : X × X → R tal que q = q(i)ki
.
2. Si q es simetrico, existe un nucleo k4 : X × X → R tal que q = q(4)k4
.
3.1. CUASIMETRICAS 61
Demostracion:
1. Para todo (x, y) ∈ X × X podemos proceder:
(a) Fijamos x0 ∈ X y definimos k1(x, y) = q(x, x0)−q(x, y). Es claro
que
q(1)k1
(x, y) = q(x, x0)− q(x, x)− q(x, x0) + q(x, y) = q(x, y)
(b) Fijamos x0 ∈ X y definimos k2(x, y) = q(y, x0)−q(x, y). Es claro
que
q(2)k2
(x, y) = q(y, x0)− q(y, y)− q(y, x0) + q(x, y) = q(x, y)
(c) Fijamos x0 ∈ X y definimos k3(x, y) =q(x, x0) + q(y, x0) − q(x, y)
2.
Es claro que
q(3)k3
(x, y) = q(x, x0)+q(y, x0)−2q(x, x0) + q(y, x0) − q(x, y)
2= q(x, y).
2. Fijamos x0 ∈ X y definimos k4(x, y) = q(x, x0) + q(y, x0) −q(x, y)
2.
Es claro que
q(4)k4
(x, y) = q(x, x0) + q(x, x0) +
q(y, x0) + q(y, x0) +
−q(x, x0) − q(y, x0) +q(x, y)
2+
−q(y, x0) − q(x, x0) +q(y, x)
2= q(x, y). ♦
La funcion qgenerator(Lk, i) nos devuelve el nucleo q(i)k dado en forma de
lista.
Teorema 3.1.9 Sea k : X × X → R un nucleo cualquiera.
1. k ∈ G1 si y solo si se cumplen
(a) k(x, x) > k(x, y) si card(x, y) = 2.
(d) k(z, z) + k(x, y) ≥ k(x, z) + k(z, y) si card(x, y, z) = 3.
Ademas, q(1)k es metrica si y solo si
k(x, x)− k(y, y) = k(x, y)− k(y, x) ∀(x, y) ∈ X × X
2. k ∈ G2 si y solo si se cumplen
62 CAPITULO 3. CUASIMETRICAS.
(b) k(y, y) > k(x, y) si card(x, y) = 2.
(d) k(z, z) + k(x, y) ≥ k(x, z) + k(z, y) si card(x, y, z) = 3.
Ademas, q(2)k es metrica si y solo si
k(y, y)− k(x, x) = k(x, y)− k(y, x) ∀(x, y) ∈ X × X
3. k ∈ G3 si y solo si se cumplen
(c) k(x, x) + k(y, y) > 2k(x, y) si card(x, y) = 2.
(d) k(z, z) + k(x, y) ≥ k(x, z) + k(z, y) si card(x, y, z) = 3.
Ademas, q(3)k es metrica si y solo si k = kt.
4. k ∈ G4 si y solo si se cumplen
(e) k(x, x) + k(y, y) > k(x, y) + k(y, x) si card(x, y) = 2.
(f ) 2k(z, z) + k(x, y) + k(y, x) ≥ k(x, z) + k(z, x) + k(z, y) + k(y, z)si card(x, y, z) = 3..
Como q(4)k es simetrico, tambien sera metrica.
Demostracion:
Por ser q(i)k nulo en la diagonal deX × X es claro que
k ∈ Gi ⇔{
q(i)k (x, y) > 0 si card(x, y) = 2
q(i)k (x, z) + q
(i)k (z, y) ≥ q
(i)k (x, y) si card(x, y, z) = 3
.
Ademas, ∀i = 1, 2, 3
q(i)k es metrica ⇔ q
(i)k (x, y) = q
(i)k (y, x) si card(x, y) = 2
Para i = 1, 2, 3, 4 estas condiciones equivalentes se escriben, respectivamente,
1.
{
k(x, x) > k(x, y) si card(x, y) = 2
k(z, z) + k(x, y) ≥ k(x, z) + k(z, y) si card(x, y, z) = 3.
q(1)k es metrica ⇔ k(x, x)−k(y, y) = k(x, y)−k(y, x) si card(x, y) = 2
2.
{
k(y, y) > k(x, y) si card(x, y) = 2
k(z, z) + k(x, y) ≥ k(x, z) + k(z, y) si card(x, y, z) = 3.
q(2)k es metrica ⇔ k(y, y)−k(x, x) = k(x, y)−k(y, x) si card(x, y) = 2
3.
{
k(x, x) + k(y, y) > 2k(x, y) si card(x, y) = 2
k(z, z) + k(x, y) ≥ k(x, z) + k(z, y) si card(x, y, z) = 3.
q(3)k es metrica ⇔ k(x, y) = k(y, x) si card(x, y) = 2
3.1. CUASIMETRICAS 63
4.
{
k(x, x) + k(y, y) > k(x, y) + k(y, x) si card(x, y) = 2
2k(z, z)) + k(x, y) + k(y, x) ≥ k(x, z) + k(z, x) + k(z, y) + k(y, z)
si card(x, y, z) = 3.
q(4)k siempre es simetrico, por tanto siempre es metrica. ♦
Teorema 3.1.10 Para cualquier nucleo k : X × X → R se cumple que:
1. G1 ∩ G2 ⊂ G3
2. G3 ⊂ G4 y G1 ∪ G2 ⊂ G4.
3. Si k = kt, G1 = G2 y G3 = G4.
Demostracion:
1. Si k ∈ G1 ∩ G2, q(1)k y q
(2)k son cuasimetricas y, tambien, su suma q
(3)k .
Luego, k ∈ G3 y obtenemos el contenido G1 ∩ G2 ⊂ G3.
2. Si k ∈ G3, por el teorema 3.1.9 se cumple (c) y, por tanto,
{
k(x, x) + k(y, y) > 2k(x, y)
k(y, y) + k(x, x) > 2k(y, x)si card(x, y) = 2
y de la suma de ambas deducimos (e). Ademas, se cumple (d) y
{
k(z, z) + k(x, y) ≥ k(x, z) + k(z, y)
k(z, z) + k(y, x) ≥ k(y, z) + k(z, x)si card(x, y, z) = 3
y de la suma de ambas deducimos (f). Por cumplirse (e) y (f) de-
ducimos que k ∈ G4.El contenido G1 ∪ G2 ⊂ G4 se deduce de 3.1.6, 3.
3. De 3.1.6, 2 se deduce que k = kt ⇔ G1 = G2. Ademas, de 3.1.6, 1y 3 deducimos que k = kt ⇔ G3 = G4. ♦
Si un nucleo k esta dado por una lista L, la funcion generators(L) nos da lalista, eventualmente vacıa, de todos i para los que k ∈ Gi.
Con esta herramienta en la mano podemos comprobar facilmente que to-
dos los contenidos del teorema 3.1.10 pueden ser estrictos:
Ejemplos 3.1.11 Sea k un nucleo representado por la lista L. Entonces:
1. Si L = [[0, 0, 2], [0, 1, 3], [1, 0, 2], [1, 1, 5]], generators(L) = [2, 3, 4].
Por tanto, k ∈ G3 y k /∈ G1 ∩ G2 luego G1 ∩ G2 6= G3.
64 CAPITULO 3. CUASIMETRICAS.
2. Si L = [[0, 0, 3], [0, 1, 3.6], [1, 0, 2], [1, 1, 4]], generators(L) = [2, 4].
Por tanto, k ∈ G1 ∪ G2 y k /∈ G3 luego G1 ∪ G2 6⊂ G3 y G3 6= G4.
3. Si L = [[0, 0, 2.5], [0, 1, 3.6], [1, 0, 3.5], [1, 1, 5]], generators(L) = [3, 4].
Por tanto, k ∈ G3 y k /∈ G1 ∪ G2 luego G3 6⊂ G1 ∪ G2 y G1 ∪ G2 6= G4.
4. Si L = [[0, 0, 3], [0, 1, 3.5], [1, 0, 2], [1, 1, 3]], generators(L) = [4].
Por tanto, k ∈ G4 y k /∈ G1 ∪ G2 luego G1 ∪ G2 6= G4.
Observacion 3.1.12 Para cualquier nucleo k : X × X → R si,
∃ a, b ∈ X con k(a, a) = k(a, b) = k(b, a)
se tiene que k 6∈ G1 ni k 6∈ G2, pero puede ocurrir que k ∈ G3 como
sucede en el ejemplo 3.1.11,3. En estos casos q(1)k y q
(2)k son pseu-
docuasimetricas.
Teorema 3.1.13 Sea k : X × X → R un nucleo no nulo. Si
‖k‖∞ = max{|k(x, y)| | (x, y) ∈ X × X} y β0 =1
4‖k‖∞
se cumple:
1. El nucleo δ − β0k ∈ G1 ∩ G2 ⊂ G3 ⊂ G4.
2. q(i)δ−β0k genera la topologıa discreta en X ∀i = 1, 2, 3, 4.
Demostracion:
1. Quedara probado si demostramos que se cumplen las condiciones (a),(b) y (d) del teorema 3.1.9 para el nucleo δ − β0k. Como
k(x, x)− k(x, y) ≤ |k(x, x)− k(x, y)| ≤ 2‖k‖∞ < 4‖k‖∞ =1
β0,
β0k(x, x)−β0k(x, y) < 1 . Si x 6= y tenemos que δ(x, x) = 1 y δ(x, y) =0 y, ası, se cumple (a): δ(x, x)− β0k(x, x) > δ(x, y)− β0k(x, y).
Como
k(y, y)− k(x, y) ≤ |k(y, y)− k(x, y)| ≤ 2‖k‖∞ < 4‖k‖∞ =1
β0,
β0k(y, y)−β0k(x, y) < 1 . Si x 6= y tenemos que δ(y, y) = 1 y δ(x, y) =
0 y, ası, se cumple (b): δ(y, y)− β0k(y, y) > δ(x, y)− β0k(x, y).Como
−k(x, z)− k(z, y) + k(x, y) + k(z, z) ≤
3.1. CUASIMETRICAS 65
≤ | − k(x, z)− k(z, y) + k(x, y) + k(z, z)| ≤ 4‖k‖∞ =1
β0,
−β0k(x, z)−β0k(z, y)+β0k(x, y)+β0k(z, z) ≤ 1. Si card(x, y, z) = 3,δ(x, z) = δ(z, y) = δ(x, y) = 0 y δ(z, z) = 1 y, ası, se cumple (d):
δ(x, z)−β0k(x, z)+δ(z, y)−β0k(z, y) ≤ δ(x, y)−β0k(x, y)+δ(z, z)−β0k(z, z).
2. Si x 6= y tenemos:
q(1)δ−β0k(x, y) = 1− β0(k(x, x)− k(x, y)) ≥ 1 − β02‖k‖∞ =
1
2,
q(2)δ−β0k(x, y) = 1− β0(k(y, y)− k(x, y)) ≥ 1 − β02‖k‖∞ =
1
2,
q(3)δ−β0k(x, y) = 2 − β0(k(x, x) + k(y, y)− 2k(x, y)) ≥ 2− β04‖k‖∞ = 1
q(4)δ−β0k(x, y) = 2−β0(k(x, x)+k(y, y)−k(x, y)−k(y, x)) ≥ 2−β04‖k‖∞ = 1
Por tanto, todas generan la topologıa discreta. ♦
La funcion de SAGE b0(Lk) calcula β0 = 14‖k‖∞ para un nucleo k : X×X →
R no nulo, y la funcion V 0(Lk, n) nos devuelve en forma de lista el nucleo
q(n)δ−β0k utilizando como funcion auxiliar V qmetric(Lk, n, β0).
Corolario 3.1.14 Sea k : X × X → R un nucleo no nulo y sean
‖k‖∞ = max{|k(x, y)| | (x, y) ∈ X × X} y β0 =1
4‖k‖∞
Los conjuntos
Ci(k) = {β ∈ R+ | δ − βk ∈ Gi} ∀i = 1, 2, 3, 4,
son intervalos reales que contienen a [0, β0].
Demostracion:
Por 3.1.13 todos ellos contienen a 0 y β0. Ademas, es facil ver que secaracterizan de la siguiente manera:
1. Para i = 1, 2
β ∈ Ci(k) ⇔{
1β > q
(i)k (x, y) si card(x, y) = 2
1β ≥ q
(i)k (x, z) + q
(i)k (z, y)− q
(i)k (x, y) si card(x, y, z) = 3
.
66 CAPITULO 3. CUASIMETRICAS.
2. Para i = 3, 4
β ∈ Ci(k) ⇔{
2β
> q(i)k (x, y) si card(x, y) = 2
2β≥ q
(i)k (x, z) + q
(i)k (z, y)− q
(i)k (x, y) si card(x, y, z) = 3
.
Los Ci(k) son intervalos ya que si β ∈ Ci(k) y γ ∈ [0, β) tenemos que 1γ
> 1β
y 2γ
> 2β
y, en consecuecia, γ ∈ Ci(k). ♦.
Observaciones 3.1.15 En las condiciones del corolario 3.1.14 se tiene:
1. Los Ci(k) son intervalos de la forma [0, M), [0, M ] o [0, +∞)
2. Si k = kt, por 3.1.10, C1(k) = C2(k) y C3(k) = C4(k).
3. Si k es una cuasimetrica todos los intervalos Ci(k) son iguales a [0, +∞)
porque las condiciones de caracterizacion dadas en 3.1.14 se cumplen∀β > 0.
4. Designando
Mi = max{q(i)k (x, y) | card(x, y) = 2} ∪ {0} y
Ti = max{q(i)k (x, z) + q
(i)k (z, y)− q
(i)k (x, y) | card(x, y, z) = 3} ∪ {0}
se presentan dos casos en la determinacion de los supremos de Ci(k)
y un caso de no acotacion:
(a) Si Ti > Mi se tiene que Ci(k) =
{
[0, 1Ti
] para i=1,2
[0, 2Ti
] para i=3,4
(b) Si 0 < Mi ≥ Ti se tiene que Ci(k) =
{
[0, 1Mi
) para i=1,2
[0, 2Mi
) para i=3,4
(c) Si 0 = Mi = Ti se tiene que Ci(k) = [0, +∞) para i=1,2,3,4
Para realizar estos calculos hemos implementado en SAGE la funcion V qmetric-inter(L) que usa como funciones auxiliares: maxkernel(L) y maxtriangular(L)y la ya mencionada funcion qgenerator(L, i) (vease pag. 61)
Corolario 3.1.16 Sea k : X × X → R un nucleo no nulo y sean
‖k‖∞ = max{|k(x, y)| | (x, y) ∈ X × X} y β0 =1
4‖k‖∞Si denotamos
βi = sup{Ci(k)} ∀i = 1, 2, 3, 4
se cumple que β0 ≤ min{β1, β2} ≤ β3 ≤ max{β1, β2} ≤ β4. Ademas,
3.1. CUASIMETRICAS 67
1. Si k = kt se cumple que β1 = β2 = β3 = β4
2. Si k es cuasimetrica se cumple que β1 = β2 = β3 = β4 = ∞Demostracion:
Se sigue directamente de las observaciones 3.1.15
Observaciones 3.1.17 En las cadenas de contenidos[
0,1
4‖k‖∞
]
⊂ Ci(k) ⊂ R+ ∀i = 1, 2, 3, 4
podemos tener la igualdad o el contenido estricto en todas las posiciones:
1. Si k es simetrico todos los Ci(k) son iguales y los denotamos C(k).
2. Si k es una cuasimetrica, Ci(k) = R+ ∀i = 1, 2, 3, 4.
Si Lk es una lista que representa a un nucleo k, la funcion V qmetricinter(Lk)nos devuelve:
β0 = 14‖k‖∞ .
C1(k)
C2(k)
C3(k)
C4(k)
que son la cota y los diferentes intervalos del nucleo k.
En la Worksheet Capıtulo 3 hemos incluıdo ejemplos de nucleos que nosdan diferentes tipos de intervalos.
3.1.18 Embebimiento en un Hilbert
Cualquier metrica definida en un conjunto finito X genera la topologıa dis-
creta. Una propiedad no topologica que permite distinguir a una metricad : X × X → R, valorando su bondad, es que exista un espacio de Hilbert
H en el que pueda ser embebido isometricamente el espacio (X, d). Cuandotal cosa sucede escribimos (X, d) ↪→ H.
El teorema de Schoenberg [103] nos dice si es posible o no embeber unespacio metrico finito (X, d) en un espacio de Hilbert y en caso afirmativo
nos indica la dimension del espacio euclıdeo tal que (X, d) ↪→ (Rn, ‖ ‖2).Hemos redactado este resultado de 1935 en terminos actuales, dividiendolo
en un teorema y dos corolarios.
68 CAPITULO 3. CUASIMETRICAS.
Teorema 3.1.19 (Schoenberg)
Sea (x0, x1, · · ·xn) una enumeracion de X y sea q : X ×X → R+ un nucleo
simetrico nulo en la diagonal. En X0 = X \ {x0}, definimos el nucleo
s : X0 × X0 → R
(xi, xj) 7→ q2(xi, x0) + q2(xj, x0) − q2(xi, xj)
2
Los siguientes hechos son equivalentes:
1. Existe un Hilbert H y vectores v0, v1, · · · , vn ∈ H tales que
q(xi, xj) = ‖vi − vj‖ ∀i, j = 0, 1, · · · , n
2. El operador asociado S : RX0 → RX0 es definido no negativo.
Demostracion;
1 ⇒ 2) Probaremos que
(S(f)|f) =
∥
∥
∥
∥
∥
n∑
i=1
f(xi)(vi − v0)
∥
∥
∥
∥
∥
2
∀f ∈ RX0. (3.1)
En efecto, (S(f)|f) =
n∑
i,j=1
s(xi, xj)f(xi)f(xj) y, por otra parte,
∥
∥
∥
∥
∥
n∑
i=1
f(xi)(vi − v0)
∥
∥
∥
∥
∥
2
=
n∑
i=1
f(xi)(vi − v0)|n∑
j=1
f(xj)(vj − v0)
=
=
n∑
i,j=1
(vi − v0|vj − v0)f(xi)f(xj).
El teorema generalizado de Pitagoras asegura para a, b ∈ H que
(a|b) =‖a‖2 + ‖b‖2 − ‖a − b‖2
2
y, ası,
(vi − v0|vj − v0) =q2(xi, x0) + q2(xj, x0) − q2(xi, xj
2= s(xi, xj).
Por tanto (3.1) implica que (S(f)|f) ≥ 0 ∀f ∈ RX0 y, ası, S es
definido no negativo.
3.1. CUASIMETRICAS 69
1⇐ 2) Por ser S simetrico y definido no negativo, existe S 12 tambien simetrico
y definido no negativo.
El espacio euclıdeo RX0 y sus vectores 0, S
12ex1, · · · , S
12 exn , verifican
las condiciones pedidas. ♦
Corolario 3.1.20 En las condiciones del teorema 3.1.19, si existen vec-tores v0, v1, · · · , vn en el espacio euclıdeo Rm que cumplen las condiciones
q(xi, xj) = ‖vi − vj‖ ∀i, j = 0, 1, · · · , n, se verifica que rang(S) ≤ m.
Demostracion:
Consideramos la aplicacion lineal
T : RX0 → Rm
f 7→n∑
i=1
f(xi)(vi − v0)
Segun (3.1) tenemos que (S(f)|f) = ‖T (f)‖2 ≥ 0 ∀f ∈ RX0 y, por tanto,
ker S = kerT . Es claro que rang(T ) ≤ m y, por tanto, rang(S) ≤ m. ♦
Corolario 3.1.21 En las condiciones del teorema 3.1.19, si S es definidono negativo y rang(S) = d, existen vectores u0, u1, · · · , un ∈ Rd tales que
q(xi, xj) = ‖ui − uj‖ ∀i, j = 0, 1, · · · , n.
Demostracion:
Como S es definido no negativo, exite un Hilbert H y vectores v0, v1, · · · , vn
de H tales que q(xi, xj) = ‖vi − vj‖ ∀i, j = 0, 1, · · · , n. Consideramos laaplicacion lineal
T : RX0 → H
f 7→n∑
k=1
f(xk)(vk − v0)
Como rang(S) = d resulta que dimT (RX0) = d. Entonces existe una isome-
tria lineal J : T (RX0) → Rd. Los vectores u0 = 0 y uk = J(xk − x0) ∀k =
1, · · · , n cumplen las condiciones pedidas. ♦
La funcion schoenberg(L) de SAGE nos implementa el teorema 3.1.19 y
el corolario 3.1.21 dando tres posibles respuestas:
1. ”Este nucleo no cumple las condiciones del teorema 3.1.19”.
2. ”False”, cuando no hay embebimiento.
3. ”(True, d)”, cuando hay embebimiento en un espacio euclıdeo de di-
mension d.
70 CAPITULO 3. CUASIMETRICAS.
Teorema 3.1.22 Sea X un conjunto finito y k : X × X → R un nucleo
simetrico no nulo. Para i = 1, 2, 3, 4 obtenemos un mismo conjunto
S(k) = {β ∈ C(k) | (X, q(i)δ−βk) ↪→ H}
que es un intervalo real cerrado no degenerado [0, M ].
Demostracion:
Es claro que β = 0 esta en S(k) y los autovalores del nucleo de Schoenbergcorrespondientes son positivos. Por la continuidad de los autovalores como
funciones de β, si M es el valor de β para el que el menor autovalor delnucleo de Schoenberg se anula, la inmersion en un Hilbert esta aseguradaen [0, M ]. Evidentemente, M > 0 y para β > M el nucleo de Schoenberg
ya no sera definido no negativo. ♦
La funcion embedinginter(L) de SAGE nos calcula por un algoritmo debiseccion el intervalo S(k) para un nucleo k dado por la lista L.
Observaciones 3.1.23
1. El teorema 3.1.22 y los experimentos numericos realizados nos hacenpensar que S(k) debe ser un intervalo. Sin embargo, esta cuestion aunno ha podido ser demostrada.
2. Para nucleos k : X × X → R generados aleatoriamente, hemos obser-
vado una alta frecuencia de casos en que (X, q(3)
δ− 14‖k‖∞
k) ↪→ H cuando
|X | ≤ 25, mientras que los casos en que (X, q(3)
δ− 14‖k‖∞
k) 6↪→ H son muy
frecuentes cuando |X | ≥ 35.
3.2 Cuasimetricas y metricas en digrafos
Definiciones 3.2.1 Sea D = (V, E, w) un digrafo.
1. Dado un camino Γ = (e1, · · · , en) en V , definimos su coste como el
numero w(Γ) =
k∑
i=1
w(ei).
2. Llamamos coste del digrafo al numero w(D) =∑
e∈E
w(e).
Teorema 3.2.2 Sea D = (V, E,w) un digrafo y T =
∞⋃
k=1
E(k) la clausura
transitiva de E. El nucleo
3.2. CUASIMETRICAS Y METRICAS EN DIGRAFOS 71
qD : V × V → R
(u, v) 7→
0 si (u, v) ∈ ∆
minΓ∈Puv
{w(Γ)} si (u, v) ∈ T \ ∆
1 + w(D) si (u, v) /∈ T ∪ ∆
es una cuasimetrica en V que se llama cuasimetrica de Dikjstra de D.
Demostracion:
Las propiedades 1 y 2 de 3.1.1 son evidentes. Sean (u, t, v) ∈ V × V × V ycomprobemos la propiedad 3:
Si u, t, v estan en la misma componente conexa, existen Γ1 ∈ Put y Γ2 ∈ Ptv
tales que qD(u, t) = w(Γ1) y qD(t, v) = w(Γ2). El camino concatenado
Γ1Γ2 esta en Puv y, por tanto,
qD(u, v) ≤ w(Γ1Γ2) = qD(u, t) + qD(t, v).
Si u, t, v no estan en la misma componente conexa, se cumple que Put = ∅ oPtv = ∅ y, por tanto, la desigualdad es trivial. ♦
Observaciones 3.2.3
1. Hemos definido qD(u, v) como el mınimo de los costes de los caminosde Puv. Si Puv fuera vacıo, qD(u, v) deberıa ser infinito y para evitar
ese inconveniente, le hemos dado el valor 1+w(D) que tambien es uncoste inalcanzable para cualquier camino que no tenga arcos repetidos.
2. La operacion de composicion de relaciones juega un papel basico en
la teorıa de los espacios uniformes y cuasiuniformes. Ahora, en undigrafo D = (V, E,w) la clausura transitiva de E no solo simplifica la
presentacion teorica de la cuasimetrica de Dijkstra sino tambien nospermite disenar un algoritmo para calcularla. Lo hacemos a partir de
la funcion de SAGE kct(Lw) que calcula la clausura transitiva de Ey devuelve el coste del camino de mınimo coste existente entre dos
vertices conectados usando la funcion deplist(Lw, m) (vease pag. 56).
3. La funcion dijkstra(Lw) devuelve la matriz cuadrada de la cuasimetricade Dijkstra del digrafo D segun la enumeracion de los vertices dados
por kvertices(Lw).
Teorema 3.2.4 Sea D = (V, E, w) un digrafo, Dt su traspuesto y Ds
su simetrizado. Las respectivas cuasimetricas de Dikjstra cumplen las si-
guientes relaciones:
1. qDt = qtD.
2. qDs es una metrica
72 CAPITULO 3. CUASIMETRICAS.
3. Si E = >(E), se verifica que min{qD, qtD} ≤ qDs
4. Si E ∩ >(E) = ∅, se verifica que qDs ≤ (qD, qtD)∞.
Demostracion:
1. Tenemos que probar que qDt(u, v) = qD(v, u). Pero esto es evidente
porque Puv en >(E) coincide con Pvu en E y los costes de los caminosson iguales.
2. Puesto que Ds = Dts del apartado anterior deducimos qt
Ds= qDs . Ası,
qDs es una metrica.
3. Es claro que min{qD, qtD}(u, v) ≤ qDs(u, v) cuando u = v o cuando el
conjunto de caminos Puv en E es vacıo. En otro caso, supongamos
que qDs(u.v) = Γs(e1, · · · , ek) =k∑
i=1
w(ei) + wt(ei)
2y, ası,
∃(e1, · · · , ek) tal que qD(u, v) ≤k∑
i=1
w(ei)
∃(>(ek), · · · ,>(e1)) tal que qtD(u, v) ≤
k∑
i=1
w(>(ei))
y se verifica que 2 min{qD(u, v), qtD(u, v)} ≤ qD(u, v) + qt
D(u, v) ≤2qDs(u, v) y, por tanto,
min{qD(u, v), qtD(u, v)} ≤ qDs(u, v)
4. Sea E ∩ >(E) = ∅. La desigualdad es clara cuando u = v o cuandoel conjunto de caminos Puv en E es vacıo. En otro caso, supongamos,por ejemplo, que (qD, qt
D)∞(u, v) = qD(u, v). Entonces,
(qD, qtD)∞(u, v) =
k∑
i=1
w(ei) ≥k∑
i=1
w(ei) + 0
2=
k∑
i=1
w(ei) + wt(ei)
2≥ qDs
(u, v)
y, por tanto, (qD, qtD)∞(u, v) ≥ qDs(u, v). ♦
3.2.5 Metricas laplacianas en digrafos
Dado un digrafo D = (V, E,w) con un punto distinguido v0 ∈ V y otro
punto v∞ /∈ V , podemos considerar un nuevo digrafo
D = (V ∪ {v∞}, E ∪ {(v0, v∞)}, w)
donde w es una extension de w. Claramente, qD = qD en V × V y esto nos
dice que la cuasimetrica de Dikjstra no puede apreciar los cambios que se
3.2. CUASIMETRICAS Y METRICAS EN DIGRAFOS 73
producen en un digrafo cuando se conecta un nuevo vertice.
Sin embargo, en muchas situaciones que se pueden modelar sobre digrafos,
como los problemas de circuıtos electricos, de moleculas quımicas o de redessociales, el anadido de un nuevo nodo electrico, un nuevo atomo o un nuevo
internauta, producen modificaciones en las relaciones de proximidad entrelos vertices preexistentes.
Las cuasimetricas q(i)δ−βk introducidas en el teorema 3.1.13 permiten apre-
ciar los cambios de proximidad que se producen en un digrafo al anadir un
nuevo vertice cuando los pesos de los arcos de conexion del nuevo verticeson relativamente significativos. Estas metricas pueden ser adecuadas para
el estudio de las redes sociales pues nos indican como la introduccion deun nuevo internauta con gran influencia sobre uno de los antiguos puede
cambiar las relaciones entre todos los usuarios.
Klein y Randic [79] probaron que el inverso de Moore-Penrose L+D, del ope-
rador laplaciano de un digrafo simetrico y conexo D, cumple que q(4)
L+D
es una
metrica con esas buenas propiedades.
Chebotarev y Shamis [28] probaron que Qα = (I + αLD)−1, donde α > 0y LD es el operador laplaciano de un digrafo conexo y simetrico D, cumple
que q(4)Qα
es una metrica con esas buenas propiedades.
Estos dos ultimos ejemplos nos han llevado a titular esta seccion comometricas laplacianas en digrafos, porque en ella pretendemos presentar prue-
bas originales de los resultados de [79] y [28] sin necesidad de considerar losdigrafos como circuitos electricos ni de utilizar el complicado teorema de
la matriz de bosques. Para la nueva presentacion de [79] necesitamos doslemas:
Lema 3.2.6 Sea X un conjunto finito y L : RX → R
X un operador autoad-junto que cumple:
1. L es definido no negativo.
2. 1 ∈ kerL.
3. rang L = |X | − 1.
Entonces, el nucleo
q(4)L : X × X → R
(x, y) 7→ (L(ex − ey)|ex − ey)
74 CAPITULO 3. CUASIMETRICAS.
cumple que
√
q(4)L es una metrica y, si 3 no se satisface, es una pseu-
dometrica.
Demostracion:
Por 1, existe√L que es un operador autoadjunto y definido no negativo tal
que√L ·
√L = L. Como
q(4)L (x, y) = (L(ex − ey)|ex − ey) = ‖
√Lex −
√Ley‖2,
es claro que
√
q(4)L cumple todas las propiedades de pseudometrica. Para
ver que es metrica solo falta comprobar que
√
q(4)L (x, y) = 0 ⇒ x = y:
Es claro que
√
q(4)L (x, y) = 0 ⇒ ex − ey ∈ ker
√L ⊂ kerL y, por 2 y 3,
kerL = [1]. Luego, ex − ey = λ1 y, en consecuencia, x = y. ♦.
Lema 3.2.7 Sea X un conjunto finito y L : RX → RX un operador autoad-
junto con kerL = [1]. Si H1 y H2 son g-inversos de L, se tiene que q(4)H1
=
q(4)H2
.
Demostracion:
Para todo (x, y) ∈ X × X es claro que (1|ex − ey) = 0 y, por tanto,
ex − ey ∈ [1]⊥ = [kerL]⊥ = imLt = imL.
Existe f ∈ RX tal que ex − ey = Lf . Entonces,
q(4)H1
(x, y) = (H1(ex−ey)|ex−ey) = (H1 · Lf |Lf) = (L ·H1 · Lf |f) = (Lf |f)
De modo similar obtenemos
q(4)H2
(x, y) = (H2(ex−ey)|ex−ey) = (H2 · Lf |Lf) = (L ·H2 · Lf |f) = (Lf |f)
y, en consecuencia, q(4)H1
(x, y) = q(4)H2
(x, y). ♦
Teorema 3.2.8 Sea D = (V, E,w) un digrafo conexo y simetrico. Sea LD
su operador laplaciano y sea L+D su inverso de Moore-Penrose. Entonces,
q(4)
L+D
es una metrica.
Demostracion:
Como L+D es autoadjunto, definido no negativo, de rango |V | − 1 y cumple
que [1] = kerL+D, el lema 3.2.6 asegura que
√
q(4)
L+D
es una metrica. Por tanto,
3.2. CUASIMETRICAS Y METRICAS EN DIGRAFOS 75
solo falta probar que q(4)
L+D
satisface la desigualdad triangular, es decir, fijados
vi, vk, vj ∈ V distintos, debemos probar que
q(4)
L+D
(vi, vj) ≤ q(4)
L+D
(vi, vk) + q(4)
L+D
(vk, vj)
Si (v1, · · · , vn) es una enumeracion de V y K = (kij) es la matriz de LD en
la base {ev1 , · · · , evn}, por cumplirse que kerLD = [1], kij ≤ 0 ∀i 6= j ykii ≥ 0 ∀i, el punto 3 del lema 2.1.8 nos asegura que
1. La matriz K[k, k] es definida positiva ∀k = 1, · · · , n.
2. Si Bk = (b(k)ij ) es la matriz inversa de K[k, k] y Nn = {1, · · · , n},
b(k)ij ≥ 0 ∀(i, j) ∈ (Nn \ {k}) × (Nn \ {k}).
3. El operador Hk cuya matriz Hk en la base {ev1, · · · , evn} tiene entradas
h(k)ij =
{
b(k)ij si (i, j) ∈ (Nn \ {k})× (Nn \ {k})0 si (i, j) 6∈ (Nn \ {k})× (Nn \ {k})
es g-inverso de LD.
Por el lema 3.2.7, q(4)
L+D
= q(4)Hk
y, por tanto, basta probar que
q(4)Hk
(vi, vj) ≤ q(4)Hk
(vi, vk) + q(4)Hk
(vk, vj)
o, lo que es lo mismo,
h(k)ik + h
(k)kj ≤ h
(k)ij + h
(k)kk (?).
Por la definicion de Hk, h(k)ik = h
(k)kj = h
(k)kk = 0 y h
(k)ij = b
(k)ij ≥ 0. Por tanto,
se cumple (?) y la desigualdad triangular queda probada. ♦
La funcion kleinrandic(Lw) devuelve la matriz cuadrada de la cuasimetrica
q(4)
L+D
de un digrafo D = (V, E,w).
Teorema 3.2.9 Sea D = (V, E,w) un digrafo tal que Ds = (V, Es, ws) es
conexo. La distancia q(4)
L+Ds
(u, v) es el mınimo cuadrado de la norma eucıdea
de los puntos de la variedad {g ∈ RE | U t
D(g) = eu − ev}.
Demostracion:
Dado el operador U tD : R
E → RV asociado a la incidencia del digrafo D
y dado h ∈ im U tD , la lagrangiana del problema de minimizar la norma
euclıdea en la variedad Mh = {g ∈ RE | U t
D(g) = h} es
76 CAPITULO 3. CUASIMETRICAS.
L : RE × RV → R
(g, f) 7→ (g|g)− (UD(f)|g)− (f |h)
y las soluciones (g, f) han de verificar ∇L(g, f) = 0, es decir, han de cumplirque
g =1
2UD(f) y U t
D(g) = h.
Ası, h = 12U t
D · UD(f) = 12LDs(f) y el mınimo cuadrado de su norma
sera
‖g‖2 =1
4(UD(f)|UD(f)) =
1
4(LDsf |f) = (L+
Dsh|h).
Si h = eu − ev , es claro que eu − ev ∈ [kerLDs ]⊥ = im LDs ⊂ im U t
D y
‖g‖2 = (L+Ds
(eu − ev)|eu − ev) = q(4)
L+Ds
(u, v). ♦
Corolario 3.2.10 Sea D = (V, E, w) un digrafo conexo y simetrico y sea eldigrafo D′ = (V, E, 2
w). Entonces,
q(4)
L+D
(u, v) ≤ qD′(u, v) ∀(u, v) ∈ V × V .
Demostracion:
Basta probar la desigualdad cuando u 6= v. Sabemos que
qD′(u, v) = minΓ∈Cuv
{w(Γ)} .
Podemos suponer que (e1, · · · , ep) es el camino de coste mınimo y, por tanto,
qD′(u, v) =2
w(e1)+ · · ·+ 2
w(ep).
Tomando g =
p∑
i=1
√
2
w(ei)eei
∈ RE, tenemos que U t
D(g) = eu − ev luego
‖g‖2 =2
w(e1)+ · · ·+ 2
w(ep).
El teorema 3.2.9 asegura que q(4)
L+D
(u, v) ≤ qD′(u, v). ♦
Mediante el teorema de la matriz de bosques, en [28] se prueba que siD = (V, E,w) es un digrafo simetrico y conexo y LD su operador lapla-
ciano, el operador Q = (I + LD)−1 es generador de una metrica.
Puesto que para todo real α > 0 el digrafo Dα = (V, E, αw) tiene por lapla-
ciano el operador αLD , es claro que q(4)Qα
tambien sera una metrica siendo
3.2. CUASIMETRICAS Y METRICAS EN DIGRAFOS 77
Qα = (I + αLD)−1. Chebotarev y Shamis la llamaron metrica de bosques
ajustada de parametro α.
Para la nueva presentacion de [28] necesitamos el siguiente
Lema 3.2.11 Sea X finito con |X | ≥ 3 y sea (x1, · · · , xn) una enumeracion
de X . Tomamos en RX una base ortonormal {f1, . . . , fn−1,1√n} y en R un
conjunto de numeros positivos {m1, . . . , mn−1}. Si
n−1∑
k=1
mk(fk|exi)(fk|exj
) ≤ 0 ∀i 6= j ,
el nucleo
q : X × X → R
(xi, xj) 7→n−1∑
k=1
1
mk
(fk|exi− exj
)2
es una metrica.
Demostracion:
El operador K =
n−1∑
k=1
mkfk ⊗ fk : RX → R
X es autoadjunto y kerK = [1].
Las entradas de la matriz que lo representa en la base {ex1, · · · , exn} son
kij = (exi|Kexj
) =
n−1∑
k=1
mk(fk|exi)(fk|exj
) ≤ 0 ∀i 6= j .
Es claro que
q(xi, xj) =
n−1∑
k=1
1
mk(fk|exi
−exj)2 = (K+(exi
−exj)|(exi
−exj) = q
(4)K+(xi, xj)
y segun el teorema 3.2.8, q es una metrica. ♦
Teorema 3.2.12 Sea (V, E,w) un grafo simetrico y conexo y sea L su
laplaciano. El operador I + L es inversible y si Q = (I + L)−1 se cumple
que q(4)Q es una metrica.
Demostracion:
Sea (v1, · · · , vn) una enumeracion de V . Como L : RV → RV es au-
toadjunto, definido no negativo y kerL = [1], existe una base ortonor-
mal {f1, . . . , fn−1,1√n} en RV constituida por vectores propios de L. Si
78 CAPITULO 3. CUASIMETRICAS.
µ1 ≥ · · · ≥ µn−1 > µn = 0 son los valores propios correspondientes, tene-
mos,
L =
n−1∑
k=1
µkfk ⊗ fk.
Las entradas de la matriz L que representa a L en la base {ev1, · · · , evn}son, segun el teorema 2.1.10,
`ij = (evi|Levj
) =
n−1∑
k=1
µk(fk|evi)(fk|evj
) ≤ 0 ∀i 6= j.
Por ser {f1, . . . , fn−1,1√n} base ortonormal tenemos
n−1∑
k=1
(evi|fk)(evj
|fk) + (evi| 1√
n)(evj
| 1√n
) = (evi|evj
) , ∀(i, j) ∈ Nn × Nn
y, por tanto,
n−1∑
k=1
(evi|fk)(evj
|fk) = −1
n< 0 cuando i 6= j .
Ası,n−1∑
k=1
(1 + µk)(evi|fk)(evj
|fk) < 0 cuando i 6= j
y el lema 3.2.11 asegura que
q(4)Q (vi, vj) =
n−1∑
k=1
1
1 + µk
(evi− evj
|fk)2 ∀(vi, vj) ∈ V × V
es una metrica. ♦
La funcion chebotarev(Lw, α) devuelve la matriz cuadrada de la cuasimetrica
q(4)Qα
de un digrafo D = (V, E,w).
Para finalizar la seccion podemos clarificar la fuerte conexion que existeentre las metricas estudiadas en [79] y [28]:
Corolario 3.2.13 Sea L = (lij) ∈ Mn(R) una matriz simetrica definida no
negativa que cumple:
1. 1n ∈ ker L
2. rang L = n − 1.
3.2. CUASIMETRICAS Y METRICAS EN DIGRAFOS 79
Si ∀α > 0 la matriz Qα = (I + αL)−1 es generadora de una metrica qα, la
matriz L+, inversa de Moore-Penrose de L, tambien es generadora de unanetrica qL+
Demostracion:
L tiene una base ortonormal de vectores propios {h1, . . . , hn−1,1n√n} y val-
ores propios correspondientes µ1 ≥ · · · ≥ µn−1 > µn = 0 tales que
(Lx|y) =
n−1∑
k=1
µk(x|hk)(y|hk) ∀x, y ∈ Rn .
Fijado α > 0, tenemos que
(Qαx|y) =
n−1∑
k=1
1
1 + αµk(x|hk)(y|hk) + (x| 1n√
n)(y| 1n√
n) ∀x, y ∈ R
n .
Si Rα es la matriz que satisface la relacion
(Rαx|y) =
n−1∑
k=1
1
1 + αµk(x|hk)(y|hk) ∀x, y ∈ R
n ,
es claro que qRα = qQα . Por tanto, qRα es una metrica y tambien lo es qαRα .Puesto que µk > 0 para k = 1, . . . , n−1, es facil observar que lim
α→∞αRα = L+
y, por tanto,
qL+ = limα→∞
qαRα .
Ası, como lımite de una familia de metricas, qL+ es una pseudometrica.
Ademas, por la proposicion 3.2.6, qL+(i, j) > 0 cuando i 6= j y, ası, qL+ esuna metrica. ♦
Corolario 3.2.14 Sea L : Rn → Rn un operador autoadjunto definido no
negativo que cumple:
1. 1n ∈ kerL
2. rang L = n − 1.
Para todo α > 0 definimos el operador Lα = L + α1n ⊗ 1n. Entonces,
(a) Lα es autoadjunto y definido positivo.
(b) qL+ es una metrica si y solo si qL−1α
es una metrica ∀α > 0.
Demostracion:
80 CAPITULO 3. CUASIMETRICAS.
(a) L tiene una base ortonormal de vectores propios {h1, . . . , hn−1,1n√n}
y valores propios correspondientes µ1 ≥ · · · ≥ µn−1 > µn = 0 tales
que L =
n−1∑
k=1
µkhk ⊗ hk. Ası, para cada α > 0 tenemos que
Lα =
n−1∑
k=1
µkhk ⊗ hk + α1n ⊗ 1n
y ello implica que Lα es autoadjunto y definido positivo.
(b) Es claro que L−1α = L+ + α−11n ⊗ 1n y qL−1
α= qL+ + qα−11n⊗1n
.Entonces:
Si qL+ es una metrica, como qα−11n⊗1nes una metrica para todo α > 0,
por la proposicion 3.1.3,4 deducimos que qL−1α
es una metrica ∀α > 0.
Es claro que limα→∞
L−1α = L+ y, por tanto, lim
α→∞qL−1
α= qL+ . Si
suponemos que para todo α > 0 el nucleo qL−1α
es una metrica, obten-emos que qL+ es una pseudometrica. Pero, la proposicion 3.2.6 asegura
que dL+(i, j) > 0 cuando i 6= j. Luego, qL+ es una metrica. ♦
Capıtulo 4
Conexiones hamiltonianas
mınimas
4.1 Ciclos hamiltonianos mınimos
Historicamente los ciclos hamiltonianos de longitud mınima en un conjuntode puntos contenidos en un rectangulo del plano complejo se han computado
haciendo particiones en dicho rectangulo (vease [67]).
Si R es un rectangulo acotado que contiene a L se han encontrado bue-nas aproximaciones a la solucion optima usando particiones rectangulares
{Ri | i ∈ I} de R que inducen particiones {Li | i ∈ I} en L, tales queLi = L ∩ Ri y |Li| < k ∀i ∈ I siendo k un natural pequeno. En estos con-
juntos Li se pueden encontrar facilmente caminos hamiltonianos optimos ylas computaciones habituales han seguido diferentes estrategias para conec-tar los caminos optimos de cada Li y formar ası, el deseado ciclo hamilto-
niano optimo en L.
En el trabajo Designing Hamiltonian Cycles presentado en el ACA2013en Malaga por F. de Arriba, E. Corbacho y R. Vidal (vease [8]) se pro-
puso la particion del conjunto L en sus diferentes niveles de convexidad,{L1, · · · , Ln}, pensando que la geometrıa de la distribucion de los puntos
facilitarıa la conexion entre los diferentes elementos de la particion en elmismo sentido que las funciones simples de Lebesgue mejoran la integracion
tipo Riemann.
Si co(L) es la envoltura convexa de L y δ(co(L)) es su frontera, definimos
L1 = L ∩ δ(co(L)),
L2 = L ∩ δ(co(L \ L1)),
L3 = L ∩ δ(co(L \ (L1 ∪ L2)),
81
82 CAPITULO 4. CONEXIONES HAMILTONIANAS MINIMAS
· · ·
Ln = L ∩ δ(co(L \ (L1 ∪ · · · ∪ Ln−1)).
Las ideas basicas de dicho planteamiento son:
1. Si L = L1, bastarıa fijar una orientacion en la frontera y, de acuerdo
con ella, ordenar los puntos de L. De esta manera construirıamos uncamino hamiltoniano cerrado en L de longitud mınima puesto que esel unico que no tiene cruces.
2. Si existe un z0 ∈ L tal que L′ = L \ {z0} tiene la propiedad expresadaen 1, podemos construir un ciclo hamiltoniano optimo en L′ y reem-
plazar la mas adecuada arista zizi+1 por la poligonal ziz0zi+1 de talmanera que el nuevo ciclo, que obviamente seguirıa siendo hamiltonia-
no, aumentara su longitud lo menos posible.
3. Si existiera un {z0, · · · , zn} ⊂ L tal que L′ = L\{z0, · · · , zn} tuviera lapropiedad expresada en 1, podrıamos considerar el ciclo hamiltoniano
optimo en L′ y estudiar el orden adecuado para incorporar los puntoszi a dicho ciclo de modo que se preserve la condicion de hamiltoniano
y crezca su longitud lo menos posible.
En cualquier conjunto L se puede hallar su particion en niveles de convexi-dad {L1, · · · , Ln} y al camino hamiltoniano existente en L1 incorporarle los
puntos de L2 segun la heurıstica de 3. Al ciclo hamiltoniano ası formadoque designamos L12, le incorporamos los puntos de L3 por el mismo procedi-
miento, y ası, sucesivamente hasta llegar al ciclo L1···n.
SAGE es un software muy adecuado para implementar estos algoritmos. Ennuestra Worksheet ”Capitulo4” presentamos la funcion envolturaconvexa(L)que es una version particular del conocido algoritmo de Jarvis que actua so-
bre el conjunto de puntos del plano complejo L = listacomplejos(R, m)(vease pag 33) y nos devuelve el conjunto L1 = L ∩ δ(co(L)) ordenado en
sentido contrario a las agujas del reloj partiendo del punto inferior entre losque estan mas a la izquierda.
La funcion cebolla(L) nos devuelve la lista [L1, · · · , Ln] relativa a la par-
ticion del conjunto L en sus niveles de convexidad.
La funcion pegalistas(L1, L2) incorpora los puntos de L2 al ciclo L1. Elorden de incorporacion se decide por el mınimo aumento de longitud delcamino. Los empates se resuelven por el maximo angulo de incorporacion
y, si persisten, se usa un algoritmo recursivo. Una vez decidida la incorpo-racion de un cierto w ∈ L2 entre los puntos (zi, zi+1) de L1 se reemplaza el
tramo [zi−1, zi, w, zi+1, zi+2] por su reordenacion optima y, sucesivamente,
4.1. CICLOS HAMILTONIANOS MINIMOS 83
se procede a incorporar un nuevo elemento de L2 a este nuevo ciclo.
La funcion cicloham(L) obtiene la lista [L1, · · · , Ln], computa L12 pegando
L2 a L1, L123 pegando L3 a L12 y, por iteracion, propone en principio, comociclo hamiltoniano optimo la lista C = L1···n.
La funcion mejoratramo(C, n, m) que equivale a
pegalistas(restalistas(C, C[n : m + 1]), C[n : m + 1])
corta y pega de nuevo el tramo C[n : m + 1], intentando acortar la longituddel ciclo C.
La funcion ciclohamop(C) establece un proceso recursivo en el que uti-
lizamos la funcion mejoratramo en cada uno de los fiordos que aparecenen el ciclo C y a continuacion la funcion mejoratramo en grupos de tres
puntos por si el punto central debe cambiar de orilla de fiordo para acortarla longitud del ciclo hamiltoniano. Este proceso monotono finaliza en un
numero finito de pasos y se ejecuta al final de cicloham devolviendo un ciclohamiltoniano C que no es necesariamente optimo pues puede contener crucesde aristas pero que como iremos comprobando es suficientemente bueno.
Si C presenta un cruce de aristas de las aristas C[m : m+1] y C[n−1 : n] la
funcion descruza(C, m, n) nos devuelve un ciclo hamiltoniano sin ese crucede aristas y por lo tanto de menor longitud que C que conjeturamos muy
proximo al optimo absoluto aunque no tenemos la prueba definitiva de ello.
En [8] se presentaron estos algoritmos sin estimacion de su bondad ni com-paracion con cotas inferiores conocidas, aunque, ya se indicaba que el metodo
mejoraba notablemente otras construcciones de ciclos hamiltonianos optimosque se pueden encontrar en la Red. Por ejemplo, en ”TSPGames” : http ://www.tsp.gatech.edu/games/index.html, el cardinal de los conjuntos del
plano considerados es siempre menor que 50 mientras que nuestro metodopuede tratar en pocos segundos listas de cardinal superior a 200.
En este capıtulo comprobamos los resultados obtenidos con cicloham(R)
sobre distribuciones de tipo radial(n, m, r, d) (vease pag. 34), comparamoscon dos cotas inferiores y aplicamos el cicloham para evaluar el test colo-
rimetrico de Farnsworth-Munsell obteniendo unos resultados tan aceptablesque nos hacen confiar en la precision de nuestro algoritmo.
4.1.1 Distribuciones radiales
Para una distribucion R = radial(2k, 2, r, d) obtenemos dos propuestas de
ciclos hamiltonianos optimos mediante la funcion cicloham(R):
84 CAPITULO 4. CONEXIONES HAMILTONIANAS MINIMAS
Por ejemplo, para R = radial(6, 2, 1, 2) nos devuelve como optimo un ci-clo hamiltoniano que yuxtapone dos vertices de la capa 1 a dos vertices de
la capa 2, a dos vertices de la capa 1 y ası sucesivamente, que llamamos detipo 1
Figura 4.1: radial(6,2,1,2)
y para R = radial(8, 2, 1, 2) nos devuelve como optimo un ciclo hamiltonia-no que recorre una capa y luego la otra, que llamamos de tipo 2
Figura 4.2: radial(8,2,1,2)
Es facil probar el siguiente teorema
Teorema 4.1.2 En toda distribucion radial(2k, 2, r, d) con k > 1 las lon-gitudes de los ciclos hamiltonianos de tipo 1 y 2 son, respectivamente
L1 = 2k · (2r + d) sinπ
2k+ 2kd
L2 = 2(2k − 1)(2r + d) sinπ
2k+ 2d
4.1. CICLOS HAMILTONIANOS MINIMOS 85
En consecuencia:
L2 ≤ L1 ⇔ sinπ
2k≤ 1
1 + 2 rd
Los resultados obtenidos con cicloham(R) cumplen exactamente este teo-rema y detectan que el cambio de ciclo optimo se produce cuando
k >π
2 · arcsin( 11+2 r
d
)
En el caso r = 1 y d = 2, obtenemos k > 3 de acuerdo con lo previsto.
Ademas, aunque el teorema 4.1.2 esta enunciado solamente para radialescon un numero par de rayos vemos que nuestro metodo obtiene para la
radial(7, 2, 1, 2) un ciclo hamiltoniano optimo de tipo 2.
Figura 4.3: radial(7,2,1,2)
Para otros valores de r y d haremos mas comprobaciones en la Worksheet
del capıtulo.
4.1.3 Cotas inferiores
Definicion 4.1.4 Sea D = (V, E,w) un digrafo conexo y sea D′ = (V, E ′, w′)un arbol generador de D (ver pag. 52) se dice que D′ es un arbol generador
mınimo si se verifica w(D′) ≤ w(D′′) ∀D′′ arbol generador de D.
El primero en tratar el problema de encontrar arboles generadores mınimosde un digrafo conexo fue Otakar Boruvka (1926, [16]) mientras estudiaba
la necesidad de electrificar la zona rural en el sur de Moldavia pero fueJoseph Kruskal (1956, [81]) quien diseno un algoritmo para calcular un arbol
generador mınimo.
86 CAPITULO 4. CONEXIONES HAMILTONIANAS MINIMAS
Definicion 4.1.5 Algoritmo de Kruskal
Sea D = (V, E,w) un digrafo conexo, el algoritmo de Kruskal consiste enordenar los pesos de los arcos de menor a mayor y en cada paso seleccionar
el arco de menor peso de tal forma que nunca se forme un ciclo. Se terminacuando todos los vertices del grafo D quedan conectados.
Teorema 4.1.6 Teorema de KruskalEn un digrafo conexo D = (V, E,w) el algoritmo de Kruskal produce siempre
un arbol generador de coste mınimo.
Hemos implementado en SAGE la funcion kruskal(L) que calcula para eldigrafo completo (L, K, e) donde
e : L × L → R
(xi, xj) 7→ |xi − xj|el arbol generador de coste mınimo.
En un intento de evaluar la bondad de nuestro metodo cicloham hemosimplementado en SAGE dos funciones para calcular cotas inferiores de la
longitud del ciclo hamiltoniano optimo:
1. La funcion cotaK(L) que para el conjunto de vertices L suprime unvertice v y todas sus aristas y en el nuevo digrafo resultante calcula el
arbol generador de coste mınimo usando kruskal(L \ {v}) y le anadelas dos aristas de coste mınimo que salen de v. Se repite este pro-
cedimiento para todo v ∈ L y nos quedamos con el maximo de losvalores obtenidos. Ası, la funcion cotaK(L) nos devuelve una buena
cota inferior para la longitud del ciclo hamiltoniano mınimo de L.
2. La funcion cotaV (L) sugerida por el Prof. R. Vidal, que calcula para
cada vertice de L la suma de la longitud de sus dos aristas menores,siendo el valor de la cota el promedio de todas las sumas.
Como no siempre cotaK(L) ≤ cotaV (L) ni lo contrario, consideramos elmaximo de ambas cotas implementado en la funcion cotaKV (L).
Si C = cicloham(L) podemos tomar como estimacion de la bondad delalgoritmo, el porcentaje,
bondad(L) = 100 · cotaKV (L)
lon(C)[0]
Ejemplos 4.1.7
1. Si R = rectangular(5, 6, 1, 1) la longitud de cicloham(R) es 30 unidadesy su grafico es
4.1. CICLOS HAMILTONIANOS MINIMOS 87
Figura 4.4: rectangular(5,6,1,1)
Como bondad(R) = 100, podemos asegurar que cicloham(R) es un
ciclo hamiltoniano optimo en R.
2. Si T = triangular(5, 1,√
32 ) la grafica de cicloham(T ) es
Figura 4.5: triangular(5, 1,√
32 )
y, como bondad(T ) = 100, podemos asegurar que es un ciclo hamilto-
niano optimo en T .
3. Si RA = radial(3, 2, 1, 2) la grafica de cicloham(RA) es
88 CAPITULO 4. CONEXIONES HAMILTONIANAS MINIMAS
Figura 4.6: radial(3,2,1,2)
pero, como bondad(RA) = 82.28, no podemos aseverar que cicloham(RA)sea un ciclo hamiltoniano optimo en RA.
Sin embargo, como |RA| = 6, podemos usar la funcion optimizac(RA)
que calcula el ciclo hamiltoniano optimo hallando el mınimo entre to-dos los ciclos posibles. En 0.45 segundos obtenemos como respuesta elsiguiente ciclo
Figura 4.7: optimizac(RA)
que, como podemos observar, es equivalente a cicloham(RA).
4. La lista L8 = [0, 6i, 2 − 3i, 4 − 5i, 7 − 3i, 4 + 4i, 2 + i, 4 + 9i] tiene
bondad(L) = 89.79 y ,por tanto, genera espectativas de que cicloham(L8)sea un ciclo hamiltoniano optimo en L8. Si disponemos de 2.28 se-gundos para ejecutar optimizac(L8), comprobaremos que si lo es:
4.1. CICLOS HAMILTONIANOS MINIMOS 89
Figura 4.8: cicloham(L8) y, a la derecha, optimizac(L8)
Observacion 4.1.8 No obtener una bondad del 100% en los ejemplos 4.1.7.3
y 4.1.7.4 se debe a que cotaKV (RA) y cotaKV (L) no son suficientementegrandes. Como no disponemos de cotas mayores, aceptamos que cicloham(L)
puede ser un ciclo hamiltoniano optimo en L aunque su bondad no sea del100%. La heurıstica de los ejemplos realizados en la elaboracion de esta
memoria nos lleva a confiar en la funcion cicloham para bondades mayoreso iguales al 80%.
En la Worksheet del capıtulo abundaremos en ejemplos para distribucionesaleatorias de puntos.
4.1.9 Test de Farnsworth-Munsell
Por ser este 2015 el Ano Internacional de la Luz nos ha parecido oportunopresentar una aplicacion de nuestro algoritmo cicloham a la evaluacion del
test colorimetrico de Farnsworth-Munsell que es uno de los mas empleadospara medir la capacidad de discriminacion cromatica y la vision defectiva
del color, en los seres humanos [87]. Todos los datos utilizados en estaseccion y almacenados en los Anexos han sido obtenidos en el laboratorio deFısica Aplicada de la Facultad de Ciencias de la Universidad de Zaragoza
por Cristina Corbacho, alumna del Grado de Optica y Optometrıa, en laelaboracion de su trabajo Fin de Grado.
El Farnsworth-Munsell es un test de ordenacion cromatica que en la actuali-
dad consta de 93 muestras aunque conserva el nombre tecnico FM Hue 100porque en un primer momento constaba de 100 muestras. Las 93 muestras,
fichas de colores del espacio CIELAB, se presentan en cuatro cajas.
90 CAPITULO 4. CONEXIONES HAMILTONIANAS MINIMAS
Figura 4.9: Test de Farnsworth-Munsell
Las cuatro fichas de los extremos izquierdos y las cuatro de los extremos
derechos estan ancladas, ası que solo son moviles 21 muestras de las tresprimeras cajas y 22 de la ultima que hacen un total de 85. En la primeracaja el color de las muestras varıa del rosa al amarillo, en la segunda, del
amarillo al azul verdoso, en la tercera del azul verdoso al azul y en la cuartadel azul al rosa, pasando por el purpura.
El color de la ultima muestra de la 1a caja coincide con el de la 1a muestra
de la 2a caja; el de la ultima muestra de la 2a caja, con el de la 1a muestrade la 3a caja; el de la ultima muestra de la 3a caja, con el de la 1a muestra
de la 4a caja y el de la ultima muestra de la 4a caja, con el de la 1a mues-tra de la 1a caja, cerrando, ası, la gama de colores. Podemos imaginar que
tenemos un conjunto ordenado de 85 fichas distribuidas a lo largo de unacurva cerrada dentro de un diagrama CIELAB.
Tambien existe un modelo reducido FM Hue 28 de 28 fichas, obtenido alsuprimir de las 85 fichas moviles las dos ultimas de cada trio consecutivo
segun el orden dado por el fabricante. Es decir, de las 85 moviles se dejanlas 28 fichas siguientes:
1, 4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 34, 37, 40,
43, 46, 49, 52, 55, 58, 61, 64, 67, 70, 73, 76, 79, 82
Teorıa matematica del color
El color es una caracterıstica de la luz y un atributo de la vision. La luz sepuede definir como la forma de la energıa radiante que es capaz de estimular
la retina del ojo humano provocando un proceso consciente que da lugar alas sensaciones visuales.
Pero, como dice Hubaut [69], precisar que caracterıstica de la luz es el color,no es una pregunta sencilla.
4.1. CICLOS HAMILTONIANOS MINIMOS 91
En 1944 la Sociedad Optica de los EE.UU. (OSA) dijo que era aquella dis-
tinta de las inhomogeneidades espaciales y temporales.Esta frase imprecisa nos induce a pensar mas en una propiedad fısica que
en una psicofısica y, por otra arte, es siempre preferible definir las cosas porlo que son que por lo que no son.
Es mas clara la definicion de Judd:El color es el atributo de la luz que hace corresponder a cada distribucion
espectral una sensacion. Esta sensacion esta condicionada por la intensidady duracion del estımulo, el estado de adaptacion del observador, el area de
la retina afectada y el contraste luminoso y cromatico con que se recibe.
Es importante destacar que esa correspondencia es una funcion matematica,es decir, para cada composicion espectral de la luz en las condiciones dadas
se produce, una y solo una, sensacion de color. Sin embargo, esa funcionno es inyectiva, la misma sensacion de color puede ser producida por in-
finitas combinaciones de distribuciones espectrales, fenomeno que se llamametamerismo.
Los colores dependen de los objetos, de la luz que los ilumina y de la per-cepcion del ojo humano que los detecta. Las propiedades fısicas de los
objetos son escasamente perturbadas por los iluminantes, sin embargo, lacomposicion espectral del iluminante influira en la apariencia psicologica
de los objetos. En [19] y [6] podemos encontrar las especificaciones de losiluminantes que hemos usado en las mediciones de color:
1. Iluminante A: Luz de una lampara de incandescencia de filamento dewolframio alimentada a una tension tal que adquiere una temperatura
de color de 2856K.1
2. Iluminante C. Representa la luz de cielo norte sin sol directo en un dıa
claro. Su temperatura de color es de unos 6774K.
3. Iluminante D65. Representa la luz media de un mediodıa en EuropaOccidental. Su temperatura de color es de 6504K.
4. Iluminante F11. Representa la luz de un tubo fluorescente con tem-peratura de color de 4100K.
5. Iluminante LED. Su temperatura de color es 5997K.
En el ANEXO1 hemos archivado los datos obtenidos con un colorımetro
Minolta CM 700d sobre la irradiancia espectral de cada uno de estos ilumi-nantes
1Temperatura del cuerpo negro, medida en Kelvin, cuando este presenta el mismo color
que el radiador
92 CAPITULO 4. CONEXIONES HAMILTONIANAS MINIMAS
La CIE (Commission Internationale de L’Eclairage), tambien, (International
Comission on Illumination) distingue entre el color percibido y el color psi-cofısico.
Color Percibido
El color percibido puede definirse por las siguientes magnitudes:
1. La luminosidad es la cantidad de luz que es percibida por el ojoal observar una escena. La relacion existente entre el maximo y el
mınimo nivel de luminosidad se llama contraste.
2. La cromıa es la calidad de la luz percibida y viene determinada por
dos caracterısticas:
(a) El tono es la cualidad del color que permite decir que un objetoes rojo, amarillo, verde, azul, purpura o de cualquier tono inter-
medio a ellos. El ojo humano sano es capaz de distinguir unos150 tonos pero su correspondencia con la longitud de onda no es
uniforme en todo el espectro visible. Mientras en los extremosson necesarios 6 nm. para percibir un tono diferente, en ciertas
partes centrales del espectro se necesita solo 1 nm.
(b) La saturacion se refiere a la pureza del color. Un color in-saturado, ademas del tono particular, contiene blanco mientras
uno saturado no contiene blanco.
Sistema Munsell
Como la descripcion correcta del color se escapa a las posibilidades linguıs-
ticas, Albert Munsell [96] creo en 1912 un sistema de especificacion del color
4.1. CICLOS HAMILTONIANOS MINIMOS 93
basado en la determinacion del tono (hue), la luminosidad (value) y la satu-
racion (chroma). Los tonos se disponen en un cırculo dividido en 10 sectoresde 36o grados de amplitud. Cinco con los tonos fundamentales, rojo (R),
amarillo (Y), verde (G), azul (B) y purpura (P) y entre ellos otros cinco conlos tonos intermedios, rojo-amarillo (RY), amarillo-verde (YG), verde-azul
(GB), azul-urpura (BP) y purpura-rojo (PR). En la vertical por el centrodel cırculo se gradua la luminosidad de forma uniforme, en grises, desde el0 (negro) al 10 (blanco). La saturacion se gradua segun la distancia al eje
vertical, variando desde el propio eje que es acromatico, a la periferia, dondela saturacion es maxima.
Figura 4.10: Cartas Munsell con saturacion baja y alta
Color Psicofısico
El color psicofısico es la caracterıstica de la radiacion visible que permite al
observador distinguir las diferencias entre dos objetos de las mismas dimen-siones, forma y estructura, siendo estas diferencias de la misma naturaleza
que las producidas por una diferencia en la composicion espectral de la ra-diacion que interviene en la observacion.La experiencia llevo a Leonardo da Vinci a decir que mezclando tres colores
se pueden obtener casi todos los colores conocidos pero no fue hasta 1666que Isaac Newton comprobo que con tres franjas del espectro luminoso se
puede recomponer la luz blanca.Por esa misma epoca Thomas Young propugno la teorıa segun la cual el
ojo actua analizando los colores amarillo, azul y rojo y en 1853 el fısicoaleman Hermann Grassmann sistematizo la teorıa de la mezcla aditiva del
color estableciendo las que hoy se conocen como leyes de Grassmann:
1. Por sıntesis aditiva del color es posible conseguir todos los colorespercibidos mezclando las franjas roja, verde y azul del espectro visible,
en la proporcion de intensidad adecuada, siempre que ninguno de los
94 CAPITULO 4. CONEXIONES HAMILTONIANAS MINIMAS
tres valores elegidos pueda obtenerse por mezcla de los otros dos.
A las radiaciones que producen iguales sensaciones de tono, saturaciony luminosidad se les llama cromaticamente equivalentes
2. Si las luces A y B son cromaticamente equivalentes y las luces Cy D tambien lo son, las sıntesis aditivas A+C y B+D tambien son
cromaticamente equivalentes.
3. Siempre que dos superficies nos produzcan igual sensacion cromatica,
podemos variar su luminosidad manteniendo el tono y la saturacionsin que varie la igualdad cromatica entre ambas superficies.
4. Como cualquier color puede crearse por sıntesis aditiva de los coloresprimarios (rojo, verde, azul) y como al mezclar aditivamente estos
componentes sumamos sus luminosidades, la luminosidad de cualquiercolor es la suma de las luminosidades de sus componentes primarios.
Las leyes de Grasmann fueron recuperadas por Hermann von Helmholtz ysustentaron el importante trabajo de J.C. Maxwell [92] publicado en 1860.
Figura 4.11: Sıntesis aditiva del color y eje de brillos
Triangulos de Maxwell
A partir de entonces, para analizar un flujo f de luz de tipo X en un
colorımetro, se compara visualmente en el ocular con tres flujos suerpuestosr, g y b de luces monocromaticas R (roja), G (verde) y B (azul).
Si se igualan las sensaciones cromaticas, obtenemos la ecuacion tricromatica
fX = rR + gG + bB.
Como la cuarta ley de Grasmann nos asegura que f = r + g + b, podemosescribir la ecuacion unitaria del color X
X =r
r + g + bR +
g
r + g + bG +
b
r + g + bB
4.1. CICLOS HAMILTONIANOS MINIMOS 95
y designar a los coeficientes
xr =r
r + g + b, xg =
g
r + g + b, xb =
b
r + g + b
coordenadas tricromaticas del color X que, evidentemente, cumplen
xr ≥ 0, xg ≥ 0, xb ≥ 0 y xr + xg + xb = 1.
Cada punto P de un triangulo equilatero T de area total A, determina latripleta (A1, A2, A3) de las areas de los triangulos que forma P con cada
lado de T . Como
A1
A≥ 0,
A2
A≥ o,
A3
A≥ 0 y
A1
A+
A2
A+
A3
A= 1,
(A1A , A2
A , A3A ) puede ser considerada terna de coordenadas cromaticas de P .
Los vertices y el baricentro de T tendran las coordenadas (0, 0, 1), (0, 1, 0),(1, 0, 0) y ( 1
3 , 13 , 1
3 ), respectivamente y en la Worksheet del capıtulo podemos
conseguir colorear tantos puntos como deseemos de uno de tales triangulos:
Figura 4.12: Triangulo con 1891 puntos coloreados
Sin embargo, siempre se prefiere que el baricentro tenga las coordenadas(1, 1, 1) de la luz blanca y, por ello, designando M = max{A1
A, A2
A, A3
A}, se
toma la tripleta ( A1MA , A2
MA , A3MA), que cumple las propiedades
A1
MA≥ 0,
A2
MA≥ 0,
A3
MA≥ 0 y
A1
MA+
A2
MA+
A3
MA=
1
M,
como terna de coordenadas cromaticas de P . Los vertices mantienen suscoordenadas (0, 0, 1), (0, 1, 0) y (1, 0, 0) y el baricentro consigue las deseadascoordenadas (1, 1, 1).
Si buscamos en Internet el termino triangulo de Maxwell, encontramos
96 CAPITULO 4. CONEXIONES HAMILTONIANAS MINIMAS
que es la representacion en el plano de la pantalla, del mayor de los dos
triangulos equilateros de la figura siguiente, mientras que nuestro anteriortriangulo es la representacion del menor:
Figura 4.13: Triangulos de Maxwell con baricentros de diferente brillo
Tambien podemos obtener triangulos de Maxwell con luz blanca en su bari-
centro y tantos puntos coloreados como queramos
Figura 4.14: Triangulos de Maxwell con 55 puntos y con 10100 puntos
Se pueden transformar en triangulos de Maxwell rectangulos isosceles,
4.1. CICLOS HAMILTONIANOS MINIMOS 97
Figura 4.15: Triangulo de Maxwell rectangulo
y se puede obtener un curioso triangulo de Maxwell, con luz blanca en el bari-
centro, al tomar como coordenadas cromaticas, las coordenadas proyectivasrespecto del sistema de referencia proyectivo constituido por los vertices yel baricentro como punto unidad:
Figura 4.16: Triangulo de Maxwell proyectivo
Diagrama de cromaticidad RGB
Aunque no se puedan igualar las sensaciones cromaticas del flujo f del color
X con la superposicion de los flujos r, g y b de colores R, G y B, siempre sepuede encontrar un flujo de luz primaria, por ejemlo, r′ de R, que sumado
al flujo f de tipo X se iguale a una superposicion de los flujos g′ de G y b′
de B. Obtendremos, ası, la ecuacion tricromatica
fX + r′R = g′G + b′B
que puede expresarse en la forma matematica equivalente
fX = −r′R + g′G + b′B
aunque los flujos negativos de luz carezcan de sentido fısico.
De nuevo, la cuarta ley de Grasmann asegura que f + r′ = g′ + b′ y, portanto, que f = −r′ + g′ + b′. Ası podremos escribir la ecuacion unitaria del
color X en la forma
X =−r′
−r′ + g′ + b′R +
g
−r′ + g′ + b′G +
b′
−r′ + g′ + b′B
98 CAPITULO 4. CONEXIONES HAMILTONIANAS MINIMAS
cuyas coordenadas cromaticas seran
xr =−r′
−r′ + g′ + b′, xg =
g′
−r′ + g′ + b′, xb =
b′
−r′ + g′ + b′
y siguen cumpliendo que xr +xg +xb = 1 aunque ya no sean todas positivas.
Los colores con alguna coordenada cromatica negativa tienen su ubicacionfuera del triangulo de Maxwell.
J. Guild y W.D. Wright consiguieron en 1920, partiendo de estımulos mono-
cromaticos de 700 nm. para R, 546.1 nm. para G y 435.8 nm. para B,determinar el lugar de todos los colores espectrales puros, desde 350 nm. a
780 nm., de 20 en 20 nm.
Figura 4.17: Locus espectral
Como podemos ver muy claramente expuesto en [53], todos los puntos en-cerrados por esta curva corresponden a colores apreciables por el ojo humano
y recibieron tambien sus coordenadas cromaticas (xr, xg, xb) en su ubicacionadecuada respecto del triangulo unitario de Maxwell que contiene al blanco.
Se configuro, ası, el diagrama cromatico o sistema RGB que se ajusta muybien a la neuroquımica ocular humana. El mayor problema de este sistema
RGB es que la mayor parte de los colores tienen una coordenada negativa,lo cual dificulta los calculos colorimetricos y, por otra parte, hallar la lumi-nancia partiendo de estas coordenadas es, como dice F.R. Nicolas [97], un
problema tremendamente complicado.
Diagramas de cromaticidad CIE
Ası las cosas, la CIE vio la necesidad de crear un nuevo sistema de repre-sentacion del color con las siguientes propiedades:
1. Carencia de coordenadas cromaticas negativas
2. Las tres coordenadas cromaticas de la luz blanca deben ser iguales.
4.1. CICLOS HAMILTONIANOS MINIMOS 99
3. La luminosidad debe coincidir con una de las coordenadas y la cro-
maticidad debe ser facilmente deducible de las otras dos.
Para conseguir las dos primeras condiciones solo habıa que encerrar la region
limitada por el locus espectral y la lınea de purpuras, en un triangulo T ytransformarlo linealmente en el triangulo unidad de modo que el blanco con-
servara las coordenadas iguales.
Para la tercera condicion habıa que elegir con acierto los vertices de T .Tomando como vertices los puntos Cr, Cg , Cb de la Fig.4.17, las nuevas
coordenadas cromaticas (x, y, z) se obtuvieran de las antiguas (r, g, b) medi-ante el cambio lineal:
xy
z
=
0.490 0.310 0.2000.177 0.813 0.011
0.000 0.010 0.990
rg
b
Como los puntos Cr , Cg, Cb no corresponden a radiaciones visibles por el ojohumano, a las nuevas coordenadas se les prefiere llamar valores triestımulos
(X,Y,Z).
Desde 1931 existen tablas CIE de la funcion color psicofısico, discretizada en
tramos de 5 nm. de longitudes de onda. Estas primeras tablas descuidaronun poco el papel de la ponderacion triestımulo en la determinacion del brillo
y la proporcionalidad entre la distancia euclıdea de dos puntos y la diferen-cia cromativa de los mismos. Por ejemplo,
Figura 4.18: Diagrama cromatico CIE XYZ 1931
En 1970, Foster, Gans y Stearns [56] propusieron convenios para estandarizar
las ponderaciones triestımulo y, con la mayor precision de los nuevos instru-mentos, Stearn [109] pudo publicar en 1975 un conjunto mas completo de
tablas discretizadas en tramos de 1 nm.Desde 1976 existen tablas CIE de la funcion color psicofısico, discretizadasen tramos de 1 nm. de longitud de onda, que intentan corregir la propor-
cionalidad entre la distancia euclıdea y la diferencia cromatica de dos puntoscualesquiera.
100 CAPITULO 4. CONEXIONES HAMILTONIANAS MINIMAS
Figura 4.19: Diagrama cromatico CIE LUV 1976
Espacio de color CIELAB
En la actualidad la CIE propugna un espacio de color [22], aceptable uni-versalmente que sea mas visualmente uniforme. Se pretende con ello que un
cambio de la misma cantidad en un valor de color produzca un cambio caside la misma importancia visual.
Para ello se han introducido las nuevas coordenadas cromaticas (L?, a?, b?)donde L? mide la luminosidad , a? mide la proporcion verde-rojo y b? mide
la proporcion azul-amarillo. Respecto de los valores triestımulo (X, Y, Z) de1964 se expresan mediante las formulas de cambio
L? = 116f(Y/Yn) − 16
a? = 500 [f(X/Xn) − f(Y/Yn)]
b? = 200 [f(Y/Yn) − f(Z/Zn)]
donde (Xn, Yn, Zn) son los triestımulos del iluminante utilizado que, en nues-tro caso, recogemos en la siguiente tabla extraıda de [60]
Xn Yn Zn
A 11.1462 100 35.203
C 97.287 100.002 116.147
D65 94.809 100 107.307
F11 103.866 100 65.629
LED 93.78 100 97.95
y la funcion f : [−1, 1] → R se define como sigue:
f(t) =
{
t13 si t > (6/29)3
13 t292
62 + 429 en otro caso
Tanto f : [−1, 1] → R como su inversa f−1 : [−7.6491, 1] → R estan imple-
mentadas en la Worksheet del capıtulo y sus graficas son:
4.1. CICLOS HAMILTONIANOS MINIMOS 101
Figura 4.20: f azul y f−1 roja
La transformacion inversa es facil de deducir:
X = Xnf−1(
1116 (L∗ + 16) + 1
500a∗)
Y = Ynf−1(
1116 (L∗ + 16)
)
Z = Znf−1(
1116 (L∗ + 16)− 1
200b∗)
Los diagramas cromaticos dependen, ahora, directamente de la luminosidad
L? y son del tipo
Figura 4.21: Diagramas cromaticos CIELAB para L? = 25 y L? = 75
En este espacio de color CIELAB, para un punto de coordenadas (L?, a?, b?),se definen el chroma C? y el argumento h?:
C? =√
(a?)2 + (b?)2 y h? = arctan
(
b?
a?
)
Para dos puntos (L?0, a
?0, b
?0) y (L?
1, a?1, b
?1), se definen las diferencias de lumi-
nosidad ∆L?, de chroma ∆C?, de argumento ∆h?, de tono ∆H? y de color∆E? como se indica a continuacion:
∆L? = L?o − L?
1 ∆C? = C?o − C?
1 ∆h? = h?o − h?
1
∆H? = 2√
C?o ·C?
1 · sin(
∆h?
2
)
∆E? =√
(∆L?)2 + (∆C?)2 + (∆H?)2
En [114] se pueden completar sus significados y, ası, proseguimos con la
102 CAPITULO 4. CONEXIONES HAMILTONIANAS MINIMAS
Valoracion del test de Farnsworth-Munsell
En primer lugar evaluamos un test FM Hue 100 realizado por un paciente
deuteranomalo:
El ANEXO2 contiene las coordenadas Lab de las 85 fichas no ancladas deltest FM, obtenidas en el laboratorio mediante un colorımetro Minolta CM700d e iluminante LED en el orden OF propuesto por el fabricante y en el
orden OD propuesto por el paciente.
Construimos el ciclo del fabricante y el del paciente, calculamos sus lon-gitudes y obtenemos que el del paciente tiene 0.4121 unidades de longitud
mas que el del fabricante como se puede ver en la Worksheet del capıtulo.
Podemos tomar esta diferencia 0.4121 como medida de la anomalıa del pa-ciente. Tambien observamos que dicha diferencia se debe, basicamente, a las
producidas en los tramos [0 : 30] y [46 : 66] cuestion que los clınicos sabrande seguro interpretar:
Figura 4.22: Ciclos del deuteranomalo y del fabricante
Mediante la funcion cicloycicloptimo(OF, LED) comprobamos que el ciclodel fabricante no es el optimo.
Figura 4.23: Ciclo del fabricante y ciclo optimo
Al intercambiar las fichas 62 y 63 logramos rebajar la longitud del ciclo del
fabricante en 0.001190 unidades de longitud. Pensamos que la causa no esun error del fabricante sino una perturbacion producida por el iluminante
LED utilizado. Nos planteamos como siguiente objetivo testar los test FM
4.1. CICLOS HAMILTONIANOS MINIMOS 103
de la Escuela de Optica de Zaragoza a los que hemos tenido acceso, con
diferentes iluminantes.
En el ANEXO3 archivamos las coordenadas Lab de las 28 fichas no ancladasdel test FM Hue 28, en el orden propuesto por el fabricante, obtenidas en
el laboratorio mediante el colorımetro Minolta CM 700d e y los iluminantesA, C, D65 y F11. Para los cuatro vemos que la ordenacion propuesta por elfabricante es la optima y la diferencia de longitudes de los ciclos es siempre
nula.
Figura 4.24: Iluminante A
Figura 4.25: Iluminante 28C
Figura 4.26: Iluminante D65
104 CAPITULO 4. CONEXIONES HAMILTONIANAS MINIMAS
Figura 4.27: Iluminante F11
En el ANEXO4 archivamos las coordenadas Lab de las 85 fichas no ancladas
de los test FM 100 Hue (2) y FM 100 Hue (3), en el orden propuesto porlos fabricantes, obtenidas en el laboratorio mediante el colorımetro Minolta
CM 700d e y los iluminantes A, C, D65 y F11.
Para el iluminante A obtenemos:
Figura 4.28: Diferencia de longitud de ciclos 0,00005341 para FM(2)
Figura 4.29: Coincidencia de ciclos para FM(3)
En el test FM(2) observamos que la diferencia de 0, 00005341 unidades de
longitud se debe a la trasposicion de las fichas 54 y 56. Sin embargo el testFM(3) no es perturbado por el iluminante A.
4.1. CICLOS HAMILTONIANOS MINIMOS 105
Para el iluminante C obtenemos:
Figura 4.30: Diferencia de longitud de ciclos 0,0002670 para FM(2)
Figura 4.31: Diferencia de longitud de ciclos 0,0006256 para FM(3)
Los test FM(2) y FM(3) presentan diferencias de longitud de ciclos de0, 0002670 y 0, 0006256 unidades, respectivamente. Ambas se deben a la
trasposicion de las fichas 62 y 63.
Para el iluminante D65 obtenemos:
Figura 4.32: Coincidencia de ciclos para FM(2)
La diferencia 0, 0002747 de longitud de ciclos para FM(3) se debe a latrasposicion de las fichas 62 y 63.
106 CAPITULO 4. CONEXIONES HAMILTONIANAS MINIMAS
Figura 4.33: Diferencia de longitud de ciclos 0,0002747 para FM(3)
Para el iluminante F11 obtenemos:
Figura 4.34: Diferencia de longitud de ciclos 0,006058 para FM(2)
Figura 4.35: Diferencia de longitud de ciclos 0,006981 para FM(3)
La diferencia 0, 006058 para FM(2) se debe a la trasposicion de los pares de
fichas 29 − 30 y 37 − 38. La diferencia 0, 006981 para FM(3) se debe a latrasposicion de los pares 5− 6, 29 − 30 y 37 − 38.
4.2. ARBOLES HAMILTONIANOS MINIMOS 107
Observaciones 4.1.10
1. Es claro que lo que pretende un test FM bien construido es formar un
ciclo hamiltoniano optimo con los puntos del plano complejo corres-pondientes a los valores triestımulo XY Z de las fichas.
A partir de la lista C de coordenadas Lab de dichas fichas, obtenidasbajo un iluminante IL, la funcion LabtoXY Z(C, IL) calcula la lista
T de los valores triestımulos de las fichas del test. Finalmente, con lafuncion XY ZtoP (T ) obtenemos la lista de complejos L y su corres-
pondiente cicloham(L).
2. Para facilitar la comparacion visual del ciclo hamiltoniano F ofrecido
por el fabricante con el cicloham(F ) obtenido con un iluminante IL,utilizamos la funcion cicloyciclooptimo(F, IL) que consigue que ambos
ciclos tengan el mismo origen.
3. La diferencia entre la longitud lD del ciclo propuesto por un pacientedeuteranomalo y la longitud lF del ciclo propuesto por el fabricante
del test FM utilizado, nos parece una manera precisa de evaluar laanomalıa del paciente aunque podrıa ser mas razonable normalizarladel siguiente modo
Anomalıa = 100 ∗ lD − lF
lF
4. Estimamos que no serıa difıcil modificar el codigo desarrollado para
poder realizar test FM on line tomando como referencia no la longitudLF propuesta por el fabricante sino la longitud del ciclo hamiltoniano
optimo que se obtuviera teniendo en cuenta las caracteristicas de colore iluminacion de la pantalla del ordenador que utilizara el paciente en
una habitacion oscura.
5. Las pequenas diferencias entre los ciclos que presentan los fabricantes
y los obtenidos mediante la funcion cicloham que, por lo expuesto,parecen deberse exclusivamente a los iluminantes utilizados ha aumen-
tado la confianza en nuestro algoritmo. Agradecemos a la Facultad deCiencias de la Universidad de Zaragoza habernos permitido usar los
datos para realizar este experimento practico.
4.2 Arboles hamiltonianos mınimos
Para listas L de complejos con |L| < 6, la funcion optimiza(L) nos de-
vuelve al instante el arbol hamiltoniano de mınima longitud obteniendolodirectamente como el de longitud mınima entre todos los posibles arboles
hamiltonianos de list(Permutations(L)). Sin embargo, para |L| > 11, el
108 CAPITULO 4. CONEXIONES HAMILTONIANAS MINIMAS
tiempo de calculo de optimiza(L) se puede hacer insoportable. Conviene,
por tanto, disenar una aproximacion satisfactoria del arbol hamiltonianooptimo que se pueda calcular con rapidez.
Una primera opcion es suprimir de C = cicloham(L) su mayor arista median-
te la funcion CA(L) que nos da un arbol hamiltoniano de longitud lon(C)[0]−lon(C)[1].
Sin embargo, como podemos comprobar con la lista L8 estudiada en el ejem-plo 4.1.7.4, aunque cicloham(L8) es un ciclo hamiltoniano optimo, CA(L8)
no es un arbol hamiltoniano optimo en L8:
Figura 4.36: CA(L8) de 27.66, una de 25.88 y optimiza(L8) de 25.35
La conexion intermedia se ha obtenido a partir de CA(L8) suprimiendo la
arista mayor y conectando los dos caminos hamiltonianos que se producen,de manera conveniente. Esto es lo que hemos establecido como metodo
general en la funcion caminoham(L) que, aunque, como vemos, no siem-pre devuelve el arbol hamiltoniano optimo en L, lo tomaremos como una
aproximacion suficiente del arbol hamiltoniano optimo para listas largas.
Con el fin de evaluar la bondad de caminoham(L) establecemos las siguien-
tes cotas
1. kruskal(L)[1]
2. La funcion cotaV a(L), sugerida por el Prof. R. Vidal, que calcula paracada vertice de L la longitud de las dos aristas menores que inciden
en el, siendo la cota el promedio de la suma de estas longitudes menosla longitud de la mayor de las aristas consideradas.
Como no siempre kruskal(L)[1] ≤ cotaV a(L) ni lo contrario, consideramos
el maximo de ambas cotas implementado en la funcion cotaKV a(L) y defini-
4.2. ARBOLES HAMILTONIANOS MINIMOS 109
mos la bondad abierta, bondada(L), como la razon
bondada(L) = 100 · cotaKV a(L)
lon(caminoham(L))[0]
Cuando bondada(L) = 100, como sucede para L = rectangular(5, 5, 1, 1),podemos asegurar que caminoham(L) es un arbol hamiltoniano optimo.
El recıproco no se verifica: para la lista
L = [13.74+19.57i,−19.28+4.73i,−2.73+7.46i, 4.63−10.33i, 15.83−17.58i, 2.66+2.26i]
tenemos caminoham(L) ' optimiza(L) y bondada(L) = 84, 42%.
Daremos por buena la propuesta de caminoham(L) si bondada(L) > 80%.
110 CAPITULO 4. CONEXIONES HAMILTONIANAS MINIMAS
Capıtulo 5
Caminos de Steiner
5.1 Arbol mınimo de Steiner
Para un conjunto finito de puntos L del plano complejo (C, | |) queremos
encontrar un camino que conecte todos los puntos de L y tenga la mınimalongitud posible. Tal camino debe ser un arbol y puede contener puntos
de C que no esten en L y ayuden a reducir la longitud total. Tales puntosse llaman actualmente puntos de Steiner y el camino resultante se designa
SMT(L) (Steiner Minimal Tree).
Por ejemplo, si T = triangular(2, 1,√
32 ), la mınima conexion hamiltoniana
en T tiene longitud 2 pero si B =sum(T )
3 , la mınima conexion posible en
T + [B] es de longitud√
3.
A principios del siglo XVII Fermat propuso el problema de encontrar paratres puntos cualesquiera del plano P1, P2, P3, un cuarto punto F tal que la
suma de las distancias FP1 + FP2 + FP3 fuese mınima. En 1640 Torricellinos regalo su famosa construccion del punto F :
111
112 CAPITULO 5. CAMINOS DE STEINER
donde la distancia E1E2 es la mınima suma buscada FP1 + FP2 + FP3.
Desde entonces el problema de Steiner ha sido tratado profusamente vease
[35], [36], [37], [38], [68], [70], [75], [76], [74], [112], [113] y son bien conocidaslas siguientes
Propiedades 5.1.1
1. En un SMT el numero de aristas que inciden en cada vertice (gradodel vertice) es a lo mas tres.
2. En un SMT el grado de cada punto de Steiner es igual a tres y dos
aristas que inciden en el forman un angulo de 120o.
3. En un SMT(L) hay a lo mas |L| − 2 puntos de Steiner. Hay exacta-
mente |L| − 2, cuando los puntos de L tienen grado uno.
4. Un SMT(L) tiene a lo mas 2|L| − 3 aristas.
5.2 Algoritmos de Steiner
Nuestra primera contribucion en este capıtulo es la programacion de tres
importantes funciones, Steiner3(L), Steiner4(L) y Steiner5(L) que nosdevuelven para una lista L de 3, 4 o 5 complejos:
1. Los puntos de Steiner de L.
2. El dibujo del SMT(L).
3. La longitud S(L) del SMT(L).
5.2. ALGORITMOS DE STEINER 113
4. Una comparacion normalizada, entre la longitud H(L) del arbol hamil-
toniano mınimo de L y la longitud S(L), que llamamos ganancia
G(L) = 100H(L)− S(L)
H(L).
La funcion Steiner3(L) tiene una programacion algebraica sencilla peroSteiner4(L) y Steiner5(L) tienen una programacion iterativa que se detiene
cuando los posibles puntos de Steiner a anadir se acercan suficientemente alas condiciones exigidas en 5.1.1. Las iteraciones se realizan con las funciones
auxiliares iter4(L) e iter5(L) a partir de posiciones iniciales adecuadas, pro-porcionadas por las funciones auxiliares optimiza4(L) y optimiza5(L) que
no solo hallan conexiones hamiltonianas mınimas sino tambien exigen condi-ciones a los angulos que forman sus aristas. Como |L| ≤ 5, las tres funcionespueden devolvernos con rapidez la cuarta salida G(L) pues podemos calcu-
lar H(L) mediante la funcion optimiza(L) que elige la poligonal de menorlongitud entre las determinadas por todas las permutaciones posibles en L.
Estas funciones de Steiner que tambien las usamos bajo el nombre de
Steiner(L, n) con n = 3, 4, 5, tienen una gran precision:
Ejemplos 5.2.1
1. En la configuracion T = radial(3, 1, 1, 0) la construccion de Torricellinos da los resultados exactos S(T ) = 3 y G(T ) = 50(2−
√3).
Steiner3(T ) nos da S(T ) = 3 y G(T ) = 13.3974596215561 con 14cifras decimales exactas.
2. En la configuracion L = [0, 1, I ] la construccion de Torricelli nos da
los resultados exactos S(L) =√
22 +
√
32 y G(L) = 4−
√2−
√6
4 .
Steiner3(L) nos da S(L) = 1.93185165257814 y G(L) = 3.40741737109317
con 14 cifras decimales exactas.
3. En la configuracion Q = [0, I, 1 + I, 1] la construccion de Torricelli
nos da los resultados exactos S(Q) = 1 +√
3 y G(Q) = 1002−√
33 .
Steiner4(Q) nos da S(Q) = 2.73205080756944 y G(Q) = 8.93163974768525
con 7 cifras decimales exactas.
114 CAPITULO 5. CAMINOS DE STEINER
4. En la configuracion romboidal R = [0, 1, 1 + ei π3 , ei π
3 ] la construccion
de Torricelli
da los resultados exactos S(R) =√
7 y G(R) = 1003−√
73 .
Steiner4(R) nos da S(L) = 2.6457513 y G(L) = 11.8082896 con 7cifras decimales exactas.
5. En la configuracion P = radial(5, 1, 1, 0) la construccion de Torricelli
da los resultados exactos
S(P ) = 4 · sin π
5· cos
π
30(sin
7π
30+√
3 cos7π
30)
G(P ) = 100− 50 · (√
3 · cos7π
30+ sin
7π
30) · cos
π
30.
Steiner5(P ) nos da S(P ) = 4.57432991416211 con 6 cifras decimalesexactas y G(P ) = 2.72106402122711 con 4 cifras decimales exactas.
En los cuatro ultimos ejemplos podemos aumentar la precision ajustando
las condiciones de parada de los procesos iterativos iter4() e iter5() pero acosta de aumentar el tiempo de calculo. Nos parece suficiente la precision
que ya tenemos para establecer los siguientes
5.3. DEFORMACIONES EN MEMBRANAS DE GRAFENO 115
Resultados 5.2.2
1. Si L = radial(3, 1, 1, 0)+ [0], G(L) = 19.615242
2. Si L = radial(4, 1, 1, 0)+ [0], G(L) = 19.980084
3. Si L = [0, 1, 1 + ei π3 , ei π
3 ] + [ 1+ei π3
2 ], G(L) = 11.808289
4. Si L = radial(5, 1, 1, 0)+ [0], G(L) = 16.043679
5. Si L = radial(6, 1, 1, 0)+ [0], G(L) = 13.397459
5.3 Deformaciones en membranas de grafeno
Las dos dislocaciones que se producen en una membrana de grafeno porcausas aun desconocidas son las deformaciones de Stone-Wales y la mitosis
(ver, [117], [42], [88])
Figura 5.1: Esquemas de Zsoldos
Mediante la funcion Steiner4g(L) podemos aplicar el metodo iter4 a la lista
L y no a optimiza4(L). En consecuencia obtenemos una conexion de Steinermınima aunque solo localmente. Esto es lo que creemos que sucede en lasdeformaciones de Stone-Wales
116 CAPITULO 5. CAMINOS DE STEINER
En la mitosis, los defectos se producen al conectarse cuatro atomos de car-
bono por un arbol de Steiner mınimo, aunque para ello tenga que captar dosnuevos atomos de carbono que podrıan ser considerados atomos de Steiner.
En la bibliografıa citada no hemos encontrado una motivacion de este tipopara las dislocaciones en el grafeno.
5.4 Atajos de Steiner
La reduccion de buenas conexiones hamiltonianas mediante atajos de Steineres un problema de gran interes en la planificacion de nuevas infraestructuras
o la mejora de las existentes en extensos territorios. Piensese, por ejemplo,en la conexion por AVE entre las ciudades espanolas, la electrificacion o la
conexion por fibra optica en el rural gallego o la ampliacion razonable dela red de autopistas de un paıs. Ya en 1836, Gauss planteo a su amigo
Schuhmacher (vease [59]) cuanto se podrıa reducir la conexion por carreteraentre las ciudades alemanas de Bremen, Harburg, Hannover y Braunschweig.
Para tratar estos problemas disponemos, por deferencia de Emilio EstevezMartınez, del paquete de funciones de SAGE union europea que ha elabo-
rado para su tesis doctoral. En cada paıs de la UE ha tomado las n ciudadesmas importantes, siendo n la poblacion del paıs en millones de habitantes.
Ha determinado las ciudades a partir de su nombre y su latitud y longitudgeograficas expresadas en grados decimales obtenidas en la pagina de Inter-
net www.mundivideo.com/coordenadas.htm.
Cada paıs P empieza siendo una lista de puntos en la esfera terrestre connombre [[Namek, lonk, latk] | k ∈ P ]] y los valores de su longitud y latitud
medias LOM y LAM y, tomando el radio de la Tierra R = 6367650, latransforma en la lista de complejos con nombre [Namek, xk + I ∗ yk] | k ∈ P ]donde
{
xi = Rcos(latiπ
180)tan((loni − LOM) π180)
yi = R(lati − LAM) π180
5.4. ATAJOS DE STEINER 117
Transforma la pareja de paıses [P1, P2] en una sola lista en el plano complejo
de P1 mediante la funcion desplazamiento(P1()[1], P2()[1]) que suma a lascoordenadas del paıs P2, un numero complejo cuyo modulo es la distancia
geodesica entre los puntos [LOM1, LAT1] y [LOM2, LAT2] y cuyo argumentoes el angulo entre el cırculo maximo determinado por ellos y el paralelo que
pasa por [LOM1, LAT1].
Para una lista de paıses [P1, · · · , Pk], mediante la funcion viaje([P1, · · · , Pk])
genera una unica lista de complejos y usa la funcion genera mapa paraobtener el cicloham de la misma resaltando las ciudades que ocupan los lu-
gares multiplos de diez. Finalmente, mediante la funcion pintar nom ciudadesobtiene las listas de las 10 ciudades de cada tramo para permitir al usuario
establecer la correspondencia entre nombres y puntos del plano.
Con estas mismas ideas, hemos elaborado el paquete autonomic spain in-cluyendo en cada autonomıa una ciudad por cada cien mil habitantes mas
o menos.
Con las funciones de SAGE que tenemos elaboradas hemos resuelto com-
pletamente en la Worksheet del capıtulo el problema planteado por Gauss.Aquı solo anadimos la grafica
Figura 5.2: Conexion de Gauss
que nos indica que solo hay un punto de Steiner ya que el segundo coincideexactamente en Hanover.
Si z es el complejo del punto de Steiner, la funcion coorgeo(z, alemania) nosdevuelve sus coordenadas geograficas y pegando en HTML la direccion
< iframewidth = ”100%”height = 850txframeborder = ”0”scrolling = ”no”
marginheight = ”0”marginwidth = ”0”src = ”http : //www.mundivideo.com/
co.htm?id = sp&lat = 40.7060081&lng = −74.0088151&x convertirUTM =
583730.1&y convertirUTM = 4506594.37&zon = 18&hem = Norte
&dir = WallStreet, NuevaY ork” >< /iframe >,
118 CAPITULO 5. CAMINOS DE STEINER
introduciendo en ”Lugar” la salida de coorgeo(z, alemania) y clicando en”Ver”, aparece un senalizador del punto de dichas coordenadas. Pasando a
modo Mapa, podemos conocer las ciudades del entorno de dicho punto.
Otro ejemplo que hemos resuelto es la obtencion de una conexion por fi-bra optica entre las 20 ciudades mas pobladas de Galicia, mas corta que laconexion de Kruskal.
A partir de la funcion galicia() del paquete autonomic spain obtenemos
GA = [galicia][0]()[0] y la lista de complejos L = [a[1] for a in GA], de las20 ciudades mas pobladas de Galicia. La funcion kruskal(L) nos propor-
ciona una conexion de 364.138 km. La funcion CA(L) nos proporciona unarbol hamiltoniano de 381.402km cuya grafica es
Figura 5.3: Las 20 ciudades de Galicia
A partir de esta representacion formamos la lista HR de los tramos quevisualmente consideramos optimos para que las funciones de Steiner pro-
duzcan la maxima reducion. En este caso tomamos
HR = [[0, 3], [3, 7], [9, 11], [11, 14], [14, 16], [16, 19]]
La funcion atajovisual(CA(L), HR) nos devuelve una propuesta de conexion
con una longitud de 360.686 km que es inferior a la de Kruskal:
Figura 5.4: CA(L), Kruskal y Steiner
5.5. CONSTANTES DE GANANCIA 119
En la Worksheet del capıtulo se pueden ver mas ejemplos de construccion
de atajos de Steiner sobre conexiones hamiltonianas.
5.5 Constantes de ganancia
Dada una lista de complejos L, para definir la hoja de ruta HR y usarla en la
funcion atajovisual(CA(L), HR) se necesita una cierta intuicion geometricasobre los tramos de longitud 3, 4 o 5 que nos proporcionen mayor ganancia.Esta cuestion esta relacionada con la conjetura de Gilbert y Pollak [61]:
Sea P un conjunto de n puntos en el plano euclideo. Si Ls(P ) y Lm(P )denotan las longitudes de su SMT y de su arbol generador mınimo se
cumple:Ls(P )
Lm(P )≥
√3
2
Esta conjetura se dio por probada en [49] pero en [75] se han puesto demanifiesto serios errores en la prueba. Esto nos indica que estamos ante unacuestion sutil y actual.
En esta memoria, la ganancia G(L) no se establece sobre arboles genera-
dores mınimos sino sobre arboles hamiltonianos mınimos con la esperanzade poder hacer aportaciones en un problema menos duro.
Para cada natural n ≥ 3 designamos
L(n) = {L | |L| = n} y Gn = maxL∈L(n)
{G(L)}
y nos planteamos las tres cuestiones siguientes:
1. La determinacion de listas optimas LOn ∈ L(n) de ganancia maxima.
2. El calculo de las constantes Gn = G(LOn).
3. El calculo de limn→∞
Gn.
Puesto que siempre podemos desdoblar un punto de una lista L ∈ L(n)
para obtener otra lista L′ ∈ L(n + 1) con la misma conexion de Steiner eigual o mayor conexion hamiltoniana, la sucesion Gn es monotona creciente,acotada superiormente y convergente. Ası, tiene sentido la tercera cuestion.
Estudio de LO3
Teorema 5.5.1 LO3 es la configuracion equilatera y
G3 = 13.3974596215561
120 CAPITULO 5. CAMINOS DE STEINER
Demostracion:
Sea T la lista de vertices de un triangulo cualquiera del plano complejo.Podemos suponer, sin restriccion, que su lado mayor tiene longitud m, que
los vertices z1 y z2 que lo determinan estan en el eje real y que el tercervertice z3 esta en el semiplano Im(z) > 0.Tomando z1 y z2 como focos, construimos la elipse E que pasa por z3. En
E existen dos puntos, z0 y z4 tales que |z0 − z2| = |z4 − z1| = m y es claroque z3 se encuentra en el arco E04 de la la elipse E de extremos z0 y z4.
Figura 5.5: elipse
Por las propiedades de la elipse, H([z1, z2, z]) = H(T ) ∀z ∈ E04 y, por elteorema de Ptolomeo, S([z1, z2, z]) ≥ S([z1, z2, z0]) ∀z ∈ E04. Por tanto,
siempre existe un triangulo isosceles TI = [z1, z2, z0] tal que G(TI) ≥ G(T ).Por otra parte, como indican los calculos realizados en la Worksheet del
capıtulo y representados en la siguiente grafica, para cualquier trianguloisosceles encontramos uno equiatero con ganancia 13.3974596215561, mayor
que la del isosceles dado:
Figura 5.6: Triangulo equilatero con ganancia 13.3974596215561
5.5. CONSTANTES DE GANANCIA 121
Por tanto, la configuracion de tres puntos de maxima ganancia es la equilatera.♦
Estudio de LO4 y LO5
En la busqueda de las configuraciones optimas de cuatro y cinco puntos, no
hemos logrado teoremas definitivos como el 5.5.1, sin embargo, las funcionesSteiner4() y Steiner5() nos han permitido realizar experimentos de cierto
interes que queremos destacar aquı:
Observaciones 5.5.2
1. Los resultados de 5.2.1,3 y 4 que indican que el rombo tiene mayor
ganancia que el cuadrado pueden confirmarse del siguiente modo:Consideramos las listas La = [0, 1, 1 + eai, eai] para todo a ∈ [0, 2π],
calculamos la funcion Steiner4(La)[3] y en su grafica
vemos que los picos de mayor ganancia corresponden al rombo.
2. Para casi todo cuadrivertice convexo hemos podido hallar uno concavo
con mayor ganancia, constituido por uno de sus trivertices y su puntode Steiner.
3. De todas las configuraciones de cuatro puntos que hemos estudiado,
ha sido L = radial(3, 1, 1, 0) + [0] en la que hemos hallado mayorganancia.
4. Es evidente que radial(3, 1, 1, 0)+[0] y radial(3, 1, 1, 0) tienen el mismo
SMT. El 0 puede ser el punto de las aristas del SMT que genere conlos puntos de radial(3, 1, 1, 0), el maximo arbol hamiltoniano.
5. Tras experimentar con gran cantidad de listas aleatorias de 4 comple-
jos, sus ganancias siempre han resultado menores que 19.615242.
Apoyados en las cuatro ultimas observaciones hacemos la siguiente
122 CAPITULO 5. CAMINOS DE STEINER
Conjetura 5.5.3
LO4 = radial(3, 1, 1, 0)+ [0] y G4 = 19.615242
Observaciones 5.5.4
1. Los resultados 5.2.2,2 y 3 indican que la ganancia de los vertices de
un cuadrado con su centro es mayor que la ganancia de los vertices deun rombo con su centro, en contra de lo que sucede si se suprimen los
centros (ver 5.2.1,3 y 4).
2. De todas las configuraciones de cinco puntos que hemos estudiado,ha sido L = radial(4, 1, 1, 0) + [0] en la que hemos hallado mayor
ganancia.
3. Es evidente que radial(4, 1, 1, 0)+[0] y radial(4, 1, 1, 0) tienen el mismo
SMT. El 0 puede ser el punto de las aristas del SMT que genere conlos puntos de radial(4, 1, 1, 0), el maximo arbol hamiltoniano.
4. Tras experimentar con gran cantidad de listas aleatorias de 5 comple-
jos, sus ganancias siempre han resultado menores que 19.980084.
Apoyados en estas observaciones hacemos la siguiente
Conjetura 5.5.5
LO5 = radial(4, 1, 1, 0)+ [0] y G5 = 19.980084
Estudio de LO6, LO7, · · ·En la busqueda de las configuraciones optimas de 6, 7 o mas puntos, nodisponemos de funciones Steiner especıficas y debemos hallar caminos de
Steiner pegando convenientemente arboles mınimos de Steiner obtenidoscon las funciones Steiner3(), Steiner4() y Steiner5(). Hemos realizadoexperimentos de cierto interes que queremos destacar aquı:
Observaciones 5.5.6
1. En L = radial(4, 1, 1, 0) + [0] podemos desdoblar el 0 en dos puntossimetricos respecto de el, situados en el segmento determinado por losdos puntos de Steiner S1 y S2
5.5. CONSTANTES DE GANANCIA 123
Para cada a ∈ (0, 1], La = radial(4, 1, 1, 0)+ [a · S1, a · S2] ∈ L(6) yes evidente que S(La) = S(L). En la grafica
vemos que G(La) tiene un maximo M = 21.9394 en a = 0.591.
Representando los arboles hamiltonianos optimos H(L.591) y H(L.592)
vemos que la ganancia maxima se alcanza en un punto de cambiodrastico de la configuracion del arbol hamiltoniano optimo.La lista L.591, con G(L.591) = 21.9394, es la de mayor ganancia que
hemos encontrado en L(6).
2. Como P = radial(5, 1, 1, 0) + [0] ∈ L(6) y tiene G(P ) = 16.043679
124 CAPITULO 5. CAMINOS DE STEINER
(ver 5.2.2,4) observamos que, para n ≥ 6, las distribuciones de L(n)
de mayor ganancia, no siempre son del tipo radial() + [0].
Apoyados en las observaciones anteriores hacemos la siguiente
Conjetura 5.5.7
LO6 = L.591 y G6 = 21.9394
Observaciones 5.5.8
1. La+[0] ∈ L(7) ∀a ∈ (0, 1] y sus arboles hamiltonianos optimos estanobligados a ser del tipo H(L.591). Estudiando la funcion G(La + [0])
vemos que alcanza el maximo M = 23.6292 en a = 1
La distribucion L1 + [0] con G(L1 + [0]) = 23.6292, es la de mayorganancia entre las que hemos tratado en L(7).
2. Como H = radial(6, 1, 1, 0) + [0] ∈ L(7) y tiene G(H) = 13.397459(ver 5.2.2,5) corroboramos que, para n ≥ 6, las distribuciones de L(n)de mayor ganancia, no siempre son del tipo radial() + [0].
Apoyados en las ultimas observaciones hacemos la siguiente
Conjetura 5.5.9
LO7 = L1 + [0] y G7 = 23.6292
Estudio del limn→∞
Gn
Una configuracion de puntos como la siguiente
5.5. CONSTANTES DE GANANCIA 125
en la que la relacion de las aristas verticales a las restantes es vr
= 1+√
32 y
puede repetirse por la derecha tantas veces como queramos, nos asegura que
limn→∞
Gn ≥ 100v
r + 2v= 100
1 +√
3
4 + 2√
3= 36.6025 .
Si, a la configuracion anterior le anadimos patillas horizontales adecuadas,
aun podemos conseguir ganancias mayores. Por ejemplo, para patillas delongitud 1√
3situadas en la mitad de las aristas verticales, obtenemos ganan-
cias superiores al 46%. Por otra parte, no podemos imaginar ganancias
superiores al 50% por lo que conjeturamos que
limn→∞
Gn ∈ [46, 50]
Si ajustamos la nube de puntos
{
X = [3, 4, 5, 6, 7]
Y = [13.397459, 19.615242, 19.980084, 21.9394, 23.6292]
segun el modelo f(x, a, b) = a · ebx + 50, obtenemos una curva de ajuste
Esta curva deberıa servirnos de pauta para determinar el maximo ındice Nde las funciones SteinerN () que deben ser utilizadas en la determinacion de
atajos con una ganancia determinada.
126 CAPITULO 5. CAMINOS DE STEINER
Resultados
Presentamos la lista de las que, desde nuestro punto de vista, constituyenlas aportaciones principales de esta memoria:
En el capıtulo 1:
1. Una demostracion original del Lema 1.1.3.
2. El teorema 1.1.8.
3. El teorema 1.1.9
4. La Worksheet del capıtulo.
En el capıtulo 2:
1. La presentacion coordinada de nucleo (nucleo traspuesto), matriz (ma-triz traspuesta), aplicacion lineal (aplicacion adjunta).
2. La sencilla presentacion de los teoremas 2.1.2, 2.1.4 y 2.1.6.
3. La original presentacion del concepto de digrafo, grafo y multidigrafoa partir de los conceptos de relacion y de nucleo.
4. El teorema 2.2.5 de caracterizacion de los digrafos conexos.
5. El corolario 2.2.13 sobre las matrices laplacianas de los grafos simetricos.
6. La Worksheet del capıtulo.
En el capıtulo 3:
1. La presentacion de las cuasimetricas definidas en 3.1.5.
2. Los teoremas 3.1.6, 3.1.9, 3.1.10, 3.1.13 y el corolario 3.1.14.
3. Las sencillas pruebas del teorema 3.1.19 y los corolarios 3.1.20 y 3.1.21
en comparacion con el original trabajo de Schoenberg [103].
4. Los teoremas 3.2.8, 3.2.9 y 3.2.12 donde se prueban los resultadosde [79] y [28] sin necesidad de considerar los digrafos como circuitos
electricos ni de utilizar el complicado teorema de la matriz de bosques.
127
128 Resultados
5. La Worksheet del capıtulo.
En el capıtulo 4:
1. El teorema 4.1.2 donde ponemos de manifiesto como el algoritmocicloham disenado en [8] funciona perfectamente en ciertas distribu-
ciones radiales.
2. Para un conjunto de puntos L del plano complejo, si designamoslon(C)[0] a la longitud de cicloham(L) y cotaKV (L) al maximo de
las cotas inferiores de Kruskal K(L) y de Vidal V (L), podemos definirel concepto de bondad del conjunto L:
bondad(L) = 100 · cotaKV (L)
lon(C)[0]
La heurıstica de los ejemplos realizados en la elaboracion de estamemoria nos lleva a confiar en la funcion cicloham para bondades
mayores o iguales al 80%.
3. Para un conjunto de puntos L del plano complejo, si designamoslon(Ca)[0] a la longitud de caminoham(L) y cotaKV a(L) al maximo
de las cotas inferiores de Kruskal Ka(L) y de Vidal V a(L), podemosdefinir el concepto de bondad abierta del conjunto L:
bondada(L) = 100 · cotaKV a(L)
lon(Ca(L))[0]
La heurıstica de los ejemplos realizados en la elaboracion de estamemoria nos lleva a confiar en la funcion caminoham para bondades
abiertas mayores o iguales al 80%.
4. La valoracion del test colorimetrico de Farnsworth-Munsell recogidasen las observaciones 4.1.10 obtenidas a partir de los datos experimen-
tales recogidos en los anexos 3 y 4 de esta memoria.
5. La Worksheet del capıtulo.
En el capıtulo 5:
1. Nuestra primera contribucion en este capıtulo es la programacion detres importantes funciones, Steiner3(L), Steiner4(L) y Steiner5(L)
que nos devuelven para una lista L de 3, 4 o 5 complejos:
(a) Los puntos de Steiner de L.
(b) El dibujo del SMT(L).
(c) La longitud S(L) del SMT(L) (Steiner Minimal Tree).
Resultados 129
(d) Una comparacion normalizada, entre la longitud H(L) del arbol
hamiltoniano mınimo de L y la longitud S(L), que llamamosganancia
G(L) = 100H(L)− S(L)
H(L).
2. Una explicacion geometrica de las deformaciones de Stone-Walls y Mi-tosis en las membranas de Grafeno que no hemos encontrado en la
literatura sobre el tema, [117], [42], [88], · · · .
3. Teorema 5.5.1 que asegura que la ganancia maxima para n = 3 es
G3 = 100 · (1−√
3
2)
4. La Worksheet del capıtulo.
130 Resultados
Bibliografıa
[1] P. Abellanas. Elementos de Matematica.
Madrid, 1965.
[2] E. Ackerman and O. Ben-Zwi. On Sets of Points that Determine onlyAcute Angles.
European Journal of Combinatorics, vol. 30, pags. 908–910, 2009.
[3] N. Alon and V.D. Milman. Concentration of measure phenomena in thediscrete case and the Laplace operator of a graph.
Seminar on Functional Analysis, Publ. Math. Univ. Paris VII, 20, Paris,pags. 55–68, 1984.
[4] N. Alon and V.D. Milman. λ1, Isoperimetric Inequalities for Graphs,
and Superconcentrators.Journal of combinatorial theory. Series B 38, pags. 73–88, 1985.
[5] N. Alon and P. Pudlak. Equilateral sets in lnp .
Journal Geometric and Functional Analysis, vol. 13, pags. 467–482,2002.
[6] J Aporta Alonso. Radiometrıa-Fotometrıa. Color y Fotografıa. Curso
2013-14.Escuela de Optica, Universidad de Zaragoza, recurso de Internet.
[7] N. Aronszajn. Theory of Reproducing Kernels.American Mathematical Society, vol.68, No. 3, pags. 337–404, 1950.
[8] F. de Arriba, E. Corbacho and R. Vidal. Designing Hamiltonian Cycles.
ACA2013, Malaga, 2013.
[9] L. Babai. Spectrum of Cayley graphs.J. Combin. Theory Ser., B 27, pags. 180–189, 1979.
[10] R. B. Bapat. Resistance distance in graphs.
The Mathematics Student, vol.68, pags. 87–98, 1999.
131
132 BIBLIOGRAFIA
[11] R. B. Bapat. Resistance matrix of a weighted graph.
Communications in Mathematical and in Computer Chemistry,MATCH 50, pags. 73–82, 2004.
[12] D. Bevan. Sets of Points Determining Only Acute Angles and SomeRelated Colouring Problems.
The Electronic Journal of Combinatorics, 2006.
[13] K. Bezdek, T. Bisztriczky and K. Boroczky. Edge-Antipodal 3-
Polytopes.Combinatorial and Computational Geometry, MSRI Publications, vol.
52, pags. 129–134, 2005.
[14] N. Biggs. Algebraic Graph Theory.
Cambridge University Press, London, 1974.
[15] B. Bollobas. Modern graph theory.
Springer-Verlag, New York, 1998.
[16] O. Boruvka. On a minimal problem.
Prace Moravske Pridovedecke Spolecnosti, vol. 3, 1926.
[17] R. A. Brualdi. The Mutually Beneficial Relationship of Graphs and Ma-
trices.Conference Board of the Mathematical Sciences by the American Math-ematical Society, Providence, Rhode Island, 2011.
[18] F. Buckley and F. Harary. Distance in Graphs.Addison-Wesley, Reading, 1969.
[19] J. Casas Pelaez. Optica.Facultad de Ciencias, Universidad de Zaragoza, 1985.
[20] J. S. Caughman and J.J. P. Veerman. Kernels of Directed Graph Lapla-cians.
The Electronic Journal of Combinatorics 13, 2006.
[21] A. Cayley. The collected mathematical papers of Arthur Cayley.
Cambridge University Press, Cambridge, 1896.
[22] CIE 1976. Colorimetry Part 4: CIE 1976 L*a*b* Colour Space.
CIE Central Bureau, Vienna, 2007.
[23] I. Chavel. Eigenvalues in Riemmannian geometry.
Academic Press, 1984.
[24] I. Chavel. Riemmannian geometry - A modern introduction.
Cambridge University Press, Cambridge, 1993.
BIBLIOGRAFIA 133
[25] S. Chaiken. A combinatorial proof of the all minors matrix tree theorem.
SIAM J. Alg. Disc. Meth. 3, pags 319–329, 1982.
[26] A. Chandra, P. Raghavan, W. Ruzzo, R. Smolensky and P. Tiwari.
The Electrical Resistance of a Graph Captures its Commute and CoverTimes.
Annual ACM Symposium on Theory of Computing, pags 574–586, 1989.
[27] P. Chebotarev . Aggregation of preferences by the generalized row summethod.
Institute of Control Sciences, 65, Profsoyuznaya St., Moscow 117806,Russian Federation. Mathematical Social Sciences 27, pags 293–320,1994.
[28] P. Chebotarev and E. Shamis. The Matrix-Forest theorem and measur-
ing relations in small social groups.Automation and Remote Control, Vol. 58, No. 9, 1505-1514. Institute
of Control Sciences, Russian Academy of Sciences, Moscow. Translatedfrom Avtomatika i Telemekhanika, No. 9, pags, 125-137, september,1997.
[29] P. Chebotarev and E. Shamis. The Forest Metrics for Graph Vertices.
Trapeznikov Institute of Control Sciences of the Russian Academy ofSciences, 65 Profsoyuznaya, Moscow 117997, Russia. August 12, 2000.
[30] P. Chebotarev and R. Agaev. Forest matrices around the Laplacianmatrix.
Trapeznikov Institute of Control Sciences of the Russian Academy ofSciences, 65 Profsoyuznaya str., Moscow 117997, Russia. Linear Algebra
and its Applications 356, pags 253–274, 2002.
[31] P. Chebotarev and R. Agaev. Laplace Spectra of Orgraphs and Their
Applications.Trapeznikov Institute of Control Sciences, Russian Academy of Sci-
ences, Moscow, Russia. Automation and Remote Control, Vol. 66, No.5, pags 719–733, 2005.
[32] P. Chebotarev and R. Agaev. On the spectra of nonsymmetruc Lapla-cian matrices.
Trapeznikov Institute of Control Sciences, Russian Academy of Sci-ences, Moscow, Russia. Linear Algebra and its Applications 399, pags
157–168, 2005.
[33] P. Chebotarev. Spanning forest and the golden ratio.
Trapeznikov Institute of Control Sciences, Russian Academy of Sci-ences, 65 Profsoyuznaya str., Moscow 117997, Russia. Discrete Applied
Mathematics 156, pags 813–821, 2008.
134 BIBLIOGRAFIA
[34] J. Cheeger. A lower bound for the smallest eigenvalue of the Laplacian,
in ”Problems in Analysis.R.C. Gunning, Ed., Princeton University Press, N.J., pags 195–199,
1970.
[35] D. Cieslik. Methods to Construct Shortest Trees in Banahc-Minkowski
Planes.Operations Research Proceedings, Ed. Springer, pag. 329–334, 1995.
[36] D. Cieslik. The Steiner-Ratio in Banach-Minkowski Planes.Contemporary Methods in Graph Theory, Bibliographisches Institut
(BI), Mannhein, pag. 231–247, 1990.
[37] D. Cieslik. Steiner Minimal Trees.Kluwer Academic Publishers, 1998.
[38] D. Cieslik. The Steiner Ratio.Combinatorial Optimization Book 10, Ed. Springer, 2001.
[39] J. H. Conway, H. T. Croft, P. Erdos and M. J. T. Guy. On the distri-bution of values of angles determined by coplanar points.
J. London Math. Soc., vol. 2, N0. 19, pags 137–143, 1979.
[40] E. Corbacho, M. C. Somoza and R. Vidal. Ciclos hamiltonianos
mınimos y caminos de Steiner.Jornadas Sage-Python Universidad de Extremadura, 2014.
[41] T. H. Cormen, C. E. Leiserson, R. L. Rivest and C. Stein. Introductionto Algorithms.
Second Edition. MIT Press and McGraw-Hill.Seccion 23.2: The algo-rithms of Kruskal and Prim, pags. 567–574, 2001.
[42] A. Cortijo Fernandez. Propiedades fısicas de grafeno en presencia dedesorden topologico.
Tesis doctoral. Universidad Carlos III, Madrid. 2007.
[43] D. M. Cvetkovic. Some possible directions in further investigations of
graph spectra, in ”Algebraic Methods in Graph Theory”.L. Lovas and V.T. Sos, Eds. Coll. Math. Soc. J. Bolyai, North-Holland,Amsterdam, pags 47–67, 1981.
[44] L. Danzer and B. Grumbaum. Uber zwei Probleme bezuglich konvexerKorper von P.Erdos und von V.L. Klee.
Math. Z., 79, pags 95–99, 1962.
[45] L. Danzer, B. Grumbaum and V. Klee. Helly´s theorem and its relatives.
Proc. Symp. Pure Math., vol. 7, pags 101–180, 1962.
BIBLIOGRAFIA 135
[46] W. E. Donath and A. J. Hoffman. Lower bounds for the partitioning of
graphs.IBM J. Res Develop. 17, No 5, pags 420–425, 1973.
[47] P. Doyle and J. Snell. Random walks and Electrical Networks.Math. Assoc. Am. Washington. 1984.
[48] J. Dugundji. A topologized fundamental group.
Proc National Academic Science USA, 36-2, pags. 141–143, 1950.
[49] D. Z. Du and F. K. Hwang A proof of the Gilbert-Pollak conjecture onthe Steiner RatioAlgorithmica, 7, pags. 121–135, 1992.
[50] P. Erdos. On Sets of Distances of n Points.
The American Mathematical Monthly, vol. 53, No. 5, pags 248–250,1946.
[51] P. Erdos and Z. Furedi. The greatest angle among n points in the d-dimensional euclidean space.
Annals of Discrete Mathematics, 17, North-Holland Publishing Com-pany, pags 275–283, 1983.
[52] E. Estevez Martınez. Arboles optimos y desigualdades de Sobolev en
rejillas.Departamento de Matematica Aplicada I, Universidad de Vigo, 2015.
[53] X. Fernandez Hermida. Apuntes Monograficos de Television. Dep.Teorıa de la Senal, Universidad de Vigo, 2014.
[54] M. Fiedler. Algebraic connectivity of graphs. Czechoslovak Mathemati-cal Journal, vol. 23, No. 98, pags 298–305, 1973.
[55] M. Fiedler and V. Ptak. On matrices with non-positive off-diagonal
elements and positive principal minors.Czechoslovak Mathematical Journal, vol. 12, No. 3, pags 382–400, 1962.
[56] W. H. Jr. Foster, R. Gans, E. I. Stearns and R. E. Stearns. Weights forCalculation of Tristimulus Values from Sixteen Reflectance Values.
Color Engineering, vol. 8, No. 3, 1970.
[57] O. Gabber and Z. Galil. Explicit construction of linear sized supercon-centrators.
J. Comput. Systems Sci. 22, No. 3, pags 407–420, 1981.
[58] S. Gallot, D. Hulin and J. LaFontaine. Riemannian Geometry.
Second Edition. Springer, 1990.
136 BIBLIOGRAFIA
[59] C.F. Gauss. Briefwechsel Gauss-Shuhmacher.
In Werke Bd. X, 1, Gottingen, pags. 459–468, 1917.
[60] E. Gilabert Perez and F. Martınez Verdu. Medida de la luz y el color,Tomo 2: Aplicaciones.
Ed. Universidad Politecnica de Valencia, 2007.
[61] E. N. Gilbert and H.O. Pollak. Steiner Minimal Trees.SIAM J. Appl. Math. 16, pags 1–29, 1968.
[62] F. Gobel and A.A. Jagers. Random walks on graphs.
Stochastic Processes and their Applications 2. North-Holland Publish-ing Company, pags 311–336, 1974.
[63] A. Gozdz. An antipodal set of a periodic function.
Journal of Mathematical Analysis and Applications, 148, pags 11–21,1990.
[64] B. Grumbaum. Strictly antipodal sets.
Israel J. Math., 1, pags 5–10, 1963.
[65] I. Gutman and w. Xiao. Generalized inverse of the Laplacian Matrixand some applications.
Bulletin de l’Academie Serbe des Sciences et des Arts No. 29, Classedes Sciences Mathematiques et Naturelles, 129, pags 15–23, 2004.
[66] F. Harary. Graph theory.
Encyclopedia of Mathematics and its applications, vol. 21, Gian-CarloRota Editor. Department of Mathematics. Massachusetts Institute of
Technology. Cambridge. Published by the Press Syndicate of the Uni-versity of Cambridge 1984.
[67] S. Har-Peled. Geometric Approximation Algorithms.
AMS Matematial Sourvys and Monograhps, vol 173, cap. 13 -14, pags.177–202, Providence, 2011.
[68] F. K. Hwang, D. S. Richards and P. Winter. The Steiner Tree Problem.
Elsevier Science Publishers B.V., North-Holland, 1992.
[69] X. Hubaut. Theorie des couleurs.Departement de Mathematique. Universite Libre de Bruxelles, 2013.
[70] A. O. Ivanov and A. A. Tuzhilin. Minimal Networks - The Steiner
Problem and Its Generalizations.CRC Press, Boca Raton, 1994.
[71] A. O. Ivanov and A. A. Tuzhilin. Geometry and Topology of Local Min-
imal 2-Trees.
BIBLIOGRAFIA 137
Bol. Sociedade Brasileira de Matematica, vol 28, No. 1, pags. 103–139,
1997.
[72] A. O. Ivanov and A. A. Tuzhilin. Extreme Networks.Acta Appl. Math., No. 66, pags. 251–317, 2001.
[73] A. O. Ivanov and A. A. Tuzhilin. Extreme Networks Theory.
Moscow-Izhevsk: Institute of Computer Investigations, Russian 2003.
[74] A. O. Ivanov and A. A. Tuzhilin. Gromov minimal fillings for finitemetric spaces.
Publications de L’institut Mathematique, Nouvelle serie, tome 94, pags.3–15, 2013.
[75] A. O. Ivanov and A. A. Tuzhilin. Du -Hwang Characteristic Area:
Catch-22.arXiv:1402.6079v1[math.MG], 2014.
[76] A. O. Ivanov, A. A. Tuzhilin and D. Cieslik. Steiner Ratio for Rieman-
nian manifolds.In Russian Mathematical Surveys, No. 55, pags. 1150–1151, 2000.
[77] A. O. Ivanov, A. A. Tuzhilin and D. Cieslik. Steiner Ratio for Manifolds.
In Mathematical Notes, No. 73, pags. 367–374, 2003.
[78] D. Kazhdan. Connection of the dual space of a group with the structureof its closed subgroups.
Function Analysis and Applications, 1, Springer, pags. 63–65, 1967.
[79] D. Klein and M. Randic. Resistance distance.Journal of Mathematical Chemistry, vol. 12, pags. 81–95, 1993.
[80] J. Koolen, M. Laurent and A. Schrijver. Equilateral dimension of the
rectilinear space.Des., Codes and Crypt. 21, CWI, Kruislaan 413, 1098 SJ Amsterdam,
The Netherlands, pags 149–164, 2000.
[81] J. B. Kruskal. On the shortest spanning subtree and the traveling sales-man problem.
Proceedings of the American Mathematical Society 7, pags. 48–50,1956.
[82] M. Ledoux The Concentration of Measure Phenomenon.
Mathematical Surveys and Monographs. Vol 89. American Mathemat-ical Society. Rhode Island 2001.
[83] L. Lovasz. Spectra of graphs with transitive groups.
Period. Math. Hungary, 6, No. 2, pags 191–195, 1975.
138 BIBLIOGRAFIA
[84] L. Lovasz. Combinatorial Problems and Exercises.
Problem 11.8, North-Holland, Amsterdam, 1979.
[85] L. Lovasz. Random Walks on Graphs: A Survey.Bolyai Society, Mathematical Studies, 2. Combinatorics, Paul Erdos isEighty, vol. 2, Keszthely, Hungary, pags 1–46, 1993.
[86] L. Lovasz and S. Vempala. Where to Start a Geometric Random Walk?
Technical Report MSR-TR-30, 2003.
[87] M. J. Luque, M. D. de Fez and M. A. Diez. Directrices para la admin-istracion y puntuacion del test FM Hue 100Ver y Oir, Departamento de Optica, Universidad de Valencia, 2001.
[88] J. Ma, D. Alfe, A. Michaelides and E. Wang. Stone-Wals defects in
graphene and other planar sp2-bonded materials.Phisical Review B 80, 033407, 2009.
[89] N. M. Maia de Abreu. Old and new results in algebraic connectivity ofgraphs.
Science Direct. Linear Algebra and its Applications 423, pags 53–73,2007.
[90] G. A. Margulis. Explicit construction of concentrators.
Problems Inform. Transmission, pags 325–332, 1975.
[91] H. Martini and V. Soltan. Antipodality properties of finite sets in Eu-
clidean space.Science Direct. Discrete Mathematics 290, pags. 221–228, 2005.
[92] J. C. Maxwell. On the Theory of Compound Colours, and the Relationsof the Colours of the Spectrum.
Proceeding of the Royal Society of London, January, 1860.
[93] L. Merino, E. Santos. Algebra Lineal con Metodos Elementales. Univer-sidad de Granada, 1997.
[94] R. Merris. Doubly Stochasty Graph Matrices.University Beograd. Publ. Elektrotehn. Fak. Ser. Mat. 8, pags 64–71,
1997.
[95] B. Mohar. Some Applications of Laplace Eigenvalues of Graphs.Graph Symmetry: Algebraic Methods and Applications, Eds G. Hahn
and G. Sabidussi, NATO ASI Ser. C 497, Kluwer, pags 225–275, 1997.
[96] A. H. Munsell. A Pigment Color System and Notacion.
The American Journal of Psychology, vol. 23, No. 2, 1912.
BIBLIOGRAFIA 139
[97] F. R. Nicolas. Colorimetrıa.
Unidad didactica 101, Instituto Oficial de Radio Television Espanola,1988.
[98] M. I. Ostrovskii. Minimum congestion spanning trees in planar graphs.Discrete Mathematics 310, pags 1204–1209, 2010.
[99] C. M. Petty. Equilateral sets in Minkowski spaces.
Proc. American Mathematical Society, vol. 29, No. 2, pags 369–374,1971.
[100] A. Pinkus. Strictky hermitian positive definite functions.Journal D‘Analyse Mathematique, vol.94, pags. 293–318, 2004.
[101] M. Saerens, F. Fouss, L. Yen and P. Dupont. The Principal Compo-
nents Analysis of a Graph, and its Relationships to Spectral Clustering.15th European Conference on Machine Learning. Lecture Notes in Com-
puter Science, vol. 3201, pags 371–383, 2004.
[102] G. Schechtman. Levy type inequality for a class of finite metric spaces.Martingale Theory in Harmonic Analysis and Applications, Cleveland
1981, vol. 939, pags 211–215. Lecture Notes in Mathematics, Springer-Verlag, Berlin/New York, 1982.
[103] I. J. Schoenberg. Remarks to Maurice Frechet’s article ”Sur ladefinition axiomatique d’une classe d’espace distsncies vectoriellment
applicable sur l’espace de Hilbert”.The Annals of Mathematics, Second Series, Vol. 36, No. 3, pags 724–
732, 1935.
[104] A. Schurmann and K.J. Swanepoel. Three-dimensional antipodal andnorm-equilateral sets.
Pacific journal of mathematics, vol. 228, No. 2, pags 349–370, 2006.
[105] E. Shamir. From expanders to better superconcentrators without cas-
cading.Proc. Symp. Theoretical Aspects of Computer Science, Lecture Notesin Computer Science 166, Springer-Verlag, pags 121–128, 1984.
[106] E. Shamis. Graph-Theoretic interpretation of the generalized row summethod.
Mathematical Social Sciences 27. Institute of Control Sciences, 65, Prof-soyuznaya St., Moscow 117806, Russian Federation. Communicated by
F. Aleskerov, pags 321–333, 1994.
[107] M. Smid. On the circumradius of acute point sets.Departament of Computer Science, King‘s College London WC2R 2LS,
United Kindom, 1996.
140 BIBLIOGRAFIA
[108] C. Smyth. Equilateral or 1-distance sets and Kusner´s conjecture.
School of Mathematics, Institute for Advanced Study, Princeton, NJ,USA, 2001.
[109] E. I. Stearns. Weights for Calculation of Tristimulus Values.Clemson Review of Industrial Management, vol. 14, No. 1, USA, 1975.
[110] I. Talata. On Hadwiger Numbers of Direct Products of Convex Bodies.
Combinatorial and Computational Geometry, MSRI Publications, vol.52, pags. 517–528, 2005.
[111] W. T. Tutte. Graph theory.Encyclopedia of Mathematics and its applications - Volume 21. Gian-
Carlo Rota Editor. Department of Mathematics. Massachusetts Insti-tute of Technology. Cambridge. Published by the Press Syndicate of the
University of Cambridge 1984.
[112] J. W. Van Laarhoven. Exact ahd heuristic algorithms for the EuclideanSteiner tree problem.
University of Iowa, http://ir.uiowa.edu/etd/755, 2010.
[113] S. VoB. Steiner-Probleme in Graphen.
Anton Hain, Frankfurt a.M., 1990.
[114] H. G. Volz. Industrial Color Testing. Fundamentals and Techniques.WILEY-VCH. Weinheim, 2001.
[115] W. Wu and J. Zhong. On Characteristic Area of Steiner Tree.Discrete Math. Algorithm. Appl., 3, 69, 2011.
[116] R. J. Zimmer. Ergodic theory, group representations, and rigidity.
Bull. American Mathematical Society (N.S.), vol. 6, No. 3, pags. 383–416, 1982.
[117] I. Zsoldos. Effect of topoligical defects on graphene geometry and sta-bility.
Nanotechnology, Science and Applications, 3, Dovepress. Dove MedicalPress. pags. 101–106, 2010.
Indice de programas
ajusta-un-modelo(X,Y,model)
def ajusta_un_modelo(X,Y,model):
D=[[X[i],Y[i]] for i in range(len(X))]
DD=point2d(D,rgbcolor=(1,0,0),pointsize=20,aspect_ratio=1)
m=find_fit(D,model,solution_dict=True)
f=model.subs(m)
Df=plot(f,(x,min(X)-1,max(X)+1))
show(DD+Df)
return f(x)
AM(L)
def AM(L):
A=[angle(L[i]-L[i+1],L[i+2]-L[i+1]) for i in range(len(L)-2)]
return max(A), A.index(max(A))
angle(z1,z2)
def angle(z1,z2):
A=abs(arg(z1)-arg(z2))
if A>pi:
return (2*pi-A)
else:
return A
argumento(z)
def argumento(z):
A=arg(z)
if A<=0:
return (2*pi+A)
else:
return A
141
142 INDICE DE PROGRAMAS
arista(L,m,n,h)
def arista(L,m,n,h):
a=L[m]
b=L[n]
LL=line([ri(a),ri(b)],hue=h)
LO=abs(a-b)
return LL, LO.n()
aristab(L,m,n)
def aristab(L,m,n):
a=L[m]
b=L[n]
LL=line([ri(a),ri(b)],color=’white’,thickness=1.5)
return LL
atajovisual(CA,HR)
def atajovisual(CA,HR):
LD=[]
LL=[]
M=[]
for m in HR:
S=Steiner(CA[m[0]:m[1]+1],m[1]-m[0]+1)
LD.append(S[1])
LL.append(S[2])
M=M+[m[0]..m[1]-1]
M=M+[len(CA)]
R=reducir(CA,M)
return sum(LD)+R[0], sum(LL)+R[1]
b0(L)
def b0(L):
C=[abs(c) for [a,b,c] in L]
LI=max(C)
B=1/(4*LI)
return B
INDICE DE PROGRAMAS 143
biseccion(f,a,b,T)
def biseccion(f,a,b,T):
max=ceil(log((b-a)/T,2))
if f(a)*f(b)>0:
print ’No se cumplen las condiciones de Bolzano’
else:
for n in range(max):
mid = a + 0.5*(b - a)
fmid = f(mid)
if f(a)*(fmid) > 0:
a = mid
else:
b = mid
return mid
bondad(L)
def bondad(L):
C=cicloham(L)
return (100*cotaKV(L)/lon(C)[0]).n()
bondada(L)
def bondada(L):
CA=caminoham(L)
return (100*kruskal(L)[1]/lon(CA)[0]).n()
CA(L)
def CA(L):
C=cicloham(L)
LC=[abs(C[k]-C[k+1]) for k in range(len(C)-1)]
m=maximos(LC)[0]
D=C[m+1:len(C)-1]+C[0:m+1]
return D
cambiocolor(CL,IL)
var(’A C D65 F11’)
def cambiocoorcolor(CL,IL):
I=sqrt(-1)
G=fdeltainv(s)
144 INDICE DE PROGRAMAS
r=len(CL)
if IL==A:
Xn=111.143
Yn=99.999
Zn=35.201
elif IL==C:
Xn=97.286
Yn=99.999
Zn=116.144
elif IL==D65:
Xn=94.813
Yn=99.997
Zn=107.304
elif IL==F11:
Xn=103.869
Yn=100.006
Zn=65.609
else:
print(’Dame otro IL’)
LIL=[a[0].n(digits=4) for a in CL]
aIL=[a[1].n(digits=4) for a in CL]
bIL=[a[2].n(digits=4) for a in CL]
L=[(LIL[k]+16)/116 for k in range(r)]
a=[aIL[k]/500 for k in range(r)]
b=[bIL[k]/200 for k in range(r)]
X=[Xn*G(L[k]+a[k]) for k in range(r)]
Y=[Yn*G(L[k]) for k in range(r)]
Z=[Zn*G(L[k]-b[k]) for k in range(r)]
x=[(X[k]/(X[k]+Y[k]+Z[k])).n() for k in range(r)]
y=[(Y[k]/(X[k]+Y[k]+Z[k])).n() for k in range(r)]
C1=[x[k]+I*y[k] for k in range(r)]
C1=C1+[C1[0]]
return C1
caminoham(L)
def caminoham(L):
l=len(L)
C=cicloham(L)
LC=[abs(C[k]-C[k+1]) for k in range(len(C)-1)]+[abs(C[0]-C[-1])]
LCO=sorted(LC)
m=LC.index(LCO[-1])
n=LC.index(LCO[-2])
INDICE DE PROGRAMAS 145
a1=LC[n]
a2=abs(C[m+1]-C[n+1])
a3=abs(C[m]-C[n])
a4=min([a2,a3])
if a4<a1 and abs(a4-a2)<10^(-6) and m<n:
R=reverso(C[m+1:n+1])+C[n+1:]+C[1:m+1]
elif a4<a1 and abs(a4-a2)<10^(-6) and n<m:
R=reverso(C[n+1:m+1])+C[m+1:]+C[1:n+1]
elif a4<a1 and abs(a4-a3)<10^(-6) and m<n:
R=C[n+1:]+C[1:m+1]+reverso(C[m+1:n+1])
elif a4<a1 and abs(a4-a3)<10^(-6) and n<m:
R=C[m+1:]+C[1:n+1]+reverso(C[n+1:m+1])
else:
R=CA(L)
return R
cebolla(M)
def cebolla(M):
L=copy(M)
lin_ceb=point2d([ri(z) for z in L],rgbcolor=(1,0,0),pointsize=40)
tam=0
C=[]
while (L!=[]):
l_front=envolturaconvexa(L)
lineas=line([ri(z) for z in l_front])
lin_ceb=lin_ceb+lineas
C=C+[l_front]
tam+=len(l_front)-1
DZ=lin_ceb
return C,DZ
chebotarev(L,a)
def chebotarev(L,a):
ML=klisttomatrix(laplacian(symmetrized(L)[0]))
n=len(kvertices(L))
M=matrix.identity(n)+a*ML
CH=kmatrixtolist(M.inverse())
return klisttomatrix(qgenerator(CH,4)).n()
146 INDICE DE PROGRAMAS
cicloham(L)
def cicloham(L):
D=plse(L)
C=cebolla(L)[0]
R=C[0]
for i in range(len(C)-1):
R=pegalistas(R,depuralista(C[i+1]))
CO=ciclohamop(R)
return CO
ciclohamop(C)
def ciclohamop(C):
CO=copy(C)
EN=envolturaconvexa(CO)
fiordado=true
#print ’Mejora por fiordos’
while(fiordado==true):
fiordado=false
for i in [0..len(EN)-2]:
k=C.index(EN[i])
if EN[i+1]!=C[k+1]:
j=C.index(EN[i+1])
MC=mejoratramo(C,k+1,j-1)
C=MC[0]
if(MC[1]!=[]):
fiordado=true
CM=MC
orillado=true
#print ’Mejora por orillas’
while(orillado==true):
orillado=false
for i in [1..len(C)-4]:
CM=mejoratramo(CM[0],i,i+2)
if (CM[1]!=[]):
orillado=true
return CM[0]
cicloycicloptimo(F,IL)
var(’A C D65 F11 LED’)
def cicloycicloptimo(F,IL):
XYZ=LabtoXYZ(F,IL)
INDICE DE PROGRAMAS 147
L=[(a[0]+I*a[1])/sum(a) for a in XYZ]
CL=L+[L[0]]
lCL=lon(CL)[0]
V1=vercamino(CL)
LC=cicloham(L)
O=[CL.index(LC[k]) for k in range(len(CL))]
OO=O[O.index(0):]+O[1:O.index(0)+1]
OL=[CL[k] for k in OO]
V2=vercamino(OL)
lOL=lon(OL)[0]
return lCL-lOL, graphics_array([V1,V2])
completeqmetric(L)
def completeqmetric(L):
if qmetric(L)==True:
X=kvertices(L)
L2=composition(L,L)
CL=deplist(L+L2,m)
MM=max([c for [a,b,c] in CL])
PCL=[[a,b] for [a,b,c] in CL]
for (a,b) in CartesianProduct(X,X):
if [a,b] not in PCL:
if a==b:
CL.append([a,b,0])
else:
CL.append([a,b,MM])
return klisttomatrix(CL)
else:
return qmetric(L)
composition(L,M)
def composition(L,M):
LM=[]
for [a,b,c],[d,e,f] in CartesianProduct(L,M):
if a==e and b<>d:
LM.append([d,b,c+f])
return LM
148 INDICE DE PROGRAMAS
comprel(L,M)
def comprel(L,M):
LM=[]
for ([a,b],[d,e]) in CartesianProduct(L,M):
if a==e and [d,b] not in LM:
LM.append([d,b])
return LM
conliset(L,M)
def conliset(L,M):
return [a for a in L if a not in M]==[]
coorgeo(z,P)
def coorgeo(z,P):
R=6367650
LOM=[P][0]()[1][0]
LAM=[P][0]()[1][1]
LO=(LAM+(imag(z)*180)/(R*pi)).n()
LA=(LOM+(180/pi)*atan(real(z)/(R*cos(LO*pi/180)))).n()
return LO,LA
cotaK(L)
def cotaK(L):
M=[]
CI=[]
for a in L:
M=restalistas(L,[a])
K=kruskal(M)[1]
La=[abs(b-a) for b in M]
LaO=sorted(La)
sp=sum([LaO[0],LaO[1]])
m=K+sp
CI.append(m)
return max(CI)
cotaKV(L)
def cotaKV(L):
return max([cotaK(L),cotaV(L)])
INDICE DE PROGRAMAS 149
cotaKVa(L)
def cotaKVa(L):
return max([cotaVa(L),kruskal(L)[1]])
cotaV(L)
def cotaV(L):
ML=[]
CR=[]
for a in L:
La=[abs(b-a) for b in L]
ML=ML+[La]
for p in ML:
sp=sorted(p)
dp=sum([sp[1],sp[2]])
CR.append(dp)
return sum(CR)/2
cotaVa(L)
def cotaVa(L):
ML=[]
CR=[]
SP=[]
for a in L:
La=[abs(b-a) for b in L]
ML=ML+[La]
for p in ML:
sp=sorted(p)
SP.append(sp[2])
dp=sum([sp[1],sp[2]])
CR.append(dp)
MSP=max(SP)
return sum(CR)/2-MSP
dpL(p,L)
var(’z’)
def dpL(p,L):
f(z)=abs(p-z)
D=MIN(f,L)
L1=line([ri(p),ri(D[1][0])],rgbcolor=(1,0,0))
return L1, D[0]
150 INDICE DE PROGRAMAS
deplist(L,t)
var(’M,m,S,R’)
def deplist(L,t):
PL=[[a,b] for [a,b,c] in L]
DPL=[]
for e in PL:
if e not in DPL:
DPL.append(e)
DL=[]
for u in DPL:
C=[c for [a,b,c] in L if [a,b]==u]
if t==M:
DL.append(u+[max(C)])
elif t==S:
DL.append(u+[add(C)])
elif t==m:
DL.append(u+[min(C)])
elif t==R:
DL.append(u+[res(C)])
return DL
depuralista(L)
def depuralista(L):
DL=[]
for z in L:
if z not in DL:
DL.append(z)
return DL
descruza(L,n,m)
def descruza(L,n,m):
if L[0] in CC:
L_aux=L[n+1:m+1]
L_aux.reverse()
L_nueva=L[:n+1]+L_aux+L[m+1:]
print lon(L_nueva)
V_nuevo=vercamino(L_nueva)
return L_nueva,V_nuevo
else:
CL=[a[1] for a in L]
DCL=descruza(CL,n,m)
INDICE DE PROGRAMAS 151
DCL_nueva=[]
for z in DCL[0]:
DCL_nueva=DCL_nueva+[a for a in L[0:len(L)-1] if a[1]==z]
pintar_nom_ciudades(DCL_nueva)
return DCL_nueva,DCL[1]
desplazamiento(P1, P2)
def desplazamiento(P1,P2):
R=6367650
a1=(P1[0]*pi/180).n()
b1=(P1[1]*pi/180).n()
a2=(P2[0]*pi/180).n()
b2=(P2[1]*pi/180).n()
V1=vector([cos(b1)*cos(a1),cos(b1)*sin(a1),sin(b1)])
V2=vector([cos(b2)*cos(a2),cos(b2)*sin(a2),sin(b2)])
A=acos(V1*V2)
m=R*A
T=V1.cross_product(V1.cross_product(V2))
T=T/norma(T)
TP=vector([-sin(a1),cos(a1),0])
if a1>a2 and b1>b2:
Ang=pi+acos(T*TP)
elif a1<a2 and b1<b2:
Ang=acos(-T*TP)
elif a1<a2 and b1>b2:
Ang=-acos(-T*TP)
elif a1>a2 and b1<b2:
Ang=pi-acos(T*TP)
return m*exp(I*Ang).n()
diagonalizacion ortogonal(A)
def diagonalizacion_ortogonal(A):
if A==A.transpose():
D,V=A.eigenmatrix_right()
V=matrix(GS(V.transpose())).transpose()
return [D,V]
152 INDICE DE PROGRAMAS
dicttofun(D)
def dicttofun(D):
G=D
for a in range(max(D)+1):
if a not in D:
G[a] = {}
E=[]
for u in G:
for i in range(len(G.values()[u])):
E.append([u, G.values()[u].keys()[i], G.values()[u].values()[i]])
return E
dijkstra(L)
def dijkstra(L):
S=kvertices(L)
D=kct(L)
DR=[[a,b] for [a,b,c] in D]
INF=1+add([c for [a,b,c] in L])
for [a,b] in CartesianProduct(S,S):
if a==b:
D.append([a,b,0])
elif [a,b] not in DR:
D.append([a,b,INF])
D=deplist(D,m)
return klisttomatrix(D)
dvs(M)
def dvs(M):
A=M.transpose()*M
m=size(A)[0]
S=diagonalizacion_ortogonal(A)
R=[]
U=[]
V=[]
ST=S[1].transpose()
for i in range(m):
if S[0][i,i]!=0:
R.append(sqrt(S[0][i,i]))
U.append(ST[i])
V.append((1/sqrt(S[0][i,i]))*M*ST[i])
return [R,U,V]
INDICE DE PROGRAMAS 153
embedinginter(L)
def embedinginter(L):
Lq=qgenerator(L,1)
M=maxkernel(Lq)
T=maxtriangular(Lq)
m=max([M,T])
if M==T and T==0:
C=1000
elif M==T and T<>0:
C=1/M
else:
C=1/m
A=0
T=10^(-16)
while C-A>T:
M=(A+C)/2
B=Vkernel(L,M)
X=qgenerator(B,1)
E=schoenberg(X)[0]
if E==True:
A=M
return [0,A]
else:
C=M
return []
envolturaconvexa(L)
def envolturaconvexa(L):
#Parametros que nos fijaran N,S,E,O
R=[real(z) for z in L]
J=[imag(z) for z in L]
N= L[J.index(max(J))]
S= L[J.index(min(J))]
E= L[R.index(max(R))]
W= L[R.index(min(R))]
coord=[W,S,E,N,W]
l_frontera =[W]
if (N==S==E==W):
154 INDICE DE PROGRAMAS
L.pop(L.index(W))
l_frontera.append(W)
return (l_frontera)
for t in range(4):
z0=coord[t]
while abs(z0-coord[(t+1)])>10^(-14):
if (t==0):
#down
l_aux=[w for w in L if imag(w)<imag(z0)]
if (t==1):
#right
l_aux=[w for w in L if real(w)>real(z0)]
if (t==2):
#up
l_aux=[w for w in L if imag(w)>imag(z0)]
if (t==3):
#left
l_aux=[w for w in L if real(w)<real(z0)]
l_arg=[]
for z in l_aux:
l_arg.append(argumento(z-z0))
l_min_arg=[ l_aux[l_arg.index(z)]
for z in l_arg if (z==min(l_arg))]
for z in range(len(l_min_arg)):
L.pop(L.index(l_min_arg[z]))
l_abs=[abs(z-z0) for z in l_min_arg]
z0=l_min_arg[l_abs.index(max(l_abs))]
l_frontera.append(z0)
return (l_frontera)
fdelta(t)
var(’t’)
def fdelta(t):
d=6/29
return Piecewise([[(-1,d^3),d^(-2)*(t/3)+(2*d/3)],[(d^3,1),t^(1/3)]])
INDICE DE PROGRAMAS 155
fdeltainv(s)
var(’t s’)
def fdeltainv(s):
d=6/29
F=fdelta(t)
return Piecewise([[(F(-1),F(d^3)),(3*s-2*d)*d^2],[(F(d^3),F(1)),s^3]])
FS(L)
def FS(L):
return [a.full_simplify() for a in L]
funtodict(L)
def funtodict(L):
D=funtodict0(L)
for a in D:
D[a]=funtodict0(D[a])
for b in D[a]:
D[a][b]=funtodict0(D[a][b])
return D
funtodict0(L)
def funtodict0(L):
if type(L[0])==list:
m=len(L[0])
K=set([a[0] for a in L])
D=dict.fromkeys(K,[])
for a in D:
if m==2:
D[a]=[b[1] for b in L if b[0]==a]
elif m>2:
D[a]=[b[1:] for b in L if b[0]==a]
else:
D=L
return D
156 INDICE DE PROGRAMAS
generaAristas(L)
def generaAristas(L):
n=len(L)
t=(n-1)*n/2
A=[[0 for i in range(3)] for i in range (t)]
k=1
z=0
for i in range(1,n):
for j in range (1+k,n+1):
A[z][0]=abs(L[j-1]-L[i-1]).n()
A[z][1]=i
A[z][2]=j
z=z+1
k=k+1
return A
generarel(n)
def generarel(n):
C=CartesianProduct(range(n),range(n))
P=[]
for c in C:
r=random()
if r >= 0.5:
P.append(c)
M=matrix(QQ,n,n)
for [a,b] in P:
M[a,b]=1
return P, M
generators(L)
def generators(L):
D=[]
for d in [1..4]:
Ld=qgenerator(L,d)
RS=qmetric(Ld)
if RS==True:
D.append(d)
return D
INDICE DE PROGRAMAS 157
GS(L)
def GS(L):
L=libera(L)
n=len(L)
V=[vector(L[k]) for k in range(n)]
U=[(1/norma(V[0]))*V[0]]
for k in [1..n-1]:
W=[]
for j in range(k):
W.append((V[k]*U[j])*U[j])
D=V[k]-sum(W)
U.append((1/norma(D))*D)
return U
hexagonal(m,n,r)
def hexagonal(m,n,r):
A=[]
for k in range(n+1):
A.append(r*(1+2*k)*cos(pi/6)+I*r*sin(pi/6))
B=[]
for k in range(n+1):
B.append(2*r*k*cos(pi/6))
C=oplista(B,s,-I*r)
D=oplista(A,s,-2*I*r)
M=[A,B,C,D]
if m==1:
F=M
T=mezclalistas(M[1],M[0])
U=mezclalistas(M[2],M[3])
lT=line(ri(a) for a in T[:-1])
lU=line(ri(a) for a in U[:-1])
lV=[]
for k in range(n+1):
lV.append(line([ri(M[1][k]),ri(M[2][k])]))
PH=[lT]+[lU]+lV
else:
F=M
T=mezclalistas(M[1],M[0])
U=mezclalistas(M[2],M[3])
lT=line(ri(a) for a in T[:-1])
lU=line(ri(a) for a in U)
lV=[]
158 INDICE DE PROGRAMAS
for k in range(n+1):
lV.append(line([ri(M[1][k]),ri(M[2][k])]))
PH=[lT]+[lU]+lV
p=2*(m-1)
ss=1
for j in range(p):
LL=m*range(4)
F.append(oplista(M[LL[j]],s,-3*ss*I*r))
if LL[j]==3:
ss=ss+1
U3=mezclalistas(M[j+3],M[j+4])
if j==p-1:
lU3=line(ri(a) for a in U3[:-1])
else:
lU3=line(ri(a) for a in U3)
lV3=[]
for k in range(n+1):
lV3.append(line([ri(M[j+2][k]),ri(M[j+3][k])]))
PH=PH+[lU3]+lV3
if LL[j]==1:
U2=mezclalistas(M[j+4],M[j+3])
if j==p-1:
lU2=line(ri(a) for a in U2[1:])
else:
lU2=line(ri(a) for a in U2)
lV2=[]
for k in range(n+1):
lV2.append(line([ri(M[j+2][k]),ri(M[j+3][k])]))
PH=PH+[lU2]+lV2
PP=[plse(A[:-1])]
for k1 in [1..len(M)-1]:
if k1==len(M)-1:
if m/2==ceil(m/2):
PP.append(plse(M[k1][1:]))
else:
PP.append(plse(M[k1][:-1]))
else:
PP.append(plse(M[k1]))
return F,sum(PP),sum(PH,aspect_ratio=1)
igualiset(L,M)
def igualiset(L,M):
return conliset(L,M) and conliset(M,L)
INDICE DE PROGRAMAS 159
Imag(L)
def Imag(L):
return [a.imag() for a in L]
indicador(T)
def indicador(T):
z1=T[0]
z2=T[1]
z3=T[2]
T1=ri(z1)
T2=ri(z2)
T3=ri(z3)
Ind=det(matrix([[1]+T1,[1]+T2,[1]+T3]))
return sign(Ind)
intri(p,T)
def intri(p,T):
TC=T+[T[0]]
IN=[]
for k in range(3):
IN.append(indicador([TC[k],TC[k+1],p]))
S=sum(IN)
if abs(S)==3 or abs(S)==2:
return 1
return 0
iter4(L)
def iter4(L):
D=copy(L)
CON3=1
CON1=lon(D)[0]
CON4=1
while CON3>.000001 and CON4<100:
S1=Steiner3(D[0:3])
S2=Steiner3([S1[0],D[2],D[3]])
CON2=S1[2]+S2[2]-abs(S1[0]-D[2]).n()
while (CON1-CON2)>=.000001:
X2=S2[0]
160 INDICE DE PROGRAMAS
S1=Steiner3([D[0],S1[0],S2[0]])
S2=Steiner3([S1[0],S2[0],D[3]])
CON1=CON2
CON2=S1[2]+S2[2]-abs(S1[0]-X2).n()
CON3=angle(S2[0]-S1[0],D[1]-S1[0])+
angle(S1[0]-S2[0],D[2]-S2[0])-4*pi/3
CON4=CON4+1
D[1]=Steiner3([D[0],S1[0],L[1]])[0]
D[2]=Steiner3([L[2],S2[0],D[3]])[0]
return D
Iter5(L)
def iter5(L):
D=copy(L)
CON3=[0,0,0]
CON1=lon(D)[0]
N=0
while sum(CON3)<3 and N<40:
N=N+1
#print CON3
S1=Steiner3(D[0:3])
S3=Steiner3([D[2],D[3],D[4]])
S2=Steiner3([S1[0],D[2],S3[0]])
CON2=S1[2]+S2[2]+S3[2]-abs(S1[0]-D[2])-abs(S3[0]-D[2])
while (CON1-CON2)>=.00000001:
X1=S1[0]
X3=S3[0]
X2=S2[0]
S1=Steiner3([D[0],X1,X2])
S3=Steiner3([X2,X3,D[4]])
S2=Steiner3([S1[0],X2,S3[0]])
CON1=CON2
CON2=S1[2]+S2[2]+S3[2]-abs(S1[0]-X2)-abs(S3[0]-X2)
#PER=[abs(X1-S1[3]),abs(X2-S2[3]),abs(X3-S3[3])]
PER=[abs(L[1]-S1[0]),abs(L[2]-S2[0]),abs(L[3]-S3[0])]
if PER[0]>.0000001:
CON3[0]=0
A1=[angle(D[0]-S1[0],L[1]-S1[0]),
angle(L[1]-S1[0],S2[0]-S1[0]),angle(S2[0]-S1[0],D[0]-S1[0])]
MA1=[min(A1),minimos(A1)]
if (2*pi/3)-MA1[0]>.001:
if MA1[1][0]==0:
D[1]=Steiner3([D[0],S1[0],L[1]])[0]
INDICE DE PROGRAMAS 161
elif MA1[1][0]==1:
D[1]=Steiner3([S2[0],S1[0],L[1]])[0]
else:
D[1]=Steiner3([S2[0],S1[0],D[0]])[0]
else:
D[1]=S1[0]
CON3[0]=1
else:
D[1]=S1[0]
CON3[0]=1
if PER[1]>.0000001:
CON3[1]=0
A2=[angle(S1[0]-S2[0],L[2]-S2[0]),
angle(L[2]-S2[0],S3[0]-S2[0]),angle(S3[0]-S2[0],S1[0]-S2[0])]
MA2=[min(A2),minimos(A2)]
if (2*pi/3)-MA2[0]>.001:
if MA2[1][0]==0:
D[2]=Steiner3([S1[0],S2[0],L[2]])[0]
elif MA2[1][0]==1:
D[2]=Steiner3([L[2],S2[0],S3[0]])[0]
else:
D[2]=Steiner3([S3[0],S2[0],S1[0]])[0]
else:
D[2]=S2[0]
CON3[1]=1
else:
D[2]=S2[0]
CON3[1]=1
if PER[2]>.0000001:
CON3[2]=1
A3=[angle(S2[0]-S3[0],L[3]-S3[0]),
angle(L[3]-S3[0],D[4]-S3[0]),angle(D[4]-S3[0],S2[0]-S3[0])]
MA3=[min(A3),minimos(A3)]
if (2*pi/3)-MA3[0]>.001:
if MA3[1][0]==0:
D[3]=Steiner3([S2[0],S3[0],L[3]])[0]
elif MA3[1][0]==1:
D[3]=Steiner3([L[3],S3[0],D[4]])[0]
else:
D[3]=Steiner3([D[4],S3[0],S2[0]])[0]
else:
D[3]=S3[0]
CON3[2]=1
else:
162 INDICE DE PROGRAMAS
D[3]=S3[0]
CON3[2]=1
return D,N
kct(L)
def kct(L):
k=len(L)
def A(n):
assert n>0
if n==1: return L
return composition(A(n-1),L)
def U(n):
assert n>0
if n==1: return A(1)
return U(n-1)+A(n)
T=deplist(U(k),m)
return T
kdicttolist(D)
def kdicttolist(D):
G=D
for a in range(max(D)+1):
if a not in D:
G[a] = {}
E=[]
for u in G:
for i in range(len(G.values()[u])):
E.append([u, G.values()[u].keys()[i],
G.values()[u].values()[i]])
return E
kleinrandic(L)
def kleinrandic(L):
M=pinv(klisttomatrix(laplacian(symmetrized(L)[0])))
LL=kmatrixtolist(M)
return klisttomatrix(qgenerator(LL,4)).n()
INDICE DE PROGRAMAS 163
klisttodict(L)
def klisttodict(L):
D={}
for [a,b,c] in L:
if a not in D:
D[a]={}
D[a][b]=c
return D
klisttomatrix(L)
def klisttomatrix(L):
N=kvertices(L)
n=len(N)
M=matrix(QQ,n,n)
for [a,b,c] in L:
M[a,b]=c
return M
kmatrixtolist(M)
def kmatrixtolist(M):
n=M.nrows()
L=[]
for [a,b] in CartesianProduct(range(n),range(n)):
if M[a,b]<>0:
L.append([a,b,M[a,b]])
return L
kruskal(L)
def kruskal(L):
return Kruskal(L,’min’)
Kruskal(L,orden)
def Kruskal(L,orden):
Vx=[real(z) for z in L]
Vy=[imag(z) for z in L]
Aord=ordenaAristas(L)
n=len(L)
G=[[0 for i in range(3)]for i in range(n-1)]
164 INDICE DE PROGRAMAS
arboles=[[0 for i in range(n)]for i in range(n)]
w=0
k=0
contarb=0
arbolborrado=0
while k < n-1:
cond1=0
cond2=0
arista=Aord[w]
pini=arista[1]-1
pfin=arista[2]-1
for i in range(n):
p1=arboles[i][pini]
p2=arboles[i][pfin]
if p1 == 1:
arbol1=i
cond1=1
if p2 == 1:
arbol2=i
cond2=1
if cond1 == 1 and cond2 == 1:
break
if cond1 == 0 and cond2 == 0:
if arbolborrado < contarb and arbolborrado != 0:
arboles[arbolborrado][pini]=1
arboles[arbolborrado][pfin]=1
arbolborrado=0
else:
arboles[contarb][pini]=1
arboles[contarb][pfin]=1
contarb=contarb+1
G[k]=arista
k=k+1
elif cond1 == 1 and cond2 == 0:
arboles[arbol1][pfin]=1
G[k]=arista
k=k+1
elif cond1 == 0 and cond2 == 1:
arboles[arbol2][pini]=1
G[k]=arista
k=k+1
elif cond1 == 1 and cond2 ==1:
if arbol1 != arbol2:
arbolmin=min(arbol1,arbol2)
INDICE DE PROGRAMAS 165
arbolmax=max(arbol1,arbol2)
for i in range(n):
p=arboles[arbolmax][i]
if p == 1:
arboles[arbolmin][i]=1
arboles[arbolmax]=[0 for j in range(n)]
arbolborrado=arbolmax
G[k]=arista
k=k+1
w=w+1
longitud=0
for i in range(n-1):
longitud=G[i][0]+longitud
AB=restalistas(Aord,G)
mab=min([a[0] for a in AB])
grafica=plce(L)
for i in range(len(G)):
P=[(Vx[G[i][1]-1],Vy[G[i][1]-1]),(Vx[G[i][2]-1],Vy[G[i][2]-1])]
SEG=sage.plot.line.line(P,color=’blue’)
grafica=grafica+SEG
grafica.set_aspect_ratio(1)
return grafica,longitud.n(), longitud.n()+mab
kvertices(L)
def kvertices(L):
A=[a for [a,b,c] in L]
B=[b for [a,b,c] in L]
X=set(A+B)
return list(X)
LabtoXYZ(M,IL)
var(’A C D65 F11 LED’)
def LabtoXYZ(M,IL):
G=fdeltainv(s)
R=len(M)
if IL==A:
Xn=111.143
Yn=99.999
Zn=35.201
elif IL==C:
166 INDICE DE PROGRAMAS
Xn=97.287
Yn=100.002
Zn=116.147
elif IL==D65:
Xn=94.809
Yn=100
Zn=107.307
elif IL==F11:
Xn=103.866
Yn=100
Zn=65.629
elif IL==LED:
Xn=93.78
Yn=100
Zn=97.95
L=[m[0].n(digits=4) for m in M]
a=[m[1].n(digits=4) for m in M]
b=[m[2].n(digits=4) for m in M]
X1=[(L[k]+16)/116 for k in range(R)]
Y1=[a[k]/500 for k in range(R)]
Z1=[b[k]/200 for k in range(R)]
X=[Xn*G(X1[k]+Y1[k]) for k in range(R)]
Y=[Yn*G(X1[k]) for k in range(R)]
Z=[Zn*G(X1[k]-Z1[k]) for k in range(R)]
return [[X[k],Y[k],Z[k]] for k in range(R)]
laplacian(L)
def laplacian(L):
LL=[]
for a in nodes(L):
C=[g for [e,f,g] in L if e==a and f<>a]
LL.append([a,a,sum(C)])
for [a,b,c] in L:
if a<>b:
LL.append([a,b,-c])
return LL
INDICE DE PROGRAMAS 167
libera(L)
def libera(L):
LL=[]
r=0
for v in L:
LA=matrix(LL+[v])
s=rank(LA)
if s>r:
LL.append(v)
r=s
return LL
listacomplejos(T,n)
def listacomplejos(T,n):
L=[CC.random_element(component_max=T) for _ in range(n)]
return L
listareales(n,M,n)
def listareales(m,M,n):
L=[RR.random_element(min=m,max=M) for _ in range(n)]
return L
listatriangles(L)
def listatriangles(L):
T=[]
for a in L:
for b in restalistas(L,[a]):
for c in restalistas(L,[a,b]):
k=true
for z in T:
if z in permutations([a,b,c]):
k=false
if k==true:
T.append([a,b,c])
return T
168 INDICE DE PROGRAMAS
lon(L)
def lon(L):
AL=[abs(L[i]-L[i+1]) for i in range(len(L)-1)]
if(L==[]):
return 0,0
return sum(AL),max(AL)
MAX(f,L)
def MAX(f,L):
if L==[]:
M=+infinity
V=[]
else:
fL=map(f,L)
M=max(fL)
V=[]
for a in L:
if f(a)==M:
V.append(a)
return [M, V]
maxkernel(L)
def maxkernel(L):
C=[c for [a,b,c] in L]+[0]
return max(C)
maxtriangular(L)
def maxtriangular(L):
N=kvertices(L)
LP=[[a,b] for [a,b,c] in L]
for [a,b] in CartesianProduct(N,N):
if [a,b] not in LP:
L.append([a,b,0])
D=klisttodict(L)
T=0
for [x,y] in CartesianProduct(N,N):
for z in N:
if z<>x and z<>y and x<>y:
T0=D[x][z]+D[z][y]-D[x][y]
INDICE DE PROGRAMAS 169
if T<T0:
T=T0
return T
maxwell(n)
def maxwell(n):
T=triangular(n+1,2/(n*sqrt(3)),1/n)
return T
mejora(L,n)
def mejora(L,n):
for i in range(len(L)-n):
L=optimizatramo(L,i,i+n)
print lon(L)
return L
mejoratramo(L,n,m)
def mejoratramo(L,n,m):
if L[0] in CC:
M=L[n:m+1]
ML=restalistas(L,M)
R=pegalistas(ML,M)
if lon(R)[0]<lon(L)[0]:
VR=prepara_camino(R)
return R,VR
else:
#print ’No puedo mejorarlo’
return L ,[]
else:
LC=[a[1] for a in L]
MC=LC[n:m+1]
MCLC=restalistas(LC,MC)
RC=pegalistas(MCLC,MC)
if lon(RC)[0]<lon(LC)[0]:
print lon(RC)
VRC=vercamino(RC)
NLC=[]
for z in RC:
NLC=NLC+[a for a in L[0:len(L)-1] if a[1]==z]
pintar_nom_ciudades(NLC)
170 INDICE DE PROGRAMAS
return NLC,VRC
else:
#print ’No puedo mejorarlo’
return L,[]
mezclalistas(L,M)
def mezclalistas(L1,L2):
l1=len(L1)
l2=len(L2)
M=[]
if l1>=l2:
for k in range(l2):
M.append(L1[k])
M.append(L2[k])
M=M+L1[l2:]
else:
for k in range(l1):
M.append(L2[k])
M.append(L1[k])
M=M+L2[l1:]
return M
MIN(f,L)
def MIN(f,L):
if L==[]:
m=-infinity
V=[]
else:
fL=map(f,L)
m=min(fL)
V=[]
for a in L:
if f(a)==m:
V.append(a)
return [m,V]
norma(V)
def norma(V):
return sqrt(V*V)
INDICE DE PROGRAMAS 171
mpinv(M)
def mpinv(M):
D=dvs(M)
return matrix(D[1]).transpose()*diagonal_matrix(D[0])
.inverse()*matrix(D[2])
num(L)
def num(L):
return [a.n() for a in L]
oplista(L, o, z)
var(’s r m d’)
def oplista(L,o,z):
if o==s:
return [w+z for w in L]
elif o==r:
return [w-z for w in L]
elif o==m:
return [w*z for w in L]
elif o==d:
return [w/z for w in L]
optimiza(L)
def optimiza(L):
CL=[a.n() for a in L]
#Permuto todas las posibilidades entre los puntos extremos
LP = list(Permutations(CL))
LL=[lon(P)[0] for P in LP]
p_ind=LL.index(min(LL))
ML=LP[p_ind]
return ML, min(LL)
optimiza4(L)
def optimiza4(L):
CL=[a.n() for a in L]
LP=Permutations(CL).list()
LL=[lon(P)[0] for P in LP]
M=minimos(LL)
172 INDICE DE PROGRAMAS
LPM=[LP[k] for k in M]
A=[AM(R)[0] for R in LPM]
MA=[]
for P in LPM:
if AM(P)[0]==max(A):
MA.append(P)
return MA[0], lon(MA[0])[0]
optimiza5(L)
def optimiza5(L):
CL=[a.n() for a in L]
LP=Permutations(CL).list()
LL=[lon(P)[0] for P in LP]
M=minimos(LL)
LPM=[LP[k] for k in M]
A=[AM(R)[0] for R in LPM]
MA=[]
for P in LPM:
if AM(P)[0]==max(A):
MA.append(P)
MAO=[]
for P in MA:
if AM(P)[1]==1:
MAO.append(P)
if MAO!=[]:
return MAO[0], lon(MAO[0])[0]
else:
return MA[0], lon(MA[0])[0]
optimizac(L)
def optimizac(L):
CL=[a.n() for a in L]
LP = Permutations(CL).list()
LC=[list(a)+[a[0]] for a in LP]
LL=[lon(a)[0] for a in LC]
p_ind=LL.index(min(LL))
ML=list(LC[p_ind])
return ML, min(LL)
INDICE DE PROGRAMAS 173
optimiza tramo(L,n.m)
def optimizatramo(L,n,m):
CL=copy(L)
PL=CL[n:m+1]
Lista_perm = Permutations(PL[1:len(PL)-1])
LL=[lon([PL[0]] + list(Perm) +[PL[-1]]) for Perm in Lista_perm]
p_ind=LL.index(min(LL))
ML=[PL[0]]+list(Lista_perm[p_ind])+[PL[-1]]
CL[n:m+1]=ML
return CL
ordenaAristas(L)
def ordenaAristas(L):
A=generaAristas(L)
A.sort()
return A
partes(f)
var(’z x y’)
def partes(f):
F=[simplify(expand(f(z=x+I*y)).real()),simplify(expand(f(z=x+I*y)).imag())]
s=abs(x+I*y)
S1=str(F[0]).replace(str(s), ’sqrt(x^2+y^2)’)
S2=str(F[1]).replace(str(s), ’sqrt(x^2+y^2)’)
F[0] = sage_eval(S1,locals={’x’:x,’y’:y})
F[1] = sage_eval(S2,locals={’x’:x,’y’:y})
return F
pc(z)
def pc(z):
x=real(z)
y=imag(z)
return arrow2d((0,0),(x,y))
pcg(z)
def pcg(z):
x=real(z)
y=imag(z)
return arrow2d((0,0),(x,y),color=(0,1,0))
174 INDICE DE PROGRAMAS
pegalistas(L,M)
def pegalistas(L,M):
while M!=[]:
A=[]
for z in M:
DIS=[floor(((abs(L[i]-z)+abs(L[i+1]-z)-
abs(L[i]-L[i+1])).n())*10^6)/10^6 for i in range(len(L)-1)]
d=min(DIS)
Vd=minimos(DIS)
ANG=[angle(L[j]-z,L[j+1]-z) for j in Vd]
Vg=maximos(ANG)
g=ANG[Vg[0]]
k=Vd[Vg[0]]
A.append([d,(pi-g),k,real(z),imag(z)])
A.sort()
L.insert(A[0][2]+1,A[0][3]+I*A[0][4])
if A[0][2]>0 and A[0][2]<len(L)-1:
L=optimizatramo(L,A[0][2]-1,A[0][2]+2)
M.pop(M.index(A[0][3]+I*A[0][4]))
return L
perimetro(T)
def perimetro(T):
MT=triangle(T)
return sum(MT[0])
plce(L)
def plce(L):
P=[ri(z) for z in L]
D=point2d(P,rgbcolor=(1,0,0),pointsize=30,aspect_ratio=1)
return D
plceb(L)
def plce(L):
P=[ri(z) for z in L]
D=point2d(P,rgbcolor=(0,0,1),pointsize=30,aspect_ratio=1)
return D
INDICE DE PROGRAMAS 175
plse(L)
def plse(L):
P=[ri(z) for z in L]
D=point2d(P,rgbcolor=(1,0,0),axes=False, pointsize=30,aspect_ratio=1)
return D
Poblacion(Ai, Af , n)
def Poblacion(Ai,Af,n):
#Letras
var(’A B C AC D E F G H J K L M N O P Q R S T U V W X Y Z’)
#Titulaciones
var(’SE Primarios Secundarios Bachiller FP1 FP2 Grado Master Doctor’)
#Ambitos
var(’Social Cientifico Tecnologico Humanidades Filologico’)
#Nombres
var(’Amancio Ana Amelia Antonio Antonia Arturo Bernardo Bernabe’)
var(’Bartolo Benito Berta Carla Carlos Carmen Cecilia Delia Demetrio’)
var(’Emilia Emilio Eduardo Fernando Felisa Federico Gonzalo’)
var(’Gertrudis Hugo Indalecio Ines Julio Julieta Luis Liana Leticia’)
var(’Manuel Maria Miguel Matilde Narciso Nicanora Nieves Onesimo’)
var(’Olegario Pedro Paloma Quico Ramon Rosario Sixto’)
var(’Serena Timoteo Tomas Teresa Ubaldo Ursula Victor Victoria’)
var(’Wenceslao Willy Xiana Yago Zacarias Zoraida’)
var(’Dolores Cristina Alicia Eva Elena Mercedes
Carolina Monica Isabel Patricia’)
#Apellidos
var(’Amat Arias Artigas Armada Belvis Benitez Barbera
Bonan Becerra Borrego’)
var(’Corbacho Carballido Calero Castejon Cespon’)
var(’Cespedes Canido Carnero Cerrudo Diaz Devesa Durruti’)
var(’Esteban Estibaliz Fernandez Francia Garcia Gea’)
var(’Hijar Hinojosa Iniesta Indurain Iglesias Jimenez’)
var(’Jubiol Linares Latices Leon Lago Lopard Mas’)
var(’Manero Burgos Gil Pitarch Taura Pelaez Gimpera Cerrudo’)
var(’Martinez Perez Benjumea Escrig Zaragoza Daniel Gea Torres’)
var(’Izquierdo Vidal Vazquez Rodriguez Varela’)
var(’Somoza Goyanes Lopez Gonzalez Aznar Rajoy’)
var(’Zapatero Feijoo Pujol Calvo Sotelo Borbon Aguirre’)
LM1=[Amancio,Antonio,Arturo,Bernardo,Bernabe,Bartolo,Benito]
176 INDICE DE PROGRAMAS
LM2=[Carlos,Demetrio, Emilio,Eduardo, Fernando,Federico]
LM3=[Gonzalo,Hugo,Indalecio,Julio,Luis,Manuel,Miguel,Narciso]
LM4=[Onesimo,Olegario,Pedro,Ramon,Sixto,Timoteo]
LM5=[Tomas,Ubaldo,Victor,Wenceslao,Yago, Zacarias]
LM=LM1+LM2+LM3+LM4+LM5
LF1=[Ana,Amelia,Antonia,Berta,Carla,Carmen, Cecilia]
LF2=[Delia,Emilia,Felisa,Gertrudis,Ines,Julieta,Liana, Leticia]
LF3=[Maria,Matilde,Nicanora,Nieves,Paloma,Serena,Teresa]
LF4=[Ursula, Victoria,Xiana,Zoraida, Dolores,Cristina,Alicia]
LF5=[Eva,Elena,Mercedes,Carolina,Monica,Isabel,Patricia]
LF=LF1+LF2+LF3+LF4+LF5
LN=LM+LF
AP1=[Amat,Arias,Artigas,Armada,Belvis,Benitez,Barbera,Bonan]
AP2=[Becerra,Borrego,Corbacho,Carballido,Calero,Castejon,Cespon]
AP3=[Cespedes, Canido, Carnero, Cerrudo, Diaz, Devesa, Durruti]
AP4=[Esteban, Estibaliz, Fernandez, Francia, Garcia, Gea]
AP5=[Hijar, Hinojosa, Iniesta, Indurain, Iglesias]
AP6=[Jimenez,Jubiol,Linares,Latices, Leon, Lago, Lopard, Mas]
AP7=[Manero, Burgos, Gil, Pitarch, Taura, Pelaez, Gimpera, Cerrudo]
AP8=[Martinez, Perez, Benjumea, Escrig, Zaragoza,Gea, Torres]
AP9=[Izquierdo, Vidal, Vazquez, Rodriguez,Varela]
AP10=[Somoza, Goyanes, Lopez, Gonzalez, Aznar, Rajoy]
AP11=[Zapatero, Feijoo, Pujol, Calvo, Sotelo, Borbon, Aguirre]
AP=AP1+AP2+AP3+AP4+AP5+AP6*AP7+AP8+AP9+AP10+AP11
PER=[]
Dia=[1..30]
Mes=[1..12]
Anho=[Ai..Af]
DN=[ceil(RR.random_element(min=1000000,max=50000000)) for _ in range(n)]
LDN=[[0,T],[1,R],[2,W],[3,A],[4,G],[5,M],[6,Y],[7,F],[8,P],[9,D],[10,X],
[11,B],[12,N],[13,J],[14,Z],[15,S],[16,Q],[17,V],[18,H],
[19,L],[20,C],[21,K],[22,E]]
for k in range(n):
Nombre=[choice(AP),choice(AP),choice(LN)]
if Nombre[2] in LF:
Sexo=F
else:
Sexo=M
FN=[choice(Dia),choice(Mes),choice(Anho)]
PER.append([Nombre,Sexo,FN,[DN[k],LDN[DN[k]-23*floor(DN[k]/23)][1]]])
INDICE DE PROGRAMAS 177
return PER
PoblacionQ(A,n)
def PoblacionQ(A,n):
P=Poblacion(A-55,A-18,n)
Tit=[SE]+3*[Primarios]+5*[Secundarios]+2*[Bachiller]+
5*[FP1]+3*[FP2]+2*[Grado]+2*[Master]+[Doctor]
Amb=4*[Social]+2*[Cientifico]+3*[Tecnologico]+[Filologico]
PQ=[]
for k in range(n):
if P[k][2][2]<20:
Titulacion=choice(Tit[:9])
elif P[k][2][2]>=20 and P[k][2][2]<25:
Titulacion=choice(Tit[:12])
elif P[k][2][2]>=25 and P[k][2][2]<35:
Titulacion=choice(Tit[:13])
else:
Titulacion=choice(Tit)
if Titulacion==SE:
Especialidad=[]
else:
Especialidad=choice(Amb)
PQ.append(P[k]+[Titulacion,Especialidad])
return PQ
prepara-camino(L)
def prepara_camino(L):
RL=[real(z) for z in L]
h=(max(RL)-min(RL))/50
P=[ri(z) for z in L]
Pg=P[0::10]
Pp=restalistas(P,Pg)
Dg=point2d(Pg,rgbcolor=(1,0,0),pointsize=30,axes=false)
for i in range(len(Pg)):
Dg+=text(10*i,(Pg[i][0]+h,Pg[i][1]+h), color=’black’,fontsize=8)
Dp=point2d(Pp,rgbcolor=(1,0,0),pointsize=10)
D=Dg+Dp+line(P)+arrow(P[0],P[1])
return D
178 INDICE DE PROGRAMAS
promlista(L)
def promlista(L):
M=[(L[i]+L[i+1])/2 for i in range(len(L)-1)]
return M
pt(T)
def pt(T):
ET=[ri(T[0]),ri(T[1]),ri(T[2]),ri(T[0])]
dT=line2d(ET)
return dT
Publilista(L)
def Publilista(L):
for k in range(len(L)):
html([k+1, L[k]])
qgenerator(L,n)
def qgenerator(L,n):
X=kvertices(L)
LP=[[a,b] for [a,b,c] in L]
for [a,b] in CartesianProduct(X,X):
if [a,b] not in LP:
L.append([a,b,0])
D=klisttodict(L)
qL=[]
if n==1:
for [a,b] in CartesianProduct(X,X):
qL.append([a,b,D[a][a]-D[a][b]])
if n==2:
for [a,b] in CartesianProduct(X,X):
qL.append([a,b,D[b][b]-D[a][b]])
if n==3:
for [a,b] in CartesianProduct(X,X):
qL.append([a,b,D[a][a]+D[b][b]-2*D[a][b]])
if n==4:
for [a,b] in CartesianProduct(X,X):
qL.append([a,b,D[a][a]+D[b][b]-D[a][b]-D[b][a]])
qL=[a for a in qL if a[2]!=0]
return qL
INDICE DE PROGRAMAS 179
qmetric(L)
def qmetric(L):
p=0
L2=composition(L,L)
L23=[c for [a,b,c] in L2]
if L<>deplist(L,m):
p=p+1
for [a,b,c] in L:
if c<0 or (a==b and c<>0):
p=p+1
for h in L23:
if [a,b,h] in L2 and h<c:
p=p+1
return(p==0)
radial(n,c,r,d)
def radial(n,c,r,d):
P=[r*exp(I*k*2*pi.n()/n) for k in range(n)]
R=[P]
for j in [1..c-1]:
R.append(oplista(P,m,j*(d/r)+1))
M=[]
for k in range(len(R)):
M=M+R[k]
return M
ralfabeto(L)
def ralfabeto(L):
return range(1+max([max(a) for a in L]))
rantisim(L)
def rantisim(L):
n=len(ralfabeto(L))
LTL=[a for a in L if a in rtranspose(L)]
return igualiset(rid(n),LTL)
180 INDICE DE PROGRAMAS
rct(L)
def rct(L):
l=len(L)
def E(n):
assert n>0
if n==1:
return L
return comprel(E(n-1),L)
def U(n):
assert n>0
if n==1:
return E(1)
return U(n-1)+E(n)
T=[]
for e in U(l):
if e not in T:
T.append(e)
return T
rdicttolist(D)
def rdicttolist(D):
L=[]
for a in D.keys():
for b in D.values()[a]:
L.append([a,b])
return L
Real(L)
def Real(L):
return [a.real() for a in L]
rectangular(n,m,b,h)
def rectangular(n,m,b,h):
B=[0,b..(n-1)*b]
L=copy(B)
for j in range(m-1):
L=oplista(L,s,h*I)
B=B+L
return B
INDICE DE PROGRAMAS 181
redict(L)
def redict(D):
for a in D:
D[a]=funtodict0(D[a])
return D
reducir(L,M)
def reducir(L,M):
M.sort()
LR=[L[0:M[0]+1]]
for m in M:
LR.append(L[m+1:sig(m,M)+1])
LR.append(L[M[-1]:])
LR=[a for a in LR if len(a)>1]
CLR=[verSTa(P) for P in LR]
VLR=[k[0] for k in CLR]
LLR=[k[1] for k in CLR]
return sum(VLR), sum(LLR)
region() Funciones tipo region() por ejemplo rioja():
def rioja():
var(’LOGRONHO, Calahorra, Arnedo’)
RIO=[[LOGRONHO,42.4627195,-2.4449852],[Calahorra,42.3073551,-1.9673133],
[Arnedo,42.2256792,-2.1020752]]
R=6367650
LAM=sum([a[1] for a in RIO])/len(RIO)
LOM=sum([a[2] for a in RIO])/len(RIO)
PXY=[[a[0],(R*cos(a[1]*pi/180)*tan((a[2]-LOM)*pi/180)).n()+
I*(R*(a[1]-LAM)*pi/180).n()] for a in RIO]
return PXY,[LOM,LAM]
relacion(n)
def relacion(n):
F=range(n)
C=CartesianProduct(F,F)
P=[]
for c in C:
182 INDICE DE PROGRAMAS
r=random()
if r>0.5:
P.append(c)
return P
restalistas(L,M)
def restalistas(L,M):
DL=[]
for z in L:
if z not in M:
DL.append(z)
return DL
ri(z)
def ri(z):
return [z.real(),z.imag()]
rid(n)
def rid(n):
return [[i,i] for i in range(n)]
rlisttodict(L)
def rlisttodict(L):
K=set([a[0] for a in L])
D=dict.fromkeys(K,[])
for a in D:
D[a]=[b[1] for b in R if b[0]==a]
return D
rlisttomatrix(L)
def rlisttomatrix(L):
n=max([max(a) for a in L])
M=matrix(QQ,n+1,n+1)
for [a,b] in L:
M[a,b]=1
return M
INDICE DE PROGRAMAS 183
rreflex(L)
def rreflex(L):
n=len(ralfabeto(L))
In=rid(n)
return conliset(In,L)
rsim(L)
def rsim(L):
TL=rtranspose(L)
return igualiset(L,TL)
rtrans(L)
def rtrans(L):
return conliset(comprel(L,L),L)
rtranspose(L)
def rtranspose(L):
return [[b,a] for [a,b] in L]
schoenberg(L)
def schoenberg(L):
if L==symmetrized(L)[0] and [a for a in L if a[0]==a[1] and a[2]!=0]==[]:
X=kvertices(L)
n=len(X)
DP=[[a,b] for [a,b,c] in L]
for [a,b] in CartesianProduct(X,X):
if [a,b] not in DP:
L.append([a,b,0])
D=klisttodict(L)
qL=[]
for [a,b] in CartesianProduct(X,X):
qL.append([a,b,(D[a][0]^2+D[b][0]^2-D[a][b]^2)/2])
M=klisttomatrix(qL)
M=M[1:n,1:n]
V=M.eigenvalues()
V=[a.n(20) for a in V]
W=[abs(a) for a in V]
SC=sum(V)==sum(W)
184 INDICE DE PROGRAMAS
if SC==True:
return SC, M.rank()
else:
return SC
else:
print ’este nucleo no cumple las condiciones del teorema’
selenlist(L,K)
def selenlist(L,N):
return [L[n] for n in N]
sig(b,L)
def sig(m,M):
if m!=M[-1]:
S=M[1+M.index(m)]
else:
S=M[-1]
return S
size(M)
def size(M):
return [M.nrows(),M.ncols()]
Steiner(L,k)
def Steiner(L,k):
if k==3:
return Steiner3(L)
elif k==4:
return Steiner4(L)
elif k==5:
return Steiner5(L)
else:
return L
Steiner3(L)
def Steiner3(L):
C=copy(L)
if indicador(C)==-1:
INDICE DE PROGRAMAS 185
C=reverso(C)
MC=triangle(C)
HC=sum(MC[0])-max(MC[0])
A=max(MC[1])
if A<2*pi.n()/3:
if abs(MC[0][0]-MC[0][1])+abs(MC[0][0]-MC[0][2])<.000000001:
z0=sum(C)/3
else:
Z1=C[1]-C[0]
Z2=C[2]-C[0]
T21=ri(Z1)
T22=ri(Z2)
P1=Z1+(Z2-Z1)*exp(-I*pi.n()/3)
P2=Z2*exp(I*pi.n()/3)
M=matrix([ri(P1),ri(Z1-P2)])
MA=matrix([T21])*M^(-1)
z0=MA[0,0]*P1+C[0]
F1=line([ri(z0),ri(C[0])],rgbcolor=(1,0,0))
F2=line([ri(z0),ri(C[1])],rgbcolor=(1,0,0))
F3=line([ri(z0),ri(C[2])],rgbcolor=(1,0,0))
CS=plse(C)+point2d(ri(z0),color=’green’,pointsize=15)
DS=F1+F2+F3+CS
SC=(abs(C[0]-z0)+abs(C[1]-z0)+abs(C[2]-z0)).n()
return z0, DS, SC, 100*(HC-SC)/HC
else:
k=MC[1].index(A)
z0=C[k].n()
if k==0:
ST=line([ri(C[1]),ri(C[0])],color=’red’)
+line([ri(C[2]),ri(C[0])],color=’red’)
elif k==1:
ST=line([ri(C[2]),ri(C[1])],color=’red’)
+line([ri(C[0]),ri(C[1])],color=’red’)
else:
ST=line([ri(C[0]),ri(C[2])],color=’red’)
+line([ri(C[1]),ri(C[2])],color=’red’)
PTS=plse(C)+point2d(ri(z0),color=’green’,pointsize=15)
return z0, ST+PTS, HC, .0
Steiner4(L)
def Steiner4(L):
OL=optimiza4(L)
I4=iter4(OL[0])
186 INDICE DE PROGRAMAS
VP=point2d([ri(I4[1]),ri(I4[2])],color=’green’,pointsize=15)
VC=verST(I4)
L1=line([ri(I4[1]),ri(OL[0][1])],rgbcolor=(1,0,0))
L2=line([ri(I4[2]),ri(OL[0][2])],rgbcolor=(1,0,0))
DS4=VC[0]+L1+L2+plse(L)+VP
LS4=VC[1]+abs(I4[1]-OL[0][1])+abs(I4[2]-OL[0][2])
return I4[1:3], DS4, LS4, 100*(OL[1]-LS4)/OL[1]
Steiner5(L)
def Steiner5(L):
OL=optimiza5(L)
I5=iter5(OL[0])[0]
VP=point2d([ri(I5[1]),ri(I5[2]),ri(I5[3])],color=’green’,pointsize=15)
VC=verST(I5)
L1=line([ri(I5[1]),ri(OL[0][1])],rgbcolor=(1,0,0))
L2=line([ri(I5[2]),ri(OL[0][2])],rgbcolor=(1,0,0))
L3=line([ri(I5[3]),ri(OL[0][3])],rgbcolor=(1,0,0))
DS4=VC[0]+L1+L2+L3+plse(L)+VP
LS4=VC[1]+abs(I5[1]-OL[0][1])+abs(I5[2]-OL[0][2])+abs(I5[3]-OL[0][3])
return I5[1:4], DS4, LS4, 100*(OL[1]-LS4)/OL[1]
symmetrized(L)
def symmetrized(L):
LS=deplist([[a,b,c/2] for [a,b,c] in L]+[[b,a,c/2] for [a,b,c] in L],S)
DLS=listtodict(LS)
GS=Graph(DLS)
HS=GS.plot(edge_labels=True)
return LS, HS
transpose(L)
def transpose(L):
LT=[[b,a,c] for [a,b,c] in L]
GT=DiGraph(LT)
HT=GT.plot(edge_labels=True)
return LT, HT
triangular(n,b,h)
def triangular(n,b,h):
B=[0,b..(n-1)*b]
INDICE DE PROGRAMAS 187
L=copy(B)
for k in [0..n-2]:
L=promlista(L)
L=oplista(L,s,h*I)
B=B+L
return B
uneregiones(P)
def uneregiones(P):
VP=[]
d=0
for i in range(len(P)):
VP.append(P[i]())
if i==0:
VPD=VP[0][0]
else:
d=d+desplazamiento(VP[i-1][1],VP[i][1])
VPD=VPD+[[a[0],a[1]+d] for a in VP[i][0]]
return VPD
V0(L,n)
def V0(L,n):
return Vqmetric(L,n,b0(L))
vercamino(L)
def vercamino(L):
RL=[real(z) for z in L]
h=(max(RL)-min(RL))/50
P=[ri(z) for z in L]
Pg=P[0::10]
Pp=restalistas(P,Pg)
Dg=point2d(Pg,rgbcolor=(1,0,0),pointsize=30,axes=false)
for i in range(len(Pg)):
Dg+=text(10*i,(Pg[i][0]+h,Pg[i][1]+h), color=’black’,fontsize=8)
Dp=point2d(Pp,rgbcolor=(1,0,0),pointsize=10)
D=Dg+Dp+line(P,axes=false,aspect_ratio=1)+arrow(P[0],P[1])
return D
188 INDICE DE PROGRAMAS
vercaminoST(L)
def vercaminoST(L):
RL=[real(z) for z in L]
h=(max(RL)-min(RL))/50
P=[ri(z) for z in L]
Pg=P[0::10]
Pp=restalistas(P,Pg)
Dg=point2d(Pg,rgbcolor=(1,0,0),pointsize=30,axes=false)
for i in range(len(Pg)):
Dg+=text(10*i,(Pg[i][0]+h,Pg[i][1]+h), color=’black’,fontsize=8)
Dp=point2d(Pp,rgbcolor=(1,0,0),pointsize=10)
D=Dg+Dp+line(P,color=’red’,aspect_ratio=1)
show(D,axes=false,aspect_ratio=1)
return D,lon(L)[0]
verST(L)
def verST(L):
P=[ri(z) for z in L]
D=line(P,color=’red’,axes=False,aspect_ratio=1)+plse(L)
return D,lon(L)[0]
verSTa(L)
def verSTa(L):
P=[ri(z) for z in L]
D=line(P,color=’blue’,axes=False,aspect_ratio=1)+plse(L)
return D,lon(L)[0]
Vkernel(L,B)
def Vkernel(L,B):
N=kvertices(L)
AB=[[a,b] for [a,b,c] in L]
L0=L
for e in N:
if [e,e] not in AB:
L0.append([e,e,0])
LL=[]
for [a,b,c] in L0:
if a==b:
LL.append([a,b,1-B*c])
INDICE DE PROGRAMAS 189
else:
LL.append([a,b,-B*c])
return LL
Vqmetric(L,n,B)
def Vqmetric(L,n,B):
LL=Vkernel(L,B)
return qgenerator(LL,n)
Vqmetricinter(L)
def Vqmetricinter(L):
print ’b0 = ’,b0(L)
for i in [1..2]:
Lq=auxgenerator(L,i)
M=maxkernel(Lq)
T=maxtriangular(Lq)
if M<T:
print ’C’,i,’=’,[0,1/T]
elif M>T:
print ’C’,i,’=[’, 0, ’,’, 1/M, ’)’
elif M==T:
if T==0:
print ’C’,i,’=R+’
else:
print ’C’,i,’=[’, 0, ’,’, 1/M, ’)’
for i in [3..4]:
Lq=auxgenerator(L,i)
M=maxkernel(Lq)
T=maxtriangular(Lq)
if M<T:
print ’C’,i,’=’,[0,2/T]
elif M>T:
print ’C’,i,’=[’, 0, ’,’, 2/M, ’)’
elif M==T:
if T==0:
print ’C’,i,’=R+’
else:
print ’C’,i,’=[’, 0, ’,’, 2/M, ’)’
190 INDICE DE PROGRAMAS
XYZtoLab(L,IL)
var(’A C D65 F11 LED’)
def XYZtoLab(L,IL):
F=fdelta(t)
R=len(L)
if IL==A:
Xn=111.143
Yn=99.999
Zn=35.201
elif IL==C:
Xn=97.286
Yn=99.999
elif IL==D65:
Xn=94.813
Yn=99.997
Zn=107.304
elif IL==F11:
Xn=103.869
Yn=100.006
Zn=65.609
elif IL==LED:
Xn=93.78
Yn=100
Zn=97.95
X=[a[0].n(digits=4) for a in L]
Y=[a[1].n(digits=4) for a in L]
Z=[a[2].n(digits=4) for a in L]
L=[116*F(Y[k]/Yn)-16 for k in range(R)]
a=[500*(F(X[k]/Xn)-F(Y[k]/Yn)) for k in range(R)]
b=[200*(F(Y[k]/Yn)-F(Z[k]/Zn)) for k in range(R)]
return [[L[k],a[k],b[k]] for k in range(R)]
Worksheets:
https://cloud.sagemath.com/projects/0b69df04-f98d-43d2-a286-3ef2488e4136/files/
Anexos
ANEXO1 A C D65 F11 LED
350 4.74 7.00 44.91 0.00 0.00360 6.14 12.90 46.64 0.00 0.00370 7.82 21.40 52.09 0.00 0.00380 9.80 33.00 49.98 0.91 0.48390 12.09 47.40 54.65 0.46 0.42400 14.71 63.30 82.75 1.29 0.58410 17.68 80.60 91.49 1.59 1.74420 20.99 98.10 93.43 2.46 6.81430 24.67 112.40 86.68 4.49 25.17440 28.70 121.50 104.86 12.13 69.99450 33.09 124.00 117.01 7.19 100.00460 37.81 123.10 117.81 6.72 75.55470 42.87 123.80 114.86 5.46 46.79480 48.24 123.90 115.92 5.66 35.56490 53.91 120.70 108.81 14.96 37.89500 59.86 112.10 109.35 4.72 45.60510 66.06 102.30 107.80 1.47 52.76520 72.50 96.90 104.79 0.89 57.52530 79.13 98.00 107.69 1.18 60.43540 85.95 102.10 104.41 39.59 62.41550 92.91 105.20 104.05 32.61 63.98560 100.00 105.30 100.00 2.83 64.98570 107.18 102.30 96.33 1.67 65.30580 114.44 97.80 95.79 11.28 64.46590 121.73 93.20 88.69 12.73 62.10600 129.04 89.70 90.01 7.33 57.99610 136.35 88.40 89.60 55.27 52.22620 143.62 88.10 87.70 13.18 45.36630 150.84 88.00 83.29 12.26 37.99640 157.98 87.80 83.70 2.07 30.97650 165.03 88.20 80.03 3.58 24.86660 171.96 87.90 80.21 2.48 19.46670 178.77 86.30 82.28 1.54 14.99680 185.43 84.00 78.28 1.46 11.25690 191.93 80.20 69.72 2.00 8.60700 198.26 76.30 71.61 1.35 6.55710 204.41 72.40 74.35 5.58 5.20720 210.36 68.30 61.60 0.57 3.93730 216.12 64.40 69.89 0.23 3.09740 221.67 61.50 75.09 0.24 2.69750 227.00 59.20 63.59 0.20 2.04760 232.12 58.10 46.42 0.32 1.90770 237.01 58.20 66.81 0.16 1.75780 241.68 59.10 63.38 0.09 1.70790 246.12 59.10 64.30 0.00 0.00800 250.33 59.10 59.45 0.00 0.00
191
192 ANEXOS
ANEXO2OF OD
54.33 21.06 14.67 154.30 21.45 18.00 254.40 21.13 19.25 453.86 19.57 20.32 353.28 19.46 21.88 653.47 17.25 23.34 752.13 16.80 24.87 552.81 15.07 27.72 852.80 14.06 29.24 952.64 13.16 31.90 1253.73 11.83 32.91 1154.98 10.44 33.14 1355.76 9.033 35.24 1055.32 7.416 40.08 1656.17 6.641 42.63 1856.84 2.945 44.04 1757.39 1.526 44.05 1458.18 -2.113 45.49 1558.89 -4.482 43.45 2159.14 -6.126 42.53 1957.75 -7.942 40.82 2058.65 -9.834 41.86 2258.59 -10.97 35.60 2458.52 -12.92 34.63 2358.71 -13.11 31.72 2559.06 -14.50 31.53 2759.67 -17.14 28.82 2658.65 -17.36 25.37 2959.67 -17.89 25.13 2859.33 -18.33 22.80 3059.28 -19.41 21.20 3159.06 -22.48 20.91 3359.67 -21.53 17.38 3258.45 -22.54 15.21 3458.32 -24.69 14.79 3557.18 -24.70 12.28 3656.66 -23.77 9.143 3756.58 -22.44 6.580 3857.26 -23.93 6.174 3855.86 -23.03 3.433 4156.38 -23.66 1.921 4056.89 -23.75 0.7141 4256.11 -22.50 -0.5997 4356.67 -21.56 -3.185 4556.31 -21.13 -4.048 4456.21 -21.23 -5.568 4656.55 -21.53 -8.051 4756.65 -19.34 -8.659 4956.11 -18.65 -9.874 4856.93 -17.68 -12.54 5357.19 -15.51 -13.87 5056.24 -14.70 -14.59 5156.62 -13.02 -16.26 5256.66 -11.76 -16.69 5456.43 -8.461 -14.87 6256.30 -6.992 -16.92 6355.96 -5.001 -19.21 5656.08 -3.857 -18.26 5957.23 -1.862 -19.30 5756.31 -0.6561 -20.58 6055.13 1.102 -20.03 5854.33 2.857 -20.33 5555.24 4.505 -18.84 6154.99 6.435 -20.04 6455.42 7.198 -17.98 6655.78 7.977 -17.64 6555.99 9.171 -16.23 6756.44 10.42 -15.28 6856.77 11.65 -14.43 6955.87 13.05 -12.94 7056.58 13.25 -11.75 7157.01 15.02 -10.41 7255.35 16.77 -8.450 7455.97 18.68 -7.700 7354.83 18.35 -5.994 7654.97 20.55 -6.470 7555.81 20.69 -4.251 7755.32 21.97 -3.033 7853.58 22.53 -1.941 7954.10 23.20 0.4639 8054.51 24.55 2.367 8153.81 23.89 4.109 8254.05 23.26 7.639 8354.87 22.07 9.819 8455.17 21.65 12.29 85
ANEXOS 193
ANEXO3OFA OFC OFD65 OF11
56.54 23.65 19.18 53.21 21.96 13.16 53.07 22.96 12.94 54.34 24.07 15.0356.6 24.28 25.03 53.09 20.5 19.63 53.01 21.51 19.42 54.89 23.28 23.12
53.97 20.77 28.49 50.53 19.14 22.67 50.38 20.36 22.38 51.58 21.01 24.5554.72 19.31 34.8 51.3 16.06 29.66 51.24 17.12 29.46 53.41 16.97 33.5957.09 15.26 37.53 53.94 12.35 33.26 53.85 13.53 33 55.97 11.8 37.0757.37 9.62 44.9 54.46 8.04 40.82 54.33 9.38 40.5 56.54 4.36 44..4858.68 4.2 42.44 56.43 1.47 39.65 56.43 2.38 39.54 59.71 -3.84 45.4657.89 -0.74 39.11 56.28 -4.41 38.18 56.35 -3.74 38.11 58.9 -7.85 43.2157.84 -4.8 28.71 57.11 -9.92 29.9 57.24 -9.58 29.89 58.23 -8.66 32.7156.65 -12.13 22.57 56.57 -13.48 23.92 56.65 -13.18 23.92 58.44 -18.77 27.6257.74 -13.84 17.01 58.31 -18.14 20.52 58.47 -18.11 20.56 58.4 -15.73 21.6856.44 -18.42 10.52 57.66 -21.43 14.89 57.83 -21.62 14.99 57.41 -19.68 15.4254.26 -22.05 4.57 55.89 -21.98 8.73 56.08 -22.44 8.92 56.34 -24.44 10.1353.26 -21.76 -0.78 55.26 -22.39 4.24 55.46 -23.01 4.44 54.73 -21.77 4.2453.27 -24.45 -5.13 55.73 -23.83 0.81 55.89 -24.41 0.94 54.62 -22.58 -0.1553.85 -24.95 -10.03 56.68 -23.83 -3.54 56.83 -24.54 -3.41 55.17 -21.89 -5.253.87 -23.98 -14.03 56.88 -22.11 -7.53 57.02 -22.95 -7.39 55.14 -20.15 -9.6853.87 -20.75 -17.16 56.77 -17.81 -11.34 56.89 -18.73 -11.2 55.02 -16.96 -13.7355.05 -14.06 -16.52 57.32 -10.87 -12.54 57.39 -11.71 -12.39 55.97 -10.93 -14.7154.76 -11.56 -19.15 56.9 -6.56 -15.94 56.93 -7.37 -15.81 55.65 -7.89 -18.2854.6 -6.97 -20.65 56.42 -1.74 -18.22 56.41 -2.44 -18.15 55.16 -3.12 -20.7
54.47 -0.68 -18.86 55.63 3.58 -17.76 55.58 3.07 -17.73 54.6 2.47 -19.956.03 3.48 -14.42 56.5 6.83 -14.6 56.44 6.54 -14.58 55.93 6.25 -16.0356.36 8.33 -10.27 56.09 11.01 -11.87 56.02 10.93 -11.86 56.02 10.94 -12.5556.6 13.65 -4.84 55.52 14.88 -7.67 55.44 15.07 -7.7 55.95 15.8 -7.457.3 20.22 -0.69 55.52 18.11 -4.09 55.45 18.46 -4.15 56.69 21.29 -2.23
57.19 24.44 4.83 54.73 20.81 0.52 54.68 21.29 0.45 56.61 24.19 3.7356.17 25.63 11 53.19 22.33 6.02 53.1 23.08 5.86 54.8 25.87 8.93
ANEXO4/1OFA2 OFC2 OFD652 OF112
57 24.03 19.59 53.61 22.35 13.43 53.47 23.37 13.21 54.78 24.43 15.3656.95 25.31 21.91 53.36 22.93 15.59 53.26 23.93 15.41 55.18 25.09 18.6957.04 24.36 24.1 53.4 22.72 17.64 53.25 23.89 17.38 54.72 24.97 19.8856.92 24.28 24.87 53.42 20.48 19.46 53.34 21.48 19.26 55.23 23.27 22.9855.94 23.92 26.73 52.3 21.3 20.62 52.19 22.38 20.41 54.03 23.17 23.6255.75 22.14 27.85 52.25 19.6 21.96 52.15 20.67 21.76 54.16 20.88 25.354.52 20.73 28.31 51.09 19.08 22.51 50.94 20.29 22.22 52.17 20.9 24.4555.16 20.59 31.21 51.72 17.63 25.73 51.64 18.69 25.54 53.81 18.65 29.5254.88 19.54 32.37 51.48 17.03 26.87 51.37 18.16 26.64 53.28 17.62 30.155.05 19.3 34.7 51.63 16.0 29.57 51.57 17.06 29.38 53.78 16.91 33.5655.34 17.51 35.86 51.99 15.4 30.58 51.86 16.65 30.29 53.54 15.68 33.3956.76 16.45 35.73 53.56 13.47 31.23 53.48 14.6 30.99 55.52 13.4 34.957.25 15.24 37.58 54.11 12.34 33.31 54.02 13.52 33.04 56.14 11.81 37.1456.51 13.68 42.09 53.31 11.73 37.48 53.19 13.03 37.17 54.73 11.24 40.1757.29 12.93 42.99 54.11 11.31 38.18 53.98 12.64 37.87 55.87 9.36 41.357.56 9.7 44.47 54.66 8.13 40.38 54.53 9.46 40.06 56.7 4.56 43.9957.59 8.27 45.34 54.77 7.03 41.34 54.64 8.37 41.02 56.81 2.77 44.8858.33 6.76 45.62 55.77 3.72 42.56 55.74 4.76 42.38 58.91 -1.17 48.1958.85 4.26 42.99 56.57 1.51 40.19 56.58 2.43 40.08 59.89 -3.85 46.0758.62 1.73 41.34 56.59 -0.39 38.91 56.59 0.54 38.79 59.88 -6.4 44.6957.42 0.07 39.54 55.64 -2.3 37.74 55.66 -1.47 37.64 58.71 -7.68 43.2658.29 -0.74 40.26 56.64 -4.47 39.33 56.71 -3.78 39.26 59.33 -8.03 44.558.26 -2.93 33.07 57.08 -6.7 32.97 57.16 -6.15 32.93 59.15 -8.59 37.1757.99 -3.9 31.16 57.16 -10.07 32.7 57.29 -9.69 32.65 58.12 -7.76 35.4158.39 -4.92 28.91 57.66 -10.08 30.12 57.79 -9.73 30.11 58.8 -8.81 32.9658.27 -6.38 27.98 57.75 -11.89 29.82 57.88 -11.58 29.8 58.62 -10.21 32.3258.4 -11.24 26.12 58.11 -13.04 27.32 58.18 -12.63 27.28 60.15 -18.48 31.36
57.32 -12.0 22.64 57.23 -13.37 23.97 57.31 -13.07 23.96 59.11 -18.64 27.6858.86 -10.93 20.79 59.03 -15.81 23.65 59.17 -15.69 23.67 59.36 -13.73 25.2257.83 -13.23 18.77 58.15 -16.14 21.57 58.26 -15.96 21.54 58.48 -16.7 23.1658.11 -14.02 16.9 58.7 -18.3 20.44 58.86 -18.28 20.49 58.78 -15.85 21.5757.17 -17.81 16.47 57.88 -19.06 19.23 58.03 -19.11 19.34 59.41 -23.39 22.4857.96 -17.03 12.9 59 -20.97 17.2 59.18 -21.09 17.29 58.85 -18.19 18
194 ANEXOS
ANEXO4/2OFA2 OFC2 OFD652 OF112
57.06 -18.75 10.42 58.31 -21.79 14.89 58.48 -21.99 14.98 58.04 -19.97 15.4156.31 -21.49 9.88 57.7 -22.94 14.2 57.88 -23.22 14.34 58.14 -24.47 15.8854.86 -22.44 7.36 56.43 -23.28 11.87 56.61 -23.63 12.02 56.67 -24.81 13.1854.68 -22.12 3.1 56.48 -22.73 7.87 56.65 -23.16 8.03 56.32 -22.98 8.454.63 -22.04 1.74 56.57 -23.38 7.11 56.74 -23.76 7.23 55.81 -21.35 6.75
55 -22.62 1.58 56.88 -22.71 6.15 57.09 -23.32 6.39 57.1 -24.18 7.1954.14 -22.51 -1.21 56.22 -23.0 3.95 56.43 -23.66 4.16 55.67 -22.38 3.9154.69 -22.65 -2.7 57.03 -24.88 3.25 57.25 -25.62 3.47 55.81 -21.36 2.0354.63 -24.93 -4.15 57.13 -25.18 1.95 57.31 -25.83 2.11 55.99 -23.54 0.9253.77 -24.79 -5.4 56.27 -24.12 0.62 56.43 -24.71 0.75 55.14 -22.86 -0.3854.6 -25.03 -7.99 57.25 -23.49 -1.82 57.38 -24.1 -1.73 55.95 -23.24 -3.07
53.53 -24.86 -8.65 56.22 -23.36 -2.46 56.36 -24.0 -2.36 54.91 -22.76 -3.7754.47 -25.37 -10.51 57.36 -24.1 -3.93 57.52 -24.84 -3.8 55.81 -22.19 -5.6754.46 -26.75 -12.85 57.58 -24.66 -5.8 57.71 -25.41 -5.72 55.87 -23.99 -7.654.62 -24.25 -12.64 57.52 -22.25 -6.27 57.66 -23.02 -6.16 56.08 -21.59 -7.8654.21 -23.93 -14.17 57.22 -21.99 -7.7 57.36 -22.84 -7.55 55.47 -20.06 -9.8754.74 -24.39 -16.49 57.9 -21.54 -9.76 58.01 -22.38 -9.67 56.05 -20.86 -11.9955.24 -22.02 -17.38 58.26 -18.85 -11.33 58.38 -19.79 -11.19 56.47 -18.21 -13.7654.58 -21.02 -17.65 57.54 -17.94 -11.76 57.65 -18.87 -11.62 55.74 -17.09 -14.2254.98 -20.12 -19.25 57.95 -16.5 -13.55 58.06 -17.51 -13.4 56.12 -15.98 -16.2454.69 -18.58 -19.46 57.55 -14.88 -14.25 57.66 -15.95 -14.06 55.81 -14.76 -16.9655.47 -14.27 -17.04 57.78 -10.9 -13.01 57.86 -11.76 -12.85 56.4 -10.99 -15.2554.84 -13.68 -19.06 57.22 -9.77 -15.08 57.3 -10.71 -14.91 55.74 -10.14 -17.6154.65 -13.7 -20.97 57.13 -8.73 -16.76 57.15 -9.53 -16.69 55.49 -9.46 -19.4355.18 -11.65 -19.82 57.36 -6.41 -16.58 57.39 -7.25 -16.45 56.08 -7.82 -19.0156.3 -9.93 -20.22 58.38 -5.06 -17.01 58.38 -5.77 -16.94 57.01 -6.18 -19.44
55.03 -9.09 -21.28 57.08 -3.55 -18.42 57.08 -4.33 -18.33 55.73 -5.04 -21.0355.06 -7.05 -21.09 56.92 -1.65 -18.65 56.9 -2.37 -18.57 55.63 -3.08 -21.1853.82 -5.14 -20.4 55.47 -0.05 -18.35 55.44 -0.69 -18.29 54.25 -1.39 -20.7754.99 -2.52 -18.49 56.28 1.84 -17.07 56.24 1.31 -17.03 55.24 0.73 -19.1954.59 -0.74 -19.13 55.78 3.61 -18.01 55.72 3.09 -17.98 54.73 2.49 -20.1955.68 0.79 -17.03 56.57 4.72 -16.42 56.52 4.31 -16.4 55.74 3.81 -18.2755.88 2.27 -16.48 56.62 5.7 -16.14 56.56 5.31 -16.12 55.92 4.97 -17.7556.33 3.49 -14.92 56.82 7.02 -15.11 56.76 6.71 -15.09 56.24 6.37 -16.5956.78 5.26 -13.48 57.02 8.35 -14.11 56.95 8.12 -14.09 56.61 7.9 -15.3257.47 6.98 -12.34 57.48 9.62 -13.3 57.41 9.46 -13.3 57.14 9.47 -14.3756.82 8.41 -10.9 56.57 11.31 -12.53 56.5 11.22 -12.51 56.49 11.18 -13.2857.79 9.56 -9.18 57.37 11.41 -10.83 57.29 11.39 -10.84 57.31 11.69 -11.458.09 11.5 -7.77 57.37 13.55 -10.16 57.29 13.59 -10.16 57.6 13.8 -10.3457.27 13.65 -5.5 56.22 15.09 -8.35 56.14 15.27 -8.37 56.62 15.95 -8.1657.95 15.99 -4.11 56.6 17.05 -7.47 56.51 17.31 -7.51 57.17 18.14 -6.9756.81 16.79 -1.87 55.33 16.39 -4.99 55.24 16.75 -5.07 55.81 18.81 -4.457.8 20.25 -1.19 56.04 18.27 -4.6 55.98 18.6 -4.66 57.19 21.43 -2.8
58.19 19.76 0.91 56.3 18.37 -2.67 56.2 18.85 -2.78 57.04 21.43 -1.4957.91 21.81 2.73 55.71 20.04 -1.31 55.61 20.6 -1.44 56.65 23.24 0.2257.33 24.56 4.61 54.88 20.97 0.27 54.82 21.45 0.2 56.75 24.36 3.4557.21 23.75 6.59 54.62 21.33 2.05 54.52 22.0 1.9 55.86 24.7 4.2157.92 26.07 9.19 54.97 23.19 4.11 54.86 23.95 3.94 56.45 26.67 6.7257.21 25.81 10.76 54.23 22.57 5.73 54.14 23.32 5.58 55.85 26.15 8.6457.42 25.62 13.69 54.24 22.94 8.06 54.15 23.72 7.92 56.09 25.09 11.1457.89 24.71 15.04 54.69 22.64 9.16 54.57 23.51 8.99 56.09 25.01 11.4358.05 25.64 17.96 54.65 23.01 11.82 54.53 23.91 11.64 56.2 25.07 14.3857.21 23.96 19.55 53.82 22.31 13.41 53.68 23.33 13.18 54.99 24.38 15.3257.28 24.82 23.03 53.67 22.84 16.63 53.54 23.92 16.41 55.23 25.03 19.357.27 24.33 24.05 53.64 22.72 17.6 53.49 23.89 17.33 54.94 24.96 19.8256.91 24.39 25.07 53.38 20.6 19.64 53.3 21.61 19.43 55.19 23.39 23.1556.14 23.89 26.74 52.51 21.3 20.61 52.4 22.38 20.4 54.23 23.18 23.656.03 21.95 27.45 52.57 19.43 21.61 52.47 20.49 21.41 54.45 20.68 24.9154.48 20.78 28.62 51.03 19.15 22.79 50.88 20.37 22.49 52.11 20.96 24.7455.18 20.6 31.35 51.73 17.66 25.87 51.66 18.72 25.68 53.81 18.69 29.6254.99 19.59 32.56 51.57 17.1 27.04 51.47 18.23 26.8 53.37 17.69 30.2554.85 19.48 35.14 51.4 16.18 29.97 51.34 17.25 29.78 53.55 17.11 33.9755.57 17.37 35.59 52.24 15.29 30.33 52.11 16.53 30.04 53.78 15.5 33.1356.76 16.65 36.28 53.52 13.67 31.73 53.43 14.82 31.48 55.49 13.59 35.457.34 15.35 38.14 54.17 12.42 33.85 54.08 13.61 33.58 56.22 11.86 37.7256.59 13.59 41.72 53.41 11.66 37.12 53.29 12.95 36.81 54.8 11.19 39.76
ANEXOS 195
ANEXO4/3OFA3 OFC3 OFD653 OF113
57.33 13.07 44.14 54.1 11.46 39.26 53.97 12.81 38.95 55.9 9.45 42.4257.56 9.62 44.79 54.66 8.04 40.71 54.53 9.37 40.39 56.72 4.41 44.3557.89 8.08 44.49 55.12 6.84 40.53 54.99 8.16 40.22 57.14 2.59 44.0458.61 6.67 45.52 56.06 3.61 42.48 56.03 4.64 42.3 59.21 -1.28 48.1359.01 4.19 42.93 56.74 1.41 40.15 56.75 2.33 40.04 60.06 -3.91 46.0358.96 1.74 41.47 56.92 -0.38 39.02 56.92 0.55 38.9 60.23 -6.44 44.8457.4 -0.08 39.32 55.64 -2.47 37.57 55.66 -1.65 37.47 58.7 -7.81 43.08
58.31 -0.81 40.01 56.68 -4.53 39.09 56.76 -3.85 39.02 59.36 -8.06 44.2358.1 -3.01 33.32 56.93 -6.84 33.27 57.02 -6.29 33.23 58.99 -8.67 37.47
58.17 -3.82 31.71 57.32 -10.07 33.25 57.45 -9.68 33.2 58.3 -7.74 3658.19 -4.92 28.91 57.47 -10.08 30.13 57.6 -9.74 30.12 58.59 -8.79 32.9658.45 -6.22 28.36 57.9 -11.8 30.2 58.03 -11.47 30.17 58.78 -10.13 32.7658.3 -11.23 25.91 58.02 -13.02 27.1 58.09 -12.61 27.06 60.06 -18.45 31.12
57.19 -12.16 22.57 57.12 -13.52 23.93 57.19 -13.22 23.92 58.99 -18.81 27.6458.64 -11.09 21.3 58.8 -16.08 24.22 58.95 -15.95 24.24 59.15 -13.97 25.8257.95 -13.34 18.72 58.29 -16.23 21.53 58.39 -16.05 21.5 58.62 -16.82 23.1357.99 -13.97 16.95 58.57 -18.28 20.49 58.73 -18.25 20.54 58.65 -15.81 21.6357.18 -17.78 16.49 57.88 -19.05 19.25 58.03 -19.1 19.36 59.42 -23.35 22.558.13 -17.1 12.77 59.18 -21.01 17.08 59.36 -21.14 17.17 59.02 -18.21 17.8456.74 -18.9 10.46 58.01 -21.94 14.95 58.18 -22.14 15.04 57.73 -20.11 15.4456.27 -21.46 9.83 57.66 -22.93 14.16 57.84 -23.22 14.3 58.09 -24.42 15.8355.06 -22.35 7.32 56.62 -23.2 11.82 56.81 -23.55 11.97 56.86 -24.71 13.1354.53 -22.21 4.49 56.19 -22.11 8.67 56.37 -22.57 8.87 56.63 -24.58 10.0854.64 -22.07 1.71 56.59 -23.4 7.09 56.75 -23.79 7.2 55.81 -21.36 6.7155.15 -22.63 1.55 57.04 -22.74 6.13 57.25 -23.36 6.37 57.24 -24.17 7.1453.85 -22.49 -1.06 55.92 -23.04 4.11 56.13 -23.7 4.32 55.36 -22.38 4.0754.56 -22.61 -2.7 56.9 -24.86 3.25 57.12 -25.59 3.47 55.67 -21.31 2.0254.77 -24.91 -4.24 57.27 -25.13 1.86 57.45 -25.78 2.01 56.13 -23.5 0.8153.94 -24.97 -5.55 56.47 -24.28 0.52 56.63 -24.88 0.65 55.31 -22.99 -0.5154.47 -25.21 -7.92 57.14 -23.69 -1.7 57.27 -24.29 -1.61 55.83 -23.4 -2.9454.16 -24.89 -8.72 56.85 -23.4 -2.52 56.99 -24.05 -2.41 55.54 -22.79 -3.8354.09 -25.31 -10.34 56.97 -24.11 -3.77 57.12 -24.84 -3.64 55.41 -22.14 -5.4954.3 -26.9 -12.82 57.43 -24.84 -5.73 57.56 -25.59 -5.65 55.71 -24.14 -7.53
54.59 -24.35 -12.91 57.52 -22.27 -6.51 57.65 -23.05 -6.39 56.05 -21.61 -8.1354.12 -23.9 -14.11 57.12 -22.01 -7.63 57.27 -22.86 -7.48 55.37 -20.04 -9.7954.89 -24.37 -16.58 58.05 -21.5 -9.84 58.16 -22.35 -9.76 56.19 -20.82 -12.155.31 -22.05 -17.38 58.33 -18.9 -11.32 58.45 -19.84 -11.18 56.54 -18.23 -13.7454.42 -21.43 -17.97 57.44 -18.26 -11.97 57.55 -19.21 -11.83 55.6 -17.38 -14.4954.9 -20.16 -19.3 57.89 -16.54 -13.59 57.99 -17.54 -13.43 56.04 -15.99 -16.28
55.08 -18.4 -19.45 57.92 -14.71 -14.28 58.03 -15.77 -14.09 56.19 -14.57 -16.9855.15 -14.3 -16.97 57.46 -10.97 -12.92 57.54 -11.83 -12.76 56.08 -11.03 -15.1755.09 -13.42 -18.77 57.44 -9.61 -14.85 57.51 -10.54 -14.69 55.98 -9.94 -17.3454.69 -13.63 -20.95 57.16 -8.68 -16.75 57.18 -9.47 -16.68 55.53 -9.4 -19.4254.94 -11.6 -19.69 57.11 -6.4 -16.47 57.14 -7.23 -16.34 55.84 -7.8 -18.8756.27 -9.98 -20.38 58.36 -5.06 -17.15 58.36 -5.78 -17.08 56.98 -6.19 -19.5955.4 -9.15 -21.49 57.46 -3.55 -18.61 57.46 -4.34 -18.51 56.1 -5.05 -21.24
54.44 -6.94 -20.53 56.25 -1.74 -18.12 56.24 -2.44 -18.05 54.99 -3.11 -20.5853.81 -5.15 -20.5 55.47 -0.04 -18.44 55.44 -0.68 -18.39 54.25 -1.39 -20.8654.99 -2.5 -18.55 56.28 1.88 -17.13 56.24 1.35 -17.1 55.24 0.76 -19.2654.93 -0.71 -19.36 56.12 3.73 -18.25 56.06 3.21 -18.23 55.06 2.56 -20.4555.51 0.79 -17.07 56.4 4.73 -16.45 56.35 4.31 -16.43 55.56 3.82 -18.3156.05 2.25 -16.47 56.79 5.69 -16.13 56.73 5.3 -16.11 56.09 4.94 -17.7356.35 3.52 -14.91 56.84 7.05 -15.1 56.78 6.74 -15.08 56.25 6.4 -16.5956.99 5.28 -13.61 57.24 8.44 -14.25 57.17 8.2 -14.24 56.81 7.95 -15.4857.53 6.94 -12.33 57.55 9.57 -13.28 57.48 9.41 -13.28 57.21 9.39 -14.3556.75 8.45 -10.78 56.49 11.31 -12.42 56.42 11.22 -12.4 56.4 11.2 -13.1757.63 9.53 -9.18 57.22 11.37 -10.81 57.15 11.35 -10.82 57.16 11.66 -11.3758.26 11.47 -7.65 57.53 13.49 -10.05 57.46 13.54 -10.05 57.77 13.74 -10.256.89 13.71 -5.28 55.82 15.08 -8.14 55.73 15.27 -8.16 56.23 15.97 -7.9257.79 15.93 -4.01 56.44 16.96 -7.36 56.35 17.23 -7.4 57.01 18.06 -6.8556.86 16.82 -1.8 55.37 16.41 -4.92 55.28 16.77 -5.01 55.86 18.83 -4.3257.58 20.34 -1.02 55.8 18.31 -4.45 55.74 18.65 -4.51 56.97 21.48 -2.6258.27 19.87 0.92 56.36 18.51 -2.69 56.26 19.0 -2.81 57.11 21.57 -1.5158.04 21.65 2.61 55.87 19.91 -1.4 55.77 20.46 -1.53 56.79 23.1 0.1156.83 24.43 4.58 54.38 20.85 0.27 54.32 21.33 0.2 56.25 24.22 3.4557.16 23.94 6.65 54.55 21.47 2.09 54.45 22.14 1.93 55.81 24.87 4.2857.85 25.85 9.05 54.92 23.01 4.01 54.82 23.76 3.84 56.39 26.48 6.657.16 25.83 10.74 54.17 22.59 5.71 54.08 23.33 5.56 55.8 26.17 8.6357.32 25.84 13.95 54.11 23.14 8.25 54.01 23.93 8.12 55.98 25.3 11.3857.91 24.67 15.14 54.71 22.63 9.26 54.59 23.5 9.08 56.11 25.01 11.5358.34 25.35 17.77 54.97 22.76 11.7 54.85 23.66 11.52 56.5 24.84 14.22