114
Alonso Ramírez Manzanares Computación y Algoritmos 23.05 Algoritmos glotones(greedy) mat-151 Thursday, May 25, 17

Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

  • Upload
    others

  • View
    7

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05

Algoritmos glotones(greedy)

mat-151

Thursday, May 25, 17

Page 2: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2

Algoritmos glotones

Thursday, May 25, 17

Page 3: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2

Algoritmos glotones

• Algoritmos utilizados en problemas de optimización.

Thursday, May 25, 17

Page 4: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2

Algoritmos glotones

• Algoritmos utilizados en problemas de optimización.

• Estos algoritmos siguen típicamente una secuencia de pasos con un conjunto de opciones en cada paso.

Thursday, May 25, 17

Page 5: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2

Algoritmos glotones

• Algoritmos utilizados en problemas de optimización.

• Estos algoritmos siguen típicamente una secuencia de pasos con un conjunto de opciones en cada paso.

• Un algoritmo glotón siempre toma la decisión que parece mejor en ese instante.

Thursday, May 25, 17

Page 6: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2

Algoritmos glotones

• Algoritmos utilizados en problemas de optimización.

• Estos algoritmos siguen típicamente una secuencia de pasos con un conjunto de opciones en cada paso.

• Un algoritmo glotón siempre toma la decisión que parece mejor en ese instante.

• Esto es, toma la solución localmente óptima esperando que le lleve a la solución globalmente óptima.

Thursday, May 25, 17

Page 7: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2

Algoritmos glotones

• Algoritmos utilizados en problemas de optimización.

• Estos algoritmos siguen típicamente una secuencia de pasos con un conjunto de opciones en cada paso.

• Un algoritmo glotón siempre toma la decisión que parece mejor en ese instante.

• Esto es, toma la solución localmente óptima esperando que le lleve a la solución globalmente óptima.

• Los algoritmos glotones no siempre llevan a la solución óptima pero para muchos problemas la solución óptima se encuentra de manera más eficiente que con programación dinámica.

Thursday, May 25, 17

Page 8: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 3

Algoritmos glotones: problema de selección de tareas compatibles

Thursday, May 25, 17

Page 9: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 3

Algoritmos glotones: problema de selección de tareas compatibles

• Planificación de actividades que compiten por el mismo recurso.

Thursday, May 25, 17

Page 10: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 3

Algoritmos glotones: problema de selección de tareas compatibles

• Planificación de actividades que compiten por el mismo recurso.

• Meta: seleccionar el conjunto de mayor tamaño de tareas compatibles.

Thursday, May 25, 17

Page 11: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 3

Algoritmos glotones: problema de selección de tareas compatibles

• Planificación de actividades que compiten por el mismo recurso.

• Meta: seleccionar el conjunto de mayor tamaño de tareas compatibles.

• Conjunto de n actividades propuestas S = {a1,a2,...an} que quieren usar el mismo recurso.

Thursday, May 25, 17

Page 12: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 3

Algoritmos glotones: problema de selección de tareas compatibles

• Planificación de actividades que compiten por el mismo recurso.

• Meta: seleccionar el conjunto de mayor tamaño de tareas compatibles.

• Conjunto de n actividades propuestas S = {a1,a2,...an} que quieren usar el mismo recurso.

• Cada actividad ai tiene un tiempo de inicio si y un tiempo final fi donde:

Thursday, May 25, 17

Page 13: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 3

Algoritmos glotones: problema de selección de tareas compatibles

• Planificación de actividades que compiten por el mismo recurso.

• Meta: seleccionar el conjunto de mayor tamaño de tareas compatibles.

• Conjunto de n actividades propuestas S = {a1,a2,...an} que quieren usar el mismo recurso.

• Cada actividad ai tiene un tiempo de inicio si y un tiempo final fi donde:

0 ≤ si ≤ fi < inf .

Thursday, May 25, 17

Page 14: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 3

Algoritmos glotones: problema de selección de tareas compatibles

• Planificación de actividades que compiten por el mismo recurso.

• Meta: seleccionar el conjunto de mayor tamaño de tareas compatibles.

• Conjunto de n actividades propuestas S = {a1,a2,...an} que quieren usar el mismo recurso.

• Cada actividad ai tiene un tiempo de inicio si y un tiempo final fi donde:

0 ≤ si ≤ fi < inf .

• Si es seleccionada, la actividad ai tiene lugar en el intervalo semi-abierto [si,fi).

Thursday, May 25, 17

Page 15: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 3

Algoritmos glotones: problema de selección de tareas compatibles

• Planificación de actividades que compiten por el mismo recurso.

