UBA Facultad de Ciencias Económicas Lógica Algunos conceptos sobre Prolog

Save this PDF as:
 WORD  PNG  TXT  JPG

Tamaño: px
Comenzar la demostración a partir de la página:

Download "UBA Facultad de Ciencias Económicas Lógica Algunos conceptos sobre Prolog"

Transcripción

1 UBA Facultad de Ciencias Económicas Lógica Algunos conceptos sobre Prolog Autor: Carlos Lombardi Índice Algunos conceptos sobre Prolog... 1 Índice... 1 Capítulo 1 Lógica para sistemas... 3 Sistemas de información... 3 Razonamiento, información, inferencia... 4 Lógica de predicados de primer orden... 6 Y si la inferencia no se puede hacer?... 8 Objetos genéricos distintas visiones de una misma entidad... 8 En resumen... 9 Capítulo 2 El mundo de Prolog...10 El lenguaje Prolog...10 Átomos y nombres...10 Ausencia de código...11 Moléculas y variables...11 Limitaciones...13 Programa Prolog...15 Apuntar a los objetivos...16 La concesionaria en Prolog...16 Qué se describe en un programa...18 Consultas e intérprete Prolog...20 Necesidad de respetar las decisiones sobre predicados y constantes...21 Consultas existenciales...22 Las respuestas son siempre constantes...24 Distintas consultas con el mismo predicado inversibilidad...25 Variables cuantificadas existencialmente...26 Algunos existenciales menos visibles...28 Desigualdades...28 Capítulo 3 Algunos ejemplos...30 Gustos literarios...30 Empezar por las consultas...30 Representamos condiciones para gustar...31 Algunos errores comunes...32 El resto de los enunciados...33 Conclusiones...34 Punto b El programa entero...36 Animales en movimiento...37 Análisis de la consulta...37 Dos enunciados complicados...38 Página 1 de 49

2 Capítulo 4 Negación...40 Sintaxis...40 Comportamiento negación por falla...40 Consultas con variables...41 Uso en cláusulas...42 Alcance...43 Comentario final características no deductivas...44 Anexo 1 sintaxis de Prolog...45 Estructura del programa...45 Nombres...45 Conectivas...45 Cuantificación de las variables...46 Otros símbolos...46 Comentarios...47 Anexo 2 operación del SWI Prolog...48 Instalación...48 Funcionamiento...48 Página 2 de 49

3 Capítulo 1 Lógica para sistemas Sistemas de información Como profesionales de sistemas, vamos a participar en la concepción, definición, desarrollo y mantenimiento de sistemas de información. Pensemos un poco, entonces, en qué es un sistema de información visto (un poco) "desde adentro", o sea, desde la perspectiva de los que participan en su construcción. Un sistema de información trata información: la adquiere u obtiene de alguna forma, la manipula, y a partir de ella obtiene ciertos resultados, que son los resultados del sistema. Aquí la palabra "información" lleva el sentido de lo que se define como "Información pragmática" en el apunte sobre Diferentes sentidos del concepto de información; la información puede ser organizada y manipulada de formas muy distintas en distintos sistemas. En muchos sistemas, aunque no en todos, la información adquirida se registra en alguna forma explícita y bien definida, y los procesos de manipulación actúan sobre esta representación. Un ejemplo sencillo de sistema de información son las marcas que hace un preso de los días que lleva encerrado. El preso, cuando sabe que empezó otro día, registra esta información en la pared con una codificación bien conocida. El proceso de manipulación consiste en contar las marcas, y el resultado es saber cuántos días faltan para su liberación. Otro ejemplo, más clásico, es el sistema de liquidación de sueldos de una empresa. 1. El sistema obtiene la información a partir de la carga que hacen operadores sobre los eventos que le interesan al sistema: incorporaciones de empleados, vacaciones y licencias, recategorizaciones, etc.. A esto podría sumarse la obtención de información en forma automática (p.ej. las horas trabajadas por cada empleado pueden ser informadas por la máquina donde fichan), y por interacción con otros sistemas (p.ej. la ANSES publica un Web Service al que se pueden consultar las modificaciones en los descuentos de ley). 2. Toda la información adquirida es registrada, típicamente en una base de datos. 3. Los distintos procesos de manipulación consultan la información representada para obtener los resultados esperados, p.ej. la impresión de recibos y libros legales, reportes sobre sueldos a pagar, etc.. Un ejemplo bastante distinto consiste en considerar al cerebro humano como un sistema de información; adquiere información a través de sus sentidos y su medio cultural, la manipula por intermedio de la interacción neuronal, y obtiene los resultados que necesita para llevar adelante su vida. En este caso la representación de la información no es explícita, está imbricada dentro del mismo cerebro. Los tres ejemplos mencionados tienen características muy distintas entre sí. En general, hay muchos posibles "puntos de partida" a partir de los cuales se pueden construir sistemas. En los ejemplos tenemos: pared y piedra para marcar, computadora y base de datos, neuronas e impulsos eléctricos. En este apunte estaremos interesados en los sistemas cuya representación de la información es explícita y está dada en la forma de proposiciones o enunciados; es lo que en el apunte sobre Diferentes sentidos del concepto de información se define como información proposicional. Cualquier combinación entre una forma de representar información más mecanismos para manipular la información representada, puede servir como base para construir sistemas de este tipo. Página 3 de 49

4 Si quiero que el "agente manipulador" sea una computadora, tanto el formato en el que se representa la información como las formas de manipularla tienen que poder ser implementados en software. En particular, esto impone (en principio) una restricción de formalidad: debe haber reglas bien definidas que gobiernen la representación y la manipulación; respectivamente son las reglas de formación (gobiernan la representación) y reglas de transformación o inferencia (que gobiernan la manipulación). Queda claro que el cerebro, entendido físicamente, queda fuera de los sistemas que vamos a estudiar, porque no se maneja con lo que llamamos información proposicional. Razonamiento, información, inferencia Con el objetivo de construir sistemas de información en mente, revisemos conceptos que aparecieron en la cursada. Buena parte del contenido de la materia puede estructurarse a partir del concepto razonamiento. Recordamos que un razonamiento es un conjunto de enunciados, de los cuales a uno lo destacamos y lo llamamos conclusión; el resto son las premisas. Cada enunciado es exactamente una unidad de información, aquello que enuncia un enunciado es información 1. Veamos algunos ejemplos de enunciados: 1. Sócrates es mortal. 2. Todos los hombres son mortales. 3. Ana y Luisa son amigas. 4. Todos los amigos de Ana conocen a Tomás. 5. Lucas obtuvo un 5 en el 1er parcial, y un 7 en el 2do. 6. Para aprobar, hay que obtener al menos 4 en cada parcial. 7. Petrobrás es una empresa petrolera que cotiza en la Bolsa de Buenos Aires. 8. El patrimonio neto de Petrobrás es de 2150 millones de euros. 9. Las empresas cuyo patrimonio neto excede los 1000 millones de euros se consideran grandes. 10. Las acciones de las empresas petroleras grandes tienen tendencia al alza. 11. Cualquier auto que tenga ABS y aire acondicionado le puede interesar a Mirna. 12. El auto del Sr. Gómez tiene ABS, levantavidrios eléctrico y estéreo con MP El auto del Sr. Galíndez tiene aire acondicionado, cierre centralizado y ABS. La información incluida en cada uno de estos enunciados puede ser de interés para distintos sistemas. Tal vez eso no es tan evidente intuitivamente para los enunciados 1 a 4, no es información que manejen los sistemas que habitualmente asociamos a la idea de "sistema de información". Para el resto de los enunciados sí podemos imaginar sistemas en donde son pertinentes: enunciados 5 y 6 son ejemplos típicos de información que maneja un sistema de administración de una unidad educativa. enunciados 7 al 10: pueden aparecer en un sistema de administración de carteras bursátiles. enunciados 11 al 13: pueden aparecer en el sistema que manejan los vendedores de una concesionaria de autos. 1 en el apunte sobre Diferentes sentidos del concepto de información se indica explícitamente que "Las unidades de información que se toman en consideración son proposiciones o enunciados de algún lenguaje (ya sea una lengua histórica o un lenguaje formal)" Página 4 de 49

5 Es posible que la representación de estos enunciados en un sistema difiera de cómo los estamos expresando, p.ej. en el enunciado 11 Mirna podrá estar representada por su número de cliente, y en el 12 el auto del Sr. Gómez por su patente. Eso no quita que la información representada es la que estamos describiendo, independientemente de las decisiones sobre cómo elegimos representarla. Pasemos ahora al concepto de inferencia. Este concepto se refiere, en general, a los distintos aspectos de la relación entre las premisas y la conclusión de un razonamiento. Ahora bien, si queremos usar este concepto como base para construir sistemas de información, nos interesará la forma que tome el "agente manipulador" que produce los resultados (que serán las conclusiones) a partir de la información con que contamos (que serán las premisas). Por lo tanto en este apunte, nos interesarán los procesos de inferencia, entendiendo como proceso de inferencia cualquier proceso por el cual se obtiene una conclusión a partir de un conjunto de premisas. P.ej. a partir de los enunciados 11 a 13 podemos concluir que a Mirna le puede interesar el auto del Sr. Galíndez, pero no el del Sr. Gómez; el proceso que lleva a obtener esa conclusión, y por lo tanto a armar un razonamiento (uniendo la conclusión obtenida a las premisas de la que se partió) es lo que entenderemos como proceso de inferencia en el contexto de este apunte. Otra vez, nos referimos al apunte sobre Diferentes sentidos del concepto de información, que termina así: La inferencia lógica, en general, puede ver como una manera de procesar información proposicional. El input está constituido por lo que se llaman premisas (de un razonamiento) y el output es su conclusión. Nótese que este sentido de información puede verse como un caso especial de que se adopta en el ámbito de sistemas de información. Retomemos ahora el objetivo de construir sistemas de información, tomando como ejemplo a la concesionaria de autos que quiere un sistema que ayude a los vendedores a encontrar autos adecuados para sus clientes a partir de las preferencias de cada cliente. El resultado que esperamos del sistema es que nos diga qué autos conviene ofrecerle a un determinado cliente. La información que debemos manejar, tomando un contexto muy simplificado, es la referente a gustos de cada cliente y características de cada auto 2. Entonces, usando los conceptos de razonamiento y proceso de inferencia, podemos concebir este sistema de información. La información es la que expresan los enunciados, que van a ser de la forma de los enunciados 11 a 13; vamos a usar esta información como premisas. La forma de manejar la información será generar inferencias sobre los enunciados, para obtener conclusiones. P.ej. a partir de los enunciados de ejemplo, puedo obtener estas conclusiones a. conviene recomendarle a Mirna el auto del Sr. Galíndez. b. no conviene recomendarle a Mirna el auto del Sr. Gómez. Estos enunciados de la forma "conviene recomendarle al cliente X el auto Y" o "no conviene recomendarle al cliente X el auto Y" serán los resultados del sistema. Son resultados útiles, que le sirven a los vendedores en el trato con sus clientes. 2 En un análisis más detallado, podríamos incluir el precio que cada cliente está dispuesto a pagar, las condiciones de pago que se pueden armar, los gustos de las personas por franja etaria u otras características generales, etc.. Página 5 de 49

