j - Universidad Nacional de Colombia: Repositorio institucional UN · 2013-10-25 · En la figura 3...

10
Algoritmo 1. Algoritmo Multi-Oinamica s para Optimizaci6n Global 1:j=O 2: Generaci6n de la poblaci6n inicial, c on una distribuci6n uniforme aleatoria en todo el espacio de busqueda 3: repetir 4: Evaluar cada individuo medio de la funci6n objetivo 5: Calcular el muestreo de la matriz de dispersion de la poblaci 6n 6: Calcular las cardinalidades N I , Nzy N3de los gr upos G I , Gzy G 3 . 7: Seleccionar de NI los mejores individuos, modificarlos de acuerdo a la ecuacio n (1) Yhacerlos competir. Pasar los gana dores a la proxima ge neracion j+ 1 8: Realizar muestreo desde la distribuci6n uniforme en el hfper rectangulo [LBW, UB (j) ] con individuos de N z y pasar ala siguiente gene racion j+ 1. Las cardinalidades de cada dinamica vari an a traves de las generaciones tendiendo a un valor estacionario. La regulacion poblacional en el algoritmo MAGO sigue un modelo logistico estocastico. En la fi gura 2 se aprecia que inici almente la dinamica emergente tendla a un factor de carga y desde la generaci6n 10 paso a ot ro valor. Las tres dinamicas estan sujetas a este model o, sin e mbargo , la dinamica accidental es mucho mas estable. '0 ·0 10 20 - 0 Errergerte _······0 Mult ill..d es ••_ - 0 Accide nlLll 80 .. Figura 2. Ejemplo de Regulaci6n Poblacional en el algoritmo MAGO. Caso: Funci6n Schwefel, con una poblaci6n de 50 individuos y 100 generaciones. H " En la figura 3 se observa la distribuci6n poblaciona l de to do el proceso evolutivo en el MAGO, se puede observar co mo en ca da gen eraci6n se mantiene el tamaiio de la poblacion fijo, en este caso para 50 individuos, las dina micas del algoritmo j ueg an con el tamaiio de la poblacion repartiendo la totalidad en cada una de elias. Final me nte en la figura 4 se muestra la capacidad de regulacion en ca da dinamica de forma individual (cabe resaltar que la simulacion utilizada en la figura 2 no es la misma simulacion de la figura 4, ya que solo se de sea mostrar el comportamie nto ge neral del algoritmo no se realizan casos iguales). 75

Transcript of j - Universidad Nacional de Colombia: Repositorio institucional UN · 2013-10-25 · En la figura 3...

Page 1: j - Universidad Nacional de Colombia: Repositorio institucional UN · 2013-10-25 · En la figura 3 se observa la distribuci6n poblacional de todo el proceso evolutivo en el MAGO,

Algoritmo 1. Algoritmo Multi-Oinamicas para Optimizaci6n Global 1:j=O 2: Generaci6n de la poblaci6n inicial, con una distribuci6n uniforme aleatoria en todo el espacio de busqueda 3: repetir 4: Evaluar cada individuo p~r medio de la funci6n objetivo 5: Calcular el muestreo de la matriz de dispersion de la poblaci6n 6: Calcular las cardinalidades NI , Nzy N3de los grupos GI , Gzy G3. 7: Seleccionar de NI los mejores individuos, modificarlos de acuerdo a la ecuacion (1) Y hacerlos competir. Pasar los ganadores a la proxima generacion j+1 8: Realizar muestreo desde la distribuci6n uniforme en el hfper rectangulo [LBW, UB(j) ] con individuos de Nz y pasar ala siguiente generacion j+1.

Las cardinalidades de cada dinamica varian a traves de las generaciones tendiendo a un valor estacionario. La regulacion poblacional en el algoritmo MAGO sigue un modelo logistico estocastico. En la figura 2 se aprecia que inicialmente la dinamica emergente tendla a un factor de carga y desde la generaci6n 10 paso a otro valor. Las tres dinamicas estan sujetas a este modelo, sin embargo, la dinamica accidental es mucho mas estable.

'0

·0 10 20

- 0 Errergerte _· ·····0 Multill..des ••_ - 0 Accide nlLll

80 .. Figura 2. Ejemplo de Regulaci6n Poblacional en el algoritmo MAGO. Caso: Funci6n Schwefel, con una poblaci6n de 50 individuos y 100 generaciones.

H"

