Programación Dinámica

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

Download "Programación Dinámica"

Transcripción

1 , Algoritmos y Programación 6 de Abril de 2010 Alejandro Deymonnaz

2 Definiciones Divide and Conquer Deiniciones previas 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.

3 Caso base Técnicas Definiciones Divide and Conquer Pregunta: Si cada instancia se resuelve en base a una o más instancias más chicas cuando termina? El problema se termina de calcular cuando se llega al caso base, que es una instancia trivial que se responde inmediatamente sin resolver otros subproblemas. (Nota: puede haber varios casos base)

4 Definiciones Divide and Conquer 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.

5 Divide and Conquer Técnicas Definiciones Divide and Conquer Divide and Conquer 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ños. Conquer o combine: Resolver los sub-problemas y volver a juntarlos para obtener la solución del problema original.

6 Definiciones Divide and Conquer Ejemplo - Ordenar un arreglo Dos algoritmos distintos de Divide and Conquer 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.

7 Definiciones Divide and Conquer Ejemplo - Quicksort Algorithm 1.1: quicksort(array v) 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.

8 Definiciones Divide and Conquer Ejemplo - Mergesort Algorithm 1.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))) Divide: Parte el arreglo a la mitad. Combine: Ordena cada midad y hace el merge ordenado.

9 Definiciones Divide and Conquer 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í.

10 Ejemplo - Fibonacci Técnicas Definiciones Divide and Conquer 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 Divide and Conquer: 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í.

11 Ejemplo - Fibonacci Técnicas Definiciones Divide and Conquer 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.

12 Definiciones Divide and Conquer Principio de optimalidad Principio de optimalidad El principio de optimalidad establece que si S es solución de un problema P entonces una parte de S (subsolución) es solución del subproblema correspondiente de P. Ejemplos: Si un camino más corto S entre u y v en un grafo pasa por w, entonces la porción de S entre u y w es un camino más corto entre u y w. El contrarecíproco del principio de optimalidad garantiza que un problema que lo satisface puede ser escrito como problema recursivo.

13 Dinámica de la clase Vamos a ver varios problemas. Vamos a pensar algoritmos de programación dinámica que los resuelvan. Vamos a analizar algunas soluciones ya programadas. Algoritmos programación.

14 Ejemplo: de Juegos Los problemas de juegos son un caso particular donde varios jugadores juegan con una estrategia definida y el objetivo del problema es alguno de estos: Saber quién gana el juego (o equivalentemente saber si el primer jugador gana o pierde), Saber en cuántas jugadas como mínimo gana o pierde un determinado jugador, Saber si el juego puede no terminar, etc. Nos concentraremos en los juegos: Simétricos: Cada jugador tiene las mismas reglas de juego. Cada jugador juega de la mejor manera. Terminan.

15 de juegos como problemas recursivos En estos juegos, decimos que cada posición o estado del juego puede ser: una posición ganadora: si jugando de manera óptima se asegura la victoria una posición perdedora: si aún jugando de manera óptima no se puede asegurar la victoria En términos del problema recursivo una posición p es ganadora sii: ( j jugadas(p))/jugar(p, j) es perdedora

16 Ejemplo: Cálculo de probabilidades En muchos problemas es necesario calcular la probabilidad de un evento o la esperanza de una variable, sabiendo algunas probabilidades particulares. Ejemplo: Calcular la probabilidad de sumar M tirando N dados equilibrados de K caras. Si cada instancia se puede partir utilizando la probabilidad de un evento conocido (ej: la probabilidad de que el primer dado sea un 1 ) se puede plantear como problema recursivo sumando probabilidades condicionales.

17 Solución Subproblema: P(m, n) Probabilidad de sumar m tirando n dados de K caras. (Nota: K es un dato global. Las caras son de 1 a K.) 0 m < 0 1 m = 0 n = 0 P(m, n) = 0 m > 0 n = 0 K 1 i=1 P(m i, n 1) K m 0 n > 0 Solución: P(M, N).

