Descargar

Conjuntos y sistemas difusos (lógica difusa y aplicaciones) (página 2)

Enviado por Pablo Turmero


Partes: 1, 2
edu.red

Tablas de la FMB FUZZY_OBJECT_LIST: Descripción de los objetos difusos definidos para cada atributo (OBJ#,COL#): FUZZY_ID: Identificador del objeto difuso (llave externa a FLD y FND). FUZZY_NAME: Nombre del objeto (sin espacios). FUZZY_TYPE: Tipo del objeto: etiquetas trapezoidales (0), etiquetas de tipo 3 (1), cualificadores (2), cuantificadores relativos y absolutos (3,4). FUZZY_LABEL_DEF: Definición de etiquetas trapezoidales. FUZZY_ID: Identificador del objeto difuso. ALFA, BETA, GAMMA, DELTA: Los cuatro valores del trapecio. FUZZY_APPROX_MUCH: Valores para el margen (MARGEN) y el valor mínimo o distancia mínima ? para considerar dos valores muy separados (MUCH) para atributos difusos Tipo 1 ó 2. FUZZY_NEARNESS_DEF: Medidas de proximidad, semejanza o similitud (DEGREE) entre cada dos etiquetas de un atributo difuso Tipo 3 (FUZZY_ID1, FUZZY_ID2). FUZZY_COMPATIBLE_COL: Indica las parejas de atributos difusos Tipo 3 que son compatibles entre sí: Con el mismo dominio. Esto no sólo evita tener que redefinir las etiquetas y la relación de similitud sino que además permite comparar dos atributos difusos compatibles, ya que el sistema sabe que tienen el mismo dominio.

edu.red

Resumen de SQL (Structured Query Language) SQL SQL está en continua evolución: Es una evolución del lenguaje SEQUEL de D.D. Chamberlin y R.F. Boyce (1974) y fue implementado por primera vez por IBM en su BDR llamado SYSTEM R. ISO (International Standards Organization) y ANSI (American National Standards Institute) desarrollaron una versión estándar en 1986, llamada SQL–86 o SQL1. Posteriormente, se desarrolló SQL2 o SQL–92. Actualmente se desarrolla SQL3, que incluye conceptos de BD orientadas a objetos. SQL es un lenguaje estándar para GESTIÓN de BDR: Está incluido en muchos SGBD (DBMS), como DB2 (de IBM), Oracle, Ingres, Informix, Sybase, Access, SQL Server… Las mismas sentencias sirven en distintos SGBD. Si se usan sólo las características estándares facilita la tarea de migrar de SGBD. Hay funciones no estándar en algunos SGBD.

edu.red

DML del LENGUAJE FSQL: SELECT SELECT: Novedades que incorpora FSQL (Galindo et al 1998a). Etiquetas Lingüísticas: En las sentencias FSQL las etiquetas van precedidas del símbolo $, para poder distinguirlas fácilmente. Comparadores Difusos (Galindo et al., 2000b; Carrasco et al., 2001): Tiene definidos 14 comparadores difusos divididos en dos familias (de Posibilidad y de Necesidad).

Permiten comparar dos atributos o un atributo con una constante. Para atributos difusos Tipo 3 sólo puede usarse FEQ. Para usar el comparador de “distinto” poner delante de la comparación la negación NOT. Conectivos Lógicos: Pueden usarse NOT, AND y OR, para enlazar condiciones difusas simples. (Gp:) Posibilidad Necesidad Significado FEQ NFEQ Posiblemente/Necesariamente Igual que FGT (FGEQ) NFGT (NFGEQ) Pos./Nec. Mayor (o igual) que FLT (FLEQ) NFLT (NFLEQ) Pos./Nec. Menor (o igual) que MGT (MLT) NMGT (NMLT) Pos./Nec. Mucho Mayor (Menor) que

(Gp:) FSQL

edu.red

DML del LENGUAJE FSQL: SELECT Umbral de Cumplimiento (threshold ?): Tras cada condición simple puede imponerse un umbral de cumplimiento mínimo (por defecto es 1), con el siguiente formato: < condición_simple> THOLD ? La palabra reservada THOLD es opcional y puede sustituirse por un comparador crisp (=, < , < =…) modificando el sentido de la consulta. Por defecto es equivalente al comparador >=. Constantes Difusas: Pueden usarse en el SELECT todas las constantes difusas ya definidas: UNKNOWN, UNDEFINED y NULL, $[a,b,c,d] (Distrib. de posibilidad Trapezoidal), $label (Etiquetas), [n,m] (Intervalo) y #n (valores aproximados).

edu.red

DML del LENGUAJE FSQL: SELECT Ejemplos: “Dame todas las personas cuya edad es aproximadamente 20 años” (con grado mínimo 0.6): SELECT * FROM Personas WHERE Edad FEQ #20 THOLD 0.6; “Dame todas las personas más o menos Rubias (con grado mínimo 0.5) cuya edad es posiblemente superior a Joven (con grado mínimo 0.8): SELECT * FROM Personas WHERE Pelo FEQ $Rubio THOLD 0.5 AND Edad FGT $Joven THOLD 0.8;

edu.red

DML del LENGUAJE FSQL: SELECT Función CDEG(< atributo>): Usada en la lista de selección, la función CDEG calcula, para cada tupla, el grado de cumplimiento del atributo del argumento en la condición de la cláusula WHERE. Función CDEG(?): Calcula el grado de cumplimiento de cada tupla en la condición de forma global, para todos sus atributos y no sólo para uno de ellos en particular La función CDEG usa, por defecto, los operadores típicos para la negación (1–x), conjunción (t-norma del mínimo) y disyunción (s-norma del máximo), pero pueden usarse otros (si se definen). Carácter Comodín %: Similar al carácter comodín ? de SQL, pero este incluye además la función CDEG aplicada a todos los atributos de la condición. No incluye CDEG(?). Condición con IS: También admite condiciones del tipo: < atributo_difuso> IS [NOT] {UNKNOWN | UNDEFINED | NULL}

edu.red

DML del LENGUAJE FSQL: SELECT Cuantificadores Difusos: Tiene dos modalidades que se aplican como condición en la cláusula HAVING que sigue a una cláusula GROUP BY: 1. “Q elementos de X cumplen A”: $Cuantificador FUZZY[?] (condición_difusa) THOLD ? 2. “Q elementos de X que cumplen B también cumplen A”: $Cuantificador FUZZY[?] (condición_difusa1) ARE (condición_difusa2) THOLD ? $Cuantificador: Es un cuantificador difuso absoluto o relativo que puede ser con o sin argumento, definido sobre alguno de los atributos que aparecen en la cláusula GROUP BY. THOLD ? : Umbral de cumplimiento mínimo (THOLD es opcional). FUZZY: Es opcional y si aparece indica que la evaluación del cuantificador se efectuará sumando no los elementos que cumplen la condición, sino el grado de cumplimiento de los mismos.

edu.red

DML del LENGUAJE FSQL: SELECT Ejemplo: “Equipos que tienen muchos más de 3 (con grado mínimo 0.5) jugadores Altos” (con grado mínimo 0.75): SELECT Equipo, CDEG(*) FROM Personas GROUP BY Equipo HAVING $Muchos_Mas_Que[3] (Altura FEQ $Alto 0.75) 0.5;

edu.red

Comparadores Difusos (Tipo 1 y 2) Sean dos distribuciones de posibilidad A y B que deseamos comparar: A FEQ B: A NFEQ B: Resto de Comparadores de POSIBILIDAD: Se utiliza FEQ pero modificando la distribución de posibilidad de la derecha (B) según indique el comparador. Si A=[a,b,c,d], entonces se modifica como: ? Comparadores de NECESIDAD: El proceso es similar al anterior pero negando además la distribuc. de posibilidad de la izquierda de la comparación (A). MGT/NMGT (MLT/NMLT): Se desplaza B hacia la derecha (izquierda) el valor ? (de la FMB) y luego se aplica la modificación FGT (FLT). (Gp:) 0 X (Gp:) 1 (Gp:) B

(Gp:) 0 X (Gp:) 1 (Gp:) FGEQ B

(Gp:) a b c d (Gp:) 0 X (Gp:) 1 (Gp:) FLEQ B

(Gp:) 0 X (Gp:) 1 (Gp:) FGT B

(Gp:) 0 X (Gp:) 1 (Gp:) FLT B

(Gp:) 0 X (Gp:) 1 (Gp:) MLT B (Gp:) a–? b–?

(Gp:) 0 X (Gp:) 1 (Gp:) MGT B (Gp:) c+? d+?

edu.red

DDL del LENGUAJE FSQL: CREATE CREATE TABLE: Tipos de datos Difusos: FTYPE1 o CRISP (m,?) < tipo_base>: Para atributos difusos Tipo 1. Entre paréntesis se indican los valores para los atributos MARGEN (m) y MUCH (?) de la tabla FUZZY_APPROX_MUCH. < tipo_base> es el dominio crisp de este atributo. Por defecto es NUMBER. FTYPE2 o POSSIBILISTIC (m,?) < tipo_base>: Para atributos difusos Tipo 2, similar a los de Tipo 1. FTYPE3 o SCALAR (L) : Para atributos difusos Tipo 1. Entre paréntesis se indica el máximo número de elementos de sus distribuciones de posibilidad (atributo LEN de FUZZY_COL_LIST). Puede añadirse la palabra DOMAIN seguida de un atributo ya existente: Esto hace que el atributo que se esté definiendo sea compatible con el que ya existe, tomando ambos el mismo dominio (etiquetas y relación ?).

edu.red

DDL del LENGUAJE FSQL: CREATE Ejemplo de comando CREATE TABLE: Supongamos que queremos crear una BDRD para una agencia inmobiliaria con atributos difusos para los PISOS (Galindo et al., 1999a): CREATE TABLE PISOS ( PISO# NUMBER(9) NOT NULL PRIMARY KEY, DUENNO# NUMBER(9) NOT NULL, DIRECCION VARCHAR2(60), SUPERFICIE FTYPE1 (15,25) NUMBER(4) CONSTRAINT NULL_INVALIDO_SUPERFICIE NOT NULL, PRECIO FTYPE2 (500,3000) NUMBER(6) DEFAULT UNKNOWN CONSTRAINT NULL_INVALIDO_PRECIO NOT NULL CONSTRAINT UNDEFINED_INVALIDO_PRECIO NOT UNDEFINED, ZONA FTYPE3 (3) DEFAULT UNKNOWN CONSTRAINT NULL_INVALIDO_ZONA NOT NULL CONSTRAINT UNDEFINED_INVALIDO_ZONA NOT UNDEFINED); Ej. Tupla: (2, 34, “C/ Gandhi”, 90, #10, {1/Centro, 0.8/Norte, 0.2/Este})

edu.red

DDL del LENGUAJE FSQL: CREATE CREATE LABEL: Creación y definición de etiquetas asociadas a un atributo difuso determinado. Dos formatos: 1. Crear nuevas etiquetas para atributos difusos Tipo 1 ó 2: CREATE LABEL < nombre_label> ON [esquema.]tabla.atributo VALUES alfa, beta, gamma, delta; 2. Copiar las etiquetas definidas en un atributo dentro del dominio de otro atributo, para atributos difusos de todo tipo: CREATE LABEL ? ON [esquema.]tabla.atributo1 FROM [esquema.]tabla.atributo2

Ejemplo: Crear una etiqueta para el atributo Superficie definido anteriormente: CREATE LABEL PEQUENNO ON PISOS.SUPERFICIE VALUES 30, 45, 65, 80;

edu.red

DDL del LENGUAJE FSQL: CREATE CREATE NEARNESS: Creación de etiquetas asociadas a atributos difusos Tipo 3 y definición de su relación de proximidad (?): CREATE NEARNESS ON [esquema.]tabla.atributo LABEL < lista_de_n_etiquetas> VALUES ?(E1,E2), ?(E1,E3), . . . , ?(E1,En), ?(E2,E3), . . . , ?(E2,En), . . . ?(En-1,En); Ejemplo: Crear las etiquetas para el atributo Zona (Barrio) anterior: CREATE NEARNESS ON PISOS.ZONA LABEL Centro, Norte, Sur, Este, Oeste VALUES 0.8, 0.8, 0.8, 0.8, 0, 0.5, 0.5, 0.5, 0.5, 0;

edu.red

Arquitectura de la BDRD La Arquitectura de la BDRD con el Servidor FSQL es una arquitectura Cliente/Servidor, en la que destacan los siguientes Elementos: 1. Base de datos: Tradicional: Relaciones con los datos (con el formato especial estudiado para los atributos difusos). FMB: Información (en formato relacional) sobre la BDRD: Etiquetas lingüísticas, Relaciones de semejanza, margen de valores aproximados y valor mínimo para considerar dos valores como muy separados. 2. Servidor FSQL: Hace posible el uso del lenguaje FSQL en el SGBD tradicional. Está programado en lenguaje PL/SQL©, un lenguaje inmerso del SGBD Oracle© que permite programar aplicaciones eficientes. 3. Cliente FSQL: Es un programa independiente que sirve de interfaz entre el usuario y el Servidor FSQL. Actualmente existe un cliente llamado FQ (Fuzzy Queries) para Windows.

edu.red

Arquitectura de la BDRD Funcionamiento del Servidor FSQL: Cinco Pasos a nivel interno: 1. El Cliente FSQL envía la sentencia FSQL al Servidor FSQL. 2. El Servidor FSQL analiza la sentencia y si es correcta genera una sentencia en SQL que resuelve dicha sentencia. Este paso utiliza la información de la FMB. Si no es correcta se genera el error pertinente. 3. El Cliente FSQL lee la sentencia SQL o los errores existentes. 4. El Cliente FSQL envía la sentencia SQL a cualquier BD coherente con la FMB.

5. El Cliente FSQL recibe los datos pertinentes. (Gp:) Cliente FSQL (Gp:) Servidor FSQL (Gp:) FMB (Gp:) Base de Datos Tradicional (Gp:) 1. Sentencia FSQL (Gp:) 2. Traducción usando FMB (Gp:) 3. Sentencia SQL (Gp:) 4. Sentencia SQL 5. Resultados (Gp:) Base de Datos

edu.red

Algunas Aplicaciones de FSQL 1. FSQL en aplicaciones de Gestión (Galindo et al., 1999a, 1999b): Aplicación a la gestión de una Inmobiliaria. Ejemplos de Atributos Difusos: Tipo 1: Número habitaciones, precio comunidad… Tipo 2: Precio, superficie, antigüedad… Tipo 3: Zona, tipo de inmueble (piso, estudio, duplex, solar, trastero, cochera, chalet…), vistas, luz… Ejemplo: SELECT CDEG(?), Inmuebles_Venta.? FROM Inmuebles_Venta WHERE Tipo FEQ $Chalet 0.5 AND Superficie FGEQ $Grande 0.7 AND Habitaciones FGEQ #6 0.7 AND Precio FEQ #10000 0.7; Flexibilidad con distintos comparadores difusos, constantes difusas, umbrales y operadores lógicos, que nos permiten no sólo encontrar mejor lo que el cliente busca sino además obtener una lista ordenada según el grado de cumplimiento de la condición por parte de cada inmueble.

edu.red

Algunas Aplicaciones de FSQL 2. Clasificación Difusa de Imágenes (Aranda et al., 1998): A partir de datos extraídos de una imagen con los contornos de cierto objeto puede aplicarse un sistema para clasificar dicha figura: a) Obtener el contorno, a partir de la imagen. b) Calcular la curva de curvatura: Mide el nivel de curva/recta que tiene el contorno en cada punto. c) Obtener Atributos: Número de vértices, signo y valor de la curvatura en esos vértices, distan- cia entre vértices, tamaño de la curvatura… d) Clasificación con consultas difusas sobre esos atributos: Ejemplo, para un triángulo isósceles: SELECT Imagen#, CDEG(?) FROM OBJETOS WHERE Signo1=‘P’ AND Signo2=‘P’ AND Signo3=‘P’ AND Dist1 FEQ $Grande 0.7 AND GradoK1 FEQ $Grande 0.7 AND Dist2 FLEQ $Normal 0.7 AND GradoK2 FLEQ $Normal 0.7 AND Dist3 FEQ $Grande 0.7 AND GradoK3 FLEQ $Normal 0.7;