6 Hasta aquí, podemos imaginar un "sistema manual" armado así: para cada auto se arma una ficha con sus características cuando llega un cliente, el vendedor que lo atiende le pregunta qué auto quiere; para saber qué autos se le pueden recomendar, el vendedor se comunica con una oficina de recomendaciones donde están las fichas, le cuenta qué está buscando el cliente, y el empleado de la oficina de recomendaciones le dice qué autos conviene ofrecerle. Observamos que la oficina de recomendaciones no necesita conocer a los clientes ni a los autos directamente, puede obtener sus resultados usando sólo la información que tiene representada,.las fichas para los autos, lo que le cuenta el vendedor para los clientes. Notamos también que la información que incluimos es la que resulta pertinente para el sistema, p.ej. de cada auto no registramos el peso del eje delantero, y de los clientes no nos importa el color de pelo. La información que elegimos incluir en un sistema es la que necesitamos para obtener los resultados buscados; el recorte de la información a incluir en un sistema es un factor crítico para su construcción. Aunque no estamos usando computadoras, tenemos todos los elementos de un sistema de información del estilo deseado: información representada explícitamente (fichas más indicaciones de los vendedores), manejo de la información representada (las inferencias que hace la oficina de recomendaciones), resultados concretos (qué autos pueden o no recomendarse). Resumiendo, si tomamos representación de la información: mediante enunciados. manipulación: proceso de inferencia que nos permite armar razonamientos. resultados del sistema: conclusiones de los razonamientos construidos. entonces a partir de estos conceptos podemos armar sistemas de información. Para que este sistema pueda ser implementado en una computadora no nos sirven el castellano en el que se escriben las fichas, ni la inferencia intuitiva del empleado de la oficina de recomendaciones. Necesitamos 1. un formalismo de representación de información 2. una descripción formal de cómo realizar inferencias. Este es el rol de la Lógica de predicados de primer orden La lógica de predicados de primer orden nos provee con los dos elementos que necesitamos a. un lenguaje formal, con reglas bien definidas, en el que puede describir la información; o sea, las premisas y las posibles conclusiones de los razonamientos. b. sistemas de inferencia deductiva (p.ej. el sistema de deducción natural) que define reglas que nos permiten saber, en algunos casos, si un razonamiento es correcto o no, o sea, si es correcto obtener una determinada conclusión a partir de un conjunto de premisas. Entonces, usando la lógica de predicados de primer orden, podemos construir sistemas de información basados en los conceptos de razonamiento e inferencia. Hagámoslo para la agencia de autos; transcribamos los tres enunciados que tomaremos como premisas. 1. El auto del Sr. Gómez tiene ABS, levantavidrios eléctrico y estéreo con MP3. 2. El auto del Sr. Galíndez tiene aire acondicionado, cierre centralizado y ABS. 3. Cualquier auto que tenga ABS y aire acondicionado le puede interesar a Mirna. Necesitamos hacer varias cosas. Página 6 de 49

7 Primero, elegir un código para los predicados y constantes de individuo que aparecen. Elijamos este: a Mirna b auto del Sr. Gómez c auto del Sr. Galíndez d ABS e levantavidrios eléctrico f estéreo con MP3 g cierre centralizado h aire acondicionado Pxy a x le puede interesar el auto y Qxy el auto x tiene el accesorio y Ahora podemos escribir las premisas El auto del Sr. Gómez tiene ABS, levantavidrios eléctrico y estéreo con MP3. 1 (Qbd Qbe) Qbf El auto del Sr. Galíndez tiene aire acondicionado, cierre centralizado y ABS. 2 (Qch Qcg) Qcd Cualquier auto que tenga ABS y aire acondicionado le puede interesar a Mirna 3. 3 x ((Qxd Qxh) Pax) Si queremos saber si a Mirna le puede interesar el auto del Sr. Galíndez, analizaremos la corrección del razonamiento que tenga las tres fórmulas anteriores como premisas, y esta conclusión Pac Este razonamiento es correcto, veámoslo usando deducción natural 4 Qcd 2, E 5 Qch Qcg 2, E 6 Qch 5, E 7 Qcd Qch 4, 6, I 8 (Qcd Qch) Pac 3, E 9 Pac 8, 7, MP Entonces, si al sistema le pregunto si a Mirna le puede interesar el auto del Sr. Galíndez, va a responder que sí. Ya tenemos una forma de interacción, o de uso, de un sistema de información basado en lógica. Observamos que la interacción con este sistema consiste en hacerle preguntas, a las que responde por "sí" o por "no" 4. Ya sabemos cuándo responde que sí: cuando el razonamiento cuyas premisas son la información representada y la conclusión es la pregunta es correcto; visto de otra forma, cuando el sistema puede inferir la pregunta a partir de la información que tiene. En el ejemplo: el sistema "sabe" (o sea, maneja conocimiento) sobre los gustos de Mirna y las características de los autos. Le pregunto si a Mirna le puede interesar el auto del Sr. Galíndez; como puede inferirlo, responde que "sí". 3 Este enunciado podría haber sido descripto de otra forma por la persona que nos indica cómo funciona la concesionaria; p.ej. "Mirna lo que busca en un auto es ABS y aire"; a partir de la forma en que los expertos del dominio nos dscriben la información, debemos elegir cómo representarla. Cuando formalizamos información para un sistema, debemos elegir representaciones que sean adecuadas a los objetivos del sistema; en este caso, obtener las conclusiones que buscamos. Este fenómeno se repite, no sólo en el ámbito de la programación basada en lógica (que es el tema de este apunte), sino en los sistemas de información basados en computadoras en general. Encontrar representaciones adecuadas es un aspecto crítico en el éxito de un sistema. 4 En rigor, nos gustaría algo más poderoso: poder preguntarle al sistema p.ej. qué autos le pueden interesar a Mirna, en lugar de preguntar uno por uno. Usando Prolog sí podemos hacer eso, como lo veremos más adelante. Página 7 de 49

8 Y si la inferencia no se puede hacer? Pasemos al auto del Sr. Gómez; la conclusión para este caso es Pab A partir de las premisas, no puedo demostrar esta conclusión, ni tampoco la contraria Pab Qué debería decir el sistema en este caso? El criterio generalmente asumido en los sistemas de información basados en estas ideas es que: si el sistema no puede inferir lo que se pregunta a partir de la información que maneja, entonces responde "no". Por lo tanto, la respuesta del sistema para el auto del Sr. Gómez será "no", lo que se corresponde con lo esperable intuitivamente. Más adelante volveremos a este tema. Objetos genéricos distintas visiones de una misma entidad Al plantear el código que usamos para el sistema de la concesionaria, hay algo respecto de la elección de las constantes que puede resultar extraño. Se supone que las constantes de individuo se corresponden con, exactamente, individuos. Las constantes que representan a Mirna y a cada auto son claras en este sentido, tengo una constante y un objeto concreto que es representado por la constante. Tomemos ahora la constante d qué es "ABS"? Claramente no se refiere al ABS de un auto en particular, p.ej. al del Sr. Gómez. Observemos que en los átomos que enuncian "el auto del Sr. Gómez tiene ABS" y "el auto del Sr. Galíndez tiene ABS" estamos representando el "ABS" con la misma constante, que es d. Podríamos haber elegido representar "ser ABS" con un predicado R, entonces el enunciado "el auto del Sr. Gómez tiene ABS" se representaría así x (Qbx Rx) (1) o sea "existe un accesorio tal que el auto del Sr. Gómez lo tiene y que es ABS". Si hubiéramos representado todos los accesorios de esta forma, entonces el enunciado sobre los gustos de Mirna quedaría así (S : ser aire acondicionado): x (( y z (Qxy Qxz Ry Sz)) Pax) Para modelar el mismo problema, tengo que recurrir a una representación más compleja. Además, como veremos, en el lenguaje Prolog no podemos escribir una fórmula como (1). Desde otro punto de vista, analicemos qué entidades manejan las personas que trabajan en la sección de ventas de la concesionaria, p.ej. los vendedores. Si un vendedor sabe que un auto tiene ABS, lo más probable es que no esté pensando en el objeto físico ABS del auto. Si dos autos tienen ABS, en la visión del vendedor a los dos autos "les pasa lo mismo" que es tener ABS, y esta información es relevante para el objetivo del sistema. Los objetos físicos que son el sistema de ABS de cada auto no son de interés para este sistema. Si por otro lado le preguntamos a un vendedor " qué accesorios tiene el auto del Sr. Gómez?" la respuesta será "ABS, levantavidrios y estéreo con MP3" (veremos más adelante que sí podemos hacer una consulta de esta forma en Prolog) Entonces, para el vendedor existe algo que se llama ABS, pero que no es un objeto físico, es algo que llamaremos "objeto genérico". Página 8 de 49

9 Podemos hacer una analogía con los componentes de un plato, p.ej. tanto la salsa bolognesa como una empanada llevan carne picada. Está claro que no estamos hablando de una porción determinada de carne picada, sino de un objeto genérico, el mismo que me permite preguntarle a alguien " tenés carne picada?". Respecto de los objetivos del sistema, los equipos individuales de ABS no son relevantes; en el dominio que manejan las personas que obtienen los resultados que se le pedirán al sistema no aparecen estas entidades. Si tomamos "ABS" como un objeto genérico, este sí es relevante para el sistema; por lo tanto, es el que amerita estar representado con una constante de individuo. En conclusión: la constante d está representando al objeto genérico ABS, al accesorio ABS, que sí es, conceptualmente, el mismo para todos los autos que tienen ABS. Al elegir qué entidades denotaré con constantes en un sistema, debo analizar, a partir de los resultados que deben obtenerse, en qué casos es pertinente referirnos a objetos individuales (como Mirna o el auto del Sr. Gómez en el ejemplo) y en qué casos es conveniente referirnos a objetos genéricos (como ABS o levantavidrios). Está claro que si construyéramos un sistema para el taller de la concesionaria, sería más probable que los objetos físicos ABS sí tuvieran relevancia, y por lo tanto ameritaran ser representados individualmente. Qué se representa y cómo va en función de los resultados esperados del sistema y de qué visión están atrapando; la visión de un auto que tiene un vendedor es distinta a la que tiene un mecánico. En resumen Veamos cómo quedó configurado nuestro sistema de información: información representada: enunciados expresados en fórmulas del lenguaje de predicados. manejo de la información: ante una consulta, expresada también como una fórmula, tomar la información representada como premisas, la consulta como conclusión, y usar un sistema de deducción para elucidar si puede demostrarse la corrección del razonamiento construido. resultados: ante cada consulta, se responde "sí" si de pudo demostrar que el razonamiento construido es correcto, y "no" en caso contrario. Tomando el ejemplo clásico de la mortalidad de Sócrates, un sistema de información basado en lógica: tendrá como información representada "Sócrates es hombre" y "todos los hombres son mortales", y ante la consulta "Sócrates es mortal" responderá que sí. Estas ideas (representación en un lenguaje formal, usar procesos de inferencia como manipulación, interacción mediante consultas) son la base de sistemas de información que realmente se usan, p.ej. los llamados "sistemas expertos". En el curso vamos a ver un ejemplo muy sencillo, que es la construcción de pequeños sistemas (p.ej. alguno análogo al de Sócrates) usando un lenguaje de programación llamado Prolog. El Prolog es una herramienta que permite construir sistemas que responden a las ideas que presentamos en este capítulo, porque acepta información representada en un lenguaje que es una variación restringida del lenguaje de predicados. acepta consultas representadas por fórmulas en el mismo lenguaje. intenta demostrar la corrección del razonamiento, y responde por "sí" o por "no" ante cada consulta según el criterio recién indicado. Página 9 de 49