18 Ejemplo: Paĺındromos Dado un string S, determinar la cantidad de caracteres mínima que hay que agregarle (antes, después y/o entre medio) para obtener un paĺındromo. Un paĺındromo es un string que es igual a su reverso, como sometemos, seres o neuquen. Ejemplo: nequ neuquen nequ nequqen ababbba abbbabbba ababbba ababbbaba

19 Implementación Se debe implementar una función que dada una cadena de caracteres de longitud n, devuelva un entero con la cantidad mínima de caracteres que se deben insertar en ella (antes, después y/o entre medio) para que el resultado sea un paĺındromo. 1 int palindromo(const string& s) { 2 int n = s.size(); return...; 5 }

20 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 s 2 s n 1 es paĺındromo. axyza XYZ Si s 1 s 2 s n 1 es paĺındromo s n s 1 s 2 s n = s n S es paĺındromo. S = axyzb: axyz baxyzb Si s 2 s 3 s n es paĺındromo s 1 s 2 s n s 1 = Ss 1 es paĺındromo. S = axyzb: XYZb axyzba

21 Algoritmo Planteamos 3 casos recursivos y 1 caso base. palindromo(s) = res: Si n 1, S es paĺındromo, entonces res = 0. Si no (caso recursivo): Si s 1 = s n, considerar res = palindromo(s 2 s n 1 ) Considerar res = palindromo(s 1 s n 1 ) + 1 Considerar res = palindromo(s 2 s n ) + 1 Devolver el mínimo de los res considerados.

22 Importante 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 recursiva.

23 S es global. i, j, los índices del intervalo son locales. Algorithm 2.1: Palindromo(int i, int j) if j i 1 then return (0) res if s i = s j 1 then res min(res, Palindromo(i + 1, j 1)) res min(res, Palindromo(i, j 1) + 1) res min(res, Palindromo(i + 1, j) + 1) return (res) Solución: Palindromo(0, length(s))

24 Algorithm 2.2: Palindromo(int i, int j) if memoria [i] [j] NO CALCULADO then return (memoria [i] [j]) if j i 1 then return (0) res if s i = s j 1 then res min(res, Palindromo(i + 1, j 1)) res min(res, Palindromo(i, j 1) + 1) res min(res, Palindromo(i + 1, j) + 1) memoria [i] [j] res return (res)

25 Pasemos a problemas de la vida real.

26 El fede...

27 ... se compró un corsa...

28 ... y quiere ver a la aplanadora...

29 ... del rock and roll...

30 ... en Tilcara.

31 Son 1700 Km. Entonces a él se le ocurrió ponerle GNC...

32 ... porque el GNC es rock and roll.

33 Pero el GNC tiene menos autonomía y hay que parar a cargar más.

34 Además no hay GNC en todos los pueblos.

35 Problema 1: Dada una ruta y la autonomía de una carga de gas, decidir en dónde, parar minimizando la cantidad de paradas.

36 Solución Definimos el subproblema: P 1 (u) Conjunto de lugares donde cargar gas para ir desde Buenos Aires hasta la ciudad u. P 2 (u) Conjunto de lugares donde cargar gas para ir desde la ciudad u hasta Tilcara. { P 1 (u) = min {x} P 1 (x) si puedo ir(x, u) P 1 (Buenos Aires) = (asumimos que sólo miramos los x que están más cerca de Buenos Aires (caso base)) Se puede definir análogamente para P 2 usando puedo venir en vez de puedo ir.

37 Variantes Problema 2: Mismo problema, pero ahora la autonomía de una carga de gas depende de la estación donde se carga (presión de carga, calidad del gas, condiciones atmosféricas). Cambia la definición de puedo ir y puedo venir.

38 Hoy vimos 1 Técnicas Definiciones Divide and Conquer 2

39 de hoy ACM-ICPC UVA Candy - data/problem.php?p=4212

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

Problemas de Recursividad

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

Sorting++ Herman Schinca. Clase 21. 10 de Junio de 2011

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

Programación Dinámica 1

Programación Dinámica 1 Programación Dinámica 1 El método de programación dinámica sirve para resolver problemas combinando las soluciones de subproblemas. Normalmente es usada para resolver problemas de optimización. Al construir

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

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

Tema 3. Análisis de costes

Tema 3. Análisis de costes Tema 3. Análisis de costes http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz}@icc.uji.es Estructuras de datos y de la información

