Programación Dinámica
|
|
|
- Claudia de la Fuente Cruz
- hace 8 años
- Vistas:
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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é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
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
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
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
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,
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
<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.
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
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
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
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
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
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
Algoritmos. Diseño de algoritmos por inducción. Alberto Valderruten. [email protected]. 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
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
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
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:
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
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
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
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
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
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
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
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
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
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
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,
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)
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
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
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
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
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
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
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é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,
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
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
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
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
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
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
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
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
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
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.
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é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
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
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
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
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
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
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
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
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,
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
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
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,
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
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
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,
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
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
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
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
Í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
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
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
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
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
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É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
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
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
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
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
