Programación declarativa ( )

Documentos relacionados
Tema 2: Equivalencias y formas normales

Programación Declarativa Curso Tema 3: Estructuras. José A. Alonso Jiménez Miguel A. Gutiérrez Naranjo

Tema 1: Revisión de Prolog

Tema 3: Tipos y clases

Tema 3: Tipos y clases

CERTIFICADO DE APTITUD PEDAGÓGICA -CAP- 2007/2008

Programación declarativa ( )

Lógica y Programación

Tema 3.- Predicados y sentencias condicionales

Gramáticas lógicas. Programación Lógica InCo

Tema 13: Aplicaciones de programación funcional

Tema 2: Representación de problemas como espacios de estados

Tema AA 1: Introducción a al Aprendizaje Automático

Métodos de Inteligencia Artificial

Introducción a los Computadores (CNM-130) Estructuras selectivas en Matlab

Inteligencia Artificial II: Conocimiento, Razonamiento y Planeación. Presentación del Curso.

LP - Lenguajes de Programación

Programa Analítico Asignatura: Paradigma de Lenguajes

GUÍA DOCENTE DE LA ASIGNATURA

PROYECTO DOCENTE ASIGNATURA: "Lógica Informática"

4. Predicados predefinidos

LICENCIATURA EN SISTEMAS DE INFORMACIÓN. PLANIFICACIÓN (Plan 2011)

Introducción a los Computadores (CNM-130) Estructuras algorítmicas selectivas

Métodos de Inteligencia Artificial

PROLOG es un lenguaje de programación desarrollado bajo las ideas matemáticas

EJERCICIOS RESUELTOS 6

GUÍA DOCENTE DE LA ASIGNATURA

Tema 5: Problemas de satisfacción de restricciones

Lógica informática ( )

Programmacion Declarativa - Prolog:

Problemas de Satisfacción de Restricciones

UNIVERSIDAD DEL VALLE FACULTAD DE INGENIERIA ESCUELA DE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN MAESTRÍA EN INGENIERÍA DE SISTEMAS Y COMPUTACIÓN

ANX-PR/CL/ GUÍA DE APRENDIZAJE. ASIGNATURA Programacion web. CURSO ACADÉMICO - SEMESTRE Segundo semestre

Tema 13: Programas interactivos

Benemérita Universidad Autónoma de Puebla Vicerrectoría de Docencia Dirección General de Educación Superior Facultad de Ciencias de la Computación

Tema 3: Sistema inicial de representación y razonamiento

GRADO EN ADE CURSO

INDICE. XVII Prólogo a la edición en español. XXI 1. Calculo proporcional 1.1. Argumentos y proporciones lógicas

Sistemas Inteligentes de Gestión. Tutorial de PROLOG

Descripción inicial del sistema. Descripción final del sistema. Estado 1 Estado 2 Estado n

Aprendizaje Computacional. Eduardo Morales y Jesús González

7. Programación lógica y Sistemas Expertos

ANX-PR/CL/ GUÍA DE APRENDIZAJE. ASIGNATURA Programacion web. CURSO ACADÉMICO - SEMESTRE Primer semestre

ASIGNATURA: INTELIGENCIA ARTIFICIAL

6. CONTRIBUCIÓN A LA FORMACIÓN PROFESIONAL Y FORMACIÓN GENERAL Esta disciplina contribuye al logro de los siguientes resultados de la carrera:

PROGRAMACIÓN LÓGICA INTRODUCCIÓN. Juan Juárez Fuentes

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

Prolog: Listas (y II) MRC

Inteligencia Artificial Inferencia en lógica

Comunidades virtuales como complemento del currículum

Nombre de la asignatura : Sistemas de Computación Código : Nivel (semestre de la carrera) : 7 : Ingeniería Civil Informática Nº de créditos : 4

1 INTRODUCCIÓN. Cuadro 1: Sistema de lenguaje natural de Colmerauer y Roussel [7].

RECUPERACIÓN DE EXCEL TICO

ASIGNATURA: BIOLOGÍA ANIMAL Y VEGETAL

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

ESCUELA: UNIVERSIDAD DEL ISTMO

PROYECTO DOCENTE ASIGNATURA: "Computabilidad y Complejidad"

Universidad Católica San Pablo Facultad de Ingeniería y Computación Programa Profesional de Ciencia de la Computación SILABO

Curso de Java Introducción a la Programación III

Isabelle como un lenguaje funcional

Introducción a la Computación (para Matemática) Primer Cuatrimestre de 2015

PROGRAMA ANALÍTICO DE ASIGNATURA