En la figura 3 se observa la distribuci6n poblacional de todo el proceso evolutivo en el MAGO, se puede observar como en cada generaci6n se mantiene el tamaiio de la poblacion fijo, en este caso para 50 individuos, las dinamicas del algoritmo juegan con el tamaiio de la poblacion repartiendo la totalidad en cada una de elias. Finalmente en la figura 4 se muestra la capacidad de regulacion en cada dinamica de forma individual (cabe resaltar que la simulacion utilizada en la figura 2 no es la misma simulacion de la figura 4, ya que solo se desea mostrar el comportamiento general del algoritmo no se realizan casos iguales).

75

Page 2: j - Universidad Nacional de Colombia: Repositorio institucional UN · 2013-10-25 · En la figura 3 se observa la distribuci6n poblacional de todo el proceso evolutivo en el MAGO,

. / " O"­.... J...

"

............ '"

__ l9

~.,61'1

Figura 3. Distribuci6n de la Poblacional en el algoritmo MAGO. Caso: Funci6n Schwefel , con una poblaci6n de 50 individuos y 100 generaciones.

40

1-Copacidad da carga l

" '0

' 0 20 '" 40 '" eo '" 10 '" '00 -Figura 4. Capacidad de carga . Caso: Funci6n Schwefel, con una poblaci6n de 50 individuos y

100 generaciones.

76

Page 3: j - Universidad Nacional de Colombia: Repositorio institucional UN · 2013-10-25 · En la figura 3 se observa la distribuci6n poblacional de todo el proceso evolutivo en el MAGO,

3.5.6. CONTROL DE LA DIVERSIDAD POBLACIONAL

Naturalmente las especies estan ligadas a un control que las relaciona directamente con el entorno, es decir, las condiciones ambientales son las que dan limites a las especies que habitan dicho espacio y de esta forma existe una regulaci6n ambiente­especie. Con el fin de garantizar en el MAGO un comportamiento equivalente al observado en la naturaleza, se incorpora un control de diversidad que garantiza exploraci6n en todo el espacio de busqueda. Este control es una relaci6n directa entre el tamano del espacio de busqueda y la cantidad de individuos que estan en un mismo punto geografico.

Se establece al inicio del cicio evolutivo, en la primera generaci6n, una distancia de referencia, aquella euclidiana entre la posici6n del individuo que alcanza el mejor valor en la funci6n aptitud y el peor de todos. Debe recordarse que la poblaci6n inicial se crea al azar dentro de los limites del espacio de busqueda, por 10 tanto en este espacio esa distancia tendra una magnitud relativamente grande.

Esta distancia se toma como referencia para el control y se denomina dO. En cada generacion se hace un chequeo, en el cual se establece la dlstancia, dr, entre el mejor individuo de toda la poblacion y el mejor individuo de la dinamica de multitudes. Se calcula la diferencia entre dO y dr, cuando el valor absoluto de la diferencia este por debajo de un tamano de error, que puede ser de 10-x, el cicio evolutivo cambia, y la dinamica de las multitudes se obliga a desplazarse la distancia dO lejos del mejor individuo. Esto se hace ya que si un individuo de la multitud esta exactamente en el mismo lugar geografico que el mejor individuo de toda la poblacion, quiere decir que hay un posible estancamiento de la especie, y con el fin de explorar todo el espacio de busqueda se dejan los mejores individuos en el optimo encontrado, y a la multitud se Ie obliga a explorar todo el espacio de busqueda desde una ruta diferente a la que ya tra ia y de esta forma garantizar diversidad en el algoritmo.

3.6. CONCLUSIONES

La inspiracion en procesos naturales aunque explorada no ha sido explotada en realidad al momenta de tratar de resolver problemas con base en dicha experiencia natural, a pesar de que la naturaleza da muchos indicios de la eficiencia y eficacia con la que resuelve los problemas del entorno.

EI diseno de algoritmos que resuelven problemas de optimizacion inspirados en metodos naturales, tal como la evoluci6n de las especies, garantiza diversidad en la busqueda de soluciones, brindando de esta forma diferentes escenarios de trabajo, no los ideales, pero siempre con la certeza de encontrar el mejor escenario posible.

Los metod os heuristicos como los algoritmos evolutivos son herramientas fuertes a las que se les pueden someter a diferentes reglas evolutivas tanto al nivel de individuos como de especie, encontrando en cada combinaci6n formas de con verger particulares, pero siempre eficientes.

