fundamentos de la computación tc4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf ·...

91
Heurísticas TC4001 - p. 1/49 Fundamentos de la Computación TC4001 Algoritmos de Aproximación Centro de Manufactura / Departamento de Matemáticas ITESM

Upload: others

Post on 23-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

Heurísticas TC4001 - p. 1/49

Fundamentos de la ComputaciónTC4001

Algoritmos de AproximaciónCentro de Manufactura / Departamento de Matemáticas

ITESM

Page 2: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 2/49

Agenda

■ Concepto de Heurística■ Calidad de una Heurística■ Heurísticas para el problema de la cubierta de

vértices■ Heurísticas para el problema del llenado de

cajones■ Heurísticas para el problema del vendedor

viajero

Page 3: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 3/49

Ideas

■ Los problemas interesantes son, en general, deltipo NP-Completo.

Page 4: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 3/49

Ideas

■ Los problemas interesantes son, en general, deltipo NP-Completo.

■ En general, son tan importantes como paraabandonarlos al ser intratable la búsqueda deuna solución óptima.

Page 5: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 3/49

Ideas

■ Los problemas interesantes son, en general, deltipo NP-Completo.

■ En general, son tan importantes como paraabandonarlos al ser intratable la búsqueda deuna solución óptima.

■ Si el problema es pequeño, un algoritmo aunquecorra en tiempo exponencial puede sersatisfactorio.

Page 6: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 3/49

Ideas

■ Los problemas interesantes son, en general, deltipo NP-Completo.

■ En general, son tan importantes como paraabandonarlos al ser intratable la búsqueda deuna solución óptima.

■ Si el problema es pequeño, un algoritmo aunquecorra en tiempo exponencial puede sersatisfactorio.

■ A veces es posible que soluciones cercanas alóptimo hagan sentido y tengan un valor práctico.

Page 7: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 4/49

Algoritmos de Aproximación o Heurística

■ Un algoritmo que regresa soluciones cercanas alóptimo en tiempo polinomial se llamaráAlgoritmo de Aproximación o Heurística.

Page 8: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 4/49

Algoritmos de Aproximación o Heurística

■ Un algoritmo que regresa soluciones cercanas alóptimo en tiempo polinomial se llamaráAlgoritmo de Aproximación o Heurística.

■ Una solución factible es un objeto del tipocorrecto pero que no necesariamente es óptimo.

Page 9: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 4/49

Algoritmos de Aproximación o Heurística

■ Un algoritmo que regresa soluciones cercanas alóptimo en tiempo polinomial se llamaráAlgoritmo de Aproximación o Heurística.

■ Una solución factible es un objeto del tipocorrecto pero que no necesariamente es óptimo.Si P es un problema específico e I es unainstancia de P, FS(I) designa al conjunto desoluciones factibles.

Page 10: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 4/49

Algoritmos de Aproximación o Heurística

■ Un algoritmo que regresa soluciones cercanas alóptimo en tiempo polinomial se llamaráAlgoritmo de Aproximación o Heurística.

■ Una solución factible es un objeto del tipocorrecto pero que no necesariamente es óptimo.Si P es un problema específico e I es unainstancia de P, FS(I) designa al conjunto desoluciones factibles.

■ Una función de valor val(I, x) es una función queregresa el número que representa el parámetroa optimizar de la solución x para la instancia deproblema I.

Page 11: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 5/49

Calidad de una Heurística

Sea A un algoritmo de aproximación, A(I)denotará la solución factible que regresa elalgoritmo A con la instancia de problema I.

Page 12: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 5/49

Calidad de una Heurística

Sea A un algoritmo de aproximación, A(I)denotará la solución factible que regresa elalgoritmo A con la instancia de problema I. Sedefine rA(I) como

rA(I) =val(I,A(I))

opt(I)

para problemas de minimización,

Page 13: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 5/49

Calidad de una Heurística

Sea A un algoritmo de aproximación, A(I)denotará la solución factible que regresa elalgoritmo A con la instancia de problema I. Sedefine rA(I) como

rA(I) =val(I,A(I))

opt(I)