10 Capítulo 2 El mundo de Prolog Aunque no conocemos los detalles acerca de cómo es Prolog, ya sabemos varias cosas de él. En primer lugar su objetivo: ser una herramienta que nos permita construir sistemas de información basados en los conceptos de razonamiento e inferencia. También algunas características: La información se describe en un lenguaje que tiene relación con el de la lógica de predicados de primer orden. La forma de obtener resultados es mediante consultas; una consulta es una fórmula expresada en el mismo lenguaje en el que se describe la información. Usa algún sistema de deducción para saber si el razonamiento cuyas premisas son las información descripta, y la conclusión es la consulta, es correcto. Veamos ahora al Prolog un poco más en detalle. El lenguaje Prolog Átomos y nombres Comencemos con el lenguaje. Dijimos que es una variación restringida del lenguaje del cálculo de predicados. Vamos a ver la sintaxis de Prolog a partir de ejemplos; una descripción más ordenada aparece en el anexo 1. Por qué variación? Porque la sintaxis es distinta. Hay muchas diferencias: Los símbolos de predicado, variable y constante de individuo, en realidad no son símbolos sino que son secuencias de símbolos, o sea, pueden tener varias letras. P.ej. si quiero representar el predicado monádico "ser un gato", puedo asignarle a ese predicado la secuencia de letras gato, en lugar de tener que designar una letra predicativa. Lo mismo pasa con constantes de individuo y con variables. A la secuencia de símbolos que denota un predicado la llamaremos el nombre del predicado, y análogamente para constantes de individuo y variables. La palabra "nombre" se usa extensamente en sistemas para referirnos a la palabra que denota una unidad de un lenguaje de programación: nombres de función, de procedimiento, de módulo, etc.. Para distinguir qué nombra cada nombre, en Prolog: los nombres de predicado empiezan con minúscula. los nombres de variable empiezan con mayúscula. los nombres de constante de individuo empiezan con minúscula. Un átomo tiene esta forma predicado(argumento-1,..., argumento-n) en lugar de la forma que tiene en lógica Pa 1...a n La traducción de una fórmula a Prolog se llama cláusula. Todas las cláusulas tienen que terminar con punto (si no "no anda"). Con estas reglas ya podemos escribir cláusulas (equivalente a fórmulas) atómicas en Prolog. Página 10 de 49

11 P.ej. tenemos que decir que Fritz es un gato. En lógica podemos expresarlo así: Pa (con el código: Px : x es un gato, a : Fritz). En Prolog podemos escribirlo de esta forma: gato(fritz). (observar el punto al final de la cláusula). Otro ejemplo: si queremos expresar que Ana y Marcos son amigos mediante un predicado diádico, en Prolog puede quedarnos, p.ej., así: amigos(ana,marcos). en lugar de Qbc (el código para este caso es Qxy : x e y son amigos, b : Ana, c : Marcos). La coma adentro de los paréntesis separa entre argumentos para predicados poliádicos. Los nombres fritz, ana y marcos están en minúsculas, porque denotan constantes de individuo. Ausencia de código La característica de que los nombres puedan tener muchas letras es muy útil, porque elimina la necesidad de tener un código separado de las cláusulas. En la cláusula gato(fritz). no hace falta código, se entiende que el predicado monádico gato(x) representa "X es un gato" y que la constante fritz representa al gato llamado Fritz. Para que no haga falta código, tenemos que elegir los nombres de predicados y constantes de forma tal de que se lean, que leyendo las cláusulas pueda entender qué información están representando sin necesidad de un código separado. En general, elegir buenos nombres es muy importante en la construcción de sistemas de información, vamos a practicar esta habilidad en el curso. Moléculas y variables Hablemos ahora de los temas que nos quedan: fórmulas moleculares y variables. Representemos en Prolog el enunciado "todos los gatos son mamíferos", para introducir el condicional y el cuantificador universal. En Prolog este enunciado se escribe así mamifero(x):- gato(x). en lógica de predicados de primer orden sería (Px : x es gato, Rx : x es mamifero) x Px Rx El símbolo :- es un condicional "al revés", o sea, el consecuente se pone a la izquierda, el antecedente se pone a la derecha. En el enunciado clásico "todos los hombres son mortales" el antecedente es ser hombre, el consecuente es ser mortal. En Prolog queda así: mortal(x):- hombre(x). Las cláusulas moleculares pueden leerse de izquierda a derecha usando la palabra si para el símbolo :- ; así, la primer cláusula puede leerse de la siguiente forma "para todo X, X es mamífero si X es gato" o más resumido "mamífero si gato" OJO que esto es distinto a decir "si es mamífero, es gato" dicho así, está implícito el "entonces", es equivalente a "si es mamífero entonces es gato" que no es lo que dice la cláusula. Página 11 de 49

12 Antes de seguir, tres apuntes sobre la cláusula mamifero(x):- gato(x). 1. Cómo "sabe" Prolog que el argumento es una variable? Porque empieza con mayúscula. P.ej. en esta cláusula mamifero(x):- gato(x). el argumento es la constante de individuo x, no una variable. Recordemos que en Prolog no hay nombres que sean sólo para constante y nombres que sean sólo para variable; el criterio para diferenciar constantes de variables es si empiezan en minúscula o en mayúscula. 2. dónde dice "para todo", cómo sabe que la variable está cuantificada universalmente? Todas las variables en Prolog están cuantificadas; el cuantificador está implícito, no se escribe. Para todas las variables se asume un cuantificador universal, salvo dos casos que veremos más adelante. 3. sobre el nombre de predicado gato Un detalle adicional sobre la cláusula sobre gatos y mamíferos: para decir "X es gato" elegimos gato como nombre de predicado. Además de ser conveniente por la comprensión, es necesario si a partir de esta cláusula más la que ya teníamos gato(fritz). queremos que Prolog pueda inferir que Fritz es mamífero, y por lo tanto responda "sí" a la consulta correspondiente. En general al representar información en Prolog debemos ser coherentes con los nombres que elegimos; si para representar al mismo concepto (predicado o constante) no usamos siempre el mismo nombre, no obtendremos los resultados esperados. Volveremos sobre este tema más adelante. Sigamos con el análisis de las cláusulas moleculares en Prolog. Toda cláusula molecular bien formada tiene que tener exactamente una aparición del símbolo :-, o sea que si en una cláusula no tiene :- entonces tiene que ser atómica en ninguna cláusula puede aparecer el :- más de una vez. Además del :- las únicas conectiva que incluye Prolog son conjunción y negación El tratamiento de la negación en Prolog tiene características bastante particulares, que describiremos en un capítulo dedicado. Veamos ahora la conjunción. La conjunción que se escribe con una coma. Ahora bien, la conjunción solamente puede ir en a la derecha del :- o sea en el antecedente. P.ej. una posible cláusula para representar "los gatos cazan ratones" es caza(x,y):- gato(x), raton(y). en donde las dos variables están cuantificadas universalmente; en lógica sería x y ((Px Qy) Rxy) (Px : x es gato; Qx : x es ratón; Rxy : x caza a y) Resumiendo: toda fórmula molecular va a tener esta forma consecuente :- antecedente. donde en el consecuente va a aparecer un único átomo, y en el antecedente pueden aparecer varios separados por coma que significa conjunción. En Prolog se bautizaron las partes de una cláusula molecular al consecuente se lo llama cabeza al símbolo :- se lo llama cuello al antecedente se lo llama cuerpo Página 12 de 49

13 O sea que las cláusulas moleculares tienen una cabeza y un cuerpo, separados por el cuello. La cabeza tiene un solo átomo, el cuerpo puede tener varios. P.ej. en la cláusula caza(x,y):- gato(x), raton(y). la cabeza es caza(x,y) y el cuerpo es gato(x), raton(y). Las únicas conectivas que hay son el cuello, la coma, y la negación que la vamos a ver más adelante. Las que siguen son cláusulas mal formadas: mamifero(x) :- felino(x) :- gato(x). porque ninguna cláusula puede tener más de un :-. gato(fritz), raton(jerry). porque toda cláusula molecular debe tener un :-. mamifero(x), come(x,y) :- gato(x), raton(y). porque la coma sólo puede ir en el cuerpo; la coma que está mal es la de la cabeza. caza(x,y):- gato(x), raton(y) porque le falta el punto del final ( no olvidarlo!!). Limitaciones Con esto vimos casi toda la sintaxis de Prolog que vamos a usar, y ya vimos por qué lo de variación. También queda claro por qué restringida; hay restricciones en dos aspectos. 1. conectivas, sólo tenemos un equivalente del condicional y la conjunción, y además con limitaciones de uso 2. cuantificadores, está restringido qué cuantificador se corresponde con cada variable y no puedo cambiarlo. Hay muchas fórmulas que pueden escribirse en lógica de predicados de primer orden, y que no pueden traducirse a una cláusula Prolog. En algunos casos, podremos esquivar la limitación traduciendo una fórmula en varias cláusulas; en otros casos esto no es posible. Veamos algunos casos de fórmulas no traducibles directamente 5 : 1. Pa Ta 2. Pa Qa 3. x ((Px Qx) Rx) 4. x (Px (Sx Rx)) 5. x (Px (Sx Rx)) 6. x Px Un posible código común a estas fórmulas es este: a Fritz Px x es mamífero Qx x es reptil Rx x tiene piel Sx x tiene dientes Tx x es adulto Analicemos para cada una si podemos traducirla en Prolog usando muchas cláusulas 5 recordemos que dejamos el tratamiento de la negación para un capítulo posterior Página 13 de 49

