EJERCICIOS RESUELTOS DE PROLOG
|
|
- Daniel Salinas Bustos
- hace 5 años
- Vistas:
Transcripción
1 Ejercicio N 1 EJERCICIOS RESUELTOS DE PROLOG Dado el grafo dirigido representado en la siguiente figura: b c a d e Una representación para el mismo en Prolog podría consistir en una lista que contenga dos sublistas: una representando el conjunto de nodos (o vértices) y otra representando el conjunto de arcos, donde cada arco es a su vez una lista de dos elementos, el nodo inicial y el final. Por ejemplo: (A) [[a b c d e] [[a b] [b c] [b d] [c e] [d a] [d e] [e a]]] Otra representación válida consiste en una lista de listas, donde cada sublista contiene como elementos un nodo y una lista de los nodos hacia los cuales éste está conectado, por ejemplo: (B) [[a [b]] [b [c d]] [c [e]] [d [a e]] [e [a]]] te que el elemento [d [a e]] representa la existencia de los arcos [d a] y [d e] en la representación anterior. Una tercera representación, basada en la idea de (B), considera que cada sublista contiene el nodo en primer lugar seguido de la lista de nodos con los cuales está conectado (sin colocar estos dentro de otra lista), por ejemplo: (C) [[a b] [b c d] [c e] [d a e] [e a]] (te que esta representación es más sencilla que la anterior) Se le pide que desarrolle predicados que permitan obtener: a) la representación (A) de un grafo dado en la representación (B)... y viceversa. b) la representación (A) de un grafo dado en la representación (C)... y viceversa. c) la representación (B) de un grafo dado en la representación (C)... y viceversa. La transformación entre la representación (A) y otra tal como (B) no puede definirse con un único predicado que brinde ambos servicios, por lo cual será necesario definir cada sentido de la consulta en forma separada. % Pasar de (A) ---> (B) pasarab([dos, Arcos], Resultado):- pasarab_sublista(dos, Arcos, Resultado). pasarab_sublista([],_,[]). pasarab_sublista([do Ns], Arcos, [[do, Conectados] Rs]):- pasarab_arcos(do, Arcos, Conectados), pasarab_sublista(ns, Arcos, Rs). Ejercicios Resueltos Prolog 1
2 pasarab_arcos(_, [], []). pasarab_arcos(n1, [[N1,N2] As], [N2 Ns]):- pasarab_arcos(n1, As, Ns). pasarab_arcos(n1, [[N2,_] As], Ns):- N1 \= N2, pasarab_arcos(n1, As, Ns). % Pasar de (A) ---> (C) pasarac(grafoa, GrafoC):- pasarab(grafoa, GrafoB), pasarbc(grafob, GrafoC). % Pasar de (B) ---> (C) pasarbc([], []). pasarbc([[do,conectados] Xs], [[do Conectados] Ys]):- pasarbc(xs, Ys). % Pasar de (B) ---> (A) pasarba(grafo, [dos, Arcos]):- pasarba_armar(grafo, dos, Arcos). pasarba_armar([], [], []). pasarba_armar([[do, Conectados] Rs], [do Ns], Arcos):- pasarba_arcos(do, Conectados, Arcosdo), pasarba_armar(rs, Ns, As), concatenar(arcosdo, As, Arcos). pasarba_arcos(_n, [], []). pasarba_arcos(n, [C Cs], [[N,C] Rs]):- pasarba_arcos(n, Cs, Rs). % Pasar de (C) ---> (A) pasarca(grafoc, GrafoA):- pasarcb(grafoc, GrafoB), pasarba(grafob, GrafoA). % Pasar de (C) ---> (B) pasarcb(grafoc, GrafoB):- pasarbc(grafob, GrafoC). concatenar([], L, L). concatenar([x Xs], Y, [X Zs]):- concatenar(xs, Y, Zs). grafoa( [[a,b,c,d,e],[[a,b],[b,c],[b,d],[c,e],[d,a],[d,e],[e,a]]] ). grafob( [[a,[b]],[b,[c,d]],[c,[e]],[d,[a,e]],[e,[a]]] ). grafoc( [[a,b],[b,c,d],[c,e],[d,a,e],[e,a]] ). Consultas (trabajando siempre con el grafo de la figura) En general:? grafox( X ), pasarxy( X, Y ). donde X e Y serán A, B o C, según el caso que se desee probar. Ejercicios Resueltos Prolog 2
3 Ejemplos:? grafoa( A ), pasarab( A, B ). A = [[a, b, c, d, e], [[a, b], [b, c], [b, d], [c, e], [d, a], [d, e], [e, a]]] B = [[a, [b]], [b, [c, d]], [c, [e]], [d, [a, e]], [e, [a]]] ;? grafob( B ), pasarbc( B, C ). B = [[a, [b]], [b, [c, d]], [c, [e]], [d, [a, e]], [e, [a]]] C = [[a, b], [b, c, d], [c, e], [d, a, e], [e, a]] ;? grafoc( C ), pasarca( C, A ). C = [[a, b], [b, c, d], [c, e], [d, a, e], [e, a]] A = [[a, b, c, d, e], [[a, b], [b, c], [b, d], [c, e], [d, a], [d, e], [e, a]]] ; Ejercicio N 2 Realizar un predicado invertir que dada una lista de listas de longitud 2 o mayor, evalúe True si el segundo argumento es otra lista cuyos elementos están invertidos. invertir([[a, 1], [a, 2], [b, 1], [b, 2]], [[2, b], [1, b], [2, a], [1, a]]) True Las listas que deben ser tratadas no se deben limitar a una profundidad de dos niveles de paréntesis. Se deben considerar listas de cualquier nivel de anidamiento. concatenar([], L, L). concatenar([x Xs], Y, [X Zs]):- concatenar(xs, Y, Zs). invertir([], []). invertir([x Y], A):- atomic(x), invertir(y, B), concatenar(b, [X], A). invertir([x Y], A):- not(atomic(x)), invertir(x, X1), invertir(y, B), concatenar(b, [X1], A). Ejemplos de consultas:? invertir([[a, 1], [a, 2], [b, 1], [b, 2]], [[2, b], [1, b], [2, a], [1, a]]). Yes? invertir([[r,o,m,a], [n,e,u,q,u,e,n], [h,o,n,o,l,u,l,u]], X). X = [[u, l, u, l, o, n, o, h], [n, e, u, q, u, e, n], [a, m, o, r]] ;? invertir([[a, [b, [c], d, [e, f, [g, h], i, j], [k]], l, m]], X). X = [[m, l, [[k], [j, i, [h, g], f, e], d, [c], b], a]] ; Ejercicios Resueltos Prolog 3
4 Ejercicio N 3 Se desea desarrollar un programa Prolog que permita intercalar los elementos de dos listas considerando longitudes distintas para cada tramo de intercalación. Es decir, para cada lista se indicará la cantidad de elementos de la misma que se intercalarán sucesivamente para formar la lista resultante, por ejemplo: intercala([a 1, a 2, a 3, a 4, a 5, a 6 ], [b 1, b 2, b 3, b 4 ], 3, 2, [a 1, a 2, a 3, b 1, b 2, a 4, a 5, a 6, b 3, b 4 ]). True intercala([a 1, a 2, a 3, a 4 ], [b 1, b 2 ], 4, 1, X). X = [b 1, a 1, a 2, a 3, a 4, b 2 ] Debe tenerse en cuenta que cada lista incluya la cantidad de elementos necesaria para ser intercalada correctamente y que cualquiera de ellas puede intercalar el tramo inicial o el tramo final. intercala(l1, L2, N1, N2, R):- intercalar_lista(l1, L2, N1, N2, R). intercala(l1, L2, N1, N2, R):- intercalar_lista(l2, L1, N2, N1, R). intercalar_lista([], [], _N1, _N2, []). intercalar_lista(l1, L2, N1, N2, Result):- concatenar(prel1, RestoL1, L1), largo(prel1, N1), intercalar_lista(l2, RestoL1, N2, N1, X), concatenar(prel1, X, Result). % las listas deben tener al menos 1 elemento: largo([_x], 1). largo([_x Xs], N):- largo(xs, N2), N is N Ejemplos de consultas:? intercala([a1, a2, a3, a4, a5, a6], [b1, b2, b3, b4], 3, 2, [a1, a2, a3, b1, b2, a4, a5, a6, b3, b4]). Yes? intercala([a1, a2, a3, a4, a5, a6], [b1, b2, b3, b4], 2, N, X). N = 2, X = [a1, a2, b1, b2, a3, a4, b3, b4, a5, a6] ; N = 1, X = [b1, a1, a2, b2, a3, a4, b3, a5, a6, b4] ;? intercala([a1, a2, a3, a4], [b1, b2], N, 1, X). N = 2, X = [a1, a2, b1, a3, a4, b2] ; N = 2, X = [b1, a1, a2, b2, a3, a4] ; N = 4, X = [b1, a1, a2, a3, a4, b2] ; Ejercicios Resueltos Prolog 4
5 Ejercicio N 4 Un árbol n-ario es un árbol donde cada nodo puede tener cero o más descendientes. Dado un árbol de este tipo, cuyas aristas tendrán un costo asociado, se pretende desarrollar un predicado en Prolog que permita obtener un camino valido desde la raíz hasta un nodo hoja y el costo total asociado al mismo. Por ejemplo: 3 a 2 4 b c d 3 5 e f En este árbol el camino desde el nodo raíz a hasta el nodo f tiene costo 2+5=7. Para representar el árbol se utilizará la función: arbol(r, ListaHijos, ListaCostos) en donde ListaHijos = [h 1, h 2,..., h n ] y ListaCostos = [c 1, c 2,..., c n ], siendo c i el costo asociado a la arista que une r con h i. Se le solicita que defina el predicado camino(arbol, Camino, Costo) Según el ejemplo anterior debe verificarse la siguiente consulta:?- camino(arbol(a, [ arbol(b, [], []), arbol(c, [arbol(e, [], []), arbol(f, [], [])], [3, 5]), arbol(d, [], []) ], [ 3, 2, 4 ]), L, C). L = [a, b], C = 3 ; L = [a, c, e], C = 3 ; L = [a, c, f], C = 7 ; L = [a, d], C = 4 ; no. Donde la expresión remarcada representa el árbol dado. ta: observe que un nodo hoja tendrá la forma: arbol(n, [], []) camino(arbol(raiz, [], []), [Raiz], 0). camino(arbol(raiz, Hijos, Costos), [Raiz L], CostoTotal):- hijo(hijos, Costos, Hijo, CostoHijo), camino(hijo, L, CostoL), CostoTotal is CostoHijo + CostoL. hijo([hijo _], [Costo _], Hijo, Costo). hijo([_ Hs], [_ Cs], Hijo, Costo):- hijo(hs, Cs, Hijo, Costo). Ejercicios Resueltos Prolog 5
6 Ejercicio N 5 Dos grafos son isomorfos si tienen la misma cantidad de nodos y tipos de relaciones, independientemente de los valores de nodos. Por ejemplo: b d 5 6 a f 4 3 e 2 c 1 Los dos grafos anteriores son isomorfos, ya que tienen la misma cantidad de nodos y los mismos tipos de relaciones entre nodos, independientemente de los valores de nodos. La tabla siguiente muestra lo dicho: dos grafo 1 Relaciones grafo 1 dos grafo 2 Relaciones grafo 2 A (a, b) (a, e) 1 (1,2) (1, 5) B (b, a) 2 (2,1) C (c, f) 3 (3, 6) D (d, e) (d,f) 4 (4, 5) (4, 6) E (e, a) (e, d) 5 (5, 1) (5, 4) F (f, d) (f, c) 6 (6, 4) (6, 3) Se le solicita que defina el predicado nodosisomorfos(grafo1, Grafo2, ListaParesdos), en donde Grafo1 y Grafo2 son dos grafos isomorfos, y ListaParesdos es la lista de pares de nodos equivalentes entre ambos grafos. La representación para los grafos deberá ser por medio de una lista de la forma: donde arista es un par : [nodo-x, nodo-y] [ [nodo-1, nodo-2,.., nodo-n], [arista1, arista2,, aristan] ] nodosisomorfos([dos1, Aristas1], [dos2, Aristas2], ListaParesdos):- longitud(dos1, Longdos), longitud(dos2, Longdos), longitud(aristas1, LongAristas), longitud(aristas2, LongAristas), permutacion(dos2, P), mapeo(dos1, P, ListaParesdos), reemplazar(aristas1, ListaParesdos, AristasP), conjuntosiguales(aristasp, Aristas2). permutacion([], []). permutacion(xs,[z Zs]):- desarma(z, Xs, Ys), permutacion(ys, Zs). desarma(x, [X Xs], Xs). desarma(x, [Y Ys], [Y Zs]):- desarma(x, Ys, Zs). mapeo([], [], []). mapeo([x Xs], [Y Ys], [[X, Y] R]):- mapeo(xs, Ys, R). Ejercicios Resueltos Prolog 6
7 reemplazar([], _ListaPares, []). reemplazar([[x, Y] Z], ListaPares, [[R, S] T]):- miembro([x, R], ListaPares), miembro([y, S], ListaPares), reemplazar(z, ListaPares, T). conjuntosiguales([], []). conjuntosiguales([x Xs], Y):- desarma(x, Y, R), conjuntosiguales(xs, R). miembro(x, [X _]). miembro(x, [_ Y]):- miembro(x, Y). longitud([], 0). longitud([_ Y], N):- longitud(y, N2), N is N Ejemplos de consultas:? nodosisomorfos([[a,b,c], [[a,b],[b,c]]], [[1,2,3],[[2,3],[3,1]]], P). P = [[a, 2], [b, 3], [c, 1]] ;? nodosisomorfos([[a,b,c,d], [[a,b],[b,c],[b,d]]], [[1,2,3,4],[[2,3],[3,1],[3,4]]], P). P = [[a, 2], [b, 3], [c, 1], [d, 4]] ; P = [[a, 2], [b, 3], [c, 4], [d, 1]] ;? nodosisomorfos([[a,b,c,d,e,f],[[b,a],[a,e],[e,d],[d,f],[f,c]]], [[1,2,3,4,5,6],[[6,5],[5,4],[4,3],[3,1],[1,2]]], ListaPares). ListaPares = [[a, 5], [b, 6], [c, 2], [d, 3], [e, 4], [f, 1]] ; Ejercicios Resueltos Prolog 7
Árboles. Un grafo no dirigido es un árbol si y sólo si existe una ruta unica simple entre cualquiera dos de sus vértices.
ÁRBOLES Árboles Un grafo conectado que no contiene circuitos simples. Utilizados desde 1857, por el matemático Ingles Arthur Cayley para contar ciertos tipos de componentes químicos. Un árbol es un grafo
Más detallesProgramació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
Más detallesEs un conjunto de objetos llamados vértices o nodos unidos por enlaces llamados aristas o arcos, que permiten representar relaciones binarias entre
Es un conjunto de objetos llamados vértices o nodos unidos por enlaces llamados aristas o arcos, que permiten representar relaciones binarias entre elementos de un conjunto. Típicamente, un grafo se representa
Más detallesDefiniciones: conjuntos, grafos, y árboles. Agustín J. González ELO 320: Estructura de Datos y Algoritmos. 2002
Definiciones: conjuntos, grafos, y árboles Agustín J. González ELO 320: Estructura de Datos y Algoritmos. 2002 1 Conjuntos (sets) y Grafos (graphs) Un Conjunto es una colección de objetos distintos. No
Más detallesDefinición 1: Un grafo G es una terna ordenada (V(G), E(G), Ψ
Título: Un Arbol Natural Autor: Luis R. Morera onzález Resumen En este artículo se crea un modelo para representar los números naturales mediante un grafo, el cual consiste de de un árbol binario completo
Más detallesIntroducción a los árboles. Lección 11
Introducción a los árboles Lección 11 Árbol: Conjunto de elementos de un mismo tipo, denominados nodos, que pueden representarse en un grafo no orientado, conexo y acíclico, en el que existe un vértice
Más detallesDefinición 1.1 Sea G = (V, A) un grafo no dirigido. G se denomina árbol si es conexo y no contiene ciclos.
Matemática Discreta y Lógica 2 1. Árboles Árboles Definición 1.1 Sea G = (V, A) un grafo no dirigido. G se denomina árbol si es conexo y no contiene ciclos. Como un lazo es un ciclo de longitud 1, un árbol
Más detallesMatemáticas Discretas
Coordinación de Ciencias Computacionales - INAOE Matemáticas Discretas Cursos Propedéuticos 2011 Ciencias Computacionales INAOE Dr. Enrique Muñoz de Cote jemc@inaoep.mx http://ccc.inaoep.mx/~jemc Oficina
Más detallesCapítulo 8. Árboles. Continuar
Capítulo 8. Árboles Continuar Introducción Uno de los problemas principales para el tratamiento de los grafos es que no guardan una estructura establecida y que no respetan reglas, ya que la relación entre
Más detallesCurso Básico de Computación
CINVESTAV IPN México City 2010 1 Preliminares 1.1 Cadenas, alfabetos y lenguajes Un símbolo es un ente abstracto que no se puede definir formalmente. Letras o dígitos son ejemplos
Más detallesAnálisis y Complejidad de Algoritmos. Arboles Binarios. Arturo Díaz Pérez
Análisis y Complejidad de Algoritmos Arboles Binarios Arturo Díaz Pérez Arboles Definiciones Recorridos Arboles Binarios Profundidad y Número de Nodos Arboles-1 Arbol Un árbol es una colección de elementos,
Más detallesESTRUCTURAS DE DATOS Y ALGORITMOS
ESTRUCTURAS DE DATOS Y ALGORITMOS CURSO 2009 PRÁCTICO 8 Nota: al igual que en los prácticos 6 y 7, en los problemas que siguen se usarán los tipos lista y árbol binario, como tipos abstractos, cada uno
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 detallesPráctica N o 4 - Programación Lógica
Práctica N o 4 - Programación Lógica Para resolver esta práctica, recomendamos usar el SWI-Prolog, de distribución gratuita, que puede bajarse de http://www.swi-prolog.org. No utilizar cut (!) ni predicados
Más detallesINDICE INTRODUCCION1 DESARROLLO2 GRAFOS (CONCEPTO).2 ARISTAS...2 VERTICES2 CAMINOS.3 CLASIFICACION DE GRAFOS...3 GRAFOS EULERIANOS.
INDICE INTRODUCCION1 DESARROLLO2 GRAFOS (CONCEPTO).2 ARISTAS...2 VERTICES2 CAMINOS.3 CLASIFICACION DE GRAFOS...3 GRAFOS EULERIANOS.7 GRAFOS CONEXOS7 ÁRBOLES..7 BOSQUES DE ÁRBOLES...8 RECORRIDO DE UN GRAFO..8
Más detallesEstructura de Datos. Temario Unidad VI. Árboles Árboles Binarios
Estructura de Datos Árboles Árboles Binarios Temario Unidad VI 6.1 Definición y operaciones 6.2 Implementación 6.3 Recorrido en Árboles Binarios 6.4 Árboles AVL y su implementación 6.5 Árboles n-arios
Más detallesIntroducción a Árboles Árboles Binarios
Introducción a Árboles Árboles Binarios Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Introducción a Árboles Estructuras hasta ahora Estructuras
Más detallesListas 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
Más detallesTema 5 Árboles y Grafos.
Tema 5 Árboles y Grafos. Definiciones básicas de teoría de grafos. Un grafo consta de un conjunto de nodos, un conjunto de aristas y una correspondencia f del conjunto de aristas al conjunto de nodos.
Más detallesSesión 4: Teoría de Grafos
Modelos Gráficos Probabilistas L. Enrique Sucar INAOE Sesión 4: Teoría de Grafos Problema de los puentes de Königsberg [Euler] Teoría de Grafos Definición y terminología Tipos de grafos Trayectorias y
Más detallesEste material es de uso exclusivo para clase de algoritmos y estructura de datos, la información de este documento fue tomada textualmente de varios
CLASE GRAFOS Este material es de uso exclusivo para clase de algoritmos y estructura de datos, la información de este documento fue tomada textualmente de varios libros por lo que está prohibida su impresión
Más detallesContenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS
Contenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS TEMA 4. - La Estructura de datos Árbol 4.1. Árboles, definiciones 4.2 Árboles binarios y su representación 4.3 Operaciones básicas de un árbol binario
Más detallesMatemáticas Básicas para Computación
Matemáticas Básicas para Computación MATEMÁTICAS BÁSICAS PARA COMPUTACIÓN 1 Sesión No. 11 Nombre: Árboles Objetivo: Al término de la sesión el participante conocerá los tipos de grafos específicamente
Más detallesMatemáticas Discretas L. Enrique Sucar INAOE. Teoría de Grafos. Problema de los puentes de Königsberg [Euler]
Matemáticas Discretas L. Enrique Sucar INAOE Teoría de Grafos Problema de los puentes de Königsberg [Euler] Teoría de Grafos Definición y terminología Tipos de grafos Trayectorias y circuitos Isomorfismo
Más detallesGrafos. Suponiendo que e = [u, v]. Entonces los nodos u y v se llaman extremos de e y u y v se dice que son nodos adyacentes o vecinos.
Grafos Los grafos son estructuras que constan de vértices o nodos y de aristas o arcos que conectan los vértices entre sí. Un grafo G consiste en dos cosas: 1. Un conjunto V de elementos llamados nodos
Más detallesEstructuras de Datos y Algoritmos
Estructuras de Datos y Algoritmos Tema 5.1. Árboles. Árboles binarios y generales Prof. Dr. P. Javier Herrera Contenido 1. Introducción 2. Terminología 3. Árboles binarios 4. Árboles generales Tema 5.1.
Más detallesPRUEBAS DE CAJA BLANCA
PRUEBAS DE CAJA BLANCA PARTE. DESCRIPCIÓN DE TÉCNICAS Se examinan los caminos lógicos del sistema haciendo diversos recorridos. Sus objetivos son: Ejecutar por lo menos una vez todos los caminos independientes
Más detallesEstructura de Datos Unidad 6: ARBOLES
Estructura de Datos Unidad 6: ARBOLES A. CONCEPTO DE ARBOL B. TIPOS DE ARBOL C. ARBOL BINARIO D. IMPLEMENTACION DE UN ARBOL BINARIO E. PROYECTO Introducción En ciencias de la informática, un árbol es una
Más detallesESTRUCTURAS 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"
Más detallesApellidos:... Nombre:...
Apellidos:....................................... Nombre:........................................ Introducción a la Inteligencia Artificial 1 er Parcial de Teoría 12 Noviembre 2004 Ejercicio 1: Responder
Más detallesPráctica N o 5 - Programación Lógica
Práctica N o 5 - Programación Lógica Para resolver esta práctica, recomendamos usar el SWI-Prolog, de distribución gratuita, que puede bajarse de http://www.swi-prolog.org. No utilizar cut (!) ni predicados
Más detallesÁrboles. no es un árbol porque no es conexo. Sin embargo, cada componente conexa es un árbol y, este tipo de grafo se llama bosque.
Ejemplos Árboles Un grafo sin lazos, es un árbol si es conexo y no contiene ciclos. Tenemos que: es un árbol. no es un árbol porque contiene un ciclo. no es un árbol porque no es conexo. Sin embargo, cada
Más detallesGuía 2: Listas, recursión e inducción
Introducción a los Algoritmos - 2do cuatrimestre 2014 Guía 2: Listas, recursión e inducción Docentes: Walter Alini, Luciana Benotti En esta guía comenzaremos a trabajar con listas Para familiarizarnos
Más detallesCurso Básico de Computación Preliminares
Curso Básico de Computación Preliminares Feliú Sagols Troncoso Matemáticas CINVESTAV-IPN 2010 Curso Básico de Computación (Matemáticas) Preliminares 2010 1 / 11 1 Preliminares
Más detallesCapítulo 4: Grafos Clase 4: Árboles
Capítulo 4: Grafos Clase 4: Árboles Matemática Discreta - CC3101 Profesor: Pablo Barceló P. Barceló Matemática Discreta - Cap. 4: Grafos 1 / 12 Árboles Los árboles son una clase particular de grafos que
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 5 Teoría de Grafos Conceptos Básicos Un grafo consta de: Grafo Un conjunto de nodos, Un conjunto de aristas
Más detallesRoberto Carlos Abreu Díaz. October 28, 2009
Binarios binarios Java October 28, 2009 Binarios binarios Java 1 2 Binarios 3 binarios Java Código Java para búsqueda 4 Código Java para inserción 5 Caso 1 Caso 2 Caso 3 Outline Binarios binarios Java
Más detallesÁrboles generales. Un árbol es una estructura no lineal acíclica utilizada para organizar información de forma eficiente. La definición es recursiva:
Capítulo 9. Programación con Árboles 107 Árboles Árboles generales Un árbol es una estructura no lineal acíclica utilizada para organizar información de forma eficiente. La definición es recursiva: Un
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 detalles3.0.-ARBOLES ABARCADORES Y COMPONENTES CONEXOS CONCEPTO DE ARBOL ABARCADOR Y SU RELACION CON LOS RECORRIDOS.
3.0.-ARBOLES ABARCADORES Y COMPONENTES CONEXOS 3.1.- CONCEPTO DE ARBOL ABARCADOR Y SU RELACION CON LOS RECORRIDOS. 3.2.- BOSQUES Y COMPONENTES CONEXOS. NEXON LENIN CEFERINO POMPOSO Los árboles son particularmente
Más detallesTema Árboles binarios fmap para árboles binarios Plegado de árboles binarios
Programación Declarativa Haskell Informática Sistemas Curso 2003-2004 Pepe Gallardo Universidad de Málaga Tema 9. Árboles 9.1 Árboles binarios fmap para árboles binarios Plegado de árboles binarios 9.2
Más detallesMetodología de Programación I Tutorial Prolog 1/3
Metodología de Programación I Tutorial Prolog 1/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 detallesEstructuras de Datos y Algoritmos: Boletín de Problemas del segundo parcial
Estructuras de Datos y Algoritmos: Boletín de Problemas del segundo parcial (Facultad de Informática) Curso 00 0 Estructuras de Datos y Algoritmos (FI-UPV) Curso 00 0 Árboles. Si la acción P fuera escribir
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 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 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 detallesAlgoritmos y Estructuras de Datos III
Árboles Algoritmos y Estructuras de Datos III Árboles Definición: Un árbol es un grafo conexo sin circuitos simples. Árboles Teorema: Dado un grafo G = (V, X ) son equivalentes: 1. G es un árbol. 2. G
Más detallesMATEMÁTICAS PARA LA COMPUTACIÓN
MATEMÁTICAS PARA LA COMPUTACIÓN CAPÍTULO RELACIONES RELACIONES COMO LISTAS ENLAZADAS AUTOR: JOSÉ ALFREDO JIMÉNEZ MURILLO AVC APOYO VIRTUAL PARA EL CONOCIMIENTO RELACIONES COMO LISTAS ENLAZADAS Algunas
Más detallesUn árbol binario T se define como un conjunto finito de elementos, llamados nodos, de forma que:
Instituto Universitario de Tecnología Industrial Rodolfo Loero Arismendi I.U.T.I.R.L.A. ÁRBOLES Sección 3DA Asignatura: Estructura de Datos Lenguaje (C). Ciudad Bolívar _ abril_ 2006. Introducción El siguiente
Más detallesTema Árboles generales. 9.2 Árboles binarios 9.3 Árboles de búsqueda
Informática Haskell Matemáticas Curso 2004-2005 Pepe Gallardo Universidad de Málaga Tema 9. Árboles 9.1 Árboles generales 9.2 Árboles binarios 9.3 Árboles de búsqueda 9.1 Árboles generales Un árbol es
Más detallesUNIVERSIDAD NACIONAL DE INGENIERÍA UNI-RUACS. Investigación de Operaciones
UNIVERSIDAD NACIONAL DE INGENIERÍA UNI-RUACS Facultad de Ingeniería Industrial Investigación de Operaciones Tema: Teoría de los Grafos Elaborado por: Ing. Carlos Alberto Moreno. Docente: Ing. Pastrana
Más detallesFrancisco J. Hernández López
Francisco J. Hernández López fcoj23@cimat.mx Estructura de datos no lineales donde cada componente o nodo puede tener uno o más predecesores (a diferencia de los árboles) y sucesores Un grafo esta formado
Más detallesÁRBOLES CRISTIAN ALFREDO MUÑOZ ÁLVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACÓN PEÑA EDUARDO GONZALES
ÁRBOLES CRISTIAN ALFREDO MUÑOZ ÁLVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACÓN PEÑA EDUARDO GONZALES ÁRBOL Un árbol es un grafo no dirigido, conexo, sin ciclos (acíclico), y que no contiene aristas
Más detalles1. Diseñe algoritmos que permitan resolver eficientemente el problema de la mochila 0/1 para los siguientes casos:
PROGRAMACIÓN DINÁMICA RELACIÓN DE EJERCICIOS Y PROBLEMAS 1. Diseñe algoritmos que permitan resolver eficientemente el problema de la mochila /1 para los siguientes casos: a. Mochila de capacidad W=15:
Más detallesTipos paramétricos y recursivos
Tipos paramétricos y recursivos Taller de Álgebra I Verano 2017 Tipos paramétricos Tipos paramétricos Podemos hacer que los constructores de un tipo de datos reciban parámetros. A los tipos construidos
Más detallesGRAMATICAS LIBRES DEL CONTEXTO
GRMTICS LIBRES DEL CONTEXTO Estas gramáticas, conocidas también como gramáticas de tipo 2 o gramáticas independientes del contexto, son las que generan los lenguajes libres o independientes del contexto.
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 junio 2010 Semana 1. Ejercicio 1. (Valoración:
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 detallesDefiniciones y ejemplos.
V. Grafos Definiciones y ejemplos. Módulo 5 DEF. Sea V un conjunto finito no vacío, y sea El par (V, E) es llamada entonces grafo dirigido en V, donde V es el conjunto de vértices o nodos y E es su conjunto
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: 2017 2018 Práctica
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 detallesTema 08: TAD Árbol. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom
Tema 08: TAD Árbol M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Descripción del TAD Árbol Especificación
Más detallesAlgoritmos y Estructuras de Datos III
Árboles Algoritmos y Estructuras de Datos III Árboles Definición: Un árbol es un grafo conexo sin circuitos simples. Árboles Teorema: Dado un grafo G = (V, X ) son equivalentes: 1. G es un árbol. 2. G
Más detallesTema 2: Grafos y Árboles. Algoritmos y Estructuras de Datos 3
Tema 2: Grafos y Árboles Algoritmos y Estructuras de Datos 3 1 ÍNDICE 2.1 Definiciones básicas: grafos y árboles 2.2 Representaciones de árboles y grafos 2.3 Algoritmos de recorrido de árboles binarios
Más detallesProgramación con listas
Programación con Estructuras III.1 Programación con listas Unificación con listas. Dominio de definición Predicados sobre listas.tablas de comportamiento Predicados aritméticos con listas. Predicados iterativos
Más detallesTipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos
Algoritmos y Estructuras de Datos I 1 cuatrimestre de 009 Departamento de Computación - FCEyN - UBA Programación funcional - clase Tipos algebraicos Tipos algebraicos y abstractos ya vimos los tipos básicos
Más detallesEstructura de Datos. Estructuras de Datos no lineales : Árboles
Estructura de Datos Estructuras de Datos no lineales : Árboles Definiciones de Árbol En términos matemáticos, un árbol es cualquier conjunto de puntos, llamados vértices, y cualquier conjunto de pares
Más detallesIntroducción a Árboles Árboles Binarios
Introducción a Árboles Árboles Binarios Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Introducción a Árboles Estructuras hasta ahora Estructuras
Más detallesCiencias de la Computación I
Ciencias de la Computación I Gramáticas Libres del Contexto y Lenguajes Libres del Contexto Gramáticas Formales Una gramática formal es una cuadrupla G = (N, T, P, S) N = conjunto finito de símbolos no
Más detallesEstructura de datos y de la información Boletín de problemas - Tema 10
Estructura de datos y de la información Boletín de problemas - Tema 10 1. En el caso de que sea posible, dar un ejemplo de los siguientes puntos. Si no, explicar por qué no lo es. Considerar un valor genérico
Más detallesEstructura de Datos. Unidad V Estructuras no lineales estáticas y dinámicas. (Árboles y grafos)
Ing. En Sistemas Computacionales Estructura de Datos Unidad V Estructuras no lineales estáticas y dinámicas. (Árboles y grafos) Ing. Néstor Alejandro Carrillo López Arboles Un árbol es un conjunto finito
Más detallesPráctica N o 1 - Programación Funcional
Práctica N o 1 - Programación Funcional Para resolver esta práctica, recomendamos usar el Hugs 98, de distribución gratuita, que puede bajarse de http://www.haskell.org/hugs/. Ejercicio 1 Dado el siguiente
Más detallesPROGRAMACIÓN DECLARATIVA: LÓGICA Y RESTRICCIONES
EJERCICIO 1 (3,5 puntos 30 minutos) Se pide al alumno que escriba un programa lógico puro para realizar el recorrido en anchura de un árbol binario, codificando los siguientes predicados, así como cualquier
Más detallesEstructura de Datos. Códigos de Huffman. Primer Semestre, Compresión de Archivos. Compresión de Archivos
Estructura de Datos Códigos de Huffman Prof.: Mauricio Solar Prof.: Lorna Figueroa Primer Semestre, 2 Los algoritmos estudiados hasta ahora han sido diseñados, en general, para que utilicen el menor tiempo
Más detallesGrafos. Amalia Duch Brown Octubre de 2007
Grafos Amalia Duch Brown Octubre de 2007 Índice 1. Definiciones Básicas Intuitivamente un grafo es un conjunto de vértices unidos por un conjunto de líneas o flechas dependiendo de si el grafo es dirigido
Más detallesGrafos. Algoritmos y Estructuras de Datos III
Grafos Algoritmos y Estructuras de Datos III Grafos Un grafo G = (V, X ) es un par de conjuntos, donde V es un conjunto de puntos o nodos o vértices y X es un subconjunto del conjunto de pares no ordenados
Más detalles2. Desarrolla una especificación informal genérica para el TAD árbol binario. Incluir operaciones para crear y modificar el árbol.
1. Escribe una especificación informal para los distintos métodos de ordenación que conozcas. La especificación debe ser genérica, es decir trabajar con elementos de cualquier tipo. En qué se diferencia
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 detallesCapítulo 7. Grafos. Continuar
Capítulo 7. Grafos Continuar Introducción Uno de los primeros resultados de la teoría de grafos fue el que obtuvo Leonhard Euler en el siglo XVIII al resolver el problema de los puentes de Königsberg.
Más detallesEjercicio 2 Considere la representación para Lista de Naturales y Árbol Binario de Naturales de la Figura 1.
Ejercicios Resueltos del Práctico 4 Ejercicio 2 Considere la representación para Lista de Naturales y Árbol Binario de Naturales de la Figura 1. 1 2 struct NodoLista { 3 int elem ; 4 NodoLista * sig ;
Más detallesSemana 4: Métodos de Búsqueda No informados. Prof. Oscar Benito Pacheco.
Semana 4: Métodos de Búsqueda No informados Prof. Oscar Benito Pacheco. Estrategias de Búsqueda Búsqueda No Informada Búsqueda Informada (Ciega) (Heurística) 1. Búsqueda preferente por amplitud 2. Búsqueda
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: 2016 2017 Práctica
Más detallesSolución Primer Parcial Matemática
Solución Primer Parcial Matemática 1-01 1 Dados los puntos P 1 (5, 4) y P (, 4) hallar: (a) Ecuación, elementos y gráfico de la parábola con vértice en P 1 y foco en P. El eje de la parábola es paralelo
Más detallesPropiedades de lenguajes independientes del contexto
Capítulo 12. Propiedades de lenguajes independientes del contexto 12.1. Identificación de lenguajes independientes del contexto Lema de bombeo. 12.2. Propiedades Cierre, Complemento de lenguajes, Sustitución,
Más detallesÁrboles y esquemas algorítmicos. Tema III
Árboles y esquemas algorítmicos Tema III Bibliografía Tema III (lecciones 15 a 22) del libro Campos Laclaustra, J.: Estructuras de Datos y Algoritmos, Prensas Universitarias de Zaragoza, Colección Textos
Más detallesTrabajo Práctico 2 - Programación Lógica Viajante de comercio Fecha de entrega: jueves 30 de octubre, hasta las 21 hs.
Trabajo Práctico 2 - Programación Lógica Viajante de comercio Fecha de entrega: jueves 30 de octubre, hasta las 21 hs. 1. Mapas y rutas Una empresa de transporte desea organizar su logística. Para ello,
Más detallesTIPOS ABSTRACTOS DE DATOS EN HASKELL
TIPOS ABSTRACTOS DE DATOS EN HASKELL ÍNDICE GENERAL 1. Introducción a Haskell 2. Tipos abstractos de datos en Haskell 3. TAD Grafo 4. TAD Montículos 5. Bibliografía INTRODUCCIÓN A HASKELL 1. Introducción
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 detallesInteligencia Artificial II Prolog I
Inteligencia Artificial II Prolog I Dr. Alejandro Guerra-Hernández Universidad Veracruzana Centro de Investigación en Inteligencia Artificial mailto:aguerra@uv.mx http://www.uv.mx/personal/aguerra Maestría
Más detallesIntroducción a la Teoría de Grafos
Introducción a la Teoría de Grafos Conceptos Simples, Problemas Difíciles Héctor Ramírez C. 1 1 Departamento de Ingeniería Matemática Universidad de Chile Curso MA3701: Optimización Héctor Ramírez C. (U.
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 detallesTema 13: Aplicaciones de programación funcional
Tema 13: Aplicaciones de programación funcional Programación declarativa (2010 11) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de
Más detallesPROGRAMACIÓN ORIENTADA A LA INTELIGENCIA ARTIFICIAL
PROGRAMACIÓN ORIENTADA A LA INTELIGENCIA ARTIFICIAL Ejercicios de programación en LISP y PROLOG prog-ia@dia.uned.es Dpto. Inteligencia Artificial E.T.S.I. Informática (UNED) C/ Juan del Rosal 16 28040
Más detallesTema 15: GRAFOS Algoritmos y estructuras de datos I - Tema 15 1
Tema 15: GRFOS jemplos de grafos G 1 = (V 1, 1 ) V 1 ={1,2,3,4} 1 ={ (1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4) } (1, 3) 1 (1, 2) (2, 3) (1, 4) 2 3 4 (3, 4) (2, 4) jemplos de grafos G 2 = (V 2, 2 )
Más detallesTema: Algoritmos para la ruta más corta en un Grafo.
Programación IV. Guía No. 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación IV Tema: Algoritmos para la ruta más corta en un Grafo. Objetivos Específicos Definir el concepto de camino
Más detallesClase adicional 9. Listas enlazadas. Temas. Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño
Clase adicional 9 Temas Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño Listas enlazadas Previamente en este curso, ya habrá trabajado con dos de las estructuras de datos
Más detalles