para problemas de minimización, y paraproblemas de maximización:

rA(I) =opt(I)

val(I,A(I))

Page 14: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 5/49

Calidad de una Heurística

Sea A un algoritmo de aproximación, A(I)denotará la solución factible que regresa elalgoritmo A con la instancia de problema I. Sedefine rA(I) como

rA(I) =val(I,A(I))

opt(I)

para problemas de minimización, y paraproblemas de maximización:

rA(I) =opt(I)

val(I,A(I))

Note que 1 ≤ rA(I) ≤ ∞.

Page 15: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 6/49

Indicadores de Calidad:

RA(m) = max {rA(I) | opt(I) = m}

Page 16: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 6/49

Indicadores de Calidad:

RA(m) = max {rA(I) | opt(I) = m}

Lo peor que se puede desempeñar la heurísticaA cuando el óptimo tiene valor m.

Page 17: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 6/49

Indicadores de Calidad:

RA(m) = max {rA(I) | opt(I) = m}

Lo peor que se puede desempeñar la heurísticaA cuando el óptimo tiene valor m.Y

SA(m) = max {rA(I) | tamaño de I es n}

Page 18: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 6/49

Indicadores de Calidad:

RA(m) = max {rA(I) | opt(I) = m}

Lo peor que se puede desempeñar la heurísticaA cuando el óptimo tiene valor m.Y

SA(m) = max {rA(I) | tamaño de I es n}

Lo peor que se puede desempeñar la heurísticaA cuando el tamaño de la entrada es n.

Page 19: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 7/49

Cubierta de Vértices

Sea G = (V,E) un grafo no dirigido.

Page 20: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 7/49

Cubierta de Vértices

Sea G = (V,E) un grafo no dirigido. Una cubiertade vértices para G

Page 21: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 7/49

Cubierta de Vértices

Sea G = (V,E) un grafo no dirigido. Una cubiertade vértices para G es un subconjunto de vérticesde V , digamos V ′ (V ′ ⊆ V )

Page 22: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 7/49

Cubierta de Vértices

Sea G = (V,E) un grafo no dirigido. Una cubiertade vértices para G es un subconjunto de vérticesde V , digamos V ′ (V ′ ⊆ V ) tal que si (v, u) es unlado cualquiera de G, entonces

Page 23: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 7/49

Cubierta de Vértices

Sea G = (V,E) un grafo no dirigido. Una cubiertade vértices para G es un subconjunto de vérticesde V , digamos V ′ (V ′ ⊆ V ) tal que si (v, u) es unlado cualquiera de G, entonces v ∈ V ′ o bienu ∈ V ′ (o ambos).

Page 24: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 7/49

Cubierta de Vértices

Sea G = (V,E) un grafo no dirigido. Una cubiertade vértices para G es un subconjunto de vérticesde V , digamos V ′ (V ′ ⊆ V ) tal que si (v, u) es unlado cualquiera de G, entonces v ∈ V ′ o bienu ∈ V ′ (o ambos).El problema de la cubierta de vértices consistedado un grafo G = (V,E) en encontrar unacubierta de vértices para G que tenga el menornúmero de vértices posible.

Page 25: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 8/49

El problema de la cubierta de vértices es unproblema NP-Difícil debido a que la versión dedecisión de él es un problema NP-Completo:

Page 26: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 8/49

El problema de la cubierta de vértices es unproblema NP-Difícil debido a que la versión dedecisión de él es un problema NP-Completo: Elproblema del Clique se transforma en el problemade la cubierta de vértices.

Page 27: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 8/49

El problema de la cubierta de vértices es unproblema NP-Difícil debido a que la versión dedecisión de él es un problema NP-Completo: Elproblema del Clique se transforma en el problemade la cubierta de vértices. V ′(⊆ V ) es una cubiertapara G ssi V − V ′ es un clique para G.

Page 28: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 8/49

El problema de la cubierta de vértices es unproblema NP-Difícil debido a que la versión dedecisión de él es un problema NP-Completo: Elproblema del Clique se transforma en el problemade la cubierta de vértices. V ′(⊆ V ) es una cubiertapara G ssi V − V ′ es un clique para G.