14 1 - Pa Ta Este caso es sencillo: separamos en dos cláusulas mamifero(fritz). adulto(fritz). Si analizamos las reglas de introducción y eliminación de la conjunción en el sistema de deducción natural, obtenemos inmediatamente que en un conjunto de premisas es equivalente tener la premisa Pa Ta (las dos juntas) a tener las dos premisas Pa Ta (las dos separadas). Esto se generaliza para conjunciones múltiples, o sea fórmulas de la forma (((f 1 f 2 ) f 3 ) f 4 )... que pueden expresarse en Prolog usando tantas cláusulas como elementos de la conjunción. 2 - Pa Qa En este caso, no hay traducción a Prolog. Podemos armar una cláusula similar a partir de la fórmula lógicamente equivalente Pa Qa pero por las características de la negación de Prolog (que veremos más adelante) el uso de una fórmula de este estilo para obtener resultados es muy limitada; y en general diremos que no podemos expresar en Prolog fórmulas cuya conectiva principal es una disyunción. 3 - x ((Px Qx) Rx) Si fuera conjunción en lugar de disyunción en el antecedente se podría traducir inmediatamente. Cuando tengo disyunción en el antecedente, a partir de esta ley lógica ((a b) c) ((a c) (b c)) puedo obtener que la fórmula es equivalente a la que sigue x ((Px Rx) (Qx Rx)) y distribuyendo el cuantificador (que puede hacerse sin problemas en este caso) nos queda x (Px Rx) x (Qx Rx) Usando lo que ya vimos para el caso 1 (partir en cláusulas las fórmulas cuya conectiva principal es una conjunción), esto se puede traducir a Prolog en dos cláusulas; en el ejemplo son tienepiel(x):- mamifero(x). tienepiel(x):- reptil(x). (recordemos el código P : mamífero, Q reptil, R tiene piel) Observemos que el antecedente va a la derecha, mientras que el consecuente va a la izquierda. 4 - x (Px (Sx Rx)) Este tipo de fórmulas no se puede traducir a cláusulas Prolog; la disyunción del consecuente no se puede separar, y recordemos que en la cabeza de una cláusula puede ir un solo átomo. 5 - x (Px (Sx Rx)) Esta fórmula no se puede traducir directamente, porque habría que poner varios átomos en la cabeza de la cláusula correspondiente; en el ejemplo sería tienedientes(x), tienepiel(x):- mamifero(x). (recordemos P : mamífero; S : tiene dientes ; R : tiene piel) que es una cláusula mal formada. Página 14 de 49

15 Al igual que en el caso 3, hay una ley lógica que nos ayuda a descomponer la fórmula; en este caso es (a (b c)) ((a b) (a c)) Usando esta ley, puedo transformar la fórmula en cuestión en x ((Px Sx) (Px Rx)) y distribuyendo el cuantificador (que puede hacerse sin problemas en este caso) nos queda x (Px Sx) x (Px Rx) en el ejemplo, en Prolog queda tienedientes(x):- mamifero(x). tienepiel(x):- mamifero(x). 6 - x Px Esta fórmula no tiene traducción a Prolog 6 ; en general va a pasar eso con las fórmulas en los que el cuantificador principal sea un existencial. Por lo tanto, no podemos escribir en Prolog fórmulas que enuncien la existencia de un ente con ciertas características sin denotarlo; p.ej. no podemos escribir "el auto del Sr. Gómez tiene un equipo de ABS" sin nombrarlo. Esta es una de las motivaciones para la aparición de constantes que denotan "objetos genéricos", tal cual lo indicado en el capítulo 1. En lugar de expresar "el auto del Sr. Gómez tiene un equipo de ABS" se establece el "objeto genérico" equipo de ABS, y se relaciona a cada auto con las constantes que representan sus accesorios. Programa Prolog Ahora que aprendimos la sintaxis, veamos cómo usar el lenguaje Prolog para construir sistemas de información de la forma planteada en el primer capítulo. En el lenguaje Prolog vamos a escribir, tanto la información disponible, que son las premisas, como las consultas que querramos hacer, que son las posibles conclusiones. Al conjunto de premisas que forman la información relevante para un sistema lo vamos a llamar programa Prolog; dicho de otra forma un programa Prolog es un conjunto de cláusulas que describe la información relevante para un sistema de información. o sea, para cada sistema que construyamos en este curso habrá un programa Prolog que describe la información que necesita analizarse para producir los resultados esperados. En los sistemas de información construidos usando Prolog, el programa es la información representada. Cada pregunta que se le haga al Prolog se hará a partir de un programa, y ante cada pregunta, el Prolog responderá "sí" si puede inferir la pregunta a partir del programa, y "no" en caso contrario. A partir del mismo programa hay varias preguntas que querremos que responda, o sea, conclusiones que se puede querer testear si pueden o no inferirse del programa. 6 de acuerdo a lo que vemos en este curso; hay una herramienta que provee Prolog llamada variable anónima con la que se pueden expresar existenciales en algunos casos. El estudio de la variable anónima excede los contenidos de este curso. Página 15 de 49

16 Retomando el sistema de recomendaciones para la concesionaria de autos, vemos que hay dos consultas posibles: le puede interesar a Mirna el auto del Sr. Gómez? le puede interesar a Mirna el auto del Sr. Galíndez? Para nosotros, construir un sistema consistirá en escribir el programa que describe la información relevante, y probar si se pueden obtener los resultados esperados. Apuntar a los objetivos Cuando se plantea la construcción de un sistema de información (en general, no sólo para los que estudiamos en este curso) se tienen ciertos objetivos, y el sistema construido debe satisfacer esos objetivos. Si un sistema no responde a lo que se espera de él, no es útil, sin importar las características positivas que pueda tener (facilidad de uso, robustez, costo, etc.). Para los sistemas de información basados en lógica, los objetivos son los tipos de pregunta que quiero poder hacer a partir del programa, y qué respuesta espero en distintos casos, que pueden establecerse como casos de prueba. Veámoslo con un ejemplo: en el sistema de recomendaciones de la concesionaria, el objetivo es poder preguntar qué autos pueden recomendarse a qué clientes, y los casos de prueba podrían ser las preguntas respecto de Mirna. Los objetivos de cada sistema influyen en qué información voy a incluir en el programa, y posiblemente también en la forma que tenga de representarla; en particular, qué predicados elijo, qué aridad tiene cada predicado, cuáles van a ser las constantes que voy a usar. Puede haber varias formas en principio correctas de describir cierta información usando el lenguaje Prolog; si una permite hacer a partir del programa construido las consultas que se plantean como objetivo mientras que otra no, entonces el primer programa es adecuado para el sistema que estoy construyendo, mientras que el segundo no. Resumiendo: para que un programa Prolog sea adecuado, no alcanza con que describa la información en forma correcta, también debe servir para hacer las inferencias que se esperan del sistema para el cual se construye. La concesionaria en Prolog Llegó el momento de armar nuestro primer programa Prolog; vamos a describir la información relevante para el sistema de recomendaciones, y testearlo. Mientras se va armando el programa voy a describir algunas cuestiones que conviene tener en cuenta. El objetivo del sistema es poder preguntar, dados una persona y un auto, si a la persona se le puede recomendar o no el auto. Recapitulemos la información introducida antes, y su representación en lógica. El auto del Sr. Gómez tiene ABS, levantavidrios eléctrico y estéreo con MP3. (Qbd Qbe) Qbf El auto del Sr. Galíndez tiene aire acondicionado, cierre centralizado y ABS. (Qch Qcg) Qcd Página 16 de 49

17 Mirna está buscando un auto que tenga ABS y aire acondicionado. x ((Qxd Qxh) Pax) Agreguemos un poco más de información, sin traducirla a lógica: Tanto Juana como Lola está buscando un auto con MP3 y aire acondicionado. Pedro está buscando un auto con ABS. Todos los jóvenes buscan autos con MP3 y levantavidrios eléctrico. Lucas y Francisco son jóvenes. Empecemos por el primer enunciado; vimos que debemos "partirlo" en tres cláusulas, nos queda accesorio(autogomez, abs). accesorio(autogomez, levantavidrios). accesorio(autogomez, mp3). (antes de seguir, ver la relación entre estas tres cláusulas y la fórmula expresada en lógica de predicados de primer orden) Tuvimos que elegir un nombre para el auto del Sr. Gómez, que es la constante autogomez 7. Describamos análogamente al auto del Sr. Galíndez accesorio(autogalindez, aire). accesorio(autogalindez, cierre). accesorio(autogalindez, abs). Para describir a los accesorios de ambos autos usamos el mismo predicado, accesorio. Al describir los accesorios del auto del Sr. Gómez, elegí describir los accesorios de un auto mediante el predicado accesorio, que tiene aridad 2; el primer argumento es el auto, el segundo es el accesorio. Una vez hecha esta elección, debo ser coherente con ella; si usara otro nombre de predicado para los accesorios del segundo auto, no podría armar un programa que responda correctamente. Análogamente, elegí el nombre abs para describir al accesorio ABS; esta elección también debe ser coherente. Esta coherencia ya se ve en la representación en lógica: en las dos fórmulas se usó el mismo símbolo de predicado (Q) para la relación entre cada auto y sus accesorios; y la misma constante (d) para representar al ABS. Vamos ahora a la fórmula que describe los gustos de Mirna puedeinteresar(mirna,x):- accesorio(x,abs), accesorio(x,aire). observamos que el consecuente es la cabeza, y el antecedente es el cuerpo. En este caso la traducción pudo ser directa, porque el Prolog soporta conjunción en el antecedente. Describamos los gustos de Juana y Lola. Pasado a "castellano regimentado", el enunciado quedaría así: si X tiene aire acondicionado y MP3, entonces X le puede interesar a Juana y a Lola tenemos una conjunción en el consecuente; se corresponde con el caso 5 del estudio de las limitaciones del lenguaje Prolog; la fórmula esta estructura x ((Axa Axm) (Ijx Ilx)) (A : tiene accesorio ; I : puede interesar ; a : aire acondicionado ; m : MP3 ; j : Juana ; l : Lola). En Prolog nos queda: puedeinteresar(juana,x):- accesorio(x,aire), accesorio(x,mp3). puedeinteresar(lola,x):- accesorio(x,aire), accesorio(x,mp3). (antes de seguir, entender la relación entre estas dos cláusulas y el enunciado expresado en "castellano regimentado", traducir a lógica de predicados de primer orden si es necesario. Si no se entiende esta relación, va a ser complicado entender lo que sigue en el apunte). Sigue la afirmación sobre el gusto de Pedro, que se traduce fácilmente: puedeinteresar(pedro,x):- accesorio(x,abs). 7 repaso: autogomez es una constante aunque tiene una mayúscula en el medio, para decidir se toma la primer letra que es minúscula Página 17 de 49

18 Pasemos ahora al enunciado sobre los gustos de los jóvenes. Pasado a "castellano regimentado" queda si la persona X es joven y el auto Y tiene MP3 y levantavidrios, entonces a X le puede interesar Y. el objetivo del programa es poder hacer preguntas sobre personas individuales, p.ej. Lucas o Mirna; no sobre "los jóvenes" indistintamente. Entonces, ser joven en este programa es una característica de las personas. Si tengo un enunciado de la forma "a los jóvenes " lo deberé traducir como "si X es joven entonces "; y en el cuerpo de la cláusula aparecerá el átomo joven(x). La cláusula en Prolog queda puedeinteresar(x,y):- joven(x), accesorio(y,mp3), accesorio(y,levantavidrios). Finalmente, describamos las características de Lucas y Francisco. joven(lucas). joven(francisco). excelente, terminamos con el programa. Ahora, responde al objetivo para el cual se construyó? Veamos parece que sí, porque a partir del programa y haciendo preguntas con el predicado puedeinteresar, Prolog podrá indicarnos si a una persona (puntual) puedo o no recomendarle un auto. Por ejemplo, si viene Lucas puedo preguntar puedeinteresar(lucas, autogomez). puedeinteresar(lucas, autogimenez). A la primer pregunta debería responder que sí, mientras que a la segunda debería respondr que no. Efectivamente, ese va a ser el comportamiento de Prolog "cargado" con este programa, como veremos más adelante al analizar cómo se hacen las consultas y cómo responde Prolog. Qué se describe en un programa Resumamos el programa construido en el parágrafo anterior: accesorio(autogomez, abs). accesorio(autogomez, levantavidrios). accesorio(autogomez, mp3). accesorio(autogalindez, aire). accesorio(autogalindez, cierre). accesorio(autogalindez, abs). puedeinteresar(mirna,x):- accesorio(x,abs), accesorio(x,aire). puedeinteresar(juana,x):- accesorio(x,aire), accesorio(x,mp3). puedeinteresar(lola,x):- accesorio(x,aire), accesorio(x,mp3). puedeinteresar(pedro,x):- accesorio(x,abs). puedeinteresar(x,y):- joven(x), accesorio(y,mp3), accesorio(y,levantavidrios). joven(lucas). joven(francisco). Para llegar a este programa tomamos varias decisiones sobre cómo representar la información, veámoslas con algo de detalle. Página 18 de 49