• Meta: seleccionar el conjunto de mayor tamaño de tareas compatibles.

• Conjunto de n actividades propuestas S = {a1,a2,...an} que quieren usar el mismo recurso.

• Cada actividad ai tiene un tiempo de inicio si y un tiempo final fi donde:

0 ≤ si ≤ fi < inf .

• Si es seleccionada, la actividad ai tiene lugar en el intervalo semi-abierto [si,fi).

• Las actividades ai y aj son compatibles si los intervalos [si,fi) y [sj,fj) no se translapan ( si si ≥ fj o si sj ≥ fi ).

Thursday, May 25, 17

Page 16: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 4

Algoritmos glotones: problema de selección de tareas compatibles

Thursday, May 25, 17

Page 17: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 4

Algoritmos glotones: problema de selección de tareas compatibles

• El problema de selección de actividades es el seleccionar el subconjunto de tamaño máximo de actividades mutuamente compatibles.

Thursday, May 25, 17

Page 18: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 4

Algoritmos glotones: problema de selección de tareas compatibles

• El problema de selección de actividades es el seleccionar el subconjunto de tamaño máximo de actividades mutuamente compatibles.

i 1 2 3 4 5 6 7 8 9 10 11

si 1 3 0 5 3 5 6 8 8 2 12

fi 4 5 6 7 8 9 10 11 12 13 14

Thursday, May 25, 17

Page 19: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 4

Algoritmos glotones: problema de selección de tareas compatibles

• El problema de selección de actividades es el seleccionar el subconjunto de tamaño máximo de actividades mutuamente compatibles.

i 1 2 3 4 5 6 7 8 9 10 11

si 1 3 0 5 3 5 6 8 8 2 12

fi 4 5 6 7 8 9 10 11 12 13 14

Thursday, May 25, 17

Page 20: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 4

Algoritmos glotones: problema de selección de tareas compatibles

• El problema de selección de actividades es el seleccionar el subconjunto de tamaño máximo de actividades mutuamente compatibles.

i 1 2 3 4 5 6 7 8 9 10 11

si 1 3 0 5 3 5 6 8 8 2 12

fi 4 5 6 7 8 9 10 11 12 13 14

Thursday, May 25, 17

Page 21: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 4

Algoritmos glotones: problema de selección de tareas compatibles

• El problema de selección de actividades es el seleccionar el subconjunto de tamaño máximo de actividades mutuamente compatibles.

i 1 2 3 4 5 6 7 8 9 10 11

si 1 3 0 5 3 5 6 8 8 2 12

fi 4 5 6 7 8 9 10 11 12 13 14

Thursday, May 25, 17

Page 22: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 4

Algoritmos glotones: problema de selección de tareas compatibles

• El problema de selección de actividades es el seleccionar el subconjunto de tamaño máximo de actividades mutuamente compatibles.

i 1 2 3 4 5 6 7 8 9 10 11

si 1 3 0 5 3 5 6 8 8 2 12

fi 4 5 6 7 8 9 10 11 12 13 14

Thursday, May 25, 17

Page 23: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 4

Algoritmos glotones: problema de selección de tareas compatibles

• El problema de selección de actividades es el seleccionar el subconjunto de tamaño máximo de actividades mutuamente compatibles.

i 1 2 3 4 5 6 7 8 9 10 11

si 1 3 0 5 3 5 6 8 8 2 12

fi 4 5 6 7 8 9 10 11 12 13 14

Thursday, May 25, 17

Page 24: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 4

Algoritmos glotones: problema de selección de tareas compatibles

• El problema de selección de actividades es el seleccionar el subconjunto de tamaño máximo de actividades mutuamente compatibles.

i 1 2 3 4 5 6 7 8 9 10 11

si 1 3 0 5 3 5 6 8 8 2 12

fi 4 5 6 7 8 9 10 11 12 13 14

Thursday, May 25, 17

Page 25: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 4

Algoritmos glotones: problema de selección de tareas compatibles

• El problema de selección de actividades es el seleccionar el subconjunto de tamaño máximo de actividades mutuamente compatibles.

i 1 2 3 4 5 6 7 8 9 10 11

si 1 3 0 5 3 5 6 8 8 2 12

fi 4 5 6 7 8 9 10 11 12 13 14

Thursday, May 25, 17

Page 26: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 5

Algoritmos glotones: problema de selección de tareas compatibles

i

Thursday, May 25, 17

Page 27: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 5

Algoritmos glotones: problema de selección de tareas compatibles

• Solución utilizando programación dinámica: combinar las soluciones óptimas a dos subproblemas para construir una solución óptima al problema original.

i

Thursday, May 25, 17

Page 28: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 5