Page 29: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 9/49

PLE para CV

El problema de la cubierta de vértices se puedeformular mediante PLE: Sea G = (V,E) un grafo.Digamos que n = |V | y m = |E|. Para cadaelemento vi de V definimos una variable binaria xi

de forma que su valor es 1 si vi pertenece a lacubierta, 0 si no. Nuestro propósito consiste enminimizar el total de vértices en la cubierta:

Minn∑

i=1

xi

La restricción es la de cubrir todos los lados: esdecir, para cada lado e = (vi, vj) en E al menos unvértice esté en la cubierta:

∀ek = (vi, vj) ∈ E, xi + xj ≥ 1

Page 30: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 10/49

MODEL:SETS:

VERTEX /1..6/: V;EDGE (VERTEX, VERTEX): E;

ENDSETS

DATA :E = 0 1 0 0 1 1

1 0 1 1 1 00 1 0 1 1 00 1 1 0 1 11 1 1 1 0 01 0 0 1 0 0;

ENDDATA

MIN = @SUM(VERTEX: V);@FOR(VERTEX: @BIN(V));@FOR(EDGE(I,J)| E(I,J) #GT# 0:

V(I)+V(J) >= 1);

END

Page 31: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 11/49

Heurística 1 para CV

CVH1(G)1 C ← ∅2 E ′ ← E[G]3 while E ′ 6= ∅4 do sea (u, v) un lado arbitrario en E ′

5 C ← C ∪ {u, v}6 remueva de E ′ todo lado incidente a u o a v.7 return C.

Page 32: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 11/49

Heurística 1 para CV

CVH1(G)1 C ← ∅2 E ′ ← E[G]3 while E ′ 6= ∅4 do sea (u, v) un lado arbitrario en E ′

5 C ← C ∪ {u, v}6 remueva de E ′ todo lado incidente a u o a v.7 return C.Ejemplo

a b c d

e f g

Page 33: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 12/49

Resultado sobre CVH1

Teorema

rCV H1(I) ≤ 2

Page 34: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 12/49

Resultado sobre CVH1

Teorema

rCV H1(I) ≤ 2

■ Todo lado de E es cubierto por algún vértice deC; C es cubierta.

■ El número de vértices en C es el doble delnúmero de iteraciones en el ciclo. Cada iteracióntiene que ver con la selección de un lado:digamos que el conjunto de lados seleccionadoses E1 (E1 ⊆ E[G]). Los lados de E1 no tienenningún vértice en común. Cualquier cubiertapara G deberá cubrir los lados de E1: por tanto,el número de vértices de cualquier cubiertaóptima C∗ debe ser por lo menos el número deelementos de E1.

Page 35: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 13/49

Por tanto,|C| = 2|E1| ≤ 2|C∗|

De donde|C|

|C∗|≤ 2

Page 36: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 14/49

Heurística 2 para CV

CVH2(G)1 C ← ∅2 Go ← G3 i← 04 while Gi tenga un lado3 i← i+ 13 vi ← el vértice de Gi−1 con grado máximo3 di ← degGi

(grado de vi en Gi−1)3 Gi ← Gi−1−{todos lados incidentes en vi}6 C ← C ∪ {ui}8 return C.

Page 37: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 14/49

Heurística 2 para CV

CVH2(G)1 C ← ∅2 Go ← G3 i← 04 while Gi tenga un lado3 i← i+ 13 vi ← el vértice de Gi−1 con grado máximo3 di ← degGi

(grado de vi en Gi−1)3 Gi ← Gi−1−{todos lados incidentes en vi}6 C ← C ∪ {ui}8 return C.Ejemplo

a b c d

e f g

Page 38: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 15/49

Resultado sobre CVH2

Teorema

rCV H2(I) ≤ log(n)

Page 39: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 15/49

Resultado sobre CVH2

Teorema

rCV H2(I) ≤ log(n)

Sea |Gi| el número de lados de Gi y C∗ unacubierta óptima de G con OPT vértices. Por tanto,C∗ es cubierta para toda Gi.