19 1. elegimos qué constantes de individuo necesitamos incluir en el programa. Los entes que identificamos mediante constantes de individuo son: los autos; tenemos una constante para cada auto que está en venta. los posibles compradores. los accesorios de cada auto. La decisión podría haber sido distinta, p.ej. no haber definido constantes para los accesorios, y en cambio haber definido un predicado para cada uno; p.ej. en lugar de las constantes abs y aire, predicados tieneabs y tieneaire. La primer cláusula hubiera quedado así tieneabs(autogomez). y la cláusula sobre los gustos de Mirna tendría esta forma puedeinteresar(mirna,x):- tieneabs(x), tieneaire(x). Al elegir las constantes, es importante tener claro si en cada caso nos conviene trabajar con objetos específicos u objetos genéricos; ver la sección al respecto en el capítulo 1. En este caso, los autos y los posibles compradores serán representados individualmente, mientras que para los accesorios elegimos representarlos en forma genérica, con una constante para cada accesorio, y no p.ej. una para el ABS del auto del Sr. Gómez y otra distinta para el auto del Sr. Galíndez. 2. elegimos qué predicados usar para la descripción. Los predicados que elegimos son accesorio, que relaciona cada auto con los accesorios que tiene. puedeinteresar, que relaciona los posibles compradores con los autos. joven, que indica cuáles de los posibles compradores son jóvenes. Está claro que las decisiones sobre predicados y constantes están muy relacionadas: el cambio en decisión sobre constantes para los accesorios hace aparecer nuevos predicados. 3. decidimos qué información incluir en el programa, lo que da lugar a qué cláusulas lo van a formar. Lo que debemos incluir en el programa para poder obtener los resultados esperados es: los accesorios que tiene cada auto. lo que está buscando cada posible comprador. para que tenga sentido la condición sobre los gustos de los jóvenes, hay que incluir la información sobre quiénes de los posibles compradores son jóvenes. Al escribir las cláusulas que describen la información que se decidió incluir en el programa, hay que respetar las decisiones tomadas sobre predicados y constantes, y ser coherente con ello. P.ej. en todas las cláusulas que hacen referencia a accesorios, usamos el predicado accesorio; no usamos p.ej. en algunas accesorio y en otras otro predicado tieneaccesorio. Lo mismo para las constantes, al aire acondicionado lo llamamos siempre aire; no a veces aire y otras aireacondicionado. Observamos también que las decisiones sobre constantes y predicados de un lado, y sobre información a incluir del otro, son en cierta medida independientes: los predicados y las constantes nos indican cómo representar información, pero no qué información representar. P.ej. estas cláusulas accesorio(autogomez, abs). tieneabs(autogomez). describen la misma información, que el auto del Sr. Gómez tiene ABS. Página 19 de 49

20 Consultas e intérprete Prolog Lógica Algunos conceptos sobre Prolog versión 1.0 Sigamos con el ejemplo del sistema para recomendaciones en la concesionaria de autos. En la sección anterior construimos, usando el lenguaje Prolog, un sistema con el objetivo de poder preguntarle qué autos, entre los que están en venta, pueden interesarle a qué clientes. Cómo hacemos estas preguntas; dicho de otra forma, cómo hacemos "andar" un programa Prolog? Aquí interviene un nuevo elemento, que es el intérprete Prolog. Un intérprete es un programa al que, a la vez, se le puede "cargar" o incorporar un programa Prolog. Una vez "cargado" el programa, se pueden escribir consultas en el intérprete, escritas también en lenguaje Prolog, usando los mismos predicados y constantes usados en el programa. El intérprete responderá "Yes" o "No", según si puede inferir (usando un sistema de deducción análogo aunque de distintas características- que el sistema de deducción natural) la consulta tomando como premisas las cláusulas que componen el programa cargado. De esta forma, el intérprete es el "agente manipulador" del que hablamos en el capítulo 1: ante una consulta, manipula la información relevante, y entrega la respuesta que es el resultado que obtenemos del sistema. Hay varios intérpretes Prolog, para el curso elegimos uno llamado SWI Prolog. Incluimos los detalles sobre cómo usar este intérprete en un anexo de este apunte. Volviendo al ejemplo, supongamos que cargamos el programa que construimos en la sección anterior, y queremos conocer los gustos de Lucas. Podemos escribir la consulta?- puedeinteresar(lucas, autogomez). obteniendo como respuesta "Yes", y también?- puedeinteresar(lucas, autogimenez). obteniendo como respuesta "No". (los símbolos?- los pone el SWI, es la indicación para escribir una consulta) De esta forma, verificamos que el sistema que construimos cumple con sus requisitos, al menos en el caso de prueba que elegimos. Tal como vimos en el capítulo 1, en cualquier caso en el que Prolog no pueda deducir la consulta tomando el programa cargado como conjunto de premisas, va a sancionar "No" como respuesta. Esta característica tiene "nombre propio": hipótesis de universo cerrado: para cada relación que no es indicada explícitamente ni puede deducirse a partir del programa cargado, el Prolog asume que no se verifica; dicho de otra forma, para Prolog el "universo" a partir del cual arma razonamientos se limita a lo indicado explícitamente en el programa cargado. La hipótesis de universo cerrado aparece descripta tanto en literatura sobre programación basada en lógica, como en trabajos sobre lógica, p.ej. puede verse el artículo de R. Reiter, "A Logic for Default Reasoning" (Artificial Intelligence Nro. 13, 1980, North-Holland), página 84. Página 20 de 49

Estructuras Discretas. César Bautista Ramos Carlos Guillén Galván Daniel Alejandro Valdés Amaro

Estructuras Discretas. César Bautista Ramos Carlos Guillén Galván Daniel Alejandro Valdés Amaro Estructuras Discretas César Bautista Ramos Carlos Guillén Galván Daniel Alejandro Valdés Amaro Facultad de Ciencias de la Computación Benemérita Universidad Autónoma de Puebla 1. CONJUNTOS Y CLASES 1

Más detalles

UNIDAD I: LÓGICA PROPOSICIONAL

UNIDAD I: LÓGICA PROPOSICIONAL UNIDAD I: LÓGICA PROPOSICIONAL ASIGNATURA: INTRODUCCIÓN A LA COMPUTACIÓN CARRERAS: LICENCIATURA Y PROFESORADO EN CIENCIAS DE LA COMPUTACIÓN DEPARTAMENTO DE INFORMÁTICA FACULTAD DE CIENCIAS FÍSICO MATEMÁTICA

Más detalles

PROLOG Inteligencia Artificial Universidad de Talca, II Semestre 2005. Jorge Pérez R.

PROLOG Inteligencia Artificial Universidad de Talca, II Semestre 2005. Jorge Pérez R. PROLOG Inteligencia Artificial Universidad de Talca, II Semestre 2005 Jorge Pérez R. 1 Introducción a PROLOG PROLOG es un lenguaje interpretado basado en la lógica de predicados de primer orden. Puede

Más detalles

Límites. Definición de derivada.

Límites. Definición de derivada. Capítulo 4 Límites. Definición de derivada. 4.1. Límites e indeterminaciones Hemos visto en el capítulo anterior que para resolver el problema de la recta tangente tenemos que enfrentarnos a expresiones

Más detalles

MLM 1000 - Matemática Discreta

MLM 1000 - Matemática Discreta MLM 1000 - Matemática Discreta L. Dissett Clase 04 Resolución. Lógica de predicados c Luis Dissett V. P.U.C. Chile, 2003 Aspectos administrativos Sobre el tema vacantes: 26 personas solicitaron ingreso

Más detalles

Representación del conocimiento mediante lógica formal Introducción a PROLOG

Representación del conocimiento mediante lógica formal Introducción a PROLOG Representación del conocimiento mediante lógica formal Introducción a PROLOG Representación del conocimiento Lo que nos interesa es la representación, es decir, la modelización del conocimiento Orientaciones:

Más detalles

Introducción. Lógica de proposiciones: introducción. Lógica de proposiciones. P (a) x. Conceptos

Introducción. Lógica de proposiciones: introducción. Lógica de proposiciones. P (a) x. Conceptos Introducción César Ignacio García Osorio Lógica y sistemas axiomáticos 1 La lógica ha sido históricamente uno de los primeros lenguajes utilizados para representar el conocimiento. Además es frecuente

Más detalles

Las reglas se parecen un poco a las vistas relacionales. Especifican relaciones virtuales que no están

Las reglas se parecen un poco a las vistas relacionales. Especifican relaciones virtuales que no están BASES DE DATOS DEDUCTIVAS Introducción: El interés de los Sistemas de Gestión de Bases de Datos Deductivas tiende a incrementarse conforme se amplía su campo de aplicación (Gestión, Sistemas Expertos).

Más detalles

Para representar los conjuntos, los elementos y la relación de pertenencia, mediante símbolos, tendremos en cuenta las siguientes convenciones:

Para representar los conjuntos, los elementos y la relación de pertenencia, mediante símbolos, tendremos en cuenta las siguientes convenciones: 2. Conjuntos 2.1 Introducción El concepto de conjunto, de singular importancia en la ciencia matemática y objeto de estudio de una de sus disciplinas más recientes, está presente, aunque en forma informal,

Más detalles

UNIDAD 3: ARITMÉTICA DEL COMPUTADOR

UNIDAD 3: ARITMÉTICA DEL COMPUTADOR UNIDAD 3: ARITMÉTICA DEL COMPUTADOR Señor estudiante, es un gusto iniciar nuevamente con usted el desarrollo de esta tercera unidad. En esta ocasión, haremos una explicación más detallada de la representación

Más detalles

Universidad de la Frontera

Universidad de la Frontera Universidad de la Frontera Facultad de Ingeniería, Ciencias y Admistración Departamento de Matemática Actividad Didáctica: El Abaco TALLER # 2 - Sistema Decimal El ábaco es uno de los recursos más antiguos

Más detalles

Espacios Vectoriales