Más detalles

Jueves, 30 de abril. Ejemplo de recursión. Ejemplo de PD. Ejemplo de programación dinámica. Programación dinámica

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

CAPÍTULO 4 TÉCNICA PERT

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

Algoritmos y programas. Algoritmos y Estructuras de Datos I

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

Algoritmos Recursivos de Búsqueda y Ordenación y sus tiempos

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

Concurso Escolar de Programación 2014

Concurso Escolar de Programación 2014 Concurso Escolar de Programación 2014 Capítulo Estudiantil ACM UCSP 6 de Diciembre del 2014 A. Árbol de Navidad La navidad está cerca y todo el mundo ha comenzado a hacer los preparativos. Este año, Natasha

Más detalles

Tablas de dispersión (hash tables)

Tablas de dispersión (hash tables) Tablas de dispersión (hash tables) La dispersión es una técnica empleada para realizar inserciones, eliminaciones y búsquedas en un tiempo promedio constante. La estructura de datos ideal para la tabla

Más detalles

Introducción a las Subastas de Múltiples Unidades

Introducción a las Subastas de Múltiples Unidades Introducción Introducción a las Subastas de Múltiples Unidades Alvaro J. Riascos Villegas Abril 16 de 2013 Contenido Introducción 1 Introducción 2 3 4 5 6 7 Introducción Introducción Los principales formatos

Más detalles

El Algoritmo E-M. José Antonio Camarena Ibarrola

El Algoritmo E-M. José Antonio Camarena Ibarrola El Algoritmo E-M José Antonio Camarena Ibarrola Introducción Método para encontrar una estimación de máima verosimilitud para un parámetro ѳ de una distribución Ejemplo simple 24 Si tiene las temperaturas

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

Simulación I. Investigación Operativa, Grado en Estadística y Empresa, 2011/12

Simulación I. Investigación Operativa, Grado en Estadística y Empresa, 2011/12 Simulación I Prof. José Niño Mora Investigación Operativa, Grado en Estadística y Empresa, 2011/12 Esquema Modelos de simulación y el método de Montecarlo Ejemplo: estimación de un área Ejemplo: estimación

Más detalles

Análisis de algoritmos

Aná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 [email protected] @edfrancom

Más detalles

Métodos que devuelven valor Dado el siguiente triángulo rectángulo:

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

1.1 CASO DE ESTUDIO: JUEGO DE CRAPS

1.1 CASO DE ESTUDIO: JUEGO DE CRAPS . CASO DE ESTUDIO: JUEGO DE CRAPS El juego de Craps se practica dejando que un jugador lance dos dados hasta que gana o pierde, el jugador gana en el primer lanzamiento si tiene como total 7 u, pierde

Más detalles

Prá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 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 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

Tipos de datos en S. Lógica y Computabilidad. Codificación de variables y etiquetas de S. Codificación de programas en S

Tipos de datos en S. Lógica y Computabilidad. Codificación de variables y etiquetas de S. Codificación de programas en S Tipos de datos en S Lógica y Computabilidad Verano 2011 Departamento de Computación - FCEyN - UBA Computabilidad - clase 5 Codificación de programas, Halting problem, diagonalización, tesis de Church,

Más detalles

Objetivos formativos de Álgebra

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

<tipo> Tipo de dato de los elementos del vector

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

