Control de retroceso. Corte y negación (2010/2011)

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

Download "Control de retroceso. Corte y negación (2010/2011)"

Transcripción

1 Luis Valencia Cabrera ( Ciencias de la Computacion e IA ( Universidad de Sevilla Control de retroceso. Corte y negación (2010/2011)

2 Índice Control del retroceso El corte y su uso Eliminación de código innecesario Eliminación de cortes Problemas del corte Ejemplo ilustrativo: notas Uso del corte para respuesta única La negación como fallo

3 Control del retroceso Procedimiento sin corte: f(x,y) Definir la relación f(x,y) de forma que: si X < 3, entonces Y = 0; si 3 =< X < 6, entonces Y = 2; si 6 =< X, entonces Y = 4. Programa: f(x,0) :- X < 3. f(x,2) :- 3 =< X, X < 6. f(x,4) :- 6 =< X.

4 Control del retroceso. Árbol de resolución. Analizar árbol de resolución SLD para el siguiente conjunto de objetivos:?- f(1,y), 2<Y. Qué ve?

5 Control del retroceso. Árbol de resolución. Solución

6 El corte Prolog dispone del corte (!) como método para podar la búsqueda y aumentar la eficiencia de los programas. Un caso natural en donde aplicar la poda es en los problemas con solución única

7 Efectos del corte Fija todas las sustituciones de variables se hayan realizado a partir de la cláusula donde ha aparecido el corte. No intenta encontrar soluciones alternativas a los literales a la izquierda del corte No intenta cláusulas alternativas a la del corte

8 Ejemplo con corte Definir la relación f_1(x,y) a partir de la definición de f(x,y), introduciendo un corte al final de las dos primeras cláusulas Programa f_1(x,0) :- X < 3,!. f_1(x,2) :- 3 =< X, X < 6,!. f_1(x,4) :- 6 =< X.

9 Uso del corte

10 Mejora del corte Comentarios sobre el corte en f_1: ha mejorado la eficiencia ha modificado la semántica procedimental no ha modificado la semántica declarativa

11 Mejora del corte Desarrolla el árbol de?- f_1(7,y). Queda algún procesamiento innecesario?

12 Seguimiento del corte. Necesitamos más mejoras?

13 Eliminación de procesamiento innecesario En el árbol anterior se observa que se efectúan comparaciones innecesarias: Por ejemplo, después de fallar la comparación 7<3, efectúa la comparación 3=<7. Definir la relación f_2(x,y)suprimiendo en la definición de f_1(x,y)las comparaciones innecesarias.

14 Predicado eliminando el procesamiento innecesario Programa f_2(x,0) :- X < 3,!. f_2(x,2) :- X < 6,!. f_2(x,4).

15 Predicado eliminando el procesamiento innecesario

16 Traza del motor de inferencia. Control de visibilidad. Para ver traza en SWI-Prolog: trace. Eliminarla: notrace.

17 Traza del motor de inferencia. Traza. Traza de?- f 2(1,Y).?- f_2(1,y). Call: ( 7) f_2(1, _G118)? Call: ( 8) 1<3? Exit: ( 8) 1<3? Exit: ( 7) f_2(1, 0)? Y = 0 ; No

18 Traza del motor de inferencia. Árbol.

19 Eliminación de cortes. Programa. Programa f_3(x,0) :- X < 3. f_3(x,2) :- X < 6. f_3(x,4).

20 Eliminación de cortes. Comportamiento. Respuestas a f 3(1,Y)?- f_3(1,y). Y = 0 ; Y = 2 ; Y = 4 ; No

21 Eliminación de cortes. Árbol. Cambia la semántica? Cuál es la conclusión?

22 Problemas del corte Veamos el siguiente ejemplo (cálculo max): Programa sin corte maximo_1(x,y,x) :- X >= Y. maximo_1(x,y,y) :- X < Y. Prueba:?- maximo_1(3,2,m). Cómo adaptar este programa para evitar trabajo innecesario?

23 Problemas del corte. Máximo. Programa con corte maximo_2(x,y,x) :- X >= Y,!. maximo_2(x,y,y).

24 Problemas del corte. Comportamiento. Sesión?- maximo_1(3,5,x). X = 5 ; No?- maximo_2(3,5,x). X = 5 ; No?- maximo_1(3,2,2). No?- maximo_2(3,2,2). Yes

25 Problemas del corte. Orden. Comentario: eficiencia vs. Semántica: Es más eficiente para calcular el máximo. No nos vale como predicado para verificar si un número es el máximo de dos números dados. Ojo con no alterar la semántica deseada (en función del objetivo perseguido).

26 Ejemplo ilustrativo: notas Clasificación en categorías Programa sin corte nota_1(x,suspenso) :- X < 5. nota_1(x,aprobado) :- X >= 5, X < 7. nota_1(x,notable) :- X >= 7, X < 9. nota_1(x,sobresaliente) :- X >= 9. Sesión?- nota_1(7.3,y). Y = notable ; No Es correcto? es eficiente? Pensemos en mejorar el programa.

27 Ejemplo ilustrativo: notas Programa con corte nota_2(x,suspenso) :- X < 5,!. nota_2(x,aprobado) :- X < 7,!. nota_2(x,notable) :- X < 9,!. nota_2(x,sobresaliente). Sesión?- nota_2(7.3,y). Y = notable ; No Es eficiente? Es correcto? Cuál es el objetivo? Es equivalente al anterior?

28 Ejemplo ilustrativo: notas Con qué nota se corresponde un 6? Qué devuelve nota(6,sobresaliente).?

29 Uso del corte para respuesta única. member y memberchk. Comportamiento. Diferencia entre member y memberchk? member (X, [ a, b, a, c ] ), X=a. X = a ; X = a ; No? memberchk(x, [ a, b, a, c ] ), X=a. X = a ; No

30 Uso del corte para respuesta única. member y memberchk. Definición. member (X, [ X _ ] ). member (X, [ _ L ] ) : member (X, L ). memberchk(x, [ X _ ] ) :!. memberchk(x, [ _ L ] ) : memberchk(x, L ).

31 La negación como fallo Mediante el corte se puede definir la negación como fallo: para demostrar la negación de una propiedad P, se intenta demostrar P: si se consigue entonces no se tiene la negación y si no se consigue entonces se tiene la negación.

32 La negación como fallo. El predicado not. Definición de la negación como fallo (not): no(p) : P,!, fail. no(p). donde fail es un átomo que siempre es falso.

33 La negación como fallo. Formalización. aprobado(x):- no(suspenso(x)), matriculado(x). % R1 matriculado(juan). % R2 matriculado(luis). % R3 suspenso(juan). % R4

34 La negación como fallo. Comportamiento.?- aprobado(luis). Yes?- aprobado(x). No

35 La negación como fallo. Árbol de deducción (I).

36 La negación como fallo. Árbol de deducción (II).

37 La negación como fallo. Programa ejemplo Solución: aprobado(x):- matriculado(x), no(suspenso(x)). % R1 matriculado(juan). % R2 matriculado(luis). % R3 suspenso(juan). % R4 Sesión:?- aprobado(luis). Yes?- aprobado(x). X=luis

38 La negación como fallo. Formalización. Solución. aprobado(x):- matriculado(x), no(suspenso(x)). % R1 matriculado(juan). % R2 matriculado(luis). % R3 suspenso(juan). % R4

39 La negación como fallo. Formalización. Solución. Sesión.?- aprobado(luis). Yes?- aprobado(x). X=luis

40 La negación como fallo. Conclusiones. Cuando se utiliza el corte, el orden de las reglas y de los literales es relevante.

41 La negación como fallo. Formalización. Solución. Árbol.

Programación declarativa ( )

Programación declarativa ( ) 1 / 24 Programación declarativa (2007 08) Tema 9: Retroceso, corte y negación José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla

Más detalles

Tema 4: Programación lógica y Prolog

Tema 4: Programación lógica y Prolog Razonamiento Automático Curso 999 2000 Tema 4: Programación lógica y Prolog José A. Alonso Jiménez Miguel A. Gutiérrez Naranjo Dpto. de Ciencias de la Computación e Inteligencia Artificial Universidad

Más detalles

Programación lógica Curso Tema 2: Prolog. José A. Alonso Jiménez.

Programación lógica Curso Tema 2: Prolog. José A. Alonso Jiménez. Programación lógica Curso 2002 03 Tema 2: Prolog José A. Alonso Jiménez Jose-Antonio.Alonso@cs.us.es http://www.cs.us.es/ jalonso Dpto. de Ciencias de la Computación e Inteligencia Artificial Universidad

Más detalles

Tema 4: Corte, negación, tipos, acumuladores y segundo orden

Tema 4: Corte, negación, tipos, acumuladores y segundo orden Programación Declarativa Curso 200 2002 Tema 4: Corte, negación, tipos, acumuladores y segundo orden José A. Alonso Jiménez Miguel A. Gutiérrez Naranjo Dpto. de Ciencias de la Computación e Inteligencia

Más detalles

Tema 15: Programación lógica con Prolog

Tema 15: Programación lógica con Prolog Tema 15: Programación lógica con Prolog Programación declarativa (2009 10) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla

Más detalles

Deducción automática

Deducción automática Deducción automática (Vol. 1: Construcción lógica de sistemas lógicos) José A. Alonso Jiménez y Joaquín Borrego Díaz Dpto. de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla

Más detalles

Introducción a la programación lógica con Prolog

Introducción a la programación lógica con Prolog Introducción a la programación lógica con Prolog José A. Alonso Jiménez Grupo de Lógica Computacional Dpto. de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Sevilla, 17 de

Más detalles

Aritmética y operadores (2011/2012)

Aritmética y operadores (2011/2012) Luis Valencia Cabrera (coordinador) lvalencia@us.es (http://www.cs.us.es/~lvalencia) Manuel García-Quismondo mgarciaquismondo@us.es (http://www.cs.us.es/~mgarcia) Ciencias de la Computacion e IA (http://www.cs.us.es/)

Más detalles

Tema 11.- Reevaluación y el corte

Tema 11.- Reevaluación y el corte UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO LENGUAJES DE INTELIGENCIA ARTIFICIAL INGENIGERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN INGENIERÍA TÉCNICA

Más detalles

- Bases de Datos (2012/2013) Adjunto Tema 1: Ampliación DER (2)

- Bases de Datos (2012/2013) Adjunto Tema 1: Ampliación DER (2) Luis Valencia Cabrera lvalencia@us.es (http://www.cs.us.es/~lvalencia) Ciencias de la Computación e IA (http://www.cs.us.es/) Universidad de Sevilla - Bases de Datos (2012/2013) Adjunto Tema 1: Ampliación

Más detalles

Tema 6: Representación lógica del conocimiento

Tema 6: Representación lógica del conocimiento Inteligencia Artificial Curso 999 2000 Tema 6: Representación lógica del conocimiento José A. Alonso Jiménez Miguel A. Gutiérrez Naranjo Francisco J. Martín Mateos Dpto. de Ciencias de la Computación e

Más detalles

- Bases de Datos (2012/2013) Adjunto Tema 1: Ampliación DER

- Bases de Datos (2012/2013) Adjunto Tema 1: Ampliación DER Luis Valencia Cabrera lvalencia@us.es (http://www.cs.us.es/~lvalencia) Ciencias de la Computación e IA (http://www.cs.us.es/) Universidad de Sevilla - Bases de Datos (2012/2013) Adjunto Tema 1: Ampliación

Más detalles

Metodología de Programación I Corte y Aritmética

Metodología de Programación I Corte y Aritmética Metodología de Programación I Corte y Aritmética Dr. Alejandro Guerra-Hernández Departamento de Inteligencia Artificial Facultad de Física e Inteligencia Artificial aguerra@uv.mx http://www.uv.mx/aguerra

Más detalles

Inteligencia en Redes de Comunicaciones. Prolog. Julio Villena Román.

Inteligencia en Redes de Comunicaciones. Prolog. Julio Villena Román. Inteligencia en Redes de Comunicaciones Prolog Julio Villena Román jvillena@it.uc3m.es Prolog La lógica proporciona: un lenguaje base para la representación del conocimiento modelos para el razonamiento

Más detalles

Tema 2: Listas, aritmética y operadores

Tema 2: Listas, aritmética y operadores Programación Declarativa Curso 200 2002 Tema 2: Listas, aritmética y operadores José A. Alonso Jiménez Miguel A. Gutiérrez Naranjo Dpto. de Ciencias de la Computación e Inteligencia Artificial Universidad

Más detalles

Soluciones del examen de Lógica informática (Grupos 1 y 2) del 23 de Septiembre de José A. Alonso Jiménez

Soluciones del examen de Lógica informática (Grupos 1 y 2) del 23 de Septiembre de José A. Alonso Jiménez Soluciones del examen de Lógica informática (Grupos 1 y 2) del 23 de Septiembre de 2005 José A. Alonso Jiménez Grupo de Lógica Computacional Dpto. de Ciencias de la Computación e Inteligencia Artificial

Más detalles

Implementación Prolog de un SBC basado en reglas (2011/2012)

Implementación Prolog de un SBC basado en reglas (2011/2012) Luis Valencia Cabrera (coordinador) lvalencia@us.es (http://www.cs.us.es/~lvalencia) Manuel García-Quismondo mgarciaquismondo@us.es (http://www.cs.us.es/~mgarcia) Ciencias de la Computacion e IA (http://www.cs.us.es/)

Más detalles

Programación Lógica. rafael ramirez. Ocata 320

Programación Lógica. rafael ramirez. Ocata 320 Programación Lógica rafael ramirez rafael@iua.upf.es Ocata 320 Logica proposicional Una literal (proposicional) es una variable proposicional o la negacion de una variable proposicional: p, q, r, Una cláusula

Más detalles

Introducción a PROLOG

Introducción a PROLOG Inteligencia Artificial II Curso 2003 2004 Introducción a PROLOG Carmen Graciani Díaz José L. Ruiz Reina Dpto. de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla IA-II 2003

Más detalles

- Bases de Datos (2012/2013) Adjunto Tema 1: Ampliación DER (3)

- Bases de Datos (2012/2013) Adjunto Tema 1: Ampliación DER (3) Luis Valencia Cabrera lvalencia@us.es (http://www.cs.us.es/~lvalencia) Ciencias de la Computación e IA (http://www.cs.us.es/) Universidad de Sevilla - Bases de Datos (2012/2013) Adjunto Tema 1: Ampliación

Más detalles

Semántica Operacional para la Programación en Lógica Lógica para Ciencias de la Computación

Semántica Operacional para la Programación en Lógica Lógica para Ciencias de la Computación Semántica Operacional para la Programación en Lógica Lógica para Ciencias de la Computación Primer Cuatrimestre de 2009 Material Adicional Semánticas para la Programación n en LógicaL Se han explorado

Más detalles

Tema 1: El sistema deductivo de Prolog

Tema 1: El sistema deductivo de Prolog Programación lógica Curso 2004 05 Tema : El sistema deductivo de Prolog José A. Alonso Jiménez Jose-Antonio.Alonso@cs.us.es http://www.cs.us.es/ jalonso Dpto. de Ciencias de la Computación e Inteligencia

Más detalles

Tema 4. Control en PROLOG

Tema 4. Control en PROLOG Tema 4. Control en PROLOG 1. Cómo se satisface/resatisface un objetivo? 2. Procedimientos iterativos 3. El predicado corte (!) 4. Aplicaciones del predicado corte 1. Confirmación n de una regla 2. Combinación

Más detalles

Inteligencia en Redes de Comunicaciones - 04a Prolog

Inteligencia en Redes de Comunicaciones - 04a Prolog En este Tema 4a se van a estudiar los fundamentos de Prolog, el lenguaje de programación lógica más extendido. 1 Prolog es un lenguaje de programación para representar conocimiento y realizar razonamientos

Más detalles

Temas de Programación lógica e I.A. José A. Alonso Jiménez

Temas de Programación lógica e I.A. José A. Alonso Jiménez Temas de Programación lógica e I.A. José A. Alonso Jiménez Grupo de Lógica Computacional Dpto. de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Sevilla, 2 de febrero de 203

Más detalles

Bases de Datos Presentación de la asignatura (2013/2014)

Bases de Datos Presentación de la asignatura (2013/2014) Luis Valencia Cabrera lvalencia@us.es (http://www.cs.us.es/~lvalencia) Ciencias de la Computación e IA (http://www.cs.us.es/) Bases de Datos Presentación de la asignatura (2013/2014) Universidad de Sevilla

Más detalles

Introducción general al Lenguaje C (2010/2011)

Introducción general al Lenguaje C (2010/2011) Luis Valencia Cabrera lvalencia@us.es (http://www.cs.us.es/~lvalencia) Ciencias de la Computacion e IA (http://www.cs.us.es/) Introducción general al Lenguaje C (2010/2011) Universidad de Sevilla Índice

Más detalles

Programación en PROLOG(1)

Programación en PROLOG(1) Programación en PROLOG(1) Inteligencia Artificial 2º cuatrimestre de 2008 Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Prolog Es el representante más conocido del

Más detalles

Inteligencia Artificial 2º cuatrimestre de 2009

Inteligencia Artificial 2º cuatrimestre de 2009 Programación en PROLOG(1) Inteligencia Artificial 2º cuatrimestre de 2009 Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Prolog Es el representante más conocido del

Más detalles

Control en Prolog. Control

Control en Prolog. Control Control sobre La búsqueda El retroceso La unificación Aplicaciones. Control en Prolog Recorrido sobre grafos Sin repetir nodo Sin repetir arco Control La búsqueda mediante un predicado sin argumentos!

Más detalles

Bases de Datos Presentación de la asignatura (2014/2015)

Bases de Datos Presentación de la asignatura (2014/2015) Bases de Datos Presentación de la asignatura (2014/2015) Luis Valencia Cabrera lvalencia@us.es (http://www.cs.us.es/~lvalencia) Ciencias de la Computación e IA (http://www.cs.us.es/) Universidad de Sevilla

Más detalles

Programación n en Prolog

Programación n en Prolog Programación n Declarativa: Lógica y Restricciones Conceptos Básicos B de la Programación n en Prolog Mari Carmen Suárez de Figueroa Baonza mcsuarez@fi.upm.es Contenidos Unificación Estructuras de datos

Más detalles

Ratones amaestrados: control de la búsqueda.

Ratones amaestrados: control de la búsqueda. Ratones amaestrados: control de la búsqueda. 1 / 12 El predicado de corte! El predicado! (leído corte) proporciona control sobre el mecanismo de backtracking de Prolog: siempre tiene éxito pero tiene el

Más detalles

Representación del conocimiento mediante reglas (2010/2011)

Representación del conocimiento mediante reglas (2010/2011) Luis Valencia Cabrera lvalencia@us.es (http://www.cs.us.es/~lvalencia) Ciencias de la Computacion e IA (http://www.cs.us.es/) Representación del conocimiento mediante reglas (2010/2011) Universidad de

Más detalles

Métodos de Inteligencia Artificial

Métodos de Inteligencia Artificial Métodos de Inteligencia Artificial L. Enrique Sucar (INAOE) esucar@inaoep.mx ccc.inaoep.mx/esucar Tecnologías de Información UPAEP Contenido Lógica proposicional Lógica de predicados Inferencia en lógica

Más detalles

Tema 14: Sustitución y Unificación

Tema 14: Sustitución y Unificación Facultad de Informática Grado en Ingeniería Informática Lógica PARTE 4: RESOLUCIÓN Tema 14: Sustitución y Unificación Profesor: Javier Bajo jbajo@fi.upm.es Madrid, España 04/12/2012 Introducción. 2/12

Más detalles

Inteligencia Artificial 2º cuatrimestre de 2009

Inteligencia Artificial 2º cuatrimestre de 2009 Programación en PROLOG(2) Inteligencia Artificial 2º cuatrimestre de 2009 Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Operador de corte (cut): Motivaciones Prolog

Más detalles

Programación Lógica. David Barrera Steven Bustos Jhonatan Guzmán

Programación Lógica. David Barrera Steven Bustos Jhonatan Guzmán Programación Lógica David Barrera Steven Bustos Jhonatan Guzmán Programación Lógica axiomas Datos Reglas Programación Lógica Relaciones vs Funciones Funciones Relaciones Determinista Único patrón de entradas

Más detalles

1. Formas normales en lógica de proposiciones FORMAS NORMALES. Índice. César Ignacio García Osorio Definiciones. Lógica

1. Formas normales en lógica de proposiciones FORMAS NORMALES. Índice. César Ignacio García Osorio Definiciones. Lógica Lógica Índice FORMAS NORMALES César Ignacio García Osorio 1. Formas normales en lógica de proposiciones Gracias a las leyes asociativas los paréntesis en (F (G H)) oen((f G) H) pueden eliminarse, es decir,

Más detalles

Representación del conocimiento mediante reglas (2011/2012)

Representación del conocimiento mediante reglas (2011/2012) Luis Valencia Cabrera (coordinador) lvalencia@us.es (http://www.cs.us.es/~lvalencia) Manuel García-Quismondo mgarciaquismondo@us.es (http://www.cs.us.es/~mgarcia) Ciencias de la Computacion e IA (http://www.cs.us.es/)

Más detalles

3 CLÁUSULAS Y PROGRAMAS DEFINITIVOS

3 CLÁUSULAS Y PROGRAMAS DEFINITIVOS 3 CLÁUSULAS Y PROGRAMAS DEFINITIVOS La idea central de la Programación Lógica es usar la computadora para obtener conclusiones a partir de descripciones declarativas, como las introducidas en el capítulo

Más detalles

Tema 1. Introducción al PROLOG. 1. Qué es el PROLOG? 2. Los elementos de PROLOG 3. Un programa de ejemplo 4. Ejercicios propuestos

Tema 1. Introducción al PROLOG. 1. Qué es el PROLOG? 2. Los elementos de PROLOG 3. Un programa de ejemplo 4. Ejercicios propuestos Tema 1. Introducción al PROLOG 1. Qué es el PROLOG? 2. Los elementos de PROLOG 3. Un programa de ejemplo 4. Ejercicios propuestos 1. Qué es el PROLOG? 1.1. Un poco de historia PROgramming in LOGic Desarrollado

Más detalles

Lógica en Ciencias de la Computación. Caso de estudio: PROLOG

Lógica en Ciencias de la Computación. Caso de estudio: PROLOG Lógica en Ciencias de la Computación. Caso de estudio: PROLOG UCAB / USB Papel de la Lógica L en Informática Formación: Menos discurso, más razonamiento Área genérica que aplica a múltiples dominios de

Más detalles

Prolog. Sintaxis Informal. Sintaxis Informal. Hechos: ejemplos. Inteligencia Artificial 2º cuatrimestre de Hechos. Hechos. Reglas.

Prolog. Sintaxis Informal. Sintaxis Informal. Hechos: ejemplos. Inteligencia Artificial 2º cuatrimestre de Hechos. Hechos. Reglas. Prolog Programación en PROLOG(1) Inteligencia Artificial 2º cuatrimestre de 2009 Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Es el representante más cocido del

Más detalles

Tema 1: Revisión de Prolog

Tema 1: Revisión de Prolog Razonamiento Automático Curso 999 2000 Tema : Revisión de Prolog José A. Alonso Jiménez Miguel A. Gutiérrez Naranjo Dpto. de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla

Más detalles

LÓGICA FORMAL TEORIAS DE PRIMER ORDEN. Sintaxis y semántica

LÓGICA FORMAL TEORIAS DE PRIMER ORDEN. Sintaxis y semántica LÓGICA FORMAL TEORIAS DE PRIMER ORDEN Sintaxis y semántica Pedro López Departamento de Inteligencia Artificial Facultad de Informática Universidad Politécnica de Madrid Lenguajes de primer orden 1 La lógica

Más detalles

Inteligencia Artificial II Prolog I

Inteligencia Artificial II Prolog I Inteligencia Artificial II Prolog I Dr. Alejandro Guerra-Hernández Universidad Veracruzana Centro de Investigación en Inteligencia Artificial mailto:aguerra@uv.mx http://www.uv.mx/personal/aguerra Maestría

Más detalles

Programas mutantes: manipulación de la base de conocimiento

Programas mutantes: manipulación de la base de conocimiento Programas mutantes: manipulación de la base de conocimiento 1 / 30 Programas mutantes Una de las razones por las que Prolog está tan ligado a la inteligencia artificial es por su capacidad para permitir

Más detalles

PROGRAMACIÓN LÓGICA. Luis Eduardo Martín De La Peña Anni Alejandra Piragauta Urrea

PROGRAMACIÓN LÓGICA. Luis Eduardo Martín De La Peña Anni Alejandra Piragauta Urrea PROGRAMACIÓN LÓGICA Luis Eduardo Martín De La Peña Anni Alejandra Piragauta Urrea CONTENIDO 1.Introducción 1. Paradigma de programación 2. Historia 3. Filosofía del paradigma. 2. 1. Qué es? 2. Conceptos

Más detalles

ALTERNATIVAS DE REPRESENTACIÓN DE CONOCIMIENTOS

ALTERNATIVAS DE REPRESENTACIÓN DE CONOCIMIENTOS ALTERNATIVAS DE REPRESENTACIÓN DE CONOCIMIENTOS Redes semánticas. Marcos (Frames). Cálculo de Predicados. Redes Neuronales. Reglas de Producción. (if - then) RED SEMÁNTICA Método de representación de conocimientos

Más detalles

23/09/2009. Introducción Hello word La familia Buendía Recursión Listas

23/09/2009. Introducción Hello word La familia Buendía Recursión Listas Prolog Contenido Introducción Hello word La familia Buendía Recursión Listas Qué es Prolog? Lenguaje de programación Declarativo Programación lógica Está compuesto de: Hechos Reglas Declarativo vs Imperativo

Más detalles

6 CORTE Y ARITMÉTICA. Ejemplo 24 Asumamos el siguiente programa que define que el padre de una persona es su antecesor hombre:

6 CORTE Y ARITMÉTICA. Ejemplo 24 Asumamos el siguiente programa que define que el padre de una persona es su antecesor hombre: 6 CORTE Y ARITMÉTICA La computación de un programa lógico requiere la construcción y recorrido de un árbol-sld. Esto no es necesariamente la forma más eficiente de computación, por lo que en esta clase

Más detalles

Operador de corte (cut): Motivaciones. Cut (!): Definición formal. Cut (!): Implicancias de la Definición. Cut (!): Ejemplo. Aplicaciones. b,!

Operador de corte (cut): Motivaciones. Cut (!): Definición formal. Cut (!): Implicancias de la Definición. Cut (!): Ejemplo. Aplicaciones. b,! Operador de corte (cut): Motivaciones Programación en PROLOG(2) Prolog es un lenguaje de programación altamente declarativo. Inteligencia Artificial 2º cuatrimestre de 2008 Departamento de Ciencias e Ingeniería

Más detalles

G e 1,7. LI Examen de Lógica informática (7 de Junio de 2004) 1. Ejercicio 1. Probar (E F ) G = (E G) (F G) (a) Mediante deducción natural.

G e 1,7. LI Examen de Lógica informática (7 de Junio de 2004) 1. Ejercicio 1. Probar (E F ) G = (E G) (F G) (a) Mediante deducción natural. LI 2003 04 Examen de Lógica informática (7 de Junio de 2004) 1 Ejercicio 1. Probar (E F ) G = (E G) (F G) (a) Mediante deducción natural. (b) Por resolución. Solución del apartado (a): Demostración por

Más detalles

Operador de corte (cut): Motivaciones. Cut (!): Definición formal. Cut (!): Implicancias de la Definición. Aplicaciones. Cut (!): Ejemplo. b,!

Operador de corte (cut): Motivaciones. Cut (!): Definición formal. Cut (!): Implicancias de la Definición. Aplicaciones. Cut (!): Ejemplo. b,! Operador de corte (cut): Motivaciones Programación en PROLOG(2) Inteligencia Artificial 2º cuatrimestre de 2009 Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Prolog

Más detalles

Tema 3: Introducción a Prolog

Tema 3: Introducción a Prolog Introducción a la Inteligencia Artificial Curso 2010 2011 Tema 3: Introducción a Prolog Miguel A. Gutiérrez Naranjo Dpto. de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla

Más detalles

Entorno y herraminetas

Entorno y herraminetas PROGRAMACIÓN LÓGICA I. Sistemas para la programación lógica. II. Programación elemental con bases de datos y programación recursiva. III. Programación con listas y árboles. IV. Control explícito en Prolog.

Más detalles

Práctica II. Prolog II: Meta Intérprete Vanilla

Práctica II. Prolog II: Meta Intérprete Vanilla Práctica II Prolog II: Meta Intérprete Vanilla Contenido 1. Meta intérpretes. 2. Meta intérprete vanilla para cláusulas definidas. 3. Extensión vanilla predicados predefinidos. 4. Extensión vanilla pruebas.

Más detalles

Índice. Semántica. Sintaxis ASP. Introducción a Answer Set Programming (I) 2.- Programas Lógicos con Negación. 1.- Programas lógicos sin negación

Índice. Semántica. Sintaxis ASP. Introducción a Answer Set Programming (I) 2.- Programas Lógicos con Negación. 1.- Programas lógicos sin negación Índice Introducción a Answer Set Programming (I) Rafael Caballero Roldán Máster: Extensiones de Programación Lógica Objetivos Programas estratificados Semántica de punto fijo de los programas Datalog Sintaxis

Más detalles

Tema 3.- Predicados y sentencias condicionales

Tema 3.- Predicados y sentencias condicionales UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO PROGRAMACIÓN DECLARATIVA INGENIERÍA INFORMÁTICA ESPECIALIDAD DE COMPUTACIÓN CUARTO CURSO PRIMER

Más detalles

INTELIGENCIA ARTIFICIAL II

INTELIGENCIA ARTIFICIAL II ESCUELA SUPERIOR POLITÉCNICA AGROPECUARIA DE MANABÍ MANUEL FÉLIX LÓPEZ CARRERA INFORMÁTICA SEMESTRE SÉPTIMO PERIODO ABR. /SEP.-2015 INTELIGENCIA ARTIFICIAL II TEMA: RESUMEN#6: INTRODUCCIÓN A PRÓLOG AUTORA:

Más detalles

Introducción a la Programación Lógica. Ingeniería Informática Departamento de Lenguajes y Ciencias de la Computación Universidad de Málaga

Introducción a la Programación Lógica. Ingeniería Informática Departamento de Lenguajes y Ciencias de la Computación Universidad de Málaga Introducción a la Programación Lógica Ingeniería Informática Departamento de Lenguajes y Ciencias de la Computación Universidad de Málaga Programming in Prolog opens the mid to a new way of looking at

Más detalles

3.2. Control con cortes Operador corte Cortes verdes Cortes rojos

3.2. Control con cortes Operador corte Cortes verdes Cortes rojos 3. CONTROL en la PROGRAMACIÓN LOGICA 45 Tema 3. CONTROL en la PROGRAMACION LOGICA 3.1. Control mediante el Orden en literales y sentencias 3.2. Control con cortes 3.2.1. Operador corte 3.2.2. Cortes verdes

Más detalles

Material para el curso de Lógica (primavera 2016)

Material para el curso de Lógica (primavera 2016) Material para el curso de Lógica (primavera 2016) Facultad de Filosofía, Universidad de Sevilla Última modificación: 18 Junio 2016. Detalles prácticos Curso impartido por Fernando R. Velázquez Quesada.

Más detalles

Lógica proposicional

Lógica proposicional Lógica proposicional La palabra lógica viene del griego y significa, razón, tratado o ciencia. En matemáticas es la ciencia que estudia los métodos de razonamiento proporciona reglas y técnicas para determinar

Más detalles

PROGRAMACIÓN LÓGICA. David Felipe Rico Hernandez Gabriel Esteban Bejarano Delgado

PROGRAMACIÓN LÓGICA. David Felipe Rico Hernandez Gabriel Esteban Bejarano Delgado PROGRAMACIÓN LÓGICA David Felipe Rico Hernandez Gabriel Esteban Bejarano Delgado Introducción Programación Lógica Conceptos clave Lenguajes de programación Ejemplos Ventajas y desventajas Aplicaciones

Más detalles

Cómo Implementar una Ontología? Prolog Datalog Description Logic

Cómo Implementar una Ontología? Prolog Datalog Description Logic Cómo Implementar una Ontología? Prolog Datalog Description Logic Reglas como LPO CláusulaHorn: Una cláusula con a lo sumo un literal positivo Cláusulas: Subconjuntos de LPO con la siguiente forma: x 1,.,x

Más detalles

Derivadas laterales. Derivabilidad y continuidad en un punto. Derivabilidad y continuidad en un intervalo

Derivadas laterales. Derivabilidad y continuidad en un punto. Derivabilidad y continuidad en un intervalo Derivadas laterales Se define la derivada por la izquierda de f(x) en el punto x = a : Se define la derivada por la derecha de f(x) en el punto x = a : A ambas derivadas se les llama derivadas laterales.

Más detalles

Paradigma lógico Lógica proposicional Resolución. Programación Lógica. Eduardo Bonelli. Departamento de Computación FCEyN UBA. 10 de octubre, 2006

Paradigma lógico Lógica proposicional Resolución. Programación Lógica. Eduardo Bonelli. Departamento de Computación FCEyN UBA. 10 de octubre, 2006 Departamento de Computación FCEyN UBA 10 de octubre, 2006 Prolog Se basa en el uso de la lógica como un lenguaje de programación Se especifican ciertos hechos y reglas de inferencia un objetivo ( goal

Más detalles

Lógica informática ( )

Lógica informática ( ) Lógica informática (2008 09) Tema 5: Tableros semánticos José A. Alonso Jiménez María J. Hidalgo Doblado Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla

Más detalles

Lógica de predicados 4. Árboles

Lógica de predicados 4. Árboles Lógica de predicados 4. Árboles Juan Carlos León Universidad de Murcia Esquema del tema 4.1. Reglas de inferencia 4.2. Rutina mecánica 4.3. Árboles e interpretaciones 4.4. Árboles infinitos 1 4.1. Reglas

Más detalles

Lenguajes lógicos: cláusulas de Horn

Lenguajes lógicos: cláusulas de Horn Lenguajes lógicos: cláusulas de Horn Lenguaje subyacente: FOL ( first order logic ) Atomos: p(t 1,...,t n ) p símbolo de predicado y t i término (i = 1,...,n) símbolo de variable (X, Y,..) t término símbolo

Más detalles

Programación lógica con árboles. Introducción. Contenido. Introducción. 1. Programación con árboles 2. Otras estructuras arbóreas

Programación lógica con árboles. Introducción. Contenido. Introducción. 1. Programación con árboles 2. Otras estructuras arbóreas Contenido 1. Programación con árboles 2. Otras estructuras arbóreas Ingeniería Informática Ingeniería Técnica en Informática Departamento de Lenguajes y Ciencias de la Computación Universidad de Málaga

Más detalles

Tema 4: (Tecnologías Informáticas) Curso Dpto. Ciencias de la Computación Inteligencia Artificial Universidad de Sevilla

Tema 4: (Tecnologías Informáticas) Curso Dpto. Ciencias de la Computación Inteligencia Artificial Universidad de Sevilla Tema 4: Proposicional Dpto. Ciencias de la Computación Inteligencia Artificial Universidad de Sevilla Lógica Informática (Tecnologías Informáticas) Curso 2015 16 Contenido Los tableros semánticos proporcionan

Más detalles

Predicados Básicos de Prolog TAII(I) - Curso

Predicados Básicos de Prolog TAII(I) - Curso Predicados Básicos de Prolog TAII(I) - Curso 2005-2006 Existe un conjunto de predicados predefinidos en Prolog que podrás utilizar en tus programas para realizar operaciones de entrada/salida, trabajar

Más detalles

Lógica como Representación. Dr. Eduardo Morales/Dr. Enrique Súcar

Lógica como Representación. Dr. Eduardo Morales/Dr. Enrique Súcar Lógica como Representación Dr. Eduardo Morales/Dr. Enrique Súcar Importante: Que las cosas que queremos que sean verdaderas coincidan con las que podemos probar Es decir: lo que nos implica la teoría

Más detalles

Programación lógica. Paradigmas de la Programación FaMAF- UNC 2015 capítulo 15 Mitchell basado en filminas de Vitaly ShmaEkov

Programación lógica. Paradigmas de la Programación FaMAF- UNC 2015 capítulo 15 Mitchell basado en filminas de Vitaly ShmaEkov Programación lógica Paradigmas de la Programación FaMAF- UNC 2015 capítulo 15 Mitchell basado en filminas de Vitaly ShmaEkov algunas referencias hip://www.learnprolognow.org/ hip://cs.famaf.unc.edu.ar/wiki/doku.php?

Más detalles

MÉTODOS DE INVESTIGACIÓN EN EDUCACIÓN. Tema 8

MÉTODOS DE INVESTIGACIÓN EN EDUCACIÓN. Tema 8 Métodos de Investigación en Educación 1º Psicopedagogía Grupo Mañana Curso 009-010 010 MÉTODOS DE INVESTIGACIÓN EN EDUCACIÓN Tema 8 La relación entre variables. Los índices de correlación Objetivos Definir

Más detalles

Introducción a ASP (Answer Set Programming - programación con conjuntos respuestos)

Introducción a ASP (Answer Set Programming - programación con conjuntos respuestos) Introducción a ASP (Answer Set Programming - programación con conjuntos respuestos) Inteligencia Artificial David Pearce 13 de enero de 2009 ASP y programación declarativa ASP es una forma de programación

Más detalles

Trabajo Práctico N o 1 - Programación Lógica Fecha de entrega: 19/05/2005 hasta las 21hs

Trabajo Práctico N o 1 - Programación Lógica Fecha de entrega: 19/05/2005 hasta las 21hs Trabajo Práctico N o 1 - Programación Lógica Fecha de entrega: 19/05/2005 hasta las 21hs Razonando con lenguajes naturales El objetivo de este trabajo práctico consiste en analizar sintácticamente un pequeño

Más detalles

Tema 4.- Recursión e iteración

Tema 4.- Recursión e iteración UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO PROGRAMACIÓN DECLARATIVA INGENIERÍA INFORMÁTICA ESPECIALIDAD DE COMPUTACIÓN CUARTO CURSO PRIMER

Más detalles

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

Introducción. Paradigma de Lógica Gran importancia en la I.A. Origen: prueba de teoremas y razonamiento deductivo. Lógica. Tema 2: Lógica y Razonamiento Automático tico Introducción Lógica Proposicional Lógica de Predicados Axiomas Unificación Razonamiento automático e Inferencias lógicas Resolución Regla de Inferencia Refutación

Más detalles

Programación declarativa ( )

Programación declarativa ( ) Programación declarativa (2004 05) Tema 2: Listas, operadores y aritmética José A. Alonso Jiménez Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla PD (2004 05) Tema 2 p.

Más detalles

Prolog: Listas (y II) MRC

Prolog: Listas (y II) MRC Prolog: Listas (y II) MRC Víctor Peinado v.peinado@filol.ucm.es 11 de diciembre de 2014 Referencias (Blackburn, et al., 2006, chap. 6) 1 1 Blackburn, P., Bos, J., Striegnitz, K. Learn Prolog Now!. College

Más detalles

Tema II: El modelo relacional de datos. (2.3) El modelo relacional de datos. Objetivos:

Tema II: El modelo relacional de datos. (2.3) El modelo relacional de datos. Objetivos: El modelo relacional de datos. Tema II: El modelo relacional de datos. (2.3) Objetivos: conocer las estructuras de datos del modelo: la tupla y la relación. conocer básicamente la forma de modelar la realidad

Más detalles

Lógica y bases de datos

Lógica y bases de datos Lógica y bases de datos Parte I: Programación lógica Matilde Celma Giménez Laura Mota Herranz Juan Carlos Casamayor Ródenas Departamento de Sistemas Informáticos y Computación Universidad Politécnica de

Más detalles

Tema 6: Teoría Semántica

Tema 6: Teoría Semántica Tema 6: Teoría Semántica Sintáxis Lenguaje de de las las proposiciones Lenguaje de de los los predicados Semántica Valores Valores de de verdad verdad Tablas Tablas de de verdad verdad Tautologías Satisfacibilidad

Más detalles

Algoritmo de unificación de Robinson

Algoritmo de unificación de Robinson Capítulo 1 Algoritmo de unificación de Robinson 1.0 Introducción Con objeto de encontrar el unificador de máxima generalidad de dos términos se han propuesto numerosos algoritmos siendo el más conocido

Más detalles

Las redes semánticas son: a. Una extensión de la lógica de predicados b. Una extensión de los frames c. Un conjunto conexo de OAV

Las redes semánticas son: a. Una extensión de la lógica de predicados b. Una extensión de los frames c. Un conjunto conexo de OAV Las redes semánticas son: a. Una extensión de la lógica de predicados b. Una extensión de los frames c. Un conjunto conexo de OAV El algoritmo de PodaAlfaBeta busca: a. Determinar los caminos más óptimos.

Más detalles

INTRODUCCIÓN BÁSICA. Ingeniería Informática AL PROLOG. Departamento de Informática

INTRODUCCIÓN BÁSICA. Ingeniería Informática AL PROLOG. Departamento de Informática INTRODUCCIÓN BÁSICA AL PROLOG Ingeniería Informática Departamento de Informática PRÓLOGO Esta introducción al Prolog está pensada para las prácticas de la asignatura de Matemática Discreta de la Universitat

Más detalles

INTRODUCCIÓN BÁSICA. Ingeniería Informática AL PROLOG. Departamento de Informática

INTRODUCCIÓN BÁSICA. Ingeniería Informática AL PROLOG. Departamento de Informática INTRODUCCIÓN BÁSICA AL PROLOG Ingeniería Informática Departamento de Informática PRÓLOGO Esta introducción al Prolog está pensada para las prácticas de la asignatura de Matemática Discreta de la Universitat

Más detalles

Programación declarativa ( )

Programación declarativa ( ) 1 / 25 Programación declarativa (2007 08) Tema 7: Listas, operadores y aritmética José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla

Más detalles

Tema 8: Formas normales.

Tema 8: Formas normales. Lógica informática Curso 2003 04 Tema 8: Formas normales. Cláusulas José A. Alonso Jiménez Andrés Cordón Franco Dpto. de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla LI 2003

Más detalles

Dr. Carlos A. Coello Coello Departamento de Computación CINVESTAV IPN

Dr. Carlos A. Coello Coello Departamento de Computación CINVESTAV IPN Dr. Carlos A. Coello Coello Departamento de Computación CINVESTAV IPN ccoello@cs.cinvestav.mx Estructuras de Control PROLOG permite un control limitado sobre la forma en que se realiza el retroceso, vía

Más detalles