EI algoritmo MAGO, al inspirarse en un conjunto de reg las observadas en la naturaleza y procesos evolutivos, se comporta con gran eficacia y eficiencia al momenta de resolver problemas de optimizacion en ingenieria. EI algoritmo MAGO muestra gran versatilidad al enfrentarse a un problema, por sus mismas condiciones iniciales, s610 requiere de parte del usuario dos parametros: numero de generaciones y tamano de la poblacion. EI algoritmo MAGO, al inspirarse en evolucion natural de especies y no de

77

Page 4: j - Universidad Nacional de Colombia: Repositorio institucional UN · 2013-10-25 · En la figura 3 se observa la distribuci6n poblacional de todo el proceso evolutivo en el MAGO,

individuos, esta en capacidad de adaptarse a sl mismo para solucionar una gama amplia de problemas, encontrando en cada uno de ellos, siempre la mejor soluci6n posible.

REFERENCIAS

Bianconi, Ginestra, y Rahmede Christoph. «Quantum Mechanics Formalism for Biological Evolution.» Chaos, Solitons& Fractals 45, nO 5 (2012).

Dobzhansky, Th, Ayala F, Stebbings G, y Valentine J. «Evoluci6n.» (Ediciones Omega) 1993.

Glover F, y Kochenberger G. «Handbook of· Metaheuristics.» Kluwer Academic Publishers, 2003.

Holland, H. «Adaptation in Natual and Artificial Systems.» University of Michigan Press, 1975.

Larranaga, Pedro, y Jose Lozano. «Estimation of distribution algorithms.» Gena 2, 2002.

Mesa, Juan del Ojo. «Metodos de muestreo para la optimizaci6n global entera.» Editado por Universidad de Sevilla. Memoria tesis doctoral, 1988.

Rothlauf, Franz. «Design of Modern Heuristics.» Principles and Application.Springer­Verlag.8erlin, 2011 .

Sch6nemann, L. «Evolution Strategies in Dynamic Environments, Studies in Computational Intelligence.» Springer-Verlag Berlin Heidelberg, 2007: 51-77.

Wilson, E. «The Diversity of Life.» Editado por W. W. Norton & Co. 1993. Winter, Gabriel. «Algoritmos geneticos: metodos estocasticos de optimizaci6n global

inspirados en la evoluci6n natural.» Editado por Antonio Martin6n. Las Matematicas del siglo XX. Una mirada en 101 arliculos 43-44 (2000).

Xinjie, Yu, y Gen Mitsuo. «Introduction to Evolutionary Algorithms.» Springer-Verlag, 2010.

78

Page 5: j - Universidad Nacional de Colombia: Repositorio institucional UN · 2013-10-25 · En la figura 3 se observa la distribuci6n poblacional de todo el proceso evolutivo en el MAGO,

4. OPTIMIZACION EN BASES DE DATOS: OISENO DE iNDICES ESPECIALIZADOS PARA OPERACIONES

DML