ANX-PR/CL/ GUÍA DE APRENDIZAJE. ASIGNATURA Programacion web. CURSO ACADÉMICO - SEMESTRE Segundo semestre

5. Programación lógica y Bases de Datos

OPTATIVA I: MINERIA DE DATOS

PLANIFICACIÓN DE LA DOCENCIA UNIVERSITARIA GUÍA DOCENTE INTRODUCCIÓN Y TEORÍA DE LA COMPUTACIÓN

Tema 2: Introducción a la programación con Haskell

Ampliación Matemática Discreta. Justo Peralta López

LISTA DE CALIFICACIONES POR ALUMNO CLAVE: 501 MATRICULA: Página 1 de 23 15/06/ :50 INSTITUTO EDUCATIVO DALÍ

PSR. Problema. Desigualdad triangular: La suma de las longitudes de cualesquiera 2 lados no es menor que la del tercero.

1. Conceptos básicos sobre el problema en cuestión y cuestiones afines. 2. Formulación de los correspondientes algoritmos y su pseudocódigo.

Redes Semánticas. IIMAS Inteligencia Artificial. Alumno: Vicente Iván Sánchez Carmona Profesora: Dr. Ana Lilia Laureano

INTRODUCCIÓN A PROLOG

Texto: Hopcroft, J. E., Motwani, R., Ullman, J.D., Introduction to Automata Theory, Languajes, and Computation. 3rd Edition. Addison Wesley, 2007.

Lógica proposicional. Ivan Olmos Pineda

LISTA DE CALIFICACIONES POR ALUMNO CLAVE: 424 MATRICULA: Página 1 de 30 15/06/ :48 INSTITUTO EDUCATIVO DALÍ

Carrera: NEC Participantes. Comisión de la Academia de Ingeniería en Sistemas Computacionales y Licenciatura en Informática

ESCUELA SUPERIOR POLITECNICA DEL LITORAL PROGRAMA DE ESTUDIOS

Matemáticas Básicas para Computación

LÓGICA COMPUTACIONAL

Tema 2. Fundamentos de la Teoría de Lenguajes Formales

PLAN DE ESTUDIOS Y CONTENIDOS MÍNIMOS

Matemáticas Básicas para Computación

E j e r c i c i o n º 12 Notas de Alumnos

BASES DE DATOS, MODELOS DE DATOS Y DBMS

Teoría de Lenguajes. Gramáticas incontextuales

Tema 5: Conceptualización relacional

El Lenguaje de Programación PROLOG

INGENIERÍA EN SISTEMAS Y COMUNICACIONES

SAM - Sensores, Actuadores y Microcontroladores en Robots Móviles

PROYECTO DOCENTE DE LA ASIGNATURA CURSO 2014/2015

GUÍA DOCENTE DE LA ASIGNATURA

ALGORITMOS, ESTRUCTURAS Y PROGRAMACION

Máster Universitario en Tecnologías de la Información y las Comunicaciones Universidad de Alcalá Curso Académico 2013/14

Didáctica de la Literatura en Educación Infantil ÍNDICE

John Venn Matemático y filósofo británico creador de los diagramas de Venn

Toda copia en PAPEL es un "Documento No Controlado" a excepción del original.

INTRODUCCIÓN AL LENGUAJE PROLOG

UNIVERSIDAD TECNOLÓGICA DE BAHÍA DE BANDERAS PORTAFOLIO DE ACTIVIDADES DE APRENDIZAJE

Transcripción:

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

2 / 24 Tema 9: Retroceso, corte y negación 1. Ejemplos usando el corte 2. Negación como fallo Definición de la negación como fallo 3. El condicional

3 / 24 Tema 9: Retroceso, corte y negación 1. Ejemplos usando el corte 2. Negación como fallo 3. El condicional

4 / 24 Ejemplo de nota sin corte nota(x,y) se verifica si Y es la calificación correspondiente a la nota X; es decir, Y es suspenso si X es menor que 5, Y es aprobado si X es mayor o igual que 5 pero menor que 7, Y es notable si X es mayor que 7 pero menor que 9 e Y es sobresaliente si X es mayor que 9. Por ejemplo,?- nota(6,y). Y = aprobado; No nota(x,suspenso) :- X < 5. nota(x,aprobado) :- X >= 5, X < 7. nota(x,notable) :- X >= 7, X < 9. nota(x,sobresaliente) :- X >= 9.

5 / 24 Deducción en el ejemplo sin corte Árbol de deducción de?- nota(6,y).

