Taller de Backtracking

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Taller de Backtracking"

Transcripción

1 Taller de Backtracking Laboratorio de Algoritmos y Estructuras de Datos III Departamento de Computación Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires 8 de Abril de / 15

2 Menú del día 1 Repaso de Backtracking Generación de todas las permutaciones 2 SuDoku 2 / 15

3 Repaso de Backtracking Repaso de Backtracking Es una técnica algorítmica para recorrer sistemáticamente el espacio de soluciones de un problema. Ejemplos de problemas y sus espacios : Suma de Subconjuntos : Dado un conjunto de enteros, existe algún subconjunto cuya suma sea exactamente cero? 3 / 15

4 Repaso de Backtracking Repaso de Backtracking Es una técnica algorítmica para recorrer sistemáticamente el espacio de soluciones de un problema. Ejemplos de problemas y sus espacios : Suma de Subconjuntos : Dado un conjunto de enteros, existe algún subconjunto cuya suma sea exactamente cero? Ordenar arreglos 3 / 15

5 Repaso de Backtracking Repaso de Backtracking Es una técnica algorítmica para recorrer sistemáticamente el espacio de soluciones de un problema. Ejemplos de problemas y sus espacios : Suma de Subconjuntos : Dado un conjunto de enteros, existe algún subconjunto cuya suma sea exactamente cero? Ordenar arreglos El problema de la mochila, crucigramas, caminos simples en un grafo, etc. 3 / 15

6 Repaso de Backtracking Repaso de Backtracking La ventaja del backtracking es que recorre sistemáticamente. Entonces: Genera cada elemento del espacio una vez Evita saltearse configuraciones Evita repetir configuraciones Permite descartar un montón de soluciones inteligentemente 4 / 15