[11Jhon W. Olarte V. [11Francisco Javier Moreno A. [email protected] [email protected]

[11Universidad Nacional de Colombia Sede Medellin

RESUMEN

En muchas organizaciones existen aplicaciones desarrolladas en Sistemas de Gesti6n de Bases de Datos (SGBD) cuyos tiempos de respuesta no satisfacen las expectativas de los usuarios. Una de las posibles causas es que much as operaciones, como las consultas, no estan optimizadas. Por ejemplo, la falta de indices adecuados 0 la presencia de indices inadecuados pueden lIevar a un pobre desempeno de las consultas. En este capitulo se presentan los conceptos esenciales para el diseiio de indices de tres estrellas. Estos indices son los ideales para mejorar el desempefio de operaciones como consultas, actualizaciones y borrados. Se presenta un caso de estudio en dos SGBD donde se evalua este tipo de indices. Los resultados evidenciaron una mejora significativa en el desempeno de las operaciones y permitieron analizar el comportamiento de cada SGBD con estos indices.

Palabras claves: indice, predicado, acople, camino de acceso, rebanada de un indice

.4.1.INTRODUCCION.

En muchas organizaciones existen actualmente muchas aplicaciones desarrolladas en Sistemas de Gesti6n de Bases de Datos (SGBD) que presentan problemas de desempeno, i.e., los tiempos de respuesta no satisfacen las expectativas de los usuarios. Una de las posibles causas es que muchas operaciones, como las consultas, no estan optimizadas. Por ejemplo, la falta de indices adecuados 0 la presencia de indices inadecuados pueden lIevar a un pobre desempeno de las consultas. Ademas, algunos desarrolladores consideran que con la capacidad de procesamiento y de almacenamiento actual, ya no es necesario afinar las operaciones DML (Data Manipulation Language) (Lahdenmaki y Leach 2005), i.e., consultas, actualizaciones y borrados; y se delega este proceso enteramente al optimizador del SGBD, omitiendo en ocasiones la creaci6n de indices valiosos. En otras ocasiones se crean indices que no responden a las necesidades de las operaciones DML, generando de esta forma indices poco usados 0 cuyo uso puede ser perjudicial para el rendimiento de estas operaciones. En forma analoga a los hoteles, los indices se clasifican por el numero de

79 Hernandez Riveros Jesus Antonio. Optlmlzacl6n da Conoclmiento en Ingan/arla ISBN: 978-958-761-433-6 Cantro da Publicaeiones. Univers/dad Nae/onal de Colombia, Seda Medellin. 2013

Page 6: j - Universidad Nacional de Colombia: Repositorio institucional UN · 2013-10-25 · En la figura 3 se observa la distribuci6n poblacional de todo el proceso evolutivo en el MAGO,

estrellas. las estrellas (primera, segunda y tercera) se asignan con base en criterios que se explican mas adelante. los indices de tres estrellas son los ideales para mejorar el desempeno de una operaci6n DMl. Sin embargo, a diferencia de los hoteles, un indice pod ria tener, e.g., la tercera estrella pero carecer de la primera 0 de la segunda.

EI capitulo esta organizado asi. En la Secci6n 2, se presentan los conceptos esenciales para el diseno de indices de tres estrellas y en la Secci6n 3 se presenta el metodo para su diseno. En la Secci6n 4, se presentan los experimentos ejecutados en dos SGSD y en la Secci6n 5 se proponen trabajos futuros y se concluye el capitulo.

4.2. CONCEPTOS ESENCIALES

En esta secci6n se presentan algunos conceptos necesarios para el diseno de indices de tres estrellas.

4.2.1. PREDICADO

Un predicado es una expresi6n condicional que tiene un valor de verdad (TRUE, FALSE 0 UNKNOWN en Sal). Un predicado especifica un subconjunto de filas en una operaci6n DMl (http1). los predicados son el punto de partida para el diseno de los indices y se clasifican como simples y compuestos. Un predicado simple esta conformado asi (Sumathi y Esakkirajan 2007):

Operando OpComp Operando.

Donde Operando es una columna 0 una constante y OpComp es un operador de comparaci6n como =, >, < , etc. Un predicado compuesto consta de dos predicados, ya sean simples 0 compuestos, conectados por los operadores 16gicos AND y OR. Por ejemplo, considerese la siguiente clausula WHERE:

• WHERE SEXO = 'M' AND (PESO> 90 OR ESTATURA > 190);

los predicados de la clausula anterior son 1. SEXO = 'M'. 2. PESO> 90 . 3. ESTATURA> 190. 4. PESO> 90 OR ESTATURA > 190. 5. SEXO = 'M' AND (PESO> 90 OR ESTATURA > 190).

Donde los predicados 1, 2 Y 3 son simples y los predicados 4 y 5 son compuestos.

4.2.2. OPERACIONES DE E/S

Una operaci6n de E/S (Entrada/Salida) es una petici6n del SGSD al procesador, el cual escribe 0 lee de disco un conjunto de paginas (bloques) las cuales contienen los datos correspondientes (filas de las tablas de la base de datos).

80

Page 7: j - Universidad Nacional de Colombia: Repositorio institucional UN · 2013-10-25 · En la figura 3 se observa la distribuci6n poblacional de todo el proceso evolutivo en el MAGO,

Las operaciones de E/S pueden ser sincronas 0 asincronas. Cuando la operacion de ElS es sincrona, el SGBD:

1. Identifica la fila de la tabla solicitada. 2. Accede a la pagina que contiene la fila solicitada. 3. Procesa la fila.

En una operacion sincrona, cada uno de estos pasos se ejecuta cuando se ha terminado el paso anterior; asi para procesar una fila (paso 3), los pasos 1 y 2 tienen que haber terminado. De esta forma, el SGBD debe esperar que finalice una operacion de E/S, para poder continuar con la lectura 0 escritura de las siguientes filas.

Por otro lado, cuando la operacion es asincrona, el SGBD no tiene que esperar a que la operacion E/S se complete, Le., puede ir ejecutando los pasos 1, 2 Y 3 en paralelo para diferentes filas (http2).

4.2.3. CAMINO DE ACCESO

Antes de ejecutar una operacion DML, el optimizador del SGBD debe decidir como acceder a los datos, i.e., elegir los caminos de acceso (access paths) que esten disponibles para recuperar los datos de la base de datos (Hellerstein y Stonebraker 2003). Por ejemplo, el optimizador debe decidir si usar

• indices y la forma de usarlos, e.g., acceso por rango. • Accesos completos a la tabla (full table scans). • Operaciones de ElS sincronas 0 asincronas.

4.2.4. REBANADA DE UN iNDICE

Usualmente, las operaciones DML que acceden a un subconjunto pequeno de filas de una tabla usan indices, mientras que un acceso completo a una tabla se usa cuando estas operaciones acceden a un subconjunto grande de filas de una tabla.

Una rebanada de un indice (index slice) es la porcion del indice que se va a recuperar para una determinada operacion DML.

------"I 103 j

W 1 101 I

" •r.. I 101 I

101 ,

: 103

108

-~~

4 ~,

"

IJI.'DIC[ TABLA

Figura 1. Rebanada de un indice.

81

Page 8: j - Universidad Nacional de Colombia: Repositorio institucional UN · 2013-10-25 · En la figura 3 se observa la distribuci6n poblacional de todo el proceso evolutivo en el MAGO,

En la Figura 1 se observa una rebanada de un indice, que tiene los valores 101, 103 Y 109. Ademas, se muestra la forma en que se recuperaran las filas mediante lecturas sincronas.

En dicha figura, los numeros del 1 al 6 indican la secuencia en. que se hacen los accesos, i.e., primero se lee la fila requerida (101, paso 1) desde el indice y mediante su puntero se accede a la pagina correspondiente y se procesa (paso 2). Hasta que no finalice esta operacion de E/S no se leera la siguiente fila (Ia 103, paso 3).

4.2.5. COLUMNA MATCHING Y DE SCREENING

Una columna que es referenciada en un predicado simple de una operacion DML y que ademas hace parte de un indice se denomina M (matching, de acople) 0 S (screening, de filtro 0 control). La diferencia esta en que las columnas M delimitan con mayor precision la rebanada del indice a recuperar que las columnas S; sin embargo, estas pueden IIegar a reducir el numero de lecturas sincronas, y representan; por 10 tanto, un papel importante en la optimizacion .

Por ejemplo, considerese la Figura 2 don de se muestra para una clausula WHERE como se identifican las columnas My S.

lndiceExaminar las columnas del indice a partir de su primera columna y seguir estos pasos: GB,C'D~

1. (,La columna es referenciada en al menos un predicado simple de la clausula WHERE?

Si: la columna es M. No: esta y las demas columnas no son M.

2. Si el predicado es de rango, las demas columnas del predicado no son columnas M.

3. Cualquier columna despues de la ultima columna M

./

WHEREA=: A AND B>: B AND c=: C

es una columna S si hay al menos un predicado simple que la refiere.

Figura 2. Ejemplo de columnas M y S.

Supongase un indice con cuatro columnas (A. B, C, D) Y la clausula WHERE de la Figura 2. Para identificar las columnas My S se procede asi:

1. Se examina la primera columna del indice, i.e., A. 2. Como en la clausula WHERE hay un predicado simple que se refiere a esta

columna, entonces A es una columna M. 3. Ahora se examina la segunda columna del indice, i.e., B y se observa que esta

tambien es referenciada en la clausula WHERE, en un predicado de desigualdad (predicado de rango); por 10 tanto, tambien es una columna M.

4. De acuerdo con el paso 2 de la Figura 2, se concluye que las demas columnas de la clausula WHERE no seran columnas M.

5. De acuerdo con el paso 3 de la Figura 2, como la columna C esta en el indice y ademas se referencia en un predicado simple, entonces es una columna S.

En conclusion, hay dos columnas M (A Y B) Y una columna S (C).

82

Page 9: j - Universidad Nacional de Colombia: Repositorio institucional UN · 2013-10-25 · En la figura 3 se observa la distribuci6n poblacional de todo el proceso evolutivo en el MAGO,

4.2.6. LECTURA ALEATORIA Y SECUENCIAL

EI buffer pool (area comun de memoria intermedia) es un area temporal de almacenamiento de paginas de la base de datos (http3). EI proceso del SGBD administrador del buffer pool procura que los datos solicitados frecuentemente por los usuarios se encuentren alii, para minimizar as! las lecturas de paginas desde el disco.

Una lectura aleatoria (random read) se refiere a la ubicaci6n y transferencia de una pagina que se encuentra en disco al buffer pool. Por otro lado, una lectura secuencial (sequential read) considera que varias paginas de una tabla 0 de un indice se deben leer secuencialmente, i.e., estas paginas estan adyacentes en disco y son leidas una tras otra.

Los tiempos supuestos para las operaciones de E/S son:

1. Lectura aleatoria: 0.4 MB/s 6 10 ms (4K 6 8K pagina). 2. Lectura secuencial: 40 MB/s.

4.2.7. FACTOR FILTRO

EI factor filtro especifica la selectividad del predicado. La selectividad es el porcentaje de filas seleccionadas en una operaci6n DML. Una operaci6n DML que selecciona un subconjunto pequeno de filas tiene selectividad alta, mientras que una operaci6n DML que selecciona un subconjunto grande de filas tiene selectividad baja (http4).

Por ejemplo, sup6ngase que se tienen 500 ciudades y que se tiene una tabla con un mill6n de clientes, cada uno ubicado en una ciudad. Por 10 tanto, el factor filtro para un predicado CIUDAD = :CIUDAD sera 0.2% (suponiendo una distribuci6n uniforme de los clientes en las ciudades).

Factor filtro = Numero de fil as del resultado I

Numero de fi las del origen

1000000 filas Factor filtro =0.2%

Figura 3. Ejemplo de factor filtro.

2000 filas

EI factor filtro tambiem se puede obtener para predicados compuestos. ~ste se puede derivar de los predicados simples siempre y cuando los valores de las columnas de los predicados simples no esten correlacionados. Por ejemplo, considerese el predicado compuesto CIUDAD = :CIUDAD AND APELLIDO = :APELLIDO. EI factor filtro de este predicado sera el producto del factor filtro de CIUDAD = :CIUDAD y de APELLIDO = :APELLIDO. Por ejemplo, si la columna

83

Page 10: j - Universidad Nacional de Colombia: Repositorio institucional UN · 2013-10-25 · En la figura 3 se observa la distribuci6n poblacional de todo el proceso evolutivo en el MAGO,

CIUDAD tiene 500 valores diferentes y APELLIDO tiene 1.000 valores diferentes entonces el factor filtro para el predicado compuesto sera 1/500 * 1/1 .000 =1/500.000. Este valor indica que existen quinientas mil posibles combinaciones para los valores de las columnas CIUDAD y APELLIDO.

1.000.000 fr las

1.000.000

1.000.000

Factor filtro =0.2%

Factor filtro = 0.1%

Factor filtro =0.1% X

0.2%

RESULJADO

Figura 4. Ejemplo de factor filtro para el predicado compuesto.

Considerese la siguiente consulta:

. ~\'E~l ?)l.10 ~~ ~~\:.~~ ~~~I?§:.\:.I~ s ~.~I!:.""we~~,~~ s: ~ ~~~~~ 1'tI.0,t.;1@~

Figura 5. Consulta 1.

Una consulta que involucra una sola tabla, y que usa un indice como el de la Tabla 1, usual mente s610 necesita una lectura aleatoria (10 ms) y una exploraci6n (Iecturas secuenciales) de una rebanada delgada del indice.

Tabla 1. Muestra de datos de un indice para la Consulta 1. En gris las filas para APELLIDO = 'TORRES'~CIUDAD ='MADRID'.

APELLIDO CIUDAD NOMBRE CNO ......... ... . ........... .. .. ...... ... ... .. ... ....... .. .............. ... ........... .. .. ........ .. ... .... ...... ... ... . TORRES BILBAO MARiA 0256349

TORRES MADRID ANDREA 0002587 TOR,RES MADRID BELINDA 4789513 TORRES MADRID CARLOS 2145632 ............. .............. ............. .......................... ................. ............. ............. TORRES MADRID ZULEMA 9876433 TORRES TOLEDO RODRIGO 0142789 ..... .. ...... ....... ... .. ... .... ....... .. .. .. . ..... ........ .. .. .... ..... .... .. ......... ..... ............ . ...... .......

84