Page 40: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 15/49

Resultado sobre CVH2

Teorema

rCV H2(I) ≤ log(n)

Sea |Gi| el número de lados de Gi y C∗ unacubierta óptima de G con OPT vértices. Por tanto,C∗ es cubierta para toda Gi. Por tanto,

v∈C∗

degGi(v) ≥ |Gi−1|

Page 41: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 15/49

Resultado sobre CVH2

Teorema

rCV H2(I) ≤ log(n)

Sea |Gi| el número de lados de Gi y C∗ unacubierta óptima de G con OPT vértices. Por tanto,C∗ es cubierta para toda Gi. Por tanto,

v∈C∗

degGi(v) ≥ |Gi−1|

Por tanto, el promedio de los grados en Gi decualquier nodo en G∗ es al menos |Gi−1|/OPT .

Page 42: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 15/49

Resultado sobre CVH2

Teorema

rCV H2(I) ≤ log(n)

Sea |Gi| el número de lados de Gi y C∗ unacubierta óptima de G con OPT vértices. Por tanto,C∗ es cubierta para toda Gi. Por tanto,

v∈C∗

degGi(v) ≥ |Gi−1|

Por tanto, el promedio de los grados en Gi decualquier nodo en G∗ es al menos |Gi−1|/OPT .Por tanto, debe haber un nodo en Gi−1 con gradoal menos |Gi−1|/OPT .

Page 43: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 15/49

Resultado sobre CVH2

Teorema

rCV H2(I) ≤ log(n)

Sea |Gi| el número de lados de Gi y C∗ unacubierta óptima de G con OPT vértices. Por tanto,C∗ es cubierta para toda Gi. Por tanto,

v∈C∗

degGi(v) ≥ |Gi−1|

Por tanto, el promedio de los grados en Gi decualquier nodo en G∗ es al menos |Gi−1|/OPT .Por tanto, debe haber un nodo en Gi−1 con gradoal menos |Gi−1|/OPT . Como di es máximo gradoen Gi−1, entonces:

di ≥|Gi−1|

OPT≥|Gi|

OPT

Page 44: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

Heurísticas TC4001 - p. 16/49

Por tanto,

OPT∑

i=1

di ≥OPT∑

i=1

|Gi|

OPT≥

OPT∑

i=1

|GOPT |

OPT= |GOPT | = |G| −

OPT∑

i=1

di

Page 45: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

Heurísticas TC4001 - p. 16/49

Por tanto,

OPT∑

i=1

di ≥OPT∑

i=1

|Gi|

OPT≥

OPT∑

i=1

|GOPT |

OPT= |GOPT | = |G| −

OPT∑

i=1

di

AsíOPT∑

i=1

di ≥ 1/2|G|

Page 46: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

Heurísticas TC4001 - p. 16/49

Por tanto,

OPT∑

i=1

di ≥OPT∑

i=1

|Gi|

OPT≥

OPT∑

i=1

|GOPT |

OPT= |GOPT | = |G| −

OPT∑

i=1

di

AsíOPT∑

i=1

di ≥ 1/2|G|

Por tanto, en las primeras OPT iteraciones el algoritmomínimo reduce el número de lados a la mitad.

Page 47: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

Heurísticas TC4001 - p. 16/49

Por tanto,

OPT∑

i=1

di ≥OPT∑

i=1

|Gi|

OPT≥

OPT∑

i=1

|GOPT |

OPT= |GOPT | = |G| −

OPT∑

i=1

di

AsíOPT∑

i=1

di ≥ 1/2|G|

Por tanto, en las primeras OPT iteraciones el algoritmomínimo reduce el número de lados a la mitad. Por tanto, enlas primeras OPT log |G| iteraciones se habrán removidotodos los lados.

Page 48: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

Heurísticas TC4001 - p. 16/49

Por tanto,

OPT∑

i=1

di ≥OPT∑

i=1

|Gi|

OPT≥

OPT∑

i=1

|GOPT |

OPT= |GOPT | = |G| −

OPT∑

i=1

di

AsíOPT∑

