Capítulo 4 PROLOG 4.1 Introducción



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

Introducción. Paradigma de Lógica Gran importancia en la I.A. Origen: prueba de teoremas y razonamiento deductivo. Lógica.

1. DML. Las subconsultas

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

IIC Matemática Discreta

OPERADORES LÓGICOS Y DE COMPARACIÓN EN PHP. PRIORIDADES. EJEMPLOS. EJERCICIOS RESUELTOS. (CU00818B)

UNIDAD I: LÓGICA PROPOSICIONAL

CURSO BÁSICO DE MATEMÁTICAS PARA ESTUDIANTES DE ECONÓMICAS Y EMPRESARIALES

Una variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación.

VII. Estructuras Algebraicas

1. Sintaxis de Prolog

Ecuaciones de primer grado con dos incógnitas

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

Apuntes de Matemática Discreta 9. Funciones

6 Ecuaciones de 1. er y 2. o grado

A estas alturas de nuestros conocimientos vamos a establecer dos reglas muy prácticas de cómo sumar dos números reales:

3. Operaciones con funciones.

TIPOS DE VARIABLES EN PHP. DECLARACIÓN Y ASIGNACIÓN. LA INSTRUCCIÓN ECHO PARA INSERTAR TEXTO O CÓDIGO. (CU00816B)

Una desigualdad se obtiene al escribir dos expresiones numéricas o algebraicas relacionadas con alguno de los símbolos

Matrices: Conceptos y Operaciones Básicas

INTRODUCCION A LA LÓGICA DE ENUNCIADOS

TEMA: ECUACIONES CON NÚMEROS NATURALES ECUACIONES DE PRIMER GRADO CON UNA INCÓGNITA.

ÁLGEBRA DE MATRICES. Al consejero A no le gusta ninguno de sus colegas como presidente.

Tema 2 Límites de Funciones

TEOREMA DE DETERMINACIÓN DE APLICACIONES LINEALES

x : N Q 1 x(1) = x 1 2 x(2) = x 2 3 x(3) = x 3

Tema IV. Unidad aritmético lógica

Capítulo 4 Procesos con estructuras de repetición

MLM Matemática Discreta

Programa para el Mejoramiento de la Enseñanza de la Matemática en ANEP Proyecto: Análisis, Reflexión y Producción. Fracciones

LÍMITES DE FUNCIONES. CONTINUIDAD

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

CAPÍTULO III. FUNCIONES

Características de funciones que son inversas de otras

Tecnologías en la Educación Matemática. Expresiones. Datos. Expresiones Aritméticas. Expresiones Aritméticas 19/08/2014

ax + b < 0, ax + b > 0, ax + b 0 o ax + b 0, multiplicamos ambos miembros de la inecuación por 6 para quitar denominadores. De esta forma se tiene

Inteligencia Artificial II. Razonamiento con ontologías

a < b y se lee "a es menor que b" (desigualdad estricta) a > b y se lee "a es mayor que b" (desigualdad estricta)

Ejercicio Nº 3: Realizar aumentos en una Tabla de Sueldos

Informática 1 Sistemas numéricos: decimal, binario, octal y hexadecimal FCFA Febrero 2012

OPERACIONES EN RÉGIMEN DE COMPUESTA

VECTORES. Módulo, dirección y sentido de un vector fijo En un vector fijo se llama módulo del mismo a la longitud del segmento que lo define.

Espacios Vectoriales

1. Descripción y objetivos

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.

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

4º ESO 1. ECUAC. 2º GRADO Y UNA INCÓGNITA

LAS SUBCONSULTAS SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

LENGUAJES DE CONSULTA ORIENTADOS A OBJETOS

BASES DE DATOS. TEMA 6. El Álgebra Relacional

Matemáticas Básicas para Computación. Sesión 7: Compuertas Lógicas

De dos incógnitas. Por ejemplo, x + y 3 = 4. De tres incógnitas. Por ejemplo, x + y + 2z = 4. Y así sucesivamente.

Capitán de fragata ingeniero AGUSTÍN E. GONZÁLEZ MORALES. ÁLGEBRA PARA INGENIEROS (Solucionario)

ESTRUCTURAS ALGEBRAICAS

Objetivos. Contenidos. Revisar los principales conceptos de la lógica de primer orden

Instalación y mantenimiento de servicios de Internet. U.T.3.- Servicio DNS