Espacios Vectoriales Espacios Vectoriales Departamento de Matemáticas, CCIR/ITESM 4 de enero de 2 Índice 3.. Objetivos................................................ 3.2. Motivación...............................................

Más detalles

{} representa al conjunto vacío, es decir, aquel que no contiene elementos. También se representa por.

{} representa al conjunto vacío, es decir, aquel que no contiene elementos. También se representa por. 2. Nociones sobre Teoría de Conjuntos y Lógica Para llevar a cabo nuestro propósito de especificar formalmente los problemas y demostrar rigurosamente la correctitud de nuestro programas, introduciremos

Más detalles

El modelo relacional y el álgebra relacional

El modelo relacional y el álgebra relacional El modelo relacional y el álgebra relacional Introducción Esta unidad didáctica está dedicada al estudio del modelo de datos relacional y del álgebra relacional. El concepto de modelo de datos se ha presentado

Más detalles

IIC 2252 - Matemática Discreta

IIC 2252 - Matemática Discreta IIC 2252 - Matemática Discreta L. Dissett Clase 04 Lógica de predicados. Reglas de inferencia en lógica de predicados. Lógica de predicados Definiciones básicas: Un predicado es una afirmación que depende

Más detalles

Guía de Uso Básico de Prolog

Guía de Uso Básico de Prolog Guía de Uso Básico de Prolog 1. Prolog es un lenguaje conversacional Al contrario que la mayoría de los lenguajes de programación, Prolog es un lenguaje conversacional; es decir, el sistema Prolog mantiene

Más detalles

PDF created with pdffactory Pro trial version www.pdffactory.com

PDF created with pdffactory Pro trial version www.pdffactory.com Universidad de Los Andes Facultad de Humanidades y Educación Escuela de Educación Departamento de Educación Física Cátedra Didáctica de la Educación Física RESUMEN DE LA TAXONOMIA DE LOS OBJETIVOS DE LA

Más detalles

INFERENCIA ESTADÍSTICA

INFERENCIA ESTADÍSTICA INFERENCIA ESTADÍSTICA Pensemos en los tres siguientes ejemplos: Hacemos una encuesta entre los clientes de una tienda para preguntarles su opinión sobre cambios generales que pretendemos hacer en diversas

Más detalles

TEMA 3 (parte 2). Representación del Conocimiento

TEMA 3 (parte 2). Representación del Conocimiento TEMA 3 (parte 2). Representación del Conocimiento Francisco José Ribadas Pena INTELIGENCIA ARTIFICIAL 5 Informática ribadas@uvigo.es 13 de noviembre de 2009 FJRP ccia [Inteligencia Artificial] 3.2.2 Lógica

Más detalles

Microsoft Excel 97 y 2000

Microsoft Excel 97 y 2000 Microsoft Excel 97 y 2000 Trucos para la hoja de cálculo de Office Formato a texto y datos 1 Cambio del tamaño y el tipo de letra por defecto Por defecto, Excel siempre sacará el mismo tipo de letra y

Más detalles

Diferenciabilidad. Definición 1 (Función diferenciable). Cálculo. Segundo parcial. Curso 2004-2005

Diferenciabilidad. Definición 1 (Función diferenciable). Cálculo. Segundo parcial. Curso 2004-2005 Univ. de Alcalá de Henares Ingeniería de Telecomunicación Cálculo. Segundo parcial. Curso 2004-2005 Diferenciabilidad. 1. Definición de función diferenciable Después del estudio de los ites de funciones

Más detalles

Notas de Clase para IL

Notas de Clase para IL Notas de Clase para IL 5. Deducción en Lógica de Primer Orden Rafel Farré, Robert Nieuwenhuis, Pilar Nivela, Albert Oliveras, Enric Rodríguez, Josefina Sierra 3 de septiembre de 2009 1 1. Formas normales

Más detalles

Lógica, conjuntos, relaciones y funciones

Lógica, conjuntos, relaciones y funciones Lógica, conjuntos, relaciones y funciones Álvaro Pérez Raposo Universidad Autónoma de San Luis Potosí Universidad Politécnica de Madrid Publicaciones Electrónicas Sociedad Matemática Mexicana A la memoria

Más detalles

Transcripción completa de la Lección 2 (Pinyin).

Transcripción completa de la Lección 2 (Pinyin). Transcripción completa de la Lección 2 (Pinyin). Anfitriones: Gabriel Arévalo / Kirin Yang Gabriel: Hola, mi nombre es Gabriel. Kirin: Y yo soy Kirin. Gabriel: Nos complace mucho de que haya elegido estar

Más detalles

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1.1 Introducción Este método proporciona un soporte para el diseño creativo de productos de software, inclusive a escala industrial.

Más detalles

La suma y la resta. Introducción. Capítulo

La suma y la resta. Introducción. Capítulo Capítulo II La suma y la resta Introducción En el capítulo anterior, vimos que los números permiten expresar la cantidad de objetos que tiene una colección. Juntar dos o más colecciones, agregar objetos

Más detalles

ELEMENTOS DE LÓGICA Y TEORÍA DE CONJUNTOS. Dra. Patricia Kisbye Dr. Alejandro L. Tiraboschi

ELEMENTOS DE LÓGICA Y TEORÍA DE CONJUNTOS. Dra. Patricia Kisbye Dr. Alejandro L. Tiraboschi ELEMENTOS DE LÓGICA Y TEORÍA DE CONJUNTOS Dra. Patricia Kisbye Dr. Alejandro L. Tiraboschi 3 INTRODUCCIÓN Estas notas han sido elaboradas con el objetivo de ofrecer al ingresante a las carreras de la

Más detalles

El rincón de los problemas. Nuevos horizontes matemáticos mediante variaciones de un problema

El rincón de los problemas. Nuevos horizontes matemáticos mediante variaciones de un problema www.fisem.org/web/union El rincón de los problemas ISSN: 1815-0640 Número 35. Septiembre de 2013 páginas 135-143 Pontificia Universidad Católica del Perú umalasp@pucp.edu.pe Nuevos horizontes matemáticos

Más detalles

Lo que miden los niveles de dominio