Algoritmos glotones: problema de selección de tareas compatibles

• Solución utilizando programación dinámica: combinar las soluciones óptimas a dos subproblemas para construir una solución óptima al problema original.

• Paso 1: subestructura óptima del problema de selección de actividades.

i

Thursday, May 25, 17

Page 29: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 5

Algoritmos glotones: problema de selección de tareas compatibles

• Solución utilizando programación dinámica: combinar las soluciones óptimas a dos subproblemas para construir una solución óptima al problema original.

• Paso 1: subestructura óptima del problema de selección de actividades.

i

Thursday, May 25, 17

Page 30: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 5

Algoritmos glotones: problema de selección de tareas compatibles

• Solución utilizando programación dinámica: combinar las soluciones óptimas a dos subproblemas para construir una solución óptima al problema original.

• Paso 1: subestructura óptima del problema de selección de actividades.

i

Thursday, May 25, 17

Page 31: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 5

Algoritmos glotones: problema de selección de tareas compatibles

• Solución utilizando programación dinámica: combinar las soluciones óptimas a dos subproblemas para construir una solución óptima al problema original.

• Paso 1: subestructura óptima del problema de selección de actividades.

i

Thursday, May 25, 17

Page 32: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 6

Algoritmos glotones: problema de selección de tareas compatibles

Thursday, May 25, 17

Page 33: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 6

Algoritmos glotones: problema de selección de tareas compatibles

• Si ordenamos las actividades en orden creciente respecto a sus tiempos de finalización, tenemos que:

Thursday, May 25, 17

Page 34: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 6

Algoritmos glotones: problema de selección de tareas compatibles

• Si ordenamos las actividades en orden creciente respecto a sus tiempos de finalización, tenemos que:

Thursday, May 25, 17

Page 35: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 6

Algoritmos glotones: problema de selección de tareas compatibles

• Si ordenamos las actividades en orden creciente respecto a sus tiempos de finalización, tenemos que:

y podemos decir que

Thursday, May 25, 17

Page 36: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 6

Algoritmos glotones: problema de selección de tareas compatibles

• Si ordenamos las actividades en orden creciente respecto a sus tiempos de finalización, tenemos que:

y podemos decir que

Thursday, May 25, 17

Page 37: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 6

Algoritmos glotones: problema de selección de tareas compatibles

• Si ordenamos las actividades en orden creciente respecto a sus tiempos de finalización, tenemos que:

y podemos decir que

• Para encontrar la subestructura optima consideramos un subproblema no-vacío y suponemos que una solución a este subproblema incluye una actividad ak tal que:

Thursday, May 25, 17

Page 38: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 6

Algoritmos glotones: problema de selección de tareas compatibles

• Si ordenamos las actividades en orden creciente respecto a sus tiempos de finalización, tenemos que:

y podemos decir que

• Para encontrar la subestructura optima consideramos un subproblema no-vacío y suponemos que una solución a este subproblema incluye una actividad ak tal que:

• La actividad ak nos genera dos subproblemas, Sik y Skj, donde cada una consiste en un subconjunto de las actividades presentes en Sij.

Thursday, May 25, 17

Page 39: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 7

Algoritmos glotones: problema de selección de tareas compatibles

Thursday, May 25, 17

Page 40: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 7

Algoritmos glotones: problema de selección de tareas compatibles

• La estructura subóptima de este problema es la siguiente:

Thursday, May 25, 17

Page 41: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 7

Algoritmos glotones: problema de selección de tareas compatibles

• La estructura subóptima de este problema es la siguiente:

• supongamos que una solución óptima Aij para Sij incluye la actividad ak.

Thursday, May 25, 17

Page 42: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 7

Algoritmos glotones: problema de selección de tareas compatibles

• La estructura subóptima de este problema es la siguiente:

• supongamos que una solución óptima Aij para Sij incluye la actividad ak.

• entonces las soluciones Aik a Sik y Akj a Skj utilizadas en esa solución óptima de Sij son óptimas también.

Thursday, May 25, 17

Page 43: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 7

Algoritmos glotones: problema de selección de tareas compatibles

• La estructura subóptima de este problema es la siguiente:

• supongamos que una solución óptima Aij para Sij incluye la actividad ak.

• entonces las soluciones Aik a Sik y Akj a Skj utilizadas en esa solución óptima de Sij son óptimas también.

• se puede entonces encontrar un subconjunto de tamaño máximo de actividades compatibles en Sij separando el problema en dos subproblemas y uniendo sus soluciones:

Thursday, May 25, 17

Page 44: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 7

Algoritmos glotones: problema de selección de tareas compatibles

• La estructura subóptima de este problema es la siguiente:

