Post on 19-Sep-2018
cenidet
Centro Nacional de Investigación y Desarrollo Tecnológico
Departamento de Ciencias Computacionales
TESIS DE MAESTRÍA EN CIENCIAS
Aplicación de la Topología Computacional a la Inspección Visual y el Control Inteligente
presentada por
José Luis Palacio Cinco Ing. en Sistemas Computacionales por el I. T. de Huatabampo
como requisito para la obtención del grado de:
Maestro en Ciencias en Ciencias Computacionales
Director de tesis: Dr. José Ruiz Ascencio
Cuernavaca, Morelos, México. 23 de febrero de 2009
cenidet
Centro Nacional de Investigación y Desarrollo Tecnológico
Departamento de Ciencias Computacionales
TESIS DE MAESTRÍA EN CIENCIAS
Aplicación de la Topología Computacional a la Inspección Visual y el Control Inteligente
presentada por
José Luis Palacio Cinco Ing. en Sistemas Computacionales por el I. T. de Huatabampo
como requisito para la obtención del grado de:
Maestro en Ciencias en Ciencias Computacionales
Director de tesis: Dr. José Ruiz Ascencio
Jurado:
Dr. Raúl Pinto Elías – Presidente Dr. Azucena Montes Rendón – Secretario
M.C. José Luis Ramírez Alcántara – Vocal Dr. José Ruiz Ascencio – Vocal Suplente
Cuernavaca, Morelos, México. 23 de febrero de 2009
Dedicatoria
A ti DIOS que me diste la oportunidad de vivir y regalarme una familia maravillosa. A mis padres Ramón René y María Luisa, quienes con su cariño, amor y apoyo incondicional, hicieron más grato este camino de superación personal y profesional. A mis hermanos Denisse y Ramón por su confianza y apoyo en todas las decisiones que he tomado en la vida.
A mi Pedasita por su amor, paciencia, comprensión, cariño y motivación en todo momento.
Agradecimientos
Al CONACyT:
Por los dos años de apoyo económico para llevar a cabo mis estudios de maestría.
Al cenidet:
Por la confianza depositada en mi y darme la oportunidad de realizar los estudios de maestría.
Agradezco la intensa labor y amistad de mi asesor Dr. José Ruiz Ascencio, quién a lo largo de todo el proceso de desarrollo de la tesis brindó su inquebrantable interés demostrándolo con su tiempo, aportación de ideas, revisando avances, presentaciones y cada uno de los capítulos de la tesis, además de compartir desinteresadamente sus amplios conocimientos y experiencia. Agradezco a mis revisores: Dr. Raúl Pinto Elías, Dr. Azucena Montes Rendón y M.C. José Luis Ramírez Alcántara por sus útiles comentarios y observaciones para mejorar el presente documento. Al grupo de I.A. (Dr. Raúl Pinto Elías, Dr. José Ruiz Ascencio, Dr. Gerardo Reyes Salgado y MC. Andrea Magadán) por la amistad y apoyo. A mis compañeros de generación Silvia, Jorge, Alejandro, Liliana, Helaine, Diana, Rosendo, Wilfrido, Richard, Deysi, Ebenezer, Guillermo, Janeth, Omar, Matilde, Claudia, Catalina, Eduardo y de otras generaciones Héctor Ulloa, Pedro Cruz, Daniel, María Luisa, Lázaro, Cynthia, Daniela y Oscar por los momentos que compartimos juntos. Agradezco a mi querida teacher Lilian por su amistad y paciencia.
i
Resumen
En esta tesis se hace una revisión de los resultados de la topología digital y la
topología computacional aplicables al análisis y solución de problemas en inspección visual
y control inteligente, dentro de la inteligencia artificial.
Se presentan implementaciones de algoritmos para encontrar componentes conexas en 2 y 3
dimensiones en espacios continuos y discretos, la teselación de Delaunay en N dimensiones
y el algoritmo alpha-shapes en N dimensiones, entre las más importantes.
Como casos de aplicación se usó el algoritmo alpha-shapes para detectar y visualizar
huecos o cavidades en un conjunto de datos de entrenamiento y se diseñó un algoritmo K-
vecinos con interpolación lineal para el modelado y control de sistemas dinámicos
invariantes en el tiempo a través de la ley de evolución de estados. Por último, se diseñó el
algoritmo inclusión en forma no convexa para detectar y describir intersección de conjuntos
de datos usando alpha-shapes.
ii
Abstract
A survey of results from digital and computational topology applicable to analysis
and solution of problems of visual inspection and intelligent control in artificial intelligence
is presented in this thesis.
Among the most important algorithms implemented are finding connected components in 2
and 3 dimensions, the N-dimensional Delaunay tessellation, and the N-dimensional alpha-
shapes algorithm.
As application cases, the alpha-shapes algorithm was used to detect and visualize holes in
data of a training set, and a K-nearest neighbor algorithm with linear interpolation was
designed for modeling and control of time-invariant dynamic systems through
approximation of the state evolution function. Lastly, the inclusion in non-convex shape
algorithm was designed to detect and describe data set intersection using alpha-shapes.
iii
Contenido
Resumen .................................................................................................................................. i
Abstract .................................................................................................................................. ii
Contenido ..............................................................................................................................iii
Lista de figuras ....................................................................................................................... v
Lista de tablas ........................................................................................................................ ix
Capítulo 1 Introducción ......................................................................................................... 1
1.1 Antecedentes ................................................................................................................. 2
1.1.1 Control inteligente .................................................................................................. 3
1.1.2 Inspección visual .................................................................................................... 4
1.1.3 Visualización N-dimensional .................................................................................. 4
1.2 Descripción del problema .............................................................................................. 4
1.3 Organización de la tesis ................................................................................................. 6
Capítulo 2 Análisis de la topología ......................................................................................... 7
2.1 Topología ...................................................................................................................... 8
2.2 Topología digital ........................................................................................................... 8
2.3 Topología computacional ............................................................................................. 13
2.4 Conclusión .................................................................................................................. 16
Capítulo 3 Control inteligente e inspección visual ................................................................ 17
3.1 Control inteligente ....................................................................................................... 18
3.1.1 Sistemas dinámicos............................................................................................... 18
3.1.1.1 Sistemas lineales y no lineales ....................................................................... 19
3.1.1.2 Función de transición de estados .................................................................... 19
3.1.2 Identificación ........................................................................................................ 20
3.1.3 Control ................................................................................................................. 21
3.1.3.1 Estructura de control modelo inverso ............................................................. 21
3.2 Inspección visual ......................................................................................................... 23
3.3 Comentarios ................................................................................................................ 24
Capítulo 4 Algoritmos .......................................................................................................... 25
4.1 Componentes conexas en espacios digitales (2D y 3D) ................................................ 26
4.1.1 Modelo del plano digital [Escribano, 2008] ..................................................... 26
4.1.2 Pseudocódigo del algoritmo de componentes conexas ........................................... 26
4.2 K-vecinos (N-D).......................................................................................................... 27
4.2.1 Etapa de preprocesamiento ................................................................................... 27
4.2.2 Archivos KDATOS.DAT y KINDICES.DAT ........................................................ 28
4.2.3 Recorrido por las regiones .................................................................................... 31
4.3 Interpolación lineal (N-D) ........................................................................................... 34
4.3.1 Pseudocódigo ....................................................................................................... 36
4.4 Teselación de Delaunay (N-D) ..................................................................................... 36
4.4.1 La estructura de Delaunay .................................................................................... 39
4.4.2 Diagrama de flujo del algoritmo ........................................................................... 40
iv
4.5 -shapes (N-D) ........................................................................................................... 41
4.5.1 Definiciones teóricas del algoritmo ...................................................................... 42
4.5.2 Alpha complex ..................................................................................................... 43
4.5.3 Pseudocódigo de Edelsbrunner para calcular el -shapes...................................... 44
4.6 Inclusión en forma no convexa (N-D) ......................................................................... 45
4.7 Componentes conexas basado en el MST (N-D) .......................................................... 48
4.8 Conclusión .................................................................................................................. 49
Capítulo 5 Aplicaciones ....................................................................................................... 51
5.1 Aplicación del algoritmo -shapes para reconstrucción de formas ............................... 52
5.1.1 Reconstrucción del conejo de Stanford en 2D con 1000 puntos ............................ 52
5.1.2 Reconstrucción del conejo de Stanford en 3D con 3595 puntos ............................ 54
5.2 Aplicación de los algoritmos -shapes y inclusión de forma no convexa para identificar
traslape en conjuntos de puntos en el espacio N-dimensional ........................................ 55
5.2.1 Detección de traslape en las componentes RGB ................................................... 57
5.2.2 Detección de traslape en las componentes RGB, tomando sólo los píxeles de los
bordes de las manzanas ............................................................................................. 59
5.2.3 Detección de traslape en las componentes RGB, tomando sólo los píxeles de los
centros de las manzanas ............................................................................................ 62
5.2.4 Detección de traslape en las componentes RGB normalizados .............................. 64
5.2.5 Detección de traslape en las componentes RGB y la Intensidad ............................ 66
5.2.6 Detección de traslape en las componentes RGB y la Intensidad regional obtenida
mediante el promedio de la intensidad de 4 puntos cardinales usando una máscara de
20x20 ........................................................................................................................ 67
5.3 Aplicación del algoritmo K-vecinos para identificar y controlar sistemas dinámicos ... 69
5.3.1 Pruebas en identificación de sistemas dinámicos .................................................. 69
5.3.1.1 Identificación de un sistema dinámico de primer orden lineal ........................ 70
5.3.1.2 Identificación de un sistema dinámico de primer orden no lineal ................... 73
5.3.1.3 Identificación de un sistema dinámico de segundo orden lineal ...................... 75
5.3.1.4 Identificación de un sistema dinámico de segundo orden no lineal ................. 77
5.3.2 Pruebas de control de sistemas dinámicos............................................................. 79
5.3.2.1 Control de un sistema dinámico de primer orden lineal .................................. 79
5.3.2.2 Control de un sistema dinámico de primer orden no lineal ............................. 80
5.3.2.3 Control de un sistema dinámico de segundo orden lineal ............................... 82
5.3.2.4 Control de un sistema dinámico de segundo orden no lineal .......................... 84
Conclusiones ....................................................................................................................... 87
Aportaciones .................................................................................................................... 88
Objetivos cubiertos ........................................................................................................... 88
Trabajos futuros ................................................................................................................. 91
Referencias bibliográficas .................................................................................................. 93
Anexos ................................................................................................................................. 99
Anexo A ......................................................................................................................... 100
Anexo B ......................................................................................................................... 101
Anexo C ......................................................................................................................... 102
v
Lista de figuras
Capítulo 2
Figura 2.1 Conexión de un grafo. ............................................................................................ 8 Figura 2.2 Mallado triangular, mallado cuadrangular y mallado hexagonal de izquierda a
derecha. .................................................................................................................................. 9 Figura 2.3 Imagen 2D binaria con 9 componentes conexas negras y 4 agujeros. ................... 10
Figura 2.4 A la izquierda ejemplo de 4-adyacentes de un punto, a la derecha ejemplo de 8-
adyacentes de un punto. ........................................................................................................ 10
Figura 2.5 6- y 26-vecindad de un punto en . ..................................................................... 11
Figura 2.6 Vecindades de un punto en , de un pixel en considerando 4-adyacentes, y de
un pixel en considerando 8-adyacentes, los números indican la distancia al punto. .......... 11 Figura 2.7 Imagen digital que contiene una componente conexa negra y dos blancas............ 12
Capítulo 3
Figura 3.1 Relación entrada-salida. ....................................................................................... 18
Figura 3.2 Propiedad de aditividad (o superposición). ........................................................... 19 Figura 3.3 Propiedad de homogeneidad. ................................................................................ 19
Figura 3.4 Selección de variables a considerar para la identificación de un sistema de orden n.
............................................................................................................................................. 21
Figura 3.5 Control utilizando el modelo de planta inversa de lazo abierto. ............................ 22 Figura 3.6 Control utilizando el modelo de planta inversa de lazo cerrado. ........................... 22
Figura 3.7 Selección de variables durante el control de una planta de orden n....................... 22 Figura 3.8 Sistema de visión para clasificación de manzanas. ................................................ 24
Capítulo 4
Figura 4.1 Puntos y su gráfica en el plano . ....................................................................... 28
Figura 4.2 (a) Puntos en el espacio . (b) Espacio dividido en regiones. (c) Archivo
generado a partir del espacio dividido en regiones. (d) Archivo de índices generado a partir
del espacio dividido en regiones. ........................................................................................... 29
Figura 4.3 Gráfica resultante al dividir en regiones el espacio. .............................................. 29 Figura 4.4 Archivo KDATOS.DAT y KINDICES.DAT. ......................................................... 30
Figura 4.5 Primer recorrido de regiones. ............................................................................... 31 Figura 4.6 Ejemplo de búsqueda en los archivos. Primero se busca en el archivo
KINDICES.DAT para saber en cuál renglón se encuentran los datos. Una vez obtenido el
rango de renglones que abarca la región se extrae del archivo KDATOS.DAT. ..................... 33
Figura 4.7 Siguiente recorrido del algoritmo. ........................................................................ 33 Figura 4.8 Ilustración del plano generado por tres puntos dados. (Imagen obtenida de
[Lehmann, 1982]) ................................................................................................................. 35 Figura 4.9 Representación de la interpolación lineal. ............................................................. 35 Figura 4.10 Un 0-simplejo es análogo a un punto en el espacio. ........................................... 37
vi
Figura 4.11 Un 1-Simplejo es análogo a una arista que une a dos puntos. .............................. 37
Figura 4.12 Un 2-simplejo es análogo a un triángulo en el plano. ......................................... 37 Figura 4.13 Un 3-simplejo es análogo a un tetraedro, una estructura que forma una pirámide
en el espacio. ........................................................................................................................ 37 Figura 4.14 No representa un complejo simplicial................................................................. 38
Figura 4.15 Si representa un complejo simplicial. ................................................................. 38 Figura 4.16 Ejemplos de simplejos de dimensiones 0 a 3. ..................................................... 38
Figura 4.17 Triangulación de Delaunay de un conjunto en el plano. ..................................... 39 Figura 4.18 Diagrama de flujo del algoritmo de teselación de Delaunay. ............................... 40
Figura 4.19 A la izquierda un politopo en el plano y a la derecha un politopo en el espacio. . 42
Figura 4.20 Simplejo -expuesto y no -expuesto. (Imagen tomada de [Fisher,2000]) ........ 43
Figura 4.21 Triangulación en el plano. .................................................................................. 45 Figura 4.22 Ejemplo de traslape en los componentes RGB.................................................... 45
Figura 4.23 Un 2-simplejo del plano. .................................................................................... 46 Figura 4.24 (a) Espacio de puntos. (b) MST del espacio de puntos. (c) Dos componentes
formados al eliminar aristas mayores dado algún valor de . (d) Tres componentes y dos
puntos aislados formados por algún valor de . ..................................................................... 48
Capítulo 5
Figura 5.1 Conejo de Stanford de 1000 puntos en 2D. .......................................................... 52
Figura 5.2 (a) Reconstrucción aplicando (b) Reconstrucción aplicando . (c)
Reconstrucción aplicando . (d) Reconstrucción aplicando . ................. 53
Figura 5.3 Estructura -complex obtenida al calcular ........................................ 53
Figura 5.4 (a) Reconstrucción aplicando . (b) Reconstrucción aplicando .
(c) Reconstrucción aplicando . (d) Reconstrucción aplicando . .............. 54
Figura 5.5 (a) Reconstrucción aplicando que contiene huecos o cavidades. (b)
Reconstrucción aplicando que muestra la concha convexa del conjunto. .................... 55
Figura 5.6 (a) Forma clase piel sana utilizando =15, (b) Forma clase piel mala utilizando
=25. Utilizando el conjunto RGB. ..................................................................................... 57 Figura 5.7 (a) Forma del conjunto RGB considerados como traslape. (b) Formas de las clases
sana (verde) y defectuosa (rojo) con el traslape (amarillo). ................................................... 58
Figura 5.8 (a) Forma clase piel sana utilizando =60. (b) Forma clase piel mala utilizando
=60. Utilizando el conjunto RGB de los bordes. ............................................................... 60 Figura 5.9 (a) Forma del conjunto de puntos considerados como traslape. (b) Formas de las
clases sana (verde) y defectuosa (rojo) con el traslape (amarillo). Utilizando el conjunto RGB
de los bordes. ........................................................................................................................ 61
Figura 5.10 (a) Forma clase piel sana utilizando =160. (b) Forma clase piel mala utilizando
=30. Utilizando el conjunto RGB de los centros. ............................................................... 62 Figura 5.11 (a) Forma del conjunto de puntos considerados como traslape. (b) Formas de las
clases sana (verde) y defectuosa (rojo) con el traslape (amarillo). Utilizando RGB de los
centros. ................................................................................................................................. 63
Figura 5.12 (a) Forma clase piel sana utilizando =30. (b) Forma clase piel mala utilizando
=50. Utilizando los conjuntos RGB normalizados............................................................. 64
Figura 5.13 (a) Forma del conjunto de puntos considerados como traslape. (b) Formas de las
vii
clases sana (verde) y defectuosa (rojo) con el traslape (amarillo). Utilizando RGB
normalizados. ........................................................................................................................ 65 Figura 5.14 (a) Diagrama general para obtener datos de entrenamiento desde un sistema
dinámico de primer orden. (b) Diagrama general para obtener datos de entrenamiento desde
un sistema dinámico de segundo orden. ................................................................................. 70
Figura 5.15 (a) Señal de entrada sin ruido. (b) Señal de entrada con 0.8 de ruido. .................. 71
Figura 5.16 (a) -shapes del conjunto de puntos obtenidos sin ruido con . (b) -
shapes del conjunto de puntos obtenidos con ruido con . Sistema dinámico de primer
orden. .................................................................................................................................... 71 Figura 5.17 Comportamiento del sistema dinámico de primer orden con una señal sinusoidal.
............................................................................................................................................. 72 Figura 5.18 (a) Respuesta del sistema dinámico real y el K-vecinos con entrenamiento sin
ruido. (b) Respuesta del sistema dinámico real y el K-vecinos con entrenamiento con ruido.
Sistema dinámico de primer orden. ....................................................................................... 72
Figura 5.19 (a) Señal de entrada sin ruido. (b) Señal de entrada con 0.8 de ruido. Sistema
dinámico de primer orden no lineal. ...................................................................................... 73
Figura 5.20 (a) -shapes del conjunto de puntos obtenidos sin ruido con . (b) -
shapes del conjunto de puntos obtenidos con ruido con . Sistema dinámico de primer
orden no lineal. ..................................................................................................................... 74 Figura 5.21 Comportamiento del sistema dinámico con una señal sinusoidal. ....................... 74
Figura 5.22 (a) Respuesta del sistema dinámico real y el K-vecinos con entrenamiento sin
ruido. (b) Respuesta del sistema dinámico real y el K-vecinos con entrenamiento con ruido.
Sistema dinámico de primer orden no lineal. ......................................................................... 75 Figura 5.23 (a) Señal de entrada sin ruido. (b) Señal de entrada con 0.5 de ruido. Sistema
dinámico de segundo orden lineal. ........................................................................................ 76 Figura 5.24 Comportamiento del sistema dinámico con una señal sinusoidal. Sistema
dinámico de segundo orden lineal. ........................................................................................ 76
Figura 5.25 (a) Respuesta del estado de sistema dinámico real y el K-vecinos con
entrenamiento sin ruido. (b) Respuesta del estado del sistema dinámico real y el K-
vecinos con entrenamiento con ruido. Sistema dinámico de segundo orden lineal. ................ 76 Figura 5.26 (a) Señal de entrada sin ruido. (b) Señal de entrada con 0.4 de ruido. Sistema
dinámico de segundo orden no lineal. .................................................................................... 77 Figura 5.27 Comportamiento del sistema dinámico con una señal sinusoidal. Sistema
dinámico de segundo orden no lineal. .................................................................................... 77
Figura 5.28 (a) Respuesta del estado del sistema dinámico real y el K-vecinos con
entrenamiento sin ruido. (b) Respuesta del estado del sistema dinámico real y el K-
vecinos con entrenamiento con ruido. Sistema dinámico de segundo orden no lineal. ........... 78
Figura 5.29 Arriba: control sobre el sistema dinámico de primer orden lineal utilizando una
señal sinusoidal. Abajo: control sobre el sistema dinámico de primer orden lineal utilizando
una señal triangular. .............................................................................................................. 80 Figura 5.30 Arriba: control sobre el sistema dinámico de primer orden no lineal utilizando una
señal sinusoidal. Abajo: control sobre el sistema dinámico de primer orden no lineal
utilizando una señal triangular. .............................................................................................. 81
Figura 5.31 Arriba: control del estado del sistema dinámico de segundo orden lineal
utilizando una señal sinusoidal. Abajo: control del estado del sistema dinámico de
segundo orden lineal utilizando una señal triangular. ............................................................. 82
viii
Figura 5.32 Arriba: control del estado del sistema dinámico de segundo orden lineal
utilizando una señal sinusoidal. Abajo: control del estado del sistema dinámico de
segundo orden lineal utilizando una señal triangular. ............................................................ 83
Figura 5.33 Arriba: control del estado del sistema dinámico de segundo orden no lineal
utilizando una señal sinusoidal. Abajo: control del estado del sistema dinámico de
segundo orden no lineal utilizando una señal triangular. ........................................................ 84
Figura 5.34 Arriba: control del estado del sistema dinámico de segundo orden no lineal
utilizando una señal sinusoidal. Abajo: control del estado del sistema dinámico de
segundo orden no lineal utilizando una señal triangular. ........................................................ 85
ix
Lista de tablas
Capítulo 4
Tabla 4.1 Resultado de los 8 vecinos más cercanos con respecto al punto (2.4,1.2). .............. 34
Capítulo 5
Tabla 5.1 Resultado del algoritmo de inclusión en forma no convexa para RGB. ................... 58
Tabla 5.2 Esta tabla muestra los parámetros y valores devueltos por el algoritmo -shapes
para cada clase, incluyendo traslape del conjunto RGB. ........................................................ 59 Tabla 5.3 Resultado del algoritmo de inclusión en forma no convexa con el RGB utilizando
bordes. .................................................................................................................................. 60
Tabla 5.4 Esta tabla muestra los parámetros y valores devueltos por el algoritmo -shapes para
cada clase del conjunto RGB de los bordes. .......................................................................... 61 Tabla 5.5 Resultado del algoritmo de inclusión en forma no convexa con RGB de los centros.
............................................................................................................................................. 62
Tabla 5.6 Esta tabla muestra los parámetros y valores devueltos por el algoritmo -shapes para
cada clase de los componentes RGB de los centros. .............................................................. 63 Tabla 5.7 Resultado del algoritmo de inclusión en forma no convexa del conjunto RGB
normalizados. ........................................................................................................................ 64
Tabla 5.8 Esta tabla muestra los parámetros y valores devueltos por el algoritmo -shapes para
cada clase de los conjuntos RGB normalizados. .................................................................... 65 Tabla 5.9 Resultado del algoritmo de inclusión en forma no convexa del conjunto RGBI. .... 66
Tabla 5.10 Esta tabla muestra los parámetros y valores devueltos por el algoritmo -shapes
para cada clase de los conjuntos RGBI. ................................................................................. 67
Tabla 5.11 Resultado del algoritmo de inclusión en forma no convexa en el conjunto RGBI
con la intensidad de 4 puntos cardinales con máscara de 4x4. ................................................ 68
Tabla 5.12 Esta tabla muestra los parámetros y valores devueltos por el algoritmo -shapes
para cada clase de los conjuntos RGBI con la intensidad de 4 puntos cardinales con máscara
de 4x4. .................................................................................................................................. 68
1
Capítulo 1
Introducción
Los datos en la computación científica se encuentran en su forma abstracta, dentro de
un conjunto finito de puntos en el espacio N-dimensional y es frecuentemente útil calcular la
forma de este conjunto [Mücke,1993]. Esto requiere de algoritmos que sean capaces de extraer
las estructuras topológicas contenidas en un conjunto, tales como la conectividad, la forma,
los huecos, cavidades, entre otros.
Existen varios métodos de visualización en la literatura que permiten observar datos en 1, 2 ó
3 dimensiones e incluso a más dimensiones haciendo combinaciones de las coordenadas de
éstas, pero cuando la dimensionalidad aumenta a más de 3, es difícil interpretar las
descripciones cualitativas de estos espacios [Ulloa,2008].
Las herramientas de la Topología Computacional son capaces de describir espacios
cualitativamente (conectividad, forma, huecos, cavidades, entre otros) las cuales pueden
apoyar a los investigadores a entender estas propiedades topológicas y poder tomar decisiones.
Las investigaciones en el área de Inteligencia Artificial (o I.A.), específicamente en el
reconocimiento de patrones, a menudo se utilizan datos de alta dimensionalidad. Es necesario
entender qué estructura tienen estos conjuntos de datos para poder aplicar algoritmos con los
parámetros adecuados, y así obtener mejor precisión en los resultados. También es de interés
conocer si un punto se encuentra en el interior de la forma de este conjunto de datos. Como la
inclusión sólo está bien definida en formas convexas, fue necesario proponer una búsqueda de
inclusión para formas irregulares (no convexas), y además, en espacios N-dimensionales.
Introducción Capítulo 1
2
En el área de Control Inteligente, es común identificar y controlar comportamientos de
sistemas dinámicos utilizando sistemas difusos, aunque existen otros enfoques como redes
neuronales, algoritmos neuro-difusos, entre otros. Estos algoritmos requieren como entrada un
conjunto de datos llamados “datos de entrenamiento” que son obtenidos previamente mediante
un muestreo del comportamiento de algún sistema dinámico real. Posteriormente estos datos
se utilizan en la etapa de aprendizaje que comúnmente se le conoce como “etapa de
entrenamiento”, donde hablando en términos llanos el algoritmo aprende a generalizar con ese
conocimiento.
Conocer la estructura de los datos de entrenamiento permite al investigador analizar y
anticipar el comportamiento de la salida del algoritmo computacional utilizado (redes
neuronales, neuro-difusos, difusos, etc). Las cavidades o huecos formados en los datos de
entrenamiento, representan regiones con ausencia de información, que pueden provocar que el
algoritmo computacional intente obtener la salida del sistema desde alguna de estas regiones, y
al tener ausencia de información, el resultado de la salida (consecuente) podría no ser
adecuada.
En este trabajo se plantea la exploración de las herramientas disponibles en la topología
computacional para el análisis topológico de datos, como búsqueda de cavidades o huecos,
descripción de formas, entre otros, y su utilidad en las áreas de inspección visual y control
inteligente.
En inspección visual se requiere detectar traslape de los datos de entrenamiento del sistema de
inspección visual diseñado en [López,2008], y además identificar si algún punto se encuentra
en el interior o exterior de la forma de un conjunto de datos.
En control inteligente se enfocó en el análisis de datos para encontrar estructuras que permitan
identificar regiones con ausencia de información utilizando herramientas de la topología
computacional. También se propone un algoritmo basado en el vecino más cercano para
identificar y controlar sistemas dinámicos mediante simulaciones en Matlab© [Dabney,2004].
1.1 Antecedentes
El área de la topología computacional actualmente no ha sido explorada en CENIDET,
por lo tanto no existen antecedentes en ninguna de sus 4 áreas disciplinarias (mecatrónica,
electrónica, computación y mecánica). Este trabajo será el primero en explorar esta área. Sin
embargo, se han desarrollado tesis que van relacionados con la aplicación de este trabajo de
investigación, las cuales se han enfocado en el área de visión artificial para caracterizar y
reconocer objetos.
También se han dirigido algunas tesis donde se utilizó técnicas de control inteligente con redes
neuronales y lógica difusa, con el propósito de aproximar la identificación y control de
sistemas dinámicos.
Enseguida se expone un breve resumen de las tesis que se consideran como antecedentes que
motivan la aplicación de este trabajo de investigación.
Capítulo 1 Introducción
3
1.1.1 Control inteligente
La tesis “Sintonización de controladores difusos basada en el método de gradiente
descendente” [Castillo,1999] se desarrolló en el Departamento de Ciencias Computacionales
donde se implementó una metodología basada en el método de gradiente descendente
encontrado en la literatura [Nomura,1992], que es capaz de sintonizar tanto conjuntos como
reglas difusas, lo que permite automatizar el diseño de controladores difusos de un sistema
dinámico a través del proceso de sintonización de sus parámetros en forma automática. Esto
evita la dependencia del conocimiento del experto humano. Las pruebas consistieron en
modelar sistemas algebraicos e identificar y controlar sistemas dinámicos.
La tesis “Implementación de una red neuronal holográfica para el control de un brazo robot
articulado” [Hernández,2003] se desarrolló en el Departamento de Ciencias Computacionales.
Una red neuronal holográfica fue utilizada para controlar un manipulador para un brazo de
robot planar de dos grados de libertad. El aprendizaje de la red neuronal se hizo mediante un
muestreo de los datos de entrada-salida, a los cuales se le aplicó el modelo de control inverso.
El modelo que se obtuvo de la red neuronal holográfica presenta buena capacidad de
generalización. También se realizó una comparación del control del brazo con el paradigma
backpropagation [Hilera,1995], concluyendo que las dos redes obtienen buenos resultados,
pero el tiempo de aprendizaje de la red holográfica es menor.
La tesis “Construcción de un brazo robótico de tres grados de libertad y su control mediante el
núcleo híbrido de transición de estados” [Jiménez,2005] se desarrolló en el Departamento de
Ingeniería Mecatrónica. En este trabajo se construyó un robot de tres grados de libertad con
arquitectura PUMA (Programmable Universal Manipulator for Assembly) [Leahy,1989]. El
controlador del brazo es difuso y se utilizó el método de planta inversa. Los parámetros del
controlador se sintonizaron con el algoritmo de Nomura desarrollado en [Castillo,1999],
donde los datos de entrenamiento se obtuvieron a partir de un control convencional de
posición PID (Proporcional-Integral-Derivativo). Con este trabajo se muestra la capacidad de
un sistema difuso para controlar un sistema dinámico no lineal.
Los trabajos anteriores emplean técnicas de control inteligente, las cuales requieren como
entrada un conjunto de datos (datos de entrenamiento) obtenidos previamente desde un
muestreo del sistema dinámico a controlar. Los datos de los sistemas dinámicos de primer
orden, se describen mediante tres variables: la entrada actual , el estado actual , y el
estado siguiente Esto implica trabajar en un espacio de 3-dimensiones el cual se
puede visualizar. Los sistemas de segundo orden ya no se pueden visualizar porque tienen por
lo menos cuatro dimensiones, y si son de órdenes superiores, se tendrán mayor
dimensionalidad.
Analizar los datos de entrenamiento es importante, puesto que deben ser adecuados para poder
generalizar el comportamiento del sistema dinámico. Si éstos contienen huecos o cavidades
muy grandes, al momento que una entrada se encuentre alguno de estos vacíos, el sistema
difuso o cualquier otro algoritmo utilizado para identificar o controlar, podría no interpolar el
consecuente de manera apropiada y finalmente tener resultados no adecuados. En este trabajo
se plantea el diseño de alguna herramienta que sea capaz de caracterizar o identificar estos
vacíos en el espacio.
Introducción Capítulo 1
4
1.1.2 Inspección visual
En el área de visión artificial se han desarrollado los trabajos [May,2004],
[Vergara,2003], [Ortíz,2007], [López,2008], en el primero se diseña un reconocedor de
objetos deformables considerando color y textura; el segundo trabaja con el reconocimiento de
texturas artificiales, que son caracterizadas por métodos estadísticos y de reconocimiento de
patrones; el tercer trabajo implementa un sistema de inspección de calidad de manzanas a
través de sus características visuales como color y textura; el cuarto utiliza un sistema difuso
como clasificador de un sistema de inspección visual para manzanas tipo golden, donde se
trata de clasificar piel sana y piel defectuosa.
El color como vector de características es de 3 dimensiones, si se agrega la textura se requiere
al menos una dimensión más, lo que estaría en un espacio de 4 dimensiones (las componentes
R, G, B y textura). En los sistemas de inspección visual, se puede tener el problema del
traslape de los datos de entrenamiento, generando dificultades en la precisión de los
resultados. Estos problemas generalmente son ocasionados por el tipo de iluminación, colores
muy variables, cambios de intensidad en la superficie de los objetos, entre otros. Si se desea
visualizar el traslape en este tipo de espacios es difícil por la N-dimensionalidad. Este trabajo
se dirigió hacia este problema.
1.1.3 Visualización N-dimensional
La característica común de los problemas anteriores y muchos otros de la I.A. es que
los datos son de alta dimensionalidad. El primer trabajo orientado a facilitar el conocimiento
de estos datos fue “Análisis y Visualización de Datos para Interpolación N-dimensional”
[Ulloa,2008], que es el antecedente inmediato de este trabajo de investigación. Éste se orientó
a visualizar datos en espacios de 4 o más dimensiones, mediante conjuntos de proyecciones a
espacios de tres dimensiones. Además de un método para dividir en regiones el espacio. Estos
métodos son buenos para visualizar datos, pero la visualización a veces no es suficiente para
conocer qué tipo de estructuras se forman en los espacios de alta dimensionalidad. Para
detectar estructuras (componentes conexas, huevos, cavidades) se necesita de un análisis
topológico, el cual es el tema de investigación que se propone en esta tesis.
1.2 Descripción del problema
En las investigaciones de la sección anterior, se manejan conjuntos de datos N-
dimensionales. En el caso de inspección visual, los vectores de características a menudo
crecen a más de 3-dimensiones, con lo que se dificulta observar el traslape de éstos. Identificar
traslape es útil para buscar estrategias que permitan a las clases ser separadas. Por ejemplo, en
el caso de las manzanas de la tesis [López,2008] se tienen dos clases, la clase de piel sana y la
clase piel defectuosa. Si estas clases están traslapadas, es difícil que un algoritmo de
clasificación pueda realizar la asignación a la clase correcta en el proceso de inspección.
En control inteligente se tiene la problemática de la identificación y control de sistemas
dinámicos. En CENIDET se ha utilizado el control inteligente basado en la aproximación a la
Capítulo 1 Introducción
5
ley de evolución de estados. Esta aproximación se puede realizar mediante redes neuronales,
lógica difusa y otros aproximadores N-dimensionales. Para un sistema computacional de estos
tipos, se requiere que los datos o conocimiento previo (en este caso datos numéricos), se
encuentren bien distribuidos en el espacio. Esto significa que la nube de datos no contengan
huecos o cavidades, porque si por alguna razón el sistema requiere interpolar dentro éstos, al
contener insuficiencia de datos, podría llegar a un estado del sistema dinámico no deseado.
El objetivo que se plantea para este trabajo es conocer los métodos de la topología
computacional y su aplicabilidad a problemas de la inteligencia artificial, usando datos
obtenidos de inspección visual y control inteligente. Como objetivos particulares se plantean
los siguientes:
1. Estudiar métodos para la identificación de cantidades topológicas invariantes:
Descripción de formas para la clasificación de datos.
Análisis de conectividad de conjuntos de datos.
Búsqueda de huecos en objetos para su descripción.
Otros, como compacidad y homología.
2. Implementar algoritmos topológicos para encontrar invariantes topológicos básicos en
datos de alta dimensionalidad provenientes de la inspección visual y el control
inteligente.
La metodología de solución propuesta para resolver los problemas es la siguiente:
Análisis de la topología en la computación.
Estado del arte de la topología computacional.
Analizar algoritmos de topología computacional en la literatura, que sean capaces de
describir un espacio métrico, esto es, identificar formas de conjuntos, que proporcionen
alguna manera de identificar huecos o cavidades. Lo ideal de estos algoritmos es que
trabajen en el espacio métrico N-dimensional.
Proponer un método para identificar traslape.
Utilizar Simulink© para la simular la identificación y control de sistemas dinámicos
[Dabney,2004].
El resultado de este trabajo es el siguiente:
La implementación del algoritmo -shapes para describir la forma de un conjunto de
puntos en un espacio métrico N-dimensional y verificar cavidades o huecos.
Diseño e implementación del algoritmo “inclusión en forma no conexa” para la
identificación de traslape en conjunto de datos.
Introducción Capítulo 1
6
Diseño e implementación del algoritmo K-vecinos para su tratamiento en la simulación
de identificación y control de sistemas dinámicos.
Diseño e implementación del algoritmo de interpolación lineal.
Los algoritmos pueden ser consultados en el capítulo 4 con más detalle, donde se encuentra un
pseudocódigo de cada uno de ellos.
1.3 Organización de la tesis
La organización de la tesis es de la siguiente manera:
Capítulo 2 muestra un análisis de la topología en la computación y el estado del arte.
Capítulo 3 muestra una introducción a los temas de inspección visual y control
inteligente.
Capítulo 4 presenta a detalle los algoritmos implementados durante el desarrollo de
esta tesis.
Capítulo 5 presenta las aplicaciones de algunos algoritmos propuestos para solucionar
los problemas planteados.
El apartado posterior corresponde a las conclusiones del trabajo y en otro apartado se
presentan los trabajos futuros que se pueden generar a partir de esta investigación.
Por último se muestran las referencias bibliográficas y los anexos.
7
Capítulo 2
Análisis de la topología
La descripción del problema en este trabajo indica que es necesario conocer las
estructuras que forman los datos en espacios N-dimensionales. Los métodos de visualización a
menudo son útiles para observar estas estructuras cuando la dimensionalidad es N 3, pero
cuando N>3 son difíciles de identificar. Para tener una aproximación de las estructuras
formadas en estos espacios se utilizan herramientas de la topología computacional. En este
trabajo se propone emplear algunas de estas herramientas.
En este capítulo se expone un análisis de la topología digital y computacional, además del
estado del arte de algunos trabajos que se han realizado y que de alguna manera aportan
conocimiento para solucionar el problema que se plantea en esta investigación.
El formato de este capítulo divide estas áreas1 en dos secciones. Algunos conceptos necesarios
son presentados conforme se va explorando el tema. Para empezar se presenta una definición
informal de topología donde más adelante se profundiza en la topología algorítmica.
En la sección 2.4 se presenta una discusión de los trabajos que aportan conocimiento para la
solución de los problemas propuestos.
1La topología digital y computacional son enfocadas a la computación, pero la digital se enfoca a espacios
discretos y la computacional a los espacios continuos, así que en la literatura se encuentra por áreas separadas.
Análisis de la topología Capítulo 2
8
2.1 Topología
La topología es una rama de la geometría que enfatiza la conectividad como el aspecto
más fundamental de un objeto geométrico. En topología, por lo tanto, se ignoran virtualmente
todos los rasgos geométricos enfocándose en la conectividad, tal como cualquier forma de
cambio en un objeto geométrico que al estirarlo o encogerlo podría causarle. Así los términos
utilizados en topología llegan a ser cada vez más importantes y útiles en otras ramas de las
matemáticas así como también en varios campos en las ciencias naturales [Sato,1996].
Algunos conceptos en topología han sido trasladados a métodos para desarrollar algoritmos
que describan la topología de un conjunto de puntos en un espacio finito. Al profundizar en el
tema de la topología algorítmica existen dos enfoques, la llamada topología digital y la
topología computacional.
Topología digital se enfoca a espacios discretos. Muy utilizado en algoritmos de visión
(procesamiento digital de imágenes) para computadora [Robins,1997].
Topología computacional se enfoca en espacios continuos [Robins,1997].
En las siguientes secciones se presentará un análisis y estado del arte en topología digital y
computacional.
2.2 Topología digital
La Topología como se explica en [Real,2005] es un área de las matemáticas que
privilegia fundamentalmente la noción de vecindad, adyacencia y relación entre objetos. Con
esto se puede afirmar que el concepto más representativo y emblemático de la topología es el
grafo, objeto abstracto que consta de vértices (o nodos) y lados (o aristas) entre pares de
vértices. Una codificación concreta de un grafo podría ser , donde y
el cual se puede visualizar en la figura 2.1.
Figura 2.1 Conexión de un grafo.
Las deformaciones o transformaciones planas o espaciales que llevan una conversión de un
grafo a otro equivalente se pueden catalogar como transformaciones topológicas. Extendiendo
esta definición informal a cualquier objeto donde se pueda hablar de vecindad entre sus
elementos, se dice que una propiedad de un objeto es de tipo topológico si no se altera ante
“transformaciones topológicas” sobre el mismo. Estas propiedades pueden ser el número de
huecos y componentes conexas.
a b
d c
a b
d c
a b
d c
Capítulo 2 Análisis de la topología
9
En matemáticas la topología trabaja con transformaciones sobre espacios continuos donde se
estudian la conectividad y otras propiedades topológicas. A fin de que muchos problemas en la
ciencia se trasladan a la computación, se han realizado trabajos en los cuales se orienta la
topología hacia espacios digitales como en [Eckhardt,2003].
Uno de los problemas más tratados en topología digital es la conectividad en imágenes
digitales como menciona [Rosenfeld,1979], ya que el procesamiento de imágenes digitales es
una disciplina que ha ido creciendo con amplias aplicaciones, entre otras:
Negocios (lectura automática de documentos)
Industria (inspección automatizada y ensamblado)
Medicina (radiología, hematología, etc.)
Ciencia (meteorología, geología, física, etc.)
La mayoría de los campos mencionados involucra el análisis de imágenes, esto es, a una
imagen dada, se construye una descripción de ésta, en términos de los objetos que contiene, o
de las regiones de las cuales está compuesta, así como también de sus propiedades y
relaciones.
Para identificar propiedades topológicas en imágenes digitales se requiere del uso de la
topología digital, porque las imágenes se encuentran en un espacio discreto. Rosenfeld en
[Rosenfeld,1979] comenta que una imagen es introducida a la computadora por medio de un
muestreo de los valores de brillantez en una cuadrícula discreta de puntos, y que se digitalizan
o cuantifican esos valores a un número finito de partes binarias. El resultado de este proceso es
llamado imagen digital; ésta es un arreglo rectangular de valores discretos. Los elementos de
este arreglo son llamados pixeles, o algunas veces sólo son llamados puntos. El valor de cada
pixel es llamado nivel de gris y va desde 0 hasta 255.
En [Real,2005] se menciona que un muestreo es una subdivisión de alguna imagen analógica
en porciones regulares. Enfatiza que las porciones que habitualmente más se utilizan son
cuadrados, aunque también se utilizan mallados o teselaciones triangulares o hexagonales,
como en la figura 2.2.
Figura 2.2 Mallado triangular, mallado cuadrangular y
mallado hexagonal de izquierda a derecha.
En la mayoría de los casos se trata con el mallado cuadrangular.
Las propiedades topológicas se han utilizado en un proceso específico del procesamiento
digital de imágenes, que es llamada la etapa de segmentación, que básicamente se trata de
asignarle una clase a los pixeles involucrados en la imagen, por lo tanto se obtienen
subconjuntos de pixeles.
Análisis de la topología Capítulo 2
10
Una vez segmentada la imagen en subconjuntos, puede describirse en términos de las
propiedades de esos subconjuntos y relaciones entre ellos. Por ejemplo, se podría buscar
cuáles de estos subconjuntos representan regiones con huecos, o cuáles están completamente
conectados. En [Xianozhu,2007] se utiliza el Número de Euler para efectuarlo. En la figura 2.3
se muestra una imagen con propiedades topológicas.
Figura 2.3 Imagen 2D binaria con 9 componentes
conexas negras y 4 agujeros.
Para determinar una topología en el espacio digital o , donde es igual al conjunto de los
números enteros, se establece localmente los vecinos de un punto cualquiera en dicho espacio.
En principio, existen dos soluciones muy intuitivas para este problema: la 4-adyacencia y la 8
adyacencia como lo define [Rosenfeld,1970], ver figura 2.4.
Figura 2.4 A la izquierda ejemplo de 4-adyacentes de un punto,
a la derecha ejemplo de 8-adyacentes de un punto.
Según [Eckhardt,2003] es generalizable a cualquier dimensión en un espacio digital , donde
expone las siguientes formalizaciones:
Dado un punto , los -vecinos de son todos los puntos con
coordenadas enteras tal que:
(2.1)
En el caso del plano aplicando la ecuación (2.1) se obtienen 8-vecinos de un punto, ver
figura 2.4 en la imagen de la derecha. Por otra parte, los -vecinos (o vecinos directos) de un
punto son todos los puntos tal que:
(2.2)
Capítulo 2 Análisis de la topología
11
de tal modo que en el plano aplicando la ecuación (2.2) se obtienen 4-vecinos de un punto,
ver figura 2.4 en la imagen de la izquierda. .
Las ecuaciones (2.1) y (2.2) están generalizadas para cualquier dimensión de los espacios
digitales, por ejemplo, a imágenes 3D donde los -vecinos da como resultado un total
de 26 vecinos, en caso de los 2(3)-vecinos da un total de 6 vecinos, ver figura 2.5.
Figura 2.5 6- y 26-vecindad de un punto en .
En el anexo A se muestra una gráfica de las vecindades generadas al aumentar las
dimensiones, lo cual da una idea del incremento en los cálculos computacionales que se
necesitan al aumentar las dimensiones.
A diferencia de la búsqueda de vecindad en un espacio , esta forma es mucho más amigable
e intuitiva. Cada pixel tiene un número finito de vecinos, a comparación del espacio continuo,
donde se obtienen infinitos vecinos utilizando bolas ver figura 2.6.
Figura 2.6 Vecindades de un punto en , de un pixel en considerando 4-adyacentes, y de un
pixel en considerando 8-adyacentes, los números indican la distancia al punto.
En este camino de la 4-adyacencia y la 8-adyacencia se encuentra con algunos problemas que
se describen en [Real,2005] pero los resolvió el matemático Azriel Rosenfeld en
[Rosenfeld,1981]. Para ver uno de los problemas es necesario entender el concepto de
componente conexa que a continuación se muestra:
Análisis de la topología Capítulo 2
12
Para definir el concepto de componente conexa en el marco de la 4-adyacencia o la 8-
adyacencia, se requiere determinar el concepto de camino entre dos puntos cualesquiera de .
Un 4-camino entre los puntos y de , es una sucesión finita de puntos
, tales que y son puntos 4-adyacentes, para todo valor desde
hasta . Una 4-componente conexa de una imagen digital binaria es el conjunto de
puntos de del mismo color, tal que para dos puntos cualesquiera de dicha componentes,
exista siempre un camino constituido por puntos de la misma que una ambos puntos.
Figura 2.7 Imagen digital que contiene una componente conexa negra y dos blancas.
En la imagen de la figura 2.7 se puede visualizar que existe una componente conexa que es de
color negra y dos componentes conexas de color blanco, pero eso es por intuición. Si
computacionalmente se busca la componente conexa utilizando 4-adyacentes se tiene que el
número de componentes conexas es de 10, mientras que el número de componentes conexas
blancas es de dos. En el caso de 8-adyacentes existe una componente conexa negra pero
también una componente conexa blanca, lo cual no es cierto.
Lo anterior Azriel Rosenfeld lo resolvió argumentando que el tipo de adyacencia que debían
de tener los pixeles negros de la imagen digital debía ser diferente al tipo de adyacencia de los
pixeles blancos. Esta idea constituye la base y fundamento del área de la topología digital
según [Real,2005].
Así, para resolver el problema anterior, se deben considerar 8-adyacentes para los pixeles
negros y 4 adyacentes para los pixeles blancos, lo que dará como resultado una componente
conexa de los pixeles negros y dos componentes conexas de los pixeles blancos al igual que la
figura 2.7.
Existen varios algoritmos que utilizan este enfoque de 4-adyacencia y 8-adyacencia para
realizar operaciones y obtener propiedades topológicas, como los algoritmos que se
encuentran en [Rosenfeld,1970], que son los siguientes:
Cálculo del número de componentes conexas.
Etiquetado de componentes conexas.
Borde de una imagen digital.
Algoritmo de adelgazamiento.
Entre otros.
Capítulo 2 Análisis de la topología
13
Para concluir, vale la pena mencionar lo que señala Eckhardt en [Eckhardt,1993], indica que la
topología y la geometría digital no son áreas nuevas en matemáticas, más bien se le ha dado
mucha aplicación en el ámbito del procesamiento digital de imágenes. Realmente, lo más útil
de la topología digital es que puede ser utilizado en cualquier espacio que sea discreto. Puede
profundizarse más en las formalizaciones de la topología digital en [Eckhardt,2003], que
define varios teoremas para los espacios discretos y generalizaciones de la vecindad en estos
tipos de espacios.
2.3 Topología computacional
Durante más de 20 años, la geometría computacional ha llegado ser un área muy
productiva, con una gran variedad de aplicaciones como en gráficos, robótica, diseño asistido
por computadora, entre otros. Sin embargo, se enfoca principalmente al análisis y diseño de
algoritmos para resolver problemas tipo geométrico. Por ejemplo, encontrar conchas
convexas, intersecciones de líneas, polígonos, líneas rectas, poliedros, entre otros. Utilizando
técnicas combinatorias para resolver estos problemas [Rivero,2005]. Pero en los últimos años
se ha requerido como menciona [Bern,1999] extender la geometría computacional a dominios
continuos, superficies curveadas y de alta dimensionalidad. Tal extensión hace que la
geometría computacional entre en contacto con la topología clásica.
También señala [Bern,1999] que la topología computacional abarca cuestiones algorítmicas,
esto es, el reconocer nudos, huecos, etc., y cuestiones topológicas en algoritmos, por ejemplo,
si una construcción discreta preserva la topología del dominio continuo fundamental.
En la actualidad, la investigación en la topología computacional es emprendida separadamente
por comunidades de topología, geometría computacional, gráficos por computadora, entre
otros. En algunos lugares se organizan talleres interdisciplinarios con un conjunto de metas en
topología computacional con el propósito de identificar problemas importantes y describir
técnicas claves comunes para muchas áreas [Bern,1999].
A parte de trabajar la topología computacional en forma separada, existen otros desafíos, el
principal problema es que el lenguaje de los topólogos es muy formal y abstracto, lo que
provoca que a cualquier computólogo se le dificulte entender este lenguaje. Además la
topología no es una materia que se imparta en la mayoría de las carreras de ingeniería, lo cual
dificulta el adaptarse a ella. Es por ello que en [Zomorodian,2005] se expone la existencia de
muchas barreras para interactuar en esta área, las cuales son:
Los computólogos no conocen el lenguaje de los topólogos. La topología, a
diferencia de la geometría, no es una materia requerida a nivel secundaria en
matemáticas y casi nunca es tratada a nivel licenciatura en las universidades que
imparten computación. La naturaleza axiomática de la topología hace el
problema más complicado, además de generar terminología incomprensible y
esotérica que hace al campo inaccesible para los que no son topólogos.
Análisis de la topología Capítulo 2
14
La topología puede ser muy enigmática y sin intuición, por lo tanto puede
parecer muy complicada y desconcertante.
La topología es un área con muchas ramas. Los computólogos a menudo sólo
requieren simples conceptos de cada rama. Mientras exista, por supuesto, apoyo
en topología por departamentos de matemáticas, el enfoque de esos cursos son
frecuentemente teóricos, preocupados con cuestiones profundas y resultados
existenciales.
Al analizar estas barreras o problemas, es importante reflexionar sobre una posible vinculación
entre matemáticos y computólogos, con el propósito de tratar de entender un lenguaje común y
así emprender juntos avances en temas sobre topología computacional. Esta área puede
proporcionar muchas herramientas útiles para la investigación, puesto que en el ámbito
científico frecuentemente se trabaja con espacios de alta dimensionalidad.
Como se ha mencionado, esta área se ha ido trabajando de manera separada, donde pudieran
existir varios enfoques. En este trabajo se analizó la topología computacional con la noción de
resolución variable que se presenta en [Robins,1997], donde se utiliza una variedad de
precisiones diferentes para deducir topología. Las técnicas de resolución variable pretenden
ofrecer una visión global de la forma de los datos examinándolos a lo largo de diferentes
niveles de resolución. La resolución más baja provee una visión global (concha convexa), y la
más alta los detalles (componentes conexas, huecos).
La resolución variable se utiliza por la necesidad de resolver problemas topológicos mediante
la computadora. El enfoque computacional de la topología puede ser muy subjetivo, por
ejemplo, si se tiene un conjunto de puntos en algún espacio de cuatro dimensiones ¿Cómo
decirle a la computadora que regrese la cantidad de cavidades que este espacio contiene?,
como no se conoce nada más que los puntos, es imposible desarrollar un algoritmo que pueda
ayudar a responder esta pregunta, si no se conoce cómo está conectado el espacio. Hay que
tomar en cuenta que la topología tradicional como hace referencia [Robins,2004] está
generalizada en precisión infinita, pero los datos en computación están limitados en extensión
y discretizados en espacio y tiempo. La generalización utilizada en computación es la
topología de resolución variable (o multirresolución).
Esta idea de la resolución variable está bien definida en [Robins,1997], donde se formaliza un
repertorio de teoremas, por ejemplo, el concepto de conectividad aceptado en topología es el
siguiente:
Un espacio topológico está conectado, si y sólo si, no puede ser descompuesto
en la unión de dos conjuntos cerrados, disjuntos y no vacíos. Si tal descomposición
existe entonces se dice que está desconectado, esto es, si existen dos conjuntos
cerrados y tal que y .
Observando el concepto anterior, se puede comparar con la técnica de resolución variable de
[Robins,1997] la cual es la siguiente:
Capítulo 2 Análisis de la topología
15
Se dice que un espacio está si puede ser descompuesto en
dos conjuntos que están separados por medio de una distancia de al menos . Esto
es, existen dos subconjuntos, y con y
. En caso contrario, se dice que está
. Si es para todo , entonces está
conectado en el sentido original.
Si se observa esta última definición puede ser perfectamente trasladada a computación
mediante algoritmos que conecten el espacio mediante alguna métrica. En este sentido, en
[Robins,1999] se utiliza el MST (minimun spanning tree por sus siglas en inglés) para
conectar el conjunto de puntos en el espacio con alguna métrica (en este caso se utilizó la
métrica euclidiana), de tal manera que se van eliminando aristas cuyas distancias sean mayores
a , y así se va deduciendo que componentes quedan conectadas a cierta resolución .
El mismo enfoque de resolución variable se utiliza para localizar cavidades o huecos en los
espacios. El uso del algoritmo -shapes (ver [Edelsbrunner,1994]) puede ser visto en algunos
artículos en la literatura para llevar a cabo estas tareas, en [Robins,2004] se recomienda
utilizar el algoritmo -shapes para localizar cavidades o huecos en los espacios. Este
algoritmo puede utilizarse en conjunto con la definición de los números de Betti: el primer
número identificado como , indica el número de componentes conexas, el segundo número
o corresponde al número de huecos o túneles y el tercero o representa el número de
vacíos encerrados.
Un algoritmo para determinar las componentes conexas y los huecos utilizando -shapes y los
números de Betti se presentó en [Robins,2002], donde se ejemplifica con fractales. Otro
algoritmo que también es empleado para determinar los números de Betti en un espacio de tres
dimensiones, puede ser consultado en [Delfinado,1995], donde también involucra a -shapes
para conectar el espacio, pero destinándolo hacia objetos geométricos sólidos.
Es importante aclarar que los números de Betti forma parte de una de las ramas de la
topología, llamada Topología Algebraica, específicamente en el tema de Homología de
grupos [Munkres,1984].
En el análisis inteligente de datos la codificación de las aristas del MST puede ser útil. Esto se
comprueba en [Robins,2004] mediante experimentos con imágenes satelitales sobre el Ártico,
donde la idea es contar cuántos témpanos de hielo existen, a ciertas resoluciones, lo que es
equivalente a contar componentes conexas. La identificación de órbitas de sistemas dinámicos
puede también ser llevado a cabo empleando el MST como se describe en [Robins,1999] y
además utilizarse como filtro para eliminar ruido de señales [Robins,2004]2.
En la tesis doctoral [Robins,2000], la autora aplica sus definiciones topológicas de resolución
variable para deducir propiedades topológicas de algunos sistemas dinámicos, como el atractor
de Hénon, y en otras aplicaciones en fractales como el triángulo de Sierpinkski, conjunto
Cántor, entre otros. Concluye que su acercamiento a la topología computacional con la
resolución variable es adecuado para espacios donde existe una métrica asociada.
2 Puede consultarse en la página 7 del artículo [Robins,2004].
Análisis de la topología Capítulo 2
16
En [Lucieer,2004]3 se desarrolla un software para visualizar las clases formadas del algoritmo
c-medias difuso. Las técnicas para visualizar son bolas, elipses, conchas convexas y -shapes,
concluyendo que con este último se visualiza de forma más precisa las clases. El software está
implementado sólo para 3-dimensiones, por lo tanto cuando existen más de tres descriptores se
seleccionan tres coordenadas para la visualización.
En el área de bioinformática se estudian las estructuras de las proteínas a partir de datos.
Entender la forma de una proteína es importante para conocer sus funciones. El interés es
obtener la identificación y caracterización de su superficie y además de las cavidades
formadas. En [Liang,1998] se diseñó un software llamado CAST capaz de realizar éstas tareas,
utilizando al algoritmo -shapes para obtener su forma. En [Edelsbrunner,1995] se desarrolló
un algoritmo basado en alpha complexes para reconstruir regiones llamadas “pockets”, las
cuales son definidas como regiones con accesibilidad limitada desde el exterior. Interesa
conocer el tamaño y la localización de estas regiones para estudiar las funciones que realiza
las proteínas.
2.4 Conclusión
Durante la exploración en la literatura de topología computacional, hay que tener
presente que éste es un tema multidisciplinario, en el sentido de que puede utilizarse
prácticamente en cualquier campo de investigación. De los artículos referenciados en los
párrafos anteriores, algunos de ellos son de interés para este trabajo. Las formalizaciones de la
topología digital de [Eckhardt,2003] es sin lugar a dudas una buena fuente de información, ya
que aporta ideas para trabajar en espacios discretos.
La técnica de resolución variable que se presenta en [Robins,1997], [Robins,1999],
[Robins,2000], [Robins,2002] y [Robins,2004] para obtener propiedades topológicas fue
también tomada en cuenta. [Zomorodian,2005] contribuyó con teoría sobre la aplicación de las
herramientas de la topología computacional.
El algoritmo -shapes que se expone en [Edelsbrunner,1994] es la herramienta que se decidió
implementar debido a las aplicaciones en visión artificial que se presentan en [Lucieer,2004] y
en bioinformática en [Liang,1998], los cuales muestran su utilidad para encontrar estructuras
en los datos. Otros algoritmos interesantes que no se implementaron son los números de Betti,
con los cuales se pueden contabilizar las componentes conexas, huecos, entre otros, utilizando
-shapes, como lo desarrollaron los autores de [Robins,2002] y [Edelsbrunner,1995]. En estos
artículos se enfatiza el algoritmo -shapes para obtener la forma de un conjunto en un espacio
métrico a cierta resolución. En este trabajo fue importante implementar este algoritmo
generalizado a espacios N-dimensionales, por el interés de trabajar en éstos. En el capítulo 4
se explica la implementación del algoritmo con detalle.
3 En la página 43 de esta tesis puede consultarse el tema.
17
Capítulo 3
Control inteligente e inspección visual
En este capítulo se presentan algunos temas de control inteligente y de inspección
visual que tienen relación con la problemática de esta tesis. Con el propósito de colocar al
lector en el contexto de esta tesis, se presenta un bosquejo de estos temas sin profundizar. Si
éste pretende más información sobre algún tema específico deberá dirigirse a la referencia
correspondiente al tópico.
La primera sección inicia con control inteligente, lo que significa que es necesario tomar en
cuenta algunos conceptos previos relacionados con sistemas dinámicos, debido a que los
controladores son diseñados para manipular a éstos. También es obligatorio conocer la
metodología de aproximación a la ley de evolución de estados NHTE (Núcleo Híbrido de
Transición de Estados) [Castillo,1999]4, ya que con ésta se obtienen los datos de muestreo
que se desean analizar.
En inspección visual se expone el uso del algoritmo de Nomura como clasificador del sistema
de inspección visual de [López,2008]. Este sistema se utiliza para clasificar la piel sana y
defectuosa de manzanas golden.
4 En la sección 4.2 se describe la metodología.
Control inteligente e inspección visual Capítulo 3
18
3.1 Control inteligente
Algunas definiciones tratan de explicar lo que es control inteligente, pero se puede
aclarar más si se conoce el concepto de control convencional, este es un conjunto de teorías y
métodos que se basan en la descripción de ecuaciones diferenciales o en diferencias. Por otro
lado, se entiende por control inteligente a los sistemas que tienen la habilidad para actuar de
forma apropiada en un entorno incierto. Otra manera de entenderlo es como el uso de técnicas
de I.A. para solucionar problemas del control convencional.
Existen varias técnicas que se han ido utilizando para desarrollar control inteligente, entre las
cuales se pueden mencionar:
Sistemas expertos en tiempo real
Control difuso (fuzzy control)
Control con redes neuronales artificiales
Para utilizar algunas de estas técnicas se requiere conocer la forma de obtener las variables de
estado de un sistema dinámico. En las secciones siguientes se verán algunos conceptos
necesarios para entender la metodología con la cual se obtienen las variables del
comportamiento de un sistema.
3.1.1 Sistemas dinámicos
El término sistema es muy general. En [Canales,1980] se formaliza con la siguiente
definición: “un sistema es una relación entre entradas y salidas”. Si se representa a las entradas
como y la salida como , un sistema podría denotarse matemáticamente por la relación de la
ecuación (3.1) [Canales,1980]:
(3.1)
La cual se muestra de forma gráfica en la figura 3.1.
Figura 3.1 Relación entrada-salida.
Los sistemas dinámicos se caracterizan por ser causales y en este trabajo se estudian los que
además son determinísticos. Un sistema es causal, como se menciona en [Ogata,2003], si su
salida en un instante dado no depende del valor de la entrada en instantes posteriores. En
cambio un sistema es determinístico si a una entrada le corresponde únicamente una salida.
y u S
Entrada Salida
Capítulo 3 Control inteligente e inspección visual
19
Los sistemas dinámicos son sistemas que son a la vez causales y determinísticos cuya
evolución en el tiempo a partir de un estado inicial se determina por un conjunto de reglas
[Canales,1980][Gröller,1999].
3.1.1.1 Sistemas lineales y no lineales
Los sistemas dinámicos pueden comportarse como sistemas lineales o no lineales. Un
sistema dinámico es lineal si cumple con las propiedades de aditividad (o superposición) y
homogeneidad [Canales,1980]5.
El principio de aditividad establece que para dos entradas independientes y las cuales
producen respectivamente salidas y , la respuesta de la suma de las dos entradas y en
general de entradas es la suma de las salidas independientes correspondientes para cada
entrada, como se ilustra en la figura 3.2.
Figura 3.2 Propiedad de aditividad (o superposición).
Homogeneidad significa que al multiplicar la entrada por un factor , la salida del sistema
se multiplica por el mismo factor , ver figura 3.3.
Figura 3.3 Propiedad de homogeneidad.
Un sistema no lineal es cualquier sistema que no cumpla con al menos una de estas dos
propiedades.
3.1.1.2 Función de transición de estados
El estado de un sistema dinámico es el conjunto más pequeño de variables internas, tal
que el conocimiento de estas variables en el tiempo inicial , conjuntamente con el
conocimiento de la entrada para , determinan completamente el comportamiento del
sistema en cualquier tiempo [Ogata,2003]6. Por lo tanto, el estado de un sistema
dinámico es representado por un vector donde sus componentes son las variables de estado
, esto es, .
5 Página 58 en la sección 3.1 6 Página 70 sección 3.4
S
S S
S
Control inteligente e inspección visual Capítulo 3
20
Dependiendo del número de variables de estado que determinan su comportamiento, se
establece el orden del sistema dinámico, esto es, si el sistema tiene un estado que se puede
representar por N reales, es de orden N.
En este trabajo se utilizó un enfoque que se ha ido elaborando en CENIDET, en el cual se le
conoce con el nombre ley de evolución de estados o NHTE, para identificar y controlar
sistemas con sólo conocer los estados. Esta se basa en la función de transición de estados
(FTE), donde la función relaciona el estado de un sistema en un instante al estado del
mismo sistema pero en un instante posterior cuando se aplica un segmento de entrada
.
Los argumentos de FTE son el tiempo final , el estado inicial , la entrada y el
tiempo inicial . Para determinar el estado siguiente es dada la expresión de la ecuación
(3.2) [Canales,1980]:
(3.2)
La cual se lee “El estado a partir del estado se llega aplicando la entrada
”
Con esta representación es posible determinar la salida del sistema en cualquier instante
conociendo el estado actual [Canales,1980].
En CENIDET la FTE es tratada por medio de la ley de evolución de estados NHTE
permitiendo estudiar cierto tipo de sistemas utilizando la ecuación (3.3) donde significa un
tiempo posterior. Para estudiar los sistemas dinámicos sólo se utiliza la información de los
estados y su entrada, ignorando el tiempo.
(3.3)
3.1.2 Identificación
La identificación de sistemas dinámicos se refiere a estimar el valor de ciertos
parámetros desconocidos de una planta basándose únicamente en el conocimiento de las
entradas y salidas [Canales,1980].
Una planta es un sistema dinámico que se propone identificar, simular o controlar.
Identificar un sistema dinámico es establecer su modelo matemático, pero si el sistema es muy
complejo de modelar, se pueden usar herramientas de la I.A. como la lógica difusa, redes
neuronales artificiales, entre otros [Castillo,1999].
Para identificar un sistema dinámico usando el método NHTE se debe contar con algún
método de interpolación y contar con una planta P, a la cual se aplica una señal de entrada ,
después se hace un muestreo de los valores de entrada y salida de la planta durante un
Capítulo 3 Control inteligente e inspección visual
21
intervalo de tiempo , para obtener los datos llamados “datos de entrenamiento”. Las
variables muestreadas que se conocen como antecedentes y consecuentes para un sistema
dinámico de orden siguen la ley de evolución de estados de la ecuación (3.3). Ver figura 3.4.
Figura 3.4 Selección de variables a considerar para la identificación de un sistema de orden n.
Los datos de entrenamiento se organizan en . Los
valores , donde representan los valores de los antecedentes. La variable
(también conocida como ) representa la salida resultante que se conoce también
como consecuente.
3.1.3 Control
El control es el principal objetivo de la teoría de sistemas. El control o controlador
manipula la entrada al sistema para obtener el efecto deseado en la salida del sistema. El
problema del control consiste en mantener la planta en un estado prefijado [Canales,1980].
Un controlador es robusto cuando es menos susceptible a cambios en los parámetros del
sistema o al ruido. Esto se refiere a que debe ser sensible a perturbaciones o variaciones de
parámetros externos [Castillo,1999].
Existen dificultades que impiden el obtener un buen controlador. En la metodología
convencional de control es necesario contar con un buen modelo de la planta. Si el modelo es
no lineal, de todas formas es difícil derivar el controlador. Los métodos basados en I. A. como
las redes neuronales y la lógica difusa no requieren de un modelo, pues trabajan directamente
con los datos de entrada y salida de la planta, y por su capacidad de generalización, pueden
controlar a un sistema lineal como uno no lineal con el mismo método.
3.1.3.1 Estructura de control modelo inverso
Este controlador se obtiene de la siguiente manera: primero se realiza una
identificación inversa del comportamiento de la planta a controlar, se conecta en
.
.
.
.
.
.
.
.
.
Control inteligente e inspección visual Capítulo 3
22
cascada, colocando primero a y conectando su salida a la entrada de . Si se obtiene una
identificación inversa ideal al aplicar como entrada a una señal de referencia ,
resultaría [Castillo,1999]7.
La figura 3.5 muestra una configuración de lazo abierto, lo cual no es deseable, ya que pueden
presentarse perturbaciones en el camino entre y la salida . En esta tesis se trabajó con el
modelo de lazo cerrado como el que se muestra en la figura 3.6.
Figura 3.5 Control utilizando el modelo de planta inversa de lazo abierto.
Figura 3.6 Control utilizando el modelo de planta inversa de
lazo cerrado.
En la sección 5.3.2 se explica la propuesta de un controlador basado en el algoritmo del vecino
más cercano para identificar la planta inversa de la dinámica de una planta a controlar.
Los datos de entrenamiento se obtienen mediante la identificación inversa de una planta de
orden como se muestra en la figura 3.7.
Figura 3.7 Selección de variables durante el control
de una planta de orden n.
7 Ver sección 5.3
ref
Consigna
y u
Control
Salida
Planta
Lazo de retroalimentación
ref
Consigna
y u
Control
Salida
Planta
Antecedentes Consecuente
.
.
.
Capítulo 3 Control inteligente e inspección visual
23
La configuración del diagrama de selección de variables para control se puede interpretar
como “encontrar la entrada que haga transitar a la componente del estado siguiente
a partir del estado actual ”. La componente del estado siguiente es la
señal de referencia que el controlador debe seguir [Ulloa,2008].
3.2 Inspección visual
En este tema es conveniente entender cuál es el significado de la palabra inspección en
el contexto industrial, con el propósito de deducir de manera intuitiva lo que son los sistemas
de inspección visual. A continuación se propone la siguiente definición:
“Inspección es una evaluación de la conformidad por medio de observación y dictamen,
acompañada cuando sea apropiado por medición, ensayo/prueba o comparación con patrones”
[ISO9000,2000]. De otra manera puede explicarse como un proceso en el cual se comparan
piezas, objetos individuales o materiales continuos fabricados según una norma, con vistas al
mantenimiento de cierto nivel de calidad. Con lo anterior se puede explicar que un sistema de
inspección visual se basa en la aplicación de técnicas de visión artificial y reconocimiento de
patrones para realizar algún proceso de inspección.
Los sistemas de inspección visual, como se deduce desde el párrafo anterior, son
principalmente aplicados en procesos industriales, especialmente en los procesos de calidad de
producción. Sus principales objetivos suelen ser: la independencia del factor humano; permitir
la observación de detalles no visibles por el ojo humano; mayor velocidad de inspección; entre
otros.
En estos tipos de sistemas, es común seleccionar descripciones que aporten una mejor
representación de los objetos. El propósito es obtener una muestra de estas descripciones
(comúnmente llamados datos de entrenamiento en el área de I.A.) de ciertos objetos
seleccionados. Estas descripciones sirven para entrenar a un cierto sistema clasificador (algún
sistema de reconocimiento de patrones) que posteriormente es el encargado de realizar la
clasificación cuando se obtengan datos nuevos.
Este trabajo se enfocó en proponer algoritmos que permitan al investigador analizar las
estructuras formadas y traslapadas en el espacio de descriptores, donde comúnmente estos
espacios son N-dimensionales. En la parte de experimentación se empleó los diferentes
conjuntos de descriptores seleccionados en el sistema de inspección visual que se diseñó para
manzanas golden [López,2008].
En [López,2008] se utilizó en la parte de visión artificial imágenes de manzanas con
iluminación controlada y como clasificador (reconocedor de patrones) un sistema difuso
[Nomura,1992]. Los descriptores fueron principalmente las tres componentes (RGB; Red,
Green y Blue por sus siglas en ingles) de cada píxel de la piel sana y defectuosa de las
manzanas, y para mejorar la representación se agregó la intensidad I, el cual convierte al
vector de características en N-dimensional.
Control inteligente e inspección visual Capítulo 3
24
El sistema difuso se encarga de asignar la pertenencia entre el conjunto de valores entre 0 y 1
que representan la piel sana y defectuosa respectivamente. Lo ideal es que este clasificador se
acerque a los valores mencionados para que la clasificación sea aceptable. Si los valores se
aproximan a 0.5 se tiene un problema de incertidumbre. Las descripciones pueden no estar
representando adecuadamente a la piel de las manzanas, lo que requiere continuar con otras
estrategias.
En la figura 3.8 se muestra un diagrama general del sistema de inspección visual diseñado en
[López,2008], en los sistemas difusos las descripciones son llamadas antecedentes y los
resultados como consecuentes. En este caso los antecedentes son las componentes RGB y I de
la piel de las manzanas y los consecuentes son los valores objetivos que se desean alcanzar, en
este caso 0 y 1.
Figura 3.8 Sistema de visión para clasificación de manzanas.
3.3 Comentarios
Con estos temas se pretende que el lector tenga una visión general de los temas en que
se enfocó este trabajo, principalmente donde se origina la problemática a resolver, la cual va
dirigida al análisis topológico de los datos. En control inteligente la necesidad es analizar los
datos de entrenamiento que se obtienen mediante muestreo. En inspección visual es
importante el análisis de los datos de los descriptores para detectar traslape como ya se definió
en la descripción del problema.
R
G
B
I
Sistema
difuso
0 (defectuoso)
1 (sano)
Antecedentes Consecuente
Función de color
25
Capítulo 4
Algoritmos
En este capítulo se presentan los algoritmos analizados y propuestos para resolver los
problemas que se plantearon en este trabajo. Algunos fueron seleccionados desde la literatura,
los cuales se analizaron e implementaron para verificar su utilidad en el trabajo. Éstos fueron
los siguientes: componentes conexas en espacios digitales; teselación de Delaunay; -
shapes; y componentes conexas basado en el MST.
También se propusieron algoritmos para realizar tareas conjuntas con algunos de los
algoritmos anteriores. Éstos fueron los siguientes: K-vecinos; interpolación lineal; e inclusión
en forma no convexa. Todos fueron desarrollados utilizando Matlab© 7 basado en
[Hanselman,2005].
En las siguientes secciones se exponen los algoritmos a detalle, mostrando sus pseudocódigos
para un mejor entendimiento. Además se incluye una conclusión general de este capítulo sobre
la aportación de éstos en este trabajo de investigación.
Más adelante en el capítulo 5 se muestran las aplicaciones de algunos de los algoritmos
mencionados.
Algoritmos Capítulo 4
26
4.1 Componentes conexas en espacios digitales (2D y 3D)
La búsqueda de componentes conexas es una de las descripciones más utilizadas en la
visión artificial. En algunos libros de visión como [González,1996] no se menciona como un
algoritmo topológico para facilitar la comprensión del estudiante, y no profundizarlo en el área
de topología. Como los algoritmos de componentes conexas tienen un tinte topológico, se
analizó e implementó una variante de éste para entender algunas cuestiones de
dimensionalidad que se encuentran en [Eckhardt,2003]. El propósito es visualizar alguna
futura utilidad donde se trabaje con espacios digitales de alta dimensionalidad.
El algoritmo expuesto en [Escribano,2008] es simple y eficaz para obtener las componentes
conexas en imágenes digitales binarias bidimensionales. En la mayoría de la literatura sólo se
considera para dos dimensiones, pero las ecuaciones de [Eckhardt,2003] demuestran que la
topología digital está generalizada a N-dimensiones.
En este trabajo se implementó el algoritmo de etiquetamiento de componentes conexas de un
espacio digital de 3-dimensiones, para aplicar las ecuaciones (2.1) y (2.2) de [Eckhardt,2003].
Antes de iniciar con el algoritmo se presentará la formalización necesaria y posteriormente se
continúa con un pseudocódigo que describe al algoritmo.
4.1.1 Modelo del plano digital [Escribano,2008]
Una imagen digital 2-dimensional es una cuaterna donde y
Una imagen digital 3-dimensional es una cuaterna donde y
Los puntos se llaman puntos negros. Los puntos de se llaman puntos blancos.
Para los puntos negros se utiliza la relación de m-adyacencia y para los puntos blancos
se utiliza la relación de n-adyacencia.
4.1.2 Pseudocódigo del algoritmo de componentes conexas
Si es una imagen digital -dimensional, se pueden etiquetar las
componentes de N realizando dos rastreos fila por fila.
Durante el primer rastreo, para cada punto , se examinan los vecinos adyacentes
en la fila anterior y a la izquierda en la misma fila que p. Si existen, ya han sido
visitados por el rastreo, y si son negros ya han sido etiquetados.
Si todos son blancos, se asigna a p una nueva etiqueta, y si alguno es negro, p hereda la
etiqueta de uno de ellos. Si hay etiquetas diferentes, se registra el hecho de que son
equivalentes, esto es, pertenecen a la misma componente.
Capítulo 4 Algoritmos
27
Cuando se completa este rastreo, cada punto negro tiene una etiqueta, y no se ha
asignado la misma etiqueta a puntos que pertenezcan a diferentes k-componentes,
aunque puede que se asignen etiquetas diferentes a puntos en la misma k-componente.
Ahora se ordenan las parejas equivalentes en clases de equivalencia, y se escoge una
etiqueta para representar cada clase. Finalmente, se realiza un segundo rastreo de la
imagen y se sustituye cada etiqueta por el representante de cada clase. Cada
componente ha sido ahora etiquetada de forma única.
El pseudocódigo anterior se generaliza fácilmente con las ecuaciones de [Eckhardt,2003]. En
este trabajo se implementó el conteo de componentes en un espacio de 3-dimensiones.
4.2 K-vecinos (N-D)
En esta sección se presenta el diseño y modificación del algoritmo K-vecinos con
perspectiva de aplicarlos a simulaciones de identificación y control de sistemas dinámicos.
Para desarrollar este algoritmo, se utilizó la aportación del método para la detección de
regiones sobre-muestreadas o desprovistas de datos de la tesis [Ulloa,2008]. La motivación
de utilizar el método, fue desarrollar un algoritmo que encuentre los K-vecinos de forma
eficiente con el propósito de que pueda ejecutarse en simulaciones.
La idea de desarrollar este algoritmo, se basa en experimentar qué tan bueno puede ser para
interpolar con los vecinos más cercanos en el caso de identificación y control. Se tiene la
certeza de que estos tipos de algoritmos no requieren una etapa de entrenamiento, sólo algún
tipo de preprocesamiento de los datos, lo cual es menos costoso computacionalmente.
4.2.1 Etapa de preprocesamiento
El algoritmo consta de una etapa de preprocesamiento, que se encarga de organizar los
datos de tal manera que se puedan localizar los vecinos más cercanos de manera eficiente.
Como ya se mencionó al inicio de esta sección, se utilizó el método para la detección de
regiones sobre-muestreadas o desprovistas de datos de [Ulloa,2008] (de aquí en adelante se
mencionará como método para crear regiones). Este método se encarga de dividir cada
dimensión de los datos o puntos en regiones que el usuario especifica. Cabe destacar, que se
realizaron unas modificaciones para lograr que el programa proporcionara dos archivos, los
cuales son:
KDATOS.DAT. Contiene los datos, donde cada fila del archivo corresponde a un
punto en el espacio de datos, junto con la región a la que pertenece cada uno de los
puntos (este archivo se almacena físicamente con el nombre KDATOS.DAT). Este
archivo se encuentra ordenado por regiones.
Algoritmos Capítulo 4
28
KINDICES.DAT. Almacena un índice para cada región, se encuentra ordenado por
regiones, además de una columna adicional que registra la posición en la cual inicia la
región en el archivo KDATOS.DAT (Este archivo se almacena físicamente con el
nombre KINDICES.DAT).
4.2.2 Archivos KDATOS.DAT y KINDICES.DAT
Estos archivos realizan un trabajo importante en la reducción de tiempo en las
búsquedas. Al estar éstos ordenados por regiones, proporciona una forma de búsqueda
eficiente. A continuación se presenta un ejemplo de la creación de estos archivos.
Suponer que se tienen los siguientes puntos y su gráfica en el plano , ver figura 4.1.
1 - ( 0.4 0.7 ) 2 - ( 0.8 0.3 )
3 - ( 0.8 0.9 )
4 - ( 1.3 0.7 )
5 - ( 1.6 1.4 ) 6 - ( 1.8 1.4 )
7 - ( 2.2 1.2 ) 8 - ( 0.6 1.6 )
9 - ( 1.4 1.8 ) 10 - ( 1.4 1.6 )
11 - ( 2.9 1.7 ) 12 - ( 0.3 2.3 )
13 - ( 0.8 2.4 ) 14 - ( 1.9 2.2 )
15 - ( 2.7 2.4 )
Figura 4.1 Puntos y su gráfica en el plano .
Enseguida, se requiere formar las regiones con el método para crear regiones. Este método se
modificó para proporcionar dos archivos (KDATOS.DAT, KINDICES.DAT). En la figura 4.2
se ilustra un diagrama con las siguientes etapas, en (a) se encuentra el espacio de puntos, la
etapa ilustrada en (b) se obtiene cuando se aplica el método de división de regiones, donde
finalmente este método genera los archivos que son mostrados en (c) y (d). También se le pasa
un parámetro adicional que toma dos valores, en el cual, si el valor es 1, significa que los datos
contienen consecuente, así que el programa no toma el valor de consecuente como una
coordenada, sin embargo, este valor se conserva. Si el valor es 0, significa que los datos no
contienen consecuente.
0
0.5
1
1.5
2
2.5
3
0 0.5 1 1.5 2 2.5 3 3.5
x
y
Capítulo 4 Algoritmos
29
Figura 4.2 (a) Puntos en el espacio . (b) Espacio dividido en regiones.
(c) Archivo generado a partir del espacio dividido en regiones. (d) Archivo de índices generado a partir del espacio dividido en regiones.
El programa se ejecuta de la siguiente manera, en el caso del ejemplo de arriba, como no
contiene consecuente la instrucción sería la siguiente:
>> KCargarDatos(0);
El programa pedirá las regiones por dimensión, en este caso, se asumirá que se le proporcionó
6 regiones por dimensión, que resultarán 36 regiones como se ve en la figura 4.3.
Figura 4.3 Gráfica resultante al dividir en regiones el espacio.
Índice de la
región
x
y
x1 y1 C1 R1 R1
. . . . . .
. . .
x2 y2 C2 R1 R2
x3 y3 C3 R2 R1
xn yn Cn Ri Rj
R1 R1 1
R1 R2 2
R2 R1 3
Ri Rj n
. . .
. . .
. . .
. . .
KDATOS.DAT KINDICES.DAT
(a) (b)
(c) (d)
4,3
5,5
5,4
5,3
5,2
5,1
4,5
4,4
4,2
4,1
3,5
3,4
3,3
3,2
3,1
2,5
2,4
2,2
2,1
1,5
1,4
1,3
1,2
1,1
2,3
y
x
y
x
Algoritmos Capítulo 4
30
Los archivos KDATOS.DAT y KINDICES.DAT quedan como se observa en la figura 4.4.
Figura 4.4 Archivo KDATOS.DAT y KINDICES.DAT.
En el archivo KDATOS.DAT destaca una columna llamada “[Consecuente]”, se encuentra
encerrado entre corchetes para describir como un dato que es opcional. Volviendo al caso de la
instrucción KCargarDatos(Parámetro), si el parámetro es 0, entonces en el archivo no se
tomará ningún valor como consecuente.
Otra característica que hay que destacar, es que cuando los datos son de más de dos
dimensiones, por ejemplo, el caso de tres dimensiones, entonces el archivo KDATOS.DAT y
KINDICES.DAT tendrán el siguiente aspecto.
KDATOS.DAT
KINDICES.DAT
Se observa que se agrega al archivo la tercera dimensión, en este caso, Z, y además el índice
de la región Rk. De manera similar sucede con el archivo KINDICES.DAT donde se agrega
Rk.
Con la explicación anterior, se concluye de manera general lo siguiente:
donde N es igual a la dimensionalidad de los datos.
Indice Ri Rj Rk IndKDATOS
1
,
1
1
,
41
,
31
,
2
1
,
5
1
,
6
2
,
1
2
,
42
,
32
,
2
2
,
5
2
,
6
3
,
1
3
,
43
,
33
,
2
3
,
5
3
,
6
4
,
1
4
,
44
,
34
,
2
4
,
5
4
,
6
5
,
1
5
,
45
,
35
,
2
5
,
5
5
,
6
6
,
1
6
,
46
,
36
,
2
6
,
5
6
,
6
Indice X Y … N [Consecuente] Ri Rj … RN
Indice Ri Rj … RN IndKDATOS
1
,
1
1
,
41
,
31
,
2
1
,
5
1
,
6
2
,
1
2
,
42
,
32
,
2
2
,
5
2
,
6
3
,
1
3
,
43
,
33
,
2
3
,
5
3
,
6
4
,
1
4
,
44
,
34
,
2
4
,
5
4
,
6
5
,
1
5
,
45
,
35
,
2
5
,
5
5
,
6
6
,
1
6
,
46
,
36
,
2
6
,
5
6
,
6
Capítulo 4 Algoritmos
31
4.2.3 Recorrido por las regiones
Las regiones son utilizadas para identificar los vecinos más cercanos sin necesidad de
recorrer todos los puntos que se encuentren en el espacio. Para lograr lo anterior, se desarrolló
el algoritmo K-vecinos que utiliza el método para crear regiones. Este algoritmo realiza un
recorrido sobre las regiones creadas. Inicia recorriendo las regiones que son vecinas a la
región donde se encuentra un punto (punto objetivo), al cual se desea buscar su vecindad.
Enseguida se explicará con más detalle el algoritmo.
Primero se identifica la región del punto objetivo y se calcula el número de sus regiones
vecinas obtenidas desde la ecuación (4.1), donde d es el número de dimensiones.
(4.1)
Esta ecuación se tomó del artículo [Eckhardt,2003].
Un ejemplo podría ser si el punto objetivo se localiza en la región (5,3), utilizando la ecuación
(4.1) dará el siguiente resultado:
esto ayuda a identificar cuántas regiones vecinas existen en la región donde el punto objetivo
se encuentra. Como se tiene la región (5,3) del punto objetivo, sus 8 regiones vecinas
aplicando la ecuación (4.1) serán las regiones {(4,2),(4,3),(4,4),(5,4),(6,4),(6,3),(6,2),(5,2)},
ver figura 4.5. Al obtener estas regiones, también se conocen los datos que contienen, con los
cuales se calcula la distancia euclidiana, si ya se encontró el número de vecinos solicitados (en
este caso 8) el algoritmo finaliza, de lo contrario, continúa buscando en las siguientes regiones
vecinas, ver figura 4.7. Con este método se observa que sólo se recorren las cuadrículas donde
se encuentran los vecinos más cercanos, en el mejor de los casos. En el peor de los casos se
recorrerán todas las regiones, lo cual es equivalente a ejecutar el algoritmo primitivo del
vecino más cercano.
Figura 4.5 Primer recorrido de regiones. x
y
Algoritmos Capítulo 4
32
En la búsqueda de regiones, los archivos tienen un rol muy importante en la eficiencia. En la
figura 4.5, se observa que el punto objetivo está representado con una estrella. Esta
representación se refiere que es un punto cualquiera, en este caso se supone que es el punto
(2.4,1.2). A continuación se describe con más detalle los pasos que realiza el algoritmo para
buscar y recorrer las regiones.
Paso 1
Asignar el número de cuadrícula por dimensión. Para este ejemplo el número de
divisiones es 6 para la dimensión y 6 para la dimensión , ver figura 4.5.
Paso 2
Dado el punto objetivo (2.4,1.2) se obtiene la región a la que pertenece el punto
aplicando la ecuación (4.2).
(4.2)
La es el valor de la coordenada en la dimensión d,
son los valores mayores y menores de los datos en la
dimensión d, y es el número de divisiones especificada por
dimensión. El resultado es un número entero mayor o igual a uno. Los
valores y son almacenados en los archivos
KDIVISION.DAT, KMINIMO.DAT y KMAXIMO.DAT respectivamente.
Si entonces , si
entonces [Ulloa,2008].
En este caso utilizando el punto objetivo (2.4,1.2) se obtiene como resultado la
región (5,3).
Paso 3
Una vez obtenida la región (5,3) se busca en sus regiones más cercanas, utilizando
la ecuación (4.1):
Paso 4
Una vez obtenida las regiones se obtienen los puntos que contiene cada región.
Los puntos son obtenidos de la siguiente manera. A partir de las 9 regiones
recorridas se almacenan sus puntos. En la figura 4.6 se observa de manera general
cómo el algoritmo accede al archivo KINDICES.DAT para buscar la posición
donde se encuentran los datos de cada región en el archivo KDATOS.DAT.
Capítulo 4 Algoritmos
33
0
0.5
1
1.5
2
2.5
3
0 0.5 1 1.5 2 2.5 3 3.5
1,1
1,4
1,3
1,2
1,5
1,6
2,1
2,4
2,3
2,2
2,5
2,6
3,1
3,4
3,3
3,2
3,5
3,6
4,1
4,4
4,3
4,2
4,5
4,6
5,1
5,4
5,3
5,2
5,5
5,6
6,1
6,4
6,3
6,2
6,5
6,6
Figura 4.6 Ejemplo de búsqueda en los archivos. Primero se busca en el
archivo KINDICES.DAT para saber en cuál renglón se encuentran los datos.
Una vez obtenido el rango de renglones que abarca la región se extrae del archivo KDATOS.DAT.
Una vez que los datos fueron extraídos del archivo, se buscan las regiones más cercanas las
cuales son {(4,2),(4,3),(4,4),(5,4),(6,4),(6,3),(6,2),(5,2)}. Para mayor detalle ver figura 4.5.
Pero como las regiones {(4,4),(5,4),(6,3),(4,2),(5,2),(6,2)} están vacías, no se toman en cuenta.
Los puntos obtenidos son los siguientes:
Región 6,4 punto (2.9,1.7)
Región 5,3 punto (2.2,1.2)
Región 4,3 puntos (1.6,1.4), (1.8,1.4)
Si se requiere obtener los 8 vecinos más cercanos, los datos de las regiones vecinas no son
suficientes en el ejemplo que se está siguiendo. Por lo tanto, se requiere visitar las regiones
que se encuentran alrededor de las regiones que ya han sido localizadas, como se ve en la
figura 4.7.
Figura 4.7 Siguiente recorrido del algoritmo.
5,3 --> 13
x
y
Algoritmos Capítulo 4
34
Observando la figura 4.7, ahora se tiene los siguientes puntos:
Región 6,4 punto (2.9,1.7)
Región 5,3 punto (2.2,1.2)
Región 4,3 puntos (1.6,1.4), (1.8,1.4)
Región 3,2 punto (1.3,0.7)
Región 3,4 puntos (1.4,1.8), (1.4,1.6)
Región 4,5 punto (1.9,2.2)
Región 6,5 punto (2.7,2.4)
Al tomar como referencia el punto objetivo (2.4,1.2), el resultado de los 8 vecinos más
cercanos serán los puntos sombreados de la tabla 4.1:
Tabla 4.1 Resultado de los 8 vecinos más cercanos con respecto al punto (2.4,1.2).
En la tabla 4.1 se observa que el algoritmo no requirió visitar todos los datos del archivo
KDATOS.DAT para buscar a sus vecinos más cercanos, en vez de ello, se realizó por regiones,
lo que permite ir obteniendo los datos conforme se van necesitando.
En el anexo B se presenta el esquema conceptual de este algoritmo, donde se puede visualizar
de una manera general la secuencia de cada proceso que lo compone. En el capítulo 5 en la
sección 5.3 se prueba este método en un ambiente de simulaciones de sistemas dinámicos.
4.3 Interpolación lineal (N-D)
En la sección anterior se definió el funcionamiento del algoritmo K-vecinos que se
propuso en este trabajo. Este algoritmo va enfocado a la experimentación de su
comportamiento en la simulación de identificación y control de sistemas dinámicos. Como ya
se explicó el algoritmo encuentra los vecinos más cercanos de manera eficiente en el mejor de
los casos, pero se requiere de otro algoritmo que interpole basándose en la vecindad.
En este trabajo de investigación se diseñó un método de interpolación lineal basado en la
ecuación general del plano, obtenida de [Lehmann,1982], en donde se encuentra el siguiente
teorema.
X Y Distancia
2.2 1.2 0.20
1.8 1.4 0.63
2.9 1.7 0.71
1.6 1.4 0.82
1.4 1.6 1.08
1.9 2.2 1.12
1.4 1.8 1.17
1.3 0.7 1.21
2.7 2.4 1.24
Capítulo 4 Algoritmos
35
X
Y
Z
La ecuación (4.3), es la ecuación general del plano,
(4.3)
en donde A, B, C y D son constantes, y [A, B, C] son los números directores de su normal.
Figura 4.8 Ilustración del plano generado por tres puntos dados.
(Imagen obtenida de [Lehmann, 1982])
En la figura 4.8 se observa que para obtener la ecuación de un plano en el espacio se
requieren al menos tres puntos no colineales. Lo mismo se puede aplicar en otras dimensiones,
generalizando la ecuación general del hiperplano , donde
son los números directores de su normal, son las coordenadas de los
puntos y una constante. Cuando la dimensión es igual a cuatro se van a requerir cuatro
puntos no colineales para obtener el hiperplano en el hiperespacio, y así sucesivamente,
cuando se tienen más dimensiones.
Figura 4.9 Representación de la interpolación lineal.
Algoritmos Capítulo 4
36
Con estas ecuaciones se propuso un método de interpolación lineal N-dimensional basado en
la estimación de un punto que pasa por cierto plano o hiperplano. Enseguida se muestra un
pseudocódigo para realizar la interpolación lineal en cualquier dimensión, en este caso, se
considera como dimensión a interpolar la última coordenada. Por ejemplo, como se ve en la
figura 4.9, si se asume un espacio de 3 dimensiones, se tienen tres coordenadas , en
este caso el valor a estimar será el valor de , pero se requiere tener los valores de y para
poder interpolar .
4.3.1 Pseudocódigo
1. Obtener los puntos que definen el plano o el hiperplano y los valores de las
coordenadas necesarias para poder estimar el valor de la coordenada a interpolar.
2. Al tener los puntos, se obtienen los números directores.
3. Con los números directores se obtienen los números directores del vector normal
aplicando el producto punto.
4. Con lo anterior se obtiene la ecuación del plano o hiperplano, donde implícitamente se
obtiene la constante .
5. Finalmente se despeja la ecuación en término de la última coordenada.
El pseudocódigo anterior está diseñado para funcionar junto con el algoritmo K-vecinos, que
se encarga de proporcionar los puntos vecinos que se requieren para obtener el plano o
hiperplano. Juntos estos dos algoritmos son utilizados en el capítulo 5 donde se presentan las
pruebas realizadas con simulaciones de identificación y control de sistemas dinámicos.
4.4 Teselación de Delaunay (N-D)
Uno de los objetivos de esta tesis fue el analizar algún algoritmo que describiera la
forma de un conjunto en el espacio N-dimensional. Durante la búsqueda en la literatura se
encontró que unas de las formas más utilizadas, es la reconstrucción basada en complejos
simpliciales.
A continuación se exponen algunos conceptos requeridos en esta sección.
Simplejos
Los simplejos son los análogos a los triángulos en otras dimensiones, y son los objetos con los
cuales se trabaja en homología. Es decir, un r-simplejo es un objeto r-dimensional en algún
espacio .
Capítulo 4 Algoritmos
37
Definición 1. Formalmente un r-simplejo es un conjunto , donde
(4.4)
Un 0-simplejo (P0) es un punto o vértice que será denotado ver figura 4.10.
• P0
Figura 4.10 Un 0-simplejo es análogo
a un punto en el espacio.
Un 1-simplejo (P0P1) es una línea o eje, que va desde el punto P0 hasta el punto P1, se denota
por , ver figura 4.11.
P0 P1
Figura 4.11 Un 1-Simplejo es análogo a una arista que une a dos puntos.
Un 2-simplejo (P0P1P2) es un triángulo con su interior, considerado con la orientación
contraria a las manecillas del reloj, es denotado por ver figura 4.12.
P1 P2
P0 Figura 4.12 Un 2-simplejo es análogo a un
triángulo en el plano.
Un 3-simplejo (P0P1P2P3) es un tetraedro sólido, denotado por ver figura 4.13.
P0
P3 P1
P2 Figura 4.13 Un 3-simplejo es análogo a un tetraedro, una estructura que forma una pirámide en el espacio.
Se define de forma natural las caras de un r-simplejo como aquellos simplejos de menor
dimensión, es decir, los s-simplejos (0 ≤ s ≤ r) que lo conforman. Esta relación (ser cara de) se
denota como , por ejemplo , o de forma menos convencional (P0) ≤ (P0P1).
También se nota que (P0P1) = −(P1P0).
Algoritmos Capítulo 4
38
Complejos simpliciales
Definición 2. Un Complejo Simplicial K, es un conjunto finito de simplejos en que
satisface:
1. Una cara arbitraria de un simplejo de K, pertenece a K, es decir, si
entonces .
2. Si y entonces , ó y
Por definición, la dimensión de un complejo simplicial K será la dimensión del mayor
simplejo que pertenezca a K. A continuación se despliega un ejemplo en la figura 4.14 que no
satisface la definición de complejo simplicial y en la figura 4.15 un ejemplo que si la satisface
[Muñoz,1990].
P0
P3
P2 P1
P4 Figura 4.14 No representa un complejo simplicial.
P0
P1 P2
P3
Figura 4.15 Si representa un complejo simplicial.
En la figura 4.16 se muestra más ejemplos de los simplejos.
0-simplejo 1-simplejo 2-simplejo 3-simplejo
Figura 4.16 Ejemplos de simplejos de dimensiones 0 a 3.
Capítulo 4 Algoritmos
39
El algoritmo de reconstrucción que se eligió es el algoritmo -shapes por ser muy citado en el
área de topología computacional para obtener una aproximación de la estructura del espacio.
Este algoritmo utiliza como base, en caso del espacio de 3-dimensiones, a la triangulación de
Delaunay. Es por ello que en este capítulo se presenta una variante de ésta. En particular, en
CENIDET se ha trabajado con proyectos que utilizan espacios N-dimensionales, se eligió un
algoritmo que es capaz de obtener un complejo simplicial con las propiedades de Delaunay.
Este tipo de complejo se le llama teselación de Delaunay la cual puede consultarse en
[Watson,1981].
Figura 4.17 Triangulación de Delaunay
de un conjunto en el plano.
La teselación de Delaunay, en un espacio de 3-dimensiones, es un conjunto rellenado de
tetraedros y se puede pensar como una particular triangulación en el espacio 3-dimensional.
En el espacio de 2-dimensiones es un arreglo de triángulos, como se ve en la figura 4.17.
4.4.1 La estructura de Delaunay
Los puntos de una teselación de Delaunay yacen en los vértices de los tetraedros en el
espacio 3-dimensional. Los cuatro vértices de cada tetraedro yacen sobre la superficie de una
esfera y ningún otro vértice del conjunto de puntos se encuentra dentro de esa esfera.
Esta descripción para el espacio de 3-dimensiones se puede extender fácilmente al espacio N-
dimensional. Así el tetraedro, o también conocido como 3-simplejo, se vuelve un -simplejo.
De igual manera, vértices de cada -simplejo yacerán sobre la superficie -
dimensional de una hiperesfera N-dimensional. El centro de esa hiperesfera es el circuncentro
de los vértices del -simplejo [Watson,1981].
Existen varios problemas al tratar con las teselaciones, uno es la existencia de puntos
colineales y otro es que los puntos no se encuentren en posición general, esto es, que varios
puntos se encuentren sobre una misma superficie de una hiperesfera. Por ejemplo, en el caso
de un 2-simplejo en un plano, se supone que debe pasar un sólo círculo sobre esos tres
vértices, pero es posible que sobre esa superficie del círculo se encuentren otros puntos, con lo
que la teselación de Delaunay no va ser única. Una estrategia es utilizar un algoritmo llamado
SoS (Simulation of Simplicity, por sus siglas en inglés) [Edelsbrunner y Mücke,1990], el cual
perturba un poco los datos de tal manera que los puntos puedan quedar en posición general, y
así obtener una teselación única.
Algoritmos Capítulo 4
40
4.4.2 Diagrama de flujo del algoritmo
El diagrama de flujo de la figura 4.18 es la manera general en cómo se puede calcular
una teselación de Delaunay N-dimensional.
Figura 4.18 Diagrama de flujo del algoritmo de teselación de Delaunay.
¿El punto está adentro
de la circunesfera de
algún n-simplejo?
Obtener puntos
Crear un n-simplejo
arbitrario que cubra todos los puntos
Obtener uno de los
puntos encerrados por el
n-simplejo
Descomponer los n-simplejos encontrados
Calcular nuevos n-simplejos con cincunesferas vacías
Tomar un nuevo punto
¿Está algunos de los
puntos actuales dentro
de las circunesferas
nuevas?
No
Sí
Sí
No
¿Aún hay puntos
que recorrer?
No
Sí
Capítulo 4 Algoritmos
41
4.5 -shapes (N-D)
Como se mencionó en la sección anterior, en esta tesis se buscó un algoritmo
topológico que aproximara la forma de un conjunto en el espacio N-dimensional. El algoritmo
alpha shapes es muy utilizado en el ámbito de la topología computacional, ya que describe la
forma de un conjunto de puntos. Esta descripción es por medio de conexiones de aristas que
forman simplejos. Esto es muy conveniente para los propósitos de esta tesis, porque en el área
de I.A. frecuentemente se trabaja con puntos en un espacio N-dimensional, en los cuales un
investigador no es capaz de entender sus características si no cuenta con alguna herramienta
que le permita analizar estos puntos.
En los artículos considerados para la implementación del algoritmo sólo se muestran ejemplos
en espacios de 3-dimensiones, pero según los autores es generalizable. En este trabajo se logró
la implementación a espacios N-dimensionales, considerando que al aumentar N es mayor el
costo computacional.
En [Fisher,2000] el algoritmo alpha shapes (de aquí en adelante algoritmo -shapes) es
explicado de manera intuitiva: imagine una gran bola de nieve que análogamente represente al
espacio y que contiene los puntos que se representan como piezas de chocolate duras.
Utilizando las esferas formadas por los utensilios para servir la nieve, imagine que con este
utensilio se escarba todas las partes de los bloques de nieve donde se alcance sin topar con
piezas de chocolate adentro del utensilio, de ese modo imagine que también es posible
escarbar por adentro formando huecos. Terminará eventualmente con algún objeto (no
necesariamente convexo) limitado por arcos y puntos. Si se convierte todo ese objeto al
contexto geométrico formado de caras de triángulos y segmentos de líneas, se tendrá una
descripción intuitiva de lo que es llamado -shapes de .
¿Cuál es el rol del valor de ? pensar en como el radio del utensilio para escarbar. Un valor
muy pequeño de permite comerse toda la nieve excepto los puntos de chocolate . De esta
manera se observa que el -shapes de genera al conjunto de puntos cuando . Por
otro lado, un valor enorme de impedirá mover el utensilio entre dos puntos ya que éste es
muy grande. Por lo tanto el utensilio nunca alcanzará a entrar en la concha convexa de , y así,
el -shapes para será siempre la concha convexa de [Fisher,2000].
En este trabajo se asume que los puntos se encuentran en posición general. Posición general
en este contexto significa que 4 puntos no yacen sobre la superficie de un círculo en el plano,
5 puntos no yacen sobre la superficie de una esfera en el espacio, y así sucesivamente. Si los
puntos no se encuentran en posición general incita a que la teselación de Delaunay no sea
única. Para solucionar esto, existe una técnica llamada SoS presentado en [Edelsbrunner y
Mücke,1990], la cual se presenta como trabajo futuro.
A continuación se presentan algunos conceptos necesarios para apoyar al lector a
familiarizarse con los términos y contexto de este algoritmo. Es necesario entender los
conceptos de la sección anterior, donde se expone la noción de simplejos y complejos
simpliciales.
Algoritmos Capítulo 4
42
Politopo
En geometría politopo significa, en la definición de [Wiki01], la generalización a
cualquier dimensión de un polígono bidimensional, y un poliedro tridimensional. Además, este
término es utilizado en varios conceptos matemáticos relacionados. Su uso es análogo al
cuadrado, que puede usarse para referirse a una región del plano de forma cuadrada, o sólo
para sus límites, o aún para una mera lista de sus vértices y lados junto con información acerca
de la forma en que están conectados. Ver figura 4.19 para ejemplos de politopos.
Una clase especial de politopos son los convexos, el casco convexo o envoltura convexa de un
conjunto finito de puntos. Los politopos convexos también pueden representarse como la
intersección de hiperplanos.
Figura 4.19 A la izquierda un politopo en el plano y a la
derecha un politopo en el espacio.
A continuación se presentan algunas definiciones formales del algoritmo.
4.5.1 Definiciones teóricas del algoritmo
Definición 3. Para cada con , el politopo = conv tiene
exactamente dimensión resultando un -simplejo. De aquí en adelante cuando se hable sobre
un -simplejo, se hará referencia a un -simplejo para algún tal que
[Fisher,2000].
Para , sea un -bola una bola abierta con radio . Una -bola es un punto y una -
bola es un semiespacio abierto. Ahora, una -bola (en algún lugar dado) es llamado vacía si
donde es un conjunto de puntos en el espacio y “ ” es la operación diferencia.
Con esto, un -simplejo se dice estar -expuesto si existe una -bola vacía con
donde es la superficie de la esfera (para ) o el círculo (para ) que rodea a
[Fisher,2000].
En la figura 4.20 se ve un ejemplo de un simplejo -expuesto (una línea de segmento) para el
caso de .
Capítulo 4 Algoritmos
43
Figura 4.20 Simplejo -expuesto y no -expuesto.
(Imagen tomada de [Fisher,2000])
Definición 4. La frontera del -shapes del conjunto de puntos consta de todos los -
simplejos de para los cuales son -expuestos, ver ecuación (4.5).
(4.5)
4.5.2 Alpha complex
En esta sección se introduce una estructura conocida como alpha complex (de aquí en
adelante -complex), que puede ser utilizada para calcular el -shapes. Ayuda en mostrar que
existe un politopo el cual tiene el conjunto en su frontera.
Para calcular el -shapes (esto es, la frontera que forma un conjunto de puntos) para un valor
dado de se puede proceder como se explica a continuación. Ya que basta
inspeccionar todos los simplejos de , donde equivale a la teselación de Delaunay
de .
El algoritmo en general, en vez de calcular directamente formando circunferencias por
todo el espacio, primero calcula una estructura llamada -complex.
Definición 5. Sea conv un -simplejo, que se extiende sobre los vértices de
. Se establece:
Los radios de la circunesferas de .
Los centros de la circunesferas de .
donde la circunesfera es simplemente el gran círculo en el caso de .
Definición 6. Para un conjunto de puntos dados y 0 , el -complex de
es el siguiente subcomplejo simplicial de . Un simplejo está en si:
y la -bola localizada en es vacía, o
es una cara de otro simplejo en .
Simplejo -expuesto Simplejo no -expuesto
Algoritmos Capítulo 4
44
4.5.3 Pseudocódigo de Edelsbrunner para calcular el -shapes
Primero que nada, el algoritmo no ejecuta un simple valor de sino calcula una
representación implícita, la cual puede ser utilizado para deducir el para cualquier valor de
. De manera más precisa, el algoritmo calcula para cada simplejo un intervalo
con la interpretación de que sí y sólo sí .
Cuando se incrementa continuamente desde 0 hacia el y si se considera un simplejo
, se observa que existen dos intervalos y con tal que:
A continuación se presenta el algoritmo de Edelsbrunner:
Aquí hay que entender que el resultado del algoritmo -shapes puede ser un politopo el cual
es un subconjunto de la teselación de Delaunay. Lo que también se debe tomar en cuenta, es
que siempre un simplejo (donde ) va a formar la frontera. Por ejemplo, en un
plano se pueden formar triángulos ( -simplejos, donde ), pero si se baja una
unidad a la dimensión ( simplejos) se obtiene la frontera.
Capítulo 4 Algoritmos
45
Figura 4.21 Triangulación en el plano.
Una manera de interpretar lo anterior es mediante la figura 4.21, mostrando que no se puede
obtener una frontera con -simplejos donde , debido a que éstos no pueden describir las
fronteras, sin embargo, si se tienen simplejos es posible obtener la descripción de las
fronteras. Lo mismo pasa en otras dimensiones, si donde , aquí el espacio está en
tres dimensiones, por lo tanto los -simplejos forman tetraedros, pero estos simplejos no
describen la frontera, porque para obtener las fronteras se necesitan sólo las caras de los
tetraedros. Así que para obtener las caras hay que disminuir la dimensión de una unidad para
obtener las caras.
4.6 Inclusión en forma no convexa (N-D)
En esta sección se presenta un algoritmo que se diseñó e implementó durante este
trabajo para detectar si un punto se localiza en el interior de una forma (no necesariamente
convexa) que construye el algoritmo -shapes. El algoritmo de inclusión en forma no convexa
se diseñó con el propósito de identificar el traslape de conjuntos de puntos N-dimensionales.
Este trabajo se propone para solucionar problemas de I.A., en particular, en la identificación
de traslape en los datos de entrenamiento de [López,2008]. En la figura 4.22 se muestra un
ejemplo de la gráfica que resultó al utilizar uno de los datos de entrenamiento.
Figura 4.22 Ejemplo de traslape en los componentes RGB.
Algoritmos Capítulo 4
46
El algoritmo se basa en la convexidad de los simplejos la cual está formalizada en la
ecuación (4.6):
(4.6)
donde representa al simplejo, las coordenadas del punto a evaluar, son los coeficientes
de la combinación lineal, las coordenadas de los puntos del simplejo, la dimensionalidad
del espacio donde se encuentra simplejo.
El algoritmo -shapes puede regresar el -complex, esto es la frontera pero rellenada de
simplejos. Esto significa que al estar la frontera rellena de simplejos en algún espacio, se
puede buscar simplejo por simplejo para averiguar si un punto dado se encuentra dentro de
alguno de éstos simplejos. Si se encuentra en algún simplejo, quiere decir que el punto está
dentro de la frontera, en caso contrario, no lo está.
Con esto se construyó el algoritmo de inclusión en forma no convexa, para conocer si un
punto se incluye dentro de una forma rellenada de simplejos o no. El algoritmo asume que se
tiene la forma de algún conjunto de puntos rellenado con simplejos.
A continuación se explicará el algoritmo en cuatro pasos a manera de ejercicio.
Figura 4.23 Un 2-simplejo del plano.
En la figura 4.23 se muestra un plano con un 2-simplejo formado por los puntos
y y los puntos de color naranja y rojo , están adentro y
afuera respectivamente del 2-simplejo.
A
B
C
Capítulo 4 Algoritmos
47
Paso 1
Lo primero es tomar un punto de los que forman el simplejo como origen, para
obtener los vectores de dirección. En este caso se tomará al punto como
origen.
Paso 2
Enseguida se obtienen los vectores a partir del origen. Al estar en el plano
resultará y . En este caso
como se va a demostrar el método con los puntos y , también se
tiene que obtener el vector con respecto al origen de cada uno de ellos. A éstos
vectores se le nombrará y , los cuales tendrán los siguientes valores
y . Por lo tanto el valor de cada
vector será:
Paso 3
Como ya se tienen los valores en el espacio vectorial se procede a desarrollar las
operaciones necesarias utilizando la ecuación (4.6). Primero se demostrará que el
punto está dentro del simplejo. Para eso es necesario sustituir los valores de
los vectores en la ecuación (4.6).
Según la ecuación (4.6) primero se debe verificar que los valores de las
coordenadas de los vectores y cumplen con . Con eso se tiene que el
vector (0 sí cumple y que el vector ( .
Ahora se pasa a verificar se cumpla, por lo tanto se tiene:
Paso 4
Mediante el método de Gauss-Jordan se buscan los valores de los coeficientes y
de ambos sistemas de ecuaciones donde se obtendrán los siguientes resultados:
En 1. Se tienen que y , por lo tanto, se cumple que
, y con esto se concluye que el punto se encuentra dentro
del simplejo.
En 2. Se tienen que y , por lo tanto, no se cumple que
, y con esto se concluye que el punto no se encuentra
dentro del simplejo.
1.
2.
Algoritmos Capítulo 4
48
Este mismo enfoque es el utilizado en el algoritmo de inclusión de forma no
convexa, con la diferencia que recorre todos los simplejos que forme el algoritmo
-shapes mediante la estructura -complex.
4.7 Componentes conexas basado en el MST (N-D)
El objetivo de analizar e implementar este algoritmo fue estudiar en qué podría
beneficiar para los propósitos de este trabajo. Este algoritmo utiliza el MST (minimum
spanning tree por sus siglas en ingles) para conectar todo el conjunto de puntos mediante un
árbol de coste mínimo.
Este algoritmo proporciona información sobre algunas propiedades topológicas del espacio,
con las cuales se pueden deducir si un conjunto de puntos están conectados, tienen un número
de componentes conectados, totalmente desconectados y puntos aislados [Robins,1997].
Utiliza una técnica de resolución variable. Esta técnica maneja un valor de que es utilizado
para ir eliminando las aristas formadas por el árbol de expansión mínima que tengan distancia
mayor que . De esta manera se van desconectado aristas y formando componentes separados,
o también puede ser visto como subárboles.
Con el propósito de hacer eficiente la construcción del MST, se propone en [Robins,1999]
utilizar la triangulación de Delaunay, para no tener que recorrer cada punto contra todos. En
este caso se utilizó la teselación de Delaunay ya que trabaja en espacios N-dimensionales. En
la figura 4.24 se observa el comportamiento del MST cuando se eliminan aristas mientras el
valor de se va haciendo más pequeño.
Figura 4.24 (a) Espacio de puntos. (b) MST del espacio de puntos.
(c) Dos componentes formados al eliminar aristas mayores dado algún valor de .
(d) Tres componentes y dos puntos aislados formados por algún valor de .
Al analizar el algoritmo se llegó a la conclusión de que éste no es una herramienta que pueda
apoyar a el propósito de detectar traslape de conjuntos de puntos, por su manera de conectar el
(a) (b)
(c) (d)
Capítulo 4 Algoritmos
49
espacio. Pero se deja disponible para posibles aplicaciones en las que sí pueda aportar
información a algún tema de investigación futuro.
A continuación se presenta un pseudocódigo general de los pasos del algoritmo.
Paso 1
Obtener el conjunto de puntos a evaluar y calcular la teselación de Delaunay a
éstos para conectar todo el espacio.
Paso 2
Calcular el MST para obtener un árbol de expansión mínima con un menor coste
basado en la distancia euclidiana.
Paso 3
Dado un valor de eliminar las aristas del MST que tengan distancia mayor a este
valor.
Paso 4
Contar las componentes conexas, puntos aislados que quedan al aplicar el paso 3.
Si se desea ir a otra resolución volver al paso 3.
4.8 Conclusión
Estos algoritmos fueron seleccionados después de examinar en la literatura métodos
para detectar estructuras en los datos. El algoritmo componente conexas en espacios digitales,
es capaz de detectar componentes conexas mediante etiquetamiento, éste fue implementado
para estudiar su funcionamiento. La teselación de Delaunay fue seleccionada debido a su
generalización a espacios N-dimensionales, además de construir los simplejos lo más regulares
posibles, lo cual asegura que los vecinos de un punto sean los más próximos. -shapes fue sin
lugar a dudas el algoritmo que mejor se apegó a las necesidades de este trabajo, después de
analizar la literatura, éste puede reconstruir los datos en espacios continuos aplicando la
técnica de resolución variable.
El algoritmo inclusión en forma no convexa se diseño para identificar traslape, y utiliza como
entrada la salida de -shapes, la cual es la forma del conjunto de datos en términos de vértices
y aristas. El algoritmo componentes conexas basado en el MST, a pesar de detectar
componentes conexas en espacios continuos, no fue útil para el problema planteado, debido a
que no reconstruye la forma del conjunto de datos.
Los algoritmos K-vecinos y interpolación lineal fueron diseñados para conocer sus
capacidades para identificar y controlar algunos sistemas dinámicos.
50
51
Capítulo 5
Aplicaciones
En este capítulo se presentan las aplicaciones de los algoritmos para esta tesis. El
objetivo principal es trabajar en las áreas de inspección visual y control inteligente. En
inspección visual se utilizó el algoritmo -shapes junto con el algoritmo de inclusión en forma
no convexa para probar que se puede detectar traslape entre conjuntos de puntos N-
dimensionales. En control inteligente se probó el algoritmo K-vecinos y el algoritmo de
interpolación lineal para la identificación y control de algunos sistemas dinámicos. El
algoritmo -shapes es utilizado para visualizar datos de entrenamiento, con el propósito de
detectar huecos en ellos.
El capítulo se organiza en las siguientes secciones:
En la sección 5.1 se aplica al algoritmo -shapes para modelar objetos 3D dado un conjunto de
puntos.
En la sección 5.2 se demuestra mediante pruebas, que el algoritmo -shapes junto con el
algoritmo de inclusión en forma no convexa, funcionan adecuadamente para detectar traslape
en los datos de inspección visual de [López,2008].
En la sección 5.3 se presentan las simulaciones de identificación y control de algunos sistemas
dinámicos probados con los algoritmos K-vecinos e interpolación lineal. En donde se muestra
que con pocos datos y sin etapa de entrenamiento se pueden identificar y controlar algunos
sistemas dinámicos lineales y no lineales.
Aplicaciones Capítulo 5
52
5.1 Aplicación del algoritmo -shapes para reconstrucción de formas
En CENIDET existen trabajos relacionados con la reconstrucción de formas 3D como
en la tesis [Cervantes,2007], donde se utilizan métodos de triangulación y de snakes para
reconstruir algunas figuras geométricas. El algoritmo -shapes también es útil para reconstruir
formas dado un conjunto de puntos sobre el espacio N-dimensional variando el valor de
hasta que se adecue de mejor manera. Aunque no fue el objetivo de esta tesis, se presenta este
enfoque con la visión de tener más herramientas en el área de modelado 3D.
5.1.1 Reconstrucción del conejo de Stanford en 2D con 1000 puntos
Para modelar la forma del conejo 2D se utilizó un conjunto de 1000 puntos, con éstos
se calcula el -shapes para ir obteniendo aproximaciones de las formas hasta que se encuentra
la adecuada. El conjunto se encuentra normalizado entre -1 y 1 como se muestra en la figura
5.1 y fue tomado de un repositorio 3D en [Stanford,2008].
Figura 5.1 Conejo de Stanford de 1000 puntos en 2D.
Para obtener la forma del conejo utilizando el algoritmo -shapes, se debe proporcionar los
valores de y ejecutar el algoritmo, hasta que se encuentre el mejor valor de aproximen la
frontera del conejo.
Capítulo 5 Aplicaciones
53
Figura 5.2 (a) Reconstrucción aplicando (b) Reconstrucción aplicando .
(c) Reconstrucción aplicando . (d) Reconstrucción aplicando .
Como se muestra en la figura 5.2 la mejor aproximación al conejo se da con un , si
se disminuye el valor de se empezará a formar hoyos dentro del conejo. Es conveniente
indicar que un valor de muy alto resultará la concha convexa del conjunto de datos, como se
percibe en (a) de la figura 5.2. También se puede obtener el -complex de la figura, el cual es
el espacio relleno de simplejos donde su frontera es equivalente al -shapes, ver figura 5.3.
Figura 5.3 Estructura -complex obtenida al calcular .
Con esto se concluye que el algoritmo -shapes es útil para aproximar formas 2D.
(a) (b)
(c) (d)
Aplicaciones Capítulo 5
54
5.1.2 Reconstrucción del conejo de Stanford en 3D con 3595 puntos
La reconstrucción de objetos 3D a partir de puntos es un área que tiene un sin fin de
aplicaciones y desafíos, como por ejemplo, dotar a estos objetos de movimientos, rotaciones,
escalados, etc. así como también trabajar con objetos deformables, entre otros. Aquí se
presenta al algoritmo -shapes como reconstructor de formas de puntos fijos en el espacio.
Esta herramienta se propone para que sea utilizada en trabajos futuros en el área de modelado
3D.
Figura 5.4 (a) Reconstrucción aplicando . (b) Reconstrucción aplicando .
(c) Reconstrucción aplicando . (d) Reconstrucción aplicando .
En la figura 5.4 se observa que el mejor valor de para obtener la forma de los puntos es de
, si se proporciona un valor más bajo, se empezarán a formar túneles o cavidades
como muestra en la figura 5.5 en (a). Por otro lado, si se proporciona un valor muy grande se
tendrá la concha convexa, como en el caso de la figura 5.5 en (b) donde .
(a) (b)
(c) (d)
Capítulo 5 Aplicaciones
55
Figura 5.5 (a) Reconstrucción aplicando que contiene huecos o cavidades.
(b) Reconstrucción aplicando que muestra la concha convexa del conjunto.
Como conclusión, el algoritmo -shapes es bueno para modelar objetos 3D, su principal
inconveniente es que se requiere interactuar con el valor de hasta que se alcance la mejor
aproximación de la forma, dejando la decisión al usuario, además de requerir optimizar
algunas rutinas para obtener resultados más eficientes. Aún así es una herramienta muy buena
para el área por su generalización a N-dimensiones.
Puede tener algunas aplicaciones en el área de I.A., por ejemplo, en la reconstrucción de
escenas naturales con el propósito de identificar obstáculos para un robot móvil, y así poder
proporcionarle autonomía [Sáez,2001]. Obtener estructuras topológicas de los descriptores
para conocer la tendencia de los datos. También en el área de bioinformática para identificar la
forma y las cavidades de proteínas [Liang,1998].
5.2 Aplicación de los algoritmos -shapes y inclusión de forma no convexa
para identificar traslape en conjuntos de puntos en el espacio N-dimensional
La meta principal de este trabajo es conocer si los conjuntos de entrenamiento de
[López,2008] se traslapan, con el propósito de tener mejor conocimiento de las estructuras que
forman los puntos, y permitir tomar decisiones de elegir o complementar al conjunto de datos
de entrenamiento que mejor pueda describir a un objeto, para pasarlo al clasificador del
sistema de inspección visual (algoritmo de Nomura [Nomura,1992]). La ventaja de la
implementación -shapes es que trabaja con datos numéricos y además de alta
dimensionalidad, de tal manera puede utilizarse en otras áreas como en física, química,
bioinformática, modelado 3D, entre otros.
En esta sección se utilizaron los algoritmos -shapes y inclusión en forma no convexa como
herramientas de análisis de conjuntos de datos en espacios N-dimensionales, específicamente
para detectar traslape entre estos tipos de conjuntos. Las pruebas se realizaron a los conjuntos
de entrenamiento utilizados en la tesis [López,2008] para analizar el porcentaje de traslape
entre los conjuntos de puntos que representa la clase de piel sana y otro que representa la clase
de piel defectuosa. Los conjuntos de entrenamiento probados fueron los siguientes (para
mayor detalle consultar [López, 2008]):
(a) (b)
Aplicaciones Capítulo 5
56
a) Conjunto de entrenamiento 1, utiliza directamente las componentes RGB de
las clases de piel sana y defectuosa.
b) Conjunto de entrenamiento 2.
b.1) Utiliza directamente las componentes RGB pero solamente considerando
los bordes de las clases de piel sana y defectuosa.
b.2) Utiliza directamente las componentes RGB pero sólo de los centros de las
clases de la piel sana y defectuosa.
c) Conjunto de entrenamiento 3, utiliza las componentes RGB normalizadas de
las clases de piel sana y defectuosa.
d) Conjunto de entrenamiento 4, utiliza las componentes RGB y la componente I
que representa la intensidad, lo que vuelve al problema en N-dimensional.
e) Conjunto de entrenamiento 5, utiliza las componentes RGB y la componente I
que representa la intensidad regional obtenida mediante el promedio de la
intensidad de los 4 puntos cardinales utilizando una máscara de 20x20.
Para detectar el traslape, primero se deben conocer las clases. En este trabajo, sólo se utilizan
dos clases, las cuales son de piel sana y defectuosa respectivamente. Después se requiere
calcular el -shapes de cada conjunto para obtener sus formas. Por último, se utiliza el
algoritmo de inclusión en forma no convexa para verificar qué puntos yacen en el interior de
cualquiera de las formas. Por ejemplo, si se tiene cargada la forma del conjunto que pertenece
a la clase de piel sana, entonces se utilizan los puntos del conjunto de piel defectuosa para
calcular el número de puntos que se encuentran en el interior de la forma de la piel sana. Este
procedimiento se puede realizar en viceversa. Al terminar este proceso, se presentan los
resultados obtenidos, donde se muestra el porcentaje y el número de puntos interiores y
exteriores a la forma, además de presentar el tiempo de procesamiento.
En las siguientes secciones se presentarán las pruebas realizadas a los diferentes conjuntos de
entrenamiento. Todas las pruebas siguen la misma metodología, así que se resumirá para
evitar redundancia en cada sección.
a) Obtener formas de las clases sana y defectuosa. Para averiguar el porcentaje de
traslape entre las clases de piel sana y defectuosa, es necesario obtener las formas
de las clases de piel sana y defectuosa utilizando el algoritmo -shapes. Las
formas son visualizadas en gráficas en caso de conjuntos de 3-dimensiones, si son
más dimensiones sólo se muestra una tabla.
b) Calcular traslape mediante el algoritmo de inclusión en forma no convexa. La
clase sana es utilizada para averiguar qué puntos de la clase defectuosa yacen en su
interior. En una tabla se muestran los porcentajes, cantidad de puntos y tiempo de
ejecución del proceso.
Capítulo 5 Aplicaciones
57
c) Calcular la forma del traslape con el algoritmo -shapes. Para fines de
visualización, se muestran en una figura dos gráficas, una representa la forma del
traslape y la otra las formas de las clases sana (verde) y defectuosa (rojo) junto con
el traslape (amarillo). En el caso de conjuntos de más de 3 dimensiones, sólo se
muestra una tabla.
d) Parámetros y resultados. Por último se muestra una tabla con los parámetros y
resultados devueltos por el algoritmo -shapes al calcular las formas de las clases
sana y defectuosa así como también la forma del traslape.
En cada caso se concluyen los resultados que se obtuvieron.
5.2.1 Detección de traslape en las componentes RGB
a) Obtener formas de las clases sana y defectuosa
El conjunto de entrenamiento utilizado contiene 3,898 puntos para la clase de piel sana
y 2,892 puntos para la clase de piel defectuosa. Por motivos de tiempo de procesamiento se
seleccionaron valores en cada tercer punto. Por lo tanto, el total de puntos considerados fue de
1,300 para la primera clase y 964 para la segunda clase respectivamente.
Figura 5.6 (a) Forma clase piel sana utilizando =15, (b) Forma clase piel mala utilizando =25.
Utilizando el conjunto RGB.
En la figura 5.6 en (a) se muestra la forma del conjunto perteneciente a la piel sana la cual se
logró obtener con un valor de =15. La forma en (b) se aproximó utilizando .
(a) (b)
Aplicaciones Capítulo 5
58
b) Calcular traslape mediante el algoritmo de inclusión en forma no convexa
El cálculo del traslape en este conjunto se muestra en la tabla 5.1.
Tabla 5.1 Resultado del algoritmo de inclusión en forma no convexa para RGB.
Cantidad Porcentaje
Puntos interiores (traslapados) 548 56.8465%
Puntos exteriores 416 43.1535%
Tiempo en segundos 2,401.032
c) Calcular la forma del traslape con el algoritmo -shapes
Obtenidos los puntos que representan al traslape, se obtiene la forma, la cual se
muestra en la parte (a) de la figura 5.7. En la parte (b) de la figura 5.7 se muestra las clases
sana y defectuosa en color verde y rojo respectivamente con su traslape en amarillo.
Figura 5.7 (a) Forma del conjunto RGB considerados como traslape. (b) Formas de las clases sana (verde) y defectuosa (rojo) con el traslape (amarillo).
d) Parámetros y resultados
En la tabla 5.2 se muestran los parámetros y valores que resultaron cuando se calculó la
forma con el algoritmo -shapes.
(a) (b)
Capítulo 5 Aplicaciones
59
Tabla 5.2 Esta tabla muestra los parámetros y valores devueltos por el algoritmo -shapes para cada clase, incluyendo traslape del conjunto RGB.
Piel sana Piel
defectuosa Traslape
Número de puntos 1,300 964 548
Número de dimensiones 3 3 3
Mín. Máx. Mín. Máx. Mín. Máx.
Dimensión A 50 255 60 235 60 235
Dimensión B 55 235 0 185 65 185
Dimensión C 0 145 0 120 0 115
Valor de 15 25 20
Número de puntos del -shapes 504 251 249
Número de simplejos del -shapes 894 447 456
Número de puntos del -complex 1,300 964 548
Número de simplejos del -complex 6,445 4,856 2,481
Tiempo en segundos 402.701 181.546 85.184
Observaciones
Con estos resultados se concluye que el porcentaje de traslape es del 56.8465%. Una
implementación con estos conjuntos podría no ofrecer buenos resultados. Puede provocar que
algún clasificador tenga una zona con un porcentaje alto de incertidumbre. Por lo tanto, los
conjuntos de entrenamiento no describen completamente a las clases objetivo (piel sana y
defectuosa) y se deben buscar otros descriptores.
5.2.2 Detección de traslape en las componentes RGB, tomando sólo los
píxeles de los bordes de las manzanas
a) Obtener formas de las clases sana y defectuosa
El conjunto de entrenamiento utilizado contiene 3,365 puntos para la clase de piel sana
y 2,151 puntos para la clase de piel defectuosa. Por lo mismos motivos anteriores, se
seleccionaron valores en cada tercer punto de la primera clase y cada segundo punto en la
segunda clase. Por lo tanto, el total de puntos considerados fue de 1,122 para la primera clase
y 1,076 para la segunda clase respectivamente.
Aplicaciones Capítulo 5
60
Figura 5.8 (a) Forma clase piel sana utilizando =60. (b) Forma clase piel mala utilizando =60.
Utilizando el conjunto RGB de los bordes.
En la figura 5.8 las formas de los conjuntos de piel sana en (a) y defectuosa en (b) se
alcanzaron con un .
b) Calcular traslape mediante el algoritmo de inclusión en forma no convexa
En la tabla 5.3 se observa que la cantidad de traslape en este conjunto es más alto que
en caso anterior.
Tabla 5.3 Resultado del algoritmo de inclusión en forma no convexa
con el RGB utilizando bordes.
Cantidad Porcentaje
Puntos interiores (traslapados) 504 44.9198%
Puntos exteriores 618 55.0802%
Tiempo en segundos 2,573.629
c) Calcular la forma del traslape con el algoritmo -shapes
Obtenido los puntos que representan al traslape que en este caso son 504, se obtiene su
forma, la cual se muestra en la parte (a) de la figura 5.9. En la parte (b) de la figura 5.9 se
muestra las clases sana y defectuosa en color verde y rojo respectivamente con su traslape en
amarillo.
(a) (b)
Capítulo 5 Aplicaciones
61
Figura 5.9 (a) Forma del conjunto de puntos considerados como traslape.
(b) Formas de las clases sana (verde) y defectuosa (rojo) con el traslape (amarillo). Utilizando el conjunto RGB de los bordes.
d) Parámetros y resultados
En la tabla 5.4 se muestran los parámetros y valores que resultaron al calcular las
formas con el algoritmo -shapes.
Tabla 5.4 Esta tabla muestra los parámetros y valores devueltos por el algoritmo -shapes para cada clase del conjunto RGB de los bordes.
Piel sana Piel
defectuosa Traslape
Número de puntos 1,122 1,076 504
Número de dimensiones 3 3 3
Mín. Máx. Mín. Máx. Mín. Máx.
Dimensión A 45 250 50 215 55 205
Dimensión B 55 220 0 165 60 160
Dimensión C 0 140 0 115 0 115
Valor de 60 60 20
Número de puntos del -shapes 204 135 226
Número de simplejos del -shapes 347 227 414
Número de puntos del -complex 1,122 1,076 504
Número de simplejos del -complex 6,105 5,804 2,319
Tiempo en segundos 332.985 414.37 92.729
Observaciones
El porcentaje de traslape de 44.9198% sigue siendo alto, por lo tanto, al igual que el
caso anterior, este porcentaje provoca que el clasificador tenga una zona con alto grado de
incertidumbre.
(a) (b)
Aplicaciones Capítulo 5
62
5.2.3 Detección de traslape en las componentes RGB, tomando sólo los
píxeles de los centros de las manzanas
a) Obtener formas de las clases sana y defectuosa
Para esta prueba se utilizaron 1,140 puntos para la primera clase y 1,038 para la
segunda clase. No hubo discretización de puntos, porque el algoritmo -shapes ejecuta estas
cantidades en tiempo considerable.
Figura 5.10 (a) Forma clase piel sana utilizando =160. (b) Forma clase piel mala utilizando =30.
Utilizando el conjunto RGB de los centros.
La mejor forma de la clase de piel sana, se obtuvo con un como se observa en (a) de
la figura 5.10. En (b) se muestra la utilizando
b) Calcular traslape mediante el algoritmo de inclusión en forma no convexa
En la tabla 5.5 se observa que la cantidad de traslape en este conjunto es más alto que
en caso anterior.
Tabla 5.5 Resultado del algoritmo de inclusión en forma no convexa
con RGB de los centros.
Cantidad Porcentaje
Puntos interiores (traslapados) 411 39.5954%
Puntos exteriores 627 60.4046%
Tiempo en segundos 2,302.881
c) Calcular la forma del traslape con el algoritmo -shapes
Con los puntos que representan el traslape, se obtiene la forma, la cual se muestra en la
figura 5.11 en la parte (a), en (b) se muestra las dos clases con su traslape.
(a) (b)
Capítulo 5 Aplicaciones
63
Figura 5.11 (a) Forma del conjunto de puntos considerados como traslape.
(b) Formas de las clases sana (verde) y defectuosa (rojo) con el traslape (amarillo). Utilizando RGB de los centros.
d) Parámetros y resultados
En la tabla 5.6 se muestran los parámetros y valores que resultaron al calcular las
formas con el algoritmo -shapes.
Tabla 5.6 Esta tabla muestra los parámetros y valores devueltos por el algoritmo -shapes para
cada clase de los componentes RGB de los centros.
Piel sana Piel
defectuosa Traslape
Número de puntos 1,140 1,038 411
Número de dimensiones 3 3 3
Mín. Máx. Mín. Máx. Mín. Máx.
Dimensión A 115 255 90 255 125 235
Dimensión B 80 235 0 185 80 185
Dimensión C 0 105 0 80 0 25
Valor de 160 30 35
Número de puntos del -shapes 81 159 91
Número de simplejos del -shapes 122 263 130
Número de puntos del -complex 1,140 1,038 411
Número de simplejos del -complex 5,597 4,738 1,675
Tiempo en segundos 361.848 316.058 207.904
Observaciones
El porcentaje de traslape es de 39.5954%, lo que mejora un poco con respecto a las
pruebas anteriores, sin embargo el porcentaje de traslape entre las clases de piel sana y
defectuosa sigue siendo alto. Complementar con otros descriptores puede ayudar a disminuir
el traslape de este conjunto de entrenamiento.
(a) (b)
Aplicaciones Capítulo 5
64
5.2.4 Detección de traslape en las componentes RGB normalizados
a) Obtener formas de las clases sana y defectuosa
El conjunto de entrenamiento utilizado contiene 16,892 puntos para la clase de piel
sana y 11,831 puntos para la clase de piel defectuosa. Los valores se seleccionaron en cada 10
puntos en ambas clases. Por lo tanto, el total de puntos considerados fue de 1,690 para la
primera clase y 1,184 para la segunda clase respectivamente.
Figura 5.12 (a) Forma clase piel sana utilizando =30. (b) Forma clase piel mala utilizando =50.
Utilizando los conjuntos RGB normalizados.
En la figura 5.12 la forma de la piel sana se logró con y de la piel defectuosa con
b) Calcular traslape mediante el algoritmo de inclusión en forma no convexa
En la tabla 5.7 se observa que la cantidad de traslape en este conjunto es más alto que
en el caso anterior.
Tabla 5.7 Resultado del algoritmo de inclusión en forma no convexa
del conjunto RGB normalizados.
Cantidad Porcentaje
Puntos interiores (traslapados) 1,473 87.1598%
Puntos exteriores 217 12.8402%
Tiempo en segundos 4,214.796
c) Calcular la forma del traslape con el algoritmo -shapes
Con los puntos que representan el traslape, se obtiene la forma, la cual se muestra en la
figura 5.13 en la parte (a), en (b) se muestra las dos clases con su traslape.
(a) (b)
Capítulo 5 Aplicaciones
65
Figura 5.13 (a) Forma del conjunto de puntos considerados como traslape.
(b) Formas de las clases sana (verde) y defectuosa (rojo) con el traslape (amarillo). Utilizando RGB normalizados.
d) Parámetros y resultados
En la tabla 5.8 se muestran los parámetros y valores que resultaron al calcular las
formas con el algoritmo -shapes.
Tabla 5.8 Esta tabla muestra los parámetros y valores devueltos por el algoritmo -shapes para
cada clase de los conjuntos RGB normalizados.
Piel sana Piel defectuosa Traslape
Número de puntos 1,690 1,184 1,473
Número de dimensiones 3 3 3
Mín. Máx. Mín. Máx. Mín. Máx.
Dimensión A 65.7 244.27 88.969 391.07 94.397 240.9
Dimensión B 51.529 179.89 0 219 51.529 179.89
Dimensión C 0 122.38 0 159.27 0 122.38
Valor de 30 50 50
Número de puntos del -shapes 172 147 128
Número de simplejos del -shapes 313 256 232
Número de puntos del -complex 1,690 1,184 1,473
Número de simplejos del -complex 9,802 6,125 8,717
Tiempo en segundos 312.549 256.436 236.156
Observaciones
El porcentaje de traslape 87.1598% es demasiado alto, porque se detectó que la
mayoría del conjunto de la piel sana se encuentra en el interior de la forma que construye los
puntos de la piel defectuosa. Es posible que este conjunto de entrenamiento requiera uno o
más descriptores para disminuir el traslape, ya que los clasificadores pueden tener un alto
margen de error al asignar la pertenencia.
(a) (b)
Aplicaciones Capítulo 5
66
5.2.5 Detección de traslape en las componentes RGB y la Intensidad
a) Obtener formas de las clases sana y defectuosa
El conjunto de entrenamiento utilizado contiene 11,599 puntos para la clase de piel
sana y 6,502 puntos para la clase de piel defectuosa. Los valores se seleccionaron en cada 15
puntos en ambas clases. Por lo tanto, el total de puntos considerados fue de 774 para la
primera clase y 434 para la segunda clase respectivamente.
b) Calcular traslape mediante el algoritmo de inclusión en forma no convexa
En la tabla 5.9 se muestra la cantidad de traslape entre los conjuntos, donde se observa
que existe mucha intersección de puntos de piel defectuosa dentro de la forma de la piel sana.
Tabla 5.9 Resultado del algoritmo de inclusión en forma no convexa
del conjunto RGBI.
Cantidad Porcentaje
Puntos interiores (traslapados) 180 41.4747 %
Puntos exteriores 254 58.5253%
Tiempo en segundos 3,768.423
c) Calcular la forma del traslape con el algoritmo -shapes
En los conjuntos de 4 dimensiones no se puede mostrar la gráfica de las formas, por
lo tanto en el siguiente inciso se presentan sólo resultados.
d) Parámetros y resultados
En la siguiente tabla se muestra el resultado de las formas calculadas con el
algoritmo. Este conjunto de entrenamiento es de 4-dimensiones, el cual no es posible
visualizar las formas.
Capítulo 5 Aplicaciones
67
Tabla 5.10 Esta tabla muestra los parámetros y valores devueltos por el algoritmo -shapes para cada clase de los conjuntos RGBI.
Piel sana Piel defectuosa
Número de puntos 774 434
Número de dimensiones 4 4
Mín. Máx. Mín. Máx.
Dimensión A 40 255 55 235
Dimensión B 45 235 0 185
Dimensión C 0 135 0 115
Dimensión D 60 190 40 155
Valor de 40 40
Número de puntos del -shapes 500 308
Número de simplejos del -shapes 2569 1579
Número de puntos del -complex 774 434
Número de simplejos del -complex 12811 6034
Tiempo en segundos 846.704 237.732
Observaciones
En esta prueba a pesar de haber aumentado una dimensión más al conjunto de
descriptores, se observa que aún existe un traslape de 41.4747%, que se considera malo,
debido al alto porcentaje de incertidumbre.
5.2.6 Detección de traslape en las componentes RGB y la Intensidad
regional obtenida mediante el promedio de la intensidad de 4 puntos
cardinales usando una máscara de 20x20
a) Obtener formas de las clases sana y defectuosa
El conjunto de entrenamiento utilizado contiene 16,892 puntos para la clase de piel
sana y 11,831 puntos para la clase de piel defectuosa. Los valores se seleccionaron en cada 10
puntos en ambas clases. Por lo tanto, el total de puntos considerados fue de 1,690 para la
primera clase y 1,184 para la segunda clase respectivamente.
b) Calcular traslape mediante el algoritmo de inclusión en forma no convexa
En la tabla 5.11 se muestra la cantidad de traslape entre los conjuntos.
Aplicaciones Capítulo 5
68
Tabla 5.11 Resultado del algoritmo de inclusión en forma no convexa en el conjunto RGBI con la intensidad de 4 puntos cardinales con máscara de 4x4.
Cantidad Porcentaje
Puntos interiores (traslapados) 482 40.7095%
Puntos exteriores 702 59.2905%
Tiempo en segundos 27,397.353
c) Calcular la forma del traslape con el algoritmo -shapes
Los conjuntos de 4 dimensiones no se pueden mostrar la gráfica de las formas, por
lo tanto en el siguiente inciso se presentan los resultados.
d) Parámetros y resultados
En la tabla 5.12 se muestra el resultado de las formas calculadas con el algoritmo.
Este conjunto de entrenamiento al igual que el anterior es de 4-dimensiones no se muestran
gráficas sobre los resultados.
Tabla 5.12 Esta tabla muestra los parámetros y valores devueltos por el algoritmo
-shapes para cada clase de los conjuntos RGBI con la intensidad de 4 puntos cardinales con máscara de 4x4.
Piel sana Piel defectuosa
Número de puntos 1,690 1,184
Número de dimensiones 4 4
Mín. Máx. Mín. Máx.
Dimensión A 50 255 55 240
Dimensión B 40 235 0 195
Dimensión C 0 145 0 115
Dimensión D 65 180 35 160
Valor de 45 45
Número de puntos del -shapes 658 499
Número de simplejos del -shapes 3,310 2,366
Número de puntos del -complex 1,690 1,184
Número de simplejos del -complex 34,724 21,998
Tiempo en segundos 2,803.309 1,570.222
Observaciones
Con este conjunto de entrenamiento no se garantiza tener buenos resultados debido a
su porcentaje alto de traslape, el cual es de 40.7095%. Es necesario utilizar otros descriptores
para disminuir el traslape.
Capítulo 5 Aplicaciones
69
5.3 Aplicación del algoritmo K-vecinos para identificar y controlar sistemas
dinámicos
En esta sección se muestran algunas aplicaciones de los algoritmos K-vecinos e
interpolación lineal vistos en el capítulo 4. Estos algoritmos son utilizados para identificar y
controlar algunos sistemas dinámicos en simulaciones, empleando como casos de pruebas
sistemas de primer orden lineal, primer orden no lineal, segundo orden lineal y segundo orden
no lineal. La propuesta del algoritmo K-vecinos muestra que sin una etapa de entrenamiento y
con pocos datos puede aproximar muy bien la identificación y control de sistemas dinámicos.
Para la identificación y control de sistemas dinámicos es necesario obtener los datos del
comportamiento del sistema a partir de la simulación, o bien a partir del dispositivo físico;
para lograr esto se requiere aplicar una señal de excitación a la entrada del dispositivo y
posteriormente tomar en cada intervalo de tiempo, generalmente constante, muestras de los
datos encontrados de las entradas y salidas, a este proceso, se le denomina muestreo del
sistema [Castillo,1999].
Con el fin de lograr observar la dinámica de la planta, es necesario considerar tanto entradas
como salidas atrasadas en el tiempo; la selección de dichas entradas y salidas, denominada
selección de variables [Castillo, 1999].
Los datos que se obtienen son utilizados para ejecutar la etapa de preprocesamiento del
algoritmo K-vecinos, que consiste en especificar el número de regiones por coordenada y crear
los archivos necesarios para que la búsqueda.
Las siguientes secciones están organizadas de la siguiente manera, en la sección 5.3.1 se
presentan pruebas de identificación de sistemas dinámicos y en la sección 5.3.2 se presentan
las pruebas de control de los sistemas dinámicos identificados en la sección 5.3.1. Las
simulaciones e implementaciones fueron realizadas en Matlab© versión 7 (R2006b)
[Hanselman,2005][Dabney,2004].
5.3.1 Pruebas en identificación de sistemas dinámicos
Como se mostró en la sección 3.1.2, para identificar un sistema, el primer paso a
considerar es contar con una planta , a la cual se le debe aplicar una señal de excitación a
la entrada, después se realiza un muestreo de los valores de entradas y salidas durante un
cierto tiempo , y de esta manera se obtiene el conjunto de datos del comportamiento del
sistema. En la figura 5.14 en (a) se muestra como se obtienen los datos desde un sistema de
primer orden y en (b) desde un sistema de segundo orden.
Aplicaciones Capítulo 5
70
Figura 5.14 (a) Diagrama general para obtener datos de entrenamiento desde un sistema dinámico de primer orden.
(b) Diagrama general para obtener datos de entrenamiento desde un sistema dinámico de segundo orden.
En los sistemas de segundo orden, como en el caso de la parte (b) de la figura 5.14 se puede
observar que existen 5 variables, que son y . Un sistema de
segundo orden contiene dos estados, en este caso, y , también llamados y
, se deben identificar o controlar estos estados por conjuntos separado. Por ejemplo, en el
caso de identificar el estado , se requiere obtener los conjuntos
, donde los tres primeros corresponden a los antecedentes y corresponde al
consecuente de estado . Para el estado se requiere , donde
los tres primeros corresponden a los antecedentes y corresponde al consecuente del
estado . Estos dos conjuntos son introducidos al algoritmo K-vecinos por separado, y así se
obtiene la identificación de cada estado.
5.3.1.1 Identificación de un sistema dinámico de primer orden lineal
En esta prueba se utilizó un sistema de primer orden lineal dado por la ecuación:
(5.1)
que equivale a tener:
(a)
(b)
Capítulo 5 Aplicaciones
71
donde es la salida del sistema y corresponde al estado . Las variables de entrada o
antecedentes del sistema son la entrada y el estado o salida , a partir de éstas se
aproxima el estado siguiente , que establece un espacio en 3 dimensiones.
Figura 5.15 (a) Señal de entrada sin ruido. (b) Señal de entrada con 0.8 de ruido.
Para obtener el conjunto de datos, se utiliza el modelo (a) de la figura 5.14. La señal con la que
se excitó la entrada del sistema se observa en la figura 5.15 donde se muestra la señal sin
ruido en (a) la cual es una triangular de amplitud de 1 ciclo cada 4 segundos. En (b) de la
figura 5.15 se observa esta misma señal pero con ruido aleatorio. La duración de la simulación
para obtener los datos fue de 20 segundos, obteniendo un total de 201 puntos.
Figura 5.16 (a) -shapes del conjunto de puntos obtenidos sin ruido con .
(b) -shapes del conjunto de puntos obtenidos con ruido con . Sistema dinámico de primer orden.
En la figura 5.16 se muestran el espacio formado por los antecedentes y consecuente del
sistema, donde (a) representa la forma del espacio del conjunto de datos sin ruido y (b)
representa la forma con ruido. En la primera se observa una insuficiencia de datos muy
grande, lo que podría provocar que el sistema no interpole adecuadamente, en la segunda se
observa una insuficiencia de datos menor, sólo con un hueco pequeño. También se observa
que en ambos casos forma un plano, esto es por el comportamiento lineal del sistema.
(a) (b)
(a) (b)
Aplicaciones Capítulo 5
72
Figura 5.17 Comportamiento del sistema dinámico de primer orden con una señal sinusoidal.
En la gráfica de la figura 5.17, se observa el comportamiento del sistema real utilizando una
entrada sinusoide de amplitud 1, con frecuencia cada un segundo. En las gráficas (a) y (b) de
la figura 5.18 se muestran la comparación entre el sistema dinámico real y la interpolación
obtenida con el algoritmo K-vecinos, utilizando una señal de seno. En la primera se observa
un ligero error de la señal de K-vecinos, que se debe a que no se le introdujo ruido al
entrenamiento. En la segunda se ve que con ruido mejora la señal de K-vecinos bastante bien.
Figura 5.18 (a) Respuesta del sistema dinámico real y el K-vecinos con entrenamiento sin ruido.
(b) Respuesta del sistema dinámico real y el K-vecinos con entrenamiento con ruido. Sistema dinámico de primer orden.
En el anexo C.1 se pueden consultar las simulaciones con diagramas de bloques del sistema
dinámico visto en esta sección.
(a) (b)
Capítulo 5 Aplicaciones
73
5.3.1.2 Identificación de un sistema dinámico de primer orden no lineal
Existen algunos sistemas dinámicos que tiene un comportamiento no lineal, estos
tipos de sistemas son más complejos de modelar matemáticamente, ya que unas de sus
propiedades es que suelen ser sistemas donde no se puede predecir tan fácilmente su
comportamiento. Los sistemas computacionales, específicamente los sistemas difusos, son
muy utilizados para aproximar éstos en el ámbito del control inteligente. En esta tesis se
presenta como experimentación al algoritmo K-vecinos para la interpolación de sistemas no
lineales con un sistema de primer orden no lineal, posteriormente en la sección 5.3.1.4 se
presentará un sistema de segundo orden no lineal, lo que aumenta la complejidad.
El sistema de primer orden no lineal con el que se experimentó es dado por la ecuación:
(5.2)
que equivale a tener:
donde es la salida del sistema y corresponde al estado . Las variables de entrada o
antecedentes del sistema son la entrada y el estado o salida Al igual que al caso de
sección anterior, se aproximará el estado siguiente .
Figura 5.19 (a) Señal de entrada sin ruido. (b) Señal de entrada con 0.8 de ruido.
Sistema dinámico de primer orden no lineal.
Para obtener el conjunto de datos se utilizó el diagrama (a) de la figura 5.14. La señal con que
se excitó la entrada se puede observar en la figura 5.19 donde se muestra la señal sin
ruido en (a) la cual es una triangular de amplitud de 1 ciclo cada 20 segundos, a la cual se
le suma un ruido aleatorio en (b). Para lograr identificar este sistema se debió extender el
tiempo de simulación para obtener los datos, el cual fue de 220 segundos, obteniendo un total
de 2,201 puntos.
(a) (b)
Aplicaciones Capítulo 5
74
Figura 5.20 (a) -shapes del conjunto de puntos obtenidos sin ruido con .
(b) -shapes del conjunto de puntos obtenidos con ruido con . Sistema dinámico de primer orden no lineal.
En la figura 5.20, observando ambos espacios con ruido y sin ruido, se ve que al contrario de
lo que sucede con el sistema lineal que forma un plano, este sistema no lineal forma una
superficie un poco curva. En (a) donde no existe ruido se muestra que existe insuficiencia de
datos, lo que no arrojará buenos resultados, en cambio, en (b) con ruido se observa una
representación de una superficie sin huecos lo que aporta más información para aproximar su
comportamiento.
Figura 5.21 Comportamiento del sistema dinámico con una señal sinusoidal.
(a) (b)
Capítulo 5 Aplicaciones
75
Figura 5.22 (a) Respuesta del sistema dinámico real y el K-vecinos con entrenamiento sin ruido.
(b) Respuesta del sistema dinámico real y el K-vecinos con entrenamiento con ruido. Sistema dinámico de primer orden no lineal.
El comportamiento del sistema utilizando una señal de sinusoide se ve en la figura 5.21. En la
figura 5.22 en (a) se observa que por el comportamiento no lineal del sistema, los datos sin
ruido no logran identificar al sistema de manera adecuada. Por otra parte utilizando ruido en
(b) se muestra que se logra aproximar bien al sistema real, a pesar de no seguir fielmente al
sistema real, se considera una buena aproximación.
Las simulaciones para este sistema dinámico pueden ser consultadas en el anexo C.3.
5.3.1.3 Identificación de un sistema dinámico de segundo orden lineal
Los sistemas de segundo orden tienen, por lo regular, un vector de estados con dos
componentes que corresponden a los estados y , dado por .
Al tener dos estados, es necesario ejecutar dos K-vecinos de manera paralela, donde una parte
aproxima al estado y la otra al estado . El formato para obtener los datos es el
utilizado en la figura 5.14 en la parte (b), donde son los antecedentes de ambas
partes, pero con diferentes consecuentes, los cuales son para una parte y para la
otra. Lo anterior forma dos conjuntos de 4 dimensiones para cada uno, los cuales son
y .
El sistema de segundo orden lineal con que se experimentó es el siguiente:
(5.3)
La señal de entrada para identificar a los estados del sistema se muestra en la figura 5.23,
donde en (a) se tiene sin ruido y en (b) con ruido. Como se entiende que cuando no hay ruido
la aproximación puede ser pobre, no se presentará la prueba de identificación sin ruido, sólo
con ruido.
La señal de entrada es una triangular de amplitud de 1 ciclo cada 4 segundos, a la
cual se le suma un ruido aleatorio en (b) de la figura 5.23. La duración de la simulación para
obtener los datos fue de 20 segundos, obteniendo un total de 201 puntos.
(a) (b)
Aplicaciones Capítulo 5
76
Figura 5.23 (a) Señal de entrada sin ruido. (b) Señal de entrada con 0.5 de ruido. Sistema dinámico de segundo orden lineal.
Figura 5.24 Comportamiento del sistema dinámico con una señal sinusoidal. Sistema dinámico de segundo orden lineal.
En la figura 5.24 se observa el comportamiento de ambos estados del sistema dinámico
utilizando una señal sinusoidal que incluyen sus estados siguientes. La duración de la
simulación fue de 20 segundos, lo que demuestra que a pesar de aportar pocos datos se tiene
muy buena identificación de ambos estados, como se muestran en la figura 5.25, donde en (a)
se ve una buena aproximación del estado , y en (b) se observa la buena aproximación del
estado que el algoritmo K-vecinos es capaz de desempeñar.
Figura 5.25 (a) Respuesta del estado de sistema dinámico real y el K-vecinos con entrenamiento sin ruido.
(b) Respuesta del estado del sistema dinámico real y el K-vecinos con entrenamiento con ruido. Sistema dinámico de segundo orden lineal.
Los diagramas de simulación de este sistema dinámico se pueden consultar en el anexo C.5.
(a) (b)
(a) (b)
Capítulo 5 Aplicaciones
77
5.3.1.4 Identificación de un sistema dinámico de segundo orden no lineal
El sistema de segundo orden no lineal utilizado, es el que se representa en la
siguiente ecuación:
(5.4)
donde se obtuvieron los datos de manera similar que el sistema de segundo orden lineal visto
en la sección anterior. Recordando que se requiere ejecutar en paralelo dos algoritmos K-
vecinos para identificar ambos estados.
La señal de entrada para identificar a los estados del sistema se muestra en la figura 5.26,
donde al igual que los casos anteriores, en (a) se muestra sin ruido y en (b) con ruido.
La señal de entrada con la que se logró identificar los estados de este sistema es una
triangular de amplitud de 1 ciclo cada 4 segundos, a la cual se le suma un ruido aleatorio
en (b) de la figura 5.26. La duración de la simulación para obtener los datos fue de 120
segundos, obteniendo un total de 1,201 puntos.
Figura 5.26 (a) Señal de entrada sin ruido. (b) Señal de entrada con 0.4 de ruido.
Sistema dinámico de segundo orden no lineal.
Aquí de nuevo se puede observar que para identificar los estados se requirió de más datos, en
este caso 1201 puntos sirven para rellenar más los espacios del conjunto.
Figura 5.27 Comportamiento del sistema dinámico con una señal sinusoidal. Sistema dinámico de segundo orden no lineal.
(a) (b)
Aplicaciones Capítulo 5
78
En la figura 5.27 se muestra el comportamiento no lineal de cada estado utilizando una señal
sinusoidal como entrada al sistema. En la figura 5.28 se observa la buena aproximación que
realizó el algoritmo K-vecinos de cada estado. En (a) se observa un poco de perturbación en la
señal del K-vecinos, al intentar aproximar el estado , pero aún así se considera una buena
aproximación y en (b) se muestra que aproxima mejor al estado con una leve perturbación.
Figura 5.28 (a) Respuesta del estado del sistema dinámico real y el K-vecinos con entrenamiento sin ruido.
(b) Respuesta del estado del sistema dinámico real y el K-vecinos con entrenamiento con ruido. Sistema dinámico de segundo orden no lineal.
Los diagramas de simulación de este sistema dinámico se pueden consultar en el anexo C.7.
Comentarios
Como conclusión a las experimentos realizados, se muestra que el algoritmo K-
vecinos, puede ser útil para identificar sistemas dinámicos con las características vistas en
estas secciones. Como trabajos futuros se pueden experimentar con otros tipos de sistemas
tales como sistemas dinámicos variantes en el tiempo, estocásticos, ruidosos, entre otros, que
por el alcance de este trabajo no se realizaron. Los datos de entrenamiento utilizados para
identificar los sistemas dinámicos de este capítulo, son empleados para las pruebas de control
que se exponen en las siguientes secciones, donde se les aplica el modelo de planta inversa de
la figura 3.6 del capítulo 3.
(a)
(b)
Capítulo 5 Aplicaciones
79
5.3.2 Pruebas de control de sistemas dinámicos
En toda la sección 5.3.1 se presentaron pruebas para identificar sistemas dinámicos
mediante el algoritmo K-vecinos, utilizando como selección de variables la técnica de Núcleo
Híbrido de Transición de Estados.
Unido al proceso de identificación existe un proceso principal dentro de la teoría de sistemas,
el cual es el control de sistemas dinámicos. El control tiene como objetivo llevar o mantener a
un proceso dentro de un área de operación, o bien realizar las acciones necesarias para lograr
mantener la salida de la planta en un valor de referencia deseado [Castillo,1999].
En estas secciones se utilizó al algoritmo K-vecinos para controlar sistemas a partir de los
datos de sus plantas. La obtención del controlador se lleva a cabo a partir de una estructura de
control basada en modelo inverso de la planta que se mostró en el capítulo 3.
En las pruebas que a continuación se presentan, se utilizó los sistemas dinámicos vistos en la
sección 5.3.1. Como ya se conoce la aproximación del comportamiento de cada uno de esos
sistemas, se aplicó el modelo de planta inversa para controlar los sistemas. Todos esos
sistemas fueron controlados manejando como señal de referencia o consigna, una señal
triangular y una sinusoidal.
5.3.2.1 Control de un sistema dinámico de primer orden lineal
Como primer caso para controlar, se utilizará el sistema de primer orden de la
ecuación (5.1) la cual es .
De este sistema se tienen dos antecedentes los cuales son , y un consecuente
. Este sistema ya fue identificado en la sección 5.3.1.1 por lo tanto ya se conoce su
comportamiento, y aplicando el modelo de planta inversa se puede realizar el control de este
sistema. La diferencia en el modelo de planta inversa, es que el valor de la entrada pasa a
consecuente, quedando como antecedentes y .
Al ejecutar el algoritmo K-vecinos con estos datos y realizando la simulación, se obtiene que
utilizando como referencia o consigna una señal sinusoidal y la triangular se obtiene buen
control sobre los sistemas. Como se puede observar en la figura 5.29 se logra que el sistema se
comporte como la señal de referencia proporcionada.
Los parámetros de la señal sinusoidal fueron: amplitud 1 y una frecuencia de 1 (Rad/Seg);
para la señal triangular los parámetros fueron: amplitud de 1 ciclo cada 4 segundos.
Aplicaciones Capítulo 5
80
Figura 5.29 Arriba: control sobre el sistema dinámico de primer orden lineal
utilizando una señal sinusoidal. Abajo: control sobre el sistema dinámico de primer orden lineal utilizando una señal triangular.
Como conclusión, se muestra que el algoritmo K-vecinos controla bien al sistema dinámico
presentado en esta sección. Hay que tomar en cuenta que no se utilizó ruido.
El diagrama de simulación de control para este sistema dinámico puede ser consultado en el
anexo C.2.
5.3.2.2 Control de un sistema dinámico de primer orden no lineal
Como segundo caso de prueba, se utilizó al sistema dinámico no lineal de la
ecuación (5.2) la cual es .
este sistema se identificó en la sección 5.3.1.2, donde se obtuvo una aproximación buena, a
pesar de tener un poco de error. Para identificar este sistema se requirió obtener 2,201 datos de
entrenamiento, los cuales son utilizados para controlar mediante la planta inversa, invirtiendo
a la entrada como consecuente, de la misma manera que el sistema anterior.
Capítulo 5 Aplicaciones
81
Para controlar se utilizó como señales de referencia una señal sinusoidal y otra triangular. En
la sinusoidal los parámetros fueron amplitud 1 y una frecuencia de 1 (Rad/Seg); para la señal
triangular los parámetros fueron amplitud de 1 ciclo cada 4 segundos.
Figura 5.30 Arriba: control sobre el sistema dinámico de primer orden no lineal
utilizando una señal sinusoidal. Abajo: control sobre el sistema dinámico de primer orden no lineal utilizando una señal triangular.
Como se observa en la figura 5.30, en ambas pruebas se tiene un buen control sobre el sistema,
sólo existe un poco de error, pero es aceptable para estos tipos de sistemas.
El diagrama de simulación de control para este sistema dinámico puede ser consultado en el
anexo C.4.
Aplicaciones Capítulo 5
82
5.3.2.3 Control de un sistema dinámico de segundo orden lineal
Para controlar un sistema de segundo orden se requiere al igual que en el proceso de
identificación, ejecutar un algoritmo K-vecinos para controlar al estado y otro para
controlar al estado . El caso de prueba para controlar un sistema dinámico de segundo
orden lineal de la ecuación (5.3) la cual es . En la sección
5.3.1.3 se mostró la identificación de sus dos estados.
Estos tipos de sistemas dinámicos tienen al menos dos estados, y para obtener los datos de
entrenamiento se tiene que ejecutar el algoritmo K-vecinos a los conjuntos
y . En estos conjuntos se observa que ambos conjuntos
son de 4 dimensiones y que contienen como consecuente a la entrada , por la aplicación
del modelo de planta inversa.
Una señal sinusoidal y otra triangular se utilizaron como referencia para controlar cada estado
por separado. Los parámetros para la primera señal fueron amplitud 1 y una frecuencia de 1
(Rad/Seg); para la otra señal fueron amplitud de 1 ciclo cada 4 segundos.
Figura 5.31 Arriba: control del estado del sistema dinámico de segundo orden lineal
utilizando una señal sinusoidal. Abajo: control del estado del sistema dinámico de segundo orden lineal utilizando una señal triangular.
Capítulo 5 Aplicaciones
83
En la figura 5.31 se observa que se logra controlar adecuadamente al estado utilizando
ambas señales como referencia. En el caso del control del estado también se muestran
resultados muy buenos, como se ve en la figura 5.32, donde se encuentran las señales
resultantes del control del estado , las gráficas del lado izquierdo contienen la salida del
K-vecinos en color azul, el cual muestra el gran esfuerzo de control que requiere inyectarle al
sistema para poder controlar al estado. A la derecha se encuentran las salidas pero sin la señal
de control con el objetivo de poder visualizar el comportamiento de los estados.
Figura 5.32 Arriba: control del estado del sistema dinámico de segundo orden lineal utilizando una señal sinusoidal.
Abajo: control del estado del sistema dinámico de segundo orden lineal utilizando una señal triangular.
En esta sección se mostró que el algoritmo K-vecinos puede utilizase para controlar los
estados y de un sistema dinámico de segundo orden lineal. El algoritmo K-vecinos
y el método de interpolación lineal funcionaron adecuadamente al utilizar las señales
sinusoidales y triangulares con los parámetros especificados para las pruebas. Inclusive se
hicieron pruebas con mayor amplitud en las señales y frecuencia, donde se detectó que siguen
funcionando de manera adecuada. Al aplicar ruido a las consignas, las señales de salida
empiezan a tener un poco de error, que pueden ser mejoradas tomando más datos en la fase de
obtención de datos desde la simulación.
El diagrama de simulación para el control de este sistema dinámico se puede consultar en el
anexo C.6.
Aplicaciones Capítulo 5
84
5.3.2.4 Control de un sistema dinámico de segundo orden no lineal
En este caso de prueba se utilizó el sistema dinámico de segundo orden no lineal de la
ecuación (5.4) la cual es .
En la sección 5.3.1.4 se expuso la identificación de los estados y , los cuales se
aproximaron con un poco de error. De manera similar al experimento anterior, se requiere
controlar los estados y , manejando los dos conjuntos de datos de 4 dimensiones
y , donde es el consecuente en
ambos conjuntos.
En esta prueba se utilizaron una señal sinusoidal y otra triangular como referencia para
controlar cada estado. Los parámetros para la primera señal fueron amplitud 1.5 y una
frecuencia de 1 (Rad/Seg); para la otra señal fueron amplitud de 1 ciclo cada 4 segundos.
Figura 5.33 Arriba: control del estado del sistema dinámico de segundo orden no lineal
utilizando una señal sinusoidal. Abajo: control del estado del sistema dinámico de segundo orden no lineal utilizando una señal triangular.
En la parte izquierda de la figura 5.33 se muestra el gran esfuerzo que hace el control para
inyectar la entrada del sistema, y en la parte derecha se observa que logra controlar al estado
pero con un margen considerable de error. Utilizando más datos se podría mejorar la señal de
salida de este estado.
Capítulo 5 Aplicaciones
85
Figura 5.34 Arriba: control del estado del sistema dinámico de segundo orden no lineal
utilizando una señal sinusoidal. Abajo: control del estado del sistema dinámico de segundo orden no lineal utilizando una señal triangular.
En la parte izquierda de la figura 5.34 se observa el esfuerzo de control requerido para
controlar al estado para ambas señales de referencia y en la parte derecha se muestran
los mismos resultados pero sin la señal de control del K-vecinos, para visualizar más de cerca
el comportamiento.
Concluyendo, se muestra en esta prueba que el estado se controló mejor que el estado
. El algoritmo K-vecinos y el método de interpolación lineal funcionó bien para esta
prueba. La salida del estado en las figuras 5.33 y 5.34 contienen ruido, a pesar de
realizar varias pruebas, finalmente ésta fue el mejor control que se alcanzó. Se puede realizar
más pruebas para mejorar el control del estado obteniendo más datos de entrenamiento,
pero hay tomar en cuenta el costo computacional.
El diagrama de simulación para el control de este sistema dinámico se puede consultar en el
anexo C.8.
86
87
Conclusiones
En este tema de investigación se propuso el estudio de la topología computacional y su
aplicación a las áreas de la I.A. Particularmente se propuso como casos de estudio las áreas de
inspección visual y control inteligente.
En inspección visual se realizaron pruebas para la identificación de traslape en conjuntos de
datos de entrenamiento del sistema de inspección visual desarrollado en [López,2008]. Los
algoritmos utilizados fueron -shapes e inclusión de forma no convexa. Estas herramientas
probaron su eficacia en el capítulo 5, experimentando con los datos de entrenamiento, donde
se concluyó que éstos tienen en general alto porcentaje de traslape. El porcentaje más bajo fue
de 39.5954%, el cual es elevado. Estos conjuntos requieren de más descriptores o técnicas de
segmentación para representar mejor a los objetos (manzanas), y así disminuir el traslape.
En el área de control inteligente se concluye que -shapes también permite una forma de
visualización de los huecos o cavidades que pudieran contener un conjunto de puntos. Conocer
estas estructuras permiten al investigador tener idea de cómo se comportará un sistema
computacional en la identificación o control sistemas dinámicos. También se desarrolló como
parte de experimentación el algoritmo K-vecinos junto con el método de interpolación lineal,
mostrando tener buenos resultados en el capítulo 5.
En las secciones posteriores de este capítulo se presentarán los objetivos cubiertos,
aportaciones como parte de las conclusiones de este trabajo de tesis.
Conclusiones
88
Objetivos cubiertos
Los objetivos cubiertos en el desarrollo de este tema de investigación son los
siguientes:
La implementación de algoritmos seleccionados desde la literatura para la descripción
de formas y el análisis de conectividad de conjuntos de datos. Estos algoritmos fueron
el -shapes y el algoritmo de conectividad utilizando el MST. El algoritmo -shapes
fue utilizado para describir las formas de los espacios N-dimensionales, y el otro
algoritmo sólo se implementó y se hicieron algunas pruebas sencillas porque no
cumplió con los objetivos de la tesis.
Con fines de exploración se realizaron pruebas con el algoritmo -shapes para
reconstruir un modelo de 2 y 3-dimensiones del conejo de la Universidad de Stanford,
donde se obtienen buenos resultados. Los resultados de estas pruebas pueden
consultarse con mayor detalle en el capítulo 5 en la sección 5.1.
El algoritmo de inclusión de forma no convexa se diseñó e implementó para la
detección de traslape de conjuntos N-dimensionales. Utiliza las descripciones de las
formas del algoritmo -shapes (utilizando -complex) para verificar qué puntos de un
conjunto se incluyen en la forma de otro conjunto. Este algoritmo utiliza los simplejos
obtenidos de la forma seleccionada al aplicar el algoritmo -shapes. Hay que recordar
que el valor de controla el nivel de detalle de la forma del conjunto, implicando que
el experto humano es quien decide qué es la más adecuada.
Para el área de control inteligente se propuso el algoritmo llamado K-vecinos para
identificar y controlar sistemas dinámicos. Los experimentos se realizaron con
sistemas dinámicos de primer orden, lineales y no lineales, también con sistemas
dinámicos de segundo orden lineal y no lineal. Las pruebas presentadas en esta
investigación son sólo un grupo reducido de plantas de la infinidad que existen, así que
se expondrá como trabajo futuro experimentar con otros tipos de plantas.
El algoritmo -shapes es propuesto como una forma de visualizar cavidades o huecos
de un conjunto de puntos.
El método de interpolación lineal se diseñó e implementó para realizar la interpolación
utilizando los puntos vecinos obtenidos del algoritmo K-vecinos.
Aportaciones
Las aportaciones de este trabajo de investigación son las siguientes:
La implementación del algoritmo -shapes para N-dimensiones, referido en la
literatura de topología computacional para obtener una descripción del espacio en
términos de simplejos. Al poder obtener la descripción del espacio de estudio, se puede
calcular algunos invariantes topológicos.
Conclusiones
89
Diseño e implementación de un algoritmo para detectar traslape entre conjuntos N-
dimensionales, llamado algoritmo de inclusión en forma no convexa. La entrada a este
algoritmo es la forma rellena de simplejos ( -complex) obtenida desde el algoritmo -
shapes.
Diseño e implementación del algoritmo K-vecinos utilizando el método para la
detección de regiones sobre-muestreadas o desprovistas de datos. Este método fue
utilizado para dividir el espacio en regiones. Estas regiones son manejadas por el
algoritmo K-vecinos propuesto para recorrer sólo las regiones vecinas obteniendo así
únicamente los datos de esas regiones.
Diseño e implementación de un algoritmo para realizar una interpolación lineal N-
dimensional con el objetivo interpolar puntos obteniendo como datos previos los
puntos que resultan del algoritmo K-vecinos.
La demostración mediante experimentación de la existencia de traslape en los
conjuntos de entrenamiento del sistema de inspección visual de [López,2008].
Los experimentos realizados para identificar y controlar algunos sistemas dinámicos
con los algoritmos K-vecinos e interpolación lineal.
La exploración en el área de la topología computacional.
La aportación del algoritmo -shapes como herramienta para el modelado de objetos
2D y 3D.
90
91
Trabajos futuros
Los trabajos futuros que pueden derivarse desde este trabajo de investigación son:
Uno de las limitaciones más notables del algoritmo -shapes es ¿Cómo determinar el
mejor valor para ? Este valor debe calcularse a prueba y error, como si se tuviera un
deslizador interactivo donde se puede variar el valor de hasta encontrar el mejor
[Teichmann,1998]. Implementar alguna rutina basada en la distribución de puntos
podría solucionar esta limitación.
Existen algunas variantes del algoritmo -shapes. El implementado en este trabajo es
la versión “clásica”. Un trabajo futuro podría ser adaptar éste para probar la variante
del algoritmo -shapes llamado “weighted -shapes” propuesto en
[Edelsbrunner,1992], en el cual se calculan pesos para cada punto, con el fin de
favorecer la conexión de los puntos vecinos.
El algoritmo de inclusión en forma no convexa requiere como entrada a la forma
rellena de simplejos de la estructura -complex, lo que hace que el algoritmo tarde en
responder si un punto se incluye o no en una de estas formas. Esto implica recorrer
todos los simplejos. Una forma de solucionar este problema es triangulando solamente
la frontera de la forma, con lo que se obtendrán una cantidad menor de simplejos. Otra
sería desarrollar una rutina que divida a la forma, en subconjuntos de formas convexas.
Con el algoritmo K-vecinos que se implementó en este trabajo se obtiene una
aproximación a los vecinos más cercanos de un punto. Esto significa que no garantiza
que sean los más cercanos.
Trabajos futuros
92
Como las regiones son divididas en cuadros en el caso de dos dimensiones (a más
dimensiones se le consideran hipercubos), existe la posibilidad de calcular los vecinos
más cercanos de un punto que se encuentre en una de las esquinas del cuadro (o región
a la que pertenece el punto). Si algún punto está cerca de la misma esquina pero fuera
del cuadro, no se considera como el más cercano, porque el algoritmo busca los puntos
que están en el interior del cuadro. Cualquier punto que se encuentre en otra esquina y
además en el interior, lo consideraría el más cercano, lo cual no es cierto. Lo mismo
puede suceder si se tienen más dimensiones. Una posible solución es ampliar la
búsqueda de los puntos de las regiones vecinas o desarrollar alguna función que
considere problema.
Las pruebas realizadas en sistemas dinámicos son pocas en comparación con la
cantidad infinita de plantas existentes, así que se propone experimentar con más
plantas y además con ruido.
Utilizar al algoritmo -shapes en otras aplicaciones de la I.A. como en la
reconstrucción de escenas para identificar obstáculos y así proporcionarle autonomía a
algún robot móvil tomando en cuenta el costo computacional. En la segmentación de
imágenes 3D al identificar componentes conexas, huecos, cavidades. Entre otras
aplicaciones.
En este trabajo sólo se visualizan los huecos a través del algoritmo -shapes de un
conjunto de puntos con dimensionalidad menor o igual a tres. Contiene la estructura
para obtener los huecos pero falta un método que los contabilice. Un trabajo futuro es
implementar algún método para contabilizar las cavidades o huecos para espacios de
alta dimensionalidad parecidos a los métodos propuesto en [Delfinado,1995] o en
[Robins,2002], los cuales utilizan los números de Betti para realizar esta tareas.
93
Referencias bibliográficas
[Bern,1999] Bern, Marshall; Eppstein, David; et al. “Emerging Challenges in Computational
Topology”. NSF-funded Workshop on Computational Topology, June 11 and 12, Miami
Beach, Florida, 1999.
[Canales,1980] Canales Ruíz R., Barrera Rivera R., “Análisis de Sistemas Dinámicos y
Control Automático”. ISBN: 458-91-0039-5, Limusa, México, 1980.
[Castillo,1999] Castillo Romero R., “Sintonización de controladores difusos basada en el
método de gradiente descendente”. Tesis de Maestría en Ciencias en Ciencias
Computacionales, Centro Nacional de Investigación y Desarrollo Tecnológico, Cuernavaca,
Morelos, mayo de 1999.
[Cervantes,2007] Cervantes Álvarez, Salvador. “Diseño e Implementación de una
Metodología Para la Generación de Formas 3D”. Tesis de maestría, Dpto. de Ciencias
Computacionales, Centro Nacional de Investigación y Desarrollo Tecnológico, Cuernavaca,
Morelos, 2007.
[Dabney,2004] Dabney J. B., Herman T. L., “Mastering Simulink”. ISBN: 978-0131424777,
Prentice Hall, New Jersey, 2004.
[Delfinado,1995] Delfinado, Cecil Jose A., Edelsbrunner, Herbert. “An incremental algorithm
for Betti numbers of simplicial complexes on the 3-sphere”. 0167-8396/95 /$09.50 @ 1995
Elsevier Science B.V. All rights reserved SSDI 0167 -8396(95) 0001 6-X.
[Eckhardt,1993] Eckhardt U.; Latecki, L. “Digital Topology”. University of Hamburg.
Hamburg, Germany. 1993.
Referencias bibliográficas
94
[Eckhardt,2003] Eckhardt, U. “Topologies for the digital spaces Z2 and Z
3”. University of
Hamburg, Bundesstrae 55, Hamburg D-20 146, Germany. Wachman Hall, Philadelphia, PA
19122, USA. Received 18 July2002; accepted 21 March 2003.
[Edelsbrunner y Mücke,1990] Edelsbrunner H. and Mücke E. P. “Simulation of simplicity:
A technique to cope with degenerat cases in geometric algorithms”. ACM Trans. Graph.,
9(1):66-104,1990.
[Edelsbrunner,1992] Edelsbrunner H. “Weighted alpha shapes”. Technical Report
UIUCDCS-R-92-1760, Dept. Comput. Sci., Univ. Illinois, Urbana, IL, 1992.
[Edelsbrunner,1994] Edelsbrunner, Helbert; Mücke, Ernst P. “Three-dimensional Alpha
Shapes”. ACM Transactions on Graphics, 13(1):43-72, 1994.
[Edelsbrunner,1995] Edelsbrunner Herbert, Facello Michael and Jie Liang. “On the
Definition and the Construction of Pockets in Macromolecules”. Office of Naval Research,
grant N00014-95-1-0691. National Science Foundation through the Alan T Waterman award,
grant CCR-9118874 and the CISE postdoctoral fellowship, NSF grant ASC-9404900.
[Escribano,2008] Escribano, Carmen; Giraldo, Antonio. “Topología Digital”. España:
Universidad Politécnica de Madrid, 2008 Descargado de la web. Fecha de consulta 13 de
noviembre de 2008. Liga: http://www.dma.fi.upm.es/docencia/segundociclo/topologiadigital/
[Fisher,2000] Fischer, K. (2005), “Introduction to alpha shapes”, ETH Zurich, Swiss. 2000.
Liga: http://www.inf.ethz.ch/personal/fischerk/pubs/as.pdf
[González,1996] González, Rafael C.; Woods Richard E., “Tratamiento Digital de Imágenes”.
Editorial Addison-Wesley/Díaz de Santos, ISBN: 978-0-201-62576-9 1996.
[Gröller,1999] Gröller E., Loffelmann H., Wegenkittl R., “Visualization of Dynamical
Systems“. Future Generation Computer Systems, Vol. 15, Issue 1, 1999, pp. 75-86.
[Hanselman,2005] Hanselman D., Littlefield B. “Mastering Matlab 7”. ISBN: 0-13-143018-1.
Pearson Education 2005.
[Hernández,2003] Hernández Mora, J. J. “Implementación de una red neuronal holográfica,
para el control de un brazo robot articulado”. Tesis de Maestría en Ciencias en Ciencias
Computacionales, Centro Nacional de Investigación y Desarrollo Tecnológico, Cuernavaca,
Morelos, enero de 2003.
[Hilera,1995] Hilera J. R., Martínez V. “Redes Neuronales Artificiales, Fundamentos,
modelos y aplicaciones”. ISBN: 8478971556, 1995, RA-MA, Estados Unidos de América.
[ISO9000,2000] Norma Internacional ISO 9000. “Sistemas de gestión de la calidad: conceptos
y vocabularios”. Secretaría Central de ISO en Ginebra, Suiza. Número de referencia: ISO
9000:2000. ©ISO 2000.
Referencias bibliográficas
95
[Jiménez,2005] Jiménez Villalobos D., Ramírez de la Cruz J.C. “Construcción de un brazo
robótico de tres GDL”. Tesis de Maestría en Ciencias en Ingeniería Mecatrónica, Centro
Nacional de Investigación y Desarrollo Tecnológico, Cuernavaca, Morelos, febrero de 2005.
[Leahy,1989] Leahy M. B. Jr., Valavanis K. P., Saridis G. N. “Evaluation of dynamic models
for PUMA robot control”. IEEE Transaction or Robotics and automation, Vol. 5, Issue 2,
1989, pp. 242-245.
[Lehmann,1982] Lehmann, Charles H. “Geometría analítica”. Editorial Limusa. ISBN 968-
18-1176-3. Impreso en méxico 1982.
[Liang,1998] Liang Jie, Edelsbrunner Herbert, Woodward Clare. “Anatomy of protein pockets
and cavities: Measurement of binding site geometry and implications for ligand design”.
Protein Science (1998), 71884-1897. Cambridge University Press. Printed in the USA.
Copyright © 1998 The Protein Society.
[López,2008] López Martínez E. “Algoritmos para la detección y cuantificación de defectos
en manzanas por inspección visual”. Tesis de Maestría en Ciencias en Ciencias
Computacionales, Centro Nacional de Investigación y Desarrollo Tecnológico CENIDET,
Cuernavaca, Morelos, febrero de 2008.
[Lucieer,2004] Lucieer, Arko. “Uncertainties in Segmentation and their Visualisation”. Tesis
de doctorado Universiteit Utrecht. ISBN 90-6164-225-6.
[May,2004] May Canché I. “Modelado de objetos deformables, utilizando color y textura”.
Tesis de Maestría en Ciencias en Ciencias Computacionales, Centro Nacional de Investigación
y Desarrollo Tecnológico, Cuernavaca, Morelos; 2004.
[Munkres,1984] Munkres James R. “Elements of algebraic topology”. ISBN: 0-201-04586-9.
Addison-Wesley Publishing Company, Inc 1984.
[Muñoz,1990] Muñoz Villate, Weimar; Huérfano, Stella. “Introducción a la Homología”.
Universidad Nacional de Colombia.
http://encuentrogeometria.org/dmdocuments/encuentro_15/27.pdf , último acceso 7 de julio
del 2008.
[Mücke,1993] Mücke, Ernst. “Shapes and implementations in three-dimensional geometry”.
Technical Report. University of Illinois at Urbana-Champaign, September 1993.
[Nomura,1992] Nomura H., Hayashi I., Wakami N. “A Learning Method of Fuzzy Inference
by Descendent Methods”, Proceedings IEEE International Conference on Fuzzy Systems, San
Diego, California, March 1992, pp. 203-210.
[Ogata,2003] Ogata K. “Ingeniería de Control Moderna”. ISBN: 8420536784, Prentice Hall,
México, 2003.
Referencias bibliográficas
96
[Ortíz,2007] Ortíz, E. A. “Sistema de inspección visual para la calidad de frutas”. Tesis de
Maestría en Ciencias en Ciencias Computacionales, Centro Nacional de Investigación y
Desarrollo Tecnológico CENIDET, Cuernavaca, Morelos; 2007.
[Real,2005] Real Jurado, Pedro. “Digitalización de imágenes y Topología”. Universidad de
Sevilla. Revista Imagen-a. 2005. Pág. 20-60.
[Rivero,2005] Rivero Mendoza ,Francisco. “Geometría Computacional”. Tutorial,
Universidad de Los Andes, Facultad de Ciencias, Mérida, Venezuela.
[Robins,1997] Robins, V.; et al. “Computing Connectedness: an exercise in computational
topology”. Nonlinearity 11 (1998), 913-922.
[Robins,1999] Robins, V.; Meiss, J.D., Bradley E. “Computing connectedness:
disconnectedness and discreteness”. University of Colorado, Boulder, CO 80309, USA. Ed.
Elsevier. 8 November 1999.
[Robins,2000] Robins, V. “Computational Topology at Multiple Resolutions: Foundations and
Applications to Fractals and Dynamics”. Thesis for the degree of Doctor of Philosofy.
Department of Applied Mathematics. University of Colorado. June 2000.
[Robins,2002] Robins, Vanessa. “Computational Topology for Point Data: Betti Numbers of
α-Shapes”. K.R. Mecke, D. Stoyan (Eds.): LNP 600, pp. 261–274, 2002. Springer-Verlag
Berlin Heidelberg 2002.
[Robins,2004] Robins, V; Abernethy J.; Rooney, R.; Bradley E. “Topology and intelligent
data analysis”. University of Colorado, Department of Computer Science. IOS Press 2004.
[Rosenfeld,1970] Rosenfeld, A. “Connectivity in Digital Pictures”. University of Maryland,
College Park, Maryland. Journal of the Association for Computing Machinery, Vol. 17, No. 1,
January 1970, pp. 146-160.
[Rosenfeld,1979] Rosenfeld, A. “Digital Topology”. The American Mathematical Monthly is
currently published by Mathematical Association of America Monthly, Vol. 86, No. 8.
(Oct.,1979), pp. 621-630.
[Rosenfeld,1981] Rosenfeld, A., Kak, A. C. “Digital Picture Processing”. Academic Press,
1981. ISBN: 978-0-12-597302-1. 2da. Edición.
[Sáez,2001] Sáez J. M., Escolano F., Hernández E. “Reconstrucción de mapas 3D a partir de
información estéreo utilizando un enfoque de minimización de energía”. Artículo presentado
en la Conferencia de la Asociación Española para la Inteligencia Artificial CAEPIA.
Universidad de Alicante. CAEPIA 2001.
[Sato,1996] Sato, Hajime. “Algebraic topology: an intuitive approach”. Editorial Board.
American Methematical Society. ISBN: 0-8218-1046-4.
Referencias bibliográficas
97
[Stanford,2008] University of Stanford. “The Stanford 3D Scanning Repository”. Pagina web
del repositorio de escaneo 3D de la Universidad de Stanford.
Liga: http://www-graphics.stanford.edu/data/3Dscanrep/
Último día de acceso: 20 de noviembre de 2008.
[Teichmann,1998] Teichmann M., Capps M. “Surface reconstruction with anisotropic
density-scaled alpha-shapes”. In IEEE Visualization '98 Proceedings, pages 67-72, San
Francisco, CA, October 1998. ACM/SIGGRAPH Press.
[Ulloa,2008] Ulloa Montoya, Héctor. “Análisis y Visualización de Datos para Interpolación N-
dimensional”. Tesis de la maestría en ciencias en ciencias de la computación. Centro nacional
de investigación y desarrollo tecnológico. Cuernavaca, Morelos, México. 2008.
[Vergara,2003] Vergara Villegas, O. O. “Reconocimiento de texturas artificiales, aplicación a
la obtención visual”. Tesis de Maestría en Ciencias en Ciencias Computacionales, Centro
Nacional de Investigación y Desarrollo Tecnológico, Cuernavaca, Morelos; 2003.
[Watson,1981] Watson D. F. “Computing the n-dimensional Delaunay tessellation with
application to Voronoi polytopes”. The computer journal , vol. 24, No. 2, 1981.
[Wiki01] http://es.wikipedia.org/wiki/Politopo
Ultimo acceso 8 de julio de 2008.
[Xianozhu,2007] Xianozhu Lin; Junwei Ji; Yingying Gu. “The Euler Number Study of Image
and Its Application”. School of Information engineering, Beijing institute of Petrochemical
Technology, Beijing 102617, China. 1-4244-0737-0/07/$20.00 ©2007 IEEE.
[Zomorodian,2005] Zomorodian, Afra J. “Topology for computing”. Cambridge University
Press. ISBN 978-0-511-08220-7.
98
99
Anexos
Con motivos de ampliar la información expuesta en algunos de los capítulos, en esta
sección se presenta el siguiente listado con el contenido de cada anexo.
El anexo A contiene una gráfica donde se muestra la cantidad de vecindades de un punto en
algún espacio.
El anexo B muestra el esquema conceptual del algoritmo K-vecinos, representando cada
proceso.
El anexo C ilustra los diagramas de simulación en Simulink© de la identificación y control de
los sistemas dinámicos presentados en el capítulo 5.
Anexos
100
Anexo A
La gráfica indica la cantidad mínima de vecinos que un punto puede tener en un espacio
discreto. Está basada en la ecuación (2.1) del capítulo 2 que se utiliza para calcular la cantidad
de vecinos en un espacio donde es el número de dimensiones. La gráfica muestra la
complejidad computacional que se requeriría para trabajar a más de 10 dimensiones.
La alta dimensionalidad es un factor importante que se debe de tomar en cuenta ya que de ella
dependerá la eficiencia de los algoritmos que trabajen sobre estos espacios.
Nú
mero
de v
ecin
da
des
Número de dimensiones
Anexos
101
Anexo B
Esquema conceptual del algoritmo K-vecinos.
Etapa de preprocesamiento
Archivos KDatos.txt y KIndices.txt divididos por
regiones
Salida por pantalla de los vecinos más
cercanos al punto de
referencia
K-vecinos
Leer archivos KDatos.txt y
KIndices.txt
Obtener región del punto
de referencia
Obtener punto de
referencia
Obtener regiones vecinas
del punto de referencia
Buscar vecinos más cercanos al punto de
referencia en las regiones vecinas
Procesos
Salidas
Módulos
Entrada
Archivo de texto: puntos
(Coordenadas)
Datos con
consecuente o sin
consecuente
Preprocesamiento
Solicitar número de
divisiones por
coordenada
Generación de
archivos: KDatos.txt,
KIndices.txt
Anexos
102
Anexo C
C.1 Diagramas de identificación del sistema dinámico de primer orden lineal
Diagrama de simulación del sistema dinámico de primer orden lineal dado por:
Diagrama de simulación donde se comparan los resultados del sistema dinámico real y del
algoritmo K-vecinos.
Anexos
103
C.2 Diagrama de control del sistema dinámico de primer orden lineal
C.3 Diagramas de identificación del sistema dinámico de primer orden no lineal
Diagrama de simulación del sistema dinámico de primer orden no lineal dado por la ecuación:
Anexos
104
Diagrama de simulación donde se comparan los resultados del sistema dinámico real y del
algoritmo K-vecinos.
Anexos
105
C.4 Diagrama de control del sistema dinámico de primer orden lineal
C.5 Diagramas de identificación del sistema dinámico de segundo orden lineal
Diagrama de simulación del sistema dinámico de segundo orden lineal dado por la ecuación:
Anexos
106
Diagrama de simulación donde se comparan los resultados del sistema dinámico real y del
algoritmo K-vecinos
Anexos
107
C.6 Diagrama de control del sistema dinámico de segundo orden lineal
Anexos
108
C.7 Diagramas de identificación del sistema dinámico de segundo orden no lineal
Diagrama de simulación del sistema dinámico de segundo orden no lineal dado por la
ecuación:
Anexos
109
Diagrama de simulación donde se comparan los resultados del sistema dinámico real y del
algoritmo K-vecinos
Anexos
110
C.8 Diagrama de control del sistema dinámico de segundo orden no lineal