i=1

di ≥ 1/2|G|

Por tanto, en las primeras OPT iteraciones el algoritmomínimo reduce el número de lados a la mitad. Por tanto, enlas primeras OPT log |G| iteraciones se habrán removidotodos los lados. Por tanto, CVH2 determina una cubierta cona lo más OPT log |G| vértices.

Page 49: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 17/49

Tarea:■ Encuentre un grafo que al aplicarle CVH1 dé una

CV con el doble de vértices de CV óptima.■ Encuentre un grafo que al aplicarle CVH2 dé una

CV con más del doble de vértices de una CVóptima.

■ Dé un algoritmo greedy que corra en tiempolineal y encuentre una CV óptima en caso deque el grafo un árbol.

Page 50: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 18/49

Llenado de Cajones

■ El problema: Sea un conjunto con n objetos detamaño s1, s2, s3, . . . , sn donde 1 < si ≤ 1, para1 ≤ i ≤ n.

Page 51: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 18/49

Llenado de Cajones

■ El problema: Sea un conjunto con n objetos detamaño s1, s2, s3, . . . , sn donde 1 < si ≤ 1, para1 ≤ i ≤ n. El problema consiste en empacar losn objetos en el menor número posible decajones, donde cada cajón tiene capacidad 1.

Page 52: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 18/49

Llenado de Cajones

■ El problema: Sea un conjunto con n objetos detamaño s1, s2, s3, . . . , sn donde 1 < si ≤ 1, para1 ≤ i ≤ n. El problema consiste en empacar losn objetos en el menor número posible decajones, donde cada cajón tiene capacidad 1.

■ El número de posibles formas de empacar los n

objetos en a lo más n cajones es (n/2)n/2.

Page 53: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 19/49

PLE para Llenado de Cajones

■ Variables de Decisi on

◆ yj si el cajón j es usado.◆ xij si el objeto i es acomodado en la cajón j.

■ Funci on objetivo Minimizar el total de cajones usados:

Minn∑

j=1

yj

■ Restricciones

◆ Cada objeto debe ir en exactamente un cajón.

∀i,n∑

j=1

xij = 1

◆ En cada cajón, no se debe exceder la capacidad:

∀j,n∑

i=1

wi xij ≤ yj

Page 54: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 20/49

MODEL:SETS:

COSA /1..4/: W;CAJA /1..4/: Y;ESTA(COSA,CAJA): X;

ENDSETS

DATA :W = 0.8 0.5 0.2 0.4 ;

ENDDATA

MIN = @SUM(CAJA: Y);@FOR(CAJA: @BIN(Y));@FOR(ESTA: @BIN(X));@FOR(COSA(I):

@SUM(CAJA(J): X(I,J)) = 1);@FOR(CAJA(J):

@SUM(COSA(I): W(I)*X(I,J)) <= Y(J));

END

Page 55: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 21/49

Heurística FFD

Heurística de llenado de cajones Primer AjusteDecreciente (First Fit Decreasing):

Page 56: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 21/49

Heurística FFD

Heurística de llenado de cajones Primer AjusteDecreciente (First Fit Decreasing):

Idea: Coloca los objetos en forma ordenadadel que ocupa el mayor espacio al que ocupael menor.

Page 57: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 21/49

Heurística FFD

Heurística de llenado de cajones Primer AjusteDecreciente (First Fit Decreasing):

Idea: Coloca los objetos en forma ordenadadel que ocupa el mayor espacio al que ocupael menor. El objeto se acomoda en el primercajón donde quepa.

Page 58: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 21/49

Heurística FFD

Heurística de llenado de cajones Primer AjusteDecreciente (First Fit Decreasing):

Idea: Coloca los objetos en forma ordenadadel que ocupa el mayor espacio al que ocupael menor. El objeto se acomoda en el primercajón donde quepa.

LlenadoFFD(float S[], int n, float Usado[], int Cajon[])Ordenar(S,n);

for (objeto=1 ; objeto <= n; objeto++) {for (cajon=1 ; cajon <= n; cajon++) {

if (Usado[cajon]+S[objeto] <= 1.0) {Cajon[objeto] = cajon;Usado[cajon] = Usado[cajon] + S[objeto];

}}

}

