También conocido como el algoritmo codicioso algoritmo codicioso
En primer lugar, el problema de optimización
En este artículo se describe el algoritmo y los ejemplos están detrás del "problema de optimización" . Cada uno contiene un conjunto de problemas de optimización "condiciones restringidas" y una "función de optimización" . Conoce las limitaciones del programa de resolución de problemas llamada "solución factible" . El mejor valor de la función de optimización posible lograr una solución factible se llama "solución óptima"
En segundo lugar, la idea de algoritmo voraz
En el algoritmo voraz, necesitamos construir gradualmente una solución óptima . Cada paso, estamos ciertos criterios para tomar una decisión óptima. Cada paso en la toma de decisiones, y no se pueden cambiar en un paso posterior. las decisiones se basan estándar se llama directrices codicia
En tercer lugar, la práctica de buscar el cambio
Descripción del problema
Los clientes que utilizan dólares para comprar vendedor de caramelos con la esperanza de encontrar a un niño a cambiar con el menor número de monedas. Supongamos que hay un valor nominal de 25 centavos, 10 centavos, 5 centavos y monedas de 1 centavo, pero el número no está limitado
Cada vez que seleccione un dependiente de la tienda de la moneda, hacer mirar para el cambio. La elección se basa en criterios de codicia: en no más que el número total de monedas están buscando, cada vez que la moneda más grande posible entrevista de selección , hasta que el número total de monedas que componen el número total de equal're en busca de cambios
Descripción del problema: si se asume que los clientes están buscando 67 centavos
algoritmo voraz para resolver el paso
Supongamos que a los clientes que buscan 67 centavos:
Los dos primeros pasos eligieron dos $ 25 de monedas (tercer paso no se puede seleccionar a $ 25, de lo contrario el total a más de 67 centavos)
Paso selección moneda de 10 céntimos
La cuarta etapa de selección de monedas de 5 centavos
El paso final es de dos monedas de 1 centavo
algoritmo voraz nos da una sensación: este raspar las monedas sueltas, o al menos cerca del número mínimo de monedas
En cuarto lugar, la aplicación práctica de la programación de la máquina
Análisis de aplicaciones
Hay un número n de tareas, la máquina no se limitan a, procesamiento de tareas en la máquina. hora de inicio de cada tarea es Si, el tiempo de finalización de la tarea para Fi, Si <Fi. [Si, Fi] es la tarea i período de procesamiento
La duplicación de tareas: dos tareas superpuestas i y j, si y sólo si el período de procesamiento solapamiento dos tareas. Por ejemplo período [1, 4] con un período de [2,4] solapamiento, y [1,4] y el tiempo [4,7] no solapamiento
Una tarea esquema de asignación es factible: se refiere a dos períodos sin tareas asignadas a la misma máquina la superposición, es decir, cada máquina a lo sumo sólo una tarea en cualquier proceso en tiempo
asignación óptima: se refiere a la utilización de la máquina con el plan de distribución viable mínimo
La descripción real del problema
Supongamos que n = 7 tareas, numeradas de A a G, el tiempo de procesamiento del mismo como se muestra a continuación:
Descripción del problema: la máquina no está limitada, se debe asignar a esta tarea 7 en la máquina en funcionamiento, y el número total de máquinas necesarias es mínima utilizada (tiempo no se requiere)
algoritmo voraz para resolver el paso
Codicia directrices pasos: de acuerdo con la hora de inicio de la tarea, si los "viejos" máquinas están disponibles, la tarea asignada a la misma. De lo contrario, la tarea se asigna a una "nueva" máquina
Los antiguos medios de máquinas: que se ha utilizado
Las nuevas máquinas: de nuevo la máquina no se ha utilizado
La hora de inicio y final de la tarea, el resultado final de ejecución se muestra a continuación, todas las tareas en la ejecución global del proceso, se utilizaron tres máquinas
En quinto lugar, la aplicación práctica de la ruta más corta
Descripción del problema
Para una red como se muestra a continuación, la distancia entre los dos números figura representan nodos
Ahora hay una demanda de este tipo: desde el principio hasta llegar a un cierto punto a otro punto, cada paso en el camino para unirse a una orden. Se supone que la trayectoria de la corriente ha alcanzado su pico q, pero aún no ha llegado al final. Cuando la solicitud de una selección de la ruta: Seleccionar un q asociado recientemente, y el vértice actual no está en el camino
algoritmo voraz para resolver el paso
Suponiendo que alcanzó su punto máximo desde el vértice 1 5, codicioso algoritmo de solución es:
Paso 1. Seleccionar 1-> 3 longitud de recorrido de 2
Paso longitud Select 3-> 2 camino de 2
El tercer paso es seleccionar 4-> 2 longitud de trayectoria de 1
Paso cuarto selección 2-> 5 de la trayectoria, una longitud de 5
Así, una longitud total de 10
Nota (Key): De acuerdo con la descripción del problema y algoritmo voraz, la elección final de la ruta es de 10, pero no es el camino más corto (no óptimo). Puede ser realizado, por ejemplo, 1-> 4-> 5 este camino, una longitud total de 6. Así algoritmo voraz no es necesariamente la solución óptima
Otros seis casos
Por ejemplo, el algoritmo de árbol de Huffman ( https://blog.csdn.net/qq_41453285/article/details/103649092 ), usando n-1 etapa de ponderación para establecer el mínimo longitud de la trayectoria externa de un árbol binario, cada paso será de dos árboles binarios combinado en una sola. El algoritmo voraz algoritmo usado es: desde el árbol binario de peso más pequeño disponible los dos árboles es una composición de árboles
Por ejemplo, las reglas de programación LPT ( https://blog.csdn.net/qq_41453285/article/details/103649089 también un algoritmo codicioso). Se utiliza para horario de n pasos n operaciones. En primer lugar, la duración del trabajo ordenadas por el tiempo. La siguiente tarea es asignada como una máquina de entonces cada paso. Greedy criterio se basa en: la programación actual el menor tiempo. El nuevo finalización del trabajo programado primera máquina (es decir, la primera máquina de reposo). Tenga en cuenta que este problema, el algoritmo voraz no garantiza la solución óptima
Otras siete personas pertenecen al concepto de
Se puede conocer a través de algunos de los problemas anteriores, la regla codiciosos no garantiza soluciones óptimas (como el problema del camino más corto arriba), pero siempre cerca de la solución óptima en circunstancias normales. Esta es una regla de oro. Los resultados obtenidos son por lo general cerca de la solución óptima, este algoritmo se llama "heurística"
Si entre la heurística y la mejor ofensiva existe una relación limitada, entonces tenemos que llamar a este método heurístico tiene "capacidad limitada"
Tener una heurística define propiedades definidas denominan "Aproximación Algoritmo"
Ocho, la aplicación práctica del algoritmo codicioso