gioss: prototipo software para la optimización del ... · 1 “open source” o software de...
TRANSCRIPT
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras
de superficies
Trabajo de Investigación Tutelado Doctorado “Lenguajes, Sistemas Informáticos e Ingeniería del Software”
Facultad de Informática de la Universidad Politécnica de Madrid
Alumna: Guadalupe Muñoz Martín Tutor: Vicente Martín Ayuso
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
1. CONTENIDOS
1. CONTENIDOS _____________________________________________________________ 2 2. DESCRIPCIÓN DEL PROBLEMA Y OBJETIVOS__________________________________ 3 3. DIFRACCIÓN DE RAYOS X__________________________________________________ 10 4. OPTIMIZACIÓN NUMÉRICA _________________________________________________ 13
4. 1. ALGORITMOS TRADICIONALES _________________________________________ 14 4.1.1. DETERMINISTAS ____________________________________________________ 14 4.1.2. ENUMERATIVOS_____________________________________________________ 15 4.1.3. NO DETERMINISTAS _________________________________________________ 15
4. 2. ALTERNATIVAS NO TRADICIONALES_____________________________________ 16 4.2.1. REDES NEURONALES ________________________________________________ 16 4.2.2. SISTEMAS INMUNES _________________________________________________ 18 4.2.3. ALGORITMOS GENÉTICOS ____________________________________________ 19
5. VISUALIZACIÓN INTERACTIVA DE LA INFORMACIÓN Y USABILIDAD _____________ 22 6. DESCRIPCIÓN DE LA SOLUCIÓN PROPUESTA ________________________________ 24 7. EXPERIMENTOS __________________________________________________________ 33
7. 1. RESULTADOS PARA 2 PARÁMETROS ____________________________________ 35 7. 2. RESULTADOS PARA 6 PARÁMETROS ____________________________________ 37 7. 3. COMPARACIÓN DE RESULTADOS _______________________________________ 39 7. 4. INTERFAZ DE USUARIO ________________________________________________ 40
8. CONCLUSIONES __________________________________________________________ 41 9. TRABAJOS FUTUROS _____________________________________________________ 42 10. BIBLIOGRAFÍA ___________________________________________________________ 43
Guadalupe Muñoz Martín 2 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
2. DESCRIPCIÓN DEL PROBLEMA Y OBJETIVOS
Una propiedad importante de la mayoría de los sólidos es su estructura cristalina, que está
caracterizada microscópicamente por la agrupación de iones, átomos o moléculas en bloques que se
repiten de manera periódica en el espacio . Un sólido cristalino puede dividirse en
volumen y superficie (figura 1), siendo ésta última la parte del sólido donde finaliza y que está en
contacto con otro medio o material. La estructura de la superficie no es idéntica a la del volumen, ya
que los átomos de la superficie no están rodeados por la misma cantidad de átomos, y por lo tanto,
de las mismas fuerzas, que los que se encuentran en el volumen. Las características que presentan
las superficies dependiendo de su estructura tendrán gran impacto en el tipo y propiedades de los
dispositivos tecnológicos que puedan construirse a esta escala, que es aquella de la que se ocupa la
nanotecnología, como potenciales transistores moleculares.
[Kittel, 1998]
e
Este trabajo,
Materiales de Madri
Informática de la Un
consiste en la optimi
Dicha optimización s
colaborativa (“Open S
aprovechar los recu
proporcionando una
búsqueda de la soluc
1 “Open Source” o softwar
distribuirlo, estudiarlo y m
puedan aprovecharlas, y
determinados en la licenc
deberes a los que se acog
2 Una infraestructura grid
entidades computacionale
dispositivos de almacenam
cálculo disponible sumand
Guadalupe Muñoz
Superfici
V
d
i
z
e
i
i
e
e
ia
e
s
o
olumen
Figura 1. Estructura cristal FCC (111) ideal
que supone la colaboración entre investigadores del Instituto de Ciencia de
del Consejo Superior de Investigaciones Científicas y de la Facultad de
versidad Politécnica de Madrid, pretende resolver un problema complejo, que
ación del proceso de la determinación de la estructura atómica de superficies.
realizará desde un punto de vista general, creando una plataforma abierta y
ource”1) estable y extensible implementada sobre una infraestructura grid2 para
rsos computacionales disponibles. Y también a un nivel más específico,
nterfaz de usuario con alto grado de usabilidad y un algoritmo numérico de
ón óptimo.
de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo, copiarlo,
jorarlo. El usuario también puede redistribuir sus modificaciones de forma que otras personas
a su vez, modificarlas y distribuirlas. Los términos de uso de este tipo de programas vienen
, de la que existen varios tipos, bajo la que se distribuye, y especifica el conjunto de derechos y
n tanto los desarrolladores del programa como sus usuarios.
es aquella que permite el acceso y procesamiento concurrente de un programa entre varias
independientes. Puede verse como un conjunto heterogéneo de redes avanzadas, ordenadores,
iento, de visualización e instrumentos científicos, que permite gestionar y distribuir la potencia de
la de todos los ordenadores conectados.
Martín 3 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
La determinación de la estructura de la superficie es importante porque es ésta la que
establece las propiedades electrónicas y vibracionales , y por tanto, la
forma en que interactuará con otros medios. Un ejemplo de la aplicación práctica del estudio de la
estructura de superficies es el caso de las monocapas orgánicas auto-organizadas sobre superficies
sólidas bien definidas, como el caso de las moléculas llamadas tioles (Tiol = Cabeza (HS) + Cadena
hidrocarbonada (CH2)+ Grupo terminal (X): HS(CH2)nX) adsorbidas sobre una superficie de oro, como
muestra la figura 2, donde dada una misma simetría para la disposición de los tioles, se presentan
dos posibilidades para los puntos de adsorción de las cabezas de las cadenas: (b) entre tres átomos
de oro, y (c) sobre un átomo de oro, siendo las propiedades eléctricas y mecánicas de la capa
diferentes para cada uno de los casos. Estas monocapas pueden emplearse en biotecnología,
microanálisis, nano- y micro- fabricación como es el caso de transistores moleculares. Sus
propiedades tecnológicas dependen de dónde se coloquen las moléculas con respecto a la superficie,
y por lo tanto, encontrar las coordenadas de estas moléculas respecto al substrato nos ayudará a
predecir las propiedades de las capas.
[Woodruff y Delchar, 1986]
Vista 2D lateral
Vista 2D superior
(b) Cabeza del tiol sobre 1 átomo de Au
(a)
(c) Cabeza del tiol entre 3 átomos de Au
z
y
z
x y
x
Figura 2. Tioles sobre oro
Determinar la estructura de la superficie significa establecer la posición y forma de la celda
unidad que define esa estructura, así como la base de átomos o moléculas que la configuran. Se
llama celda unidad a cada uno de los bloques que se repiten de manera periódica en el cristal. El
volumen de un cristal tiene una celda unidad que lo define, y que es relativamente fácil de estudiar,
pero la superficie puede tener otra celda unidad distinta, que es más difícil de determinar ya que al
ser el volumen mayor que la superficie, enmascara las medidas que se puedan realizar sobre la
superficie.
Guadalupe Muñoz Martín 4 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
Experimentalmente, para determinar la estructura atómica del volumen se utiliza la técnica de
difracción de rayos X, mientras que para la superficie existen una variedad de técnicas, como
“Surface X-Ray Diffraction” (SXRD), “Low Energy Electron Diffraction” (LEED), “Surface Extended X-
ray Absorption Fine Structure” (SEXAFS), ó “X-ray Absorption Near-Edge structure Spectroscopy”
(XANES), por citar las más importantes.
En el caso de SXRD, que es la técnica elegida como comienzo para este trabajo, se hacen
incidir rayos X (cuya longitud de onda es adecuada (~10-9 m) para “ver” átomos) en un sincrotrón (la
radiación de rayos X es más intensa), con ángulos de incidencia suficientemente pequeños como
para que no penetren en el volumen, de forma que los electrones de los átomos de la superficie sobre
los que inciden los difractan de manera elástica. Al haber muchos haces difractados, algunos se
anularán entre sí, mientras que otros se sumarán. Las condiciones de difracción vienen dadas por la
ley de Bragg, de forma que la intensidad de los haces que cumplan estas condiciones será recogida
en un detector. A partir de esa intensidad medida, habrá de determinarse la posición de los átomos
que forman parte de la celda unidad de la estructura de superficie . [Robinson y Tweet, 1992]
Para cualquier técnica utilizada, los datos que se obtienen no son suficientes para determinar,
de manera directa, la estructura que le corresponde a la superficie, lo que hace que el espacio de
búsqueda sea muy grande, con muchos mínimos locales cercanos a la solución real. Por ejemplo, en
el caso de SXRD, la intensidad obtenida nos permite calcular el módulo de un número complejo,
llamado factor de estructura, que es realmente a partir del que podemos deducir las coordenadas de
los átomos de la celda unidad (Imedida ∝ |F2|; F = |F|eiθ). Pero no podemos medir la fase de dicho
número, por lo que existirán muchas posibilidades para el factor de estructura total que se
corresponda con un módulo concreto [Sayre, 2002].
Por ese motivo, una vez obtenidos los datos experimentales, independientemente de la
técnica utilizada, los científicos han de realizar una serie de pasos para deducir la estructura atómica
de superficies que se resume en la figura 3 donde se han utilizado distintos colores para indicar la
relación entre los distintos pasos. El proceso que se muestra en esta figura resulta sumamente
tedioso y requiere la participación de personal altamente cualificado que pueda introducir sus
conocimientos haciendo suposiciones correctas sobre el modelo estructural adecuado. Esto acerca
los puntos de partida para que el algoritmo numérico sea capaz de encontrar el mínimo global.
Mejorar el paso de optimización numérica de modo que sea menos restrictivo respecto a los puntos
de entrada facilitará mucho el proceso, de modo que en este trabajo nos centraremos en la mejora de
estos algoritmos, tanto desde el punto de vista del algoritmo en sí, como de su implementación
eficiente en un cluster o un grid. A la vez, se irá mejorando la interfaz para lograr que el proceso
completa sea lo más eficiente posible.
Guadalupe Muñoz Martín 5 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
Ciclo de optimización
El modelo es bueno
Cambiar el modelo
mediante optimización
numérica
Sí
No
¿Se parecen? (medido por un
factor de calidad)
CompararCalcular datos modelo teórico
Realizar
experimento
Suponer un modelo
estructural
Datos experimentales
Figura 3. Proceso de obtención de la estructura atómica de superficies a partir de los datos
experimentales
El cambio de modelo mediante optimización numérica tiene una complejidad que aumenta a
medida que aumenta el número de parámetros a considerar. En este caso, hay que considerar dos
tipos de parámetros, los estructurales (se llaman así porque representan la estructura geométrica),
que son las coordenadas (x,y,z si utilizamos representación cartesiana) de los átomos de la celda
unidad, y los no estructurales, como el porcentaje de rugosidad (irregularidades), de ocupación de la
celda unidad ó el factor de Debye-Waller, que da la vibración de los átomos debida a la temperatura.
Como ejemplo de la complejidad del problema, tenemos el caso de la adsorción de Li sobre
Ni(001). [Jiang et al., 1997] obtuvieron una serie de datos experimentales mediante la técnica de
LEED, y después de unos cálculos iniciales redujeron el espacio de búsqueda a 45 modelos
bidimensionales que se presentan en la tabla 1 (se visualiza desde arriba el plano xy), donde los
círculos verdes claros y oscuros representan átomos de Ni, y los amarillos y naranjas, átomos de Li.
Nótese que para llegar al punto de reducción a 45 modelos, el investigador ya ha tenido que introducir
una cantidad considerable de conocimiento en el proceso representado en la figura 3.
Guadalupe Muñoz Martín 6 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18
19 20 21 22 23 24 25 26 27
28 29 30 31 32 33 34 35 36
Vista 2D superior
37 38 39 40 41 42 43 44 45
z
y
x
Tabla 1. Modelos para la superficie c(5√2x√2)R45º formada en Ni(001) son adsorción de Li
Para encontrar el modelo que se corresponde con los datos experimentales, hay que añadir a
cada uno de estos modelos 2D (plano xy) las posibles posiciones en el eje z de cada uno de los
átomos de la celda unidad. La tabla 2 muestra (vista lateral) dos posibles celdas unidad para el
modelo 1 de la tabla 1.
Vista 2D superior
Vista 2D lateral
Vista 3D
Celda unidad 1
Celda unidad 2
x
z
y
x
z
y y
z
x
Tabla 2. Posibles celdas unidad para el modelo 1 de la tabla 1.
Guadalupe Muñoz Martín 7 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
Al ser el valor de las coordenadas un número real, en principio habrá infinitas posibilidades
para cada variación de las coordenadas x, y, z (respetando las restricciones físicas de que un átomo
no invada a otro átomo y de que la distancia entre capas no sea tan grande como para que no exista
una ligadura entre ellas). Para poder dar una estimación sobre el número de posibilidades para este
caso, hagamos una simplificación y supongamos que las coordenadas sólo pueden variar en
intervalos de 0.001 Å, siendo el valor máximo de variación, en valor absoluto: ∆coordenadainicial = 1.5
Å , tendríamos 1500 posiciones posibles para cada coordenada, es decir, 3 (coordenadas)*1500 =
4500 posiciones para cada átomo. Dado que cada variación es independiente de las demás,
tendremos, para la primera celda unidad, con 16 átomos en la primera capa, y 25 en la segunda y
tercera respectivamente, un total de 16*25*25*4500=45*106 posibles sub-modelos. Mientras que para
la segunda celda unidad, los átomos de las tres capas son 16, 25 y 16 respectivamente, por lo que
habrá 16*25*16*4500=28.8*106 sub-modelos posibles. En total, 73.8*106 posibilidades para el primer
modelo de la tabla 1. Si seguimos simplificando y consideramos esas mismas posibilidades para cada
uno de los 45 modelos iniciales, tendríamos del orden de 3.3*109 modelos posibles a evaluar. Si
intentáramos usar la fuerza bruta y evaluar cada uno de estos modelos, tendríamos que utilizar,
suponiendo que cada modelo se evalúa en 0.1 segundos, un total de 3820 días aproximadamente, es
decir, unos 10 años. Los métodos que se utilizan actualmente, que aplican algoritmos de búsqueda
tradicionales, reducen este tiempo a unos meses, a costa de una alta participación del usuario,
guiando el algoritmo mediante múltiples y tediosas sesiones de trabajo. Por eso, es necesaria la
mejora de estos métodos, para automatizar en lo posible la búsqueda de la solución y haciendo que
la interactividad del usuario sea más fácil y cómoda para éste.
Los criterios que se utilizan para determinar la bondad de la solución obtenida comparada con
los resultados experimentales, esto es, la función objetivo, pueden ser muy variados, y son distintos
según la técnica experimental usada. En el caso de SXRD se utiliza el llamado chi cuadrado (χ2)
que da una medida del error que se comete entre los datos experimentales y los
calculados teóricamente. Mediante la optimización numérica se pretende minimizar ese factor, ya que
su valor mínimo dará una concordancia completa entre los datos experimentales y el modelo teórico
propuesto. Los únicos programas existentes en la actualidad para ayudar en la resolución de este
problema utilizan variantes de algoritmos clásicos de máximo descenso y de calentamiento simulado
que presentan problemas. El primer tipo suele quedarse atrapado en mínimos locales, si la superficie
es rugosa se queda en el mínimo local más próximo, exigiendo continuamente la reiniciación del
proceso de la figura 3 con la introducción de una nueva heurística por parte del usuario. Mientras que
el calentamiento simulado encuentra, en teoría, el mínimo global, pero sólo si se ajustan ciertos
parámetros, por debajo de los cuales el algoritmo puede quedarse en mínimos locales, y por encima
de ellos, puede llegar a no converger nunca. El rango óptimo puede llegar a ser tan estrecho y difícil
de encontrar como para hacer al algoritmo inútil en la práctica. Desafortunadamente, en el caso que
nos ocupa, esta es muchas veces la situación.
[Vlieg et al., 1989]
Guadalupe Muñoz Martín 8 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
Por último se han observado dos problemas respecto a las aplicaciones que actualmente se
utilizan para llevar a cabo estos cálculos para superficies. El primero es que cada una de las técnicas
existentes utiliza programas distintos, la mayor parte hechos para resolver necesidades muy
concretas del equipo de investigación que lo realiza. Esto obliga a que si se utilizan distintas técnicas,
haya que aprender a utilizar cada uno de esos programas. El segundo problema es que las interfaces
de dichos programas están bastante alejadas de las normas mínimas de usabilidad, dificultando su
manejo y aprendizaje, tema especialmente importante en este caso donde no sólo es complejo el
cálculo numérico de la estructura, sino de su visualización. Como ejemplo, se muestra (figura 4) la
interfaz del programa “ROD” utilizado para SXRD [Vlieg, 2000]
Figura 4. Interfaz de ROD
Por lo tanto, el objetivo de este trabajo es la implementación de un prototipo que sirva como
estudio de la viabilidad de la creación de una plataforma Open Source implementada sobre una
infraestructura grid que pueda gestionar varias técnicas experimentales y distintos algoritmos de
búsqueda, para la optimización del proceso de determinación de la estructura atómica de superficies.
Dicho prototipo implementará el proceso de la figura 3 para el caso de la técnica experimental SXRD
por ser la más fiable con respecto a los datos experimentales, y utilizará un tipo de algoritmo para la
búsqueda de la solución que nunca ha sido utilizado antes para esta técnica, un algoritmo genético,
con la esperanza de que evite los problemas de los algoritmos utilizados actualmente. Además, el
diseño e implementación de la interfaz de este prototipo tendrá en cuenta la usabilidad para mejorar
la interacción con el usuario.
Guadalupe Muñoz Martín 9 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
3. DIFRACCIÓN DE RAYOS X
Los rayos X son radiación electromagnética con energías típicas de los fotones en el rango de
100eV-100keV, pero para difracción sólo se utilizan rayos X con longitudes de onda pequeñas
(energía en el rango de 1keV-120keV) ya que de esa manera, la longitud de onda es comparable con
el tamaño de los átomos.
Los rayos X con estas características se producen generalmente en instalaciones de radiación
sincrotrón, donde los rayos X son emitidos por electrones o positrones que viajan a velocidad cercana
a la de la luz en un anillo de almacenamiento.
La interacción de los rayos X con la materia se produce básicamente en los electrones de los
átomos. Cuando los fotones del haz de rayos X impactan con los electrones, algunos de estos
fotones salen en una dirección distinta a la que llevaban al principio (como una bola de billar cuando
choca con otra). Cuando la longitud de onda de estos fotones no cambia (es decir, no han perdido
energía), se dice que ha habido una dispersión elástica (dispersión Thompson), donde sólo se ha
producido un cambio de momento. Este tipo de dispersión es la que se utiliza en la difracción, que se
produce cuando varios haces dispersados por diferentes átomos interfieren, produciendo una
distribución de intensidad que estará modulada por esta interacción. Si los átomos con los que han
interferido están dispuestos de manera periódica, como ocurre en los cristales, las ondas difractadas
tendrán un patrón de interferencia máxima (picos), donde los haces se han sumado (en el resto se
han anulado), que tendrá la misma simetría que la distribución de átomos. De esta forma, midiendo el
patrón de difracción se puede, en principio, deducir la distribución de átomos en el cristal [Cullity y
Stock, 2001].
Los picos del patrón de difracción se relacionan con las distancias entre átomos de la siguiente
manera: cuando los átomos están dispuestos de manera periódica, forman distintos conjuntos de
planos en el cristal (figura 5) Cada conjunto de planos se identifica por tres números llamados índices
de Miller y que se denominan h, k y l.
Figura 5. Planos de la red de átomos
Para un grupo dado de planos, con una distancia interplanar d, la condición para que se produzca
difracción (pico) viene dada por la ley de Bragg (figura 6), donde λ es la longitud de onda de los rayos
X, q es el ángulo de incidencia (el mismo que el dispersado), y n es un entero que representa el orden
del pico de difracción. Esta ley se aplica a distribuciones periódicas de densidades de electrones,
como son los átomos, pero también es válida cuando en vez de átomos se tienen moléculas como
proteínas o polímeros.
Guadalupe Muñoz Martín 10 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
q q
d
2*d*seno(q) = λ
Figura 6. Ley de Bragg
Una vez obtenida la intensidad de los picos del patrón de difracción, se pueden deducir las
distribuciones electrónicas, es decir, las posiciones de los átomos (ó moléculas) a través del llamado
factor de estructura: , donde n es el número de átomos en la celda unidad
del cristal,
∑=
⋅∗∗=n
1i
Rri2πi ed)R(f)RF(
rrrr
)R(fir
es el factor atómico, que depende de cada átomo, d es el llamado factor de Debye-
Waller, que introduce la vibración debida a la temperatura, rr
es el vector que indica la posición del
átomo, y Rr
es el vector en la dirección de la variación del momento debida a la dispersión. Este factor
es directamente proporcional a la raíz cuadrada de la intensidad medida en el patrón de difracción.
Una celda unidad, es decir, aquella que se repite de manera periódica en el espacio para producir
una red de átomos se denota mediante tres vectores ( ar
, br
y cr
) que definen su dimensión y posición
en el espacio. Los módulos de dichos vectores, y los ángulos que formados entre sí forman 6
parámetros llamados parámetros de la red (figura 7).
ar
br
cr
α
γ
β
Figura 7. Vectores de la celda unidad
La repetición periódica de los átomos en tres dimensiones no puede ser cualquiera. Bravais descubrió
que sólo existen 14 redes de traslación bidimensionales y homogéneas, compatibles con todas las
características de simetría de cada sistema cristalino, que son llamadas redes de Bravais, y que se
diferencian en los parámetros de red.
Guadalupe Muñoz Martín 11 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
Todo lo expuesto anteriormente se ha venido aplicando para determinar la estructura del
volumen de los cristales, y también puede aplicarse para el caso de superficies, pero teniendo en
cuenta que el ángulo de incidencia de los rayos X debe ser suficientemente pequeño como para que
no penetren demasiado, de forma que la intensidad difractada provenga en lo posible de la superficie,
y que a pesar de esa precaución, parte de la intensidad medida será debida al volumen, por lo que
habrá que tenerla en cuenta cuando se realicen los cálculos de determinación de la estructura de la
superficie [Zangwill, 1988].
Guadalupe Muñoz Martín 12 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
4. OPTIMIZACIÓN NUMÉRICA
La optimización numérica consiste en encontrar e identificar al mejor candidato de entre un
conjunto de alternativas, sin tener que evaluar explícitamente todas éstas. A partir del valor de una
función, llamada función objetivo o de mérito, que está diseñada para cuantificar el rendimiento y
medir la calidad de la decisión, obtendremos valores para un cierto número de parámetros de la
función, de forma que minimicen o maximicen esa función objetivo, y por lo general, teniendo en
cuenta una serie de restricciones que limitan la elección de esos valores.
El caso concreto de encontrar los valores de los parámetros de una función para que se ajuste a
unos datos experimentales, que es uno de los objetivos de este trabajo, es un caso de optimización
sobre una función objetivo que mide el ajuste global a partir de las diferencias entre los valores
teóricos y los experimentales de puntos individuales pasados con su error . La
función de mérito que habitualmente se utiliza, aunque pueden utilizarse otras, es la llamada chi-
cuadrado (fórmula 1).
[Press et al., 1988]
σ−
−=χ ∑
=
n
i i
mii ))a,...a;x(yy
()mn
(1
212 1
• yi ≡ valor experimental i
• σi ≡ error experimental valor i
• y(x i;a1,...am) ≡ valor teórico i
• a1,...am ≡ parámetros independientes de y
• n ≡ nº de datos experimentales
• m ≡ nº de parámetros independientes de la función y
Fórmula 1. Definición de chi-cuadrado
Los extremos (máximos ó mínimos) de una función pueden ser locales o globales. Se dice que un
extremo es global cuando de manera absoluta es el mayor (máximo), o el menor (mínimo), de entre
todos los posibles, y local si lo es de manera relativa, es decir, en una zona determinada de la
función. La figura 8 muestra una representación de la función , que sólo tiene un
máximo, y de la función que tiene varios mínimos y máximos.
)yx(ez22+−=
)yx(e)yx(z2233 +−+=
y
x
y
x
z z
Figura 8. Funciones y )yx(ez22+−= )yx(e)yx(z
2233 +−+=
Guadalupe Muñoz Martín 13 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
4. 1. ALGORITMOS TRADICIONALES
Para llevar a cabo la optimización, se han venido utilizando una serie de algoritmos, llamados
tradicionales o clásicos, que pueden dividirse, dependiendo del paradigma que utilicen, en
deterministas, enumerativos y no deterministas.
4.1.1. DETERMINISTAS
Los algoritmos numéricos o deterministas, utilizan un conjunto de condiciones, necesarias y
suficientes, que han de cumplir las soluciones. Y sólo pueden aplicarse si la función objetivo cumple
unas determinadas restricciones. Para verlo mejor, necesitamos una serie de definiciones: dada la
función f(x), donde xT= [x1, x2, ..., xn], definimos el gradiente y el hessiano (fórmula 2)
respectivamente.
∂∂
∂∂∂∂
==∇
n
2
1
xf..xf
xf
)x(g)x(f ,
∂
∂∂∂
∂
∂∂∂
∂
∂
==∇
n2
2
1n
2
n1
2
12
2
2
xf...
xxf
.....
.....
.....xxf...
xf
)x(H)x(f
Fórmula 2. Gradiente y hessiano de una función.
Los algoritmos numéricos más utilizados son los directos, que requieren que la función sea
cuadrática, que el gradiente sea continuo y que la matriz del hessiano sea simétrica y definida
positiva, en cuyo caso, la función puede expresarse como: Hxx21xg)x(f TT ++α= .
De este tipo, los algoritmos que se quedan en una aproximación de primer orden:
, se dice que son de tipo gradiente, buscan extremos moviéndose por el espacio de
soluciones guiados por el gradiente para moverse al siguiente punto. A este tipo pertenecen el
algoritmo de “máximo descenso/ascenso” , que toma la dirección de máximo
descenso o ascenso (mínimo o máximo) del gradiente en cada búsqueda del extremo. Y el algoritmo
del gradiente conjugado , que es una variación del anterior, que tiene en cuenta la
historia de las direcciones de los gradientes en su búsqueda. La figura 9 muestra tres posibles
movimientos dependiendo desde donde se comience la búsqueda. La que comienza en el punto rojo
nos lleva a un mínimo local, mientras que cualquiera de los verdes lleva al mínimo global. El conjunto
de puntos que convergen a un extremo dado, ya sea éste local o global, recibe el nombre de cuenca
de atracción de dicho extremo.
xg)x(f T+α=
[Fliege y Fux, 2000]
[Broyden, 1996]
Guadalupe Muñoz Martín 14 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
Mínimo global
Mínimo local
Figura 9. Movimientos de búsqueda siguiendo la dirección del gradiente
Los algoritmos más conocidos que utilizan también el segundo grado, es decir, el hessiano, y
por tanto las segundas derivadas, son el método de Newton, y el de Levenberg-Marquardt y , que es una variación del de Newton. Se llaman métodos de
“Quasi-Newton” a aquellos que utilizan el primer orden, pero construyen un hessiano aproximado a
partir de los valores de los gradientes de las iteraciones anteriores. De este tipo son el método de
Davidon–Fletcher–Powell (DFP) , y el método de Broyden–Fletcher–Goldfarb–Shanno (BFGS) .
[Levenberg, 1944] [Marquardt, 1963]
[Mannino y Sassano, 2003]
[Fletcher y Powell, 1963]
[Broyden, 1970]
[Elster y
Neumaier, 1995]
[Glover y Laguna, 1997]
Las desventajas de este tipo de algoritmos son principalmente dos. Por un lado, las funciones
sobre las cuales pueden aplicarse son muy restringidas, y por otro, caen en extremos locales con
facilidad. Además, computacionalmente, el cálculo de derivada está mal condicionado.
4.1.2. ENUMERATIVOS
Los métodos enumerativos (también llamados de grid
porque proponen una “rejilla” con las posibles soluciones) van proponiendo
soluciones sin ningún criterio adicional, como el de “fuerza bruta”. Son computacionalmente
costosos, sobre todo cuando el espacio de soluciones es muy grande.
4.1.3. NO DETERMINISTAS
Este tipo de algoritmos también se llaman aleatorios, probabilísticos o heurísticos.
Cronológicamente aparecieron después que los deterministas, por lo que aunque tradicionales, son
más modernos.
Proponen una solución aleatoria dentro del espacio de soluciones, que es evaluada, de forma
que si no es la que se busca (extremo de la función objetivo), eligen otra solución posible. La forma
de elegir la siguiente solución es lo que diferencia a los diferentes algoritmos de este tipo. Los
algoritmos que utilizan algún tipo de criterio para restringir la zona del espacio de soluciones donde se
busca ésta, se llaman de “búsqueda guiada”, y son principalmente la búsqueda tabú y el
calentamiento simulado. La búsqueda tabú clasifica algunos movimientos
Guadalupe Muñoz Martín 15 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
en el espacio de búsqueda y los introduce dentro de una lista tabú, de forma que los movimientos que
se encuentran dentro de esta lista no estarán permitidos. El calentamiento simulado , controla las soluciones aceptando movimientos que empeoran de acuerdo a una
probabilidad comparada con el valor de un número generado aleatoriamente. Esto implica que todos
los movimientos que mejoran la búsqueda son aceptados y algunos que no la mejoran también serán
aceptados. La probabilidad de aceptar movimientos que empeoran la función objetivo disminuye en la
medida que aumenta el número de iteraciones. Se aceptan movimientos que empeoran la función
objetivo con el fin de evitar los mínimos locales en los que caen los algoritmos deterministas.
[Kirkpatrick et
al., 1983]
Entre los algoritmos recientes, uno de los que ha cosechado más éxitos en la determinación
de estructuras compuestas por átomos es del tipo “salto de cuenca de atracción”. Estos algoritmos
usan una transformación que asigna el mismo valor de una función de mérito a todos los puntos
pertenecientes a la misma cuenca de atracción. Un método de Montecarlo (búsqueda aleatoria no
guiada) es usado para saltar entre distintas cuencas y un algoritmo de minimización local dentro de
cada una de ellas . [Wales y Scheraga, 1999]
4. 2. ALTERNATIVAS NO TRADICIONALES
Los más importantes son los llamados algoritmos bio-inspirados, que son algoritmos del tipo
no determinista o heurístico, con búsqueda guiada. Su nombre es debido a que toman la naturaleza
como ejemplo para guiar la búsqueda. De estos, los más utilizados son las redes de neuronas, los
sistemas inmunes y los algoritmos genéticos.
4.2.1. REDES NEURONALES
Están basadas en el sistema neuronal biológico, y formadas por un conjunto de unidades de
procesamiento conectadas entre sí, que por analogía con el cerebro humano, se denominan
neuronas. Cada neurona recibe muchas señales de entrada y envía una única señal de salida, como
ocurre en las neuronas reales, y se organizan en forma de capas, unidas entre sí. Se caracterizan
tres tipos de neuronas: de entrada, de salidas y ocultas. Las neuronas de entrada reciben señales
desde el entorno, las neuronas de salida llevan la señal fuera del sistema, y las ocultas son aquellas
cuyas entradas y salidas se encuentran dentro del sistema, sin contacto con el exterior (figura 10).
aCapa de entrada
Capa intermedi
Capa de salida
Figura 10. Ejemplo de capas de neuronas en una red neuronal
Guadalupe Muñoz Martín 16 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
Cada neurona sigue un modelo, propuesto por McCulloch y Pitts en 1943
, donde cada una de ellas consta de unas conexiones de entrada, una función de red (de
propagación), encargada de computar la entrada total combinada de todas las conexiones, un núcleo
central de proceso, encargado de aplicar la función de activación, y la salida, por dónde se transmite
el valor de activación a otras neuronas (figura 11).
[McCulloch y Pitts,
1943]
[Rosenblatt, 1958]
[Minsky y Papert, 1969]
[Rumelhart et al., 1986]
[Kohonen y Oja, 1976]
Entradas Conexiones
∑
w2
w1
.
. wn
Función de red
Función de activación
x1
x2 Salida
xn Figura 11. Neurona artificial
Esta estructura de las redes de neuronas permite que aprendan, es decir, modifiquen su
comportamiento inducidas por la interacción con el entorno y como resultado de experiencias
. En las redes neuronales artificiales, el conocimiento se encuentra representado en los pesos
de las conexiones existentes entre las neuronas. El proceso de aprendizaje implica cierto número de
cambios en estas conexiones. Se aprende modificando los valores de los pesos de la red. Existen
distintos modelos de red neuronal, con su propia técnica de aprendizaje. Por ejemplo, en 1958, Frank
Rosenblatt presentó el perceptrón , una red neuronal con aprendizaje supervisado
cuya regla de aprendizaje era una modificación de la propuesta por Hebb. Se crearon grandes
expectativas sobre sus aplicaciones, que posteriormente se tornaron en gran decepción cuando en
1969 Minsky y Papert demostraron las grandes limitaciones de esta red. En
los años 60, Bernard Widrow y Marcian Hoff propusieron otros dos modelos,
también supervisados, basados en el perceptrón de Rosenblatt denominados Adaline y Madaline La
era moderna de las redes neuronales artificiales surge con la técnica de aprendizaje de propagación
hacia atrás (backpropagation) : la estructura de las redes anteriores
(Perceptron, Adaline y Madaline) consta de dos capas: una primera capa formada por unidades que
dejan pasar la entrada y que no tienen aprendizaje, y una segunda capa formada por una o varias
neuronas en el caso del Madaline. La contribución de Minsky y Papert fue la de demostrar que una
red del tipo perceptrón no es capaz de aprender todas las posibles combinaciones entre entradas y
salidas. La solución del problema consiste en añadir capas intermedias de neuronas, introduciendo
de esta forma el problema de cómo enseñar a estas capas intermedias. Aquí es donde tiene
importancia el algoritmo de propagación hacia atrás. En éste se compara la salida real con la salida
deseada. La diferencia entre ambas constituye un error que se propaga hacia atrás desde la capa de
salida hasta la de entrada permitiendo así la adaptación de los pesos de las neuronas intermedias.
Aunque también tiene sus limitaciones, por lo que se han desarrollado otros modelos que permiten un
aprendizaje no supervisado como el mapa auto-organizativo de Kohonen , las
[Hebb,
1949]
[Widrow y Hoff, 1960]
Guadalupe Muñoz Martín 17 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
redes de Hopfield o los basados en la Teoría de Resonancia Adaptativa
.
[Hopfield y Tank, 1986]
[Grossberg, 1976]
[Forrest y Hofmeyr, 2000] [Coello y Cruz, 2004]
[Huang, 1999]
La capacidad de aprendizaje de las redes de neuronas es la que les permite por ejemplo,
reconocer patrones, que no es más que una instancia del problema de optimización donde se busca
la minimización de una función de mérito que mide la diferencia entre dos patrones dados.
4.2.2. SISTEMAS INMUNES
Los sistemas inmunes artificiales son sistemas inspirados en el sistema inmune biológico
, , cuyo principal objetivo es proteger del ataque de
organismos externos dañinos, llamados antígenos. Éste es capaz de distinguir entre los componentes
normales del organismo, y los extraños. El sistema inmune se compone básicamente de dos tipos de
elementos, los linfocitos y los anticuerpos. Los anticuerpos eliminan los antígenos, y los linfocitos
producen anticuerpos mediante clonación. Cuando el sistema detecta un antígeno, los anticuerpos
que reconocen mejor ese antígeno proliferan clonándose. Las nuevas células clonadas mutan con
una tasa que depende de lo bien (tasa de mutación baja) o mal (tasa alta) que reconozcan al
antígeno. Cuando la clonación y la mutación terminan, el sistema inmune ha mejorado la afinidad de
los anticuerpos, lo que produce la neutralización y eliminación de los antígenos. Cuando esto sucede,
el sistema inmune vuelve a sus condiciones normales, eliminando las células excedentes, aunque
algunas de ellas permanecen, circulando por el cuerpo a modo de células “con memoria”. Si el
sistema es atacado posteriormente por el mismo tipo de antígeno, estas células se activan,
produciendo una respuesta mejor y más eficiente.
De manera simple, el algoritmo utilizado por estos sistemas en el caso de la optimización está
basado en la siguiente analogía, que se muestra de manera gráfica en la figura 12: la función que ha
de ser optimizada es el antígeno, los anticuerpos son las soluciones, y las células con memoria son
las mejores soluciones a ese problema concreto, determinando la condición de solución a partir de la
afinidad entre los anticuerpos y los antígenos .
Cruce y Mutación
Evaluación y Selección
Estimular/Restringir la Generación de
Anticuerpos
Cálculo de Afinidad
Nueva Generación
Inicializar la Producción de
Antígenos
Entrada de patrones de antígenos
Figura 12. Algoritmo sistema inmune
Guadalupe Muñoz Martín 18 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
4.2.3. ALGORITMOS GENÉTICOS
Los algoritmos genéticos están basados en la teoría de la evolución de Darwin, con la idea de
que la naturaleza evoluciona optimizando, es decir, creando seres cada vez más perfectos. Holland y
Golberg introdujeron esta analogía en la computación y . [Holland, 1975] [Golberg, 1989]
La evolución se produce por medio de una serie de cambios en los individuos, concretamente
en sus genes. Así, en un algoritmo genético, cada individuo de una población se representa mediante
un cromosoma, que es una secuencia de genes. Cada gen constituye una característica importante
del individuo, llamándose alelo a su valor concreto (por ejemplo, un gen puede representar el color
del pelo, de forma que ser rubio es el valor del alelo). Los métodos que utiliza la naturaleza para
producir individuos mejores son básicamente la selección, el cruce y la mutación. La selección
consiste en preservar aquellos individuos que son mejores en una población dada, y puede tenerse
en cuenta a la hora de realizar el cruce, primando la reproducción entre los más aptos, y/o
estableciendo una tasa de elitismo, es decir, de individuos que se perpetúan tal cual. El cruce se
produce cuando dos individuos se reproducen, es decir, generan individuos a partir del intercambio de
sus genes. La mutación es un cambio aleatorio en el valor de alguno de los alelos.
Desde el punto de vista computacional, han de decidirse los genes necesarios, definirse la
codificación de los cromosomas, y cómo se realizan las operaciones de selección, cruce y mutación.
En el caso de la optimización de una función, los genes son cada uno de los parámetros
independientes de la función a optimizar, de forma que cada cromosoma será una solución posible de
la función. Por ejemplo, supongamos que queremos optimizar una función que depende de tres
variables f(x,y,z). En este caso, cada cromosoma tendrá tres genes.
La codificación de los cromosomas puede hacerse de manera binaria, real o incluso
simbólica, dependiendo del problema concreto. Siguiendo con el ejemplo anterior, podemos decidir
codificar cada gen de manera binaria, eligiendo la longitud de los genes de manera que todos los
valores posibles de las variables puedan ser codificados. Así, en el caso de que x, y, z ∈ [0, 15],
podemos representar cada gen con una longitud de 4 (24 = 16 ⇒ 0000....1111)
De esta forma, cada uno de los individuos (cromosoma), tendría un aspecto similar al
mostrado en la figura 13.
0 1 0 1 0 0 0 0 1 1 0 1
x = 5 y = 0 z = 13
Figura 13. Ejemplo de cromosoma en un algoritmo genético
Para poder realizar la selección, debemos definir una función de aptitud, de forma que cada
cromosoma evaluado sobre esta función será clasificado de acuerdo a ésta. En el ejemplo anterior,
supongamos que queremos encontrar la solución a la ecuación 3x2-4y3+z4 = 0. En este caso, la
Guadalupe Muñoz Martín 19 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
función de aptitud será la propia f(x,y,z), de forma que las soluciones más cercanas a 0 serán
mejores, o más aptas, que las más alejadas de este valor.
El cruce consistirá en elegir un punto del cromosoma, y a continuación intercambiar las partes
correspondientes del padre y la madre para producir dos hijos como indica la figura 14.
0 1 0 1 0 0 0 0 1 1 0 1
1 0 0 1 1 0 0 0 0 1 1 1
0 1 0 1 1 0 0 0 0 1 1 1
1 0 0 1 0 0 0 0 1 1 0 1
Figura 14. Cruce de dos cromosomas
La mutación produce un cambio aleatorio en algún gen como ocurre en la figura 15.
0 1 0 1 0 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 0 1 1 1
Figura 15. Mutación de un gen
Un algoritmo genético utilizará estas operaciones para obtener la solución más apta, es decir
aquella que soluciona el problema, o al menos aquella que más se acerca. La figura 16 muestra el
pseudocódigo general de este algoritmo . [Michalewicz, 1992]
Las ve
(gracias a la
mejores soluc
simultánea, mi
pueden distrib
plataforma tipo
Una d
encontrar la zo
Guadalupe
Generar población inicial Evaluar la aptitud de cada individuo Repetir
Generar nueva población: Seleccionar los mejores individuos para que se reproduzcan
Aplicar el operador de cruce Aplicar el operador de mutación
Evaluar la aptitud de cada individuo Hasta que se encuentre la solución
Figura 16. Pseudocódigo algoritmo genético simple
ntajas que presentan los algoritmos genéticos es que escapan de los extremos locales
aleatoriedad de la mutación), que hacen uso de la experiencia previa tomando las
iones, y que permiten evaluar varias soluciones del espacio de búsqueda de manera
nimizando el tiempo de computación. Esto último significa que los algoritmos genéticos
uirse en varios procesadores, siendo muy adecuados para su utilización en una
grid . [Foster y Kesselman, 1999]
esventaja que pueden presentar los algoritmos genéticos es que son buenos para
na donde se encuentra el extremo global, pero tienen mala convergencia a la hora de
Muñoz Martín 20 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
refinar y encontrar el extremo concreto. Para solucionar este problema han surgido una forma de
algoritmos híbridos que conjugan la utilización de un algoritmo genético para realizar una búsqueda
global y encontrar la zona donde se encuentra la solución, y un algoritmo de búsqueda local, que
acelerará la búsqueda en esa zona. Estos algoritmos se llaman híbridos o meméticos
.
[Moscato,
1989]
Guadalupe Muñoz Martín 21 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
5. VISUALIZACIÓN INTERACTIVA DE LA INFORMACIÓN Y USABILIDAD
La visualización interactiva de la información científica, como ocurre en este caso, no es una
tarea fácil ya que por un lado esta información ha de presentarse de una manera adecuada para que
pueda ser interpretada y manipulada correctamente, y por otro, debe ayudar en la resolución del
problema concreto que se está tratando. Todo esto podrá ser llevado a cabo de manera correcta a
través de una buena interfaz de usuario de la aplicación.
Lo buena o lo mala que es una interfaz de usuario puede medirse utilizando una magnitud
definida en el ISO (International Organization for Standardization) estándar 9241, que se llama
usabilidad, y se define como “el grado en que un producto puede ser utilizado por unos usuarios
específicos para conseguir unos objetivos concretos con efectividad, eficiencia y satisfacción en un
contexto de uso determinado”. La efectividad es la precisión y completitud con la que unos usuarios
específicos pueden conseguir unos objetivos concretos en un entorno particular. La eficiencia está
relacionada con los recursos empleados en relación con la precisión y completitud de los objetivos
alcanzados. La satisfacción es la comodidad y aceptabilidad del sistema de trabajo por parte de los
usuarios.
Para conseguir que un sistema tenga la máxima usabilidad posible, se pueden seguir
diversas metodologías, pero como punto de partida, suelen utilizarse la diez reglas heurísticas de
Nielsen , que se presentan en la tabla 3. [Nielsen y Molich, 1990]
1 Visibilidad del estado del sistema
2 Concordancia entre el sistema y el mundo real
3 Control del usuario y libertad
4 Consistencia y utilización de estándares
5 Prevención de errores
6 Primar el reconocimiento frente al recuerdo
7 Flexibilidad y eficiencia de uso
8 Estética y diseño minimalista
9 Ayudar al usuario a reconocer, diagnosticar y recuperarse de errores
10 Proporcionar ayuda y documentación
Tabla 3. Reglas de usabilidad de Nielsen
Guadalupe Muñoz Martín 22 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
Además, es recomendable utilizar metáforas que permitan aproximar el modelo de la
computadora al modelo mental del usuario (figura 17).
Usuario
Diseñador de la IU
Diseño
Consideración
Inferencia
Modelo
Conceptual
Imagen
del Sistema
Modelo Mental
Figura 17. Diseño de interfaz a partir de un modelo conceptual e inferencia del usuario para formar su modelo mental del sistema
Las metáforas ayudan al usuario a formarse un modelo del sistema, transfiriendo
conocimiento previo que ya tienen, al nuevo sistema mediante una comparación directa entre el
nuevo sistema y el que ya conocen [Muñoz, 2000]
[Muñoz et al., 2002]
Diversos sistemas han utilizado con éxito la realidad virtual como metáfora integral para la
interacción del usuario, y en concreto, con respecto a su aspecto visual, la representación 3D de la
información . En este trabajo, se va a utilizar esta metáfora para la visualización
de la estructura de la superficie, realizando una correspondencia directa entre las posiciones de los
átomos de la superficie y su representación gráfica tridimensional.
Guadalupe Muñoz Martín 23 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
6. DESCRIPCIÓN DE LA SOLUCIÓN PROPUESTA
Como ya se explicó en la descripción del problema a resolver, el objetivo de este trabajo es la
implementación de un prototipo que sirva como estudio de la viabilidad de la creación de una
plataforma Open Source implementada sobre una infraestructura grid que pueda gestionar varias
técnicas experimentales y distintos algoritmos de búsqueda, para la optimización del proceso de
determinación de la estructura atómica de superficies. Dicho prototipo implementará el proceso de la
determinación de la estructura de superficies para el caso de la técnica experimental SXRD por ser la
más fiable con respecto a los datos experimentales (aunque es más costosa ya que requiere
radiación sincrotrón), y utilizará un tipo de algoritmo para la búsqueda de la solución que nunca ha
sido utilizado antes para esta técnica, un algoritmo genético, con la esperanza de que evite los
problemas de los algoritmos utilizados actualmente, ya que por un lado tienen menos posibilidades de
caer en extremos locales gracias a la mutación y porque evalúan varias soluciones a la vez, y por lo
tanto, distintas zonas del espacio de soluciones. Y por otro, se pueden implementar de manera
distribuida, paralelizando la evaluación de las distintas soluciones, y por tanto reduciendo el tiempo de
computación.
Con respecto a la optimización, los algoritmos utilizados actualmente para realizar la
búsqueda de la estructura de superficies son del tipo tradicional. Así, para SXRD, se utilizan el
método de Levenberg-Marquardt o el calentamiento simulado [Vlieg, 2000]. Estos algoritmos
presentan varias desventajas. El primero cae fácilmente en extremos locales, y el segundo puede
llegar a consumir tanto tiempo de computación como para ser inútil a efectos prácticos.
Con respecto a la usabilidad y visualización, los programas actuales no presentan una
interfaz gráfica, sino que interactúan con el usuario en modo consola. Esto dificulta la manipulación
de la aplicación en sí puesto que la usabilidad de este tipo de interfaces es mínima, y además, dada
la gran cantidad de parámetros de los que depende la función de mérito los hace difíciles de manejar.
Por ejemplo, en el caso de una celda unidad con 9 átomos, que tienen 3 coordenadas cada uno,
tendremos 27 parámetros estructurales, y también parámetros no estructurales, como el factor de
Debye-Waller, o la rugosidad.
También, y para estar en condiciones de comparar los resultados obtenidos con los
algoritmos que se han estado empleando hasta ahora, se utiliza χ2 como función de mérito, que es la
utilizada en los programas para SXRD, aunque al igual que ocurre con las técnicas, la flexibilidad del
sistema permite la implementación de otro tipo de funciones. Además, la utilización de esta función
objetivo hace adecuado el uso de un algoritmo genético ya que su evaluación es rápida.
Con respecto a la usabilidad, se han tenido en cuenta las reglas de Nielsen, así como la
utilización de una representación gráfica 3D para los parámetros de la estructura de la superficie.
Las decisiones tomadas para esta primera solución han producido la realización del prototipo
GIOSS (Global Interactive Optimization for Surface Structure), que se presenta a continuación.
Guadalupe Muñoz Martín 24 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
Con respecto al algoritmo genético, han de definirse una serie de características como son la
función de aptitud, la codificación elegida para los cromosomas, el número de genes por cromosoma,
el método de selección, y los operadores de cruce y de mutación. La tabla 4 muestra las elecciones
que se han hecho para GIOSS.
Característica GIOSS Función de aptitud χ2 (χ2= 0 indica aptitud máxima)
Codificación cromosomas Real
Nº de individuos/población Fija en cada ejecución (variable por el usuario)
Genes Estructurales (coordenadas átomos celda unidad de superficie) + No estructurales (factor Debye-Waller, rugosidad)
Nº de genes Los que sean susceptibles de movimiento (elegidos por el usuario) Rango de cambio de
los genes Limitado por la distancia atómica + rango propuesto por el usuario
Método de selección Ruleta (ampliable a otros métodos) + Tasa de elitismo Elitismo Dependiente de una tasa % de la población (elegida por el usuario)
Operador de cruce Dependiente de una tasa % de la población (elegida por el usuario). con cruce simple (1 sólo punto) aleatorio
Operador de mutación Dependiente de una tasa % de la población (elegida por el usuario)
Tabla 4. Características del algoritmo genético de GIOSS.
A continuación se muestra un ejemplo de cruce y mutación para la codificación real elegida
para GIOSS. En este caso, cada gen es una coordenada o un parámetro no estructural. Supongamos
que en un caso simple, no optimizamos los parámetros estructurales y sólo tenemos en cuenta las
coordenadas x e y de dos átomos. Tendríamos por tanto cuatro genes en cada cromosoma
(individuo) de la población. En el modelo inicial se establecen los rangos de variación para cada
parámetro. Supongamos en este caso que x1 œ (-0.2, 0.2), y1 œ (-0.2, 0.2), x2 œ (1.0, 1.4), y2 œ (-0.8,
1.2). Entonces, un cromosoma podría tener el aspecto que muestra la figura 18. El cruce entre dos
genes se produciría como indica la figura 19. Cuando un gen muta, significa que toma un valor
aleatorio en el rango de valores permitido (figura 20).
-0.19873 0.15432 1.02734 0.78653
x1 y1 x2 y2
Figura 18. Cromosoma de 4 genes con codificación real
Guadalupe Muñoz Martín 25 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
-0.19873 0.15432 1.02734 0.78653 x1 y1 x2 y2
-0.19873 -0.03479 1.37621 1.0023 x1 y1 x2 y2
0.12986 -0.03479 1.37621 1.0023 x1 y1 x2 y2
0.12986 0.15432 1.02734 0.78653 x1 y1 x2 y2
Figura 19. Cruce de cromosomas de 4 genes con codificación real
-0.19873 0.15432 1.02734 0.78653 x1 y1 x2 y2
0.14532 0.15432 1.02734 0.78653 x1 y1 x2 y2
Figura 20. Mutación de cromosoma de 4 genes con codificación real
Hay que señalar que, este momento del desarrollo, algunas decisiones son excesivamente
simplistas y susceptibles de ser refinadas posteriormente. Esto es una elección consciente, ya que el
primer paso es el estudio general de la eficacia del algoritmo en este problema, para lo que resulta útil
reducir al mínimo posible la complejidad del algoritmo.
La solución que presenta este trabajo propone una arquitectura basada en el proceso de
optimización de la figura 3, dividida básicamente en tres módulos o subsistemas, cada uno
responsable de una función distinta, que a su vez constarán de distintas partes. La interfaz de usuario
será la encargada de recibir las entradas por parte del usuario, y de mostrarle los resultados. El
módulo de visualización, que en este caso genera un modelo 3D de los parámetros estructurales. Y el
módulo de optimización realizará la búsqueda de la estructura de la superficie con las entradas
proporcionadas por parte del usuario. Este módulo de optimización variará dependiendo del algoritmo
elegido para realizar dicha optimización. La figura 21 muestra la arquitectura de GIOSS, donde se
han utilizado los mismos colores que en la figura 3 para relacionar los módulos del proceso con los de
la arquitectura, así como una vista del módulo de optimización para el algoritmo genético.
Guadalupe Muñoz Martín 26 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
21χ
2nχ
2iχ
21χ
Datos experimentales
Modelo solución
Modelo inicial
Parámetros algoritmo
Interfaz de usuario
Módulo generador de la visualización
de la solución
Módulo de optimización
Módulo de optimización usando Algoritmo Genético
No< criterio de fin
Generación nueva población
Mutación
Selección de individuos y Cruce
Evaluación de la aptitud y ordenación
Cálculo teórico del modelo Ci
Comparación modelo teórico y experimento
...
C1... Cn
Generación población inicial
Sí
Figura 21. Diseño arquitectura GIOSS y vista módulo de optimización
GIOSS ha sido implementado utilizando el lenguaje de programación Java porque ofrece
todas las características necesarias para la realización de los objetivos propuestos. Por un lado, su
independencia de la plataforma permite la posibilidad de la distribución de GIOSS en un entorno tipo
grid. Por otro, el paquete Java Swing proporciona todas las utilidades necesarias para crear interfaces
gráficas interactivas y completamente usables. Por último, el paquete Java3D permite la generación
de los modelos 3D.
A continuación se expone la interfaz gráfica de GIOSS. La figura 22 muestra la pantalla
principal, que aparece dividida en dos paneles. En el superior está dedicado a los parámetros del
algoritmo, y el inferior a la muestra que va a ser analizada. Además presenta un menú que permite
abrir y guardar proyectos GIOSS.
Guadalupe Muñoz Martín 27 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
Figura 22. Interfaz principal de la aplicación
La figura 23 muestra en más detalle el panel para del algoritmo genético, que consta de dos
subpaneles. En el primero, “Basic Genetic Algorithm”, el usuario puede elegir los parámetros básicos
del algoritmo, como la técnica experimental (“Technique”), la función de aptitud (“Fitness”), el umbral
de parada para la función de aptitud (“Threshold”), el número de generaciones máximo que puede
ejecutarse el algoritmo en el caso de que no se encuentre la solución (“Generations”), el número de
individuos de cada población (“Population”), el método de selección de individuos (“Selection”), la tasa
de cruce (“Crossover”), la tasa de mutación (“Mutation”), y la tasa de elitismo (“Elitism”).
En el segundo, “Advanced Genetic Algorithm” se establecerán opciones que permitirán
mejorar la eficiencia del algoritmo, como variar la tasa de mutación dependiendo de lo parámetros, o
incorporar un algoritmo tradicional de búsqueda local una vez encontrada la zona del extremo.
Figura 23. Panel para los parámetros del algoritmo genético
La figura 24 muestra el subpanel para los parámetros del volumen (“Bulk”) de la muestra. En
éste el usuario puede elegir el elemento o molécula base de la celda unidad de volumen (“Basis”), la
simetría que tiene el volumen mediante la selección de la red de Bravais correspondiente (“Bravais
Guadalupe Muñoz Martín 28 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
Lattice”), y el plano (“Plane”) por el que se corta al volumen mediante los índices de Miller
correspondientes (“h”, “k”, y “l”). El botón “Lattice Parameters” permite al usuario visualizar (figura 25)
los parámetros de red del volumen (a, b, c, α, β, y γ) concreto que ha elegido. Esto es una mejora con
respecto a los programas que actualmente se utilizan, donde el usuario debía calcular a mano estos
parámetros.
Figura 24. Panel para los parámetros de volumen
Figura 25. Cuadro con los parámetros actuales de volumen
La figura 26 muestra el subpanel para la celda unidad de superficie (“Surface”). Dado que el
número de átomos o moléculas que puede tener una superficie no es algo fijo, se da la opción de
introducir de 1 a 9 puntos (“Number of points in the surface lattice”), generándose de manera
dinámica las opciones dependiendo del número de puntos seleccionados. Para cada punto debe
especificarse el elemento del átomo o molécula, y sus coordenadas x, y, z. Para cada coordenada
debe darse un rango de variación máximo, así como si especificar si en esa ejecución va a moverse
(“Move”), es decir, se va a introducir como parámetro de la función de aptitud. Además, en el caso d
la estructura de superficies, puede darse el caso de que algunos átomos deban moverse a la vez
para conservar cierta simetría. El usuario puede especificar qué coordenada se mueve como otra
dada con la opción “With”, que por defecto tiene el valor de moverse como ella misma. En este
subpanel también puede elegirse si los valores de las coordenadas y rangos se dan en Å (Angstroms)
o en unidades relativas a los parámetros de la celda unidad. Por último, el botón “3D Model” permite
la visualización del modelo 3D que se corresponde con la superficie especificada (figura 27).
Guadalupe Muñoz Martín 29 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
Figura 26. Panel para los parámetros de superficie
Figura 27. Modelo 3D de la celda unidad de superficie
La figura 28 muestra el subpanel donde se permite al usuario seleccionar los ficheros con los
datos experimentales, generándose de manera dinámica las opciones para cada uno de esos
ficheros. Para cada fichero aparecen dos botones (“Open file”, “Save file”), uno para seleccionar y
abrir el fichero, y otro para guardarlo en el caso de que se haya hecho alguna modificación en éste. Y
una zona de texto donde aparecen los datos experimentales del fichero correspondiente. Esa zona de
texto es editable para permitir al usuario la eliminación de puntos espurios, debidos a ruido
electrónico, que entorpecen la optimización (por ejemplo, en un sincrotrón puede darse el caso de
que el detector se sature en la zona de máxima intensidad, proporcionando datos falsos). Esto es una
mejora con respecto a otros programas, que obligan al usuario a realizar esta tarea a mano sobre
cada fichero, de manera externa a la aplicación.
Guadalupe Muñoz Martín 30 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
Figura 28. Panel para los datos experimentales
La figura 29 muestra el subpanel donde pueden especificarse los parámetros no
estructurales: escala, factor β para el cálculo de la rugosidad de superficie, el factor de Debye-Waller,
y la ocupación de la celda unidad de superficie.
Figura 29. Panel para los parámetros no estructurales
Una vez que se han seleccionado todos los parámetros, puede comenzar la ejecución del
algoritmo (a través del menú “Action”), y se muestra un nuevo panel (figura 30) donde aparecen los
parámetros actuales del algoritmo, así como el mejor cromosoma de cada generación, con el valor de
su aptitud, el valor del o los genes que se estén optimizando, y el nombre del parámetro al que se
corresponde (en el ejemplo se optimizan dos genes, del tipo coordenada z). Además, en el caso de
que se encuentre la solución, se muestra el tiempo que se ha tardado en encontrarla, y da la
posibilidad de visualizar el modelo 3D que se corresponde con la solución, en verde, superpuesto al
modelo de la estructura inicial, en rojo (figura 31).
Guadalupe Muñoz Martín 31 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
Figura 30. Resultados ejecución algoritmo
Figura 31. Modelo 3D de la solución
Guadalupe Muñoz Martín 32 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
7. EXPERIMENTOS
Para poder evaluar si la solución propuesta resuelve los objetivos de este trabajo, se han
llevado a cabo una serie de experimentos que se explican a continuación.
En primer lugar se ha querido comprobar si la utilización de un algoritmo genético ayuda a la
búsqueda de la estructura correcta dados unos datos experimentales determinados, y en ese caso,
cuáles son los parámetros óptimos. Dado que en esta fase, la prioridad es refinar y ajustar los
parámetros relevantes del algoritmo genético, los datos experimentales utilizados no han sido
obtenidos en una instalación sincrotrón, sino que han sido simulados. Esta simulación se ha llevado a
cabo para una muestra de platino, que es una red FCC (Face-Centered Cubic), tomando un corte por
el plano 111. La tabla 5 muestra varias vistas de esta estructura: en la primera columna, una vista en
tres dimensiones, en la segunda en dos dimensiones vista desde arriba, donde se han marcado los
átomos que configuran la celda unidad, y en la tercera columna se muestra sólo la celda unidad, es
decir, el conjunto de átomos mínimos para definir esta estructura.
Vista 3D
Vista 2D Superior
Vista 2D Superior
Celda unidad
y
z
x z
x
y b
c
a
Tabla 5. Pt(111)
Se han generado varios ficheros con factores de estructura para haces de rayos X en
distintas direcciones (cada dirección viene dada por unos valores concretos de hk) simulando a los
que se pueden obtener cuando se realiza un experimento, para el caso concreto de que la muestra
no fuera ideal, sino que sufriera alguna relajación vertical (una relajación vertical es una pequeña
variación en la coordenada z de los átomos con respecto a la posición que tendrían si la celda unidad
de la superficie fuera exactamente igual a la de volumen). En este caso se ha relajado +5% la primera
capa de la celda unidad de superficie, y -2,5% la segunda.
Con respecto al algoritmo genético, se restringe el espacio de soluciones dando un entorno
para cada parámetro a optimizar alrededor de la celda unidad de superficie, que es la forma habitual
de trabajo en otro tipo de aplicaciones, como por ejemplo ROD.
Guadalupe Muñoz Martín 33 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
Dado que la eficiencia del algoritmo depende del número de parámetros que deba optimizar,
se han realizado dos tipos de experimentos. En el primer caso, se ha limitado la búsqueda de la
solución para el caso de dos parámetros, mientras que en el segundo, el algoritmo ha tenido que
optimizar seis parámetros independientes.
El caso de dos parámetros se corresponde físicamente con la posibilidad de mover las
coordenadas z de los átomos en la primera y segunda capa, estando ligadas entre sí las z’s de los
átomos que pertenecen a la misma capa, mientras que el de seis parámetros se corresponde con el
mismo caso físico, mover las coordenadas z de los átomos de la primera y segunda capa, pero sin
estar ligados, es decir, pudiendo tomar valores de manera independiente.
Para cada uno de estos casos se ha ejecutado el algoritmo con distintos valores para los
parámetros propios del algoritmo genético, esto es, número de individuos en la población, tasa de
mutación y tasa de cruce. La tabla 6 muestra los valores de estos parámetros, habiendo evaluado por
tanto, 300 casos tanto para dos parámetros como para seis.
Nº de individuos/Población % Mutación % Cruce
25, 50, 75, 100, 125 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 40 10, 20, 30, 40, 50
Tabla 6. Valores parámetros algoritmo genético Además, y para poder estar seguros de que los resultados obtenidos eran estadísticamente
correctos se ha ejecutado cada caso 20 veces, tomando el promedio como valor resultado (hemos
comprobado que 20 ejecuciones era un buen valor, comparándolo con 100 y 1000 ejecuciones,
estando el valor promedio en los tres casos en el rango de error)
La condición de parada del algoritmo ocurre cuando al menos uno de los individuos de la
población es solución, o en términos del algoritmo genético, su aptitud es la máxima que se puede
conseguir. En nuestro caso, al haber elegido como función de aptitud la evaluación de χ2, la aptitud
máxima ocurre cuando ésta toma el valor de cero. En la realidad, cuando se utilizan datos
experimentales, éstos están sujetos a una serie de errores debidos al propio experimento, por lo sólo
en un caso ideal se obtendrá un valor de χ2= 0. Por este motivo, se ha introducido en la aplicación la
posibilidad de indicar un valor para χ2 menos restrictivo, pero suficiente como para que la solución
encontrada sea buena. Se han realizado varias pruebas para evaluar el valor umbral adecuado
dependiendo del número de parámetros, teniendo en cuenta que el error experimental está en torno a
0.05 Å, obteniendo los valores umbral para χ2 de 1.0 y 0.1 para dos y seis parámetros
respectivamente. Esto quiere decir que un cromosoma se considera solución sólo si su aptitud (χ2) es
menor que 1.0 en el caso de dos parámetros, y menor que 0.1 en el caso de seis.
Guadalupe Muñoz Martín 34 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
Cuando aumenta el número de parámetros, el criterio se hace más restrictivo para compensar
el hecho de que cuando tenemos un número mayor de parámetros el error de éstos se reparte en la
evaluación de la función de aptitud. Esto quiere decir que para un valor de la aptitud adecuado, puede
que casi todos los parámetros estén ajustados menos uno, cuyo error se compensa con los demás en
la evaluación de la aptitud. Desde un punto de vista físico, un parámetro mal ajustado (aunque el
resto estén bien), lleva a una solución incorrecta, problema que se soluciona restringiendo el valor
umbral para la función de aptitud de forma que éste indique que los valores de todos los parámetros
están ajustados por debajo del error experimental.
El criterio utilizado para decidir cuáles son los parámetros óptimos del algoritmo genético es el
número de generaciones que se han necesitado para encontrar la solución, de forma que cuantas
menos generaciones se necesiten, mejor serán los parámetros.
7. 1. Resultados para 2 parámetros
Se han evaluado 300 casos, que como se ha explicado anteriormente, se corresponden con
las distintas combinaciones de los valores de los parámetros del algoritmo genético (tabla 5),
ejecutándose cada uno 20 veces para obtener un valor promedio estadísticamente fiable para cada
uno de ellos. En todos los casos, el algoritmo ha sido capaz de encontrar la solución, siendo el peor
caso en 142 generaciones, y el mejor en 2.
La figura 32 muestra una gráfica 3D (el eje x se corresponde con la tasa de mutación, el y con
la tasa de cruce, y el z con el número de generaciones que hicieron falta para encontrar la solución),
que resume los 60 casos de la población de 125 individuos como representativa de las demás
poblaciones. Los resultados mejoran cuando el número de individuos es mayor, y dada una
población, mejoran cuando la tasa de mutación es mayor, siendo la tasa de cruce prácticamente
irrelevante.
% Mutación % Cruce
Gen
erac
ione
s
Figura 32. Resultados para población de 125 individuos (2 parámetros)
Guadalupe Muñoz Martín 35 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
La figura 33 muestra una gráfica con los resultados superpuestos para las poblaciones de 25
(símbolos llenos) y 125 (símbolos huecos) individuos, donde el eje de abcisas indica la tasa de
mutación, y el de ordenadas el número de generaciones que hicieron falta para encontrar la solución,
y donde cada línea coloreada se ha evaluado para una tasa de cruce distinta (10, 20, 30, 40 y 50).
Para el resto de poblaciones (50, 75 y 100 individuos), los resultados quedan comprendidos entre los
representados, siendo por tanto las poblaciones de 25 y 125 representativas de los extremos de los
valores. En esta figura se observa más claramente la mejora de los resultados cuando aumenta el
número de individuos en la población, y cómo cuando la tasa de mutación es más alta, los resultados
son mejores independientemente de la tasa de cruce.
Figura 33. Resultados para poblaciones de 25 y 125 individuos (2 parámetros)
Guadalupe Muñoz Martín 36 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
7. 2. Resultados para 6 parámetros
Aquí también se han evaluado 300 casos, y como en la situación anterior, el algoritmo ha sido
capaz de encontrar la solución en todas las pruebas, aunque tardando más al ser mayor el número de
parámetros a evaluar y siendo el criterio de finalización del algoritmo (solución encontrada) más
restrictivo que en el caso anterior (χ2 <= 0.1). Ahora, el peor caso se ha producido para el valor de
998 generaciones, y el mejor para 50.
Las figuras 34 a 36 muestran tres gráficas (todas con la misma escala), con los resultados
para 25, 50 y 100 individuos, donde el eje de abcisas indica la tasa de mutación, y el de ordenadas el
número de generaciones que hicieron falta para encontrar la solución, y donde cada línea coloreada
se ha evaluado para una tasa de cruce distinta (10, 20, 30, 40 y 50). Se observa que los resultados
mejoran cuando aumenta el número de individuos en la población, y que a partir de la de 50
individuos la tasa de cruce es indiferente. Con respecto a la tasa de mutación, los valores óptimos se
encuentran en el rango de 10 a 20.
Figura 34. Resultados para la población de 25 individuos (6 parámetros)
Guadalupe Muñoz Martín 37 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
Figura 35. Resultados para la población de 50 individuos (6 parámetros)
Figura 36. Resultados para la población de 100 individuos (6 parámetros)
Guadalupe Muñoz Martín 38 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
7. 3. Comparación de resultados
Los casos evaluados, dos y seis parámetros, han servido para proporcionar información
acerca de la eficiencia del algoritmo y si éste era capaz de encontrar las soluciones. Pero además es
importante comprobar que el tiempo en el que se encuentra la solución es razonable. Para dos
parámetros, en un caso medio, el algoritmo ha tardado 57393 milisegundos (19 generaciones) en
encontrar la solución, mientras que para seis parámetros, ha tardado 606597 milisegundos (159
generaciones). Es esperable un comportamiento exponencial, pero para asegurarnos de que en un
caso físico real el algoritmo también encuentra la solución en un tiempo razonable, se han realizado
pruebas para la situación de quince parámetros, que es un caso difícil, estando el resto de casos
reales entre seis y quince parámetros. La figura 37 muestra una gráfica donde el eje de abcisas indica
el número de parámetros, y el eje de ordenadas el tiempo necesario para encontrar la solución
(izquierda) y el número de generaciones (derecha). Donde se comprueba que efectivamente, el
comportamiento sigue una tenencia exponencial, y lo que es más importante, que para el caso medio
de 15 parámetros, el tiempo empleado son 11023047 milisegundos (3130 generaciones), es decir,
aproximadamente 3 horas, que es un tiempo bastante razonable, especialmente cuando se compara
con el utilizado por los algoritmos de las aplicaciones empleadas actualmente para la determinación
de la estructura de una superficie.
Figura 37. Comparación temporal de búsqueda de la solución en función de los parámetros.
También es interesante denotar que en el caso de dos parámetros, cuanto mayor es la tasa
de mutación, mejores los resultados, pero en el caso de seis parámetros, existe un rango óptimo
entre 10 y 20. Con respecto a la tasa de cruce, para el caso de dos parámetros, a tasas de mutación
pequeñas, ésta es relevante independientemente de la población, mientras que para el caso de seis
parámetros, ésta es irrelevante a partir de una población de 50 individuos aunque la tasa de mutación
sea pequeña.
Guadalupe Muñoz Martín 39 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
7. 4. Interfaz de usuario
Con respecto a la interfaz de usuario, se han llevado a cabo evaluaciones informales con
usuarios expertos, físicos experimentales, basadas en las reglas de usabilidad de Nielsen (tabla 3),
de las que pueden concluirse que GIOSS incrementa la usabilidad con respecto a la aplicación
utilizada actualmente, ROD, como muestra la tabla 7.
Regla Respuesta del usuario
2 Entiende fácil y rápidamente cómo llevar a cabo las tareas
3 Tiene el control en todo momento de la aplicación
4 La aplicación es consistente, el usuario tiene que realizar las mismas acciones para el mismo tipo de tarea
6 Reconoce fácilmente cómo se hacen las cosas y no necesita recordarlas
7 Está adaptada para usuarios novatos y expertos, pudiendo guardar un registro de las acciones realizadas
8 No aparecen mensajes o elementos irrelevantes
Tabla 7. Evaluación informal de la interfaz de GIOSS
El resto de reglas no han sido evaluadas, ya que la interfaz se encuentra en desarrollo,
aunque ROD tampoco las implementa.
Además, en ROD, la interacción del usuario es imprescindible para guiar al algoritmo en la
búsqueda de la solución, mientras que en el caso de GIOSS no lo es. Y aunque se prevé que cuando
el usuario pueda incorporar su conocimiento, la solución será encontrada en un tiempo aún menor,
esto no es indispensable en GIOSS para que el algoritmo encuentre la solución en un tiempo
razonable.
Guadalupe Muñoz Martín 40 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
8. CONCLUSIONES
El objetivo de los experimentos que se han llevado a cabo era estudiar la viabilidad de un
algoritmo genético como módulo de optimización en el problema de determinación de la estructura de
una superficie. Y en caso afirmativo, la obtención de unos valores óptimos para los parámetros del
algoritmo que sirvieran para orientar al usuario, experto en el problema físico pero no en las
características concretas de un algoritmo genético. Los resultados obtenidos permiten extraer
conclusiones razonables sobre la tendencia del algoritmo, aunque dado que su heurística es
aleatoria, estas conclusiones no son absolutas.
Los resultados de los experimentos indican que el algoritmo genético encuentra la solución
para todos los casos evaluados, y además en tiempos razonables, siendo éste de tres horas para la
simulación de un caso real. Por lo que puede concluirse que un algoritmo genético es viable e incluso
recomendable frente a las aplicaciones actuales, que emplean tiempos bastante superiores.
La tabla 8 muestra los valores óptimos de los parámetros del algoritmo a la vista de los
resultados obtenidos.
Población Cruce Mutación
100 10 10-20
Tabla 8. Valores óptimos para el algoritmo genético de GIOSS
Para la población, se ha tenido en cuenta que cuantos más individuos, mejores son los
resultados, pero que a resultados similares, mayor número de individuos incrementa el tiempo en que
se evalúa una generación, y por tanto el tiempo total en que se encuentra la solución. Para la tasa de
cruce, al resultar prácticamente irrelevante, se toma el menor valor para hacer más estable el
algoritmo, ya que se reduce la aleatoriedad en este parámetro. En el caso de la tasa de mutación, el
rango en el que se han encontrado los mejores resultados para los casos más cercanos al problema
real siempre ha sido de 10 a 20. Con respecto las tasas para el cruce y la mutación, se observa que
los valores son altos con respecto a las recomendaciones que se encuentran en la literatura este tipo
de algoritmos. Esto puede ser debido a la codificación, real, empleada en GIOSS para los
cromosomas. Las recomendaciones suelen darse para codificaciones binarias, donde el cambio de
un sólo bit puede llevarnos lejos del cromosoma original, mientras que en codificación binaria es más
difícil producir un cambio que nos aleje del cromosoma de partida, necesitando por tanto menos tasa
de cambio en el primer caso.
Con respecto a la interfaz de usuario presentada por GIOSS, ésta tiene mayor usabilidad que
la presentada por las aplicaciones actuales, siendo adecuada y de gran ayuda la visualización 3D del
modelo estructural.
Guadalupe Muñoz Martín 41 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
9. TRABAJOS FUTUROS
El objetivo final de este trabajo de investigación es la realización de una tesis doctoral, por lo
que los siguientes pasos están encaminados a este fin. Para ello, se generalizará la solución
presentada en forma de arquitectura “Open Source”, flexible, y extensible para que puedan
incorporarse fácilmente otros algoritmos y otras técnicas experimentales. Ya se ha comenzado las
acciones necesarias para la difusión y desarrollo de contribuciones en el entorno colaborativo
SourceForge.net (http://sourceforge.net).
Además del diseño e implementación de esta arquitectura genérica, y dados los buenos
resultados obtenidos hasta ahora, se seguirá trabajando en el refinamiento del algoritmo genético,
añadiendo más opciones interactivas que incorporen conocimiento por parte del usuario para guiar al
algoritmo en la búsqueda de la solución, como la posibilidad de modificar el operador de cruce para
que actúe sobre parámetros (coordenadas) relacionados entre sí. Por ejemplo, en el caso de
relajaciones verticales, las coordenadas x e y de una solución pueden permanecer en el mismo
segmento del cromosoma, siendo las coordenadas z las que deben proporcionar la variedad
genética, mientras que en el caso de las relajaciones laterales, son las coordenadas x e y las que
tendrán mayor peso en la evolución de las soluciones. O la posibilidad de configurar una tasa de
mutación dinámica que tenga en cuenta la evolución de la aptitud en el tiempo, entre otras.
También con respecto al algoritmo genético en un principio, pero con vistas a otro tipo de
algoritmo bio-inspirado, se implementará una versión paralelizada en la que podrán evaluarse de
manera simultánea varias soluciones en cada generación, de forma que se acelerará la ejecución de
la aplicación. Esta característica permitirá su implementación futura en una plataforma tipo grid.
Además de permitirnos obtener un número mayor de soluciones en menos tiempo, la plataforma grid
posibilitará un mejor aprovechamiento de los escasos recursos disponibles, permitiendo además la
posibilidad de experimentar con distintas especies de poblaciones que compitan e incluso se
mezclen, para obtener la solución.
También se investigará la posibilidad de sustituir el algoritmo genético por uno memético, es
decir, combinar la búsqueda global del algoritmo genético con un algoritmo de búsqueda local tipo
gradiente cuando se esté cerca de la solución, de forma que se acelere la búsqueda.
Por otro lado, y debido al interés práctico de esta aplicación desde el punto de vista físico, se
continuarán implementando otras técnicas experimentales, así como se mejorará la interfaz para
aumentar su usabilidad. De esta forma, podrá comprobarse la utilidad de esta aplicación desde un
punto de vista más general y con usuarios reales.
Todas estas mejoras se irán incorporando de manera incremental, realizando experimentos
para probar su eficacia y eficiencia en cada paso, con datos experimentales reales, para detectar
posibles fallos. Como consecuencia de este desarrollo incremental se espera obtener una
arquitectura final genérica que permita nuevas contribuciones de manera fácil y rápida.
Guadalupe Muñoz Martín 42 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
10. BIBLIOGRAFÍA
1. [Broyden, 1970] C. G. Broyden, The Convergence of a Class of Double-rank Minimization
Algorithms, Journal of the Institute of Mathematics and its Applications, Vol. 6, pp 76-90, 1970.
2. [Broyden, 1996] C. G. Broyden, A new taxonomy of conjugate gradient methods, Computers and
Mathematics with Applications, Vol. 31 (4-5), pp. 7-17, 1996.
3. [Coello y Cruz, 2004] C. A. Coello y N. Cruz, Solving Multiobjective Optimization Problems using
an Artificial Immune System, Genetic Programming and Evolvable Machines, Kluwer Academic
Publishers. Vol. 5, 2004.
4. [Cullity y Stock, 2001] B. D. Cullity y S. R. Stock, Elements of X-Ray Diffraction, Ed. Prentice
Hall, 2001.
5. [Elster y Neumaier, 1995] C. Elster y A. Neumaier, A grid algorithm for bound constrained
optimization of noisy functions, IMA Journal of Numerical Analysis (Oxford University Press), 15,
pp. 585-608, 1995.
6. [Fliege y Fux, 2000] J. Fliege y B. Fux, Steepest Descent Methods for Multicriteria Optimization,
Mathematical Methods of Operations Research. Vol 51 (3), pp. 479–494, 2000.
7. [Fletcher y Powell, 1963] R. Fletcher y M. J. D. Powell, A rapidly convergent descent method for
minimization, Computer Journal, 6, pp. 163-168, 1963.
8. [Forrest y Hofmeyr, 2000] S. Forrest y S. A. Hofmeyr, Immunology as Information Processing,
Design Principles for Immune System and Other Distributed Autonomous Systems. Eds L.A.
Segel e I. R. Cohen, Oxford University Press, pp. 361-387, 2000.
9 [Foster y Kesselman, 1999] The Grid: Blueprint for a New Computing Infrastructure, I. Foster y
C. Kesselman, Morgan Kaufmann Publishers Inc., 1999.
10. [Glover y Laguna, 1997] F. W. Glover y M. Laguna, Tabu Search. Kluwer Academic Publishers,
1997.
11. [Golberg, 1989] D. E. Goldberg, Genetic Algorithms in Search, Optimization, and Machine
Learning. Reading, Massachuset. Addison-Wesley, 1989.
12. [Grossberg, 1976] S. Grossberg, Adaptive pattern classification and universal recoding: I.
parallel development and coding of neural feature detectors. Biological Cybernetics, 23, pp. 121-
134, 1976.
13. [Hebb, 1949] D. O. Hebb, The Organization of Behavior. New York: Wiley, 1949.
14. [Holland, 1975] J. H. Holland, Adaptation in natural and artificial systems. Ann Arbor: The
University of Michigan Press, 1975.
15. [Hopfield y Tank, 1986] J.J. Hopfield, D.W. Tank, Computing with neural networks: a model,
Science (233), pp. 625-632, 1986.
16. [Huang, 1999] S.-J. Huang, Enhancement of thermal unit commitment using immune algorithms
based optimization approaches, Electrical Power Energy Systems, 21, pp. 245-252, 1999.
Guadalupe Muñoz Martín 43 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
17. [Kittel, 1998] Ch. Kittel, Introducción a la Física del Estado Sólido. Ed. Reverté, 1998.
18. [Kirkpatrick et al., 1983] S. Kirkpatrick, C. D. Gelatt Jr., y M. P. Vecchi, Optimization by
Simulated Annealing, Science, 220, pp. 671-680, 1983.
19. [Kohonen y Oja, 1976] T. Kohonen y E. Oja, Fast adaptive formation of orthogonalizing filters
and associative memory in recurrent networks of neuron-like elements, Biological Cybernetics,
21, pp. 85-95, 1976.
20. [Jiang et al., 1997] H. Jiang, S. Mizuno y H. Tochihara, Adlayer structure of c(5√2x√2)R45º
formed on Ni(001) by Li adsorption. Hollow-site adsorption or hexagonal arrangement?, Surface
Science Letters 385 (1997), pp. 930-937.
21. [Levenberg, 1944] K. Levenberg, A method for the solution of certain problems in least squares,
SIAM Journal of Numerical Analysis, 16, pp. 588-604, 1944.
22. [Mannino y Sassano, 2003] C. Mannino, A. Sassano, "An enumerative algorithm for the
frequency assignment problem". Discrete Applied Mathematics, Vol 129, pp. 155-169, 2003.
23. [Marquardt, 1963] D. Marquardt, An algorithm for least squares estimation of nonlinear
parameters, SIAM Journal of Applied Mathematics, 11, pp. 431-441, 1963.
24. [McCulloch y Pitts, 1943] W. S. McCulloch y W. Pitts, A logical calculus of the ideas immanent in
nervous activity. Bulletin of Mathematical Biophysics, 5, pp. 115-133, 1943.
25. [Michalewicz, 1992] Z. Michalewicz. Genetic Algorithms + Data Structures = Evolution Programs,
Springer-Verlag, 1992.
26. [Minsky y Papert, 1969] M. Minsky y S. Papert, Perceptrons. MIT Press, Cambridge, 1969.
27. [Press et al., 1988] W. H. Press, S. A. Teukolsky, W. T. Vetterling, Numerical Recipes in C: The
Art of Scientific Computing, Cambridge University Press, 1988.
28. [Moscato, 1989] P. Moscato, On evolution, search, optimization, genetic algorithms and martial
arts: towards memetic algorithms, Technical Report 790, Caltech Computation Program, 1989.
29. [Muñoz, 2000] G. Muñoz, A Model for Virtual Intelligent Libraries, Actas de la conferencia ACM
Conference on Human Factors in Computing Systems CHI 2000; La Haya (Holanda), 2000.
30. [Muñoz et al., 2002] G. Muñoz, I. Aedo, P. Díaz, La metáfora de la biblioteca tradicional para el
diseño de una biblioteca digital, Revista Iberoamericana de Inteligencia Artificial, 16, pp.93-98,
2002.
31. [Nielsen y Molich, 1990] J. Nielsen, y R, Molich, Heuristic evaluation of user interfaces, Actas de
la conferencia ACM Computer Human Interaction’ 90, Seattle, EE.UU, pp. 249-256, 1990.
32. [Robinson y Tweet, 1992] I.K. Robinson y D.J. Tweet, Surface x-ray diffracion. Report on
Progress in Physics 55 (1992), pp. 599-651.
33. [Rosenblatt, 1958] F. Rosenblatt, The perceptron: A probabilistic model for information storage
and organization in the brain. Psychological Review, 65, pp. 386-408, 1958.
34. [Rumelhart et al., 1986] D. E. Rumelhart, G. E. Hinton, y R. J. Williams, Learning Internal
Representations by Error Propagation. Parallel Distributed Processing, Vol. 1, Ed. D. E.
Rumelhart y J. L. McClelland, pp. 318-362. Cambridge, MA, MIT Press, 1986.
Guadalupe Muñoz Martín 44 de 45
GIOSS: Prototipo software para la optimización del proceso de determinación de estructuras de superficies
Guadalupe Muñoz Martín 45 de 45
35. [Sayre, 2002] D. Sayre, X-Ray Crystallography: The Past and Present of the Phase Problem,
Structural Chemistry, Volume 13, Issue 1, 2002, pp. 81-96.
36. [Vlieg et al., 1989] E. Vlieg, A. W. Denier van der Gon, J. F. van der Veen, J. E. Macdonald, C.
Norris, The structure fo Si(111)-( √3x√3)R30º-Ag determined by surface x-ray diffraction, Surface
Science 209 (1989) pp. 100-114.
37. [Vlieg, 2000] E. Vlieg, ROD: A program for surface X-ray crystallography, Journal of Applied
Crystallography 33 Part 2 (2000), pp. 401-405.
38. [Wales y Scheraga, 1999] D. J. Wales y H. A. Scheraga, Global optimization of Clusters,
Crystals, and Biomolecules, Science, 285, pp. 1368-1372, 199.
39. [Widrow y Hoff, 1960] B. Widrow y M.E. Hoff, Adaptive switching circuits, IRE WESCON
Convention Record, 4 (96), pp. 93-104, 1960.
40. [Woodruff y Delchar, 1986] D. P. Woodruff y T. A. Delchar, Modern techniques of surface
science. Cambridge University Press, 1986.
41. [Zangwill, 1988] A. Zangwill, Physics at surfaces, Ed. Cambridge University Press, 1988.