Page 59: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 22/49

Ejemplo 1

Considere el problema de llenado de cajones con

S = {0.8, 0.5, 0.4, 0.4, 0.3, 0.2, 0.2, 0.2}

Page 60: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 23/49

Resultados sobreFFD

Lema 1 :Sea S = (s1, s2, . . . , sn) una entrada en orden no

creciente para el problema de llenado de cajones ysea opt(S) el número óptimo de cajones para S.Todos los objetos colocados por FFD en cajonesextra tienen tamaño menor o igual que 1/3.Sea i el primer objeto colocado por FFD en el cajon opt(S) + 1.Razone por contradicción: suponga que si > 1/3. Comos1 ≥ s2 ≥ s3 ≥ . . . ≥ si > 1/3. Sea k ≥ 0 el entero mayor tal quesk > 1/2. Así si para i = 1, . . . , k entrarán en un solo cajón;mientras que los sj para j = k + 1, . . . , i− 1 entrarán 2 en un cajónpues tendrán un tamaño 1/3 < sj < 1/2. Por tanto, es imposibleacomodar los objetos s1, . . . , si en opt(S) cajones.

Page 61: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 24/49

Lema 2 :Sea S = (s1, s2, . . . , sn) una entrada en orden nocreciente para el problema de llenado de cajones ysea opt(S) el número óptimo de cajones para S. Elnúmero de cajones extra requerido por FFD escuando más opt(S)− 1.Puesto que todos los objetos caben en opt(S) cajones,∑n

i=1 si ≤ opt(S). Razonemos por contradicción. Suponga queFFD coloca opt(S) objetos en cajones adicionales a opt(S) ydigamos que sus tamaños son t1, t2, . . . , topt(S). Sea bj elcontenido final del cajón Bj . Si bj + tj ≤ 1, el objeto tj hubieracabido en el cajón Bj y FFD lo hubiera acomodado allí. Por tanto,bj + tj > 1. Así

n∑

i=1

si ≥

opt(S)∑

j=1

bj +

opt(S)∑

j=1

tj =

opt(S)∑

j=1

(bj + tj) > opt(S)

lo cual es imposible.

Page 62: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 25/49

Teorema :RFFD(m) ≤ (4/3) + (1/(3m)) y SFFD(n) ≤ 3/2.Sea S = (s1, s2, . . . , sn) una entrada tal que opt(S) = m. Por ellema 2, FFD no coloca más de m− 1 objetos en cajones extra. Porel lema 1, tales objetos tienen un tamaño no mayor de 1/3 y portanto caben al menos 3 en un cajón. Así el número de cajonesusados por FFD sería a lo más m+ ⌈(m− 1)/3⌉ cajones. Por tanto

rFFD(S) ≤m+ ⌈(m− 1)/3⌉

m≤ 1 +

m+ 1

3m=

4

3+

1

3m

Así RFFD ≤ 4/3 + 1/(3m).

Para una entrada de tamaño n, rFFD(S) es máximo cuando m = 2

por tanto SFFD(n) ≤ 4/3 + 1/6 = 3/2.

Page 63: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 26/49

Otras Heurísticas

■ Heurıstica del mejor Ajuste :Un objeto se pone en el cajón que es el máslleno entre los cajones donde cabe.

Page 64: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 26/49

Otras Heurísticas

■ Heurıstica del mejor Ajuste :Un objeto se pone en el cajón que es el máslleno entre los cajones donde cabe. Cuando losobjetos se ordenan el desempeño es similar aFFD.

Page 65: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 26/49

Otras Heurísticas

■ Heurıstica del mejor Ajuste :Un objeto se pone en el cajón que es el máslleno entre los cajones donde cabe. Cuando losobjetos se ordenan el desempeño es similar aFFD.

■ Heurıstica del Ajuste Siguiente :Los objetos no se ordenan y se llena un cajón ala vez.

Page 66: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 26/49

Otras Heurísticas

