Algoritmos y Estructuras de Datos II, Segundo del Grado de Ingeniería Informática, Test de Programación Dinámica, 4 de mayo 2017
|
|
- Inés Rojo Crespo
- hace 5 años
- Vistas:
Transcripción
1 Algoritmos y Estructuras de Datos II, Segundo del Grado de Ingeniería Informática, Test de Programación Dinámica, 4 de mayo 2017 Para cada uno de los dos problemas siguientes, hay que explicar cómo se pueden resolver por Programación Dinámica, indicando: Los subproblemas que se consideran para llegar a la solución final. La ecuación de recurrencia que relaciona la solución para un tamaño en función de tamaños menores. Cuáles son y los valores de los casos base. Las estructuras de datos (tablas, vectores...) a utilizar para guardar las subsoluciones y dónde se encuentra la solución final. Una estimación (cuanto más precisa mejor) del tiempo de ejecución del método de resolución del problema por Programación Dinámica. Explicar cómo funciona con el ejemplo proporcionado. Si la solución sigue un esquema similar a algún otro de los ejemplos vistos en clase de teoría o prácticas, o a los que aparecen en el texto guía de la asignatura u otra bibliografía, indicar claramente el problema o dónde se encuentra en la bibliografía, y las diferencias de la solución aportada con respecto a la del problema al que se asemeja. 1) Dado un conjunto de n números enteros y una cantidad entera C, queremos contar cuántos subconjuntos del conjunto de enteros se pueden seleccionar cuya suma sea C. Por ejemplo, si C = 7 y los números son {2, 3, 5, 2} (puede haber números repetidos), la solución es 3 (7 = , 7 = 2 + 5, 7 = 5 + 2). Solución: El problema es como el de las monedas teniendo una moneda de cada tipoo, que se puede dar o no, lo que corresponde en este caso a que el número se incluye en la suma o no. La diferencia es que en el caso de las monedas minimizamos y en este problema sumamos pues estamos contando el número de posibilidades. Llamamos N(n, C) a la solución con n números y cantidad C. Para llegar a resolver ese problema con programación dinámica hay que obtener los valores de N(i, j) con 1 i n y 1 j C. La ecuación será: N(i, j) = N(i 1, j) + N(i, j v i ) donde el término N(i 1, j) corresponde al número de formas en que se puede obtener el valor j con los i 1 primeros números (no se incluye el i-ésimo número), y N(i 1, j v i ) al caso de incluir el número, pues en ese caso con los i 1 anteriores la cantidad a sumar es la que teníamos menos el valor del número (v i ).
2 La estructura a utlizar es un array N de dimensión n C, y la solución que nos piden será el valor en la fila n y columna C. El coste viene de recorrer la tabla, y como el cálculo de cada uno de sus elementos se hace con una suma será θ(n C). Los casos bases se establecen para que la ecuación de recurrencia sea válida para los tamaños más pequeños: N(0, j) = 0 para j 0, pues no se puede sumar la cantidad j sin ningún número; N(i, 0) = 1 para 0 i n, pues hay una única forma de sumar el valor cero, que es no tomar ningún número; y N(i, j) = 0 para j < 0, pues no se puede obtener con números positivos un valor negativo. Si se decide incluir los casos base en la tabla, esta aumenta en una fila y columna inicializadas con los casos base. Con los datos del ejemplo la tabla quedaría: N Hemos considerado que los valores de C y de los números son positivos. Para el caso de números o cantidad negativos, se podría resolver de forma similar pero cambiando las dimensiones de la tabla, y los casos base de la forma correspondiente. Por ejemplo, si C = 1 y los números son { 2, 1, 1, 2}, la tabla podría ir de la columna -5 (la suma de todos los valores negativos) a la 1 (suma de los positivos), y la solución estará en N(4, 1). 2) Disponemos de objetos de n tipos distintos y de una mochila de capacidad M. Para cada tipo de objetos tenemos una serie de objetos de ese tipo, con un peso y un beneficio. Queremos comprar un objeto de cada tipo, con la restricción de que los objetos que compramos quepan en la mochila y maximizando el beneficio. Por ejemplo, podemos considerar M = 7 y tres tipos de objetos (n = 3), con dos objetos del primer tipo, con pesos y beneficios (2,3) y (3,4) (el primer objeto tiene peso 2 y beneficio 3, y el segundo peso 3 y beneficio 4); dos objetos del segundo tipo, con pesos y beneficios (3,2), (4,3); y tres objetos del tercer tipo, con pesos y beneficios (1,2), (2,2), (2,3). Solución: Es una variante del problema de las monedas y de la mochila, donde tenemos monedas (u objetos) de distintos tipos y se quiere tomar un objeto de cada tipo sin exceder la capacidad de la mochila y maximizando el beneficio. Queremos obtener el valor B(n, M) basándonos en soluciones de problemas menores, para lo que habrá que calcular B(i, X) con 1 i n y 1 X M. Cuando vamos por los objetos de tipo i hay que decidir cuál de los n i objetos de ese tipo se toma (hay que elegir únicamente uno), con lo que la ecuación es: B(i, X) = max k=1,...,ni {B(i 1, X p ik ) + b ik } (1)
3 donde para cada objeto le sumamos su beneficio a la solución óptima con objetos de los tipos anteriores para la capacidad que queda tras restar el peso del objeto. Como casos base podemos considerar que si no tenemos ningún tipo de objeto el beneficio es cero: B(0, X) = 0 para 0 X C. Y las configuraciones no válidas tendrán valor para que cualquier configuración válida las mejore: B(i, 0) = para 1 i n, y B(i, X) = para X < 0. La tabla para almacenar las soluciones óptimas será B, de tamaño n M, con una fila y columna más si decidimos incluirlas para casos base. Como en B tenemos el beneficio máximo pero no los objetos con que se obtiene, se usa otra tabla, D, de las mismas dimensiones que B, donde se guardan las decisiones tomadas para obtener el óptimo. Cuando hay varias posibilidades, en D se guarda una de ellas, pues no nos piden todas las posibles configuraciones. Vemos los valores obtenidos en las tablas para el ejemplo: B : D Vemos, por ejemplo, cómo se obtiene la entrada B(3, 7) usando la ecuación B(3, 7) = max{b(2, 6) + 2, B(2, 5) + 2, B(2, 5) + 3} = max{8, 7, 8} = 8 y podemos seleccionar dos posibles objetos, el primero y el tercero. El beneficio óptimo es 8, y los objetos seleccionados se obtienen usando la tabla D. Se ha seleccionado el primero objeto del tercer tipo D(3, 8) = 1, lo que quiere decir que con los dos primeros tipos de objetos se tenía una capacidad de 7 p 3,1 = 7 2 = 5. Como D(2, 5) = 1, del segundo tipo se ha seleccionado también el primer objeto, y, finalmente, del primer tipo se ha seleccionado el objeto D(1, 5 2) = 2. Cada elemento de la tabla B se obtiene como un máximo de n i objetos. Si n i=1 ni llamamos m a la media de los objetos de cada tipo (m = n ), el coste promedio es θ(n M m). La obtención de cuáles son los objetos tiene coste lineal.
4 Algoritmos y Estructuras de Datos II, Segundo del Grado de Ingeniería Informática, Test de Programación Dinámica, 3 de mayo 2017 Para cada uno de los dos problemas siguientes, hay que explicar cómo se pueden resolver por Programación Dinámica, indicando: Los subproblemas que se consideran para llegar a la solución final. La ecuación de recurrencia que relaciona la solución para un tamaño en función de tamaños menores. Cuáles son y los valores de los casos base. Las estructuras de datos (tablas, vectores...) a utilizar para guardar las subsoluciones y dónde se encuentra la solución final. Una estimación (cuanto más precisa mejor) del tiempo de ejecución del método de resolución del problema por Programación Dinámica. Explicar cómo funciona con el ejemplo proporcionado. Si la solución sigue un esquema similar a algún otro de los ejemplos vistos en clase de teoría o prácticas, o a los que aparecen en el texto guía de la asignatura u otra bibliografía, indicar claramente el problema o dónde se encuentra en la bibliografía, y las diferencias de la solución aportada con respecto a la del problema al que se asemeja. 1) Consideramos el problema de las monedas, con n monedas con ciertos valores y una cantidad determinada de cada moneda, y queremos devolver una cierta cantidad C minimizando el número de monedas que se devuelven pero devolviendo al menos una moneda de cada tipo. Considerar como ejemplo C = 12, valores v = (2, 4, 3, 1) y cantidades c = (2, 3, 1, 3). Solución: La diferencia del problema planteado con el de las monedas visto en prácticas con un límite en la cantidad de monedas de cada tipo reside en que hay que dar al menos una moneda de cada tipo. Así, podemos transformar el problema dando una moneda de cada tipo, con lo que la cantidad a devolver queda C = C n i=1 v i, y c i = c i 1 i, 1 i n. En el ejemplo, el problema transformado es C = 2, y c = {1, 2, 0, 2}, con lo que, al no quedar monedas del tercer tipo se puede excluir esa moneda y queda n = 3 y v = {2, 4, 1}, c = {1, 2, 2}. A partir de ahí el problema es el de devolver una cantidad con un número mínimo de monedas y una cantidad máxima de monedas de cada tipo. Queremos obtener M(n, C), y para eso se consideran problemas de tamaños menores: M(i, X), con 1 i n y 1 X C. La ecuación de recurrencia puede ser:
5 M(i, X) = min k=0,1,...,min{ci, X v i } {M(i 1, X k v i) + k)} (2) donde k representa el número de monedas que se da de tipo i, que está limitado por el número de monedas disponibles de ese tipo (c i ) y el máximo que se puede dar sin pasarnos del valor que estamos devolviendo ( X/v i ). También es posible poner la solución en función de la solución con monedas del tipo anterior (si no se da la moneda de tipo i) o de monedas del mismo tipo pero con la cantidad que queda dando la moneda de tipo i una vez: M(i, X) = min{m(i 1, X), M(i, X v i )} (3) En este caso habrá que controlar que no pasemos del número de monedas que tenemos de ese tipo. Además de la tabla M donde guardamos las soluciones óptimas de los subproblemas, podemos llevar otra tabla N del número de monedas dadas para obtener el óptimo. En esta tabla se guarda, en el caso de usar la ecuación 2, el valor de k con el que se obtiene el mínimo. Si se usa la ecuación 3, el segundo término (M(i, X v i )) se considera sólo si el número de monedas dadas del tipo i no ha llegado al máximo (N(i, X v i ) c i ). Los casos base serán: M(i, 0) = 0, 0 i n: el número de monedas para devolver la cantidad cero es cero. M(0, X) =, 1 X C: no hay solución posible, por lo que se pone a un valor máximo para que al hacer el mínimo cualquier solución válida la mejore. M(i, X) =, i < 0: por la misma razón de antes, al corresponder a configuraciones no válidas. El tamaño de la tabla de soluciones (M) es n C, aunque se puede decidir incluir una fila adicional 0 (valores ) para los casos base sin monedas, y una columna 0 (valores 0) para los casos base correspondientes a no tener que devolver nada. Si utilizamos la tabla auxiliar N, esta será de las mismas dimensiones que M. El tiempo se obtiene sumando los costes de cálculo de las casillas de la tabla M. Si se utiliza la ecuación 3, el coste de cada casilla es constante, y el coste de construcción de las tablas es θ(n C). Si se utiliza la ecuación 2, el coste de cada casilla tiene como mucho tantos pasos como cantidad de la moneda, y si llamamos c a la media de la cantidad de monedas de los distintos tipos, el coste promedio tiene orden O(n c C). El número de monedas de la solución estará en M(n, C), y si queremos determinar el número de monedas de cada tipo usamos la tabla N con un bucle de n pasos, empezando en n hasta llegar a 1. El número de monedas de tipo n es N(n, C) y el valor de C se actualiza a C = C N(i, C) v n para el siguiente paso, y así sucesivamente:
6 for i = n to 1 step -1 s[i] = N(i, C) C = C N(i, C) v i endfor Así, el coste de obtener las monedas que forman la solución es lineal, con lo que no cambia el coste del algoritmo. Si no usamos la tabla auxiliar N, las cantidades se obtienen con un bucle del mismo tipo, pero volviendo a determinar el valor de k de la ecuación 2, o si la moneda se da o no en la ecuación 3. En el ejemplo la tablas quedan: M 1 2 N con lo que la solución es dar una moneda, no se dan la moneda tercera ni segunda, y se da la primera moneda una vez. La solución del problema original será dar cinco monedas (sumamos a la solución obtenida, 1, el número de monedas, ya que damos al menos una de cada tipo), y la cantidad de monedas de cada tipo es {2, 1, 1, 1}. También se puede resolver el problema directamente sin reducirlo quitando una moneda de cada tipo y modificando el valor de C. La ecuación 2 quedaría: M(i, X) = min k=1,...,min{ci, X v i } {M(i 1, X k v i) + k)} (4) donde solo hemos cambiado los posibles valores de k, que empieza siendo 1. Si se usa la ecuación 3 sólo serían válidas soluciones que tomen en cada moneda al menos una vez el segundo término. Los casos base serán los mismos y tendrán los mismos valores, y los tamaños de las tablas y los costes también, con los valores de C y n los originales. En el ejemplo la tablas quedan: M N ) Tenemos n tipos de trabajos, y queremos realizar una serie de m trabajos uno detrás de otro, pero tenemos unas restricciones en cuanto a las agrupaciones de los trabajos. Las restricciones están en una tabla de booleanos, donde T (i, j) = 1
7 indica que el trabajo j se puede realizar tras el i, y T (i, j) = 0 que no se puede realizar. Queremos obtener de cuántas formas posibles se pueden agrupar en la serie de m trabajos. Considerar el ejemplo con n = 3 (los llamamos a, b y c), m = 5 y tabla: a b c a b c Solución: Empezamos mostrando una posible solución con el ejemplo, para generalizar a continuación. Para resolver problemas de tamaño m (número de trabajos) hay que obtener antes las soluciones con tamaños menores que m y acabando en una de las tres letras (trabajos) que nos dan. Así, en una primera fila tendremos el número de agrupaciones de un trabajo acabando en a, b y c, que es una única posibilidad en cada caso, y que corresponde a los casos base. A partir de los valores en la primera fila podemos obtener los de la segunda fila, con C(2, x) = C(1, a) T (a, x) + C(1, b) T (b, x) + C(1, c) T (c, x), lo que quiere decir que el número de configuraciones con dos trabajos acabando en el caracter x es la suma de los números de configuraciones con un trabajo acabando en a si después de a puede aparecer la x (valor T (a, x) = 1 en la tabla, que si es cero no se suma al multiplicar C(1, a) por cero) con los correspondientes de b y c. En general será: C(i, x) = C(i 1, y) T (y, x) y=a,b,c En el ejemplo quedaría la tabla: a b c y el número total de configuraciones se obtiene como la suma de las entradas de la última fila, 29, que corresponde a las 13 que acaban en a, las 6 en b y las 10 en c. Si generalizamos y consideramos n trabajos distintos c i, 1 i n: Los subproblemas son C(i, j), con 1 i m y 1 j n. La ecuación de recurrencia es C(i, j) = n C(i 1, k) T (k, j) k=1
8 Los casos base son los de la primera fila, con valor 1: C(1, j) = 1, 1 j n. La tabla tiene dimensión m n, y la solución se obtiene sumando los valores de la última fila: n i=1 C(m, i). Ya que se calculan (m 1) n posiciones y cada una haciendo n sumas, el orden es θ ( m n 2).
a) Para calcular los órdenes sólo es necesario contar el número de veces que se pasa por el bucle más interno. El coste sería n
EXAMEN DE ALGORÍTMICA. Segundo Ingeniería Técnica en Informática de Gestión y de Sistemas. Diciembre 2003 1) (3 puntos) El siguiente programa obtiene la subcadena más larga de números iguales dentro de
Más detallesPrograma de teoría. Algoritmos y Estructuras de Datos II. 3. Algoritmos voraces. 1. Análisis de algoritmos 2. Divide y vencerás
Programa de teoría Algoritmos y Estructuras de Datos II 1. Análisis de algoritmos 2. Divide y vencerás 3. Algoritmos voraces 4. Programación dinámica 5. Backtracking 6. Ramificación y poda A.E.D. II 1
Más detallesPARTE II: ALGORÍTMICA
Programa de teoría Parte I. Estructuras de Datos.. Abstracciones y especificaciones.. Conjuntos y diccionarios.. Representación de conjuntos mediante árboles. 4. Grafos. Parte II. Algorítmica.. Análisis
Más detallesProgramación dinámica
Parte de Algoritmos de la asignatura de Programación Master de Bioinformática Programación dinámica Web asignatura: http://dis.um.es/~domingo/algbio.html E-mail profesor: domingo@um.es Transparencias preparadas
Más detalles4.2. El número de combinaciones de m objetos entre un conjunto de n, denotado por n, para n 1 y 0 m n, se puede definir recursivamente por: m
4.1. Aplicar el algoritmo de programación dinámica para el problema del cambio de monedas sobre el siguiente ejemplo: n = 3, P = 9, c = (1, 3, 4). Qué ocurre si multiplicamos P y c por un valor constante,
Más detalles259. El número de combinaciones de m objetos entre un conjunto de n, denotado por n, para n 1 y 0 m n, se puede definir recursivamente por: m
258. Aplicar el algoritmo de programación dinámica para el problema del cambio de monedas sobre el siguiente ejemplo: n = 3, P = 9, c = (1, 3, 4). Qué ocurre si multiplicamos P y c por un valor constante,
Más detallesProgramación Lineal. - Si no: Sea j tal que c
Programación Lineal El objetivo de este documento es hacer una breve introducción a la programación lineal que pueda contribuir al fácil manejo de la aplicación. La programación lineal es un procedimiento
Más detallesProgramación Dinámica
Programación Dinámica Es aplicada típicamente a problemas de optimización, donde puede haber muchas soluciones, cada una tiene un valor asociado y prentendemos obtener la solución con valor óptimo. Al
Más detallesEjemplo: 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 detallesAlgoritmos y Estructuras de Datos II, Grado Ingeniería Informática Examen 10 de septiembre de 2011
Algoritmos y Estructuras de Datos II, Grado Ingeniería Informática Examen 10 de septiembre de 2011 (OJO, se cuentan las soluciones con todo detalle para que se entienda bien, pero en el examen no hace
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 detallesDualidad 1. 1 Formas simétricas. 2 Relación primal-dual. 3 Dualidad: el caso general. 4 Teoremas de dualidad. 5 Condiciones de holgura complementaria.
Dualidad 1 1 Formas simétricas. 2 Relación primal-dual. 3 Dualidad: el caso general. 4 Teoremas de dualidad. Condiciones de holgura complementaria. 6 Solución dual óptima en la tabla. 7 Interpretación
Más detallesTema 7: Problemas clásicos de Programación Lineal
Tema 7: Problemas clásicos de Programación Lineal 1.- Características generales de un problema de transporte y asignación Surgen con frecuencia en diferentes contextos de la vida real. Requieren un número
Más detallesMétodo de árbol de cubos para resolver problemas de optimización discreta en la toma de decisiones. CONTENIDO
Método de árbol de cubos para resolver problemas de optimización discreta en la toma de decisiones. 1 CONTENIDO Introducción Marco teórico Métodos de optimización Método de árbol de cubos Problema de optimización
Más detallesI.E.S Santo Domingo. Departamento Informática. Tema 1 Los Sistemas de Numeración. José Luis Mollinedo Jiménez
I.E.S Santo Domingo Departamento Informática Tema 1 Los Sistemas de Numeración José Luis Mollinedo Jiménez El Ejido - 6 de mayo de 2012 Página:2 Índice 1. Denición 2 2. Ejemplos 2 3. Clasicación 2 3.1.
Más detallesParte de Algoritmos de la asignatura de Programación Master de Bioinformática. Divide y vencerás
Parte de Algoritmos de la asignatura de Programación Master de Bioinformática Divide y vencerás Web asignatura: http://dis.um.es/~domingo/algbio.html E-mail profesor: domingo@um.es Transparencias preparadas
Más detallesTema 2. Fundamentos Teóricos de la. programación dinámica Teorema de Optimalidad de Mitten
Tema 2 Fundamentos Teóricos de la Programación Dinámica 2.1. Teorema de Optimalidad de Mitten El objetivo básico en la programación dinámica consiste en descomponer un problema de optimización en k variables
Más detalles84 Tema 3. Dualidad. todas las restricciones son del tipo, todas las variables son no negativas.
Tema 3 Dualidad En el desarrollo de la programación lineal la teoria de la dualidad es importante, tanto desde el punto de vista teórico como desde el punto de vista práctico. Para cada modelo lineal se
Más detalles4 MÉTODOS DIRECTOS PARA RESOLVER SISTEMAS DE ECUACIONES LINEALES
57 4 MÉTODOS DIRECTOS PARA RESOLVER SISTEMAS DE ECUACIONES LINEALES En este capítulo se estudia el componente algorítmico y computacional de los métodos directos para resolver sistemas de ecuaciones lineales.
Más detallesSeminario de problemas ESO. Curso Hoja 10
Seminario de problemas ESO. urso 014-1. Hoja 10 64. Iván escribe los números del 1 al 0 en orden y, puesto que los números del 10 al 0 tienen cifras, se da cuenta de que en total ha escrito 31 cifras.
Más detallesProgramación lineal: Algoritmo del simplex
Programación lineal: Algoritmo del simplex Se considera la formulación estándar de un problema de programación lineal siguiendo la notación utilizada en las clases teóricas: Minimizar c t x sa: Ax = b
Más detallesEstrategias de pivoteo
Estrategias de pivoteo Objetivos. Resolver sistemas de ecuaciones lineales aplicando varias técnicas de pivoteo; programar estos algoritmos. Requisitos. Operaciones elementales, experiencia de resolver
Más detallesProgramación. Ejercicios Tema 6 Tipos de Datos Estructurados: Vectores y Matrices
Programación Ejercicios Tema 6 : Vectores y Matrices Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordóñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro
Más detallesDegeneración y ciclaje. Método de las dos fases CO-3411 (S08) 30/03/
CO-3411 (S08 30/03/2008 98 Degeneración y ciclaje En el caso de problemas generales, una solución será degenerada cuando alguna de las variables básicas se encuentra en una de sus cotas (comparar con el
Más detalles5.1. Algoritmo en modelos de maximización
5.1. Algoritmo en modelos de maximización El primer tipo de modelo que vamos a resolver por el método símplex es el que tiene como objetivo maximizar a una función lineal, la cual está sujeta a una serie
Más detallesMétodos de Optimización para la toma de decisiones
Facultad de Ingeniería Departamento de Ciencias de la Ingeniería Magíster en Logística y Gestión de Operaciones Métodos de Optimización para la toma de decisiones MLG-521 Programación Entera 1º Semestre
Más detallesProgramación Dinámica
Programación Dinámica Adaptado de Algorithm Design Goodrich and Tamassia Programación Dinámica 1 Calculando la serie de Fibonacci 1,1,2,3,5,8,13,21,. fib(n) = 1 si n = 0,1 fib(n 1) + fib(n 2) o.c. Programación
Más detalles2 LOS NÚMEROS Contar TABLA 1 50
2 LOS NÚMEROS Contar TABLA 1 50 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 NOTA: Esta tabla aumenta sus
Más detallesObjetivo: Empleo de reportes dinámicos para la interpretación de información.
6.5 Herramienta Solver Objetivo: Empleo de reportes dinámicos para la interpretación de información. Ejercicio Solver Problema de la mueblería Remi, base a este problema se van a ir siguiendo los pasos
Más detallesOPENOFFICE CALC. Manejo básico de hojas de cálculo
OPENOFFICE CALC Manejo básico de hojas de cálculo Qué es una hoja de cálculo? Podemos verla como una gran tabla para mostrar información y realizar operaciones con esa información Cada una de las casillas
Más detallesApuntes de Teórico PROGRAMACIÓN 3
Apuntes de Teórico PROGRAACIÓN Programación Dinámica Versión. Índice Índice... Introducción... Principio de optimalidad...5 Ejemplo: Camino de menor costo...6 Ejemplo: problema de la mochila...6 Aplicación
Más detallesMETODO SIMPLEX. Paso 1 Se convierte el modelo matemático de Programación Lineal (PL) a su forma estándar.
METODO SIMPLEX El algoritmo Simplex comprende los siguientes pasos: Paso 1 Se convierte el modelo matemático de Programación Lineal (PL) a su forma estándar. Al elaborar el modelo matemático que representa
Más detallesGuía de Ejercicios. Área Matemática SUMATORIAS. Antes de empezar a realizar estos ejercicios es importante que recordemos algunos conceptos:
Guía de Ejercicios Área Matemática SUMATORIAS Resultados de aprendizaje Usar propiedades de la sumatoria para resolver diferentes situaciones. Contenidos 1. Propiedades de las sumatorias. Debo saber Antes
Más detallesUnidad 2. Matrices Conceptos básicos 2.2. Operaciones con matrices 2.3. Matriz Inversa 2.4. El método de Gauss-Jordan 2.5.
Unidad. Matrices.. Conceptos básicos.. Operaciones con matrices.. Matriz Inversa.. El método de Gauss-Jordan.. Aplicaciones Objetivos particulares de la unidad Al culminar el aprendizaje de la unidad,
Más detallesParte de Algoritmos de la asignatura de Programación Master de Bioinformática. Búsqueda exhaustiva
Parte de Algoritmos de la asignatura de Programación Master de Bioinformática Búsqueda exhaustiva Web asignatura: http://dis.um.es/~domingo/algbio.html E-mail profesor: domingo@um.es Transparencias preparadas
Más detalles1 ÁLGEBRA DE MATRICES
1 ÁLGEBRA DE MATRICES 1.1 DEFINICIONES Las matrices son tablas numéricas rectangulares. Se dice que una matriz es de dimensión m n si tiene m filas y n columnas. Cada elemento de una matriz se designa
Más detallesANÁLISIS Y DISEÑO DE ALGORITMOS
ANÁLISIS Y DISEÑO DE ALGORITMOS CURSO 2005/2006 BOLETÍN DE PROBLEMAS: DIVIDE Y VENCERÁS Ejercicio 1 Dado un vector ordenado y rotado k veces: diseñar un algoritmo O(log n) que encuentre el elemento mayor
Más detallesINTRODUCCIÓN Qué es una sucesión? Una sucesión es un conjunto de cosas (normalmente números) una detrás de otra, en un cierto orden.
Estudiante: Área: Matemáticas Asignatura: Matemáticas Docente: Leonardo Prada Grado: noveno Tema: sucesiones, series y progresiones Fecha: 1 de octubre de 015 Indicador de desempeño: desarrolla sucesiones,
Más detallesPROBLEMA DE PROGRAMACIÓN LINEAL RESUELTO POR MÉTODO SIMPLEX
Prof.: MSc. Julio Rito Vargas Avilés Planteamiento del problema: PROBLEMA DE PROGRAMACIÓN LINEAL RESUELTO POR MÉTODO SIMPLEX Una compañía de manufactura se dedica a la fabricación de tres productos: A,
Más detallesFundamentos de Programación Entera. A. Revisión. Carlos Testuri Germán Ferrari
Fundamentos de Programación Entera A. Revisión Carlos Testuri Germán Ferrari Departamento de Investigación Operativa Instituto de Computación Facultad de Ingeniería Universidad de la República 2012-2018
Más detallesTablas dinámicas: Teoría y ejercicios resueltos
Tablas dinámicas: Teoría y ejercicios resueltos Hoy día es frecuente trabajar con hojas de cálculo que contienen cientos o incluso miles de datos referentes a nuestro negocio. Disponemos, de hecho, de
Más detallesProgramación Dinámica
Leopoldo Taravilse Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Training Camp 2012 Leopoldo Taravilse (UBA) TC 2012 1 / 34 Contenidos 1 Recursión Principio de Optimalidad Ejemplos
Más detallesTALLER. AREA: informática ASIGNATURA: informática GRADO:SÈPTIMO FECHA: NOMBRE DEL PROFESOR Deisy Moreno
AREA: informática ASIGNATURA: informática GRADO:SÈPTIMO FECHA: NOMBRE DEL PROFESOR Deisy Moreno Operaciones de cálculo en Excel OBJETIVO: Realizar operaciones básicas en Excel. TIEMPO PREVISTO: (semana
Más detallesFundamentos matemáticos. Tema 2 Matrices y ecuaciones lineales
Grado en Ingeniería agrícola y del medio rural Tema 2 José Barrios García Departamento de Análisis Matemático Universidad de La Laguna jbarrios@ull.es 2017 Licencia Creative Commons 4.0 Internacional J.
Más detallesTeoría de Números. 1. Introducción. Factorización Algebraica. Olimpiada de Matemáticas en Tamaulipas
Teoría de Números Factorización Algebraica Olimpiada de Matemáticas en Tamaulipas 1. Introducción El matemático, físico y astrónomo Carl Friedrich Gauss (1777-1855) fue uno de los más importantes personajes
Más detallesEn los ejercicios 11 a 20, resuelva gráficamente y verifique su respuesta en forma algebraica.
00 CAPÍTULO Sistemas de ecuaciones lineales Sección. Ejercicios de seguimiento En los ejercicios a 0, determine la naturaleza del conjunto solución (solución única, una infinidad de soluciones o ninguna
Más detallesTrabajo avanzado con consultas
1. ESTABLECER CRITERIOS H emos estado trabajando con consultas, incluso aplicando criterios más o menos complejos, pero sin pararnos mucho en cómo se construyen las expresiones que nos permiten recuperar
Más detallesTRANSPORTE Y TRANSBORDO
TRANSPORTE Y TRANSBORDO En ésta semana estudiaremos un modelo particular de problema de programación lineal, uno en el cual su resolución a través del método simplex es dispendioso, pero que debido a sus
Más detallesMatrices y Determinantes. Prof. Nilsa I. Toro Catedrática Recinto Universitario de Mayagüez Residencial - AFAMaC
Matrices y Determinantes Prof. Nilsa I. Toro Catedrática Recinto Universitario de Mayagüez Residencial - AFAMaC Origen y Usos Las matrices aparecen por primera vez hacia el año 1850, introducidas por J.J.
Más detallesMODELACION EN VARIABLES DE ESTADO
CAPÍTULO VIII INGENIERÍA DE SISTEMAS I MODELACION EN VARIABLES DE ESTADO 8.1. DEFINICIONES Estado: El estado de un sistema dinámico es el conjunto más pequeño de variables de modo que el conocimiento de
Más detallesIN3701 Modelamiento y Optimización Un par de PPLs más para la colección :) 26 de Noviembre, 2010
Profesores: Richard Weber, Rodrigo Wolf Auxiliares: Victor Bucarey, André Carboni, Nelson Devia, Diego Vergara IN3701 Modelamiento y Optimización Un par de PPLs más para la colección :) 26 de Noviembre,
Más detallesSUBTOTALES EXCEL Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE
SUBTOTALES EXCEL 2010 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE SUBTOTALES Insertar subtotales en una lista de datos de una hoja de cálculo Puede calcular automáticamente subtotales
Más detallesDivide y Vencerás Programación Dinámica
Metodología de la Programación Paralela Facultad Informática, Universidad de Murcia Esquemas algorítmicos paralelos: Divide y Vencerás Programación Dinámica Domingo Giménez (Universidad de Murcia) 1 /
Más detallesUNIDAD 8. LAS CONSULTAS DE RESUMEN
UNIDAD 8. LAS CONSULTAS DE RESUMEN 8.1 Definición En Access podemos definir un tipo de consultas cuyas filas resultantes son un resumen de las filas del origen de la consulta, por eso las denominamos consultas
Más detalles1. DML. Las consultas de resumen
1.1 Introducción 1. DML. Las consultas de resumen Una de las funcionalidades de la sentencia SELECT es el permitir obtener resúmenes de los datos contenidos en las columnas de las tablas. Para poder llevarlo
Más detallesFigura 1: Esquema de las tablas simplex de inicio y general.
RELACIONES PRIMAL-DUAL Los cambios que se hacen en el modelo original de programación lineal afectan a los elementos de la tabla óptima actual el que se tenga en el momento, que a su vez puede afectar
Más detallesPráctica 1. Introducción a la optimización mediante herramienta MS Excel Solver (I)
Ingeniería de Telecomunicación Planificación Avanzada de Redes de Comunicaciones Curso 2006-2007 Pablo Pavón Mariño Práctica 1. Introducción a la optimización mediante herramienta MS Excel Solver (I) Objetivos
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 detallesCurso Curso
Problema 52. Una tabla de 2010 2011 casillas se rellena con los números 1 y 1. Para cada fila, se calcula el producto de todos los números de la fila. Se hace lo mismo con las columnas. Prueba que el resultado
Más detalles1. Diseñe algoritmos que permitan resolver eficientemente el problema de la mochila 0/1 para los siguientes casos:
PROGRAMACIÓN DINÁMICA RELACIÓN DE EJERCICIOS Y PROBLEMAS 1. Diseñe algoritmos que permitan resolver eficientemente el problema de la mochila /1 para los siguientes casos: a. Mochila de capacidad W=15:
Más detallesTeniendo en cuenta los valores de las variables se tienen 3 tipos de modelos lineales enteros:
Tema 5 Programación entera En este tema introducimos problemas lineales en los que algunas o todas las variables están restringidas a tomar valores enteros. Para resolver este tipo de problemas se han
Más detallesEcuaciones Lineales con una Incógnita
48 CAPÍTULO 2. CÁLCULO ALGEBRAICO SECCIÓN 2.3 Ecuaciones Lineales Ecuaciones Lineales con una Incógnita Una ecuación es una expresión algebraica que involucra una igualdad entre dos expresiones algebraicas,
Más detallesSISTEMAS DE ECUACIONES LINEALES
SISTEMAS DE ECUACIONES LINEALES CONCEPTO Un sistema de m ecuaciones lineales con n incógnitas es un sistema de la forma: a 11 x 1 + a 12 x 2 +... + a 1n x n b 1 a 21 x 1 + a 22 x 2 +... + a 2n x n b 2.........................
Más detallesSe llama adjunto de un elemento de una matriz A, al número resultante de multiplicar por el determinante de la matriz complementaria
T.3: MATRICES Y DETERMINANTES 3.1 Determinantes de segundo orden Se llama determinante de a: 3.2 Determinantes de tercer orden Se llama determinante de a: Ejercicio 1: Halla los determinantes de las siguientes
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 detallesRESOLVER PROBLEMA DE PROGRAMACIÓN LINEAL POR METODO SIMPLEX
RESOLVER PROBLEMA DE PROGRAMACIÓN LINEAL POR METODO SIMPLEX Prof. MSc. Julio Rito Vargas ================================================================================ Resolver por el método Simplex,
Más detallesAlgorítmica y Lenguajes de Programación. Algoritmos voraces y divide y vencerás
Algorítmica y Lenguajes de Programación Algoritmos voraces y divide y vencerás Algoritmos voraces. Introducción (i) Las personas glotonas (voraces) intentan coger tanto como pueden en cada momento. Los
Más detallesCO5411. Dantzig-Wolfe / Descomposición de Benders. Prof. Bernardo Feijoo. 06 de febrero de 2008
Dantzig-Wolfe / Departmento de Cómputo Cientíco y Estadística Universidad Simón Bolívar 06 de febrero de 2008 Contenido 1 Dantzig-Wolfe 2 Contenido Dantzig-Wolfe 1 Dantzig-Wolfe 2 Ahora la nueva base produce
Más detallesProgramación entera 1
Programación entera 1 1. El modelo de programación entera. 2. Aplicaciones de la programación entera. 3. Solución gráfica de problemas enteros. 4. El algoritmo de ramificación y acotación. 5. El algoritmo
Más detallesDeterminantes. = a 11a 22 a 12 a 21 = ( 3) ( 5) ( 4) 7 = 15 ( 28) = = 43
Determinante de una matriz cuadrada Toda matriz cuadrada A lleva asociado un número, llamado determinante de A, y que denotaremos mediante el símbolo. Este número, entre otras cosas, permite saber cuándo
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 detallesProgramación Dinámica
Universidad de Chile Facultad de Ciencias Físicas y Matemáticas Departamento de Ingeniería Industrial IN34A: Clase Auxiliar Programación Dinámica Marcel Goic F. 1 1 Esta es una versión bastante preliminar
Más detallesAnálisis y Diseño de Algoritmos
Análisis y Diseño de Algoritmos Introducción: El Rol de los Algoritmos en Computación DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Temario 2 1. Introducción 2. Notación Asintótica 3. Recurrencias
Más detallesSOLUCIÓN DE UN SISTEMA LINEAL DE ECUACIONES
SOLUCIÓN DE UN SISEMA LINEAL DE ECUACIONES MÉODO DE LA MARIZ INVERSA EN EXCEL ANECEDENES Un sistema lineal de n ecuaciones con n incógnitas se puede escribir en la forma general: 11 1 12 2 1 1n n 1 21
Más detallesSolución del I Examen de Matemáticas Discreta
Solución del I Examen de Matemáticas Discreta 1. En un grupo hay 10 hombres y 15 mujeres: (a De cuantas maneras se puede elegir una comisión de 5 personas si hay al menos un hombre y dos mujeres? (b De
Más detallesEnero Febrero Marzo Abril. D: uds D: uds D: uds D: uds
PROBLEMA Una empresa dedicada a la fabricación de diferentes artículos, ante la inminente llegada de la estación invernal se plantea establecer su política de fabricación almacenae de estufas de gas para
Más detallesPARTE II: ALGORÍTMICA
PARTE II: ALGORÍTMICA 5.. Método general 5.2. Análisis de tiempos de ejecución 5.3. Ejemplos de aplicación 5.3.. Problema de la mochila 0/ 5.3.2. Problema de la asignación 5.3.3. Resolución de juegos A.E.D.
Más detallesPRÁCTICA. Estructura de Computadores Grado en Ingeniería Informática Estudios de Informática, Multimedia y Telecomunicación
PRÁCTICA Estructura de Computadores Grado en Ingeniería Informática 2014-02 Estudios de Informática, Multimedia y Telecomunicación Presentación La práctica que se describe a continuación es una práctica
Más detalles1. Método general. 2. Análisis de tiempos de ejecución. 3. Ejemplos de aplicación Problema de las 8 reinas Problema de la mochila 0/1.
Backtracking. Método general. 2. Análisis de tiempos de ejecución. 3. Ejemplos de aplicación. 3.. Problema de las 8 reinas. 3.2. Problema de la mochila 0/. Método general El backtracking (método de retroceso
Más detallesPOST-OPTIMIZACIÓN Y SENSIBILIDAD EN PROBLEMAS LINEALES.
POST-OPTIMIZACIÓN Y SENSIBILIDAD EN PROBLEMAS LINEALES. Una de las hipótesis básicas de los problemas lineales es la constancia de los coeficientes que aparecen en el problema. Esta hipótesis solamente
Más detallesProblemas sobre instrucciones estructuradas
Problemas sobre instrucciones estructuradas (Desde trivial hasta muy difícil) 22 de enero de 2009 Indice A. Días del mes 2 B. Triángulos: equiláteros, isósceles, escalenos 3 C. Dígito hexadecimal a decimal
Más detallesAlgoritmos y Estructuras de Datos Ingeniería en Informática
2.1.Sean A= {1, 2, 3, 7, 8} y B= {3, 4, 5, 7, 9}, mostrar la ejecución y los resultados de las siguientes operaciones, suponiendo una representación con arrays de booleanos y con listas de elementos (ordenadas
Más detallesEl método simplex 1. 1 Forma estándar y cambios en el modelo. 2 Definiciones. 3 Puntos extremos y soluciones factibles básicas. 4 El método simplex.
El método simplex Forma estándar y cambios en el modelo. Definiciones. Puntos extremos y soluciones factibles básicas. 4 El método simplex. Definiciones y notación. Teoremas. Solución factible básica inicial.
Más detallesAlgoritmo de ramificación y acotación
Algoritmo de ramificación y acotación Investigación Operativa Ingeniería Técnica en Informática de Gestión UC3M Curso 08/09 Descripción de los objetivos En esta práctica desarrollaremos el algoritmo de
Más detallesSEGUNDA PARTE: TIPOS COMPLEJOS
SEGUNDA PARTE: TIPOS COMPLEJOS Introducción En la primera parte del tema se vieron los tipos simples de datos que es capaz de almacenar el ordenador: booleanos, caracteres, enteros y reales. Sin embargo,
Más detallesRESOLUCIÓN DE SISTEMAS LINEALES
Contenido 1 Métodos de Solución Contenido Métodos de Solución 1 Métodos de Solución Desarrollamos el algoritmo de sustitución regresiva, con el que podremos resolver un sistema de ecuaciones lineales cuya
Más detallesmaximización (con restricciones de la forma menor igual que). asociado al modelo primal de minimización y viceversa.
UNIDAD 5 MÉTODO SÍMPLEX maximización (con restricciones de la forma menor igual que). asociado al modelo primal de minimización y viceversa. minimización (con restricciones de la forma mayor que). tenga
Más detallesProgramación dinámica: un último ejemplo
Programación dinámica: un último ejemplo Dado: matrices A m n, B n r, C r s de números enteros Para calcular A m n B n r el algoritmo usual realiza m n r multiplicaciones de números enteros Cuántas multiplicaciones
Más detallesBloque 1. Aritmética y Álgebra
Bloque 1. Aritmética y Álgebra 2. Los números enteros 1. Los números enteros Es el conjunto de los números negativos, el cero y los positivos, y se representan como: Z...,-5,-4,-3,-2,-1,0, 1, 2, 3, 4,
Más detallesApuntes de Teórico de Programación 3. Apuntes de Teórico PROGRAMACIÓN 3. Greedy. Versión 1.1
Apuntes de Teórico PROGRAMACIÓN 3 Greedy Versión 1.1 1 Índice Índice... Introducción... 3 Ejemplo 1 (problema de las monedas)... 3 Ejemplo (problema de la mochila)... 4 Aplicaciones del método Greedy a
Más detalles5. ESTRUCTURAS DE REPETICIÓN
5. ESTRUCTURAS DE REPETICIÓN Las estructuras de repetición, permiten la ejecución de una lista o secuencia de instrucciones () en varias ocasiones. El número de veces que el bloque
Más detallesDeterminantes. Definiciones básicas sobre determinantes. José de Jesús Angel Angel.
Determinantes Definiciones básicas sobre determinantes wwwmathcommx José de Jesús Angel Angel jjaa@mathcommx MathCon c 2007-2008 Contenido 1 Determinantes 2 11 Propiedades de determinantes 4 2 Inversa
Más detallesMultiplicación y División de Números Naturales
Multiplicación y División de Números Naturales I. Multiplicación La multiplicación o producto, es una forma rápida de calcular la suma, cuando los sumandos son iguales. 2+2+2+2 = 2 x 4 = 8. También se
Más detallesÁlgebra y Matemática Discreta
Álgebra y Matemática Discreta Sesión de Teoría 3 (c) 2013 Leandro Marín, Francisco J. Vera, Gema M. Díaz 23 Sep 2013-29 Sep 2013 Congruencias Definición Congruencia Módulo n Sea n 1 un número entero. Diremos
Más detallesLección 8: Exponen tes y notación exponencial
GUÍA DE MATEMÁTICAS II Lección 8: Exponen tes y notación exponencial En matemáticas es común que se trate de simplificar la notación, al mismo tiempo que se generalizan los conceptos. Por ejemplo, hemos
Más detallesTema 2: Optimización lineal. Ezequiel López Rubio Departamento de Lenguajes y Ciencias de la Computación Universidad de Málaga
Tema 2: Optimización lineal Ezequiel López Rubio Departamento de Lenguajes y Ciencias de la Computación Universidad de Málaga Sumario El modelo de programación lineal Formulación de modelos Método gráfico
Más detalles