Algoritmos glotones. mat-151

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

Relació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 º 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 detalles

Tema 6: Trigonometría.

Tema 6: Trigonometría. Tema 6: Trigonometría. Comenzamos un tema, para mi parecer, muy bonito, en el que estudiaremos algunos aspectos importantes de la geometría, como son los ángulos, las principales razones e identidades

Más detalles

Carlos A. Rivera-Morales. Precálculo 2

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

TUTORIAL PSEINT. Ing. Ronald Rentería Ayquipa. Fundamentos de Programación

TUTORIAL PSEINT. Ing. Ronald Rentería Ayquipa. Fundamentos de Programación TUTORIAL PSEINT Ing. Ronald Rentería Ayquipa Fundamentos de Programación PSEINT Página Oficial: http://pseint.sourceforge.net/ Es un software que interpreta pseudocódigo. Permite la generación de diagramas

Más detalles

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

Algoritmos. Diseño de algoritmos por inducción. Alberto Valderruten. [email protected]. Dept. de Computación, Universidade da Coruña

Algoritmos. 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 [email protected] Contenido Divide y Vencerás 1 Divide y Vencerás 2 Índice Divide y Vencerás 1

Más detalles

Relaciones. Estructuras Discretas. Relaciones. Relaciones en un Conjunto. Propiedades de Relaciones en A Reflexividad

Relaciones. 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,[email protected] Universidad Técnica Federico Santa María Estructuras Discretas INF 152 Sean

Más detalles

Clase 8 Matrices Álgebra Lineal

Clase 8 Matrices Álgebra Lineal Clase 8 Matrices Álgebra Lineal Código Escuela de Matemáticas - Facultad de Ciencias Universidad Nacional de Colombia Matrices Definición Una matriz es un arreglo rectangular de números denominados entradas

Más detalles

Generación de variables aleatorias continuas Método de la transformada inversa

Generación de variables aleatorias continuas Método de la transformada inversa Generación de variables aleatorias continuas Método de la transformada inversa Georgina Flesia FaMAF 16 de abril, 2013 Generación de v.a. discretas Existen diversos métodos para generar v.a. discretas:

Más detalles

Este método se basa en buscar el elemento menor el vector y colocarlo en la primera

Este método se basa en buscar el elemento menor el vector y colocarlo en la primera Lectura ORDENACIÓN DE ARREGLOS Con frecuencia se requiere clasificar u ordenar los elementos de un vector (arreglo unidimensional) en algún orden en particular. Por ejemplo, ordenar un conjunto de números

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

7.1 Consideraciones. Considere la búsqueda de un libro en una biblioteca. Considere la búsqueda de un nombre en el directorio telefónico.

7.1 Consideraciones. Considere la búsqueda de un libro en una biblioteca. Considere la búsqueda de un nombre en el directorio telefónico. 86 Capítulo 7. ORDENAMIENTO. 7.1 Consideraciones. Considere la búsqueda de un libro en una biblioteca. Considere la búsqueda de un nombre en el directorio telefónico. Si los elementos a ordenar son compuestos

Más detalles

Introducción al tipo Vector Cómo guardar una colección de datos conceptualmente relacionados? - almacenar los 100 primeros números primos, - al

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

Problema - Sumando Digitos