• supongamos que una solución óptima Aij para Sij incluye la actividad ak.

• entonces las soluciones Aik a Sik y Akj a Skj utilizadas en esa solución óptima de Sij son óptimas también.

• se puede entonces encontrar un subconjunto de tamaño máximo de actividades compatibles en Sij separando el problema en dos subproblemas y uniendo sus soluciones:

Thursday, May 25, 17

Page 45: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 7

Algoritmos glotones: problema de selección de tareas compatibles

• La estructura subóptima de este problema es la siguiente:

• supongamos que una solución óptima Aij para Sij incluye la actividad ak.

• entonces las soluciones Aik a Sik y Akj a Skj utilizadas en esa solución óptima de Sij son óptimas también.

• se puede entonces encontrar un subconjunto de tamaño máximo de actividades compatibles en Sij separando el problema en dos subproblemas y uniendo sus soluciones:

Thursday, May 25, 17

Page 46: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 8

Algoritmos glotones: problema de selección de tareas compatibles

Thursday, May 25, 17

Page 47: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 8

Algoritmos glotones: problema de selección de tareas compatibles

• Paso 2: solución recursiva

Thursday, May 25, 17

Page 48: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 8

Algoritmos glotones: problema de selección de tareas compatibles

• Paso 2: solución recursiva

• Sea c[i,j] el número de actividades en un subconjunto de actividades compatibles de tamaño máximo en Sij.

Thursday, May 25, 17

Page 49: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 8

Algoritmos glotones: problema de selección de tareas compatibles

• Paso 2: solución recursiva

• Sea c[i,j] el número de actividades en un subconjunto de actividades compatibles de tamaño máximo en Sij.

•tenemos que c[i,j]=0 cuando Sij=∅; en particular c[i,j]=0 para i≥j.

Thursday, May 25, 17

Page 50: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 8

Algoritmos glotones: problema de selección de tareas compatibles

• Paso 2: solución recursiva

• Sea c[i,j] el número de actividades en un subconjunto de actividades compatibles de tamaño máximo en Sij.

•tenemos que c[i,j]=0 cuando Sij=∅; en particular c[i,j]=0 para i≥j.

•en un Sij≠∅ utilizamos los subproblemas Sik y Skj obteniendo la recurrencia:

Thursday, May 25, 17

Page 51: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 8

Algoritmos glotones: problema de selección de tareas compatibles

• Paso 2: solución recursiva

• Sea c[i,j] el número de actividades en un subconjunto de actividades compatibles de tamaño máximo en Sij.

•tenemos que c[i,j]=0 cuando Sij=∅; en particular c[i,j]=0 para i≥j.

•en un Sij≠∅ utilizamos los subproblemas Sik y Skj obteniendo la recurrencia:

• c[i,j] = c[i,k] + c[k,j] +1

Thursday, May 25, 17

Page 52: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 8

Algoritmos glotones: problema de selección de tareas compatibles

• Paso 2: solución recursiva

• Sea c[i,j] el número de actividades en un subconjunto de actividades compatibles de tamaño máximo en Sij.

•tenemos que c[i,j]=0 cuando Sij=∅; en particular c[i,j]=0 para i≥j.

•en un Sij≠∅ utilizamos los subproblemas Sik y Skj obteniendo la recurrencia:

• c[i,j] = c[i,k] + c[k,j] +1

•pero no conocemos el valor de k y tenemos hasta j-i-1 valores posibles, k=i+1,...,j-1. Hay que recorrerlos para encontrar el mejor.

Thursday, May 25, 17

Page 53: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 8

Algoritmos glotones: problema de selección de tareas compatibles

• Paso 2: solución recursiva

• Sea c[i,j] el número de actividades en un subconjunto de actividades compatibles de tamaño máximo en Sij.

•tenemos que c[i,j]=0 cuando Sij=∅; en particular c[i,j]=0 para i≥j.

•en un Sij≠∅ utilizamos los subproblemas Sik y Skj obteniendo la recurrencia:

• c[i,j] = c[i,k] + c[k,j] +1

•pero no conocemos el valor de k y tenemos hasta j-i-1 valores posibles, k=i+1,...,j-1. Hay que recorrerlos para encontrar el mejor.

Thursday, May 25, 17

Page 54: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 9

Algoritmos glotones: problema de selección de tareas compatibles

Thursday, May 25, 17

Page 55: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 9

Algoritmos glotones: problema de selección de tareas compatibles

• Para convertir el algoritmo de programación dinámica en un algoritmo glotón nos basamos en dos observaciones principales:

Thursday, May 25, 17

Page 56: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 9

Algoritmos glotones: problema de selección de tareas compatibles