7 Repaso de Backtracking Repaso de Backtracking Se puede interpretar naturalmente como un árbol de soluciones parciales Cada vértice representa una solución parcial. Dos vértices x, y se conectan si x se puede extender de y Si el espacio de soluciones son todas las permutaciones de a 1,..., a N, a i A: las soluciones parciales son a 1,..., a k, a i A la forma de extender a 1,..., a k, es agregando a k+1 A {a 1,..., a k El árbol se puede podar. Es posible rechazar muchas soluciones mirando una solución parcial!! Ejemplo con los problemas vistos. 5 / 15

8 Repaso de Backtracking Generación de todas las permutaciones Generación de todas las permutaciones Backtracking se puede usar para generar todas las permutaciones No es el único algoritmo para tal fin, muchos otros en : Johnson-Trotter algorithm D. Knuth. The Art of Computer Programming, Volume 4 Fascicle 2: Generating All Tuples and Permutations. Addison Wesley, Por qué usarlo? 6 / 15

9 Repaso de Backtracking Generación de todas las permutaciones Generación de todas las permutaciones Generar todas las permutaciones de {0,..., N 1 void backtrack(vector<int>& perm, int actual, vector<bool>& usado){ if(actual == N) { procesar(perm); return; int n = perm.size(); forn(i,n) { if(usado[i]) continue; usado[i] = true; perm[actual] = val; backtrack(perm,actual+1,used); usado[i] = false; perm[actual] = -1; 7 / 15

10 Repaso de Backtracking Generación de todas las permutaciones Análisis En que orden se generan las permutaciones? Se procesan las soluciones parciales? 8 / 15

11 Repaso de Backtracking Generación de todas las permutaciones Más allá de Backtracking Hay algo más allá de Backtracking?? 9 / 15

12 SuDoku SuDoku Rellenar una cuadrícula de n 2 n 2 celdas dividida en subcuadrículas de n n con las cifras del 1 al n 2 partiendo de algunos números ya dispuestos en algunas de las celdas, si hay mas de una la menor lexicográficamente onlinejudge&itemid=8&category=11&page=show_problem&problem= 930 Labo de Algo III (Departamento de Computación Facultad Taller deciencias Backtracking Exactas y Naturales Universidad 8 de Abril de de Buenos 2011 Aires) 10 / 15

13 SuDoku Solución sin podas bool backtrack(matrix& p, coord c, int n){ if(l.empty()) { return is_sol(p, n); int nn = p.size(); forsn(val, 1, nn+1) { p[c.first][c.second] = val; if(backtrack(p,siguiente(c,n),n)) { return true; p[c.first][c.second] = 0; return false; Labo de Algo III (Departamento de Computación Facultad Taller deciencias Backtracking Exactas y Naturales Universidad 8 de Abril de de Buenos 2011 Aires) 11 / 15

14 SuDoku Análisis Peor Caso? abo de Algo III (Departamento de Computación Facultad Taller deciencias Backtracking Exactas y Naturales Universidad 8 de Abril de de Buenos 2011 Aires) 12 / 15

15 SuDoku Análisis Peor Caso? abo de Algo III (Departamento de Computación Facultad Taller deciencias Backtracking Exactas y Naturales Universidad 8 de Abril de de Buenos 2011 Aires) 12 / 15

16 SuDoku Podas ideas? Labo de Algo III (Departamento de Computación Facultad Taller deciencias Backtracking Exactas y Naturales Universidad 8 de Abril de de Buenos 2011 Aires) 13 / 15

17 SuDoku Podas ideas? Verificar que no se agreguen números repetidos por columnas Verificar que no se agreguen números repetidos por filas Verificar que no se agreguen números repetidos por sub-cuadrículas Labo de Algo III (Departamento de Computación Facultad Taller deciencias Backtracking Exactas y Naturales Universidad 8 de Abril de de Buenos 2011 Aires) 13 / 15

18 SuDoku Solución con podas bool backtrack(matrix& p, coord c, int n){ if(l.empty()) { return is_sol(p, n); int nn = p.size(); forsn(val, 1, nn+1) { if(!ok(p,c,val)) /*+ podas! +*/ continue; p[c.first][c.second] = val; if(backtrack(p,siguiente(c,n),n)) { return true; p[c.first][c.second] = 0; return false; Labo de Algo III (Departamento de Computación Facultad Taller deciencias Backtracking Exactas y Naturales Universidad 8 de Abril de de Buenos 2011 Aires) 14 / 15

19 SuDoku Análisis. Caso Malo Qué pasa si cambiamos el órden? Otras formas de resolver el sudoku : Andrew C. Bartlett, Amy N. Langville, An Integer Programming Model for the Sudoku Problem, The Journal of Online Mathematics and Its Applications, Volume 8. May Labo de Algo III (Departamento de Computación Facultad Taller deciencias Backtracking Exactas y Naturales Universidad 8 de Abril de de Buenos 2011 Aires) 15 / 15

Ejemplo: El problema de la mochila. Algoritmos golosos. Algoritmos y Estructuras de Datos III. Segundo cuatrimestre 2013

Ejemplo: El problema de la mochila. Algoritmos golosos. Algoritmos y Estructuras de Datos III. Segundo cuatrimestre 2013 Técnicas de diseño de algoritmos Algoritmos y Estructuras de Datos III Segundo cuatrimestre 2013 Técnicas de diseño de algoritmos Algoritmos golosos Backtracking (búsqueda con retroceso) Divide and conquer

Más detalles

Algoritmos genéticos

Algoritmos genéticos Algoritmos genéticos Introducción 2 Esquema básico 3 El problema de la mochila 7 Asignación de recursos 0 El problema del viajante 3 Variantes del esquema básico 5 Por qué funciona? 9 Observaciones finales

Más detalles

Algoritmos de Ordenamiento

Algoritmos de Ordenamiento Algoritmos de Ordenamiento mat-151 Alonso Ramírez Manzanares Computación y Algoritmos 12.04 Algoritmos de ordenamiento Entrada: secuencia de números. Salida: permutación

Más detalles

Algoritmos y Estructuras de Datos Curso 06/07. Ejercicios

Algoritmos y Estructuras de Datos Curso 06/07. Ejercicios 9..En un problema de backtracking estamos interesados en almacenar de forma explícita el árbol recorrido por el algoritmo. De cada nodo del árbol sólo necesitamos saber un número, que indica el orden en

Más detalles

Se puede dibujar la siguiente figura, empezando y terminando en el mismo punto, sin levantar e lápiz del papel?

Se puede dibujar la siguiente figura, empezando y terminando en el mismo punto, sin levantar e lápiz del papel? Se puede dibujar la siguiente figura, empezando y terminando en el mismo punto, sin levantar e lápiz del papel? Y esta otra? Los puentes de Königsberg Königsberg es famosa por ser la ciudad natal de Immanuel

Más detalles

Un algoritmo sencillo de Sudokus de 9 9

Un algoritmo sencillo de Sudokus de 9 9 Un algoritmo sencillo de Sudokus de 9 9 Divulgación Armando Cabrera Pacheco, Edwin Meneses Rodríguez y Roger Pacheco Castro Facultad de Matemáticas Universidad Autónoma de Yucatán [email protected], [email protected],

Más detalles

El proyecto realizado consiste en un resolutor de sudokus mediante CSP.

El proyecto realizado consiste en un resolutor de sudokus mediante CSP. Introducción El proyecto realizado consiste en un resolutor de sudokus mediante CSP. El problema del sudoku fue inventado por Howard Garns en 1979 y se volvió muy popular en Japón en 1986. En España ha

Más detalles

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS SÍLABO

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS SÍLABO FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS SÍLABO 1. GENERALIDADES 1.1. Denominación de Asignatura : Introducción a la Matemática Discreta 1.2. Código : I115 1.3. Fecha de Aprobación : enero de 2011

Más detalles

Tema 4: Definición de funciones

Tema 4: Definición de funciones Programación declarativa (2009 10) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla Constantes como patrones Variables como

Más detalles

TEORÍA DE GRAFOS Ingeniería de Sistemas

TEORÍA DE GRAFOS Ingeniería de Sistemas TEORÍA DE GRAFOS Ingeniería de Sistemas Código: MAT-31114 AUTORES Ing. Daniel Zambrano Ing. Viviana Semprún UNIDADES DE LA ASIGNATURA» UNIDAD I. Relaciones» UNIDAD II. Estructuras Algebraicas» UNIDAD III.

Más detalles

Test de primalidad probabiĺıstico

Test de primalidad probabiĺıstico Test de primalidad probabiĺıstico Taller de Álgebra I Segundo cuatrimestre de 2013 Pequeño Teorema de Fermat Teorema (Pierre de Fermat, 1640) Sea p N primo, y a Z, tal que p a. Entonces a p 1 1 (mod p).

Más detalles

Tema: Algoritmos para la ruta más corta en un Grafo.

Tema: Algoritmos para la ruta más corta en un Grafo. Programación IV. Guía 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 detalles

Taller de Combinatoria

Taller de Combinatoria Marzo 2011 http://www.cimat.mx/ jortega/cursosjo.html Introducción La Teoría Combinatoria se ocupa del estudio de los arreglos que se pueden formar con los objetos de un conjunto en patrones que satisfagan

Más detalles

Optimización de Problemas de Producción

Optimización de Problemas de Producción Optimización de Problemas de Producción Pedro Piñeyro - Luis Stábile Colaboran: Héctor Cancela - Antonio Mauttone - Carlos Testuri Depto. Investigación Operativa. Instituto de Computación. Facultad de

Más detalles

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

Introducción a los Computadores (CNM-130) Estructuras selectivas en Matlab Introducción a los Computadores (CNM-130) Estructuras selectivas en Matlab Alejandro Piedrahita H. Instituto de Matemáticas Facultad de Ciencias Exactas y Naturales Universidad de Antioquia Copyleft 2013.

Más detalles

como les va con las practicas?

como les va con las practicas? como les va con las practicas? Problemas NP-completos y Estructuras de datos básicas (representación de datos) mat-151 1 Una maquina de Turing Aceptation state Una maquina de Turing Maquina de Turing Determinística,

Más detalles

PASAPALABRA BLOQUE NÚMEROS

PASAPALABRA BLOQUE NÚMEROS EMPIEZA POR A 1) Rama de las Matemáticas que se encarga del estudio de los números y sus propiedades: ARITMÉTICA 2) Valor de una cifra, independientemente del lugar que ocupe o del signo que la precede:

Más detalles

Introduc)on to Programming (in C++) Ejemplos de tratamiento de secuencia de secuencias. Emma Rollón Departament of Computer Science

Introduc)on to Programming (in C++) Ejemplos de tratamiento de secuencia de secuencias. Emma Rollón Departament of Computer Science Introduc)on to Programming (in C++) Ejemplos de tratamiento de secuencia de secuencias Emma Rollón Departament of Computer Science Ejemplo 1: recorrido con recorrido Input: La entrada consiste en un número

Más detalles

B A S E S : C O M P E T E N C I A S U D O K U 1 7 A L 2 0 D E O C T U B R E P R E S E N T A C I Ó N G E N E R A L.

B A S E S : C O M P E T E N C I A S U D O K U 1 7 A L 2 0 D E O C T U B R E P R E S E N T A C I Ó N G E N E R A L. B A S E S : C O M P E T E N C I A S U D O K U 1 7 A L 2 0 D E O C T U B R E 2 0 1 6. P R E S E N T A C I Ó N G E N E R A L. El origen de los Sudoku no se tiene completamente claro, sin embargo hay ciertas

Más detalles

Complejidad computacional (Análisis de Algoritmos)

Complejidad computacional (Análisis de Algoritmos) Definición. Complejidad computacional (Análisis de Algoritmos) Es la rama de las ciencias de la computación que estudia, de manera teórica, la optimización de los recursos requeridos durante la ejecución

Más detalles

UNIVERSIDAD AUTÓNOMA DE YUCATÁN FACULTAD DE MATEMÁTICAS MISIÓN

UNIVERSIDAD AUTÓNOMA DE YUCATÁN FACULTAD DE MATEMÁTICAS MISIÓN UNIVERSIDAD AUTÓNOMA DE YUCATÁN FACULTAD DE MATEMÁTICAS MISIÓN Formar profesionales altamente capacitados, desarrollar investigación y realizar actividades de extensión, en Matemáticas y Computación, así

Más detalles

OPERADORES GENETICOS SOBRE PERMUTACIONES APLICADOS A LA RESOLUCIÓN DEL SUDOKU

OPERADORES GENETICOS SOBRE PERMUTACIONES APLICADOS A LA RESOLUCIÓN DEL SUDOKU OPERADORES GENETICOS SOBRE PERMUTACIONES APLICADOS A LA RESOLUCIÓN DEL SUDOKU Carlos Cervigón Rückauer Departamento de Ingeniería del Software e Inteligencia artificial Universidad Complutense de Madrid

Más detalles

A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información 1º año

A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información 1º año Trabajo práctico Nº 5 (Resolución de problemas Arreglos bidimensionales ). Realiza el programa en Lenguaje C correspondiente. 1- Qué hay de incorrecto en los siguientes códigos? int main() { int x,y; int

Más detalles

Tema 3: Tipos y clases

Tema 3: Tipos y clases Tema 3: Tipos y clases Programación declarativa (2009 10) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla Tema 3: Tipos y clases

Más detalles

Tema 3: Tipos y clases

Tema 3: Tipos y clases Tema 3: Tipos y clases 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 Sevilla Tema 3: Tipos y clases

Más detalles

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos

Tipos 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 detalles

Introducción a la Geometría Computacional. Análisis de Algoritmos

Introducción a la Geometría Computacional. Análisis de Algoritmos Introducción a la Geometría Computacional Análisis de Algoritmos Geometría Computacional La Geometría Computacional surgió a finales de los 70s del área de diseño y análisis de algoritmos. Estudio sistemático

Más detalles

POTENCIAS Y RAICES II. 1 Escribe todos los cuadrados perfectos comprendidos entre 200 y 300.

POTENCIAS Y RAICES II. 1 Escribe todos los cuadrados perfectos comprendidos entre 200 y 300. POTENCIAS Y RAICES II 1 Escribe todos los cuadrados perfectos comprendidos entre 00 y 300. Hoy es el cumpleaños de la abuela de Jorge. Al preguntarle por los años que cumplía, no nos lo ha querido decir,

Más detalles

La segunda observación permite reformular el problema de una manera más simple:

La segunda observación permite reformular el problema de una manera más simple: Problema partición Enunciado A: dados N enteros positivos, N>1, decir si estos pueden dividirse en dos grupos cuya suma sea la misma. Ejemplo: si el conjunto es {1,2,3,9,2,11,4}, una forma de partirlo

Más detalles

Algoritmos en Teoría de Grafos

Algoritmos en Teoría de Grafos Algoritmos en Teoría de Grafos Jesús García López de Lacalle Algoritmos en Teoría de Grafos 1. Introducción 2. Conectividad 3. Caminos mínimos y distancias 4. Planificación y optimización de tareas 5.

Más detalles

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

1. Conceptos básicos sobre el problema en cuestión y cuestiones afines. 2. Formulación de los correspondientes algoritmos y su pseudocódigo. Análisis de Algoritmos Ingeniería Informática, EPS-UAM Información general Organización del curso: 13-15 (mínimo-máximo) semanas docentes: 30-33 clases teóricas. 9-12 clases de problemas 26-30 clases prácticas

Más detalles

Ahora que hemos aprendido acerca de la suma y la resta, es el momento para multiplicar números enteros.

Ahora que hemos aprendido acerca de la suma y la resta, es el momento para multiplicar números enteros. Materia: Matemática de séptimo Tema: Multiplicación en Z Te has preguntado cuánto pescado puede comer una foca? A Jonah le encanta su trabajo, sobre todo porque puede ayudar a alimentar a las focas que

Más detalles

Teoría de Grafos Introducción Grafos isomorfos

Teoría de Grafos Introducción Grafos isomorfos Capítulo 1 Teoría de Grafos 1.1. Introducción Definición. Denominaremos pseudomultigrafo a una terna (V,E, γ), donde V y E son conjuntos y γ : E {{u,v}: u,v V }. El conjunto V se denomina conjunto de vértices

Más detalles

Tema 13: Aplicaciones de programación funcional

Tema 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 detalles

Tema: Autómatas de Estado Finitos

Tema: Autómatas de Estado Finitos Compiladores. Guía 2 1 Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores Tema: Autómatas de Estado Finitos Contenido En esta guía se aborda la aplicación de los autómatas en el campo de

Más detalles

public class AtaqueVoraz extends EsquemaVZ implements EstrategiaSolucion {

public class AtaqueVoraz extends EsquemaVZ implements EstrategiaSolucion { Problema EL VORAZ y El Señor de los Anillos Una manada de orcos ha desembarcado para atacar Rivendel (ciudad protegida por los humanos), Aragorn (rey de los humanos) necesita definir una estrategia de

Más detalles

300CIG007 Computabilidad y Lenguajes Formales: Autómatas Finitos

300CIG007 Computabilidad y Lenguajes Formales: Autómatas Finitos 300CIG007 Computabilidad y Lenguajes Formales: Autómatas Finitos Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. Gloria Inés Alvarez V. Qué es un computador? Todos lo sabemos!!!

Más detalles

Índice. Ya sé Excel, pero necesito más

Índice. Ya sé Excel, pero necesito más Índice Introducción... 1 He visto con mis propios ojos... 3 Yo siempre he trabajado así... 5 Convenciones... 6 Suposiciones... 8 Sobre la versión 2007... 10 Un recordatorio rápido... 12 Archivos... 12

Más detalles

Introducción a la Matemática Discreta

Introducción a la Matemática Discreta Introducción a la Matemática Discreta Teoría de Conjuntos Luisa María Camacho Camacho Introd. a la Matemática Discreta 1 / 20 Introducción a la Matemática Discreta Temario Tema 1. Teoría de Conjuntos.

Más detalles

C U R S O : MATEMÁTICA

C U R S O : MATEMÁTICA C U R S O : MATEMÁTICA GUÍA TEÓRICO PRÁCTICA Nº 2 UNIDAD: NÚMEROS Y PROPORCIONALIDAD NÚMEROS ENTEROS VALOR ABSOLUTO Es la distancia que existe entre un número y el 0-3 -2-1 0 1 2 3 Z -3 = 3, 3 = 3 DEFINICIÓN:

Más detalles

Ejercicios sobre recursividad

Ejercicios sobre recursividad Ejercicios sobre recursividad 11 de febrero de 2003 1. Implementa una función recursiva que devuelva la suma de los dígitos de un número natural, que se le pasa por parámetro. 2. Implementa una función

Más detalles

Primer Parcial de Programación 3 (1/10/2009)

Primer Parcial de Programación 3 (1/10/2009) Primer Parcial de Programación (/0/009) Instituto de Computación, Facultad de Ingeniería Este parcial dura horas y contiene carillas. El total de puntos es 0. En los enunciados llamamos C* a la extensión

Más detalles

Olimpiada Mexicana de Matemáticas. Guanajuato.

Olimpiada Mexicana de Matemáticas. Guanajuato. Olimpiada Mexicana de Matemáticas. Guanajuato. Combinatoria Combinaciones y repeticiones. 1. Encuentra la cantidad de formas de elegir un par {a, b} de enteros del conjunto {1,..., 50} de tal forma que:

Más detalles

Apuntes elaborados por: Aaron Asencio, Eduardo Quevedo, Raquel López Revisado por: Javier Miranda el???

Apuntes elaborados por: Aaron Asencio, Eduardo Quevedo, Raquel López Revisado por: Javier Miranda el??? Apuntes elaborados por: Aaron Asencio, duardo Quevedo, Raquel López Revisado por: Javier Miranda el??? Tema 9: rafos Los grafos no son más que la versión general de un árbol, es decir, cualquier nodo de

Más detalles

Tema 9. Algoritmos sobre listas. Programación Programación - Tema 9: Algoritmos sobre listas

Tema 9. Algoritmos sobre listas. Programación Programación - Tema 9: Algoritmos sobre listas Tema 9 Algoritmos sobre listas Programación 2015-2016 Programación - Tema 9: Algoritmos sobre listas 1 Tema 9. Algoritmos sobre listas Algoritmos sobre Arrays. Búsqueda. Inserción. Ordenación. Programación

Más detalles

Ejercicios Tema 6. Funciones

Ejercicios Tema 6. Funciones Ejercicios Tema 6. Funciones 1. Programa que calcule el cuadrado de todos los números comprendidos entre dos dados. Usar una función a la que se le pasa como parámetro un valor y retorna su cuadrado. 2.

Más detalles

Algorítmica y Complejidad. Tema 3 Ordenación.

Algorítmica y Complejidad. Tema 3 Ordenación. Algorítmica y Complejidad Tema . Introducción.. Algoritmo de inserción.. Algoritmo de selección.. Algoritmo de la burbuja.. Algoritmo heapsort.. Algoritmo quicksort. 7. Algoritmo countingsort.. Algoritmo

Más detalles

Tema 3. Patrones y Definiciones de Funciones

Tema 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 detalles

Árboles Binarios Ordenados Árboles AVL

Árboles Binarios Ordenados Árboles AVL Árboles Binarios Ordenados Árboles AVL Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Recordatorio... Se acerca la fecha de la primera entrega

Más detalles

TEMA IV TEORÍA DE GRAFOS

TEMA IV TEORÍA DE GRAFOS TEMA IV TEORÍA DE GRAFOS Poli Abascal Fuentes TEMA IV Teoría de grafos p. 1/? TEMA IV 4. TEORÍA DE GRAFOS 4.1 GRAFOS 4.1.1 Introducción 4.1.2 Definiciones básicas 4.1.3 Caminos y recorridos 4.1.4 Subgrafos,

Más detalles

= RETURN =3 7-. ELSE K

= RETURN =3 7-. ELSE K 11-. Pida Al Usuario Dos Números Enteros (Que Se Guardaran En Las Variables Num 1 Y Num2). Si Num2 Es Cero, Deberá Mostrar Un Mensaje De Error, Y En Caso Contrario Mostrara En Pantalla El Resto De La División

Más detalles

Grafos. AMD Grado en Ingeniería Informática. AMD Grado en Ingeniería Informática (UM) Grafos 1 / 30

Grafos. AMD Grado en Ingeniería Informática. AMD Grado en Ingeniería Informática (UM) Grafos 1 / 30 Grafos AMD Grado en Ingeniería Informática AMD Grado en Ingeniería Informática (UM) Grafos / 0 Objetivos Al finalizar este tema tendréis que: Conocer la terminología básica de la teoría de grafos. Pasar

Más detalles

Lenguaje de Programación: C++, INPUT OUTPUT(Variables)

Lenguaje de Programación: C++, INPUT OUTPUT(Variables) UG Lenguaje de Programación: C++, INPUT OUTPUT() Universidad de Guanajuato Septiembre 2010 MAIN int main (); // no arguments int main (inl argc, char* argv[]); // arguments arcg: cantidad de parámetros

Más detalles

Análisis y Diseño de Algoritmos

Análisis y Diseño de Algoritmos Análisis y Diseño de Algoritmos Ordenamiento en Tiempo Lineal DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Ordenamiento por Comparación (Comparison Sorts) Tiempo de ejecución HeapSort y

Más detalles

IIC1103 Introducción a la Programación

IIC1103 Introducción a la Programación Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación IIC1103 Introducción a la Programación Capítulo 6: Arreglos Resumen teórico Arreglos Hasta ahora

Más detalles

Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap)

Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap) Práctico 4 Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap) Clasificación de ejercicios: (I) Imprescindibles (R) Recomendados (C) Complementarios Árboles balanceados (AVL)

Más detalles

ÍNDICE INTRODUCCIÓN...13

ÍNDICE INTRODUCCIÓN...13 ÍNDICE INTRODUCCIÓN...13 CAPÍTULO 1. LENGUAJE ALGORÍTMICO...15 1.1 DEFINICIÓN DE ALGORITMO...16 1.2 LA ROTACIÓN DE UNA LISTA DE NÚMEROS NATURALES...20 1.3 CUESTIONES...23 1.3.1 Dos comerciales en el restaurante...23

Más detalles

Un grafo G = (V, E) se dice finito si V es un conjunto finito.

Un grafo G = (V, E) se dice finito si V es un conjunto finito. 1 Grafos: Primeras definiciones Definición 1.1 Un grafo G se define como un par (V, E), donde V es un conjunto cuyos elementos son denominados vértices o nodos y E es un subconjunto de pares no ordenados

Más detalles

LECCION N 08 ARBOLES. Un árbol es un grafo A que tiene un único nodo llamado raíz que:

LECCION N 08 ARBOLES. Un árbol es un grafo A que tiene un único nodo llamado raíz que: LECCION N 08 ARBOLES Los árboles son estructuras de datos útiles en muchas aplicaciones. Hay varias formas de árboles y cada una de ellas es práctica en situaciones especiales, en este capítulo vamos a

Más detalles

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

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 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 detalles

Planificaciones Algoritmos y Programación I. Docente responsable: AZCURRA DIEGO ANDRES. 1 de 5

Planificaciones Algoritmos y Programación I. Docente responsable: AZCURRA DIEGO ANDRES. 1 de 5 Planificaciones 7540 - Algoritmos y Programación I Docente responsable: AZCURRA DIEGO ANDRES 1 de 5 OBJETIVOS Objetivos estratégicos: -Desarrollar el concepto algorítmico. -Aplicar técnicas de programación

Más detalles

Olimpiada Matemática Internacional Formula of Unity / The Third Millennium Curso 2015/2016. Fase 1 Problemas del grado R5

Olimpiada Matemática Internacional Formula of Unity / The Third Millennium Curso 2015/2016. Fase 1 Problemas del grado R5 Problemas del grado R5 1. Pedro, Braulio and Antonio reunieron sus ahorros para comprar un balón. Cada uno de ellos no gastaron más de la mitad del dinero gastado por los otros dos chicos juntos. El balón

Más detalles

greedy (adj): avaricioso, voraz, ávido, codicioso, glotón

greedy (adj): avaricioso, voraz, ávido, codicioso, glotón Algoritmos Greedy Análisis y Diseño de Algoritmos Algoritmos Greedy Características generales Elementos de un algoritmo greedy Esquema de un algoritmo greedy s Almacenamiento óptimo en cintas Problema

Más detalles

Verificación. Taller de Programación

Verificación. Taller de Programación Verificación Taller de Programación Error, Defecto y Falla puede generar Un defecto un error humano (interna) que puede generar?! una falla (externa) El software falla cuando No hace lo requerido o Hace

Más detalles

2007 Carmen Moreno Valencia

2007 Carmen Moreno Valencia Tema VIII. Grafos Grafos 1 2007 Carmen Moreno Valencia 1. Grafos, digrafos y multigrafos 2. Grafos eulerianos 3. Matrices de adyacencia e incidencia 4. Exploración de grafos pesados 1. Grafos, digrafos

Más detalles

Combinatoria analítica y dinámica. Aplicaciones.

Combinatoria analítica y dinámica. Aplicaciones. Combinatoria analítica y dinámica. Aplicaciones. Docentes a cargo: Dra. Eda Cesaratto. Docentes invitados: Dra. Valérie Berthé, Dr. Julien Clément, Dr Loïck Lhote, Dra. Brigitte Vallée, Dr. Alfredo Viola.

Más detalles

Prueba N o 1. Programación II

Prueba N o 1. Programación II UNIVERSIDAD ANDRÉS BELLO 1 Prueba N o 1 Programación II Profesores: José Luis Allende y Carlos Beyzaga. Fecha: 10 de Septiembre de 2013 Nombre: Nota: Instrucciones: Coloque su nombre a todas las hojas.

Más detalles

Ordenamiento Avanzado: Shellshort y Quicksort

Ordenamiento Avanzado: Shellshort y Quicksort October 1, 2009 1 2 3 4 Acerca del ordenamiento sencillo... Los métodos de ordenamiento sencillo que vimos anteriormente son relativamente fácil de implementar. A expensas de la facilidad de implementarlos

Más detalles

ALGORITMOS HEURÍSTICOS Y APROXIMADOS. Análisis y diseño de algoritmos II- 2009

ALGORITMOS HEURÍSTICOS Y APROXIMADOS. Análisis y diseño de algoritmos II- 2009 ALGORITMOS HEURÍSTICOS Y APROXIMADOS Análisis y diseño de algoritmos II- 2009 Problemas difíciles : Definiciones, ejemplos y propiedades Análisis y diseño de algoritmos II- 2009 Un viaje a Ciencias de

Más detalles

FICHAS DE ESTUDIO No.1. Definición del conjunto N NOMBRE FECHA

FICHAS DE ESTUDIO No.1. Definición del conjunto N NOMBRE FECHA 21 FICHAS DE ESTUDIO No.1. UNIDAD 1: NUMEROS NATURALES Lámina 1.1 Definición del conjunto N NOMBRE FECHA I OBJETIVOS: Al concluir esta Guía podrás: 1. Identificar los elementos del conjunto de los números

Más detalles

Descripciones de los niveles de logro modificados (ALD, siglas en inglés) de la prueba de evaluación MCA en matemáticas Grados 5 a 8

Descripciones de los niveles de logro modificados (ALD, siglas en inglés) de la prueba de evaluación MCA en matemáticas Grados 5 a 8 Descripciones de los niveles de logro modificados (ALD, siglas en inglés) de la prueba de evaluación MCA en matemáticas Grados 5 a 8 Grado 5 No cumple los estándares de logro modificados (Grado 5) Los

Más detalles

GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos.

GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos. 1 Programación II, Guía 2 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos. Objetivos Utilizar la sintaxis de las funciones

Más detalles

GUÍA DOCENTE Matemática Discreta

GUÍA DOCENTE Matemática Discreta GUÍA DOCENTE 2016-2017 Matemática Discreta 1. Denominación de la asignatura: Matemática Discreta Titulación Grado en Ingeniería Informática Código 6348 2. Materia o módulo a la que pertenece la asignatura:

Más detalles

Notación Asintótica 2

Notación Asintótica 2 Notación Asintótica 2 mat-151 1 Éxamen Rápido (6 minutos) Cada operación fundamental usa c milisegundos, cuánto tiempo toma contar hasta 1,000,000? Cuál es el valor de N? Cuál es el órden de complejidad

Más detalles

Tema 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 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 detalles

Árboles. Cursos Propedéuticos 2015. Dr. René Cumplido M. en C. Luis Rodríguez Flores

Árboles. Cursos Propedéuticos 2015. Dr. René Cumplido M. en C. Luis Rodríguez Flores Árboles Cursos Propedéuticos 2015 Dr. René Cumplido M. en C. Luis Rodríguez Flores Contenido de la sección Introducción Árbol genérico Definición y representación Árboles binarios Definición, implementación,

Más detalles

PASOS PARA LA VALIDACION DE DATOS

PASOS PARA LA VALIDACION DE DATOS Muchas veces tenemos que manejar grandes volumenes de información y el Excel tiene las opciones para hacerlo de manera rápida y eficiente, algunas de ellas son: Validar datos, Filtros y Ordenar datos.

Más detalles

Fundamentos de Investigación de Operaciones Modelos de Grafos

Fundamentos de Investigación de Operaciones Modelos de Grafos Fundamentos de Investigación de Operaciones de junio de 00 Muchos problemas de optimización puedes ser analizados y resueltos a través de representaciones gráficas. Tal es el caso de los problemas de planificación

Más detalles

Introducción Supongamos un subconjunto de n elementos X = {e 1,,e n de un conjunto referencial Y, X Y. Dentro de Y se define una relación de orden tot

Introducción Supongamos un subconjunto de n elementos X = {e 1,,e n de un conjunto referencial Y, X Y. Dentro de Y se define una relación de orden tot Algoritmos de ordenación Análisis y Diseño de Algoritmos Algoritmos de ordenación Algoritmos básicos: Θ(n 2 ) Ordenación por inserción Ordenación por selección Ordenación por intercambio directo (burbuja)

Más detalles

A B MIN C D E F MAX x E.T.S.I. INFORMÁTICA 4º CURSO. INTELIGENCIA ARTIFICIAL E INGENIERÍA DEL CONOCIMIENTO

A B MIN C D E F MAX x E.T.S.I. INFORMÁTICA 4º CURSO. INTELIGENCIA ARTIFICIAL E INGENIERÍA DEL CONOCIMIENTO E.T.S.I. INFORMÁTICA 4º CURSO. INTELIGENCIA ARTIFICIAL E INGENIERÍA DEL CONOCIMIENTO UNIVERSIDAD DE MÁLAGA Dpto. Lenguajes y Ciencias de la Computación RELACIÓN DE PROBLEMAS. TEMA IV. PROBLEMAS DE JUEGOS.

Más detalles

Programación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática

Programación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática Programación de Computadores 4 Iteraciones y Decisiones Prof. Javier Cañas Universidad Técnica Federico Santa María Departamento de Informática Contenido 1 Introducción 2 Operadores Relacionales y Lógicos

Más detalles

Java Básico. Métodos estáticos

Java Básico. Métodos estáticos Java Básico Métodos estáticos Agregando métodos estáticos En un programa es deseable separar los algoritmos y asignarles un nombre. Cada algoritmo separado será llamado método. Cuando no necesitamos crear

Más detalles

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

Centro 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 detalles

Metaheurísticas y heurísticas. Algoritmos y Estructuras de Datos III

Metaheurísticas y heurísticas. Algoritmos y Estructuras de Datos III Metaheurísticas y heurísticas Algoritmos y Estructuras de Datos III Metaheurísticas Heurísticas clásicas. Metaheurísticas o heurísticas modernas. Cuándo usarlas? Problemas para los cuales no se conocen

Más detalles

Curso 0 de Informática

Curso 0 de Informática Curso 0 de Informática 2015-2016 Tema 1: Introducción a la Informática y Conceptos básicos 1 Motivación (I): En los procesos industriales, cada vez es mayor el uso de sistemas informáticos para: Monitorización,

Más detalles

Algoritmos de Strings. Héctor Navarro

Algoritmos de Strings. Héctor Navarro lgoritmos de Strings Héctor Navarro Substrings Dado un string T (posiblemente muy grande) y un patrón P (de tamaño menor), encontrar la primera (o todas) las apariciones de P en T Solución trivial de (NM)

Más detalles