Ratones amaestrados: control de la búsqueda.
|
|
- Vicenta Trinidad Castro Lucero
- hace 6 años
- Vistas:
Transcripción
1 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 efecto lateral de podar todas las elecciones alternativas en el nodo correspondiente en el árbol de búsqueda. Este es un predicado metalógico o extralógico: es un predicado que afecta al comportamiento operacional de Prolog. es en cierto sentido un predicado impuro (ajeno a la lógica) pero es un predicado muy útil... casi fundamental para el programador de Prolog 2 / 12
2 Cómo opera el corte? Cuando se resuelve un objetivo p con una cláusula de la forma: p : q 1,..., q n,!, r 1,..., r m Prolog intenta resolver los objetivos q 1,..., q n normalmente (haciendo backtraking sobre cada uno de ellos si es necesario); pero una vez que se alcanza el corte! se descartan automáticamente: las alternativas que quedasen por explorar para q 1,..., q n el resto de claúsulas para p que vengan a continuación de esta Sí que se puede hacer backtraking sobre r 1,..., r m 3 / 12 El corte en ejemplos (I) En la página?? definíamos un predicado para incrementar en 1 los enteros de una lista (dejando intactos los no enteros): inclst2([],[]). inclst2([x Xs],[Y Ys]):- integer(x),!,y is X+1,incLst2(Xs,Ys). inclst2([x Xs],[X Ys]):- inclst2(xs,ys). Con el objetivo inclst2([2,gato],l) obteníamos: L = [3,gato] pero también L = [2,gato]... por un backtraking indeseado Con el corte! adecuado se soluciona este problema: ahora solo muestra la respuesta L = [3,gato] (se poda el resto del árbol de búsqueda). 4 / 12
3 Más cortes Para filtrar los elementos positivos de una lista (página??) hacíamos: lstpos([],[]). lstpos([x Xs],[X Ys]):- X>0, lstpos(xs,ys). lstpos([x Xs],Ys):- X=<0, lstpos(xs,ys). Utilizando un corte tras la condición X > 0 de la segunda claúsula, no es necesario comprobar expĺıcitamente la condición en la última cláusula: lstpos([],[]). lstpos([x Xs],[X Ys]):- X>0,!, lstpos(xs,ys). lstpos([x Xs],Ys):- lstpos(xs,ys). Esto mismo puede hacerse en el predicado separa de la página?? y en parte en la pag.?? 5 / 12 Tabla de distribución de frecuencias Problema: dada una lista de enteros construir la tabla de frecuencias asociada, con los elementos ordenados. Por ejemplo, para la lista [3, 3, 2, 2, 1, 1, 2, 3, 2, 3, 3] la tabla de frecuencias podría escribirse como [(1, 2), (2, 4), (3, 5)] (el 1 aparece 2 veces, el 2 aparece 4 veces y el 3, 5 veces). Prolog distingue los predicados no solo por el nombre, sino por el número de argumentos, i.e., podemos utilizar el mismo nombre para el predicado auxiliar: frec(l,t):- frec(l,[],t). frec([],t,t). frec([n Ns],T1,T3):- inserta(n,t1,t2), frec(ns,t2,t3). inserta(n,[],[(n,1)]). inserta(n,[(n,k) Ns],[(N,K1) Ns]):-!, K1 is K+1. inserta(n,[(m,k) Ns],[(N,1),(M,K) Ns]):- N<M,!. inserta(n,[(m,k) Ns],[(M,K) Ns1]):- inserta(n,ns,ns1). 6 / 12
4 El predicado fail fail es un predicado built-in que siempre falla. es útil para forzar la la vueltra atrás (backtracking) si no existiese como buil-in siempre podríamos plantear un objetivo artificial que provocase el fallo como 0=1 o 0==1 La combinación de! y fail permite definir la negación como fallo finito 7 / 12 Negación como fallo finito En varios problemas ha aparecido la negación de forma natural. Por ejemplo, hemos definido el predicado esta (member), pero después, en otros predicados nos interesaba utilizar la negación: noesta (not(member)). En general, nos interesa un predicado como: not(g)::= tiene éxito si el objetivo G falla Nótese que este predicado actúa sobre sobre un objetivo G. Podemos definirlo como: not(g):- G,!, fail. not( ). O también (es esencialmente lo mismo): not(g):- call(g),!, fail. % call(g): resuelve el objetivo G not( ). 8 / 12
5 Cómo funciona esta negación? not(g):- G,!, fail. not( ). Para probar si G falla: Se invoca a G (primera cláusula): Si G tiene éxito, provoco el fallo (con fail), pero además antes da fallar se cierran las alternativas con un corte es decir, not(g) falla (sin posibilidad de utilizar otra cláusula). Si G no tiene éxito, entonces no se alcanza el corte de la primera cláusula y hay backtraking: se alcanza la segunda cláusula y automáticamente tiene éxito i.e., not(g) tiene éxito. 9 / 12 Cómo NO funciona esta negación? Esta negación es sólo una aproximación a la negación lógica y tiene restricciones de uso. En particular, el modo de uso es: not(+g)::= tiene éxito si el objetivo G falla; falla si G tiene (algún) éxito. Es decir, el objetivo G debe ser cerrado, sin variables. Si es así, funciona correctamente, pero si no, en general puede proporcionar respuestas incorrectas. Esta negación está predefinida en Prolog mediante el predicado built-in \+. 10 / 12
6 Disyunción ; Cuando dos o más cláusulas de un predicado tienen exactamente la misma cabeza, a menudo es cómodo agruparlas en una sola. Esto puede conseguirse utilizando el operador de disyunción ;. Ejemplo: fueraderango(+x,+inf,+sup)::= chequea si X [Inf..Sup] fueraderango(x,inf,sup):- X<Inf ; X>Sup. Ahora, usando la negación: enrango(+x,+inf,+sup)::= chequea si X [Inf..Sup] enrango(x,inf,sup):- \+ fueraderango(x,inf,sup). 11 / 12 Condicional if then else Utilizando corte definir el siguiente predicado: ifthenelse(+c,+p1,+p2)::= resuelve P1 si la condicion C se satisface; P2 en otro caso ifthenelse(c,p1, P2):- C,!, P1. ifthenelse(c, P1,P2):- P2. Este predicado está predefinido: ifthenelse(c,p1,p2) se escribe como C -> P1 ; P2 12 / 12
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 detallesInteligencia 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 detallesOperador 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 detallesOperador 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 detallesEstructuras incompletas. Listas diferencia.
Estructuras incompletas. Listas diferencia. 1 / 13 Estructuras incompletas Proporcionan una técnica de implementación muy potente propia de Prolog: Incrementan radicalmente la eficiencia de muchos programas.
Más detallesControl 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 detallesPrá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 detallesProgramas 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 detallesMetodologí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 detallesSemá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 detallesProgramación Lógica. Programación Lógica
Programación Lógica Programación imperativa programa es secuencia de instrucciones que una computadora ejecuta para resolver un problema Programación Lógica programa especifica conocimiento (declarativa)
Más detallesCó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 detallesMé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 detallesEjercicios de Lógica Proposicional *
Ejercicios de Lógica Proposicional * FernandoRVelazquezQ@gmail.com Notación. El lenguaje proposicional que hemos definido, aquel que utiliza los cinco conectivos,,, y, se denota como L {,,,, }. Los términos
Más detalles2. Estructuras condicionales
2. Estructuras condicionales Fundamentos de Informática Dpto. Lenguajes y Sistemas Informáticos Curso 2012 / 2013 Índice Estructuras condicionales 1. Ej07: Cond. simple 2. Ej08: Cond. doble 3. Ej09: Cond.
Más detallesTema II: Introducción al Lenguaje Funcional
Tema II: Introducción al Lenguaje Funcional Características de Haskell Lenguaje funcional de o. superior fuertemente tipificado. Clasifica los entes de un programa en: objetos (constantes y funciones)
Más detallesTema III Predicados Extralógicos de PROLOG
Tema III Predicados Extralógicos de PROLOG Programación Declarativa 1 Predicados Extralógicos Se incorporan al lenguaje como predicados predefinidos con usos limitados para acceder a funciones del sistema
Más detalleslogica computacional Tema 1: Introducción al Cálculo de Proposiciones
Tema 1: Introducción al Cálculo de Proposiciones Introducción al concepto de cálculo Un cálculo es una estructura pura; un sistema de relaciones. Un cálculo se compone de lo siguiente: Un conjunto de elementos
Más detallesLISTAS ENLAZADAS FUNDAMENTOS TEORICOS
LISTAS ENLAZADAS FUNDAMENTOS TEORICOS Una lista enlazada es una colección o secuencia de elementos dispuestos uno detrás de otro, en la que cada elemento se conecta al siguiente elemento por un «enlace»
Más detallesLógica Matemática. Operadores Lógicos. Universidad del Azuay - Marcos Orellana Cordero
Lógica Matemática Operadores Lógicos Introducción La lógica proposicional inicia con las proposiciones y los conectores lógicos. A partir de la combinación de dos proposiciones por medio de un conector
Más detallesControl de retroceso. Corte y negación (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/) Universidad de Sevilla Control de retroceso. Corte y negación (2010/2011) Índice
Más detallesINTELIGENCIA 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 detallesInformática de 1 o de Matemáticas. Ejercicios de Introducción a Haskell. Ejercicio 1 Consideremos la siguiente definición:
Ejercicios de Introducción a Haskell Informática de 1 o de Matemáticas Ejercicio 1 Consideremos la siguiente definición: doble x = x + x El valor de doble(doble 3) se puede calcular usando distintos métodos
Más detallesM.S.C. Elvia Cristina Márquez Salgado. Unidad 1 METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
M.S.C. Elvia Cristina Márquez Salgado Unidad 1 METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS Definición del Problema Esta fase está dada por el enunciado del problema, el cual requiere una definición clara
Más detalles2º 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
Más detallesTema: Algoritmos Backtracking.
Programación IV. Guía 12 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación IV Tema: Algoritmos Backtracking. Objetivos Específicos Comprender el funcionamiento de un Algoritmo Backtracking.
Más detallesel 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
Más detallesTema 3. Patrones y Definiciones de Funciones
Programación Declarativa Haskell Informática Sistemas Curso 2003-2004 Pepe Gallardo Universidad de Málaga Tema 3. Patrones y Definiciones de Funciones 3.1 Comparación de Patrones Patrones constantes Patrones
Más detallesUn poco de lógica. Ramón Espinosa. Departamento de Matemáticas, ITAM
Un poco de lógica Ramón Espinosa Departamento de Matemáticas, ITAM La lógica, como el whisky, pierde sus efectos benéficos cuando se consume en grandes cantidades. Lord Dunsany Uno de los principales propósitos
Más detallesPROLOG. Un programa Prolog es un conjunto de cláusulas de Horn (hechos y reglas) donde: Todas las claúsulas acaban con.
PROLOG 1 / 101 Sintaxis de Prolog Un programa Prolog es un conjunto de cláusulas de Horn (hechos y reglas) donde: Todas las claúsulas acaban con. El símbolo se escribe como :- que se lee como si (condicional).
Más detallesProgramación Declarativa UNIVERSIDAD DE MÁLAGA
Programación Declarativa UNIVERSIDAD DE MÁLAGA (3 o de Ingeniería Técnica en Informática) E.T.S.I. INFORMÁTICA 17 de Febrero de 2005 Alumno: Grupo: Prolog Ejercicio 1 (a)(2 pts.) Realiza el árbol de búsqueda
Más detallesInteligencia Artificial II (Curso ) Ejercicios propuestos del tema 3
Inteligencia Artificial II (Curso 2010-2011) Ejercicios propuestos del tema 3 Ejercicio 1: Describe los modelos probabilísticos del lenguaje unigram y bigram y cómo se calcula la probabilidad de una secuencia
Más detallesSistemas Inteligentes de Gestión. Relación de ejercicios PROLOG. Carlos Cubero & Fernando Berzal
Sistemas Inteligentes de Gestión Relación de ejercicios PROLOG Juan Carlos Cubero & Fernando Berzal ENTREGA DE LA PRÁCTICA 1_ejemplos.txt 2_ejemplos.pl 2_ejemplos.txt 3_ejemplos.txt 4_ejemplos.pl 5_genealogia.pl
Más detallesObjetivos formativos de Matemática Discreta. Tema 1: Conjuntos, aplicaciones y relaciones
Objetivos formativos de Matemática Discreta Para cada uno de los temas el alumno debe ser capaz de hacer lo que se indica en cada bloque. Además de los objetivos que se señalan en cada tema, se considera
Más detallesLENGUAJES Y COMPILADORES
LENGUAJES Y COMPILADORES Repaso. La clase pasada presentamos el lenguaje imperativo simple y dimos las ecuaciones para casi todas las construcciones del lenguaje. En efecto, teníamos que [ ] Σ
Más detallesProgramas Generate & Test
Programas Generate & Test Son básicamente programas que generan soluciones candidatas que se evalúan para comprobar si son o no correctas En algunas ocasiones es más sencillo comprobar si algo es una solución
Más detallesInteligencia Artificial
Inteligencia Artificial Conocimiento y razonamiento 2. Lógica proposicional Dr. Edgard Iván Benítez Guerrero 1 Lenguajes lógicos Los hechos forman parte del mundo, mientras que las sentencias son la representación
Más detallesLógica Matemática. Contenido. Definición. Finalidad de la unidad. Proposicional. Primer orden
Contenido Lógica Matemática M.C. Mireya Tovar Vidal Proposicional Definición Sintaxis Proposición Conectivos lógicos Semántica Primer orden cuantificadores Finalidad de la unidad Definición Traducir enunciados
Más detallesAlgoritmos de búsqueda con espacio de memoria limitado
Algoritmos de búsqueda con espacio de memoria limitado Los métodos de búsqueda por primero el mejor, tales como A, no escalan bien a grandes problemas de búsqueda debido a su consumo de memoria, mientras
Más detallesTema 20: La importancia de realizar pruebas
Departamento de Ciencias e Ingeniería de la Computación Academia de Ciencias de la Computación Tema 20: La importancia de realizar pruebas M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com
Más detallesLó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 detallesTema 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 detallesColegio Centro América. Cuaderno de ejercicios Matemáticas
Colegio Centro América Cuaderno de ejercicios Matemáticas Nombre: Séptimo grado: Profesora: Urania Zepeda. Objetivo 1: Objetivo 1: Determinar el valor de verdad de proposiciones simples y construir tablas
Más detallesn! = 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
Más detallesAbstracción de procedimientos
Abstracción de procedimientos 1.- Consideremos ABN (árboles binarios numéricos) sin nodos repetidos. Denimos los siguientes conceptos: Se pide: Dados dos ABN, A y B, decimos que B es SUBARBOL PRINCIPAL
Más detalles1.1 Define un operador ( ) que devuelva True si y solo si tan solo uno de sus argumentos es True. Por ejemplo:? (3 > 2) (2 > 5)
1 Informática Haskell Matemáticas Curso 2004-2005 Pepe Gallardo Universidad de Málaga Práctica 1 1.1 Define un operador ( ) que devuelva True si y solo si tan solo uno de sus argumentos es True. Por ejemplo:?
Más detalles6 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 detallesDr. 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 detalles5.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
Más detalles5.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
Más detallesIntroducción a la Computación
Introducción a la Computación Primer Cuatrimestre de 2012 Corrección de Algoritmos 1 Especificación, algoritmo y programa Especificación de un problema: Qué problema tenemos? Lenguaje formal (ej. lógica
Más detallesAlgoritmos y Estructuras de Datos II
27 de mayo de 2013 Clase de hoy 1 Repaso Divide y vencerás Algoritmos voraces 2 3 Divide y vencerás Algoritmos voraces Repaso cómo vs. qué 3 partes 1 análisis de algoritmos 2 tipos de datos 3 técnicas
Más detallesInteligencia 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
Más detallesModelos de Desarrollo de Programas Y Programación Concurrente Clase N 3: 3 - Paradigmas de Programación
3 - Paradigmas de Programación En los inicios los lenguajes de programación imitaron y abstrajeron las operaciones de una computadora, lo cual trajo aparejado que el tipo de computadora para el cual fueron
Más detallesProgramació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 detallesTeorí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
Más detallesProgramación Declarativa Ejercicios de programación con listas
Programación Declarativa Ejercicios de programación con listas Ejercicio 1 Define versiones recursivas de los siguientes predicados sobre listas: es lista(xs) Xs es una lista bien formada es lista nat(ss)
Más detalles10.4 Sistemas de ecuaciones lineales
Programa Inmersión, Verano 2016 Notas escritas por Dr. M Notas del cursos. Basadas en los prontuarios de MATE 001 y MATE 02 Clase #11: martes, 14 de junio de 2016. 10.4 Sistemas de ecuaciones lineales
Más detallesProgramació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 detallesUniversidad Nacional de Educación a Distancia. Ingeniería Técnica en Informática de Sistemas. Introducción a la Inteligencia Artificial (2º curso)
Universidad Nacional de Educación a Distancia Ingeniería Técnica en Informática de Sistemas Introducción a la Inteligencia Artificial (2º curso) Soluciones exámenes septiembre 2010 Ejercicio 1. (Valoración:
Más detallesINTRODUCCIÓ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 detallesProf. 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
Más detallesClaú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
Más detallesINTRODUCCIÓ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 detallesProgramación imperativa. Algoritmos y Estructuras de Datos I. Ciclos
Programación imperativa Algoritmos y Estructuras de Datos I Segundo cuatrimestre de 2014 Departamento de Computación - FCEyN - UBA Programación imperativa - clase 6 Ciclos y arreglos Entidad fundamental:
Más detallesInteligencia 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 detallesCapítulo 3. Subprogramas. 3.1 Subprogramas FUNCTION
Capítulo 3 Subprogramas Con lo explicado hasta aquí se pueden escribir programas sencillos y no demasiado largos. Pero varias razones justifican la necesidad de disponer de otro tipo de recursos. Por una
Más detallesTema II El Lenguaje Lógico PROLOG
Tema II El Lenguaje Lógico PROLOG Programación Declarativa 1 Prolog El paso del modelo teórico de programación lógica a un lenguaje práctico requiere: La mecanización del método de resolución SLD (reglas
Más detallesPráctica 2. TIPOS DE DATOS SIMPLES
Práctica 2. TIPOS DE DATOS SIMPLES 1 sesión Semana: 15 de octubre OBJETIVOS: Conocer los distintos tipos de datos simples y su correcta utilización en la construcción de algoritmos Formular expresiones
Más detallesEstratégias generales de análisis y diseño de algorítmos
Estratégias generales de análisis y diseño de algorítmos comp-420 Ayudantes Hugo Eduardo Dueñas heduenas@cimat.mx (ordinaria) Alberto José Ramirez Valadez alberto@cimat.mx (ordinaria) Mandar tareas (programas)
Más detallesInteligencia Artificial: Prolog
Inteligencia Artificial: Prolog Aritmética Christopher Expósito-Izquierdo 1, Belén Melián-Batista 2 {cexposit 1, mbmelian 2 }@ull.es Universidad de La Laguna (España) Contenidos Introducción a la Aritmética
Más detallesIsabelle como un lenguaje funcional
Capítulo 1 Isabelle como un lenguaje funcional 1.1 Introducción Nota 1.1.1. Esta notas son una introducción a la demostración asistida utilizando el sistema Isabelle/HOL/Isar. La versión de Isabelle utilizada
Más detallesTEMA 2.1 TIPOS DE PRUEBAS DEL SOFTWARE
TEMA 2.1 TIPOS DE PRUEBAS DEL SOFTWARE INTRODUCCIÓN La prueba del software es un elemento crítico para la garantía de la calidad del software y representa una revisión final de las especificaciones, del
Más detallesInteligencia Artificial II Unidad Plan 2010-Ingeniería en Sistemas Computacionales
Inteligencia Artificial II Unidad Plan 2010-Ingeniería en Sistemas Computacionales Rafael Vázquez Pérez Unidad II:Técnicas de Búsqueda. 2.1. Solución de problemas con búsqueda. 2.2. Espacios de estados.
Más detallesTema 1: Sintaxis y Semántica de la Lógica Proposicional
Tema 1: Sintaxis y Semántica de la Lógica Proposicional Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Lógica y Computabilidad Curso 2010 11 LC, 2010 11 Lógica Proposicional
Más detallesProlog. 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 detallesTUTORIAL 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
Más detallesÍndice del capítulo. Capítulo 4. Expresiones. Las expresiones. Indice de la sección. Lenguajes de Programación. Introducción. 2.
Índice del capítulo Capítulo 4. Expresiones Lenguajes de Programación Capítulo 4. Expresiones 1. Carlos Ureña Almagro 2. Dpt. Lenguajes y Sistemas Informáticos ETSI Informática y de Telecomunicación Universidad
Más detallesProgramando la aplicación para tomar decisiones: Bloques condicionales
Fuente: www.appinventor.org Traducción hecha con Google Traductor y mejorada por mi: piatticarlos@gmail.com Programando la aplicación para tomar decisiones: Bloques condicionales Las computadoras, incluso
Más detallesETAPA Cómo se llaman los profesionales que escriben el código de los programas? Programadores.
ETAPA 1 1. A qué se le llama programa? Es un conjunto de instrucciones, comandos, órdenes o procedimientos escritos en un lenguaje de programación para que una computadora pueda realizar una tarea determinada
Más detallesIntroducción a la indecidibilidad
Introducción a la indecidibilidad José M. empere Departamento de istemas Informáticos y Computación Universidad Politécnica de Valencia Lenguajes y problemas Un problema será considerado cualquier cuestión
Más detallesPráctica 2 de IA /2012. LÓGICA Fecha publicación: 26 de octubre de 2011 Duración: 3 sesiones de laboratorio Versión: 2011/10/26
Práctica 2 de IA - 2011/2012. LÓGICA Fecha publicación: 26 de octubre de 2011 Duración: 3 sesiones de laboratorio Versión: 2011/10/26 Forward y backward chaining en lógica proposicional En la práctica
Más detallesParadigma 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 detallesPHP: Lenguaje de programación
Francisco J. Martín Mateos Carmen Graciani Diaz Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Tipos de datos Enteros Con base decimal: 45, -43 Con base octal: 043, -054
Más detallesSentencias iterativas
Sentencias iterativas 1. Objetivos Al finalizar esta actividad, serás capaz de: 1. Utilizar adecuadamente la sentencia while para generar la repetición en la ejecución de grupos de sentencias 2. Motivación
Más detallesSumador con comprobación (1)
Fundamentos de Informática 2012-2013 Laboratorio 3 Sentencias condicionales Objetivos: Diseñar diagramas de flujo de programas con sentencias condicionales Codificar programas VB con sentencias condicionales
Más detalles5.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
Más detalles3. Ecuaciones Diferenciales Lineales Homogéneas de Orden Superior con Coeficientes Constantes. Ecuaciones Diferenciales de Segundo Orden
3. Lineales Homogéneas de de Segundo Orden Sabemos que la solución general de una ecuación diferencial lineal homogénea de segundo orden está dada por por lo que se tiene dos soluciones no triviales, en
Más detallesEstructura de Datos. Arreglos. Experiencia Educativa de Algorítmica ESTRUCTURA DE DATOS - ARREGLOS 1
Estructura de Datos Arreglos Experiencia Educativa de Algorítmica ESTRUCTURA DE DATOS - ARREGLOS 1 Introducción Una estructura de datos es una colección de datos que pueden ser caracterizados por su organización
Más detallesNotas en lógica básica
Notas basadas en el prontuarios de MATE 3325 Notas escritas por Dr. M Notas en lógica básica En estas notas trabajaremos con lógica básica. Empezamos con argumentos. Todos hemos utilizados argumentos en
Más detallesMetodologí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 aguerra@uv.mx http://www.uv.mx/aguerra
Más detallesLENGUAJES 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
Más detallesClases de complejidad computacional: P y NP
1er cuatrimestre 2006 La teoría de Se aplica a problemas de decisión, o sea problemas que tienen como respuesta SI o NO (aunque es sencillo ver que sus implicancias pueden extenderse a problemas de optimización).
Más detallesMATEMÁTICA 1 JRC El futuro pertenece a aquellos que creen en la belleza de sus sueños
MATEMÁTICA 1 JRC LÓGICA Es la ciencia formal que estudia los principios y procedimientos que permiten demostrar la validez o invalidez de una inferencia, es decir, reconocer entre un razonamiento correcto
Más detallesSintaxis LÓGICA COMPUTACIONAL CÁLCULO DE PROPOSICIONES. Funciones boolenas. Semántica
Proposiciones atómicas y compuestas Sintaxis LÓGICA COMPUTACIONAL CÁLCULO DE PROPOSICIONES Francisco Hernández Quiroz Departamento de Matemáticas Facultad de Ciencias, UNAM E-mail: fhq@cienciasunammx Página
Más detalles