Problema - Sumando Digitos Primera Olimpiada de Informática Problema - Sumando Digitos Comenzando con un entero entre 00 y 99 inclusive, escritos como dos dígitos (use un cero a la izquierda en caso de que el numero sea menor que

Más detalles

Teorema Central del Límite (1)

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

Tema: Funciones en Excel (III) Funciones de fecha y hora Las fechas son a menudo una parte crítica de análisis de datos

Tema: Funciones en Excel (III) Funciones de fecha y hora Las fechas son a menudo una parte crítica de análisis de datos Tema: Funciones en Excel (III) Funciones de fecha y hora Las fechas son a menudo una parte crítica de análisis de datos Índice: 1 Para qué las funciones fecha y hora? 2 Generalidades El especial tratamiento

Más detalles

Curso de Programación 1

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

Hoja de ejercicios del Tema 3

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

TEMA 8. GEOMETRÍA ANALÍTICA.

TEMA 8. GEOMETRÍA ANALÍTICA. TEMA 8. GEOMETRÍA ANALÍTICA. 8..- El plano. Definimos el plano euclideo como el conjunto de puntos ( x, y) R. Así, cada punto del plano posee dos coordenadas. Para representar puntos del plano utilizaremos

Más detalles

Teorema de Bayes. mientras que B tiene una tasa de defectos del 4%.

Teorema de Bayes. mientras que B tiene una tasa de defectos del 4%. Teorema de Bayes Ejemplo: En una empresa manufacturera, una máquina A produce el 60% de la producción total, mientras que una máquina B el restante 40%. 71 El 2% de las unidades producidas por A son defectuosas,

Más detalles

Algoritmos para determinar Caminos Mínimos en Grafos

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

Ruta más Corta con una sóla Fuente de Inicio (Single-Source Shortest Paths) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE

Ruta más Corta con una sóla Fuente de Inicio (Single-Source Shortest Paths) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Ruta más Corta con una sóla Fuente de Inicio (Single-Source Shortest Paths) 1 DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Problema de Encontrar la Ruta más Corta 2 Se requiere llegar de

Más detalles

Sistemas de Ecuaciones Lineales y Matrices

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

DEPARTAMENTO DE MATEMATICAS Y FISICA Matemáticas Discreta

DEPARTAMENTO DE MATEMATICAS Y FISICA Matemáticas Discreta DEPARTAMENTO DE MATEMATICAS Y FISICA Matemáticas Discreta SUCESIONES Y RELACIONES DE RECURRENCIA Esta última sección la dedicamos a presentar el concepto de recurrencia, que esta muy ligado al axioma de

Más detalles

Retículos y Álgebras de Boole

Retículos y Álgebras de Boole Retículos y Álgebras de Boole Laboratorio de Matemática Discreta Jesús Martínez Mateo [email protected] Práctica 1. Ordenación topológica A. Herramientas necesarias Para la práctica que vamos a realizar

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

Métodos iterativos para sistemas de ecuaciones lineales

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

Diseño de compiladores. Organización de memoria. Organización de memoria. Organización de memoria. Zona de código 04/05/2014 ORGANIZACIÓN DE MEMORIA

Diseño de compiladores. Organización de memoria. Organización de memoria. Organización de memoria. Zona de código 04/05/2014 ORGANIZACIÓN DE MEMORIA Diseño de compiladores Gestión de la memoria / Generación de código ORGANIZACIÓN DE MEMORIA Organización de memoria Depende del tipo de lenguaje (declarativos, imperativos), del compilador y del sistema

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

MATRICES. Se simboliza tal matriz por y se le llamará una matriz x o matriz de orden x (que se lee por ).

MATRICES. Se simboliza tal matriz por y se le llamará una matriz x o matriz de orden x (que se lee por ). 1 MATRICES 1 Una matriz es una disposición rectangular de números (Reales); la forma general de una matriz con filas y columnas es Se simboliza tal matriz por y se le llamará una matriz x o matriz de orden

Más detalles

Programación dinámica p. 1

Programación dinámica p. 1 Técnicas de diseño de algoritmos Programación dinámica Dra. Elisa Schaeffer [email protected] PISIS / FIME / UANL Programación dinámica p. 1 Programación dinámica En programación dinámica, uno

Más detalles

Pruebas de Acceso a las Universidades de Castilla y León

Pruebas de Acceso a las Universidades de Castilla y León Pruebas de Acceso a las Universidades de astilla y León MATEMÁTIAS APLIADAS A LAS IENIAS SOIALES EJERIIO Nº páginas Tablas OPTATIVIDAD: EL ALUMNO DEBERÁ ESOGER UNA DE LAS DOS OPIONES Y DESARROLLAR LAS

Más detalles

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

UNIVERSIDAD MAYOR DE SAN SIMÓN FACULTAD DE CIENCIAS Y TECNOLOGÍA INGENIERÍA DE SISTEMAS BÚSQUEDA PRIMERO EL MEJOR

UNIVERSIDAD MAYOR DE SAN SIMÓN FACULTAD DE CIENCIAS Y TECNOLOGÍA INGENIERÍA DE SISTEMAS BÚSQUEDA PRIMERO EL MEJOR UNIVERSIDAD MAYOR DE SAN SIMÓN FACULTAD DE CIENCIAS Y TECNOLOGÍA INGENIERÍA DE SISTEMAS BÚSQUEDA PRIMERO EL MEJOR INTEGRANTES: Caricari Cala Aquilardo Villarroel Fernandez Fructuoso DOCENTE: Lic. Garcia

Más detalles

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

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación 1 Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera Fundamentos de programación Agenda Caracteres y Cadenas Conversión de Datos Introducción a las funciones y procedimientos

Más detalles

ORDENAMIENTO Y BÚSQUEDA EN ARREGLOS

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

CINEMÁTICA: CONCEPTOS BÁSICOS

CINEMÁTICA: CONCEPTOS BÁSICOS CINEMÁTICA: CONCEPTOS BÁSICOS 1. MOVIMIENTO Y SISTEMA DE REFERENCIA. Sistema de referencia. Para decidir si algo o no está en movimiento necesitamos definir con respecto a qué, es decir, se necesita especificar

Más detalles

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo TEMA 2: CONCEPTOS BÁSICOS DE ALGORÍTMICA 1. Definición de Algoritmo 1.1. Propiedades de los Algoritmos 2. Qué es un Programa? 2.1. Cómo se construye un Programa 3. Definición y uso de herramientas para

Más detalles

Grafos. Amalia Duch Brown Octubre de 2007

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

F (x, y) = no es la función de distribución acumulada de ningún vector aleatorio. b) Mostrar que. { (1 e x )(1 e y ) si x 0, y 0

F (x, y) = no es la función de distribución acumulada de ningún vector aleatorio. b) Mostrar que. { (1 e x )(1 e y ) si x 0, y 0 Probabilidades y Estadística (M) Práctica 5 1 o cuatrimestre 2014 Vectores aleatorios 1. a) Demostrar que la función F (x, y) = 1 e x y si x 0, y 0 0 en caso contrario no es la función de distribución