1. Lección 5 - Comparación y Sustitución de capitales

Interpolación polinómica

8. ESPACIOS VECTORIALES Y APLICACIONES LINEALES.

Inteligencia Artificial. Facultad de Ciencias Exactas y Tecnología Universidad Nacional de Tucumán Prof. Ing. Franco D. Menendez

2 Matrices. 1. Tipos de matrices. Piensa y calcula. Aplica la teoría

2. Aritmética modular Ejercicios resueltos

Unidad 2. Descuento simple

Diseño Estructurado de Algoritmos

Límite de una función

VECTORES EN EL ESPACIO. 1. Determina el valor de t para que los vectores de coordenadas sean linealmente dependientes.

Guía de conjuntos. 1ero A y B La importancia del lenguaje.

INTRODUCCIÓN A PROLOG

DOMINIO Y RANGO página 89. Cuando se grafica una función existen las siguientes posibilidades:

Introducción a la Firma Electrónica en MIDAS

3.1. Concepto de función. Dominio, recorrido y gráfica Concepto de función

NÚMEROS NATURALES Y NÚMEROS ENTEROS

Introducción a la Computación TFA

DOMINIO Y RANGO DE UNA FUNCIÓN I N D I C E. martilloatomico@gmail.com. Página. Titulo:

1. El teorema de la función implícita para dos y tres variables.

Definición Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas.

Procedimiento de Sistemas de Información

FUNCIONES CUADRÁTICAS Y RACIONALES

Técnicas de prueba 1. FUNDAMENTOS DE LA PRUEBA DEL SOFTWARE

1. El vocabulario de un programa PROLOG

ESTRUCTURAS ALGEBRAICAS 1

5 Ecuaciones lineales y conceptos elementales de funciones

1.3 Números racionales

I. ALGEBRA DE BOOLE. c) Cada operación es distributiva con respecto a la otra: a. ( b + c) = a. b + a. c a + ( b. c ) = ( a + b ).

De acuerdo con sus características podemos considerar tres tipos de vectores:

SITEMA BINARIO, OCTAL Y HEXADECIMAL: OPERACIONES

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

LÍMITES Y CONTINUIDAD

Juan Antonio González Mota Profesor de Matemáticas del Colegio Juan XIII Zaidín de Granada

Lenguajes y Compiladores

Este documento ha sido generado para facilitar la impresión de los contenidos. Los enlaces a otras páginas no serán funcionales.

SOLUCIÓN CASO GESTIÓN DE PERSONAL I

El material concreto como mediador en la construcción de conceptos matemáticos

LÍMITES Y CONTINUIDAD DE FUNCIONES

circuitos digitales Oliverio J. Santana Jaria Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso

LÍMITES DE FUNCIONES. CONTINUIDAD

Codd propuso estos tres lenguajes como base teórica de cualquier lenguaje que quisiera cumplir con los requisitos formales del modelo.

Sistemas de Numeración

Tema 2 Límites de Funciones

Transcripció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, se deducen las respuestas a las preguntas planteadas, es decir se obtiene una inferencia. El conocimiento se formaliza mediante un conjunto de relaciones que describen de forma simultánea las propiedades y sus interacciones. Se declara el conocimiento disponible acerca de: OBJETOS: propiedades relaciones REGLAS, que determinan interacciones lógicas del tipo: si ocurre q, r, s y t entonces P 4.1 Introducción Un programa Prolog está constituido por un conjunto de cláusulas de Horn. Una cláusula de Horn tiene la forma general: p(t1,t2,.,tn) :- p1(.),p2(.),,pm(.) con m >= 0 Donde tanto p como las pi son símbolos predicados con sus argumentos entre paréntesis. A los argumentos de un predicado se les denomina Términos. Las cláusulas de Horn son expresiones condicionales, siendo el símbolo :- el condicional o símbolo de la implicación (normalmente en lógica se utiliza el símbolo ). Así la cláusula anterior podría leerse de la siguiente forma: SI p1(.) Y p2(.) Y Y pm(.) ENTONCES p(t1,t2,,tn)

