gioss: prototipo software para la optimización del ... · 1 “open source” o software de...

45
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

Upload: trinhminh

Post on 27-Sep-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 2: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 3: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 4: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 5: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 6: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

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

Page 7: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 8: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 9: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 10: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 11: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 12: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 13: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 14: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 15: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 16: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 17: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 18: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 19: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 20: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 21: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 22: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 23: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 24: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 25: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 26: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 27: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

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

Page 28: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 29: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 30: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 31: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 32: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 33: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 34: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 35: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 36: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 37: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 38: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 39: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 40: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 41: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 42: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 43: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 44: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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

Page 45: GIOSS: Prototipo software para la optimización del ... · 1 “Open Source” o software de código abierto, o libre, es aquel cuyos términos de uso permiten al usuario ejecutarlo,

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.