■ Heurıstica del mejor Ajuste :Un objeto se pone en el cajón que es el máslleno entre los cajones donde cabe. Cuando losobjetos se ordenan el desempeño es similar aFFD.

■ Heurıstica del Ajuste Siguiente :Los objetos no se ordenan y se llena un cajón ala vez. Los objetos se acomodan en el cajónactual hasta que no cabe ningún objeto más. Encaso de haber un objeto sin acomodo se abreotro cajón.

Page 67: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 27/49

Tarea:■ Construya un ejemplo para el problema de

llenado de cajones tal que el algoritmo FFD use3 cajones y el óptimo sea 2.

■ Contruya una sucesión infinita de ejemplos It,donde It tiene nt objetos tales quen1 < n2 < n3 < · · · < nt y opt(Ii) = 2 pero FFDusa 3 cajones.

■ Escriba un programa en C que implemente elalgoritmo de mejor ajuste decreciente. Indique elorden en el peor caso.

Page 68: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 28/49

El problema del vendedor viajero

Sea G = (V,E, d) un grafo con peso. El problemadel vendedor viajero consiste en encontrar un ciclode Hamilton (camino que pasa por cada vérticeintermedio exactamente una vez y regresa alvértice de partida) de mínimo peso total (No existeciclo de Hamilton con un peso menor).

Page 69: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 29/49

PLE para TSP

■ Variables de Decisi on

xij si el lado del nodo i al nodo j está en el ciclo de Hamilton.

■ Objetivo

Minn∑

i=1

j 6=i

dij xij

■ Restricciones:◆ Entra una vez al nodo i: ∀j,

∑n

j=1 xji = 1

◆ Sale una vez del nodo i: ∀j,∑n

j=1 xij = 1

◆ Eliminación de subciclos (Tucker, 1960):

∀i, j(i 6= j), ui − uj + nxij ≤ n− 1

(Página 309 del libro de Papadimitriou: CombinatorialOptimization, Prentice Hall 1982)

Page 70: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 30/49

Heurísticas TSP

Se asume un grafo completo G = (V,E, d) donde des una función distancia entre vértices.■ Heurıstica del vecino m as cercano (NN) :

Se elige un vértice arbitrario j1. Y se tiene latrayectoria j1. Supongamos construida latrayectoria j1, j2, . . . ,jk. Se elige el vértice queestá más cercano a jk y que no está en latrayectoria. Se continua hasta añadir todos losvértices.

Page 71: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 31/49

Heurıstica del eslab on m as corto :Se van eligiendo lado por lado; primeroconsiderando los más pequeños y cuidando queno se formen ciclos ni vértices con tres lados:

Page 72: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 31/49

Heurıstica del eslab on m as corto :Se van eligiendo lado por lado; primeroconsiderando los más pequeños y cuidando queno se formen ciclos ni vértices con tres lados:1 R← E; // R contiene los lados restantes.

2 C ← ∅; // C contiene los lados del ciclo.