• Para convertir el algoritmo de programación dinámica en un algoritmo glotón nos basamos en dos observaciones principales:

• Considerando cualquier subproblema no-vacío Sij, y sea am la actividad en Sij que termina más rápido:

Thursday, May 25, 17

Page 57: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 9

Algoritmos glotones: problema de selección de tareas compatibles

• Para convertir el algoritmo de programación dinámica en un algoritmo glotón nos basamos en dos observaciones principales:

• Considerando cualquier subproblema no-vacío Sij, y sea am la actividad en Sij que termina más rápido:

Entonces

1. La actividad am es usada en un subconjunto máximo de actividades compatibles en Sij.(Prueba: formar otro conjunto maximo sin am y substituir la primera actividad por am, y tiene el mismo número de elementos)

2. El subproblema Sim está vacío, de tal manera que eligiendo am deja al subproblema Smj como el único no-vacío. (Prueba: esto implicaría que existe una ak tal que fi<=sk< fk<=sm< fm y entonces fk<fm lo cual es una contradicción)

Thursday, May 25, 17

Page 58: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 10

Algoritmos glotones: problema de selección de tareas compatibles

Thursday, May 25, 17

Page 59: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 10

Algoritmos glotones: problema de selección de tareas compatibles

• Según vimos en las clases de programación dinámica la estructura sub-óptima varía de acuerdo a:

Thursday, May 25, 17

Page 60: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 10

Algoritmos glotones: problema de selección de tareas compatibles

• Según vimos en las clases de programación dinámica la estructura sub-óptima varía de acuerdo a:

• cuántos sub-problemas se utilizan en la solución óptima.

Thursday, May 25, 17

Page 61: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 10

Algoritmos glotones: problema de selección de tareas compatibles

• Según vimos en las clases de programación dinámica la estructura sub-óptima varía de acuerdo a:

• cuántos sub-problemas se utilizan en la solución óptima.

• el número de elecciones se tienen para determinar cada sub-problema.

Thursday, May 25, 17

Page 62: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 10

Algoritmos glotones: problema de selección de tareas compatibles

• Según vimos en las clases de programación dinámica la estructura sub-óptima varía de acuerdo a:

• cuántos sub-problemas se utilizan en la solución óptima.

• el número de elecciones se tienen para determinar cada sub-problema.

• La solución con programación dinámica propone 2 subproblemas y j-i-1 elecciones por sub-problema.

Thursday, May 25, 17

Page 63: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 10

Algoritmos glotones: problema de selección de tareas compatibles

• Según vimos en las clases de programación dinámica la estructura sub-óptima varía de acuerdo a:

• cuántos sub-problemas se utilizan en la solución óptima.

• el número de elecciones se tienen para determinar cada sub-problema.

• La solución con programación dinámica propone 2 subproblemas y j-i-1 elecciones por sub-problema.

• La solución glotona disminuye el número de sub-problemas (1 subproblema) y este subproblema tiene solo 1 elección: calcular la actividad con el tiempo de finalización más rápido.

Thursday, May 25, 17

Page 64: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 11

Algoritmos glotones: problema de selección de tareas compatibles

Thursday, May 25, 17

Page 65: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 11

Algoritmos glotones: problema de selección de tareas compatibles

• Para resolver el subproblema Sij:

Thursday, May 25, 17

Page 66: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 11

Algoritmos glotones: problema de selección de tareas compatibles

• Para resolver el subproblema Sij:

• elegimos la actividad am en Sij que termina más rápido y

Thursday, May 25, 17

Page 67: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 11

Algoritmos glotones: problema de selección de tareas compatibles

• Para resolver el subproblema Sij:

• elegimos la actividad am en Sij que termina más rápido y

• sumamos esta solución al conjunto de actividades usando la solución del problema Sm, j.

Thursday, May 25, 17

Page 68: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 11

Algoritmos glotones: problema de selección de tareas compatibles

• Para resolver el subproblema Sij:

• elegimos la actividad am en Sij que termina más rápido y

• sumamos esta solución al conjunto de actividades usando la solución del problema Sm, j.

• Se observa un patrón en los problemas resueltos: el problema original es S0,n+1.

Thursday, May 25, 17

Page 69: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 11

Algoritmos glotones: problema de selección de tareas compatibles

• Para resolver el subproblema Sij:

• elegimos la actividad am en Sij que termina más rápido y

• sumamos esta solución al conjunto de actividades usando la solución del problema Sm, j.

• Se observa un patrón en los problemas resueltos: el problema original es S0,n+1.

• Elegimos la actividad am1 como actividad en S0,n+1 que se termina más rápido.