Lo que miden los niveles de dominio NIVELES DE DESEMPEÑO PISA XI. ESTANDARES CURRICULARES Y APRENDIZAJES ESPERADOS XI.1. PISA. Un referente internacional El Programa para la Evaluación Internacional de Alumnos de la OCDE (PISA, por sus siglas

Más detalles

GESTIÓN DE SOFTWARE INFORME SOBRE. Evaluación de Productos UNIVERSIDAD DE LA REPUBLICA - FACULTAD DE INGENIERÍA. Grupo 2

GESTIÓN DE SOFTWARE INFORME SOBRE. Evaluación de Productos UNIVERSIDAD DE LA REPUBLICA - FACULTAD DE INGENIERÍA. Grupo 2 UNIVERSIDAD DE LA REPUBLICA - FACULTAD DE INGENIERÍA GESTIÓN DE SOFTWARE INFORME SOBRE Evaluación de Productos Grupo 2 Marcelo Caponi 3.825.139-0 Daniel De Vera 4.120.602-3 José Luis Ibarra 4.347.596-3

Más detalles

Los Juegos como Herramienta Docente. Formalización de Juegos Lógicos en Prolog

Los Juegos como Herramienta Docente. Formalización de Juegos Lógicos en Prolog Los Juegos como Herramienta Docente. Formalización de Juegos Lógicos en Prolog Faraón Llorens, Mª Jesús Castel, Francisco Mora, Carlos Villagrá Dept. de Ciencia de la Computación e Inteligencia Artificial

Más detalles

Tema 7: Capital, inversión y ciclos reales

Tema 7: Capital, inversión y ciclos reales Tema 7: Capital, inversión y ciclos reales Macroeconomía 2014 Universidad Torcuato di Tella Constantino Hevia En la nota pasada analizamos el modelo de equilibrio general de dos períodos con producción

Más detalles

Q-flow 3.1: Introducción a Q-flow

Q-flow 3.1: Introducción a Q-flow Q-flow 3.1: Introducción a Q-flow Código del manual: Qf310001ESP Versión: 1.1 Se aplica a: Q-flow 3.1 Última revisión: 13/12/2010 i Q f 3 1 0 0 0 1 E S P v 1. 1 Q - f l o w 3.1 Introducción a Q-flow Urudata

Más detalles

LÓGICA JURÍDICA. Idea preliminar Cap. I. Nicolás Mejía Gómez -Universidad Libre Facultad de derecho

LÓGICA JURÍDICA. Idea preliminar Cap. I. Nicolás Mejía Gómez -Universidad Libre Facultad de derecho LÓGICA JURÍDICA Idea preliminar Cap. I Objetivos Definir y explicar qué es la lógica. Distinguir entre el pensamiento tomado como función y/o facultad y el considerado como producto. Señalar el tipo de

Más detalles

PRIMERA PARTE LAS PRIMERAS PLANILLAS

PRIMERA PARTE LAS PRIMERAS PLANILLAS PRIMERA PARTE LAS PRIMERAS PLANILLAS El objetivo de este capítulo es tener una primera aproximación al programa. Conocerle la cara: cómo se ve, para qué sirve, cuáles son y cómo se usan las principales

Más detalles

CURSO 2010-2011 TECNOLOGÍA TECNOLOGÍA 4º ESO TEMA 5: Lógica binaria. Tecnología 4º ESO Tema 5: Lógica binaria Página 1

CURSO 2010-2011 TECNOLOGÍA TECNOLOGÍA 4º ESO TEMA 5: Lógica binaria. Tecnología 4º ESO Tema 5: Lógica binaria Página 1 Tecnología 4º ESO Tema 5: Lógica binaria Página 1 4º ESO TEMA 5: Lógica binaria Tecnología 4º ESO Tema 5: Lógica binaria Página 2 Índice de contenido 1. Señales analógicas y digitales...3 2. Código binario,

Más detalles

Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur

Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur Lógica para Ciencias de la Computación Trabajo Práctico N 4 Cálculo de Predicados Primer Cuatrimestre de 2009 Observación

Más detalles

Apuntes de Matemática Discreta 1. Conjuntos y Subconjuntos

Apuntes de Matemática Discreta 1. Conjuntos y Subconjuntos Apuntes de Matemática Discreta 1. Conjuntos y Subconjuntos Francisco José González Gutiérrez Cádiz, Octubre de 2004 Universidad de Cádiz Departamento de Matemáticas ii Lección 1 Conjuntos y Subconjuntos

Más detalles

REGULAR EL STOCK Gem3 v1.1.1392 Fecha: 13-8-2007 Versión Doc.: 1.0.3

REGULAR EL STOCK Gem3 v1.1.1392 Fecha: 13-8-2007 Versión Doc.: 1.0.3 REGULAR EL STOCK Gem3 v1.1.1392 Fecha: 13-8-2007 Versión Doc.: 1.0.3 1.- Conceptos Generales 2.- Primeros pasos 3.- Contar los artículos de mi almacén o 3.1.- División del almacén o 3.2.- Una Primera regulación

Más detalles

Introducción. Metadatos

Introducción. Metadatos Introducción La red crece por momentos las necesidades que parecían cubiertas hace relativamente poco tiempo empiezan a quedarse obsoletas. Deben buscarse nuevas soluciones que dinamicen los sistemas de

Más detalles

Un juego de cartas: Las siete y media

Un juego de cartas: Las siete y media Un juego de cartas: Las siete y media Paula Lagares Federico Perea Justo Puerto * MaMaEuSch ** Management Mathematics for European Schools 94342 - CP - 1-2001 - DE - COMENIUS - C21 * Universidad de Sevilla

Más detalles

Capítulo VI. Diagramas de Entidad Relación

Capítulo VI. Diagramas de Entidad Relación Diagramas de Entidad Relación Diagramas de entidad relación Tabla de contenido 1.- Concepto de entidad... 91 1.1.- Entidad del negocio... 91 1.2.- Atributos y datos... 91 2.- Asociación de entidades...

Más detalles

UNIDAD 1. LOS NÚMEROS ENTEROS.

UNIDAD 1. LOS NÚMEROS ENTEROS. UNIDAD 1. LOS NÚMEROS ENTEROS. Al final deberás haber aprendido... Interpretar y expresar números enteros. Representar números enteros en la recta numérica. Comparar y ordenar números enteros. Realizar

Más detalles

Tienes una hora y media para resolver el examen. Suerte!

Tienes una hora y media para resolver el examen. Suerte! No. de aciertos: XI OLIMPIADA INTERNACIONAL DE LÓGICA, 2014 FASE ELIMINATORIA NIVEL BACHILLERATO Nombre: Institución: Instrucciones Responde este examen en la Hoja de respuestas que se te ha proporcionado,

Más detalles

ANÁLISIS DE DAVID HUME DEL PRINCIPIO DE CAUSALIDAD Francesc Llorens

ANÁLISIS DE DAVID HUME DEL PRINCIPIO DE CAUSALIDAD Francesc Llorens ANÁLISIS DE DAVID HUME DEL PRINCIPIO DE CAUSALIDAD Francesc Llorens QUÉ ES EL PRINCIPIO DE CAUSALIDAD El principio de causalidad es el pilar fundamental de la epistemología de David Hume. Tras determinar,

Más detalles

3. CÁLCULOS Y FORMATOS CONDICIONALES

3. CÁLCULOS Y FORMATOS CONDICIONALES colores, tendremos las opciones Mínima y Máxima, con tres campos cada una: Tipo, Valor y Color. Con este formato podemos crear una regla que le asigne un color al menor valor y otro al mayor, y dé a los

Más detalles

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología La metodología para el desarrollo de software es un modo sistemático de realizar, gestionar y administrar un proyecto

Más detalles

Apuntes de Lógica Matemática 3. Razonamientos y Demostraciones

Apuntes de Lógica Matemática 3. Razonamientos y Demostraciones Apuntes de Lógica Matemática 3. Razonamientos y Demostraciones Francisco José González Gutiérrez Cádiz, Abril de 2005 Universidad de Cádiz Departamento de Matemáticas ii Lección 3 Razonamientos y Demostraciones

Más detalles

APUNTE COMPLEMENTARIO EL LENGUAJE LÓGICO

APUNTE COMPLEMENTARIO EL LENGUAJE LÓGICO 1 Lógica - FCE APUNTE COMPLEMENTARIO EL LENGUAJE LÓGICO ---------------------------------------------- Este apunte complementa los capítulos 2 y 3 del libro Deducción y Representación ----------------------------------------------

Más detalles

Lógica de Primer Orden. Esquema. Tema 6. Introducción

Lógica de Primer Orden. Esquema. Tema 6. Introducción Lógica de Primer Orden Tema 6 Transparencias IA (F29) MMarcos, 2002 (Figuras c SRussell & PNorvig, 1998) Tema 6 1 Introducción Esquema Sintaxis y semántica de la Lógica de Primer Orden Variaciones en la

Más detalles

7 consejos para prepararse para las NIIF

7 consejos para prepararse para las NIIF 7 consejos para prepararse para las NIIF Consejos prácticos para los contadores colombianos, que los prepararán para el cambio a las NIIF Consejo 1: Entiende la situación Hoy en día Colombia ha determinado

Más detalles

La técnica de las palabras "comadreja" en Marketing y Ventas

La técnica de las palabras comadreja en Marketing y Ventas La técnica de las palabras "comadreja" en Marketing y Ventas Extraño título, lo sé, pero se trata de algo que hemos de conocer bien, porque nos va a ser extremadamente útil. Esta es una técnica que puede

Más detalles

Significado de las f.b.f (fórmulas bien formadas) en términos de objetos, propiedades y relaciones en el mundo

Significado de las f.b.f (fórmulas bien formadas) en términos de objetos, propiedades y relaciones en el mundo Significado de las f.b.f (fórmulas bien formadas) en términos de objetos, propiedades y relaciones en el mundo Semánticas del cálculo de predicados proporcionan las bases formales para determinar el valor

Más detalles

Coberturas de una Inversión Neta en un Negocio en el Extranjero

Coberturas de una Inversión Neta en un Negocio en el Extranjero CINIIF 16 Material publicado para acompañar a la Interpretación CINIIF 16 Coberturas de una Inversión Neta en un Negocio en el Extranjero El texto normativo de la CINIIF 16 se encuentra en la Parte A de

Más detalles

Datos del autor. Nombres y apellido: Germán Andrés Paz. Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina

Datos del autor. Nombres y apellido: Germán Andrés Paz. Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina Datos del autor Nombres y apellido: Germán Andrés Paz Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina Correo electrónico: germanpaz_ar@hotmail.com =========0========= Introducción

Más detalles

INTRODUCCION A LA LOGICA

INTRODUCCION A LA LOGICA INTRODUCCION A LA LOGICA Renato Lewin Pontificia Universidad Católica de Chile I Parte LOGICA PROPOSICIONAL Introducción 1 Lógica Cuando deseamos establecer una verdad, cuando queremos convencer a alguien

Más detalles

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007 Enunciado Se desea efectuar el testing funcional de un programa que ejecuta transferencias entre cuentas bancarias. El programa recibe como parámetros la cuenta de origen, la de cuenta de destino y el

Más detalles

Tema 2. Espacios Vectoriales. 2.1. Introducción

Tema 2. Espacios Vectoriales. 2.1. Introducción Tema 2 Espacios Vectoriales 2.1. Introducción Estamos habituados en diferentes cursos a trabajar con el concepto de vector. Concretamente sabemos que un vector es un segmento orientado caracterizado por

Más detalles

2) Con velocidad razonable (ni demasiado rápido.. ni aburrido)

