Programación en PROLOG(1)
|
|
|
- Mariano Jiménez Fuentes
- hace 7 años
- Vistas:
Transcripción
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
2 Prolog Es el representante más conocido del paradigma lógico Prolog permite Definir/especificar relaciones entre objetos. Verificar si ciertos objetos están relacionados entre sí. A continuación veremos cómo 2
3 Sintaxis Informal nombres de relaciones (también llamadas predicados) y objetos. secuencias de caracteres comenzando con minúscula. Prolog cuenta con variables. Las variables denotan objetos sin especificar. nombres de variables secuencias de caracteres comenzando con mayúscula. 3
4 Sintaxis Informal Existen 3 tipos construcciones en PROLOG (llamadas cláusulas) : Hechos Permiten definir relaciones entre objetos. Reglas Consultas Permiten verificar si ciertos objetos están relacionados entre sí 4
5 Hechos permiten establecer que una determinada tupla de objetos están relacionados bajo una relación en particular. Sintaxis: r(obj 1, obj 2,,obj n ). la tupla (obj 1, obj 2,,obj n ) pertenece a la relación r amigo(homero, barny). suma(x, 0, X). socio_club(juan, liniers). socio_club_liniers(juan). relación de aridad 0: proposición ateniense(socrates). socrates_es_ateniense. 5
6 Reglas Permiten establecer que una determinada tupla de objetos están relacionados bajo una relación en particular, pero en términos de otras relaciones. Sintaxis: cabeza cuello cuerpo r(obj 1, obj 2,,obj n ) :- r 1 ( ),, r m ( ). Ej: mentiroso(x):- ateniense(x). gustos_en_comun(x,y):- gusta(x, Algo), gusta(y, Algo). 6
7 Programas Prolog Un programa Prolog es un conjunto de hechos y reglas. Ej: progenitor(homero, bart). progenitor(homero, lisa). progenitor(abraham, homero). abuelo(x,y):- progenitor(x,z), progenitor(z,y). definición del predicado progenitor/2 definición del predicado abuelo/2 7
8 Consultas permiten verificar si una determinada tupla de objetos están relacionados bajo una relación en partircular. Sintaxis:?- r(obj 1, obj 2,,obj n ). Ej:?- abuelo(abraham, lisa)?- abuelo(x, bart) bart tiene abuelo? 8
9 Consultas y Respuestas progenitor(homero, bart). progenitor(homero, lisa). progenitor(abraham, homero). abuelo(x,y):- progenitor(x,z), progenitor(z,y).?- progenitor(homero, lisa). yes?- progenitor(homero, abraham). no?- progenitor(marge, lisa). no?- abuelo(abraham, bart). yes?- abuelo(abraham, X). X = bart ; X = lisa ; abraham tiene no algún nieto? 9
10 Resolución SLD y Backtracking Resolución de la meta? a. 1) a : b, p. 2) a : e. 3) b : q. 4) b : e. 5) e.? a. yes a b, p e q, p e, p fail (1) (2) (5) (3) (4) p fail (5) 10
11 (Tipos de) Términos Hasta ahora solo utilizamos 2 tipos de términos... abuelo(abraham, X) términos constantes términos estructuras variables 11
12 Estructuras: Rep. de Arboles Binarios Arbol binario a a Representación en Pascal o en C b c b c d Representación en Prolog (recursiva) d estructura tree (a, tree(b, #, #), tree(c, tree(d, #,#), #)) memoria el functor tree tiene aridad 3 functor términos 12
13 Estructuras: Rep. de Arboles Binarios A continuación se define el predicado arbolbin/1 que usa la estructura para árboles binarios. % arbolbin(+termino) % Recibe como argumento un término y determina % si éste corresponde a un árbol binario válido. arbolbin(#). arbolbin(tree(r,hi,hd)):- arbolbin(hi), arbolbin(hd).?- arbolbin(tree(a,tree(b,#,#),#)). yes?- arbolbin(tree(a, a, #)). no 13
14 Estructuras: Rep. de Arboles Binarios Otro predicado que manipula árboles binarios. % altura(+bin, -Alt) % Recibe como argumento un árbol binario Bin % y retorna su altura Alt. altura(#, -1). altura(tree(r,hi,hd), A):- altura(hi, AHi), altura(hd, AHd), max(ahi, AHd, MA), suma(ma, 1, A).?- altura(tree(a,tree(b,#,#),#), A). A = 1 14
15 Estructuras: Rep. de Registros Nombre Bart Apellido Simpson Dirección Calle Av. Siempre Viva Nro 742 en Pascal Registro de datos personales en Prolog estructura datos_pers (nom(bart), ap(simpson), dir(calle(av_s_viva), nro(742) )) functores 15
16 Estructuras: Listas (rep. predefinida) Las listas también son estructuras, de aridad 2, solo cambia la notación. En lugar de: <functor_de_lista>(a,b) se usa [A B] para representar la lista con cabeza A y cola B. Ej: la lista formada por 1, 2 y 3: [ 1 [ 2 [ 3 [] ] ] ] que PROLOG permite notar abreviadamente de la siguiente forma: [ 1, 2, 3 ] 16
17 Listas: Ejemplo A continuación se define el predicado veces/3 que maipula listas. % veces(+x, +L, -C) % determina la cantidad C de apariciones de % un dado elemento X en una dada lista L. veces(x,[],0). veces(x,[x L],C):- veces(x,l,c1), suma(c1,1,c). veces(x,[y L],C):- veces(x,l,c). 17
18 Resolución SLD y Unificación?- arbolbin(tree(a,tree(b,#,#),#)). (2)? (1) arbolbin(#). (2) arbolbin(tree(r,hi,hd)):- arbolbin(hi), arbolbin(hd). 18
19 Unificación arbolbin(tree(a,tree(b,#,#),#)) Existe alguna sustitución de variables que los haga iguales? arbolbin(tree( R, Hi, Hd )) 19
20 Unificación arbolbin(tree(a,tree(b,#,#),#)) el proceso de hallar un unificador es la unificiación R por a Hi por tree(b,#,#) Hd por # arbolbin(tree( R, Hi, Hd )) { R por a, Hi por tree(b,#,#), Hd por # } es una sustitución unificadora, o simplemente unificador, para estos dos átomos. 20
21 arbolbin(tree(a,tree(b,#,#),#)). (2) {R por a, Hi por tree(b,#,#), Hd por #} arbolbin(tree(b,#,#)), arbolbin(#). (2) {R por b, Hi por #, Hd por #} arbolbin(#), arbolbin(#), arbolbin(#). (1) {} Unificación (1) arbolbin(#). arbolbin(#), arbolbin(#) (1) {} arbolbin(#) (1) {} (2) arbolbin(tree(r,hi,hd)):- arbolbin(hi), arbolbin(hd). 21
22 Predicado de Unificación (=/2)?- X = a. X = a yes?- X*Y = (2+3)*8.?- 5 = 2+3. no X = (2+3) Y = 8 yes 22
23 Predicado de Unificación (=/2)?- W = f(x), X = a. W = f(a) X = a yes?- W = a, W = b. no Una variable INSTANCIADA ya no se desinstancia 23
24 Predicado no unifica (\=/2) Tiene éxito cuando sus argumentos NO unifican. Es decir, devuelve yes cada vez que =/2 devuelve no y viceversa?- a \= a. no?- a \= b. yes?- X \= a. no 24
25 Predicado is/2 La meta T is E es exitosa si T unifica con el resultado de la evaluación de la expresión numérica E?- 5 is 2+3. yes T is E T = res_eval_e?- R = 10, R is 2+3. no?- R is 5*8. R = 40 yes?- 2+3 is 2+3. no?- W is [1,2,3] ERROR 25
26 Chequeo de variable singleton Una variable singleton es una variable que aparece sólo una vez en una cláusula. En ocasiones, la presencia de una variable singleton es una manifestación de un error cometido por el programador. Identifiquemos variables singleton en el siguiente programa y cuáles de ellas manifiestan un error. concat(lista, [], List). concat([x SubL1], L2, SubL1_L2):- concat(subl1, L2, SubL1_L2). miembro(x,[x L]). ERROR ERROR OK miembro(x,[y L]):- miembro(x,l). OK 26
27 Singleton Variable Warning La presencia de variables singleton es usualmente una manifestación de dos clases de errores cometidos por el programador: olvidó hacer algo que debía hacer con esa variable. cometió un error de nombre al intentar referirse a una variable introducida previamente (por ejemplo, un error de tipeo). concat(lista, [], List). concat([x SubL1], L2, SubL1_L2):- concat(subl1, L2, SubL1_L2). error de nombre olvidó hacer algo Al cargar un archivo conteniendo un programa PROLOG, el SWI muestra un WARNING para avisar al programador de la presencia de variables singleton. 27
28 Variables anónimas Cuando desea introducirse una variable singleton intencionalmente, como es el caso del predicado miembro/2, deberíamos utilizar variables anónimas. miembro(x,[x _L]). miembro(x,[_y L]):- miembro(x,l). De esta forma, estamos indicando al SWI que dichas variables son intencionalmente NO usadas, y así no recibiremos advertencias por ellas. 28
29 FIN
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étodos de Inteligencia Artificial
Métodos de Inteligencia Artificial L. Enrique Sucar (INAOE) [email protected] ccc.inaoep.mx/esucar Tecnologías de Información UPAEP Contenido Lógica proposicional Lógica de predicados Inferencia en lógica
5.3 Tipos de Datos en Prolog
5.3 Tipos de Datos en Prolog Objetos de Datos en Prolog Objetos de datos simples Objetos estructurados Calce de operaciones fundamentales sobre objetos 1 Tipos de Objetos de Datos Objetos de datos Objetos
5.3 Tipos de Datos en Prolog
5.3 Tipos de Datos en Prolog Objetos de Datos en Prolog Objetos de datos simples Objetos estructurados Calce de operaciones fundamentales sobre objetos Tipos de Objetos de Datos Objetos de datos Objetos
TUTORIAL PROLOG. Lenguajes de programación Universidad Nacional de Colombia Santiago Carvajal Castañeda Mario Andrés Moreno Norato
TUTORIAL PROLOG Lenguajes de programación Universidad Nacional de Colombia Santiago Carvajal Castañeda Mario Andrés Moreno Norato Prolog es un lenguaje de programación lógica de propósito general que se
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
Inteligencia Artificial: Prolog
Inteligencia Artificial: Prolog Unificación en Prolog Christopher Expósito-Izquierdo 1, Belén Melián-Batista 2 {cexposit 1, mbmelian 2 }@ull.es Universidad de La Laguna (España) Contenidos Satisfacer objetivos
5.3 Tipos de Datos en Prolog
5.3 Tipos de Datos en Prolog Recocimiento de Tipos Se recoce el tipo de un dato por su forma sintáctica; se requiere de declaración de tipos Ejemplo: Variables se definen comienzan con primera en mayúsculas
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
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
Trabajo Práctico 2: Programación Lógica
Trabajo Práctico : Programación Lógica Paradigmas de Lenguajes de Programación 1 er cuat. 016 Fecha de entrega: 7 de junio 1. Introducción El objetivo del trabajo es descubrir mensajes codificados con
Listas en Prolog. Capítulo. Listas como sujetos
Capítulo 5 Listas en Prolog Este capítulo introduce el concepto de lista, un tipo de dato de gran influencia dentro de la inteligencia artificial. Se comienza con una introducción a listas en Prolog y
Programación Declarativa. Programación Lógica.
Programación Declarativa. Programación Lógica. Prog. Imperativa vs. Declarativa La programación lógica, junto con la funcional, forma parte de lo que se conoce como programación declarativa. En los lenguajes
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
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
Programación lógica. Paradigmas de Lenguajes de Programación. Segundo cuatrimestre de Clase práctica (primera parte)
Programación lógica Clase práctica (primera parte) Paradigmas de Lenguajes de Programación Segundo cuatrimestre de 2010 Repaso general El lenguaje Prolog Programación lógica. Francia, ppios. de los 70.
1. Sintaxis de Prolog
1. Sintaxis de Prolog Términos: Constantes: enteros (Ejs: 3, 4), átomos (Ejs: juan, pi) (en minúscula). Variables: Ejs: X, Casa (en mayúscula) Estructuras: functor, seguido de uno o más argumentos, es
LENGUAJES DE PROGRAMACIÓN
LENGUAJES DE PROGRAMACIÓN Paradigma Lógico Caso de Estudio : Prolog Lenguajes de Programación 2018 Depto. de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur, Bahía Blanca 1 2 1 1/2
Algoritmos y programas. Algoritmos y Estructuras de Datos I
Algoritmos y programas Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2012 Departamento de Computación - FCEyN - UBA Programación funcional - clase 1 Funciones Simples - Recursión - Tipos de
6. Operadores en PROLOG
6. Operadores en PROLOG 1. Definición de operadores propios 2. Operadores predefinidos Igualdad Entrada y Salida básicos Manejo de ficheros Evaluación de expresiones aritméticas Comparación de números
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
Programación Funcional en LISP Lógica para Ciencias de la Computación
Programación Funcional en LISP Lógica para Ciencias de la Computación Primer Cuatrimestre de 2009 Material Adicional Introducción A lo largo de la carrera estudiaremos diversos paradigmas de programación:
Componentes Básicos. InCo. InCo Componentes Básicos 1 / 28
Componentes Básicos InCo InCo Componentes Básicos 1 / 28 Modelo de Computación Vemos al computador como un procesador de datos. +------------+ Entrada ===> Computador ===> Salida +------------+ InCo Componentes
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:[email protected] http://www.uv.mx/personal/aguerra Maestría
Aprendizaje Automático
Intervalos de Confianza Comparación de Hipótesis Validación Cruzada y t-test Programación Lógica Inductiva Ingeniería Informática Fernando Fernández Rebollo y Daniel Borrajo Millán Grupo de Planificación
Capítulo V: Programación Lógica. 5.1 Breve Introducción al Cálculo de Predicados
Capítulo V: Programación Lógica 5.1 Breve Introducción al Cálculo de Predicados 1 Definiciones Básicas Proposición: sentencia lógica que puede ser verdadera o falsa. Se construye de objetos y relaciones.
Metodología de Programación I Tutorial de Prolog (3/3)
Metodología de Programación I Tutorial de Prolog (3/3) Dr. Alejandro Guerra-Hernández Departamento de Inteligencia Artificial Facultad de Física e Inteligencia Artificial [email protected] http://www.uv.mx/aguerra
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
CONTENIDO. 1.- Introducción a la Inteligencia Artificial (IA) 2.- Lógica de predicados. 3.- Búsqueda de soluciones
CONTENIDO 1.- Introducción a la Inteligencia Artificial (IA) 2.- Lógica de predicados 3.- Búsqueda de soluciones 4.- Lenguajes de IA e Introducción a Sistemas Expertos 1.- Introducción a la Inteligencia
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
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
PROgramación LOGica PROLOG. Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad de Nacional
PROgramación LOGica PROLOG Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad de Nacional Dónde bajar? Strawberry PROLOG: www.dobrev.com PROLOG -> PROgramming in LOGig Paradigma -> El lenguaje
Prof. María Alejandra Quintero. Informática Año
Prof. María Alejandra Quintero Informática Año 2014-2015 Es la acción de escribir programas de computación con el objetivo de resolver un determinado problema. Implica escribir instrucciones para indicarle
Inteligencia en Redes de Comunicaciones. Prolog. Julio Villena Román.
Inteligencia en Redes de Comunicaciones Prolog Julio Villena Román [email protected] Prolog La lógica proporciona: un lenguaje base para la representación del conocimiento modelos para el razonamiento
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
Teoría de los Lenguajes de Programación Práctica curso
Teoría de los Lenguajes de Programación Práctica curso 2013-2014 Índice 1. Introducción: Sumas...3 2. Enunciado de la práctica...3 2.1 Método de Resolución...3 Generación de los nodos...4 Función Principal...5
Metaprogramación. Ingeniería Informática. Departamento de Lenguajes y Ciencias de la Computación Universidad de Málaga
Ingeniería Informática Departamento de Lenguajes y Ciencias de la Computación Universidad de Málaga Contenido 1. Clasificación de términos 2. Inspección de estructuras 2 Clasificación de términos Clasificación
El lenguaje de programación Prolog
El lenguaje de programación Prolog Materia: Análisis Comparativo de Lenguajes Departamento de Informática Universidad Nacional de San Luis (UNSL) San Luis. Argentina 1. Introducción Prolog deriva su nombre
Lenguajes de programación
Lenguajes de programación por Iván Cruz A través de la historia, el hombre siempre ha buscado la manera de comunicarse con otros seres vivos, debido a ello se crearon diversas formas de comunicación, tales
Ing. Iván Adrianzén Olano. Programación Lógica
Ing. Iván Adrianzén Olano Programación Lógica Fundamentos de Visual Prolog Visual Prolog es orientado a objeto Para el curso de Sistemas Expertos usaremos el Prolog de la forma clásica usando el PIE (Prolog
Programación Exploratoria - Predicados Predefinidos en Prolog -
Universidad Nacional del Centro de la Provincia de Buenos Aires Facultad de Ciencias Exactas Programación Exploratoria - Predicados Predefinidos en Prolog - Tipos de Predicados Construcción de Predicados
Listas. Listas. Listas. Listas y Corte en Prolog. Temas Avanzados en Ingeniería Informática I (Lógica) David Camacho Fernández.
Temas Avanzados en Ingeniería Informática I (Lógica) Listas y Corte en Prolog Listas Una lista es una secuencia de elementos. Estos elementos pueden ser términos (constantes, variables, estructuras) o
Tema 2. La Sintaxis. 1. El vocabulario de un programa PROLOG
Tema 2. La Sintaxis 1. El vocabulario de un programa PROLOG 2. TérminosT 2.1. Constantes 2.2. Variables 2.3. Estructuras 3. Operadores 4. Igualdad y Desigualdad 5. Aritmética tica en los programas 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 [email protected] Contenidos Unificación Estructuras de datos
Tema 2.- Expresiones y funciones
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
2º Certamen ILI-253 Lenguajes de Programación Juan Pablo Menichetti Jorge Mujica 10 de Junio del 2004
º Certamen ILI-53 Lenguajes de Programación Juan Pablo Menichetti Jorge Mujica 10 de Junio del 004 ta: Tiempo: 10 Minutos. Responda con lápiz indeleble para acceder a recorrecciones. Utilice solo las hojas
UNIVERSIDAD AUTÓNOMA DE GUERRERO UNIDAD ACADÉMICA DE MATEMÁTICAS. Apuntes de. PROGRAMACIÓN EN PROLOG Segunda Edición
UNIVERSIDAD AUTÓNOMA DE GUERRERO Apuntes de PROGRAMACIÓN EN PROLOG Segunda Edición Serie: Material de Apoyo a la Licenciatura en Matemáticas Área Computación. Edgar Altamirano Carmona Chilpancingo, Gro.,
DATOS DE IDENTIFICACIÓN DEL CURSO Departamento de Ciencias Computacionales. Inteligencia Artificial
DEPARTAMENTO: ACADEMIA A LA QUE PERTENECE: DATOS DE IDENTIFICACIÓN DEL CURSO Departamento de Ciencias Computacionales. Inteligencia Artificial NOMBRE DE LA MATERIA: Programación Lógica y Funcional CLAVE
el proceso de backtracking.
1 El proceso de Backtracking 1.1 Backtracking En esta práctica se examina en detalle cómo Prolog busca todas las soluciones a un objetivo. Prolog responde a una pregunta hecha por el programador. Esta
5.2 Introducción a Prolog. Lenguaje Prolog. Características de Prolog. Su nombre viene de Programación en Lógica, creado a comienzos de los 70:
5.2 Introducción a Prolog 1 Lenguaje Prolog Su nombre viene de Programación en Lógica, creado a comienzos de los 70: Robert Kowalski (Edimburgo): lado teórico Maarten van Emden (Edimburgo): demostración
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
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
El lenguaje Prolog. Prolog es un lenguaje Declarativo, a diferencia de otros lenguajes que son orientados a objetos o procedurales
II.4 Prolog El lenguaje Prolog Prolog es un lenguaje Declarativo, a diferencia de otros lenguajes que son orientados a objetos o procedurales Creador: Robert Kowalski Algoritmo = Lógica + Control Aspectos
Programación Declarativa Universidad de Málaga
Programación Declarativa Universidad de Málaga 3. o de Ingeniería Informática E.T.S.I. Informática Enero de 2008 Tema 5. Programación lógica con árboles Ejercicios Ejercicio 1. Dada la siguiente representación
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
Programación TADs Colecciones Conjuntos, Diccionarios y Tablas
Programación 2 8 - TADs Colecciones Conjuntos, Diccionarios y Tablas 1 El TAD SET (Conjunto) En el diseño de algoritmos, la noción de conjunto es usada como base para la formulación de tipos de datos abstractos
CAPÍTULO IV: 4.1 Introducción a la. Programación Funcional
CAPÍTULO IV: Programación Funcional 4.1 Introducción a la Programación Funcional 1 Programación Funcional Paradigma diferente a los imperativos, que se aleja de la máquina de von Neumann Basado en funciones
Verificación de Modelos
Verificación de Modelos Dante Zanarini LCC November 5, 2015 Dante Zanarini (LCC) Verificación de Modelos November 5, 2015 1 / 18 Verificación Formal Ingredientes: Un lenguaje para describir sistemas Un
Claúsulas de Horn. Resolución SLD
Claúsulas de Horn. Resolución SLD 1 / 114 Refinando la resolución La resolución general es un mecanismo muy potente de demostración... pero tiene un alto grado de indeterminismo: en la selección de las
Metodología de Programación I Tutorial Prolog 2/3
Metodología de Programación I Tutorial Prolog 2/3 Dr. Alejandro Guerra-Hernández Departamento de Inteligencia Artificial Facultad de Física e Inteligencia Artificial [email protected] http://www.uv.mx/aguerra
UNIDAD 2 Descripción de un programa
Descripción de un programa Estructura general de un programa. Elementos básicos. Tipos de datos simples: enteros, reales y carácter. Representación de datos en memoria. Operaciones sobre tipos de datos
Í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
PROgramación LOGica PROLOG
PROgramación LOGica PROLOG Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad de Nacional Dónde bajar? Strawberry PROLOG: www.dobrev.com PROLOG -> PROgramming in LOGig Paradigma -> El lenguaje
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
Universidad Simón Bolívar Departamento de Computación y Tecnología de la Información CI3661 Taller de Lenguajes de Programación I Enero-Marzo 2015
Universidad Simón Bolívar Departamento de Computación y Tecnología de la Información CI3661 Taller de Lenguajes de Programación I Enero-Marzo 2015 Programación Orientada a Objetos Unificación En este ejercicio
Programación Elemental con Bases de Datos y Programación El lenguaje Prolog
Programación Elemental con Bases de Datos y Programación II.1 El lenguaje Prolog. II.2 Programación con bases de datos. II.3 Aspectos a tener en cuenta en la programación en Prolog II.4 Programación recursiva:
n! = 1 2 n 0! = 1 (n+1)! = (n + 1) n!
Capítulo 3 Recursión La recursión es un estilo autoreferencial de definición usado tanto en matemática como en informática. Es una herramienta de programación fundamental, particularmente importante para
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
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
Representación del conocimiento mediante reglas
C. Graciani Díaz F. J. Martín Mateos J. L. Ruiz Reina Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Sistemas basados en el conocimiento Sistemas basados en el conocimiento:
ESTRUCTURAS DE DATOS
ESTRUCTURAS DE DATOS Listas 1. Definir predicados Prolog referentes a listas con los siguientes significados: miembro(elem,lista) "Elem pertenece a Lista" longitud(lista,long) "Lista tiene Long elementos"
PROgramación LOGica PROLOG. Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad de Nacional
PROgramación LOGica PROLOG Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad de Nacional Dónde bajar? Strawberry PROLOG: www.dobrev.com PROLOG -> PROgramming in LOGig Paradigma -> El lenguaje
Análisis semántico Tabla de símbolos, chequeo de tipos y representaciones internas
Análisis semántico Tabla de símbolos, chequeo de tipos y representaciones internas Análisis semático v1.2 c 2005 José Fortes Gálvez p.1 Análisis?... semántico? La semántica corresponde al significado asociado
Análisis Comparativo de Lenguajes - Año 2018 Práctico Nro. 2 Lenguaje Prolog Corresponde al Apunte El lenguaje de programación Prolog
Análisis Comparativo de Lenguajes - Año 2018 Práctico Nro. 2 Lenguaje Prolog Corresponde al Apunte El lenguaje de programación Prolog Ejercicio 1: Dado el siguiente programa Prolog: ciudad(la_punta). ciudad(mercedes).
Pre-Laboratorio 1 MA-33A : Introducción a Matlab
Pre-Laboratorio 1 MA-33A 2007-1: Introducción a Matlab Gonzalo Hernández - Gonzalo Rios UChile - Departamento de Ingeniería Matemática 1 Interfaz de Matlab Al ejecutar el programa Matlab, se abrirá una
Práctica No. 6 Ejercicios en Prolog.
Práctica No. 6 Ejercicios en Prolog. Introducción El lenguaje Prolog (Programación Lógica) puede ser visto como un lenguaje prescriptivo asi como un lenguaje descriptivo. El enfoque de Prolog es describir
Programación 2 Práctico 9 - TADs Árbol Binario de Búsqueda, Árbol Finitario y Árbol n-ario
Práctico - TADs Árbol Binario de Búsqueda, Árbol Finitario y Árbol n-ario Objetivos Trabajar con los tipos abstractos de datos Árbol Binario de Búsqueda, Árbol Finitario y Árbol n-ario. Desarrollar y analizar
Para entender la recursividad primero tenemos que entender la recursividad
Para entender la recursividad primero tenemos que entender la recursividad Funcional Clase 1 Matias Reparaz, Agustín Nieto Departamento de Computación, FCEyN,Universidad de Buenos Aires. 20 de Septiembre
Lógica Proposicional IIC1253. IIC1253 Lógica Proposicional 1/64
Lógica Proposicional IIC1253 IIC1253 Lógica Proposicional 1/64 Inicio de la Lógica Originalmente, la Lógica trataba con argumentos en el lenguaje natural. Ejemplo Es el siguiente argumento válido? Todos