Más detalles

DISEÑO DE UN ANIMADOR DE ALGORITMOS DE BÚSQUEDA Y ORDENACIÓN ( ID2012/055 )

DISEÑO DE UN ANIMADOR DE ALGORITMOS DE BÚSQUEDA Y ORDENACIÓN ( ID2012/055 ) MEMORIA DEL PROYECTO TITULADO: DISEÑO DE UN ANIMADOR DE ALGORITMOS DE BÚSQUEDA Y ORDENACIÓN ( ID2012/055 ) PRESENTADO POR: María Luisa Pérez Delgado María Luisa Pérez Delgado Dentro del marco del proyecto

Más detalles

ALGORITMO MINIMAX. o Nodo: Representa una situación del juego. o Sucesores de un nodo: Situaciones del juego a las que se

ALGORITMO MINIMAX. o Nodo: Representa una situación del juego. o Sucesores de un nodo: Situaciones del juego a las que se ALGORITMO MINIMAX Algoritmo de decisión para minimizar la pérdida máxima aplicada en juegos de adversarios Información completa (cada jugador conoce el estado del otro) Elección del mejor movimiento para

Más detalles

Definición 1 Un semigrupo es un conjunto E provisto de una operación binaria asociativa sobre E, se denota por (E, ).

Definición 1 Un semigrupo es un conjunto E provisto de una operación binaria asociativa sobre E, se denota por (E, ). ALGEBRA La primera parte del presente libro está dedicada a las estructuras algebraicas. En esta parte vamos a iniciar agregándole a los conjuntos operaciones. Cuando las operaciones tienen determinadas