6 / 24 Ejemplo de nota con cortes Definición de nota con cortes nota(x,suspenso) :- X < 5,!. nota(x,aprobado) :- X < 7,!. nota(x,notable) :- X < 9,!. nota(x,sobresaliente).

7 / 24 Deducción en el ejemplo con cortes Un 6 es un sobresaliente??- nota(6,sobresaliente). Yes

8 / 24 Ejemplos usando el corte Tema 9: Retroceso, corte y negación 1. Ejemplos usando el corte 2. Negación como fallo 3. El condicional

Ejemplos usando el corte Uso de corte para respuesta única 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 Definición de member y memberchk: member(x,[x _]). member(x,[_ L]) :- member(x,l). memberchk(x,[x _]) :-!. memberchk(x,[_ L]) :- memberchk(x,l). 9 / 24

10 / 24 Negación como fallo Definición de la negación como fallo Tema 9: Retroceso, corte y negación 1. 2. Negación como fallo Definición de la negación como fallo 3. El condicional

11 / 24 Negación como fallo Definición de la negación como fallo Definición de la negación como fallo Definición de la negación como fallo not): no(p) :- P,!, fail. % No 1 no(p). % No 2

12 / 24 Negación como fallo Tema 9: Retroceso, corte y negación 1. 2. Negación como fallo Definición de la negación como fallo 3. El condicional

13 / 24 Negación como fallo Programa con negación Programa: aprobado(x) :- no(suspenso(x)), matriculado(x). matriculado(juan). matriculado(luis). suspenso(juan). % R1 % R2 % R3 % R4 Consultas:?- aprobado(luis). Yes?- aprobado(x). No

14 / 24 Negación como fallo Árbol de deducción de?- aprobado(luis).

15 / 24 Negación como fallo Árbol de deducción de?- aprobado(x).

16 / 24 Negación como fallo Modificación del orden de los literales Programa: aprobado(x) :- matriculado(x), no(suspenso(x)). matriculado(juan). matriculado(luis). suspenso(juan). % R1 % R2 % R3 % R4 Consulta:?- aprobado(x). X = luis Yes

17 / 24 Negación como fallo Árbol de deducción de?- aprobado(x).

Negación como fallo Ejemplo de definición con not y con corte borra(l1,x,l2) se verifica si L2 es la lista obtenida eliminando los elementos de L1 unificables simultáneamente con X. Por ejemplo,?- borra([a,b,a,c],a,l). L = [b, c] ; No?- borra([a,y,a,c],a,l). Y = a L = [c] ; No?- borra([a,y,a,c],x,l). Y = a X = a L = [c] ; No 18 / 24

19 / 24 Negación como fallo Ejemplo de definición con not y con corte Definición con not: borra_1([],_,[]). borra_1([x L1],Y,L2) :- X=Y, borra_1(l1,y,l2). borra_1([x L1],Y,[X L2]) :- not(x=y), borra_1(l1,y,l2).

20 / 24 Negación como fallo Ejemplo de definición con not y con corte Definición con corte: borra_2([],_,[]). borra_2([x L1],Y,L2) :- X=Y,!, borra_2(l1,y,l2). borra_2([x L1],Y,[X L2]) :- % not(x=y), borra_2(l1,y,l2).

21 / 24 Negación como fallo Ejemplo de definición con not y con corte Definición con corte y simplificada borra_3([],_,[]). borra_3([x L1],X,L2) :-!, borra_3(l1,y,l2). borra_3([x L1],Y,[X L2]) :- % not(x=y), borra_3(l1,y,l2).

22 / 24 El condicional Definición de nota con el condicional Definición de nota con el condicional: nota(x,y) :- X < 5 -> Y = suspenso ; % R1 X < 7 -> Y = aprobado ; % R2 X < 9 -> Y = notable ; % R3 true -> Y = sobresaliente. % R4 Definición del condicional y verdad: P -> Q :- P,!, Q. % Def. -> true. % Def. true

23 / 24 El condicional Árbol de deducción de?- nota(6,y).

24 / 24 Bibliografía Bibliografía 1. J.A. Alonso Introducción a la programación lógica con Prolog. Cap. 7: Cap. 8: Negación 2. I. Bratko Prolog Programming for Artificial Intelligence (3 ed.) (Addison Wesley, 2001) Cap. 5: Controlling backtracking 3. W.F. Clocksin y C.S. Mellish Programming in Prolog (Fourth Edition) (Springer Verlag, 1994) Cap. 4: Backtracking and the cut 4. L. Sterling y E. Shapiro The Art of Prolog (2nd Edition) (The MIT Press, 1994) Cap. 11: Cuts and negation