2) Con velocidad razonable (ni demasiado rápido.. ni aburrido) 1 2 3 1) Explicar ordenadamente (explicar primero lo más importante, luego seguir en orden explicando lo siguiente que corresponda en orden de importancia..) 2) Con velocidad razonable (ni demasiado rápido..

Más detalles

Capítulo 4 PROLOG 4.1 Introducción

Capítulo 4 PROLOG 4.1 Introducción 4.1 Introducción PROLOG es un lenguaje declarativo e interpretado, en este tipo de lenguajes se representan los conocimientos sobre un determinado dominio y sus relaciones. A partir de ese conocimiento,

Más detalles

Módulo II - Excel. Identificando tipos de datos... 2. Introduciendo datos en las celdas... 3. Llenando automáticamente las celdas...

Módulo II - Excel. Identificando tipos de datos... 2. Introduciendo datos en las celdas... 3. Llenando automáticamente las celdas... Módulo II - Excel Índice Identificando tipos de datos... 2 Introduciendo datos en las celdas... 3 Llenando automáticamente las celdas... 4 Seleccionando un rango de celdas... 5 Seleccionando una fila o

Más detalles

2.3 El Mundo de Tarski. http://cursos.clavijero.edu.mx/cursos/007_cp/modulo2/contenidos/documentos/tarski.zip

2.3 El Mundo de Tarski. http://cursos.clavijero.edu.mx/cursos/007_cp/modulo2/contenidos/documentos/tarski.zip 2.3 El Mundo de Tarski El mundo de Tarski es una herramienta de software desarrollada expresamente para enseñar y mejorar la capacidad del estudiante para describir situaciones en un mundo simple utilizando

Más detalles

http://en.wikipedia.org/wiki/edgar_f._codd

http://en.wikipedia.org/wiki/edgar_f._codd 26/03/2012 1 http://en.wikipedia.org/wiki/edgar_f._codd Codd estableció los fundamentos del modelo relacional en el artículos de 1970 "A Relational Model of Data for Large Shared Data Banks". En adelante,

Más detalles

personal.us.es/elisacamol Elisa Cañete Molero Curso 2011/12

personal.us.es/elisacamol Elisa Cañete Molero Curso 2011/12 Teoría de conjuntos. Teoría de Conjuntos. personal.us.es/elisacamol Curso 2011/12 Teoría de Conjuntos. Teoría de conjuntos. Noción intuitiva de conjunto. Propiedades. Un conjunto es la reunión en un todo

Más detalles

Un grafo G es un par (V,E) donde V es un conjunto (llamado conjunto de vértices) y E un subconjunto de VxV (conjunto de aristas).

Un grafo G es un par (V,E) donde V es un conjunto (llamado conjunto de vértices) y E un subconjunto de VxV (conjunto de aristas). TEMA 5.- GRAFOS 5.1.- DEFINICIONES BÁSICAS Un grafo G es un par (V,E) donde V es un conjunto (llamado conjunto de vértices) y E un subconjunto de VxV (conjunto de aristas). Gráficamente representaremos

Más detalles

Factorización de polinomios

Factorización de polinomios Factorización de polinomios Polinomios Un polinomio p en la variable x es una expresión de la forma: px a 0 a 1 x a x a n1 x n1 a n x n donde a 0, a 1, a,, a n1, a n son unos números, llamados coeficientes

Más detalles

Apuntes de Matemática Discreta 9. Funciones

Apuntes de Matemática Discreta 9. Funciones Apuntes de Matemática Discreta 9. Funciones Francisco José González Gutiérrez Cádiz, Octubre de 004 Universidad de Cádiz Departamento de Matemáticas ii Lección 9 Funciones Contenido 9.1 Definiciones y

Más detalles

CONSTRUCCION DE SISTEMAS EXPERTOS

CONSTRUCCION DE SISTEMAS EXPERTOS CONSTRUCCION DE SISTEMAS EXPERTOS TECNICAS DE EDUCCION DEL CONOCIMIENTO Dr. Ramón GARCIA MARTINEZ GRAFOS ARQUETÍPICOS En muchos dominios de conocimiento, puede reconocerse una estructura de representación

Más detalles

Clase 09. La capa lógica. Mg. A. G. Stankevicius. Segundo Cuatrimestre

Clase 09. La capa lógica. Mg. A. G. Stankevicius. Segundo Cuatrimestre Ingeniería de Aplicaciones para la Web Semántica Clase 09 La capa lógica Mg. A. G. Stankevicius Segundo Cuatrimestre 2005 Copyright 2 Copyright 2005 A. G. Stankevicius. Se asegura la libertad para copiar,

Más detalles

Escenas de episodios anteriores

Escenas de episodios anteriores Clase 16/10/2013 Tomado y editado de los apuntes de Pedro Sánchez Terraf Escenas de episodios anteriores objetivo: estudiar formalmente el concepto de demostración matemática. caso de estudio: lenguaje

Más detalles

Charla No 3: Fórmulas de mayor uso.

Charla No 3: Fórmulas de mayor uso. 1 Charla No 3: Fórmulas de mayor uso. Objetivos generales: Explicar el uso de las funciones de mayor uso en MS-Excel Objetivos específicos: Autosuma. Asistente de fórmulas. Max y Min. Buscarv Contar Si

Más detalles

El lenguaje SQL es un lenguaje estándar para el acceso y

El lenguaje SQL es un lenguaje estándar para el acceso y 1. INTRODUCCIÓN El lenguaje SQL es un lenguaje estándar para el acceso y manipulación de bases de datos relacionales como SQL Server. Esto quiere decir que aprender SQL es algo indispensable para cualquier

Más detalles

CC es la abreviación de Cyber Café. Es así como nos referimos al programa en este documento.

CC es la abreviación de Cyber Café. Es así como nos referimos al programa en este documento. Preguntas Frecuentes Generales?? Qué significa CC? CC es la abreviación de Cyber Café. Es así como nos referimos al programa en este documento.?? Cuáles son los requerimientos mínimos de hardware para

Más detalles

Curso Completo de Electrónica Digital

Curso Completo de Electrónica Digital CURSO Curso Completo de Electrónica Digital Este curso de larga duración tiene la intención de introducir a los lectores más jovenes o con poca experiencia a la Electrónica Digital, base para otras ramas

Más detalles

ÍNDICE PRESENTACIÓN... 9. INTRODUCCIÓN... 11 Lógica y Filosofía de la Lógica... 11 Más allá de este libro... 16

ÍNDICE PRESENTACIÓN... 9. INTRODUCCIÓN... 11 Lógica y Filosofía de la Lógica... 11 Más allá de este libro... 16 ÍNDICE PRESENTACIÓN... 9 INTRODUCCIÓN... 11 Lógica y Filosofía de la Lógica... 11 Más allá de este libro... 16 I. VERDAD Y PORTADORES DE VERDAD... 19 1. De qué tipo de entidades predicamos la verdad?...

Más detalles

Universidad Católica del Maule. Fundamentos de Computación Especificación de tipos de datos ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS

Universidad Católica del Maule. Fundamentos de Computación Especificación de tipos de datos ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS Especificación algebraica ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS Un tipo abstracto de datos se determina por las operaciones asociadas, incluyendo constantes que se consideran como operaciones sin

Más detalles

DESIGUALDADES página 1

DESIGUALDADES página 1 DESIGUALDADES página 1 1.1 CONCEPTOS Y DEFINICIONES Una igualdad en Álgebra es aquella relación que establece equivalencia entre dos entes matemáticos. Es una afirmación, a través del signo =, de que dos

Más detalles

Paquete del alfabetizador. La palabra

Paquete del alfabetizador. La palabra Paquete del alfabetizador. La palabra Marzo de 2015 Estructura en niveles Inicial (Alfabe6zación funcional) PRIMARIA Intermedio (Completa la primaria) Avanzado SECUNDARIA NIVEL INICIAL PARA POBLACIÓN HISPANOHABLANTE

Más detalles

Repaso de Lógica de Primer Orden

Repaso de Lógica de Primer Orden Repaso de Lógica de Primer Orden IIC3260 IIC3260 Repaso de Lógica de Primer Orden 1 / 29 Lógica de primer orden: Vocabulario Una fórmula en lógica de primer orden está definida sobre algunas constantes

Más detalles

Hacé un Colla ge GIMP en Huayra

Hacé un Colla ge GIMP en Huayra Hacé un Colla ge GIMP en Huayra Hoy en tu netbook ya tenés incorporada una cámara digital, también podés llegar a tener una en el celular, y quizás hasta una cámara. Entonces de alguna manera ya estás

Más detalles

Arquitectura de Aplicaciones

Arquitectura de Aplicaciones 1 Capítulo 13: Arquitectura de aplicaciones. - Sommerville Contenidos del capítulo 13.1 Sistemas de procesamiento de datos 13.2 Sistemas de procesamiento de transacciones 13.3 Sistemas de procesamiento

Más detalles

CAPÍTULO 1 Introducción

CAPÍTULO 1 Introducción CAPÍTULO 1 Introducción 1.1 Sistemas basados en conocimiento (Knowledge Based Systems) Los sistemas basados en conocimiento (Knowledge Based Systems. KBS) son aplicaciones que generan soluciones o respuestas

Más detalles

Módulo 2- Procesos de lecturas

Módulo 2- Procesos de lecturas Módulo 2 Módulo 2- Procesos de lecturas Presentación Se cuenta la siguiente historia: "Creso, rey de Lidia, planeaba una guerra contra el reino de Persia. Como era un hombre prudente, no quería arriesgarse

Más detalles

Cómo mejorar la calidad de los aprendizajes de nuestros estudiantes?

Cómo mejorar la calidad de los aprendizajes de nuestros estudiantes? Cómo mejorar la calidad de los aprendizajes de nuestros estudiantes? Con frecuencia a los profesores nos gustaría que alguien nos diera una receta para que nuestros estudiantes aprendan mucho, se entusiasmen,

Más detalles

OBJETIVOS de aprendizaje

OBJETIVOS de aprendizaje Profesorado en Relaciones del Trabajo Materia: Didáctica Especial y Residencia Cátedra: Dra. Vega OBJETIVOS de aprendizaje Ficha de Cátedra 2015 Prof. Carreras, Liliana Prof. Cortés, Margarita Prof. Marzioli,

Más detalles

Este es un ejemplo muy sencillo, un esquema de empleados que trabajan en proyectos, en una relación muchos a muchos.

Este es un ejemplo muy sencillo, un esquema de empleados que trabajan en proyectos, en una relación muchos a muchos. 28/04/2012 La teoría de la normalización va perdiendo peso con el paso de los años como herramienta de diseño de bases de datos relacionales en favor de modelos de datos más ricos en su representación,

Más detalles

El proyecto integrado de lenguas del CEIP Vila Olímpica

El proyecto integrado de lenguas del CEIP Vila Olímpica El proyecto integrado de lenguas del CEIP Vila Olímpica Por Tana Serra y Rosa M. Ramírez* 1. La escuela, el proyecto, el equipo El proyecto que describimos en este artículo, Proyecto Integrado de Lenguas,

Más detalles

El modelo relacional y el álgebra relacional

El modelo relacional y el álgebra relacional El modelo relacional y el álgebra relacional Dolors Costal Costa P06/M2109/02148 FUOC P06/M2109/02148 El modelo relacional y el álgebra relacional Índice Introducción... 5 Objetivos... 6 1. Introducción

Más detalles

Historia de revisiones

Historia de revisiones Especificación de Requerimientos de Software Versión 3.0 Historia de revisiones Fecha Versión Descripción Autor 22/08/2015 1.0 Especificación Inicial. Analistas 23/08/2015 1.1 Revisión de SQA. Correcciones

Más detalles

Lógica de Predicados 1

Lógica de Predicados 1 Lógica de Predicados 1 rafael ramirez rafael@iua.upf.es Ocata 320 Porqué Lógica de Predicados La logica proposicional maneja bien afirmaciones compuestas de no, y, o, si entonces En situaciones con un

Más detalles

Creación de Funciones de Conducción

Creación de Funciones de Conducción Creación de Funciones de Conducción Requerimientos Para el desarrollo de esta actividad se requiere que: Contemos con un robot BoeBot armado con placa Arduino. Repetición En estos momentos habremos notado

Más detalles

Búsqueda booleana en Internet

Búsqueda booleana en Internet Búsqueda booleana en Internet Lo primero de la lógica booleana La lógica booleana le permite combinar palabras y frases en los enunciados de búsqueda para conseguir los documentos de las bases de datos

Más detalles

construcción de programas Prof. Eliana Guzmán U.

construcción de programas Prof. Eliana Guzmán U. Unidad II. Metodología para la construcción de programas Prof. Eliana Guzmán U. Semestre: A-2015 Introducción Resolver un problema con una computadora conduce a la escritura de un programa y a su ejecución.

Más detalles

DESAFÍOS RIESGOS POSIBLES SOLUCIONES Tengo que tener en cuenta que mi proyecto solamente servirá si responde a las

DESAFÍOS RIESGOS POSIBLES SOLUCIONES Tengo que tener en cuenta que mi proyecto solamente servirá si responde a las DIAGNÓSTICO DE PROYECTOS SOCIALES Por Jennifer Guevara 1 Si estás comenzando, implementando o implementaste alguna vez un proyecto social, seguramente te hiciste alguna de estas preguntas: qué es un diagnóstico?,

Más detalles

DIRECTRICES TÉCNICAS para descargar y adaptar los MATERIALES DEL PROYECTO DE RENDICIÓN DE CUENTAS

DIRECTRICES TÉCNICAS para descargar y adaptar los MATERIALES DEL PROYECTO DE RENDICIÓN DE CUENTAS La Guía: Una Guía Suficientemente Buena para Medición del Impacto y Rendición de Cuentas en las Emergencias, publicada durante la Fase I del proyecto ECB, es una guía de bolsillo sencilla que presenta

Más detalles

Problemas indecidibles

Problemas indecidibles Capítulo 7 Problemas indecidibles 71 Codificación de máquinas de Turing Toda MT se puede codificar como una secuencia finita de ceros y unos En esta sección presentaremos una codificación válida para todas

Más detalles

Cómo configurar tu email tras registrar tu dominio

Cómo configurar tu email tras registrar tu dominio Cómo configurar tu email tras registrar tu dominio Cardenal Gardoki, 1 48008 BILBAO (Vizcaya) Teléfono: 902 012 199 www.hostalia.com Cuando se empezó a popularizar el email personal hace una década los

Más detalles

30 = 2 3 5 = ( 2) 3 ( 5) = 2 ( 3) ( 5) = ( 2) ( 3) 5.

30 = 2 3 5 = ( 2) 3 ( 5) = 2 ( 3) ( 5) = ( 2) ( 3) 5. 11 1.3. Factorización Como ya hemos mencionado, la teoría de ideales surgió en relación con ciertos problemas de factorización en anillos. A título meramente ilustrativo, nótese que por ejemplo hallar

Más detalles

Introducción. Estadística 1. 1. Introducción

Introducción. Estadística 1. 1. Introducción 1 1. Introducción Introducción En este tema trataremos de los conceptos básicos de la estadística, también aprenderemos a realizar las representaciones gráficas y a analizarlas. La estadística estudia

Más detalles

SIMULADOR DE SISTEMAS DE EVENTOS DISCRETOS

SIMULADOR DE SISTEMAS DE EVENTOS DISCRETOS SIMULADOR DE SISTEMAS DE EVENTOS DISCRETOS MANUAL DE USUARIO 1.1 Introducción. El simulador de sistemas de eventos discretos está compuesto por dos aplicaciones: el Simulador de redes de Petri y el Simulador

Más detalles