Más detalles

TEMA 7. ALGORITMOS DE BÚSQUEDA, ORDENACIÓN

TEMA 7. ALGORITMOS DE BÚSQUEDA, ORDENACIÓN M.P. Sesmero, P. de Toledo, F.J. Ordoñez, J. Gómez-Romero, J.A. Iglesias, J.L. Mira Programación TEMA 7. ALGORITMOS DE BÚSQUEDA, ORDENACIÓN Y MEZCLA Grado en Ingeniería en Tecnologías Industriales Programación

Más detalles

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO Control de Flujo Estructuras de Control Experiencia Educativa de Algorítmica 1 Introducción El estilo de como escribimos y analizamos un algoritmo se convierte en una de las principales características

Más detalles

Formulación del problema de la ruta más corta en programación lineal

Formulación del problema de la ruta más corta en programación lineal Formulación del problema de la ruta más corta en programación lineal En esta sección se describen dos formulaciones de programación lineal para el problema de la ruta más corta. Las formulaciones son generales,

Más detalles

Cálculos rápidos Plan de clase (1/4) Escuela: Fecha: Profr. (a):

Cálculos rápidos Plan de clase (1/4) Escuela: Fecha: Profr. (a): Cálculos rápidos Plan de clase (1/4) Escuela: Fecha: Profr. (a): Curso: Matemáticas 2 Secundaria Eje temático: MI Contenido: 8.1.6 Resolución de problemas diversos relacionados con el porcentaje, como

Más detalles

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

Lectura complementaria: El método de ordenamiento de datos conocido como la burbuja.

Lectura complementaria: El método de ordenamiento de datos conocido como la burbuja. OBJETIVO: El estudiante elaborará diagramas de clases en UML que apliquen delegados MATERIAL Y EQUIPO NECESARIO: Se recomienda la utilización de software para elaborar diagramas de clases de UML como NClass,

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

ESTRUCTURA DEL EXAMEN DE MATEMÁTICAS APLICADAS A LAS CIENCIAS SOCIALES II PARA ALUMNOS DE BACHILLERATO

ESTRUCTURA DEL EXAMEN DE MATEMÁTICAS APLICADAS A LAS CIENCIAS SOCIALES II PARA ALUMNOS DE BACHILLERATO ESTRUCTURA DEL EXAMEN DE MATEMÁTICAS APLICADAS A LAS CIENCIAS SOCIALES II PARA ALUMNOS DE BACHILLERATO El examen presentará dos opciones diferentes entre las que el alumno deberá elegir una y responder

Más detalles

Sistemas de ecuaciones lineales

Sistemas de ecuaciones lineales Ecuación lineal con n incógnitas Sistemas de ecuaciones lineales Es cualquier expresión del tipo: a 1 x 1 + a 2 x 2 + a 3 x 3 +... + a n x n = b, donde a i, b. Los valores a i se denominan coeficientes,

Más detalles

MEDIDAS DE TENDENCIA CENTRAL.

MEDIDAS DE TENDENCIA CENTRAL. MEDIDAS DE TENDENCIA CENTRAL. 07 Resuelve problemas que implica interpretar información por medio del cálculo de medidas de tendencia central. En Estudio se repasan los conceptos de medidas de tendencia

Más detalles

Escalas con enteros Plan de clase (1/2) Escuela: Fecha: Profr. (a):

Escalas con enteros Plan de clase (1/2) Escuela: Fecha: Profr. (a): Escalas con enteros Plan de clase (1/2) Escuela: Fecha: Profr. (a): Curso: Matemáticas 7 secundaria Eje temático: MI Contenido: 7.2.7 Identificación y resolución de situaciones de proporcionalidad directa