Thursday, May 25, 17

Page 70: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 11

Algoritmos glotones: problema de selección de tareas compatibles

• Para resolver el subproblema Sij:

• elegimos la actividad am en Sij que termina más rápido y

• sumamos esta solución al conjunto de actividades usando la solución del problema Sm, j.

• Se observa un patrón en los problemas resueltos: el problema original es S0,n+1.

• Elegimos la actividad am1 como actividad en S0,n+1 que se termina más rápido.

• El siguiente subproblema es Sm1,n+1. Elegimos am2 como actividad,

Thursday, May 25, 17

Page 71: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 11

Algoritmos glotones: problema de selección de tareas compatibles

• Para resolver el subproblema Sij:

• elegimos la actividad am en Sij que termina más rápido y

• sumamos esta solución al conjunto de actividades usando la solución del problema Sm, j.

• Se observa un patrón en los problemas resueltos: el problema original es S0,n+1.

• Elegimos la actividad am1 como actividad en S0,n+1 que se termina más rápido.

• El siguiente subproblema es Sm1,n+1. Elegimos am2 como actividad,

• Notamos que cada subproblema es de la forma Smi,n+1 cuando una actividad mi es seleccionada.

Thursday, May 25, 17

Page 72: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 11

Algoritmos glotones: problema de selección de tareas compatibles

• Para resolver el subproblema Sij:

• elegimos la actividad am en Sij que termina más rápido y

• sumamos esta solución al conjunto de actividades usando la solución del problema Sm, j.

• Se observa un patrón en los problemas resueltos: el problema original es S0,n+1.

• Elegimos la actividad am1 como actividad en S0,n+1 que se termina más rápido.

• El siguiente subproblema es Sm1,n+1. Elegimos am2 como actividad,

• Notamos que cada subproblema es de la forma Smi,n+1 cuando una actividad mi es seleccionada.

• El algoritmo glotón deja la mayor oportunidad para programar las actividades que quedan: maximiza la cantidad de tiempo restante sin programar.

Thursday, May 25, 17

Page 73: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 12

Algoritmos glotones: problema de selección de tareas compatibles

Thursday, May 25, 17

Page 74: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 12

Algoritmos glotones: problema de selección de tareas compatibles

• Algoritmo glotón recursivo (top-down)

Thursday, May 25, 17

Page 75: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 12

Algoritmos glotones: problema de selección de tareas compatibles

• Algoritmo glotón recursivo (top-down)

• Entradas:

Thursday, May 25, 17

Page 76: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 12

Algoritmos glotones: problema de selección de tareas compatibles

• Algoritmo glotón recursivo (top-down)

• Entradas:

• conjuntos de tiempos de inicio s y fin f (ordenadas incrementalmente).

Thursday, May 25, 17

Page 77: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 12

Algoritmos glotones: problema de selección de tareas compatibles

• Algoritmo glotón recursivo (top-down)

• Entradas:

• conjuntos de tiempos de inicio s y fin f (ordenadas incrementalmente).

• i y n que definen el subproblema Si,n+1 a resolver.

Thursday, May 25, 17

Page 78: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 12

Algoritmos glotones: problema de selección de tareas compatibles

• Algoritmo glotón recursivo (top-down)

• Entradas:

• conjuntos de tiempos de inicio s y fin f (ordenadas incrementalmente).

• i y n que definen el subproblema Si,n+1 a resolver.

• Salida:

Thursday, May 25, 17

Page 79: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 12

Algoritmos glotones: problema de selección de tareas compatibles

• Algoritmo glotón recursivo (top-down)

• Entradas:

• conjuntos de tiempos de inicio s y fin f (ordenadas incrementalmente).

• i y n que definen el subproblema Si,n+1 a resolver.

• Salida:

• conjunto más grande de actividades compatibles en Si,n+1.

Thursday, May 25, 17

Page 80: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 13

Algoritmos glotones: problema de selección de tareas compatibles

Thursday, May 25, 17

Page 81: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 14

Algoritmos glotones: problema de selección de tareas compatibles

Thursday, May 25, 17

Page 82: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 15

Algoritmos glotones: problema de selección de tareas compatibles

Thursday, May 25, 17

Page 83: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 15

Algoritmos glotones: problema de selección de tareas compatibles

• RECURSIVE-ACTIVITY-SELECTOR(s,f,i,n)

Thursday, May 25, 17

Page 84: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 15

Algoritmos glotones: problema de selección de tareas compatibles

• RECURSIVE-ACTIVITY-SELECTOR(s,f,i,n)1. m ← i+1

Thursday, May 25, 17

Page 85: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 15

Algoritmos glotones: problema de selección de tareas compatibles