4.1 Introducción Cuando m=0, la cláusula no tiene parte derecha, en este caso diremos que se trata de un hecho o afirmación. p(t1,t2,,tn). Cuando la cláusula no tiene parte izquierda (o cabeza), se tiene pregunta, este tipo de cláusulas se utilizan para realizar la entrada/salida del programa:?p1(.),p2(.),,pm(.) 4.2 Cláusulas Un programa en Prolog está constituido por una secuencia de cláusulas. Estas cláusulas deben representar todo el conocimiento necesario para resolver el problema. Se pueden diferenciar tres tipos de Cláusulas: Hechos (afirmaciones), se pueden representar: Objetos Propiedades de objetos Relaciones entre objetos Reglas. Consultas. Cada cláusula puede estar formada por uno o varios predicados. Las cláusulas deben terminar obligatoriamente en punto.

4.3 Hechos Es el mecanismo básico para representar: objetos/personas/conceptos. propiedades de los objetos. relaciones entre los objetos. padre(luis). padre_de(luis, pedro). azul(cielo). 4.3 Hechos Ejemplo

4.4 Consultas Es el mecanismo para extraer conocimiento del programa. 4.4 Consultas Por ejemplo si Vicente busca amigos/as de mis amigos que sean millonarios/as y estén solteros/as: Una consulta estará constituida por una o varias metas que Prolog deberá resolver. El intérprete de Prolog nos devuelve más soluciones si utilizamos el punto y coma ; Cuando no existen más soluciones que unifiquen con el objetivo, el intérprete contesta No.

4.5 Reglas Permiten establecer relaciones más elaboradas entre objetos, por ejemplo, relaciones causa-efecto. padre_de(juan, jose). familiares(pedro, miguel). hermanos(enrique,jose). familiares(x, Y) :- padre_de(x, Y). familiares(x, Y) :- padre_de(y, X). familiares(x, Y) :- hermanos(y, X). familiares(x, Y) :- hermanos(y, X). 4.6 Equiparación Por ejemplo, si una variable está libre y es equiparada con un valor numérico, se obtiene una instanciación (asignación) de la variable con dicho valor. Este mecanismo permite comprobar si dos expresiones son equivalentes, produce como resultado una sustitución de términos cuando esta es posible. Ejemplos: amigos(pedro, vicente) y amigos(pedro, vicente) son equiparables. amigos(pedro, vicente) y amigos(x, vicente) son equiparables. X = pedro. amigos(pedro, Y) y amigos(x, vicente) son equiparables. X = pedro, Y = vicente. amigos(x, X) y amigos(pedro, vicente) no son equiparables porque X = pedro, X = vicente no es posible.

4.7 Desigualdad Para comprobar si dos términos son distintos, disponemos de diferentes operadores. Desigualdad \== Comprueba si dos términos son distintos. Por ejemplo, si dos variables tienen distintos valores instanciados. Desigualdad aritmética =\= Verifica la desigualdad numérica de dos expresiones. 4.8 Igualdad y asignación Disponemos de cuatro tipos de operadores de igualdad : Igualdad aritmética [=:=]. expresiones argumento. igual1(x, Y) :- X =:= Y. Comprueba la igualdad numérica de las Identidad [==]. Comprueba si los términos argumento son idénticos. igual2(x, Y) :- X == Y. Unificación [ = ]. Comprueba si los términos argumento son unificables (equiparables). Es equivalente a la asignación directa entre variables en un lenguaje procedimental. Da fallo si la unificación no es posible. igual3(x, Y) :- X = Y. Una definición equivalente sería: igual4(x,x).

4.8 Igualdad y asignación Asignación [is]. Evalúa la segunda expresión e intenta asignar el valor obtenido a la variable. No es conmutativo incremento(x,y) :- Y is X+1. Una definición similar a la de igualdad sería: igual5(x, Y) :- X is Y. 4.8 Igualdad y asignación A continuación se muestra una tabla comparativa de todas las posibilidades existentes.

4.9 Operadores lógicos y aritméticos Para comprobar si dos términos son distintos, disponemos de diferentes operadores. Operadores y funciones aritméticas válidas en Prolog son: 4.10 Negación Existe un predicado de negación en Prolog (not) que está implementado como negación por fallo, esto quiere decir que se evalúa como falso cualquier cosa que Prolog sea incapaz de verificar que su predicado argumento es cierto. no_nulo(x):-not(x=:=0). saldo_cuenta(maria,1000). saldo_cuenta(flora,3000000). saldo_cuenta(antonio,2000000). millonario(x) :- saldo_cuenta(x, Y), Y > 1000000. pobre(x) :- not(millonario(x)).