Más detalles

Arrays unidimensionales. Dim.Option Base. Erase. Ejemplos en Visual Basic (CU00311A)

Arrays unidimensionales. Dim.Option Base. Erase. Ejemplos en Visual Basic (CU00311A) aprenderaprogramar.com Arrays unidimensionales. Dim.Option Base. Erase. Ejemplos en Visual Basic (CU00311A) Sección: Cursos Categoría: Curso Visual Basic Nivel I Fecha revisión: 2029 Autor: Mario R. Rancel

Más detalles

Prá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 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 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

2 = 1 0,5 + = 0,5 c) 3 + = = 2

2 = 1 0,5 + = 0,5 c) 3 + = = 2 Trabajo Práctico N : SISTEMAS DE ECUACIONES LINEALES Ejercicio : Resuelva los siguientes sistemas de ecuaciones lineales empleando cuando sea posible: i) Método matricial. ii) Regla de Cramer. Interprete

Más detalles

Algorítmica y Lenguajes de Programación. Ordenación (ii) En la lección anterior se vieron dos métodos de ordenación:

Algorítmica y Lenguajes de Programación. Ordenación (ii) En la lección anterior se vieron dos métodos de ordenación: Algorítmica y Lenguajes de Programación Ordenación (ii) Ordenación. Introducción En la lección anterior se vieron dos métodos de ordenación: Método de la burbuja. Método de la burbuja con señal. El primero

Más detalles

Clase 10: Extremos condicionados y multiplicadores de Lagrange

Clase 10: Extremos condicionados y multiplicadores de Lagrange Clase 10: Extremos condicionados y multiplicadores de Lagrange C.J. Vanegas 7 de abril de 008 1. Extremos condicionados y multiplicadores de Lagrange Estamos interesados en maximizar o minimizar una función

Más detalles

Funciones Tipos de funciones y Recursividad

Funciones Tipos de funciones y Recursividad Funciones Tipos de funciones y Recursividad SESION 4 Definición Una función es una subrutina o subprograma que forman un programa que realiza tareas bien definidas. Todo programa en C consta de una o más

Más detalles

Medidas de Tendencia Central

Medidas de Tendencia Central Medidas de Tendencia Central En cualquier análisis o interpretación, se pueden usar muchas medidas descriptivas que representan las propiedades de tendencia central, variación y forma para resumir las

Más detalles

MÉTODOS NUMÉRICOS PARA INGENIERÍA ERROR GUIÓN PARA EL TEMA CONCEPTOS BÁSICOS

MÉTODOS NUMÉRICOS PARA INGENIERÍA ERROR GUIÓN PARA EL TEMA CONCEPTOS BÁSICOS ERROR GUIÓN PARA EL TEMA CONCEPTOS BÁSICOS REPASO de conceptos de dígito significativo y de orden, para números en notación decimal. Para señalar la diferencia entre el concepto de dígito significativo

Más detalles

Programación. Tema 8: Tablas Hash. Apuntes elaborados por: Eduardo Quevedo, Aaron Asencio y Raquel López Revisado por: Javier Miranda el????

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

PROBLEMA 1. Considere el siguiente problema de programación lineal:

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

3 Polinomios y funciones racionales

3 Polinomios y funciones racionales Programa Inmersión, Verano 2016 Notas escritas por Dr. M Notas del cursos. Basadas en los prontuarios de MATE 3001 y MATE 3023 Clase #19: viernes, 24 de junio de 2016. 3 Polinomios y funciones racionales

Más detalles

Introducción a la Teoría de Grafos

Introducción a la Teoría de Grafos Introducción a la Teoría de Grafos Flavia Bonomo [email protected] do. Cuatrimestre 009 Programa Introducción a la teoría de grafos Problemas de camino mínimo Problemas de flujo máximo Programación lineal

Más detalles