Source: http://docplayer.es/146396-Sistemas-basados-en-conocimiento.html
Timestamp: 2017-06-29 07:31:22+00:00

Document:
Sistemas Basados en Conocimiento - PDF
Download "Sistemas Basados en Conocimiento"
José Chávez Lozano
1 pág. 1 Arquitectura de los pág. 2 Arquitectura de los Sistemas Basados en Conocimiento Sistemas Basados en Conocimiento Base de conocimento - Conocimiento heurístico (decisiones - Conocimiento de control Base de hechos - Conocimiento de las estructuras de los datos y procedimientos asociados - Conocimiento de predicados Motor de inferencias - encadenamiento hacia delante - encadenamiento hacia atrás Carlos Ángel Iglesias Fernández Noviembre 1999 Memoria de trabajo Interfaz con el usuario, el ingeniero de conocimiento y el entorno informático Generador de explicaciones Arquitectura de SBC pág. 3 Sistemas Expertos vs. SBC pág. 4 Arquitectura de SBC Sistemas Expertos vs. SBC Usuario Ing. Conocimiento Experto Interfaz de usuario Generador de explicaciones Subsist. de adquisición de conoc. SE: visión conductista, funcional USUARIO problemas, preguntas respuestas, justificaciones, preguntas SE SBC: visión cognoscitiva, estructural Motor de Inferencias MOTOR DE INFERENCIAS Memoria de trabajo BASE DE CONOC. Reglas Marcos BASE DE CONOCIMIENTOS Control Hechos2 SBC expertos y no expertos pág. 5 SBC vs. Sistemas tradicionales pág. 6 SBC expertos y no expertos SBC vs. Sistemas tradicionales DEFINICIÓN DEL CONOCIMIENTO DE LA APLICA- CIÓN SISTEMAS DE IA SBC En ambos sistemas es necesario definir el conocimiento de la aplicación Mientras que en un SBC, el MI procesa el conocimiento de la aplicación, los sistemas tradicionales insisten en que repitamos el procesamiento para cada aplicación SIST. EXPERTOS MODIFICACION/MANTENIMIENTO DEL CONOCI- MIENTO DE LA APL. SBC: el usuario define el nuevo conocimiento y SBC lo integra en la aplicación existente heurísticos, procesamiento simbólico énfasis en conocimiento, arq. software aplicación a dominio concreto que requiere experiencia Sist. Tradicionales: el usuario define el nuevo conocimiento, y debe definir además cómo interacciona con el conocimiento previo y reestablecer la secuencia de instrucciones de procesamiento SE Y SBC: EVOLUCIÓN pág. 7 MYCIN: Fragmento de Consulta pág. 8 SE Y SBC: EVOLUCIÓN MYCIN: Fragmento de Consulta : Precursores - DENDRAL (Stanford /MACSYMA (MIT : Prototipos - INTERNIST (Pittsburg - MYCIN (Stanford - CASNET (Rutgers - PROSPECTOR (S.R.I : Primeras herramientas - PROLOG (Marsella-Edimburgo - OPS5 (CMU - MYCIN -> EMYCIN - PROSPECTOR -> KAS - CASNET -> EXPERT : Comercialización grandes ss.ee. - R1/XCON (DEC - ACE (Bell - Drilling Advisor (Teknowledge : Comercialización herramientas grandes y pequeñas M - Nombre del paciente? U - Juan Gómez M - Edad?... M - Qué organismo es el causante de la infección? U - No sé M - Crece el organismo en medio aerobio? U - Sí (0.8 M - Crece en medio anaerobio? U - Sí M - Cuál supone que ha sido la puerta de entrada? U - El tracto gastrointestinal ( M - Mis recomendaciones terapéuticas van a basarse en las siguientes infecciones y organismos probables: Infección-1: Bateriamia primaria 1 El organismo puede ser PSEUDOMAS AERU- GINOSA 2...3 MYCIN: Fragmento de diálogo pág. 9 Base de Conocimiento pág. 10 MYCIN: Fragmento de diálogo Base de Conocimiento 35M - La meningitis se ha contraído en un hospital? U - Por qué? M - Ello me ayudaría a determinar los organismos. Ya he concluído que: 1. La infección es meningitis 2. No se han visto organismos en el teñido del cultivo 3. El tipo de infección es bacteriana 4. No figura neurocirugía en el historial médico y 5. La edad del paciente es superior a 10 días Por tanto, si 6. El paciente contrajo la infección en un hospital entonces (regla 545 los organismos causantes podrían ser E. Coli (0.75, estafilococo coagulante positivo (0.3, pseudomonas aeruginosa (0.3 o klebsiella pneumoniae (0.5. Volvamos a la pregunta 35. U - Cómo 3? M - Por las siguientes reglas: Regla 500 (0.51 Regla 526 ( CONTROL Estrategia de alto nivel de la aplicación: fases de la aplicación, bases de conocimiento que se van a utilizar - Ejemplo: Primero, pedir los datos al cliente, después decidir si se le concede un crédito, y, en caso afirmativo, estimar la cuantía del crédito. CONOCIMENTO HEURÍSTICO Reglas del tipo si <condición> entonces <acción> - Ejemplo: si el solicitante tiene avalista, entonces se le concede el crédito. Base de Hechos pág. 11 El Motor de Inferencias pág. 12 Base de Hechos El Motor de Inferencias ESTRUCTURAS DE DATOS Definiciones, restricciones, tipos, valores por defecto,... (hechos no ordenados - Ejemplo: un perro tiene normalmente 4 patas, puede tener pelo corto o largo,... PATRONES Patrones que están en la memoria de trabajo o no ( hechos ordenados - Ejemplo: (animal pato (pato PROCEDIMIENTOS Métodos asociados a las estructuras de datos Funciones genéricas El motor de inferencias es una colección integrada de algoritmos de resolución de problemas. Está ya codificado y probado (frente a los sistemas convencionales. Funcionamiento 1. Lee el conocimiento de control para ver qué instrucciones de alto nivel hay definidas. 2. Si se inicia un proceso de inferencia: 2.1. Mira qué reglas son aplicables Si hay más de una regla aplicable, resuelve el conflicto, y selecciona una Aplica la regla (pudiendo tener que actualizar la B.C, aplicar métodos, Vuelve al paso 2.1 hasta que no haya reglas aplicables. Interfaz con el entorno informático4 Ciclo base del Motor de Inferencias pág. 13 Estrategias básicas de inferencia pág. 14 Ciclo base del Motor de Inferencias Estrategias básicas de inferencia ENCADENAMIENTO HACIA DELANTE (forward chaining DETECCIÓN REGLAS APLICABLES estado inicial conclusiones intermedias soluciones ELECCIÓN REGLAS (RESOL. CONFLICTOS reglas y hechos ENCADENAMIENTO HACIA ATRÁS (backward chaining APLICACIÓN estado objetivo subobjectivos soluciones ACTUALIZACIÓN BH reglas y hechos EJEMPLO DE SECUENCIA INFERENCIAL pág. 15 Resolución de conflictos pág. 16 EJEMPLO DE SECUENCIA INFERENCIAL BC: R1: a -> c R6: d&g -> b R2: a -> h R7: c&f -> b R3: c -> d R8: a&h -> d R4: d -> e R9: a&c&h -> b R5: b&f -> x R10: a&b&c&h -> f BHo: {a} ENCADENAMIENTO HACIA DELANTE BH: a c h d e b f x R: ENCADENAMIENTO HACIA ATRÁS x b a c g(no d c f h a a b c h f Resolución de conflictos Qué sucede cuando hay más de uina regla aplicable? --> debemos establecer un orden de aplicación de las reglas 1 Preferencia basada en reglas. - asignación de prioridades explícita - orden de introducción (Prolog - historia de la regla (la disparada más/menos recientemente - seleccionar la más/menos específica 2 Preferencia basada en objetos - seleccion de reglas que se aplican a los objetos más recientes - asignación explítica de prioridades a objetos (patrones más comunes a h a c a a a a b c h a a a a 3 Preferencia basada en estados - banco de pruebas, ver los resultados de la aplicación, y seleccionar la mejor (tras simular5 Ejemplo encadenamiento hacia atrás pág. 17 Ejemplo encadenamiento hacia atrás pág. 18 Ejemplo encadenamiento hacia atrás Regla 1: SI NivelRiesgo ES alto ENTONCES TipoInversión ES 'bonos del estado' Regla 2: SI EstiloInversión ES 'conservador' ENTONCES NivelRiesgo ES 'bajo' Introducción a CLIPS Regla 3: SI EstiloInversión ES 'aventurero' ENTONCES NivelRiesgo es 'alto' Regla 4: SI NivelRiesgo es alto ENTONCES TipoInversión ES 'bonos basura' Objetivo: Determinar TipoInversión Carlos Ángel Iglesias Fernández Noviembre 1999 Qué es CLIPS? pág. 19 Arquitectura de CLIPS pág. 20 Qué es CLIPS? Arquitectura de CLIPS CLIPS (C Language Integrated Production System es una herramienta para desarrollar sistemas expertos desarrollada por Software Technology Branch, NASA/Lyndon B. Johnson Space Center desde Sistema de producción con encadenamiento hacia delante escrito en C/ANSI. El motor de inferencias incluye un sistema de mantenimiento de verdad, adición dinámica de reglas, y diferentes estrategias de resolución de conflictos. Incluye un lenguaje orientado a objetos: COOL (Clips Object-Oriented Language Es fácilmente embebible en aplicaciones en C, ADA y FORTRAN, y está disponible en diversas plataformas (MS-DOS/Windows, Unix, Macintosh; también en Java (Jess. Extensiones para Lógina Borrosa (FuzzyCLIPS Base de conocimento - Conocimiento heurístico: Base de reglas - Conocimiento de control: Módulos/reglas/ embebido Base de hechos - Conocimiento de las estructuras de los datos y procedimientos asociados: COOL - Conocimiento de patrones: listas de hechos Motor de inferencias - encadenamiento hacia delante - encadenamiento hacia atrás Memoria de trabajo (MT Interfaz con el usuario, el ingeniero de conocimiento y el entorno informático: intérprete Generador de explicaciones6 Hechos (facts pág. 21 Órdenes básicas de MT pág. 22 Hechos (facts Órdenes básicas de MT Son patrones que pueden tener un campo o varios. Si tienen varios campos, el primero suele representar una relación entre los restantes. (hola (alumnos Juan Luis Pedro Los componentes de un patrón pueden ser de diferentes tipos: numéricos, cadenas, símbolos,... (nombre Juan (edad 14 Podemos añadirlos a la memoria de trabajo con assert y quitarlos con retract. Todos los hechos se almacenan en la lista de hechos: fact-list. A cada hecho se le asigna un identificador único (ej. f-1. (facts: lista los hechos de MT (assert <hecho>: añadimos hecho a MT (retract <índice-hecho>: eliminamos hecho (clear : eliminamos todos los hechos y construcciones de la memoria de trabajo. (reset: eliminamos todos los hechos de la memoria de trabajo, eliminamos las activaciones de la agenda y restauramos las condiciones iniciales: - añadimos el hecho initial-fact y el objeto initial-object, que se utilizarán por las reglas de inicialización. - añadimos los hechos y ejemplares iniciales, conocimiento a priori definido con deffacts y definstances. - añadimos las variables globales con su valor inicial. - fija como módulo actual el módulo MAIN EJEMPLO - Manejo de MT pág. 23 Reglas pág. 24 EJEMPLO - Manejo de MT Reglas Vamos a añadir y quitar hechos de la memoria de trabajo: CLIPS> (reset CLIPS> (facts f-0 (initial-fact For a total of 1 fact. CLIPS> (assert (hola <Fact-1> CLIPS> (facts f-0 (initial-fact f-1 (hola For a total of 2 facts. CLIPS> (retract 1 CLIPS> (assert (hola <Fact-2> CLIPS> (facts f-0 (initial-fact f-2 (hola For a total of 2 facts. CLIPS> (clear CLIPS> (facts Sintaxis: (defrule <nombre-regla> [<documentación opcional>] [(declare (salience <num>] (patrón 1 (patrón 2... (patrón N (acción 1 (acción 2... (acción N Ejemplo: (defrule marca-del-600 Marca del modelo 600 (modelo 600 (assert (marca-es SEAT7 El Motor de Inferencias en CLIPS pág. 25 Estrategias de resolución de conflictos en CLIPS pág. 26 El Motor de Inferencias en CLIPS Estrategias de resolución de conflictos en CLIPS El motor de inferencias trata de emparejar la lista de hechos con los patrones de las reglas. Si todos los patrones de una regla están emparejados se dice que dicha regla está activada. Las activaciones se mantienen en la agenda, en que se disponen por orden de prioridad. Para insertar una activación en la agenda, se siguen las estrategias de resolución de conflictos. Cuando una regla es activada, se coloca en la agenda según los siguientes criterios: 1. Las reglas más recientemente activadas se colocan encima de las reglas con menor prioridad, y debajo de las de mayor prioridad. 2. Entre reglas de la misma prioridad, se emplea la estrategia de resolución de conflictos fijada. 3. Si varias reglas son activadas por la aserción de los mismos hechos, y no se puede determinar su orden en la agenda según los criterios anteriores, se insertan de forma arbitraria (no aleatoria. Estrategias de CLIPS (I pág. 27 Estrategias de CLIPS (II pág. 28 Estrategias de CLIPS (I Estrategias de CLIPS (II Supongamos: - hecho-a activa r1 y r2 - hecho-b activa r3 y r4 - añadimos a MT hecho-a y hecho-b en este orden. Estrategia en profundidad (Depth - Es la estrategia por defecto. - Agenda: r3, r4, r1, r2 Estrategia en anchura (Breadth - Agenda: r1, r2, r3, r4 Estrategia de simplicidad/complejidad - El criterio de ordenación es la especifidad de la regla, esto es, el número de comparaciones que deben realizarse en el antecedente. (defrule ejemplo (item?x?y?x (test (and (numberp?x (>?x (+ 10?y (<?x 100 Estrategia aleatoria: a cada activación se le asigna un número aleatorio para determinar su orden en la agenda. Siempre se le asigna el mismo número en diferentes ejecuciones.8 Estrategias de CLIPS (III pág. 29 Almacenar, cargar y ejecutar un programa pág. 30 Estrategias de CLIPS (III Estrategia LEX (OPS5 - Se asocia a cada hecho y ejemplar el tiempo en que fueron creados, y se da mayor prioridad a las reglas con un hecho más reciente, comparando los patrones en orden descendente. Estrategia MEA(OPS5 - Aplicamos la misma estrategia de LEX mirando sólo el primer patrón, si coincide se aplica LEX. Almacenar, cargar y ejecutar un programa Podemos almacenar las reglas con save: (save ej.clp También podemos editar las reglas/hechos con un editor de textos: ;************************* ;* Programa Ejemplo * ;************************* (defrule marca-del-600 Marca del modelo 600 ;Comentario (modelo 600 (assert (marca-es SEAT Podemos cargarlo con load: (load ej.clp Para ejecutarlo: run. Normalmente tendremos que hacer un reset previo. Definir hechos pág. 31 Variables locales y comodines pág. 32 Definir hechos Variables locales y comodines Para no tener que teclear los hechos iniciales, podemos introducirlos con la estructura deffacts. Ejemplo: (deffacts hechos-600 información del 600 (modelo 600 (puertas 2 Estos hechos se añadirán a MT al hacer reset. Podemos poner variables en los patrones de la parte izda de una regla. El identificador de una variable comenzará por?. Ej. (defrule num-puertas (marca?x (printout t El coche es un?x crlf ;observar el retorno de carro (assert (coche-es?x En esta regla hemos utilizado la función printout, que nos permite mostrar un mensaje por el dispositivo que fijemos (t = salida estándard. Podemos especificar en un patrón un comodín para sustituir un campo (? o para sustituir más de un campo ($?9 Ejemplo Profesores pág. 33 Ejemplo Profesores pág. 34 Ejemplo Profesores ;;********************************** ;;* EJEMPLO DE VARIABLES/COMODINES * ;;********************************** (deffacts profesores (profesor Gregorio Fernandez Fernandez (profesor Mercedes Garijo Ayestaran (profesor Jose Carlos Gonzalez Cristobal (profesor Juan Ramon Velasco Perez (defrule apellidos-iguales (profesor?x?y?y (printout t D.?x tiene los apellidos iguales crlf ; no poner retorno en cadenas (defrule buenos-dias (profesor??x? (printout t Buenos días, Sr./Sra.?x crlf (defrule buenas-tardes (profesor $??x? (printout t Buenas tardes, Sr./Sra.?x crlf Variables globales pág. 35 Direcciones de hechos pág. 36 Variables globales Direcciones de hechos Permiten almacenar valores accesibles en reglas y funciones. Útiles para resultados. Ejemplo: (defglobal?*num* = 3?*suma* = (+?*num* 2?*cadena* = hola?*lista* = (create$ a b c Pueden estar en la parte izda de las reglas si no son utilizadas para asignar un valor, y su cambio no activa las reglas. Podemos almacenar las direcciones de los hechos en una variable con el operador <-. (defrule matrimonio?soltero <- (soltero?nombre (retract?soltero (assert (casado?nombre (printout t?nombre está casado crlf No pueden utilizarse como parámetros de funciones ni métodos (defrule regla-ilegal (hecho?*x* (defrule regla-legal (hecho?y&:(>?y?*x*10 Patrones avanzados (I pág. 37 Patrones Avanzados (II pág. 38 Patrones avanzados (I Patrones Avanzados (II Podemos poner restricciones al comparar un patrón: - negación (~: (color ~rojo - conjunción (&: (color rojo&amarillo - disyunción ( : (color rojo amarillo También podemos unir patrones con las relaciones lógicas or, and y not (por defecto, los patrones se unen con and. Ejemplo: (defrule no-cruzar (luz ~verde (printout t No cruce crlf (defrule precaucion (luz amarilla intermitente (printout t Cruce con precaución crlf (defrule regla-imposible (luz verde&roja (printout t MILAGRO!! crlf (defrule regla-tonta (luz verde&~roja (printout t Luz verde crlf ; Se dispara con (luz verde (defrule precaucion (luz?color&amarillo intermitente (printout t Cuidado luz?color crlf (defrule no-cruzar (estado caminando (or (luz roja (policia dice no cruzar (not (luz?;sin luz (printout t No cruzar crlf Comprobación de valores de los patrones pág. 39 Ejemplo comprobación patrones: pág. 40 Comprobación de valores de los patrones Ejemplo comprobación patrones: Tenemos dos posibilidades: - (test <función-booleana> <arg> -?variable&:(<función-booleana> <arg> Funciones booleanas (predefinidas/usuario: - lógicas: or, not, and - comparación: numérica: =,<>, >=, >, <=, < cuaquier tipo: eq, neq - funciones predicado: lexemep, stringp, numberp, evenp, symbolp,... (defrule mes-valido (entrada?numero (test (and (>=?numero 1 (<=?numero 12 (printout t Mes válido crlf (defrule mes-valido-equiv (entrada?numero&:(and (>= numero 1(<=?numero 12 (printout t Mes válido crlf Cuando hay más de una variable que queremos comprobar en el patrón/patrones, utilizar test.11 Asignación de valores a una variable pág. 41 Funciones para campos multivalor pág. 42 Asignación de valores a una variable Funciones para campos multivalor Sintaxis: (bind <variable> <valor> Ejemplo: (defrule suma (numeros?x?y (bind?r (+?x?y (assert (suma-es?r (printout t?x +?y =?r crlf Crear lista: create$ CLIPS> (create$ a b c (a b c Longitud de una lista: length$ Recorrer una lista: progn$(<índice> <lista> CLIPS> (progn$ (?c (create$ a b c (printout t -->?c?c-index <-- crlf --> a 1 <-- --> b 2 <-- --> c 3 <-- insertar/borrar un elemento: insert$/delete$ CLIPS> (insert$ (create$ a b c 1 x (x a b c CLIPS> (delete$ (create$ a b c d e 2 4 (a e Funciones pág. 43 Estructuras de control en funciones y reglas pág. 44 Funciones Sintaxis: (deffunction <nombre-fun> [comentario] (?arg1?arg2...?argm [?argn] ;el último argumento puede ser campo ; mul tivalor opcional/si no, ( (<acción 1>... <acción K> Las funciones devuelven el resultado de la última acción. Ejemplo: CLIPS> (deffunction suma(?a?b (bind?suma (+?a?b (printout t Suma =?suma crlf (+?a?b CLIPS> (suma 3 4 Suma =7 7 Estructuras de control en funciones y reglas Condición simple (if (<condición> then (<acciones> [else (<acciones>] Bucle condicional (while (<condición> (<acciones> Ejemplo: (defrule continua-bucle?bucle <- (bucle (printout t Continuar? crlf (bind?resp (read (if (or (eq?resp si(eq?resp s then (retract?bucle (assert (bucle else (retract?bucle (halt12 Entrada de datos pág. 45 Características de la programación orientada a objetos en CLIPS pág. 46 Entrada de datos Podemos utilizar las funciones read y readline CLIPS> (read una entrada una CLIPS> (readline una entrada una entrada Ejemplo: (deffunction pide-numero (?pregunta (printout t?pregunta (bind?respuesta (read (while (not (numberp?respuesta do (printout t?pregunta (bind?respuesta (read?respuesta ;devuelve?respuesta (defrule pregunta ; se añade initial-fact con reset (bind?num (pide-numero Numero : (assert (numero?num Características de la programación orientada a objetos en CLIPS Abstracción: la definición de una nueva clase crea un nuevo tipo abstracto de datos. Encapsulación: los ejemplares de las clases definidas por el usuario deben ser accedidos con mensajes (excepto en la parte izda de las reglas y en las preguntas de conj. de ejemplares. Herencia: una clase se puede definir a partir de una o varias (herencia múltiple por especificación. Polimorfismo: la implementación de los mensajes puede diferir entre clases Enlace dinámico: las variables y referencias a ejemplares se pueden referir dinámicamente a diferentes objetos. Principales desviaciones de COOL de POO pura pág. 47 Estructura de los objetos pág. 48 Principales desviaciones de COOL de POO pura Estructura de los objetos No soporta herencia por generalización (objetos contenidos. Es una de las mejoras previstas en la versión siguiente. No todo en CLIPS son objetos: sólo los tipos primitivos (symbol, integer,... y los ejemplares de las clases definidas por el usuario son objetos. Otras estructuras de datos como las construcciones (hechos, reglas, clases,.. deben ser manipulados de forma tradicional (i.e. ( ppdefrule pide-num vs (send [print] pide-num. Los ejemplares pueden ser manipulados en la parte izda de las reglas y con preguntas de conj. de ejemplares (ej. find-all, esto es, sin paso de mensajes. Se establece un compromiso entre encapsulación y eficiencia. La construcción defclass especifica las ranuras (atributos de una nueva clase de objetos. - Las facetas especifican propiedades de una ranura, p.ej. tipo de valor. La construcción defmessage-handler crea los elementos procedimentales (métodos de una clase de objetos. La herencia múltiple puede ser utilizada para especializar una clase existente, es decir, la nueva clase hereda las ranuras y los métodos de sus superclases.13 Definición de clases pág. 49 Facetas interesantes pág. 50 Definición de clases Facetas interesantes Sintaxis: (defclass <nombre> [<commentario>] (is-a <nombre-superclase>+ [<role>] [<pattern-match-role>] <ranura>* <manejador-documentación>* <role> ::= (role concrete abstract <pattern-match-role> ::= (pattern-match reactive non-reactive <ranura> ::= (slot single-slot multislot <nombre> <faceta>* role: si podemos tener ejemplares o no pattern-match: los objetos de la clases se pueden comprobar en una regla default/default-dynamic: fija valores iniciales para las ranuras. Default-dynamic evalúa la expresión de la faceta cada vez que se crea un ejemplar, y default sólo la evalúa cuando la clase es creada. Valores:?DERIVE?NONE expr access : read-write, read-only, initialize-only. storage: local o shared (lo comparten todos los ejemplares propagation: inherit, no-inherit. source: exclusive, composite. Sólo obtenemos valores para una ranura de la clase más específica si se redefine. create-accessor:?none, read, write, readwrite. Crea los manejadores get-, put-. visibility: private, public. pattern-match: reactive, non-reactive. Modificar del valor tiene efectos para empejar. Facetas de restricciones pág. 51 Ejemplos de Clases pág. 52 Facetas de restricciones Ejemplos de Clases type: SYMBOL, STRING,LEXEME, INTEGER, FLOAT, NUMBER, INSTANCE-NAME, INSTANCE- ADDRESS, INSTANCE, EXTERNAL-ADDRESS, FACT- ADDRESS allowed-symbols, allowed-strings, allowedlexemes, allowed-integers, allowed-floats, allowed-numbers, allowed-intance-names, allowed-values range: ej. (range 1?VARIABLE cardinality: número máximo y mínimo de campos multislot. (defclass perro (is-a USER (role concrete (pattern-match reactive (slot patas (type INTEGER (default 4(range 0 4 (create-accessor read-write (slot raza (type SYMBOL (allowed-symbols caniche dogo (default caniche (create-accessor read-write (multislot dueno (type STRING (cardinality 1 2 (default Juan (create-accessor read-write (slot ident(type SYMBOL (default-dynamic (gensym14 Creación de ejemplares (I pág. 53 Creación de Ejemplares (II pág. 54 Creación de ejemplares (I Creación de Ejemplares (II make-instance CLIPS> (make-instance Lulu of perro [Lulu] CLIPS> (send [Lulu] print [Lulu] of perro (patas 4 (raza caniche (dueno Juan (ident gen1 definstances CLIPS> (definstances perros (Milu of perro (dueno Tintin (Laika of perro (dueno URSS Pedro CLIPS> (instances [Lulu] of perro For a total of 1 instance. CLIPS> (reset CLIPS> (instances [initial-object] of INITIAL-OBJECT [Milu] of perro [Laika] of perro For a total of 3 instances. CLIPS> (send [Milu] get-patas 4 CLIPS> (send [Milu] put-patas 3 3 CLIPS> (send [Milu] print [Milu] of perro (patas 3 (raza caniche (dueno Tintin (ident gen2 CLIPS> (send [Laika] print [Laika] of perro (patas 4 (raza caniche (dueno URSS Pedro (ident gen3 Con cada reset, se generan nuevos identificiadores. Al inicializar, se llama a los métodos get-,put- Objetos y reglas pág. 55 Plantillas (templates pág. 56 Objetos y reglas Plantillas (templates Los patrones de objetos son como los de hechos, excepto que: - Las reglas sólo se pueden emparejar con clases de objetos definidas antes de la regla, y tanto la clase como las ranuras deben ser reactivas. - en COOL se emplea mucha información estática (existencia de ranuras,restricciones, por lo que es menos eficiente que los patrones/templates. Frente a los hechos, los cambios en una ranura sólo activarán a las reglas que comprueben esa ranura--> eficiencia Ejemplo: (defrule muestra-dueno-milu (object (is-a perro (name [Milu](dueno?d (printout t Dueno :?d crlf Sintaxis: (deftemplate <nombre> [<commentario>] <ranura>* <ranura> ::= (slot multislot <nombre> <faceta>* <faceta> ::= (default allowed-... type range <value> Son como clases sin herencia Permiten representar hechos no ordenados. Se definen como hechos (assert/deffacts Emparejamiento: (<plantilla> (<atributo> <patrón1> (<atrib2> <patrón2>... Orden modify: mismo efecto que retract/ assert: (modify <dir-hecho> (<atrib.> <valor>+15 Ejemplo Plantillas (I pág. 57 Ejemplo Plantillas (II pág. 58 Ejemplo Plantillas (I Ejemplo Plantillas (II (deftemplate persona (slot nombre (type SYMBOL (slot edad (type NUMBER (range 0 99(default 20 (slot estado (type SYMBOL (allowed-symbols soltero casado viudo (default soltero (deffacts personas (persona (nombre Pepe (persona (nombre Juan(edad 25 (defrule casa-mayores-25?p <-(persona (nombre?nombre (edad?edad (estado soltero (test (>=?edad 25 (modify?p (estado casado (printout t?nombre " tiene "?edad " anios"crlf CLIPS> (reset CLIPS> (run Juan tiene 25 anios CLIPS> (facts f-0 (initial-fact CF 1.00 f-1 (persona (nombre Pepe (edad 20 (estado soltero CF 1.00 f-3 (persona (nombre Juan (edad 25 (estado casado CF 1.00 For a total of 3 facts. Módulos pág. 59 Ejemplo de módulos (I pág. 60 Módulos Ejemplo de módulos (I Los módulos representan diferentes estados en la resolución del problema, y aíslan las clases y reglas. Cada módulo tiene su propia agenda. Cada módulo debe indicar que construcciones importa y exporta. El hecho initial-fact debe ser importado del módulo MAIN (módulo inicial Deberemos especificar a qué módulo pertenenen las construcciones con <módulo>::. Los módulos se fijan con focus. Ej. (focus A B C. Pasamos de un módulo a otro cuando la agenda de un módulo está vacía. También se puede cambiar de módulo con reglas, definiendo (declare (autofocus TRUE. (defmodule MAIN (export?all (defrule MAIN::r1 (focus MAIN A B (printout t MAIN --- r1 crlf (defmodule A (import MAIN deftemplate initial-fact (export defclass clase (export defglobal v-num v-mul (defglobal A?*v-num* = 4?*v-mul* = (create$ antes (defclass A::clase (is-a USER (pattern-match reactive (role concrete (slot ranura (create-accessor read-write (definstances A::ejemplares (ejemplar of clase (ranura 416 Ejemplo de módulos (II pág. 61 Ejemplo de módulos (III pág. 62 Ejemplo de módulos (II Ejemplo de módulos (III (defrule A::r1 (printout t r1 - Modulo A crlf (send [A::ejemplar] print ;o sin A:: (bind?*v-num* 7 (bind?*v-mul* (insert$?*v-mul* 1 hoy (defmodule B (import MAIN deftemplate initial-fact (import A defclass clase (import A defglobal v-num v- mul (defrule B::r2 (object (is-a clase(ranura?a(name [ejemplar] (printout t r2 - modulo B crlf (printout t v-num:?*v-num* v- mul:?*v-mul* crlf ;sin A:: (send [A::ejemplar] print ;con A:: CLIPS> (reset CLIPS> (run MAIN --- r1 r1 - Modulo A [ejemplar] of A::clase (ranura 4 r2 - modulo B v-num: 7 v-mul:(hoy antes [ejemplar] of A::clase (ranura 4 Ejemplo taller pág. 63 Ejemplo taller pág. 64 Ejemplo taller ; MODULO MAIN (defmodule MAIN (export deftemplate initial-fact (export?all (defrule MAIN::inicio (focus DIAGNOSIS TRATAMIENTO ; MODULO DIAGNOSIS (defmodule DIAGNOSIS (import MAIN deftemplate initial-fact (export defglobal diagnostico ; ;-PARA ENCADENAMIENTO HACIA ATRAS ;;;******************************* ;;;* DEFTEMPLATE DEFINITIONS * ;;;******************************* (deftemplate DIAGNOSIS::rule (multislot if (multislot then ;;;****************************** ;;;* INFERENCE ENGINE RULES * ;;;****************************** (defrule DIAGNOSIS::propagate-goal "" (encadenamiento hacia-atras (not (deducido? (goal is?goal (rule (if?variable $? (then?goal??value (assert (goal is?variable17 Ejemplo taller pág. 65 Ejemplo taller pág. 66 (defrule DIAGNOSIS::goal-satified "" (declare (salience 30 (not (deducido??f <- (goal is?goal (variable?goal?value (answer??text?goal (retract?f ; (format t "%s%s%n"?text?value (assert (deducido?value ;almaceno (defrule DIAGNOSIS::remove-rule-nomatch "" (declare (salience 20 (not (deducido? (variable?variable?value?f <- (rule (if?variable? ~?value $? (retract?f (defrule DIAGNOSIS::modify-rule-match "" (declare (salience 20 (not (deducido? (variable?variable?value?f <- (rule (if?variable??value and $?rest (modify?f (if?rest (defrule DIAGNOSIS::modify-rule-matchor "" ;a nadido para manejar or (declare (salience 30 (not (deducido??f <- (rule (if $?cond1 or $?cond2(then $?conc lu (retract?f (assert (rule (if $?cond1 (then $?conclu (assert (rule (if $?cond2 (then $?conclu (defrule DIAGNOSIS::rule-satisfied "" (declare (salience 20 (not (deducido? (variable?variable?value?f <- (rule (if?variable??value (then?goal??goal-value (retract?f (assert (variable?goal?goal-value Ejemplo taller pág. 67 Ejemplo taller pág. 68 (defrule DIAGNOSIS::ask-question-nolegalvalues "" (declare (salience 10 (not (deducido? (not (legalanswers $??f1 <- (goal is?variable?f2 <- (question?variable??text (retract?f1?f2 (format t "%s "?text (assert (variable?variable (read (defrule DIAGNOSIS::ask-questionlegalvalues "" (declare (salience 10 (not (deducido? (legalanswers? $?answers?f1 <- (goal is?variable?f2 <- (question?variable??text (retract?f1 (format t "%s "?text (printout t?answers " " (bind?reply (read (if (member (lowcase?reply?answers then (assert (variable?variable?rep ly (retract?f2 else (assert (goal is?variable ;-- FIN DE ENCADENAMIENTO HACIA ATRAS -- (defglobal DIAGNOSIS?*diagnostico* = desconocido (deffacts DIAGNOSIS::base-conocimiento (goal is diagnostico (legalanswers are si no (answer is "Nuestro diagnositico es " d iagnostico (rule (if arranca is si (then diagnostico is sin_averias (question arranca is "?Arranca el coche (s/n?" (rule (if arranca is no and gasolina is no (then diagnostico is sin_gasolina (question gasolina is "?Tiene gasolina (s i/no?" (rule (if arranca is no and frio is si (then diagnostico is sin_starter (question frio is "?Hace frio (si/no?" (rule (if arranca is no and explosiones i s si (then diagnostico is con_explosiones (question explosiones is "?Oye exploxio nes (si/no?" Mostrar más
Reglas. El constructor defrule y otros comandos relacionados
Reglas El constructor defrule y otros comandos relacionados Reglas Introducción Definición de reglas Ciclo básico de ejecución de reglas Sintaxis del antecedente Propiedades de una regla Comandos Introducción Más detalles REPRESENTACIÓN DEL CONOCIMIENTO CLOS (CLIPS) Práctica 3
REPRESENTACIÓN DEL CONOCIMIENTO CLOS (CLIPS) Práctica 3 Objetivos: Implementación de Marcos mediante las características de CLOS en CLIPS. Definición y manejo de clases e instancias. 1. DEFINICIÓN DE CLASES Más detalles Referencia. EXPERT SYSTEMS, Principles and Programming, Third Edition J. Giarrantano, G. Riley PWS Publishing Company, Boston 1998 ISBN 0-534-95053-1
CLIPS Introducción Referencia EXPERT SYSTEMS, Principles and Programming, Third Edition J. Giarrantano, G. Riley PWS Publishing Company, Boston 1998 ISBN 0-534-95053-1 Documentación CLIPS reference manual Más detalles Práctica 1: Introducción a CLIPS
C. Graciani Díaz F. J. Martín Mateos J. L. Ruiz Reina Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla CLIPS CLIPS C Language Integrated Production Systems http://clipsrules.sourceforge.net Más detalles Sistema experto: KingsHelper 08
Sistema experto: KingsHelper 08 David García Sánchez Estudiante Ing. Telecomunicación Universidad Carlos III de Madrid Av. de la Universidad 30 28911 Leganés (Madrid) 100029739@alumnos.uc3m.es Javier García Más detalles Lenguaje de programación Jess. Java Expert System Shell
Lenguaje de programación Jess Java Expert System Shell Ejemplo introductorio Problema de tipo puzzle en el cual hay cinco casas, de diferente color, habitadas por hombres de diferentes nacionalidades, Más detalles Licenciatura en Obras Públicas. Ingeniería del Conocimiento. Curso 08/09
Licenciatura en Obras Públicas Ingeniería del Conocimiento Curso 08/09 Ingeniería a del Conocimiento La asignatura Curso 08/09 La Ingeniería del Conocimiento es el proceso de diseñar y hacer operativos Más detalles Sistema CLIPS (Apuntes)
Sistema CLIPS (Apuntes) Autor: Aitor San Juan Sánchez (aitorsj@hotmail.com) Título: Sistema CLIPS (Apuntes) Área: Sistemas Basados en el Conocimiento (I.A.) N.º Págs.: 100 2 CLIPS Prólogo Este documento Más detalles Inteligencia Artificial
Inteligencia Artificial Representación del conocimiento I.T. en Informática de Sistemas, 3º Curso académico: 2010/2011 Profesores: Ramón Hermoso y Roberto Centeno Índice Introducción a la representación Más detalles TUTORIAL DE CLIPS. VERSION 0.8 / 9 de marzo de 2000
TUTORIAL DE CLIPS VERSION 0.8 / 9 de marzo de 2000 Este documento está destinado a los alumnos de tercer curso de las Ingenierías Técnicas de Informática de la Universidad de Murcia. El objetivo del documento Más detalles Ingeniería Técnica en Informática de Gestión
Departamento de Informática Universidad Carlos III de Madrid Ingeniería Técnica en Informática de Gestión Inteligencia Artificial Febrero 2007. 1 a parte Normas generales del examen El tiempo para realizar Más detalles Contenido. Jess: Introducción Elementos básicos de programación Funcionamiento del motor de inferencias Desarrollo de aplicaciones con Jess
Herramientas Jess Contenido Jess: Introducción Elementos básicos de programación Funcionamiento del motor de inferencias Desarrollo de aplicaciones con Jess 2 Introducción 3 Jess Historia Inspirado en Más detalles Ingeniería Técnica en Informática de Gestión
Departamento de Informática Universidad Carlos III de Madrid Ingeniería Técnica en Informática de Gestión Inteligencia Artificial Septiembre 2011. 1 a parte Normas generales del examen El tiempo para realizar Más detalles Sistemas Expertos Arquitectura - Motor de Inferencias. Ingeniería Electrónica Ingeniería del Conocimiento
Sistemas Expertos Arquitectura - Motor de Inferencias Ingeniería Electrónica Ingeniería del Conocimiento Estructura básica de un SE. Ingeniero del conocimiento Experto del dominio K A T Base de Conocimientos Más detalles CLIPS - Code Snippets
Intel.ligència Artificial Enginyeria en Informàtica CLIPS - Code Snippets Versión 0.8 Departament de Ciències de la Computació CURS 2010/2011 1Q cbea This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike Más detalles Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.
Introducción Java surgió en 1991 dentro de la empresa Sun Microsystems como un lenguaje de programación sencillo y universal destinado a electrodomésticos. La reducida potencia de cálculo y memoria de Más detalles RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA
UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí Más detalles Inteligencia en Redes de Comunicaciones Jess
Estos ejercicios sirven de introducción al desarrollo de sistemas expertos en CLIPS, usando la versión de CLIPS en Java llamada : http://www.jessrules.com/ En primer lugar, aquí se plantean unos cuantos Más detalles Java Inicial (20 horas)
Curso de Java POO: Programación orientada a objetos Luis Guerra Velasco Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Introducción a la POO 2 Herencia y polimorfismo 3 Empaquetado de proyectos Más detalles Desarrollo del software imposible si las tareas tuviesen que expresarse en código máquina. Lenguajes de más alto nivel: comprensibles, manejables y
1. Paradigmas de programación Desarrollo del software imposible si las tareas tuviesen que expresarse en código máquina. Lenguajes de más alto nivel: comprensibles, manejables y automáticamente convertibles Más detalles Práctica 4: Herencia. Objetivos:
Práctica 4: Herencia Objetivos: Como se implementa la herencia en Java (superclase - clase descendiente). Utilizar super. Redefinición de métodos Clase Object Clase System Clases abstractas 1. Herencia. Más detalles CONCEPTOS BASICOS DEL LENGUAJE JAVA
CONCEPTOS BASICOS DEL LENGUAJE JAVA NOMENCLATURA GENERAL En Java se distinguen las letras mayúsculas y minúsculas. Las reglas del lenguaje respecto a los nombres de variables son muy amplias y permiten Más detalles PROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas
Departamento de Informática PROGRAMACIÓN DIDÁCTICA Curso 11-12 1 CONSEJERÍA DE EDUCACIÓN I.E.S. NERVIÓN Departamento de Informática CICLO FORMATIVO: TÉCNICO SUPERIOR EN DESARROLLO DE APLICACIONES MULTIPLATAFORMA. Más detalles Ejercicios de CLIPS. Inteligencia en Redes de Comunicaciones
Inteligencia en Redes de Comunicaciones Ejercicios de CLIPS Julio Villena Román, Raquel M. Crespo García, José Jesús García Rueda {jvillena, rcrespo, rueda}@it.uc3m.es 1 Estos ejercicios sirven de introducción Más detalles Introducción a la Programación Orientada a Objetos
Introducción a la Programación Orientada a Objetos El paradigma imperativo. En un programa se tienen una serie de variables con las cuales operamos y modificamos mediante sentencias y funciones para producir Más detalles Manual de Arlips v. 3.1
Manual de Arlips v. 3.1 Grupo de Tecnología Informática - Inteligencia Artificial Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia (España Índice 1. Introducción Más detalles TEMA 3 (parte 3). Representación del Conocimiento
TEMA 3 (parte 3). Representación del Conocimiento Francisco José Ribadas Pena INTELIGENCIA ARTIFICIAL 5 Informática ribadas@uvigo.es 1 de diciembre de 2009 FJRP ccia [Inteligencia Artificial] 3.3 Representaciones Más detalles Comencemos a programar con. Entrega 10. Estructuras de Control II
Comencemos a programar con VBA - Access Entrega 10 Estructuras de Control II Eduardo Olaz 10-2 Estructuras de Control, segunda parte Las Instrucciones While - - - Wend La estructura de bucle For Contador Más detalles Ejercicios de evaluación de fundamentos de programación en Java
Ejercicios de evaluación de fundamentos de programación en Java Jorge Martínez Ladrón de Guevara Editorial EME ISBN 978-84-96285-40-8 Contenido 1. Introducción a Java... 1 Test de evaluación...1 Ejercicios...4 Más detalles www.aprendoencasa.com Curso Introducción JAVA Pág.: 1
www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 Introducción Java es un lenguaje basado en la programación orientada a objetos (POO), este tipo de programación va más allá del tipo de programación Más detalles Lenguajes de Programación Curso 04-05. Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces 1. 2. Clases abstractas 2
Objetivos Herencia. Utilización de interfaces y clases abstractas. Índice 1. Interfaces 1 2. Clases abstractas 2 3. Collections Framework 3 3.1. Collection........................................... 3 Más detalles Sistemas Expertos Introducción Arquitectura - Motor de Inferencias. Ana Casali Andrea Torres Ingeniería del Conocimiento -EIE
Sistemas Expertos Introducción Arquitectura - Motor de Inferencias Ana Casali Andrea Torres Ingeniería del Conocimiento -EIE IC - MODULOS INTRODUCCION SISTEMAS BASADOS EN CONOCIMIENTO RAZONAMIENTO APROXIMADO Más detalles INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B)
APRENDERAPROGRAMAR.COM INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B) Sección: Cursos Categoría: Curso Aprender programación Java desde cero Fecha revisión: Más detalles Sistemas Inteligentes de Gestión. Tutorial de CLIPS
Sistemas Inteligentes de Gestión Tutorial de CLIPS Juan Carlos Cubero & Fernando Berzal Sistemas Inteligentes de Gestión: CLIPS 1 Índice CLIPS... 3 Referencias... 3 Hechos y reglas... 4 Vectores ordenados Más detalles Introducción. Herencia y Polimorfismo. Ejemplos (I) Ejemplos (II) Control de Acceso. Herencia
Introducción Herencia y Polimorfismo Se pueden definir jerarquías de clases, con clases generales que definen el comportamiento común a unos objetos y clases específicas que sólo añaden o redefinen el Más detalles Creación y destrucción de objetos
Creación y destrucción de objetos Contenido Descripción general 1 Uso de constructores 2 Objetos y memoria 13 Creación y destrucción de objetos i Notas para el instructor Este módulo proporciona a los Más detalles Tema 3: Genericidad en Java. Tema 3: Genericidad en Java. Objetivos y Bibliografía. Modelos de Datos Genéricos
Tema 3: Genericidad en Java Tema 3: Genericidad en Java Germán Moltó Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia Índice general: 1. Definición y Ventajas de la Más detalles UNIVERSIDAD NACIONAL DE INGENIERÍA CENTRO DE EXTENSIÓN Y PROYECCIÓN SOCIAL
UNIVERSIDAD NACIONAL DE INGENIERÍA CURSO DE JAVA CERTIFICA ORGANIZA Mayor Información: informes@uni.edu.pe Telf. : 481-6693 /381-3854 Visite Nuestra Web http://www.ceps.uni.edu..pe OBJETIVOS GENERALES Más detalles Elementos léxicos del lenguaje de programación Java
Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices Operadores Más detalles JavaScript. Contenidos. Introducción El lenguaje Validación de formularios. Programación en Internet 2005-2006. DLSI - Universidad de Alicante 1
Departamento de Lenguajes y Sistemas Informáticos JavaScript Programación en Internet Curso 2005-2006 Contenidos Introducción El lenguaje Validación de formularios DLSI - Universidad de Alicante 1 Introducción Más detalles Patrones de diseño. Sesión 1: Introducción y patrones básicos. Especialista Universitario Java Enterprise
Sesión 1: Introducción y patrones básicos Titulo Módulo 2006-2007 Depto. Ciencia de la Computación e IA Titulo sesión-1 En el desarrollo de aplicaciones J2EE ( y no J2EE!) se presentan una y otra vez los Más detalles Java en 2 horas. Rodrigo Santamaría
+ Java en 2 horas Rodrigo Santamaría + Generalidades 2 Desarrollado por Sun en 1995 Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas a bytecode Gestión Más detalles Sistemas Expertos. Caso de Estudio: Selección de un microcontrolador
Sistemas Expertos Caso de Estudio: Selección de un microcontrolador Introducción Un Sistema Experto (SE) clásico comienza con una serie de preguntas. En base a las respuestas genera una recomendación. Más detalles INDICE Parte I. Conceptos 1. El estudio de los lenguajes de programación 2. Cuestiones de diseño de lenguajes
INDICE Parte I. Conceptos 1 1. El estudio de los lenguajes de programación 1.1. Por qué estudiar lenguajes de programación? 2 1.2. Breve historia de los lenguajes de programación 1.2.1. Desarrollo de los Más detalles Manual SBR. Pero antes de explicar las actividades que principalmente podemos desarrollar vamos a dar una visión global de la aplicación.
Manual SBR Este proyecto consta de una herramienta denominada SBR mediante la cual el usuario podrá realizar principalmente las siguientes actividades: Crear un nuevo dominio. Modificar el dominio existente. Más detalles INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA
INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA Introducción Qué es programar? Idear y ordenar las acciones necesarias para realizar un proyecto (R.A.E) En nuestro contexto: Resolver problemas, Automatizar Más detalles Inteligencia Artificial
Inteligencia Artificial TP Kappa Mauricio Notti - Pablo Pilotti - Pablo Speciale Etapa 1 : Se solicita desarrollar en Kappa_PC un sistema capaz de hacer un pronóstico del estado del tiempo, solicitando Más detalles TEMA 3: EL LENGUAJE C: PRESENTACIÓN
TEMA 3: EL LENGUAJE C: PRESENTACIÓN Historia del lenguaje C Características del lenguaje C Estructura de un programa en C El editor de textos: elementos Funciones: de usuario y de librería Librerías de Más detalles Tema 2. El lenguaje de programación Java (Parte 1)
Programación en Java Tema 2. El lenguaje de programación Java (Parte 1) Luis Rodríguez Baena Facultad de Informática Elementos del lenguaje (I) El juego de caracteres. No utiliza ASCII, sino Unicode de Más detalles 3. DIAGRAMAS DE CLASES...19 3.1. INTRODUCCIÓN... 19 3.2. DIAGRAMAS DE CLASES... 19 3.2.1. Perspectivas...20 3.2.2. Clases...20 3.2.2.1.
3. DIAGRAMAS DE CLASES...19 3.1. INTRODUCCIÓN... 19 3.2. DIAGRAMAS DE CLASES... 19 3.2.1. Perspectivas...20 3.2.2. Clases...20 3.2.2.1. Compartimento del nombre...21 3.2.2.2. Compartimento de la lista Más detalles INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008
INTRODUCCIÓN Estructura de Datos Tipos Abstractos de Datos (TAD S) Para poder obtener un programa que resuelva un problema dado, son necesarios varios pasos : La formulación y especificación del problema Más detalles Programación orientada a objetos TEMA 1 INTRODUCCIÓN AL PARADIGMA ORIENTADO A OBJETOS POO
Programación orientada a objetos TEMA 1 INTRODUCCIÓN AL PARADIGMA ORIENTADO A OBJETOS Cristina Cachero Pedro J. Ponce de León (1 Sesión) Versión 0.7 POO Indice El progreso de la abstracción Definición Más detalles Herencia e Interfaces
Herencia Introducción En C# cualquier dato es un objeto porque todos los tipos derivan implícitamente de este tipo, y heredan los métodos y campos definidos en dicha clase. Cada nuevo tipo tiene todo lo Más detalles Prácticas: Introducción a la programación en Java. Informática (1º Ingeniería Civil) Curso 2011/2012
Prácticas: Introducción a la programación en Java Informática (1º Ingeniería Civil) Índice Introducción a Java y al entorno de desarrollo NetBeans Estructura de un programa Tipos de datos Operadores Sentencias Más detalles Algunas características de los lenguajes de programación orientados a objetos son:
Programación Orientada a Objetos (POO) La programación orientada a objetos es un paradigma de programación que, como su nombre lo indica, se basa en el uso de objetos estructuras de datos que consisten Más detalles CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA
CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA PROGRAMACIÓN DIDACTICA ANUAL Parte específica del módulo: 0485. Programación Departamento de Familia Profesional de Informática Curso: 2014-15 Más detalles Programación 2 Curso 2013 2014. Guía de desarrollo C/C++ con Eclipse
Programación 2 Curso 2013 2014 Introducción Guía de desarrollo C/C++ con Eclipse Eclipse 1 es un entorno de programación que permite el desarrollo de aplicaciones en diferentes lenguajes. Consta de un Más detalles De los casos de uso a los casos de prueba. Caso práctico. Aplicación web Javier Gutiérrez / javierj@us.es
De los casos de uso a los casos de prueba Caso práctico. Aplicación web Javier Gutiérrez / javierj@us.es Objetivo Objetivo: Mostrar cómo aplicar el proceso ETUC para la generación de casos de prueba a Más detalles Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.
CICLO: 01/2010 Universidad Don Bosco Materia: Lenguaje de Programación III Contenido: 1-Lectura de Datos de entrada. 2-Introduccion a JOPTIONPANE. 3-Estructuras de Control. ->LECTURA DE DATOS DE ENTRADA Más detalles Introducción a la Programación en MATLAB
Introducción a la Programación en MATLAB La programación en MATLAB se realiza básicamente sobre archivos M, o M-Files. Se los denomina de esta forma debido a su extensión.m. Estos archivos son simple archivos Más detalles Programa Java. El lenguaje de programación Java. Comentarios. Programa Java. Palabras reservadas. Identificadores
El lenguaje de programación Java Programa Java Un programa Java está formado por un conjunto de clases que interactúan entre sí La clase es la unidad básica de programación La ejecución depende de la clase Más detalles Introducción a los Tipos Abstractos de Datos
Página 1 de 8 Introducción a los Tipos Abstractos de Datos Introducción: Concepto de abstracción Abstracción funcional y abstracción de datos Construcción de tipos abstractos de datos Especificación de Más detalles Programación: QBASIC
1. QBASIC Programación: QBASIC Guía del alumno Qbasic es una versión moderna del lenguaje BASIC. Se trata de un lenguaje de alto nivel. En un lenguaje de alto nivel las instrucciones tienen un formato Más detalles CommonKADS: Nivel de concepto
Francisco J. Martín Mateos Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Objetivos del nivel de concepto Especifica la estructura de la información y del conocimiento Más detalles 2.2.- Paradigmas de la POO
2.2.- Paradigmas de la POO Los principios propios de la orientación a objetos son: 2.2.1.- Abstracción de Datos 2.2.2.- Encapsulamiento 2.2.3.- Ocultamiento 2.2.4.- Herencia 2.2.5.- Polimorfismo Cualquier Más detalles Programación Avanzada para Sistemas de Telecomunicación. Objetos y clases. J.C. Cruellas. Objetos y clases
Programación Avanzada para Sistemas de Telecomunicación Objetos y clases Juan Carlos Cruellas cruellas@ac.upc.es Objetos y clases Concepto de objeto. Concepto de clase. Clases, objetos y programas. Clases Más detalles 3. Componentes del Modelo de Conocimiento
La metodología CommonKADS 3. Componentes del Modelo de Conocimiento 3.1 Introducción 3.2 Conocimiento de Dominio 3.3 Conocimiento de Inferencia 3.4 Conocimiento de Tarea Carlos Alonso González Dpto. de Más detalles Introducción a la programación en R
Programación en R 1 Introducción a la programación en R Qué es un programa de ordenador? Un programa de ordenador consiste en una secuencia de instrucciones que un ordenador pueda entender. El procesador Más detalles Tecnologías de Programación Web Dr. Diego C. Martínez. Depto de Cs e Ing. de la Computación Universidad Nacional del Sur.
Historia de Java 1991 Comienza el proyecto Green. 1992 Se presenta el lenguaje Oak. Java, 10 años - JavaOne Conference 26 al 30 de junio de 2005 1995 Nace oficialmente la tecnología Java. Cambia el nombre Más detalles 02 Lenguajes de programación y compiladores
2 Contenido Introducción Lenguaje de programación Traductor Compilador Interprete Lenguaje compilado Lenguaje interpretado Compiladores (just in time) Lenguaje ensamblador Programa objeto Lenguajes de Más detalles SINTAXIS DE SQL-92. ::= CREATE SCHEMA [ ... ]
SINTAXIS DE SQL-92 Introducción: Se presenta brevemente un resumen de la sintaxis de SQL según el estándar ISO 9075 (SQL- 92), dividido en tres partes: - Lenguaje de Definición de Daots (LDD), - Lenguaje Más detalles Qué ofrece la programación en AutoCAD? Qué necesito para empezar a programar? Qué es C# y.net? Autor: Jorge A. Díez Pomares Laboratorio de C.A.D.
Qué ofrece la programación en AutoCAD? Qué necesito para empezar a programar? Qué es C# y.net? Laboratorio de C.A.D. UMH 1 1.1. INTRODUCCIÓN 1.2. SOFTWARE NECESARIO 1.3. CONFIGURACIÓN DEL PROYECTO EN VS2010 Más detalles Tipos Abstractos de Datos
Tema 2: Lógica y Razonamiento Automático tico Introducción Lógica Proposicional Lógica de Predicados Axiomas Unificación Razonamiento automático e Inferencias lógicas Resolución Regla de Inferencia Refutación Más detalles Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle
Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Tipos de herencia Herencia y niveles de visibilidad Herencia y creación Redefinición de métodos Conversión Más detalles Repaso de las características más importantes de la programación Java y su adaptación a Android
Repaso de las características más importantes de la programación Java y su adaptación a Android 1. Entorno de programación en java 2. Variables y tipos de datos 3. Operaciones y operadores 4. Clases y Más detalles Introducción a Protégé
FACULTAD DE INFORMÁTICA LICENCIATURA EN DOCUMENTACIÓN SISTEMAS DE REPRESENTACIÓN Y PROCESAMIENTO AUTOMÁTICO DEL CONOCIMIENTO Práctica 1 1ª Parte Introducción a Protégé Febrero 2003 1. Objetivo La presente Más detalles Sistemas Inteligentes de Gestión. Relación de ejercicios CLIPS. Sistemas expertos basados en reglas con encadenamiento hacia adelante
Sistemas Inteligentes de Gestión Relación de ejercicios CLIPS Sistemas expertos basados en reglas con encadenamiento hacia adelante Juan Carlos Cubero & Fernando Berzal ENTREGA DE LA PRÁCTICA clips.doc Más detalles " ##$ % & '( % & )*+),$ -##$ -!- $! "-./ - 0WebClass1-2
! " ##$ % & '( % & )*+),$ -##$ -!- $! "-./ - 0WebClass1-2!" # 345 637 6$5!!!89 & 5 :8-7 & & ;(< 8 $ + - 8 : #= ' 7= : 0 & 0 &- =.> = ;(("9 &? WebClass - 1@#$% &'A1 ;(< 8- ( ) * *+ " $ % B9 5 5 # :!- WebClass Más detalles Conceptos fundamentales de la POO. Fundamentos de la Programación Orientada a Objetos Objetos y Clases
Fundamentos de la Programación Orientada a Objetos Objetos y Clases Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad Complutense Más detalles 2.1. Introducción al lenguaje Java
Bloque II. Elementos del lenguaje de programación Java 1.Introducción a los lenguajes de programación 2. Estructura de un programa 3. Datos y expresiones simples 4. Instrucciones de control 5. Entrada/salida Más detalles Fundamentos del Lenguaje de Programación Java
Fundamentos del Lenguaje de Programación Java M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx El lenguaje Java Estándares de codificación Comentarios Programas con Java Identificadores Palabras clave Más detalles INTRODUCCIÓN A LA INTELIGENCIA ARTIFICIAL: LOS SISTEMAS EXPERTOS
Introducción a los Sistemas Expertos 1 INTRODUCCIÓN A LA INTELIGENCIA ARTIFICIAL: LOS SISTEMAS EXPERTOS ÍNDICE 1. INTRODUCCIÓN. EVOLUCIÓN HISTÓRICA 2. DEFINICIÓN Y CARACTERÍSTICAS DE LOS SE. 3. TIPOS Y Más detalles Árboles binarios de búsqueda
Clase 27 Árboles binarios de búsqueda Árboles binarios de búsqueda En la clase anterior, definimos el concepto de árbol binario de búsqueda como un árbol binario de nodos que contienen una clave ordenada Más detalles Práctica 3 mtp. metodoloxía e tecnoloxía da programación. Presentar detalles básicos sobre la sintaxis del lenguaje de programación Java.
Práctica 3 mtp metodoloxía e tecnoloxía da programación Objetivos: Duración: Presentar detalles básicos sobre la sintaxis del lenguaje de programación Java. 1 semana 1.- Identificadores Los identificadores Más detalles Universidad de Cantabria corcuerp@unican.es
Herencia Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Aprender los conceptos de herencia Comprender la forma de derivar una Más detalles INDICE. 2.2. Uso de la composición (I). Preservación de la ocultación... 11. 3.3. Utilización de miembros heredados (I). Atributos...
TEMA 9 INDICE 1. Relaciones entre clases.... 4 1.1. Composición... 5 1.2. Herencia... 6 1.3. Herencia o composición?... 7 2 Composición... 9 2.1. Sintaxis de la composición.... 9 Ejercicio resuelto... Más detalles Programación shell-scripts 1 LA SHELL
Programación shell-scripts 1 LA SHELL Un gran número de utilidades y herramientas de administración están realizadas mediante ficheros de ordenes del interprete de comandos de Unix (Shell). A lo largo Más detalles GESTIÓN DE REDES PARTE III
PARTE III Arquitectura de Gestión OSI 3.1 Introducción La gestión de red OSI, pensada inicialmente para la gestión de las propias redes OSI, debe su implantación práctica al ser adoptada por los estándares Más detalles Definición de clases: Herencia, polimorfismo, ligadura dinámica
Tema 7 Definición de clases: Herencia, polimorfismo, ligadura dinámica Con alguna frecuencia es necesario definir clases de objetos entre las cuales hay elementos comunes. En una aplicación en la cual Más detalles Tema 1 Introducción a los Sistemas Basados en el Conocimiento
Tema 1 Introducción a los Sistemas Basados en el Conocimiento Sistemas Basados en el Conocimiento Grado en Ingeniería Informática 1 Referencias Ingeniería del Conocimiento. A. Gómez, N. Juristo, C. Montes, Más detalles UNIVERSIDAD DE SEVILLA PRÁCTICAS DE LABORATORIO ANÁLISIS SINTÁCTICO (1) LENGUAJES FORMALES Y AUTÓMATAS CURSO 2006/2007
UNIVERSIDAD DE SEVILLA E. T. S. INGENIERÍA INFORMÁTICA LENGUAJES Y SISTEMAS INFORMÁTICOS PRÁCTICAS DE LABORATORIO ANÁLISIS SINTÁCTICO (1) LENGUAJES FORMALES Y AUTÓMATAS CURSO 2006/2007 Qué es el análisis Más detalles fundamentos de programación (unidad 6) programación orientada a objetos
fundamentos de programación (unidad 6) programación orientada a objetos Para ver una copia completa de la licencia, acudir a la dirección http://creativecommons.org/licenses/by-nc-sa/2.5/es/legalcode.es Más detalles Tema 1. Introducción a los TAD
Tema 1. Introducción a los TAD Objetivos En este tema nos ocupamos inicialmente del concepto de abstracción, dedicando la mayor atención a la abstracción de datos, estudiando aspectos relacionados con Más detalles Tipos de conocimiento en resolución n de problemas. Humanos. Ingeniería a del Conocimiento (Primer Parcial) Conocimiento
Tema 1: Introducción n a los Sistemas Basados en el Conocimiento Modelo computacional Origen Conocimiento y Técnicas Heurísticas Definición de SBC Tipos de Conocimiento Experto Ventajas e Inconvenientes Más detalles Compiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz
Compiladores y Lenguajes de Programación Maria de Guadalupe Cota Ortiz Organizaciones que rigen las normas para estandarización de Lenguajes de Programación IEEE (Instituto de Ingenieros Eléctricos y Electrónicos) Más detalles Resumen de clase Ejercicio Firewall. Ideas de Diseño y Command Pattern
Resumen de clase Ejercicio Firewall Ideas de Diseño y Command Pattern 2 cuatrimestre 2008 Contenido RESUMEN DE CLASE EJERCICIO FIREWALL...3 ENUNCIADO...3 EXPLICACIÓN DEL DOMINIO...4 PRIMERAS IDEAS...4 Más detalles TEMA 2. Agenda. Fundamentos de JAVA
TEMA 2 Fundamentos de JAVA V1.3 Manuel Pereira González Agenda Introducción Historia de Java Características Principales Hello World Tipos Operadores Control de Flujo E/S básica Atributos y Métodos Resumen Más detalles Tema 1. Introducción a JAVA

References: resolución 
 Resolución 
 Resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 Resolución 
 resolución