Taller de Programación Dinámica. Definiciones. Caso base. Laboratorio de Algoritmos y Estructuras de Datos III. 10 de Septiembre de 2010
|
|
- Irene Soriano Zúñiga
- hace 6 años
- Vistas:
Transcripción
1 Menú del día Taller de 1 Definiciones Laboratorio de Algoritmos y Estructuras de Datos III Departamento de Computación Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires 10 de Septiembre de Labo de Algo III (Sabi) Taller de 10 de Septiembre de / 26 Labo de Algo III (Sabi) Taller de 10 de Septiembre de / 26 Deiniciones Definiciones Caso base Definiciones Problema recursivo Un problema recursivo es un problema que se puede resolver en base a instancias más chicas del mismo problema. Problema Un problema define un valor buscado (valor de verdad, valor óptimo, etc) en base a ciertos parámetros genéricos (variables de entrada del problema). Instancia de un problema Una instancia de un problema es un problema para el cual se determinaron las variables de entrada. Nota: una instancia de un problema tiene un resultado determinado. Pregunta: Si cada instancia se resuelve en base a una o más instancia más chicas cuando termina? El problema se termina de caluclar cuando se llega al caso base, que es una instancia trivial que se responde inmediatamente sin resolver otros subproblemas. Labo de Algo III (Sabi) Taller de 10 de Septiembre de / 26 Labo de Algo III (Sabi) Taller de 10 de Septiembre de / 26
2 Definiciones Ejemplos Calcular el n-ésimo término de la sucesión de Fibonacci. Calcular el n-ésimo término de cualquier sucección recursiva lineal. Ordenar un arreglo de n números. Calcular el camino mínimo entre dos nodos de un grafo. Calcular la distancia de edición entre dos palabras Determinar cuántas letras se deben agregar como mínimo a una palabra para que sea un paĺındromo. Nota: Un problema recursivo no necesariamente se implementa con una función recursiva. es una técnica de resolución de problemas. En D&C la resolción de un problema se separa en dos partes: Divide: Partir el problema en uno o más sub-problemas más peque nos. Conquer o combine: Resolver los sub-problemas y volver a juntarlos para obtener la solución del problema original. Labo de Algo III (Sabi) Taller de 10 de Septiembre de / 26 Labo de Algo III (Sabi) Taller de 10 de Septiembre de / 26 Ejemplo - Ordenar un arreglo Ejemplo - Quicksort Algorithm 2.1: quicksort(array v) Dos algoritmos distintos de para ordenar: Quicksort Mergesort La estrategia es: 1 partir el arreglo en dos partes 2 ordenar cada parte usando el propio algoritmo 3 combimar las partes ordenadas. if v.size() <= 1 then return pivot v 0 vlow {v i v i < pivot} veq {v i v i = pivot} vhigh {v i v i > pivot} return (quicksort(vlow) + veq + quicksort(vhigh)) Divide: Divide el arreglo en los menores que el pivote y los mayores que el pivote. Combine: Ordena los menores por un lado, los mayores por otro lado y combina trivialmente. Labo de Algo III (Sabi) Taller de 10 de Septiembre de / 26 Labo de Algo III (Sabi) Taller de 10 de Septiembre de / 26
3 Ejemplo - Mergesort Algorithm 2.2: mergesort(array v) if v.size() <= 1 then return mid v.size()/2 vfirst {v i i [0..mid)} vsecnd {v i i [mid..v.size())} return (merge(mergesort(vfirst), mergesort(vsecnd))) es una técnica de resolución de problemas. Se utiliza para resolver problemas recursivos. IMPORTANTE Programación dinámica es sumamente útil cuando los sub-problemas comparten sub-sub-problemas entre sí. Divide: Parte el arreglo a la mitad. Combine: Ordena cada midad y hace el merge ordenado. Labo de Algo III (Sabi) Taller de 10 de Septiembre de / 26 Labo de Algo III (Sabi) Taller de 10 de Septiembre de / 26 Ejemplo - Fibonacci Ejemplo - Fibonacci Calcular los términos de la sucesión de Fibonacci puede verse como un problema de programación dinámica. F (n) = F (n 1) + F (n 2) Si lo planteamos como un problema de : para resolver F (6), hay sub-problemas involucrados en resolver F (5) que también servirán para resolver F (4). Nota: Los sub-problemas comparten sub-sub-problemas entre sí. F(5) = F(4) + F(3) F(4) = F(3) + F(2) F(3) = F(2) + F(1) F(2) = F(1) + F(0) F(2) = F(1) + F(0) F(3) = F(2) + F(1) F(2) = F(1) + F(0) Para calcular F (n), se llama a la función F (0) una cantidad igual a F (n) veces. Labo de Algo III (Sabi) Taller de 10 de Septiembre de / 26 Labo de Algo III (Sabi) Taller de 10 de Septiembre de / 26
4 Principio de optimalidad Principio de optimalidad Principio de optimalidad El principio de optimalidad dice dado un problema P, si S es solución de P, entonces un subproblema subp de P tiene como (alguna) solución la sub-solución subs asociada a S. Consideremos el problema de camino mínimo en un grafo. Ejemplo: P = Cuál es el camino mínimo desde u hasta v? S = La solución: u = x 1, x 2,..., x k 1, x k = v con k mínimo. subproblema de subp = El camino mínimo desde u hasta x j? subsolución subs = La solución: u = x 1, x 2,..., x j 1, x j. Contrarecíproco del principio de optimalidad Si la sub-solución subs asociada a S NO es solución del subproblema subp, entonces S NO es solución del problema P....o bien... Contrarecíproco del principio de optimalidad Toda solución S del problema P se puede construir como extensión de alguna solución subs del problema subp. Labo de Algo III (Sabi) Taller de 10 de Septiembre de / 26 Labo de Algo III (Sabi) Taller de 10 de Septiembre de / 26 Ejemplo: Paĺındromos Ejemplo (de nuevo con camino mínimo): P = Cuál es el camino mínimo desde u hasta v? S = La solución: u = x 1, x 2,..., x k 1, x k = v con k mínimo. subproblema de subp = El camino mínimo desde u hasta x j? subsolución subs = La solución: u = x 1, x 2,..., x j 1, x j. Si subs no es óptimo, porque existe un camino u = y 1, y 2,..., y l = x j mejor, entonces S = (u = y 1 ), y 2,..., (y l = x j ), x j+1,..., (x k = v) es una mejor solución que S del problema P. Dado un string S, determinar el máximo largo de un paĺındromo que se pueda obtener borrando caracteres del string dado. Un paĺındromo es un string que es igual a su reverso, como sometemos, seres o neuquen. Ejemplo: amapola aoa amapola apa ababbba ababa ababbba abbbba Equivalentemente, se desea minimizar la cantidad de caracteres borrados del string original. Labo de Algo III (Sabi) Taller de 10 de Septiembre de / 26 Labo de Algo III (Sabi) Taller de 10 de Septiembre de / 26
5 Implementación Se debe implementar una función que dada una cadena de caracteres de longitud n, devuelva un entero con la cantidad máxima de caracteres que puede tener un paĺındromo que sea subsecuencia de la cadena de caracteres dada. int palindromo(const string& s) { int n = s.size();... return...; } Este problema está disponible en: UVA Longest Palindrome - org/index.php?option=com_onlinejudge&itemid=8&category= 23&page=show_problem&problem=2092 Subproblemas Pensemos en los subproblemas: Sea S = s 1 s 2 s 3 s 4 s n 1 s n Si s 1 = s n, S es paĺındromo si s 2 s n 1 es paĺındromo. axyza XYZ Si s 1 s 2 s n 1 es paĺındromo puedo borrar el caracter final y obtener un paĺındromo. S = axyzb: axyz. Si s 2 s 3 s n es paĺındromo puedo borrar el caracter inicial y obtener un paĺındromo. S = axyzb: XYZb. Labo de Algo III (Sabi) Taller de 10 de Septiembre de / 26 Labo de Algo III (Sabi) Taller de 10 de Septiembre de / 26 Algoritmo Importante Planteamos 3 casos recursivos y 1 caso base. palindromo(s) = res: Si n 1, S es paĺındromo, entonces res = n. Si no (caso recursivo): Si s 1 = s n, considerar res = palindromo(s 2 s n 1 ) + 2 Considerar res = palindromo(s 1 s n 1 ) Considerar res = palindromo(s 2 s n ) Devolver el máximo de los res considerados. Para usar estas técnicas Hay que definir el problema como un problema recursivo. Hay que separar qué parámetros son globales a todos los sub-problemas. No necesariamente el resultado es una función que llena una tabla. Labo de Algo III (Sabi) Taller de 10 de Septiembre de / 26 Labo de Algo III (Sabi) Taller de 10 de Septiembre de / 26
6 llenando tablas Para responder esta pregunta enviamos al Fede a Australia a investigar... es siempre es llenar una tabla? Labo de Algo III (Sabi) Taller de 10 de Septiembre de / 26 Labo de Algo III (Sabi) Taller de 10 de Septiembre de / 26...y un canguro, que es un animal recursivo, le dijo: S es global. i, j, los índices del intervalo son locales. Algorithm 3.1: Palindromo(int i, int j) también se puede implementar con una función recursiva memorizada if j i 1 then return (j i) res 0 if s i = s j 1 then res max(res, Palindromo(i + 1, j 1) + 2) res max(res, Palindromo(i, j 1)) res max(res, Palindromo(i + 1, j)) return (res) Solución: Palindromo(0, length(s)) Labo de Algo III (Sabi) Taller de 10 de Septiembre de / 26 Labo de Algo III (Sabi) Taller de 10 de Septiembre de / 26
7 de hoy Algorithm 3.2: Palindromo(int i, int j) if memoria [i] [j] NO CALCULADO then return (memoria [i] [j]) if j i 1 then return (j i) res 0 if s i = s j 1 then res max(res, Palindromo(i + 1, j 1) + 2) res max(res, Palindromo(i, j 1)) res max(res, Palindromo(i + 1, j)) memoria [i] [j] res return (res) ACM-ICPC UVA Candy - problem.php?p=4212 UVA Longest Palindrome - org/index.php?option=com_onlinejudge&itemid=8&category= 23&page=show_problem&problem=2092 Labo de Algo III (Sabi) Taller de 10 de Septiembre de / 26 Labo de Algo III (Sabi) Taller de 10 de Septiembre de / 26
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 detallesSorting++ Herman Schinca. Clase 21. 10 de Junio de 2011
Sorting++ Herman Schinca Clase 21 10 de Junio de 2011 Recordando Ya vimos 3 algoritmos de ordenamiento basados en la comparación entre elementos: Selection, Insertion y Bubble. Los 3 en peor caso (cuando
Más detallesAnálisis de algoritmos
Tema 09: Programación dinámica Solicitado: Ejercicios 06: Programación dinámica de Fibonacci y Coeficientes Binomiales M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom
Más detallesGUIA 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 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 detallesProblemas de Recursividad
Problemas de Recursividad Problema 1. El factorial de un número entero n 0, denotado como n!, se define! como!!! i = 1 2 n cuando n > 0, y 0! = 1. Por ejemplo 6! = 1 2 3 4 5 6 = 720 Diseñad una método
Más detallesPráctica N o 8 Desigualdades Válidas - Algoritmos de Planos de Corte - Algoritmos Branch & Cut
Práctica N o 8 Desigualdades Válidas - Algoritmos de Planos de Corte - Algoritmos Branch & Cut 8.1 Para cada uno de los siguientes conjuntos, encontrar una desigualdad válida que agregada a la formulación
Más detallesCarlos A. Rivera-Morales. Precálculo 2
y Carlos A. Rivera-Morales Precálculo 2 Introducción a y Notación d Tabla de Contenido 1 Definición Sumas Parciales Introducción a y Notación d Tabla de Contenido 1 Definición Sumas Parciales 2 Introducción
Más detalles1.- Para cada uno de los siguientes problemas escribir el diagrama de flujo y el pseudocódigo de un programa que lo resuelva:
1.- Para cada uno de los siguientes problemas escribir el diagrama de flujo y el a) Problema: pedir la base y la altura de un triángulo y escribir su superficie. b) Problema: pedir cuatro números enteros
Más detallesAlgoritmos glotones. mat-151
Algoritmos glotones (greedy) mat-151 Alonso Ramirez Manzanares Computación y Algoritmos 04.06.2009 Algoritmos glotones Algoritmos utilizados en problemas de optimización. Estos algoritmos siguen típicamente
Más detallesPercentil q (p q ) Si en este conjunto de valores se quiere encontrar el percentil 20, la solución gráfica es muy simple
Percentil q (p q ) Una medida de posición muy útil para describir una población, es la denominada 'percentil'. En forma intuitiva podemos decir que es un valor tal que supera un determinado porcentaje
Más detallesUNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.
UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. TRUJILLO Recursividad: La recursividad es una técnica de programación
Más detallesTeorema Central del Límite (1)
Teorema Central del Límite (1) Definición. Cualquier cantidad calculada a partir de las observaciones de una muestra se llama estadístico. La distribución de los valores que puede tomar un estadístico
Más detallesPrimer 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 detallesJueves, 30 de abril. Ejemplo de recursión. Ejemplo de PD. Ejemplo de programación dinámica. Programación dinámica
.0 Jueves, 0 de abril Programación dinámica. Recursión. Principio de optimalidad. Entregas: material de clase. Programación dinámica Transforma un problema de optimización complejo en una secuencia problemas
Más detallesObjetivos formativos de Álgebra
Objetivos formativos de Álgebra Para cada uno de los temas el alumno debe ser capaz de hacer lo que se indica en cada bloque. Además de los objetivos que se señalan en cada tema, se considera como objetivo
Más detallesAlgoritmos. Diseño de algoritmos por inducción. Alberto Valderruten. alberto.valderruten@udc.es. Dept. de Computación, Universidade da Coruña
Divide y Vencerás Diseño de algoritmos por inducción Dept. de Computación, Universidade da Coruña alberto.valderruten@udc.es Contenido Divide y Vencerás 1 Divide y Vencerás 2 Índice Divide y Vencerás 1
Más detallesNotació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 detallesAlgoritmos Recursivos de Búsqueda y Ordenación y sus tiempos
Estructura de Datos y Algoritmos Algoritmos Recursivos de Búsqueda y Ordenación y sus tiempos 1. Algoritmos de ordenación recursivos 1.1. Mergesort, Ordenamiento por fusión Mergesort se ejecuta en un tiempo
Más detallesBreve introducción a la Investigación de Operaciones
Breve introducción a la Investigación de Operaciones Un poco de Historia Se inicia desde la revolución industrial, usualmente se dice que fue a partir de la segunda Guerra Mundial. La investigación de
Más detalles<tipo> Tipo de dato de los elementos del vector
Vectores y matrices Declaración Vector (array unidimiensional): []; Tipo de dato de los elementos del vector Identificador de la variable.
Más detallesI. Complejidad de Problemas
I. Complejidad de Problemas 1. Complejidad de Problemas Tópicos Clasificación de Problemas Clasificación por su Naturaleza Clasificación por su Tratabilidad Clasificación por el tipo de Respuesta 1.1 Clasificación
Más detallesTema 3: El Método Simplex. Algoritmo de las Dos Fases.
Tema 3: El Método Simplex Algoritmo de las Dos Fases 31 Motivación Gráfica del método Simplex 32 El método Simplex 33 El método Simplex en Formato Tabla 34 Casos especiales en la aplicación del algoritmo
Más detallesUniversidad de Managua
Universidad de Managua Introducción a la Programación Tema 7 Introducción a la programación en lenguaje C# Objetivos - Describir la estructura básica de un programa en Lenguaje C# - Explicar las estructuras
Más detallesRESOLUCIÓN INTERACTIVA DEL SIMPLEX
RESOLUCIÓN INTERACTIVA DEL SIMPLEX Estos materiales interactivos presentan la resolución interactiva de ejemplos concretos de un problema de P.L. mediante el método Simplex. Se presentan tres situaciones:
Más detallesUniversidad de Santiago de Chile Facultad de Ciencia Departamento de Matemática y Ciencias de la Computación
Universidad de Santiago de Chile Facultad de Ciencia Departamento de Matemática y Ciencias de la Computación EJERCICIOS RESUELTOS DE ECUACIONES NO LINEALES Profesor: Jaime Álvarez Maldonado Ayudante: Rodrigo
Más detallesRelación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática
Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso 2013-2014. 1º Grado en Informática Práctica 2: Memoria dinámica y Bibliotecas Objetivos Practicar conceptos
Más detallesPROBLEMA 1. Considere el siguiente problema de programación lineal:
PROBLEMA 1 Considere el siguiente problema de programación lineal: Sean h1 y h2 las variables de holgura correspondientes a la primera y segunda restricción, respectivamente, de manera que al aplicar el
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 detallesMetodología de la Programación II. Recursividad
Metodología de la Programación II Recursividad Objetivos Entender el concepto de recursividad. Conocer los fundamentos del diseño de algoritmos recursivos. Comprender la ejecución de algoritmos recursivos.
Más detallesIN Guía de Problemas Resueltos de Geometría de Programación Lineal v1.0
IN3701 - Guía de Problemas Resueltos de Geometría de Programación Lineal v1.0 Acá va una pequeña guía con problemas resueltos de Geometría en Programación Lineal con problemas básicamente extraídos del
Más detallesORDENAMIENTO Y BÚSQUEDA EN ARREGLOS
1 ORDENAMIENTO Y BÚSQUEDA EN ARREGLOS Corina Flores Villarroel ORDENAMIENTO EN ARREGLOS Y COLECCIONES Una de las tareas más comunes a la hora de procesar datos es la clasificación u ordenación de los datos.
Más detallesTeoría de grafos y optimización en redes
Teoría de grafos y optimización en redes José María Ferrer Caja Universidad Pontificia Comillas Definiciones básicas Grafo: Conjunto de nodos (o vértices) unidos por aristas G = (V,E) Ejemplo V = {,,,,
Más detallesSistemas de Ecuaciones Lineales y Matrices
Capítulo 4 Sistemas de Ecuaciones Lineales y Matrices El problema central del Álgebra Lineal es la resolución de ecuaciones lineales simultáneas Una ecuación lineal con n-incógnitas x 1, x 2,, x n es una
Más detallesUniversidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 4: Ordenación. Prof. Montserrat Serrano Montero
Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 4: Ordenación Prof. Montserrat Serrano Montero ÍNDICE Conceptos básicos Elección de un método Métodos directos
Más detallesAlonso Ramirez Manzanares Computación y Algoritmos 03.05
Tablas de hash (2) mat-151 Alonso Ramirez Manzanares Computación y Algoritmos 03.05 Tablas de hash: resolviendo colisiones por encadenamiento cuando el número de elementos en total es proporcional al número
Más detallesHoja de ejercicios del Tema 3
Facultad de Informática Universidad Complutense Fundamentos de la programación Curso 2013 2014 Hoja de ejercicios del Tema 3 1. Conversiones de tipos: Prueba el siguiente programa en tu compilador (copia
Más detallesMetodología y Tecnología de la Programación
Tema 4. Abstracción procedimental y de datos 1. Cuál es el error del siguiente programa? import java.util.scanner; class Respuesta{ static Scanner leer=new Scanner(System.in); int valor = lectura(); System.out.println(valor);
Más detallesIntroducción Programación Modular y a Métodos: Consideremos el siguiente ejercicio:
Introducción Programación Modular y a Métodos: Consideremos el siguiente ejercicio: Ejercicio: Escriba una aplicación que requiera un número real como entrada y que muestre el producto del número y tres.
Más detallesALGEBRA y ALGEBRA LINEAL. Primer Semestre CAPITULO I LOGICA Y CONJUNTOS.
ALGEBRA y ALGEBRA LINEAL 520142 Primer Semestre CAPITULO I LOGICA Y CONJUNTOS. DEPARTAMENTO DE INGENIERIA MATEMATICA Facultad de Ciencias Físicas y Matemáticas Universidad de Concepción 1 La lógica es
Más detallesMétodos que devuelven valor Dado el siguiente triángulo rectángulo:
Métodos que devuelven valor Dado el siguiente triángulo rectángulo: hipotenusa altura base Para dibujar este triángulo necesitamos los siguientes datos: base y altura La base y la altura, se utilizarán
Más detallesTema 2 Introducción a la Programación en C.
Tema 2 Introducción a la Programación en C. Contenidos 1. Conceptos Básicos 1.1 Definiciones. 1.2 El Proceso de Desarrollo de Software. 2. Lenguajes de Programación. 2.1 Definición y Tipos de Lenguajes
Más detallesMétodos iterativos para sistemas de ecuaciones lineales
Métodos iterativos para sistemas de ecuaciones lineales Natalia Boal - Manuel Palacios - Sergio Serrano Departamento de Matemática Aplicada Obetivos Trabaar con los métodos iterativos habituales (Jacobi,
Más detallesPara las ecuaciones diferenciales ordinarias no lineales no existen métodos generales.
Unidad IV: Sistemas continuos (continuación) Objetivo específico: Entender ampliamente el fenómeno del comportamiento de los modelos matemáticos para la resolución de problemas enfocados a las ecuaciones
Más detallesEJERCICIO DE MAXIMIZACION
PROGRAMACION LINEAL Programación lineal es una técnica matemática que sirve para investigar, para así, hallar la solución a un problema dado dentro de un conjunto de soluciones factibles y es la operación
Más detallesREALIZAR CÁLCULOS EXACTOS Y APROXIMADOS
REALIZAR CÁLCULOS EXACTOS Y APROXIMADOS 2do Grado Universidad de La Punta Consideraciones Generales: Las actividades que proponemos a continuación tienen como objetivo construir un repertorio de sumas
Más detallesPráctica 4 El algoritmo QuickSort, comparación de algoritmos de ordenación
Práctica 4 El algoritmo QuickSort, comparación de algoritmos de ordenación Estructuras de datos y algoritmos Facultad de Informática curso 2008-2009 Introducción El objetivo de esta práctica consiste en
Más detallesCurso de Programación 1
Curso de Programación 1 Plan 97 Búsqueda y Ordenación Métodos de búsqueda Existen aplicaciones en las cuales es necesario consultar si un elemento se encuentra dentro de un array. A continuación veremos
Más detallesEjemplo, generación de #s aleatorios
Ejemplo, generación de #s aleatorios Supón que tienes un generador de números aleatorios enteros [0,2] con distribución uniforme, y tu necesitas generar números con distribución uniforme [0,4]. Alguien
Más detallesExamen Principios de Programación Febrero 2012
Por favor siga las siguientes indicaciones: Escriba con lápiz. Escriba su nombre y número de documento en todas las hojas que entregue. Numere las hojas e indique el total de hojas en la primera de ellas.
Más detallesEstructura de Datos. Arreglos. Experiencia Educativa de Algorítmica ESTRUCTURA DE DATOS - ARREGLOS 1
Estructura de Datos Arreglos Experiencia Educativa de Algorítmica ESTRUCTURA DE DATOS - ARREGLOS 1 Introducción Una estructura de datos es una colección de datos que pueden ser caracterizados por su organización
Más detallesMATEMÁTICAS BÁSICAS. 2 de marzo de Universidad Nacional de Colombia MATEMÁTICAS BÁSICAS
2 de marzo de 2009 Parte I Conjuntos Definición intuitiva de conjunto Definición Un conjunto es una colección de objetos. Ejemplos A = {a, e, i, o, u} B = {blanco, gris, negro} C = {2, 4, 6, 8, 9} D =
Más detallese-mail: mtoledo@dgrfsa.gov.ar
Arreglos Introducción a las Estructuras de Datos. Arreglos Unidimensionales: Vectores Vectores Estáticos en VB Vectores Dinámicos en VB Ordenando un Vector Introducción a las Estructuras de Datos. Una
Más detallesProf. Pérez Rivas Lisbeth Carolina
Ingeniería de Sistemas Investigación de Operaciones Prof. Pérez Rivas Lisbeth Carolina Investigación de Operaciones Es una rama de las Matemáticas consistente en el uso de modelos matemáticos, estadística
Más detallesAgradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1
Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos
Más detallesAlonso Ramírez Manzanares Computación y Algoritmos 10.03
Recursividad mat-151 1 Ejercicio de recursión: dibujando una regla Queremos dibujar las marcas de diferentes tamaños de una regla. Marcas grandes cada 1/2 cm, marcas más pequeñas cada 1/4 cm... hasta una
Más detallesMultiplicación de enteros Algoritmo clásico 1234*5678 = 1234* (5*1000 + 6*100+7*10+8) = 1234*5*1000 + 1234*6*100 + 1234*7*10 + 1234*8 Operaciones bási
Algoritmos Divide y Vencerás Análisis y Diseño de Algoritmos Algoritmos Divide y Vencerás Ejemplo: Multiplicación de enteros grandes La técnica divide y vencerás Características Método general divide y
Más detallesAlgoritmos de Ordenación
Algoritmos de Ordenación Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Algoritmos comunes - Ordenación Ordenación o clasificación es
Más detalles1 Curvas planas. Solución de los ejercicios propuestos.
1 Curvas planas. Solución de los ejercicios propuestos. 1. Se considera el lugar geométrico de los puntos del plano tales que la suma del cuadrado de las distancias a los puntos P 1 = (, 0) y P = (, 0)
Más detallesTUTORIAL SOBRE HOJAS DE CALCULO
TUTORIAL SOBRE HOJAS DE CALCULO Octubre de 2007 Página 1 de 12 Tabla de contenido Hojas de Cálculo...3 Software a utilizar y entorno de trabajo...3 Crear una hoja de cálculo...3 Características de las
Más detallesALGORITMOS, ESTRUCTURAS Y PROGRAMACION
VICERRECTORADO ACADÉMICO DIRECCIÓN DE GESTIÓN, DESARROLLO E INNOVACIÓN CURRICULAR FACULTAD: INGENIERIA ESCUELAS: COMPUTACION - SISTEMA UNIDAD CURRICULAR: ALGORITMOS, ESTRUCTURAS Y PROGRAMACION FECHA DE
Más detallesMATEMÁTICAS BÁSICAS. Autora: Jeanneth Galeano Peñaloza Edición: Oscar Guillermo Riaño
MATEMÁTICAS BÁSICAS Autora: Jeanneth Galeano Peñaloza Edición: Oscar Guillermo Riaño Universidad Nacional de Colombia Departamento de Matemáticas Sede Bogotá Enero de 2014 Universidad Nacional de Colombia
Más detallesSistemas de ecuaciones lineales
Sistemas de ecuaciones lineales TIPOS DE SISTEMAS. DISCUSIÓN DE SISTEMAS. Podemos clasificar los sistemas según el número de soluciones: Incompatible. No tiene solución Compatible. Tiene solución. Compatible
Más detalles1 Ecuaciones diferenciales
1 Ecuaciones diferenciales La solución a una ecuación algebraica es un número, o un conjunto de números que satisfacen la ecuación. Por ejemplo las soluciónes de x 2 4x + 3 = 0 son x 0 = 1 y x 1 = 3. Las
Más detallesAlgoritmos para determinar Caminos Mínimos en Grafos
Problemas de camino mínimo Algoritmos para determinar Caminos Mínimos en Grafos Algoritmos y Estructuras de Datos III DC, FCEN, UBA, C 202 Problemas de camino mínimo Dado un grafo orientado G = (V, E)
Más detallesFundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto Segundo Cuatrimestre de 2002
Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur Ejercicios Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto
Más detallesAlgoritmos y Estructuras de Datos III Segundo cuatrimestre 2011
Algoritmos y Estructuras de Datos III Segundo cuatrimestre 2011 Programa 1. Algoritmos: Definición de algoritmo. Máquina RAM. Complejidad. Algoritmos de tiempo polinomial y no polinomial. Límite inferior.
Más detalles1. 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 detallesUniversidad Metropolitana Castro Carazo Prof. Ing. Patricia Vargas. Material de apoyo Semana #2 PROGRAMACIÓN II
Prof. Ing. Patricia Vargas 1 Universidad Metropolitana Castro Carazo Prof. Ing. Patricia Vargas Material de apoyo Semana #2 PROGRAMACIÓN II Agenda 1. Definición de variables locales y públicas. 2. Declaraciones
Más detallesTaller: Introducción a las Relaciones de Recurrencia.
Taller: Introducción a las Relaciones de Recurrencia. Déboli Alberto. Departamento de Matemática. F.C.E. y N. Universidad de Buenos Aires. Semana de la Enseñanza de la Ciencia. Buenos Aires 15 de julio
Más detallesIntroducción al tipo Vector Cómo guardar una colección de datos conceptualmente relacionados? - almacenar los 100 primeros números primos, - al
Tema 6. Vectores 1. Introducción y Definiciones 2. Operaciones elementales con vectores 3. Definición y manejo de vectores (arrays arrays) en C 4. Operación de Recorrido secuencial de un vector 5. Operación
Más detallesTabla de Símbolos. Programación II Margarita Álvarez
Programación II Margarita Álvarez La tabla de símbolos es una estructura global utilizada por distintos módulos del compilador. Es el principal atributo heredado. Almacena todos los nombres declarados
Más detallesCoordinación de Matemática I (MAT021) 1 er Semestre de 2013 Semana 1: Lunes 11 Viernes 16 de Marzo. Contenidos
Coordinación de Matemática I (MAT021) 1 er Semestre de 2013 Semana 1: Lunes 11 Viernes 16 de Marzo Complementos Contenidos Clase 1: Elementos de lógica: Conectivos, tablas de verdad, tautologías y contingencias.
Más detallesTema 7. Problemas de ecuaciones de primero y segundo grado
Mat º ESO Tema 7. Problemas de ecuaciones de primero y segundo grado Llámale x La x es la letra más famosa entre los números. La letra x suele emplearse para sustituir a un número del que no se sabe su
Más detallesDepartamento de Matemáticas. ITAM Programación lineal (+ extensiones). Objetivos y panorama del c
Programación lineal (+ extensiones). Objetivos y panorama del curso. Departamento de Matemáticas. ITAM. 2008. Introducción Programación lineal http://allman.rhon.itam.mx/ jmorales La programación lineal
Más detallesEliminación Gaussiana con pivote parcial
Eliminación Gaussiana con pivote parcial Luis Rández Dpto. Matemática Aplicada Facultad de Ciencias Universidad de Zaragoza Luis Rández (Dpto. Matemática Aplicada) Eliminación Gaussiana con pivote parcial
Más detallesAlgebra lineal y conjuntos convexos
Apéndice A Algebra lineal y conjuntos convexos El método simplex que se describirá en el Tema 2 es de naturaleza algebraica y consiste en calcular soluciones de sistemas de ecuaciones lineales y determinar
Más detallesUNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE ESTUDIOS SUPERIORES ACATLÁN LICENCIATURA EN MATEMÁTICAS APLICADAS Y COMPUTACIÓN
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE ESTUDIOS SUPERIORES ACATLÁN LICENCIATURA EN MATEMÁTICAS APLICADAS Y COMPUTACIÓN ACATLÁN CLAVE: PROGRAMA DE ASIGNATURA SEMESTRE: 1 (PRIMERO) MODALIDAD
Más detallesOPTIMIZACIÓN VECTORIAL
OPTIMIZACIÓN VECTORIAL Métodos de Búsqueda Directa Utilizan sólo valores de la función Métodos del Gradiente Métodos de Segundo Orden Requieren valores aproimados de la primera derivada de f) Además de
Más detallesUniversidad Nacional del Santa FACULTAD DE INGENIERIA E.A.P. Ingeniería de Sistemas e Informática NETBEANS 7.0 MI PRIMER PROYECTO
Universidad Nacional del Santa FACULTAD DE INGENIERIA E.A.P. Ingeniería de Sistemas e Informática NETBEANS 7.0 MI PRIMER PROYECTO El NetBeans es un entorno de desarrollo integrado que permite crear aplicaciones
Más detallesContenido: Solución algebraica a los problemas de programación lineal con el método simplex.
Tema II: Programación Lineal Contenido: Solución algebraica a los problemas de programación lineal con el método simplex. Introducción El método simplex resuelve cualquier problema de PL con un conjunto
Más detallesCAPÍTULO 4 TÉCNICA PERT
54 CAPÍTULO 4 TÉCNICA PERT Como ya se mencionó en capítulos anteriores, la técnica CPM considera las duraciones de las actividades como determinísticas, esto es, hay el supuesto de que se realizarán con
Más detallesMODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular.
MODELOS DE COMPUTACION I Preguntas Tipo Test Indicar si son verdaderas o falsas las siguientes afirmaciones: 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular. 2.
Más detallesÁlgebra y Trigonometría Clase 7 Sistemas de ecuaciones, Matrices y Determinantes
Álgebra y Trigonometría Clase 7 Sistemas de ecuaciones, Matrices y Determinantes CNM-108 Departamento de Matemáticas Facultad de Ciencias Exactas y Naturales Universidad de Antioquia Copyleft c 2008. Reproducción
Más detallesTema: Clases y Objetos en C#. Parte II.
Programación II. Guía No. 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Clases y Objetos en C#. Parte II. Objetivos Implementar clases, objetos, propiedades, métodos y
Más detallesTema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código
Tema 6 Reutilización de código Programación 2015-2016 Programación - Tema 6: Reutilización de código 1 Tema 6. Reutilización de código Modularidad. Implementación de métodos. Uso de métodos. Programación
Más detallesTema No. 3 Métodos de Resolución de Modelos de Programación Lineal. El Método Gráfico y Método Simplex Autoevaluación y Ejercicios Propuestos
UNIVERSIDAD NACIONAL EXPERIMENTAL FRANCISCO DE MIRANDA ÁREA DE TECNOLOGÍA DEPARTAMENTO DE GERENCIA INVESTIGACIÓN DE OPERACIONES PROFESOR: Dr. JUAN LUGO MARÍN Tema No. 3 Métodos de Resolución de Modelos
Más detallesProgramación. Tema 8: Tablas Hash. Apuntes elaborados por: Eduardo Quevedo, Aaron Asencio y Raquel López Revisado por: Javier Miranda el????
Programación. Tema : Tablas Hash /Mayo/ Apuntes elaborados por: Eduardo Quevedo, Aaron Asencio y Raquel López Revisado por: Javier Miranda el???? Tema : Tabla Hash Las tabla hash aparece para conseguir
Más detallesAlgoritmos de Ordenamiento
Algoritmos de Ordenamiento Fernando A. Lagos B. Copyleft 2007 INDICE 1 Introducción Pág. 3 2 Tipos de Algoritmos Pág. 4 2.1 Algoritmos iterativos Pág. 5 2.2 Algoritmos recursivos Pág. 6 3 Método de la
Más detallesPasos en el Método Simplex
Pontificia Universidad Católica Escuela de Ingeniería Departamento de Ingeniería Industrial y de Sistemas Clase 20 El Método Simplex ICS 1102 Optimización Profesor : Claudio Seebach 16 de octubre de 2006
Más detalles1.3.- V A L O R A B S O L U T O
1.3.- V A L O R A B S O L U T O OBJETIVO.- Que el alumno conozca el concepto de Valor Absoluto y sepa emplearlo en la resolución de desigualdades. 1.3.1.- Definición de Valor Absoluto. El valor absoluto
Más detallesProfesor(a): M. A. Zeferino Galarza Hernández
Área Académica: Informática IV Tema: Algoritmos Profesor(a): M. A. Zeferino Galarza Hernández Periodo: Enero-junio de 2012 IV Semestre. Asignatura: Informática IV Tema: Algoritmos Abstract Contains and
Más detallesUNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION
CICLO: 02/ 2012 UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION Nombre de la Practica: Lugar de Ejecución: Tiempo Estimado: MATERIA: GUIA DE LABORATORIO #07 Arreglos. Uso
Más detallesPROGRAMACIÓN UNIDADES
PROGRAMACIÓN Semestre: Segundo Horas: 90 horas Hrs/sem: 4.5 Créditos: 9 Clave: AI-02 DESCRIPCIÓN DE LA ASIGNATURA Al finalizar el curso el alumno tendrá el conocimiento y la capacidad de implementar programas
Más detallesTema 2. Recursividad. Fundamentos de Programación II. Luís Rodríguez Baena (luis.rodriguez@upsam.net)
Fundamentos de Programación II Tema 2. Recursividad Luís Rodríguez Baena (luis.rodriguez@upsam.net) Universidad Pontificia de Salamanca (campus Madrid) Escuela Superior de Ingeniería y Arquitectura Naturaleza
Más detallesUNIDAD II. INTEGRAL DEFINIDA Y LOS MÉTODOS DE INTEGRACIÓN. Tema: LA INTEGRAL DEFINIDA
UNIDAD II. INTEGRAL DEFINIDA Y LOS MÉTODOS DE INTEGRACIÓN Tema: LA INTEGRAL DEFINIDA La integral definida Anteriormente se mencionó que la Integral Indefinida da como resultado una familia de funciones
Más detallesTema 5.- Recursividad
Apuntes elaborados por: Raquel López, Eduardo Quevedo y Aaron Asencio Revado por: Javier Miranda el???? Tema 5.- Recursividad NOTA Todos los ejemplos que se exponen en este tema se pueden realizar utilizando
Más detallesClases e instancias. Algoritmos y Estructuras de Datos I. Clases e instancias. memoria dinámica.
Algoritmos Estructuras de Datos I Primer cuatrimestre de 2014 Departamento de Computación - FCEN - UBA Programación imperativa - clase 10 Memoria dinámica listas enlazadas Clases e instancias El paquete
Más detallesLa 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 detalles1. Sea A una matriz cuadrada n x n, conteniendo la siguiente información en cada fila i. para 1 j k n para k
. Sea A una matriz cuadrada n x n, conteniendo la siguiente información en cada fila i Ai [, j] = 0 para j k n para k i i < j n Construya un algoritmo "Divide y Vencerás" que ordene las filas de la matriz
Más detalles