edu.red

3. FSQL como Herramienta de Data Mining: Se sospecha que un lenguaje de consulta difusa a bases de datos (crisp o difusas) puede ser de gran utilidad en procesos de Data Mining. Aún no ha sido muy estudiado en este aspecto. Una de las aplicaciones estudiadas consiste en aplicarlo en un entorno financiero (Carrasco et al., 1999): DAPHNE (Carrasco, 1998): A partir de la BD de una entidad financiera este programa efectúa, en síntesis lo siguiente: Agrupamiento (Clustering) de los elementos según sus atributos. Obtiene valor de los atributos para un elemento “típico”: Centroides “Ci” para los atributos “Ai” del Grupo G. Con esos CENTROIDES, pueden calcularse los elementos de ese grupo (G) y el grado de pertenencia de cada uno: SELECT tabla.*, CDEG(*) Ej.: FROM tabla WHERE A1 FEQ C1 THOLD ? AND A2 FEQ C2 THOLD ? · · · AND An FEQ Cn THOLD ?; SELECT cliente#, CDEG(*) FROM clientes WHERE Nomina=‘N’ AND UsoTarjeta FEQ $Medio 0.7 AND Saldo FEQ #30533 0.7 ORDER BY 2 DESC; Algunas Aplicaciones de FSQL

