Listas en Prolog. Capítulo. Listas como sujetos
|
|
- Bernardo Chávez Parra
- hace 5 años
- Vistas:
Transcripción
1 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 a la forma de procesamiento de las mismas. L as listas son una herramienta importante en la matemática moderna y en la computación simbólica. Quien está familiarizado con ella, sabe que las listas son una estructura esencial en el lenguaje LISP. El objetivo aquí es mostrar cómo pueden utilizarse las listas para acrecentar la potencia y el alcance de los programas Prolog Listas como sujetos Los predicados que se han definido hasta ahora se aplicaron a individuos simples, se definieron por ejemplo: hombre(juan). hombre(predro). mujer(ana). mujer(maria). donde juan, pedro, ana y maria son individuos particulares. Sin embargo, en el lenguaje corriente es muy común la referencia a conjuntos de cosas. Supongamos que se desea expresar en forma de relaciones al contenido de la frase: Los tomates, las papas, los zapallos y las coles son vegetales. De acuerdo a la forma en que se trabajó en los capítulos anteriores, se podría haber escrito el siguiente grupo de relaciones: vegetales(tomates). vegetales(papas). vegetales(zapallos). vegetales(coles). este hecho también se puede representar refiriéndose a los tomates, patatas, zapallos y coles como a una lista. En tal caso, el predicado vegetales se aplicaría a un solo sujeto, la lista completa: vegetales([tomates,papas,zapallos,coles]) 54
2 logrando de esta manera una representación mucho más clara y concisa de la información contenida en la frase. Una lista en Prolog se define como una colección de términos, encerrados entre corchetes y separados por comas, donde término es una de las siguientes cosas: o Una constante (símbolo) o Un número o Una variable o Una lista Obsérvese que esta definición de lista es recursiva, ya que un elemento puede ser tanto un átomo (constante, número o variable), como otra lista. Los siguientes son ejemplos de listas válidas: [tomates,papas,zapallos,coles] [juan,pedro,jose] [m,k,45,r,pi, Juan Perez ] [a,b,[c,e],[f,g]] El último caso es una lista de cuatro elementos donde los dos primeros son átomos y los dos últimos listas. Una lista puede estar formada por otras listas con cualquier nivel de anidamiento. Así por ejemplo: [[a,b],[[c],d]] es una lista de listas, cuyo primer elemento es una lista de dos elementos (los átomos a y b) y su segundo elemento también es una lista de dos elementos, donde a su vez el primero es una lista de un elemento. Una lista puede ser vacía, la lista vacía en Prolog se denota como: [ ] Volviendo al ejemplo de los vegetales, la consulta:?- vegetales(tomates). tendrá diferente respuesta según se utilice una u otra forma de representación. En el primer caso, la respuesta será positiva, mientras que en el segundo será negativa, debido a que el elemento tomates no puede aparearse con la lista completa. En este sentido la utilización de listas, aunque favorable en términos de la representación de conocimiento, no posibilita consultar directamente a la base de datos acerca de sus elementos individuales. 55
3 Listas de longitud fija Para obtener cada uno de los elementos de una lista se utiliza el concepto de patrón de lista. Un patrón no es más que otra lista (compuesta en su mayor parte de variables), que se intenta unificar con la primera. El intérprete con el fin de lograr dicha unificación instancia las variables del patrón con los elementos de la lista. De manera que si se unifica el patrón [X] con la lista [a], la variable X se instanciará con el elemento a. Del mismo modo, para obtener cada uno de los elementos en la lista de vegetales, se puede realizar la siguiente consulta:?- vegetales([a,b,c,d]). A = tomates B = papas C = zapallos D = coles Quedando instanciadas cada una de las variables con el vegetal correspondiente de la lista. Otros ejemplos posibles son:?- [X] = [a] X = a Yes?- [X,Y]=[a,b]. X = a Y = b Yes?- [X,Y,Z] = [a,b,c]. X = a Y = b Z = c Yes?- [X,Y,Z,W] = [a,b,c,d]. X = a Y = b Z = c W = d Yes Nótese que este ejemplo puede continuar indefinidamente, de manera que para obtener los N elementos de una lista esta debe unificarse con un patrón formado por N variables. Este método sólo puede ser utilizado en el caso que se conozca con exactitud la cantidad de elementos de una lista, pero no puede ser aplicado con listas de longitud desconocida. Listas de longitud desconocida 56
4 Dada una lista de N elementos: [e1,e2,e3,...,en] el primer elemento de denomina la cabeza de la lista y el resto su cola: la cola, a su vez, es una lista que puede dividirse nuevamente en cabeza y cola: y así continuando hasta llegar a la lista de un elemento cuya cola es vacía. De esta manera en los casos es que la longitud de la lista es desconocida es posible utilizar un patrón que permita separar la cabeza y la cola, este patrón se representa en Prolog de la siguiente manera: [Cabeza Cola] donde el símbolo significa seguido de. La variable Cabeza se instancia con el primer elemento y la variable Cola se instancia con una lista formada por el resto de los elementos de la lista. Para el ejemplo anterior: Cabeza = e1 Cola = [e2,e3,...,en] y en el caso de la lista de vegetales: Cabeza = tomates Cola = [papas,zapallos,coles] Es posible escribir una regla que relacione una lista con su cabeza, y otra que relacione una lista con su cola (las funciones CAR y CDR en Lisp respectivamente), de la siguiente manera: es_cabeza(cab,[cab Cola]). es_cola(cola,[cab Cola]). Cabeza [ e1, 1 e2, 44 e3,..., 243 en 4 ] Cola Cabeza [ e2, e3,..., en] Cola Obsérvese que la cabeza de una lista puede ser tanto un elemento como una lista (en caso de ser una lista de listas) pero la cola es, en sí misma, una lista. Por lo tanto, las listas constituyen lo que se denomina una estructura de datos recursiva, puesto que los objetos que la constituyen pueden contener, como subestructura recursiva, objetos del mismo tipo. Los siguientes son ejemplo de intentar unificar distintas listas con el patrón [X Y]: [a] X = a Y = [] 57
5 [a,b] X = a Y = [b] [a,b,c,d] X = a Y = [b,c,d] [[a,b],c] X = [a,b] Y = [c] [[a,b]] X = [a,b] Y = [] [[a,b],[c,d]] X = [a,b] Y = [[c,d]] El patrón [X Y] está asegurando que la lista va ha tener al menos un elemento ya que este no puede unificarse con la lista vacía. Del mismo modo se puede se utiliza un patrón [X,Y Z] para separar los dos primeros elementos y la cola de una lista de al menos dos elementos. Ejemplos con este patrón son: [a] [a,b] [a,b,c,d] [[a,b],c] Falla X = a Y = b Z = [] X = a Y = b Z = [c,d] X = [a,b] Y = c Z = [] Y en general puede usarse patrones para obtener los primeros N elementos de una lista de al menos N elementos, anteponiendo N variables al símbolo. Por otro lado, para el caso de listas de listas, es posible diseñar patrones para obtener elementos de las sublistas, por ejemplo: [[X] Y] [[X Y] Z] [[X,Y Z]] una lista de al menos un elemento, cuya cabeza es una lista de exactamente un elemento una lista de al menos un elemento cuya cabeza sea también una lista de al menos un elemento una lista cuyo único elemento es una lista de al menos dos elementos En este punto ya es posible dar una definición más precisa de lista, se puede decir que L es una lista si: o es la lista vacía o existe otra lista L1 tal que [H L1] es una lista. esto puede ser directamente traducido a Prolog, en la construcción de un predicado es_lista que sea verdadero cuando su único sujeto sea efectivamente una lista: es_lista([]). es_lista([cab Cola]) :- es_lista(cola). De esta manera probar que [a,b] es una lista se reduce a probar: 58
6 es_lista([b]) y esto a su vez en: es_lista([]) lo cual se conoce que es verdadero. Problema Resuelto N 1 Construir un predicado que relacione una lista con su cantidad de elementos. Por ejemplo:?- longitud_de([a,b,c,d,e],x). X = 5 Respuesta Se puede decir que la longitud de una lista es: o cero si es la lista vacía o uno más la longitud de la cola en cualquier otro caso Lo primero puede representarse en Prolog mediante el hecho: longitud_de([],0). Mientras que la segunda afirmación daría lugar a la regla: longitud_de([x Y],L) :- longitud_de(y,lc), L is Lc + 1. Es decir, la longitud de una lista es la longitud de la cola más uno (la cabeza). Listas como conjuntos Una lista puede utilizarse para representar conjuntos en Prolog, siempre que cumpla con las propiedades de los conjuntos de no tener elementos repetidos. De manera que: Atomo Elemento Lista Conjunto En Prolog es posible definir conjuntos por comprensión o por extensión. Por ejemplo el conjunto H que se define por extensión de la siguiente manera: H = {juan,luis,pedro} puede definirse en Prolog mediante la lista: 59
7 [juan,luis,pedro] la cual debe ser sujeto de algún predicado, por ejemplo: padre(jose, [juan,luis,pedro]) El mismo conjunto puede definirse por comprensión de la siguiente manera: H = {X X es hijo de jose} en el mismo sentido existe en Prolog el predicado findall: findall(variable,predicado,lista) donde Lista se unifica con la lista de las instancias de V para las cuales Predicado es verdadero. Por ejemplo, si se encuentran los siguientes hechos almacenados en la base de datos: padre(jose, juan) padre(jose, luis) padre(jose, pedro) la siguiente consulta permitirá obtener la definición por comprensión del mismo conjunto mencionado anteriormente:?- findall(x,padre(jose,x),l). L = [juan,luis,pedro]) Problema Resuelto N 2 Definir el predicado pertenece que será verdadero cuando un elemento pertenezca a un conjunto dado. Por ejemplo:?- pertenece(f,[a,b,d,f,e]). Yes?- pertenece(u,[a,b,d,f,e]). No Respuesta Un elemento pertenece a un conjunto C, representado mediante una lista si: o es la cabeza de la lista (es un elemento del conjunto C) o pertenece a la cola de la lista (pertenece a algún subconjunto de C) La primera opción se representa en Prolog mediante el siguiente hecho: pertenece(x,[x _]). mientras que la segunda situación se puede expresar mediante la regla: 60
8 pertenece(x,[y Z]) :- pertenece(x,z). Vectores En Prolog, puede considerarse a los vectores como conjuntos ordenados representados en forma de listas. Se presenta a continuación una serie de ejemplos en los que se demuestra el tratamiento de arreglos, en forma de listas. Problema Resuelto N 3 Construir un conjunto de reglas para calcular la suma de dos vectores representados mediante listas. Respuesta El primer ejemplo considerado, es la suma de vectores, y el algoritmo procedural para su resolución es el siguiente: Para i =1 hasta n S(i) = A(i) + B(i) fin para donde A y B son los vectores a sumar, y S el vector resultado. Para su definición en Prolog, puede considerarse un predicado ternario es_suma_de_vectores, cuyos sujetos sean el vector suma S y los vectores sumandos A y B. Utilizando la técnica recursiva, puede pensarse que un vector S es la suma de otros dos vectores A y B, si la cabeza de S es la suma de las cabezas de A y B, y además el vector cola de S es la suma de los vectores cola de A y B; y la suma es un vector vacío, si los vectores a sumar son vacíos (caso embrionario). El conjunto de reglas lógicas necesarias para definir la suma de vectores en Prolog se definen entonces de la siguiente manera (los prefijos Ca y Co son utilizados para referirse a la cabeza y cola de una lista, respectivamente): es_suma_de_vectores ([ ], [ ], [ ]). es_suma_de_vectores ([CaS CoS], [CaA CoA], [CaB CoB]) :- CaS is CaA + CaB, es_suma_de_vectores (CoS, CoA, CoB). Problema Resuelto N 4 Construir un juego de reglas que relacione un vector con el mismo vector ordenado mediante el método de selección. Respuesta Una de las numerosas formas de ordenamiento de vectores, es el método de selección. El algoritmo de ordenamiento por selección de un vector de n elementos queda definido a través de los siguientes pasos: o Encontrar el mayor elemento del vector. o Intercambiar el elemento mayor con el elemento de subíndice n. 61
9 o A continuación se busca el elemento mayor en el vector hasta el subíndice n-1, y se intercambia con el elemento de esa posición, por consiguiente, se sitúa el segundo elemento mayor en la posición n- 1. o A continuación se busca el elemento mayor en el vector hasta n-2, y así sucesivamente. Enfoque Procedural: Para j=n hasta 2 decrementando 1 Mayor = V(j) Posicion = j Para i = j-1 hasta 1 decrementando 1 Si V(i) > Mayor Mayor <- V(i) Posicion <- j fin si fin para intercambiar (V(j), V(Posicion)) fin para Enfoque Lógico: Debido a que con listas es mas natural la referencia al primero (la cabeza) que al último, en el juego de reglas que se propone a continuación se trabaja con el análogo lógico de la búsqueda del menor y el intercambio con la cabeza. En lenguaje natural: "Un vector VO representado en forma de lista es_ordenado_de otro vector V, si la cabeza de VO es el elemento menor de V y la cola de VO es_ordenado_de el vector formado por los elementos de V menos el menor". es_ordenado_de ([ ], [ ]). es_ordenado_de ([Menor Ordenado], V) :- es_el_menor_de (Menor, V), es_v_sin_el_menor (V1, V, Menor), es_ordenado_de (Ordenado, V1). El predicado es_el_menor_de relaciona el átomo menor con la lista a la que pertenece. Una posibilidad es que el menor sea la cabeza, es decir: "la cabeza de una lista es el menor de sus elementos, si es menor que el menor de la cola", en código: es_el_menor_de (CaV, [CaV CoV]) :- es_el_menor_de (X, CoV), CaV < X. La otra posibilidad es que el menor sea un elemento de la cola, es decir: "un elemento es el menor de una lista si es el menor de la cola y además es menor que la cabeza", en código: es_el_menor_de (X, [CaV CoV]) :- es_el_menor_de (X, CoV), X < CaV. Para la definición del caso embrionario, se parte del hecho que el elemento de una lista de un solo elemento es el menor de la lista: es_el_menor_de (CaV, [CaV]). 62
10 Finalmente, el vector V1 es el formado por todos los elementos del vector V menos el elemento X. es_v_sin_el_menor (CoV, [X CoV], X). es_v_sin_el_menor ([CaV VA], [CaV CoV], X) :- CaV <> X, es_v_sin_el_menor (VA, CoV, X). 63
Tema 2. Fundamentos de la Teoría de Lenguajes Formales
Departamento de Tecnologías de la Información Tema 2. Fundamentos de la Teoría de Lenguajes Formales Ciencias de la Computación e Inteligencia Artificial Índice 2.1. Alfabeto 2.2. Palabra 2.3. Operaciones
Más detallesCONTENIDO. 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
Más detallesProgramació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:
Más detallesTemas. Objetivo. Símbolo, alfabeto. Hileras y operaciones con hileras. Operaciones con lenguajes
0 1 Temas Símbolo, alfabeto Hileras y operaciones con hileras Operaciones con lenguajes Objetivo Que el estudiante logre conocer, comprender y manejar conceptos vinculados con la Teoría de Lenguajes Formales
Más detallesMáquinas de estado finito y expresiones regulares
Capítulo 3 Máquinas de estado finito y expresiones regulares En este tema definiremos y estudiaremos máquinas de estado finito, llamadas también máquinas de estado finito secuenciales o autómatas finitos.
Más detallesCONJUNTOS. Por ejemplo, el E del ejemplo 2 se escribe.
CONJUNTOS La teoría de conjuntos nos permite describir de forma precisa conjuntos de números, de personas, de objetos, etc que comparten una propiedad común. Esto puede ser de gran utilidad al establecer
Más detallesProgramación con Listas
Capítulo 2 Programación con Listas En Prolog la estructura de lista está predefinida como una estructura recursiva lineal cuyas componentes pueden ser heterogéneas porque en Prolog no existe una comprobación
Más detallesCENTRO DE BACHILLERATO TECNOLOGICO INDUTRIAL Y DE SERVICIOS NO. 21. Profesor Enrique López Vásquez Algebra
CENTRO DE BACHILLERATO TECNOLOGICO INDUTRIAL Y DE SERVICIOS NO. 21 Profesor Enrique López Vásquez Algebra Mexicali B.C. FEBRERO NOV 2018 Concepto de algebra Álgebra es el nombre que identifica a una rama
Más detallesSi un objeto x es elemento de un conjunto A, se escribe: x A.
Conjuntos. Dentro de la teoría se consideran como primitivos o términos no definidos los conjuntos y los elementos. En general, se designan los conjuntos usando letras latinas mayúsculas y los elementos
Más detallesIntroducción a la programación. Cecilia Manzino
Paradigmas Un paradigma es un modelo o patrón en cualquier disciplina científica. Un paradigma de programación representa un estilo de programación en cual se escriben soluciones a problemas en términos
Más detallesNo todos los LRs finitos se representan mejor con ERs. Observe el siguiente ejemplo:
1 Clase 3 SSL EXPRESIONES REGULARES Para REPRESENTAR a los Lenguajes Regulares. Se construyen utilizando los caracteres del alfabeto sobre el cual se define el lenguaje, el símbolo y operadores especiales.
Más detallesMÓDULO I. CONCEPTOS BÁSICOS GENERALES SUMATORIA
UNIVERSIDAD NACIONAL EXPERIMENTAL DE LOS LLANOS OCCIDENTALES EZEQUIEL ZAMORA VICE-RECTORADO DE PLANIFICACIÓN Y DESARROLLO SOCIAL PROGRAMA CIENCIAS SOCIALES Y JURIDICAS SUBPROGRAMA ADMINISTRACIÓN SUBPROYECTO:
Más detallesNúmeros naturales y recursividad
Números naturales y recursividad Rafael F. Isaacs G. * Fecha: 12 de abril de 2004 Números naturales Cuál es el primer conjunto de números que estudiamos desde la escuela primaria? Se sabe que los números
Más detallesTitulo: TERMINOS SEMEJANTES Año escolar: 1ER: año de bachillerato Autor: José Luis Albornoz Salazar Ocupación: Ing Civil. Docente Universitario País de residencia: Venezuela Correo electrónico: martilloatomico@gmail.com
Más detallesMatemática I C.F.E. I.N.E.T. Profesorado de Informática Conjuntos
Conjuntos Conceptos primitivos: CONJUNTO, ELEMENTO, PERTENECE. Pertenecer- Elemento Sea el conjunto de los ríos del Uruguay. El Río Negro es un río del Uruguay. Entonces, este río es un elemento del conjunto
Más detallesCapítulo I ELEMENTOS PREVIOS
Capítulo I ELEMENTOS PREVIOS Antes de iniciar lo referente a Criterios de Divisibilidad, recordaremos algunos conceptos y propiedades previas que nos permitirán comprender de mejor manera el contenido
Más detallesListas. 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
Más detallesPrograma Nacional de Formación de Informática Material Educativo Computarizado de Algorítmica y Programación
UNIDAD CURRICULAR: ALGORITMICA Y PROGRAMACIÓN UNIDAD III. DATOS Y ENTIDADES PRIMITIVAS CONTENIDO: Concepto y diferencia entre dato e información, tipos de datos. Los operadores: concepto y tipos La expresión:
Más detallesTema 2: Lenguajes Formales. Informática Teórica I
Tema 2: Lenguajes Formales Informática Teórica I Teoría de Lenguajes Formales. Bibliografía M. Alfonseca, J. Sancho y M. Martínez. Teoría de Lenguajes, Gramáticas y Autómatas, R.A.E.C., Madrid, (1998).
Más detallesProgramación recursiva en Prolog
Programación recursiva en Prolog Curso 2002/03, Fecha:14/12/2002 Enunciado 1 (naturales) El siguiente predicado define la suma de números naturales representados mediante la constante 0 y la función siguiente
Más detallesLenguajes y Gramáticas
Lenguajes y Gramáticas Teoría de Lenguajes Fernando Naranjo Introduccion Se desarrollan lenguajes de programación basados en el principio de gramática formal. Se crean maquinas cada vez mas sofisticadas
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 detallesÁlgebra Booleana. Suma Booleana. El término suma es 1 si al menos uno de sus literales son 1. El término suma es 0 solamente si cada literal es 0.
Álgebra Booleana El álgebra de Boole son las matemáticas de los sistemas digitales. En el nivel de lógica digital de una computadora, lo que comúnmente se llama hardware y que está formado por los componentes
Más detallesEstructuras Discretas. Conjuntos. Conjuntos & Funciones. Especificación de Conjuntos.
Estructuras Discretas Conjuntos Conjuntos & Funciones Claudio Lobos clobos@inf.utfsm.cl niversidad Técnica Federico Santa María Estructuras Discretas INF 152 Definición: conjunto n conjunto es una colección
Más detallesPreliminares. 1. Notación simbólica. Conjuntos. También se da en el curso de Conjuntos y Numeros.
CAPíTULO 1 Preliminares 1. Notación simbólica. Conjuntos. También se da en el curso de Conjuntos y Numeros. El método matemático es axiomático y deductivo: a partir de unos principios aceptados inicialmente
Más detallesTema 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 detallesProgramación MODULAR: Subalgoritmos - funciones y procedimientos
Programación MODULAR: Subalgoritmos - funciones y procedimientos Uno de los métodos fundamentales para resolver un problema es dividirlo en problemas más pequeños, llamados subproblemas. Estos problemas
Más detalles1.1 Conceptos básicos de la teoría de conjuntos
Copyright 204. Grupo Editorial Patria. ll rights reserved. NIDD. Conceptos básicos de la teoría de conjuntos La expresión conjunto es un término matemático introducido en 879, por Georg Cantor (845-98).
Más detallesSESIÓN N 07 III UNIDAD RELACIONES Y FUNCIONES
SESIÓN N 07 III UNIDAD RELACIONES Y FUNCIONES RELACIONES BINARIAS PAR ORDENADO Es un arreglo de dos elementos que tienen un orden determinado donde a es llamada al primera componente y b es llamada la
Más detallesTeoría de Conjuntos DEFINICION DE CONJUNTO
Teoría de Conjuntos Teoría de Conjuntos Teoría de conjuntos es un instrumento matemático adecuado para la sistematización de nuestra forma de pensar, y permitir nuestra capacidad de análisis y comprensión
Más detallesResumen de teoría elemental de conjuntos (primera parte) Javier Castro Albano
Resumen de teoría elemental de conjuntos (primera parte) Javier Castro Albano 1. Conjuntos, elementos, pertenencia El término conjunto es un término primitivo de la teoría de conjuntos. No se lo define.
Más detallesTeoría de la Computación
Teoría de la Computación Ing. En Sistemas Computacionales Profesor: José Julio González Álvarez Alumno: Jesús Enríquez Cardoza La teoría de conjuntos es una rama de las matemáticas que estudia las propiedades
Más detallesAritmetica de matriz compleja Objeto cmatrix
Aritmetica de matriz compleja Objeto cmatrix Tabla de contendido Definicion Operaciones matriciales o Suma o Resta o Multiplicacion por un escalar o Multiplicación matricial: o Potecia de una matrix o
Más detallesAlgoritmos 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
Más detallesLógica - Conjuntos inductivos
Lógica - Conjuntos inductivos Matemática discreta y Lógica I Mayo de 2017 Las transparencias son tomadas del curso de Lógica del instituto de computación de Facultad de Ingeniería. Inducción - Plan Conjuntos
Más detallesPROGRAMACIÓN ESTRUCTURADA
FACULTAD DE INGENIERÍA Universidad Nacional de Jujuy PROGRAMACIÓN ESTRUCTURADA Trabajo Práctico Nº 10 Tema: Arreglos. Actualización y Búsqueda Apellido y Nombre: Fecha: / / Conceptos Teóricos RESPONDA
Más detallesPrograma de Acceso Inclusivo, Equidad y Permanencia. PAIEP, Universidad de Santiago
Guía de vectores. Vectores En matemática, un vector es una herramienta geométrica utilizada para representar una magnitud física definida en un sistema de referencia que se caracteriza por tener módulo
Más detallesLenguaje de Diseño: Estructuración de Datos
Teoría Nº 8 Lenguaje de Diseño: Estructuración de Datos Resolución de Problemas y Algoritmos Primer Cuatrimestre ENUNCIADO: DADO UN NÚMERO ENTERO POSITIVO, ENCONTRAR EL ALGORITMO QUE DETERMINE EL FACTORIAL
Más detallesTema: Métodos de Ordenamiento. Parte 3.
Programación IV. Guía No. 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación IV Tema: Métodos de Ordenamiento. Parte 3. Objetivos Específicos Identificar la estructura de algunos algoritmos
Más detallesJohn Venn Matemático y filósofo británico creador de los diagramas de Venn
Georg Cantor Matemático Alemán creador de la teoría de conjuntos John Venn Matemático y filósofo británico creador de los diagramas de Venn August De Morgan Matemático ingles creador de leyes que llevan
Más detallesJohn Venn Matemático y filósofo británico creador de los diagramas de Venn
Georg Cantor Matemático Alemán creador de la teoría de conjuntos John Venn Matemático y filósofo británico creador de los diagramas de Venn August De Morgan Matemático ingles creador de leyes que llevan
Más detallesUnidad 2. Notación matemática
Unidad 2 Notación matemática Notación matemática Introducción En el transcurso del texto se hará evidente que el análisis estadístico de un conjunto de datos requiere, en general, de un buen número de
Más detallesMatemáticas 2º E.S.P.A. Pág.1 C.E.P.A. Plus Ultra. Logroño
ALGEBRA 1. LETRAS EN VEZ DE NÚMEROS En muchas tareas de las matemáticas es preciso trabajar con números de valor desconocido o indeterminado. En esos casos, los números se representan por letras y se operan
Más detallesClase 8 Matrices Álgebra Lineal
Clase 8 Matrices Álgebra Lineal Código Escuela de Matemáticas - Facultad de Ciencias Universidad Nacional de Colombia Matrices Definición Una matriz es un arreglo rectangular de números denominados entradas
Más detallesCAPÍTULO 2. ÁRBOLES 2.0. CONCEPTOS GENERALES
CAPÍTULO 2. ÁRBOLES 2.0. CONCEPTOS GENERALES Los árboles (en general) se utilizan para representar fórmulas algebraicas, para organizar objetos en orden de tal forma que las búsquedas sean muy eficientes
Más detallesx-z = 0 x+y+2 = [2012] [SEP-B] Halla el punto simétrico del P(2,1,-5) respecto de la recta r definida por
1. [01] [SEP-B] Halla el punto simétrico del P(,1,-5) respecto de la recta r definida por x-z = 0 x+y+ = 0.. [01] [SEP-A] Sean los puntos A(0,0,1), B(1,0,-1), C(0,1,-) y D(1,,0). a) Halla la ecuación del
Más detallesResumen de teoría elemental de conjuntos (segunda parte) Javier Castro Albano
Resumen de teoría elemental de conjuntos (segunda parte) Javier Castro Albano 11. El conjunto potencia Dado un conjunto A, el conjunto de partes de A, P(A), llamado también el conjunto potencia de A es
Más detallesIntroducción. Las gramáticas definen las reglas que definen a los lenguajes Las reglas pueden tener una diversa variedad de esquemas
Gramáticas Introducción Las gramáticas definen las reglas que definen a los lenguajes Las reglas pueden tener una diversa variedad de esquemas En algunos lenguajes, una sucesión de símbolos depende del
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 detallesRelaciones. Estructuras Discretas. Relaciones. Relaciones en un Conjunto. Propiedades de Relaciones en A Reflexividad
Estructuras Discretas Relaciones Definición: relación Relaciones Claudio Lobos, Jocelyn Simmonds clobos,jsimmond@inf.utfsm.cl Universidad Técnica Federico Santa María Estructuras Discretas INF 152 Sean
Más detalles3.3. TEORÍA BÁSICA DE CONJUNTOS Utilizar tablas de verdad para comprobar la equivalencia lógica p q p q.
3.3. TEORÍA BÁSICA DE CONJUNTOS 83 a) p q b) p q c) q p 7. Sabiendo que la proposición compuesta ( q) (q p) es falsa, indicar cuál es el valor de verdad de las proposiciones p y q. 8. Utilizar tablas de
Más detallesCLASE 1 LENGUAJE ALGEBRAICO
Unidad de álgebra CLASE 1 LENGUAJE ALGEBRAICO COMPLETE LA TABLA Y DEFINA CON QUÉ EXPRESIÓN PODEMOS REPRESENTAR LA SIGUIENTE SECUENCIA: Número triángulos Cantidad fósforos COMPLETE LA TABLA Y DEFINA CON
Más detallesLECCIÓN Nº 02 FUNCIONES DE LOGICA COMBINACIONAL (PARTE 1)
LECCIÓN Nº 02 FUNCIONES DE LOGICA COMBINACIONAL (PARTE 1) 1. CONVERSORES DE CODIGO La disponibilidad de una gran variedad de códigos para los mismos elementos discretos de información origina el uso de
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 detallesINDUCCIÓN. Inducción - 2
INDUCCIÓN Inducción - 1 Inducción - Plan Conjuntos Inductivos Inducción como mecanismo primitivo para definir conjuntos Pruebas Inductivas Principios de inducción asociados a los conjuntos inductivos como
Más detallesINDUCCIÓN Instituto de Computación Lógica Inducción - 1
INDUCCIÓN Inducción - 1 Inducción - Plan Conjuntos Inductivos Inducción como mecanismo primitivo para definir conjuntos Pruebas Inductivas Principios de inducción asociados a los conjuntos inductivos como
Más detallesLenguaje de Diseño: Estructuración de Datos
Teoría Nº 6 Lenguaje de Diseño: Estructuración de Datos Segundo Cuatrimestre Un palíndromo es una palabra, o frase que se lee igual hacia adelante que hacia atrás. Si se trata de un número, se llama capicúa.
Más detallesProgramació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 detallesProbabilidad y Estadística
Probabilidad y Estadística M.C. Marcos Samuel López Rivera Conjuntos. Un conjunto puede considerarse como una colección de objetos, llamados miembros o elementos del conjunto. Denotamos un conjunto por
Más detallesSoluciones a los ejercicios
Soluciones a los ejercicios PROBLEMA 1: Sea la gramática G = {V, T, S, P }, donde V = {a, b, A, A, B, S}, T = {a, b}, S es el símbolo inicial y P = {S ::= ABa, A ::= BB, B ::= ab, AB ::= b}. ¾Se deriva
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 detallesBLOQUE V. CONTROL Y PROGRAMACIÓN DE SISTEMAS AUTOMÁTICOS
Bloque V. Control y programación de sistemas automáticos pág. 1 Bloque V. Control y programación de sistemas automáticos pág. 2 BLOQUE V. CONTROL Y PROGRAMACIÓN DE SISTEMAS AUTOMÁTICOS 1. LA INFORMACIÓN
Más detallesBLOQUE V. CONTROL Y PROGRAMACIÓN DE SISTEMAS AUTOMÁTICOS
Bloque V. Control y programación de sistemas automáticos pág. 1 BLOQUE V. CONTROL Y PROGRAMACIÓN DE SISTEMAS AUTOMÁTICOS 1. LA INFORMACIÓN BINARIA 1.1. Sistemas de numeración y códigos Def. Sistema de
Más detallesEstructuras de Repetición
1 Estructuras de Repetición 2013 Transversal de Programación Básica Proyecto Curricular de Ingeniería de Sistemas 2 Objetivos Aprender a construir grandes y complejos problemas a través de la ejecución
Más detallesEl 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
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 detallesIntroducción al Modelado de Sistemas Capítulo 4
Introducción al Modelado de Sistemas Capítulo 4 Camilo Rueda 1 de agosto de 2013 1. Operadores sobre expresiones y predicados en Event B Como se ha mencionado en los capítulos anteriores, el lenguaje de
Más detallesUNIVERSIDAD LUTERANA SALVADOREÑA. Docente: ANA LISSETTE GIRÓN
UNIVERSIDAD LUTERANA SALVADOREÑA CARRERA: LIC. EN CIENCIAS DE LA COMPUTACIÓN PROYECTO: PORTAFOLIO ALGORTIMO I Docente: ANA LISSETTE GIRÓN INTEGRANTES: VERÓNICA SUSANA CRUZ MARTÍNEZ HEBER ERNESTO MIJANGO
Más detallesOrganización de computadoras y lenguaje ensamblador
Organización de computadoras y lenguaje ensamblador Algebra de Boole Instituto Tecnológico de Costa Rica IC-2100 II Semestre 2011 Prof. Marlen Treviño 0 Mapas de Karnaugh Agenda Mapas de Karnaugh Mapas
Más detallesTEMA 4 VECTORES VECTORES TEMA 4. 1.º BACHILLERATO - CIENCIAS VECTOR FIJO. VECTOR LIBRE. SUMA DE VECTORES LIBRES
TEMA 4 VECTORES VECTOR FIJO. VECTOR LIBRE. Un ector fijo en IR 2 está determinado por dos puntos A y B, llamados respectiamente, origen y extremo del ector. Su representación gráfica es una flecha que
Más detallesx-z = 0 x+y+2 = [2012] [EXT-B] Halla el punto simétrico del P(2,1,-5) respecto de la recta r definida por
x = 1+t 1. [014] [EXT-A] Considera los puntos A(1,1,) y B(1,-1,-) y la recta dada por y = t. z = 1 a) Halla la ecuación general del plano que que contiene a r y es paralelo a la recta que pasa por A y
Más detallesCONJUNTOS. Los conjuntos son conceptos primitivos que representan una totalidad, una reunión de cosas.
CONJUNTOS CPR. JORGE JUAN Xuvia-Narón Los conjuntos son conceptos primitivos que representan una totalidad, una reunión de cosas. Un conjunto está formado por una serie de elementos susceptibles de poseer
Más detallesTEMA 1: NÚMEROS NATURALES. SISTEMA DE NUMERACIÓN
1 TEMA 1: NÚMEROS NATURALES. SISTEMA DE NUMERACIÓN 1. INTRODUCCIÓN Los números naturales aparecen debido a la necesidad que tiene el hombre para contar. Para poder construir este conjunto N, podemos seguir
Más detalles4.3. Subespacios vectoriales
4.3 Subespacios vectoriales Concepto de subespacio vectorial Un subconjunto H de un espacio vectorial V es un subespacio vectorial de V si, con las operaciones de V de suma de vectores y multiplicación
Más detallesLa estrategia de descomposición basada en una violación de la FNBC que aplicaremos consiste en:
CC42A Auxiliar #4 Forma normal de Boyce-Codd (FNBC), tercera forma normal (3FN), dependencias multivaluadas, cuarta forma normal (4FN) Martes, 10 de Septiembre de 2002 Profesor: Claudio Gutiérrez Auxiliar:
Más detallesCentro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Lógica y Estructuras Discretas Tutor: Antonio Rivero Cuesta Tema 3 Conjuntos, Relaciones y Funciones Conjuntos y Operaciones Los conjuntos se representan con letras mayúsculas,
Más detallesTipo de Dato: Arreglos
Tipo de Dato: Arreglos Unidimensionales Prof. Judith Barrios Albornoz Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Semestre A_2013 Este
Más detallesLógica Instituto de Computación. 27 de febrero
Inducción Lógica 2018 Instituto de Computación 27 de febrero Instituto de Computación (InCo) Inducción Curso 2018 1 / 1 Inducción - Plan Conjuntos inductivos Inducción como mecanismo primitivo para definir
Más detallesUNIDAD II: TEORÍA DE CONJUNTOS 2.1. INTRODUCCIÓN
UNDD : TEORÍ DE CONJUNTOS 2.1. NTRODUCCÓN Según Georg Cantor un conjunto es la reunión, agrupación o colección de elementos bien definidos que tienen una propiedad en común, concepto que ha penetrado y
Más detallesInducción Matemática Conjuntos Funciones. Matemática Discreta. Agustín G. Bonifacio UNSL. Repaso de Inducción, Conjuntos y Funciones
UNSL Repaso de Inducción, y Inducción Matemática (Sección 1.7 del libro) Supongamos que queremos demostrar enunciados del siguiente tipo: P(n) : La suma de los primeros n números naturales es n(n+1)
Más detallesCAPITULO 2: LENGUAJES
CAPITULO 2: LENGUAJES 2.1. DEFINICIONES PREIAS SIMBOLO: Es una entidad indivisible, que no se va a definir. Normalmente los símbolos son letras (a,b,c,.., Z), dígitos (0, 1,.., 9) y otros caracteres (+,
Más detallesNOTAS DE ESTUDIO DE ÁLGEBRA LINEAL M.C. MARCOS CAMPOS NAVA TEC DE ATITALAQUIA
Hasta ahora se han discutido algunas de las propiedades de objetos matemáticos llamados matrices. Un caso de especial interés son las matrices cuadradas, por ejemplo: Se sabe que esta matriz es invertible
Más detallesDefiniciones previas
Máquina de Turing Definiciones previas Definición. Alfabeto: Diremos que un conjunto finito Σ es un alfabeto si Σ y ( x)(x Σ x es un símbolo indivisible) Ejemplos Σ ={a,b}, Σ ={0,1}, Σ ={a,b, z} son alfabetos
Más detallesIntroducción a la programación
1 Introducción a la programación Marduk Bolaños Puchet Miércoles 28 de agosto de 2012 Parte I Algoritmos y programación Algoritmos y programación 2 Algoritmo Un algoritmo es una secuencia ordenada, finita
Más detallesProgramación Declarativa
Programación Declarativa Ingeniería Informática Especialidad de Computación Cuarto curso. Primer cuatrimestre Escuela Politécnica Superior de Córdoba Universidad de Córdoba Curso académico: 2018 2019 Práctica
Más detallesALGORITMOS II PSEUDOCODIGOS INTRODUCCION AL PSEINT CORPODICES VICTOR ANDRES OCHOA CORREA
ALGORITMOS II PSEUDOCODIGOS INTRODUCCION AL PSEINT CORPODICES VICTOR ANDRES OCHOA CORREA CONTENIDOS Definición de un algoritmo Tipos de datos Representaciones de un algoritmo Lenguaje natural Pseudocódigo
Más detallesNOTAS PARA LOS ALUMNOS DEL CURSO DE ANALISIS MATEMATICO III TEORÍA DE CONJUNTOS. Ing. Juan Sacerdoti
NOTAS PARA LOS ALUMNOS DEL CURSO DE ANALISIS MATEMATICO III TEORÍA DE CONJUNTOS Ing. Juan Sacerdoti Facultad de Ingeniería Departamento de Matemática Universidad de Buenos Aires 2003 V 2.03 ÍNDICE 2.-
Más detallesObjetivos de la práctica: - Trabajar las estructuras de control repetitivas en la realización de programas.
Objetivos de la práctica: - Trabajar las estructuras de control repetitivas en la realización de programas. Sentencias de Control repetitivas (o bucles) Al igual que las estructuras selectivas, el bucle
Más detallesCONJUTOS NÚMERICOS NÚMEROS NATURALES
CONJUTOS NÚMERICOS NÚMEROS NATURALES El conjunto de números naturales tiene gran importancia en la vida práctica ya que con sus elementos se pueden encontrar elementos u objetos de otros conjuntos. El
Más detallesMétodos de Conteo y Principio del Palomar. Matemática Discreta. Agustín G. Bonifacio UNSL
UNSL Métodos de Conteo y s (a) Cuántas cadenas de longitud 4 se pueden formar usando las letras A,B,C,D y E si no se aceptan repeticiones? 5. 4. 3. 2 = 120. (b) Cuántas cadenas del inciso (a) comienzan
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 detallesMatemáticas Discretas TC1003
Matemáticas Discretas TC1003 Teoría de s: Definiciones Básicas Departamento de Matemáticas / Centro de Sistema Inteligentes ITESM Teoría de s: Definiciones Básicas Matemáticas Discretas - p. 1/28 En esta
Más detallesLenguaje de Diseño: Estructuración de Datos
Teoría Nº 6 Lenguaje de Diseño: Estructuración de Datos Primer Cuatrimestre Un palíndromo es una palabra, o frase que se lee igual hacia adelante que hacia atrás. Si se trata de un número, se llama capicúa.
Más detallesTema 4: Gramáticas independientes del contexto. Teoría de autómatas y lenguajes formales I
Tema 4: Gramáticas independientes del contexto Teoría de autómatas y lenguajes formales I Bibliografía Hopcroft, J. E., Motwani, R., y Ullman, J. D. Introducción a la Teoría de Autómatas, Lenguajes y Computación.
Más detallesConceptos Preliminares
Conceptos Preliminares Igualdad de matrices Definición: Dos matrices son iguales cuando tienen la misma dimensión y los elementos que ocupan la misma posición en ambas son iguales. Estas matrices cumplen
Más detallesMÉTODOS MATEMÁTICOS DE LA FÍSICA I
MÉTODOS MATEMÁTICOS DE LA FÍSICA I Ignacio Sánchez Rodríguez Curso 2006-07 TEMA PRELIMINAR ÍNDICE 1. Lenguaje matemático 2 2. Conjuntos 6 3. Aplicaciones 10 4. Relaciones 12 5. Estructuras algebraicas
Más detalles