• RECURSIVE-ACTIVITY-SELECTOR(s,f,i,n)1. m ← i+12. while m ≤ n y sm < fi

Thursday, May 25, 17

Page 86: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 15

Algoritmos glotones: problema de selección de tareas compatibles

• RECURSIVE-ACTIVITY-SELECTOR(s,f,i,n)1. m ← i+12. while m ≤ n y sm < fi3. do m ← m+1

Thursday, May 25, 17

Page 87: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 15

Algoritmos glotones: problema de selección de tareas compatibles

• RECURSIVE-ACTIVITY-SELECTOR(s,f,i,n)1. m ← i+12. while m ≤ n y sm < fi3. do m ← m+14. if m ≤ n

Thursday, May 25, 17

Page 88: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 15

Algoritmos glotones: problema de selección de tareas compatibles

• RECURSIVE-ACTIVITY-SELECTOR(s,f,i,n)1. m ← i+12. while m ≤ n y sm < fi3. do m ← m+14. if m ≤ n

5. then return {am} U RECURSIVE-ACTIVITY-SELECTOR(s,f,m,n)

Thursday, May 25, 17

Page 89: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 15

Algoritmos glotones: problema de selección de tareas compatibles

• RECURSIVE-ACTIVITY-SELECTOR(s,f,i,n)1. m ← i+12. while m ≤ n y sm < fi3. do m ← m+14. if m ≤ n

5. then return {am} U RECURSIVE-ACTIVITY-SELECTOR(s,f,m,n)

6. else return NULL.

Thursday, May 25, 17

Page 90: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 16

Algoritmos glotones: problema de selección de tareas compatibles

Thursday, May 25, 17

Page 91: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 16

Algoritmos glotones: problema de selección de tareas compatibles

• Suponiendo que las actividades han sido ordenadas respecto a su tiempo final, el tiempo de ejecución de la llamada RECURSIVE-ACTIVITY-SELECTOR(s,f,0,n) es de Θ(n).

Thursday, May 25, 17

Page 92: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 16

Algoritmos glotones: problema de selección de tareas compatibles

• Suponiendo que las actividades han sido ordenadas respecto a su tiempo final, el tiempo de ejecución de la llamada RECURSIVE-ACTIVITY-SELECTOR(s,f,0,n) es de Θ(n).

• En las llamadas recursivas cada actividad ak se examina una sola vez en el ciclo while de la linea 2.

Thursday, May 25, 17

Page 93: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 16

Algoritmos glotones: problema de selección de tareas compatibles

• Suponiendo que las actividades han sido ordenadas respecto a su tiempo final, el tiempo de ejecución de la llamada RECURSIVE-ACTIVITY-SELECTOR(s,f,0,n) es de Θ(n).

• En las llamadas recursivas cada actividad ak se examina una sola vez en el ciclo while de la linea 2.

• Se puede escribir la versión iterativa (hacerlo de tarea)

Thursday, May 25, 17

Page 94: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 17

Algoritmos glotones: elementos

Thursday, May 25, 17

Page 95: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 17

Algoritmos glotones: elementos

• Los algoritmos glotones obtienen una solución óptima realizando una secuencia de elecciones.

Thursday, May 25, 17

Page 96: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 17

Algoritmos glotones: elementos

• Los algoritmos glotones obtienen una solución óptima realizando una secuencia de elecciones.

• En cada punto del algoritmo se toma la mejor solución en ese momento.

Thursday, May 25, 17

Page 97: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 17

Algoritmos glotones: elementos

• Los algoritmos glotones obtienen una solución óptima realizando una secuencia de elecciones.

• En cada punto del algoritmo se toma la mejor solución en ese momento.

• Para el ejemplo anterior seguimos los pasos:

Thursday, May 25, 17

Page 98: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 17

Algoritmos glotones: elementos

• Los algoritmos glotones obtienen una solución óptima realizando una secuencia de elecciones.

• En cada punto del algoritmo se toma la mejor solución en ese momento.

• Para el ejemplo anterior seguimos los pasos:

• Determinar la estructura subóptima del problema.

Thursday, May 25, 17

Page 99: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 17

Algoritmos glotones: elementos

• Los algoritmos glotones obtienen una solución óptima realizando una secuencia de elecciones.

• En cada punto del algoritmo se toma la mejor solución en ese momento.

• Para el ejemplo anterior seguimos los pasos:

• Determinar la estructura subóptima del problema.

• Desarrollar una solución recursiva.

Thursday, May 25, 17

Page 100: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 17

Algoritmos glotones: elementos

• Los algoritmos glotones obtienen una solución óptima realizando una secuencia de elecciones.

