1 Algoritmos Avaros (Greedy Algorithms) Agustín J. González ELO-320: Estructura de Datos y Algoritmos.

Slides:



Advertisements
Presentaciones similares
Ejemplo 2: Reparto de 3 objetos indivisibles.
Advertisements

Diseño y análisis de algoritmos
Inteligencia Artificial
TUTORIAL PASO A PASO Parte 3. PASO 13: AGREGAR CUESTIONARIOS Los cuestionarios son una serie de preguntas para ser resueltas en determinado tiempo y.
GRAFOS: ALGORITMOS FUNDAMENTALES
1 Extensión de un Estructura de Datos Agustín J. González ELO-320: Estructura de Datos y Algoritmos.
Métodos y Técnicas de Estudios
Búsqueda Informada Heurísticas.
Deadlocks Caracterización de deadlock Métodos para manejar deadlock Prevenir, Predecir, detección Recuperación de deadlock Emely Arráiz Ene-Mar 08.
CI TEORIA semana 8 Subprogramas o funciones Definición de funciones.

Complejidad Problemas NP-Completos
Analisis y Diseño de Algoritmos Tema: Grafos 3ra Parte
Tema 2: Métodos de ajuste
Problemes de Viatjants
GRAFOS HUGO ARAYA CARRASCO.
Representación del Conocimiento
1 Algoritmos Elementales de Grafos Agustín J. González ELO-320: Estructura de Datos Y Algoritmos 1er.Sem
PROGRAMACIÓN PARALELA EN ALGORITMOS SOBRE GRAFOS
Algoritmo Simplex Dual Como sabemos, el método simplex es un algoritmo iterativo que iniciando en una solución básica factible pero no óptima, genera soluciones.
Ordenamiento, Heapsort y Colas de prioridad
Single-Source Shortest Paths “Camino más corto desde/hacia una fuente”
Problemas de Decisión y Optimización
Algoritmos para Ordenar datos
Diseño y análisis de algoritmos
Programación dinámica: Introducción
Clase 10: Estructuras de datos y arreglos.
Diseño y análisis de algoritmos

A LGORITMO DE BÚSQUEDA POR COSTO UNIFORME Dorian López.
Sesión 6: Campos de Markov
ALGORITMOS APROXIMADOS
Parte II. Algorítmica. 3. Algoritmos voraces.
Diseño y análisis de algoritmos
Combinación de Clasificadores
ESTRUCTURA GENERAL DEL MÉTODO PARA LLEVAR A CABO UNA REORGANIZACIÓN ETAPA 1 Preparación detallada para el primer lanzamiento de iniciativa de cambio. ETAPA.
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS ESCUELA DE POST GRADO MAESTRÍA EN ADMINISTRACIÓN CON MENCIÓN EN GESTIÓN EMPRESARIAL KIWI COMPUTER Curso: METODOS.
Demanda y Oferta de Bienes Durables
Manejo de Punteros y objetos en memoria dinámica en C++
Agustín J. González ELO320: Estructura de Datos y Algoritmos
1 Algoritmos Avaros (Greedy Algorithms) Agustín J. González ELO-320: Estructura de Datos y Algoritmos 1er. Sem
Medianas y Estadísticas de Orden
1 Quicksort Agustín J. González ELO320: Estructura de Datos y Algoritmos 1er. Sem
Estadísticas Datos y Azar
1 Ordenamiento y estadísticas de orden Agustín J. González ELO 320: Estructura de Datos y Algoritmos.
Tabla de frecuencias Estadística Tema: Tablas de Frecuencias
1 Ordenamiento en tiempo lineal y Estadísticas de orden Agustín J. González ELO320: Estructura de Datos y Algoritmos 1er. Sem 2002.
1 Single-Source Shortest Paths “Camino más corto desde/hacia una fuente” Agustín J. González ELO320: Estructura de Datos y Algoritmos 1.er. Sem
1 Problemas de decisión Tipo particular de problemas de optimización Sistemas que evolucionan con el tiempo Se toman decisiones en momentos sucesivos de.
Minimum Spanning Tree (Árbol de Expansión Mínima)
Parte I. Estructuras de Datos.
Tema 10: Algoritmos voraces
1 Flujo Máximo Agustín J. González ELO320: Estructura de Datos y Algoritmos.
Agustín J. González ELO320: Estructura de Datos y Algoritmos
Minimum Spanning Tree (Árbol de Expansión Mínima)
Análisis de algoritmos Generalidades
Crear un formulario con Google Docs En primer lugar deberemos acceder a nuestro sitio de Google Docs. Como ya sabes, debes disponer de una cuenta de Gmail.
Investigación de Mercados I
Un comerciante acude al mercado a comprar naranjas
Multiplicadores de Lagrange
UNIDAD 2 Grafos Árboles abarcadores mínimos Caminos más cortos.
2.3.4) OFERTA: Minimización de los costos. Curvas de costo  Según cómo se comporte la productividad del factor variable, así se comporta el costo variable.
ALUMNOS : MUÑANTE REVILLA, EDGAR MORI BAZAN, NORKA.
DISEÑAR Y ELABORAR ALGORITMOS NOMBRE: LAURA PAEZ GARCIA GRADO Y GRUPO: 1 “3” MATERIA: INFORMÁTICA Y COMPUTACIÓN MAESTRO: ÁNGEL BUENDÍA TURNO: VESPERTINO.
Resolución Gráfica de PPL
Resolución de Problemas Método Gráfico
Mapeo del proceso de producción Saber obrero y organización de los trabajadores.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Arreglo.
Estadística descriptiva
Planificación de CPU Conceptos Básicos Criterios de Planificación Algoritmos de Planificación Planificación con Múltiples Procesadores Planificación Real-Time.
Transcripción de la presentación:

1 Algoritmos Avaros (Greedy Algorithms) Agustín J. González ELO-320: Estructura de Datos y Algoritmos

2 Introducción Hay muchos algoritmos que pueden ser clasificados bajo la categoría de Algoritmos Oportunistas, o avaros (Greedy Algorithms). La idea es optar por la mejor opción de corto plazo. Sacar mayor provecho inmediato. Éstos se caracterizan por hacer la elección que parece mejor en el momento. Éstos no conducen siempre a una solución óptima, pero para muchos casos sí. Éstos producen una solución óptima cuando se puede llegar a ésta a través de elecciones localmente óptimas. Este método es muy poderoso y trabaja bien en muchos algoritmos que veremos en las próximas semanas; por ejemplo: Minimum-spanning-tree (árbol de mínima extensión), el algoritmo de Dijkstra para el camino más corto en un grafo desde una única fuente.

3 Problema de la selección de actividades Se requiere itinerar el uso de un recurso entre varias actividades que compiten. Problema: Tenemos un conjunto de S={0, 1, 2, 3,.., n-1} actividades que desean usar un recurso (como una sala de clases por ejemplo) del cual sólo uno puede usarse a la vez. Cada actividad tiene un tiempo de partida si y un tiempo de término fi, donde si  fi. La tarea consiste en seleccionar el conjunto de cardinalidad máxima de actividades mutuamente compatibles; i.e. que no se traslapen. Suponemos que las actividades están ordenadas por orden creciente de tiempo de término: fo  f1  f2  f3  f4...  fn-1 Si no fuera así, sabemos que podemos ordenarlas en tiempo O(n lg n).

4 Problema de la selección de actividades Int Selector_de_Actividades(float s[ , float f [ , int n, int A[  ) { /* s y f son arreglos de tiempos de partida y término */ /* n: número de actividades compitiendo */ /* A: Arreglo de salida indicando la asignación óptima para máximo número de actividades*/ /* se retorna el número de actividad itineradas en A*/ int i, j = 0, m = 0; A[m++  = 0; /* La primera es la de menor tiempo final*/ for (i=1; i = f [j  ) { A [m++  = i; j = i; } return (m); }

5 Ejemplo Se puede demostrar que la solución aquí propuesta es óptima. La estrategia fue asignar la actividad que dejara el recurso libre la mayor cantidad de tiempo en el futuro y que fuera compatible con las anteriores. Ejemplo: sea S F

6 Otro problema “Greedy” Considere el problema del saco de mercaderías. Un ladrón que ingresa a robar a una tienda dispone de un saco que puede cargar hasta un peso W límite. Las mercaderías que tiene a su disposición se venden a granel. Conocemos el peso total de cada mercadería y su precio total. El problema del ladrón es cuanto tomar de cada producto para lograr llevar un botín de mayor valor. Como nuestro límite es en peso, la estrategia greedy primero calcula el valor por gramo (o kilo) de cada producto. Luego los ordena de mayor a menor precio por unidad de peso y va tomando el primer producto hasta agotarlo, luego el segundo y así sucesivamente hasta completar la carga límite.

7 Variante del problema anterior Una variante de este problema es el problema del saco de mercadería discreto. En este caso las mercaderías no se pueden llegar en fracciones ni tampoco se repiten. En este caso la estrategia greedy descrita previamente no conduce a la solución óptima. Ejemplo: Supongamos que el saco puede cargar 50 kilos. Tenemos los siguientes productos: A de 10 kilos vale 6 mil, B de 20 kilos vale 10 mil, y C de 30 kilos vale 12 mil. Los valores por unidad de peso son: A=> 0.6 $/k, B=> 0.5 $/k, C => 0.4 $/k. Si el ladrón carga A luego sólo puede cargar B o C. Toma B y consigue productos por 16 mil. La mejor solución es tomar B y C por un total de 22 mil.