3 while (R 6= ∅) do {

4 Quitar el lado más pequeño de R, (v, w)

5 if ((v, w) no forma ciclos en C) and

6 ((v, w) no es el tercer lado incidente en v o en w)

7 then

7 añadir (v, w) a C.

9 Añadir la arista que conecta los extremos de C.

Page 73: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 32/49

Heurıstica de la Inserci on m as cercana :Dado un subtour T y un vértice j en V − T . Sea

d(j, T ) = mınk∈T

djk

y sea j∗ la que minimiza d(j, T ). Y sea k∗ la queminimiza dj∗k. Entonces j∗ es el vértice “máscercano” a T , y k∗ es el nodo en T más cercano aj∗. Construir un subtour en T ∪ {j∗} insertando k∗

entre j∗ y uno de sus dos vecinos en T .Proceder iterativamente hasta construir un tourcompleto.

Page 74: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 33/49

Heurıstica MST doble■ Encontrar un MST de G.■ Duplicar cada arista e ∈ E y construir un ciclo

Euleriano Q en el grafo resultante.■ Extraer un tour T en G a partir de Q,

suprimiendo las repeticiones de vértices.

Page 75: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 33/49

Heurıstica MST doble■ Encontrar un MST de G.■ Duplicar cada arista e ∈ E y construir un ciclo

Euleriano Q en el grafo resultante.■ Extraer un tour T en G a partir de Q,

suprimiendo las repeticiones de vértices.

Resultado

Un multigrafo G = (V,E) es Euleriano (Tieneun circuito de Euler) si y sólo si■ G es conexo, y■ todos los nodos de V tienen grado par.

Page 76: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 34/49

1

2

3

4

5

6

7

8

9

10

Page 77: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 35/49

1

2

3

4

5

6

7

8

9

10

Page 78: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 36/49

1

2

3

4

5

6

7

8

9

10

Page 79: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 37/49

Teorema

Si las distancias son no negativas y sesatisface la desigualdad del triángulo,entonces, cualquier tour producido por laheurística MST doble tiene una longitud nomayor al doble de la longitud de un touróptimo.

Page 80: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 38/49

MST-Apareamiento Mınimo■ Construir un MST■ Considerar únicamente aquellos vértices de

grado impar en el MST resultante (un númeropar)

■ Construir un apareamiento de peso mínimo■ Construir un grafo Euleriano■ Extraer un tour T en G, suprimiendo las

repeticiones de vértices.

Page 81: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 39/49

1

2

3

4

5

6

7

8

9

10

Page 82: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 40/49

1

2

3

4

5

6

7

8

9

10

Page 83: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 41/49

1

2

3

4

5

6

7

8

9

10

Page 84: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 42/49

1

2

3

4

5

10

Page 85: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 43/49

1

2

3

4

5

10

Page 86: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 44/49

1

2

3

4

5

6

7

8

9

10

Page 87: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 45/49

Teorema Sea MM(I) la longitud del tour obtenidopor la heurística MST-Apereamento mínimo, ET elpeso del MST y opt(I) la longitud del óptimo.■ MM(I) ≤ 1/2opt(I)

■ ET ≤ opt(I)

■ MM(I) + ET ≤ 3/2opt(I)

Page 88: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 46/49

Ejemplo 2

Page 89: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 47/49

Aproximar el TSP es difícil

Si eliminamos la hipótesis de la desigualdad deltriángulo ya no se puede dar una garantía deaproximación.Teorema

Si existe una K , y un algoritmo polinomial Atal que

val(I, A(I)) ≤ K opt(I)

entonces P = NP.

Page 90: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 48/49

Supongamos que existe un algoritmo polinomial Acon esta propiedad. Entonces afirmamos que estealgoritmo nos permite resolver HC en tiempopolinomial. Dado un grafo, G = (V,E), construimosun grafo completo G′ dando peso de 1 a las aristasoriginales y peso Kn a las que no están.Entonces, si el grafo original contiene un ciclohamiltoniano, el grafo completo contiene un tourde longitud mínima n. Aplicando el algoritmo aeste grafo, se obtiene una solución con longitud≤ Kn. En otro caso, cualquier tour contiene unarco de longitud Kn, y por lo tanto la soluciónóptima tiene longitud > Kn. Así que el grafocontiene un ciclo hamiltoniano, si y sólo si lasolución es menor o igual que Kn.

Page 91: Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf · CVH1 Heur´ıstica 2 para CV Resultado sobre CVH2 Llenado de Cajones PLE Cajones

AgendaIdeasHeurısticaCalidadCubierta deVerticesPLE para CVHeurıstica 1 paraCVResultado sobreCVH1Heurıstica 2 paraCVResultado sobreCVH2Llenado deCajonesPLE CajonesCajones: FFDEjemplo 1Resultados FFDOtras HeurısticasTSPPLE paraTSPHeurısticas TSPEjemplo 2Aproximar TSP esdifıcil

Heurísticas TC4001 - p. 49/49

Tarea:■ Invente un ejemplo de un grafo con peso para el

cual la estrategia del vecino más cercano generauna solución más corta que la estrategia deleslabón más corto.

■ Implemente en un programa C las heurísticas deldoble MST y del MST-MM.