edu.red

4. Deducción en Bases de Datos Difusas (Blanco, 2001): La idea principal es la Generalización de las Reglas de la Lógica Clásica: Una Regla está formada por una Cabeza y un Cuerpo: Cabeza: Es el predicado que se está definiendo y cuyos datos queremos averiguar. Cuerpo: Es un conjunto de predicados que definen las condiciones que deben cumplir los datos que pertenezcan al predicado de la cabeza. Ejemplo: R(X,Y) ? S(X,Z) ? T(Z,Y) Las dos ocurrencias de la variable Z no tienen porqué ser la misma: Existe una igualdad implícita. Ese tipo de comparaciones pueden hacerse de forma DIFUSA. Ejemplo: Dadas dos relaciones Historial (Paciente, Edad): Con datos como (1, 20), (2, #40), (3, Joven)… Riesgos (Edad, Enfermedad, Probabilidad) : Con datos como (Joven, Cefalea, Alta), (Viejo, Parkinson, Normal), ([0,4], Gastroenteritis, [30,40])… Averiguar las probabilidades de que cada paciente tenga cada enfermedad según su edad: CorreRiesgo(Paciente,Enfermedad,Probabilidad) ? Historial (Paciente, Edad1) ? Riesgos(Edad2,Enfermedad,Probabilidad) ? Edad1 FEQ Edad2 THOLD umbral Algunas Aplicaciones de FSQL

edu.red

Metodologia de Bases de Datos Metodología de diseño de bases de datos, diseño conceptual, diseño lógico y diseño físico (De Miguel et al 1999). Diseño Conceptual Diseño Lógico Implementación Galindo (1999) Medina (1994) Nivel 1 Nivel 3 Nivel 2 Urrutia (2003)

edu.red

Diseño Conceptual

edu.red

Atributo Imprecisos Tipo 2 Etiquetas lingüísticas para atributo T2:Largo de la entidad PILAS

edu.red

Atributo Imprecisos Tipo 3 Grado de simillitud. Función de Similitud para atributo difuso T3:Estado

edu.red

Atributos Difusos de la Tabla Pilas

edu.red

FMB: Tabla FUZZY_COL_LIST

edu.red

Consulta difusa SELECT cartulina.% FROM cartulina WHERE tono_cara FEQ $blanco THOLD 0.5 and tono_reverso FEQ $blanco THOLD 0.5;

edu.red

Conclusiones y Trabajos Futuros La bases de datos relacionales difusas permiten flexibilizar las bases de datos relacionales (atrbutos, gardos, comparadores, selecciones, etc…) Trabajos futuros, proponer bases de datos OO, estensiones a la propuesta presentado, sistemas expertos, mineria de datos, DW, …

edu.red

Bibliografía J. Galindo, “Tratamiento de la Imprecisión en Bases de Datos Relacionales: Extensión del Modelo y Adaptación de los SGBD Actuales”. Ph. Doctoral Thesis, University of Granada (Spain), March 1999 (www.lcc.uma.es). J.M. Medina, “Bases de Datos Relacionales Difusas. Modelo Teórico y Aspectos de su Implementación”. PhD. Thesis, Univ. of Granada (Spain), 1994 (www.decsai.ugr.es). J.M. Medina, O. Pons, M.A. Vila, “FIRST. A Fuzzy Interface for Relational SysTems”. VI International Fuzzy Systems Association World Congress (IFSA’1995). Sao Paulo (Brasil), 1995. A. Urruita, “Modelo Conceptual para una Base de Datos Difusa”, Ph. Doctoral Thesis, University of Castilla-La Mancha (Spain), July 2003 (www.ganimides.ucm.cl). L.A. Zadeh, “A Computational Approach to Fuzzy Quantifiers in Natural Languages”. Computer Mathematics with Applications, 9, pp. 149-183, 1983.

edu.red

“La razón por la cual el lenguaje natural se expresa en términos difusos no es porque el pensamiento humano sea difuso,sino por que el mundo es difuso”. John F. Sowa, matemático norteamericano (1940-).

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente