Estrategia algorítmica

Slides:



Advertisements
Presentaciones similares
Diseño y análisis de algoritmos
Advertisements

Programación dinámica: Introducción
Parte II. Algorítmica. 4. Programación dinámica.
ELO3201 Análisis de Algoritmos (cont.) Agustín J. González ELO320 1º sem 2002.
Análisis de los algoritmos Unidad 7. Análisis La resolución práctica de un problema – algoritmo o método de resolución – y por otra un programa o codificación.
.  PROGRAMACIÓN LINEAL   La Programación Lineal (PL) es un procedimiento matemático para determinar la asignación óptima de recursos. La PL encuentra.
PPTCES020MT21-A16V1 Clase Resolución de problemas en los racionales MT-21.
PPTCEG027EM31-A16V1 Ecuaciones de primer grado EM-31.
Búsqueda binaria Integrantes: Humberto Raíz Walter Gómez Isabel Hernández.
TUTORIA 1 Lógica para la Computación TUTORIA 1 Facultad de Ciencias Naturales y Matemáticas.
© 2008 Cisco Systems, Inc. Todos los derechos reservados.Información confidencial de Cisco Presentation_ID 1 Capítulo 9: División de redes IP en subredes.
Búsqueda de punto de corte óptimo para la estratificación de riesgo según EuroSCORE en el Cardiocentro “Ernesto Che Guevara” Dra. Vielka González Ferrer.
Métodos de compresión sin pérdida de información
Vibraciones en sistemas físicos
Investigación de operaciones
ESTRUCTURAS CONDICIONALES
Investigación de operaciones
Optimización: Programación Lineal
Pipelining Peligros de control.
En INCERTIDUMBRE No se conocen las probabilidades de ocurrencia de los estados naturales, por lo tanto, hay que recurrir a criterios empíricos para tomar.
Tema 2. Resolución de Problemas
¿Qué es? ¿Para que se utiliza?
PRINCIPIOS GENERALES DE PRESCRIPCIÓN
RECURSIVIDAD.
Unidad 5. Capítulo VI. Sistemas lineales no homogéneos.
INTRODUCCIÓN AL ESTUDIO DE LA ESTADÍSTICA
Complejidad Programación II de febrero de 2009.
INVESTIGACIÓN DE OPERACIONES
Conceptos Básicos de Programación
Estructura de Datos Introducción a:.
ALGORITMOS Por Carolina R.
Introducción El análisis posóptimo implica llevar a cabo un análisis de sensibilidad para determinar que parámetros del modelo son los más críticos (parámetros.
CREAR DIAGRAMA DE FLUJO
Unidad 4 Anexo 3. Capítulo V. Reducción del orden.
PROGRAMACION DINAMICA
SCHEDULING Ing. Andrés Porto. Cuando se usan máquinas múltiples en paralelo, se supone que cualquier trabajo puede ser procesado en cualquiera de las.
LA REGLA DE LA ESQUINA NOROESTE
Diseñar y elaborar algoritmos
Algoritmo Capitulo Cinco.
Análisis de redes. 3.4 Problema de flujo máximo.
Estructuras de control Resolución de problemas y algoritmos
Programación: paradigma estructurado Mgs Christian Rosado.
El conocimiento como objeto de estudio
Árboles clase 6 Apoyo de Práctica. Resumen ●Árboles ○Concepto ○Características ○Dinámica ○Recorridos o barridos. ●Ejercicio Sugerido.
Programación Lineal Método Grafico. Método Grafico La solución de un modelo de programación Lineal por medio del método gráfico, consiste en la búsqueda.
Búsqueda tabú INTEGRANTES: JESSICA PINTA MICHELLE TORRES.
Métodos de búsqueda. Introdución Esta operación se utiliza basicamente para recuperar datos que se habian almacenado con anticipación. El resultado puede.
 Toma de Decisiones MÉTODOS CUANTITATIVOS PARA LA TOMA DE DECISIONES.
Agentes que planifican. 1. Introduccion En la actualidad todas la mayoría de actividades en un empresa o compañía, como en el hogar o el medio ambiente.
ALVAREZ OCHOA DEISY NAYELI
Optimización de Procesos.
Estructura de Datos M.C. J. Andrés V. F. FCC/BUAP
Curso de Programación Estructurada
Medidas de tendencia central Cuartiles, Deciles, Percentiles.
Teoría Nº 3 Conceptos Básicos de Algoritmia Estructuras de Control
Capítulo 8: Introducción a redes
M. en TI. Omar Téllez Barrientos DOCENTE DE INFORMÁTICA GENERACIÓN DE PSEUDOCÓDIGOS Y ALGORITMOS
Análisis de rendimiento de dos algoritmos de búsqueda secuencial de texto con sus respectivas variantes Mauricio Ulate Quirós
MATEMATICAS APLICADAS A LAS CCSS-II DEPARTAMENTO DE MATEMÁTICAS
PLANEACIÓN Y CONTROL DE LA PRODUCCIÓN PLAN MAESTRO DE LA PRODUCCIÓN.
METODOS DE ORDENAMIENTO CHRISTIAN MICHAEL OBANDO GARCES JOAO ADRIAN BARIONUEVO.
Recursividad 1 Análisis de algoritmos. Matrushka La Matrushka es una artesanía tradicional rusa. Es una muñeca de madera que contiene otra muñeca más.
Complejidad algorítmica
CONTROLES Y ESTRUCTURAS BÁSICAS DE PROGRAMACIÓN  1. Algoritmos: conjunto de instrucciones programadas para resolver una tarea específica.  2. Datos:
Implementación de algoritmo para juegos. Algoritmo Minimax  El algoritmo de minimax en simples palabras consiste en la elección del mejor movimiento.
PROYECTO DE INVERSION Y EL CICLO DE PROYECTOS. CONCEPTOS DE PROYECTOS.
Pipelining Peligros de control.
Diseñas y elaboras algoritmos para la solución de problemas
1. Teniendo ya establecido el sueldo de cada empleado, lo primero que debe hacerse en este método es formar un comité de 4 personas que influyan en la.
SISTEMAS NUMERICOS “Introducción a la Programación” Rolando Montero.
Transcripción de la presentación:

Estrategia algorítmica Capítulo 10: Estrategia algorítmica

En este capítulo se tratarán los siguientes temas: 10.1 Introducción 10.2 Divide y conquista 10.3 Greddy, algoritmos voraces 10.4 Programación dinámica

10.1 Introducción Sin saberlo, durante los diferentes capítulos de este libro hemos analizado y resuelto problemas aplicando soluciones cuya estrategia algorítmica responde a ciertos modelos prestablecidos.  En este capítulo estudiaremos algunos de estos modelos de estrategia algorítmica, conocidos como “divide y conquista”, “greddy” y “programación dinámica”, con el objetivo de entender sus patrones e identificar sus características.

10.2 Divide y conquista Tal vez “divide y conquista” sea la técnica natural de la programación estructurada ya que consiste en dividir un problema grande en varios problemas de menor tamaño tantas veces como sea necesario hasta hacer que la resolución de cada uno de ellos sea trivial.  Los algoritmos recursivos también son casos de “divide y conquista”, aunque lo que realmente se divide en una llamada recursiva es la cantidad de datos que el algoritmo debe procesar.  Algunos casos típicos de esta técnica son la búsqueda binaria, el Árbol Binario de Búsqueda (ABB) y el algoritmo de ordenamiento quicksort. Todos estos algoritmos dividen el conjunto de datos en mitades, luego vuelven a dividir cada una de las mitades y así sucesivamente hasta trivializar la solución.  Recordemos que tanto la búsqueda binaria como el ABB tienen una complejidad de orden logarítmico mientras que la complejidad del ordenamiento quicksort es cuasilineal.

10.3 Greddy, algoritmos voraces Los algoritmos greddy encuentran la solución del problema evaluando cada uno de los elementos de un conjunto que llamaremos “conjunto de candidatos”.  El algoritmo consiste en una serie de iteraciones, en cada una de las cuales se evalúa un elemento del conjunto de candidatos para determinar si corresponde incluirlo en el conjunto solución o no.  Luego, aquellos elementos no incluidos serán descartados definitivamente. Un algoritmo greddy no reconsidera una opción. Simplemente la toma o deja.  En este tipo de algoritmos podemos identificar cuatro funciones: La función de selección se ocupa de seleccionar el elemento más apropiado del conjunto de candidatos. La función de factibilidad que, una vez seleccionado un elemento, evalúa si es factible incluirlo en el conjunto solución. La función solución evalúa si el conjunto solución efectivamente constituye una solución para el problema. La función objetivo que busca optimizar la solución encontrada.

10.4 Programación dinámica El concepto de programación dinámica que se basa en el llamado “principio de optimalidad” enunciado por Bellman en 1957, que dice:  “En una secuencia de decisiones óptima toda subsecuencia debe ser óptima también”. Los algoritmos de programación dinámica dividen el problema principal en varios subproblemas más pequeños. La diferencia entre “programación dinámica” y “divide y conquista” está dada en que aquí los subproblemas no son independientes entre sí. En la programación dinámica, el resultado de cada subproblema que se resuelve debe ser almacenado en una tabla para evitar tener que volverlo a calcular. En resumen, la programación dinámica implica: Menor cantidad de operaciones. Mayor uso de memoria.