• En cada punto del algoritmo se toma la mejor solución en ese momento.

• Para el ejemplo anterior seguimos los pasos:

• Determinar la estructura subóptima del problema.

• Desarrollar una solución recursiva.

• Probar que, en cualquier punto de la recursión, una de las elecciones óptimas es la opción glotona.

Thursday, May 25, 17

Page 101: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 17

Algoritmos glotones: elementos

• Los algoritmos glotones obtienen una solución óptima realizando una secuencia de elecciones.

• En cada punto del algoritmo se toma la mejor solución en ese momento.

• Para el ejemplo anterior seguimos los pasos:

• Determinar la estructura subóptima del problema.

• Desarrollar una solución recursiva.

• Probar que, en cualquier punto de la recursión, una de las elecciones óptimas es la opción glotona.

• Mostrar que todos excepto uno de los subproblemas inducidos por hacer la elección glotona están vacíos.

Thursday, May 25, 17

Page 102: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 18

Algoritmos glotones: elementos

Thursday, May 25, 17

Page 103: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 18

Algoritmos glotones: elementos

• Desarrollar un algoritmo recursivo que implemente la estrategia glotona.

Thursday, May 25, 17

Page 104: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 18

Algoritmos glotones: elementos

• Desarrollar un algoritmo recursivo que implemente la estrategia glotona.

• Convertir el algoritmo recursivo en uno iterativo.

Thursday, May 25, 17

Page 105: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 19

Algoritmos glotones: elementos

Thursday, May 25, 17

Page 106: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 19

Algoritmos glotones: elementos

• Generalmente se diseña un algoritmo glotón con la opción glotona en mente siguiendo los pasos:

Thursday, May 25, 17

Page 107: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 19

Algoritmos glotones: elementos

• Generalmente se diseña un algoritmo glotón con la opción glotona en mente siguiendo los pasos:

• Especificar el problema de manera que al hacer una elección quede solo un subproblema por resolver.

Thursday, May 25, 17

Page 108: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 19

Algoritmos glotones: elementos

• Generalmente se diseña un algoritmo glotón con la opción glotona en mente siguiendo los pasos:

• Especificar el problema de manera que al hacer una elección quede solo un subproblema por resolver.

• Probar que siempre hay una solución optima al problema original tomando la opción glotona.

Thursday, May 25, 17

Page 109: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 19

Algoritmos glotones: elementos

• Generalmente se diseña un algoritmo glotón con la opción glotona en mente siguiendo los pasos:

• Especificar el problema de manera que al hacer una elección quede solo un subproblema por resolver.

• Probar que siempre hay una solución optima al problema original tomando la opción glotona.

• Demostrar que, una vez tomada la opción glotona, lo que resulta es un subproblema con la propiedad que si se combinan las solución óptima del subproblema con la elección glotona se puede llegar a la solución óptima del problema original.

Thursday, May 25, 17

Page 110: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 19

Algoritmos glotones: elementos

• Generalmente se diseña un algoritmo glotón con la opción glotona en mente siguiendo los pasos:

• Especificar el problema de manera que al hacer una elección quede solo un subproblema por resolver.

• Probar que siempre hay una solución optima al problema original tomando la opción glotona.

• Demostrar que, una vez tomada la opción glotona, lo que resulta es un subproblema con la propiedad que si se combinan las solución óptima del subproblema con la elección glotona se puede llegar a la solución óptima del problema original.

• La elección glotona no depende de la resolución del subproblema.

Thursday, May 25, 17

Page 111: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 20

Algoritmos glotones: elementos

Thursday, May 25, 17

Page 112: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 20

Algoritmos glotones: elementos

• No hay una forma general para decir si la solución glotona es optima pero los ingredientes principales son:

Thursday, May 25, 17

Page 113: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 20

Algoritmos glotones: elementos

• No hay una forma general para decir si la solución glotona es optima pero los ingredientes principales son:

• Propiedad de la opción glotona: Una solución optima globalmente se puede alcanzar realizando la elección optima localmente.

Thursday, May 25, 17

Page 114: Algoritmos glotones (2)alram/comp_algo/clase26.pdf · Alonso Ramírez Manzanares Computación y Algoritmos 23.05 2 Algoritmos glotones • Algoritmos utilizados en problemas de optimización

Alonso Ramírez Manzanares Computación y Algoritmos 23.05 20

Algoritmos glotones: elementos

• No hay una forma general para decir si la solución glotona es optima pero los ingredientes principales son:

• Propiedad de la opción glotona: Una solución optima globalmente se puede alcanzar realizando la elección optima localmente.

• Exhibe Subestructura óptima

Thursday, May 25, 17