Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf ·...

Post on 23-Jun-2020

7 views 0 download

Transcript of Fundamentos de la Computación TC4001cb.mty.itesm.mx/tc4001/tc4001-np-completos-heuristicas.pdf ·...

Heurísticas TC4001 - p. 1/49

Fundamentos de la ComputaciónTC4001

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

ITESM

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

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.

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.

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.

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.

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.

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.

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.

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.

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.

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,

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))

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) ≤ ∞.

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}

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.

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}

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.

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.

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

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 )

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

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).

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.

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:

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.

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.

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.

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

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

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.

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

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

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.

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

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.

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

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)

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.

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|

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 .

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 .

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

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

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|

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.

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.

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.

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.

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.

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.

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.

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

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

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):

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.

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.

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];

}}

}

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}

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.

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.

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.

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.

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.

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.

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.

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.

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).

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)

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.

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:

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.

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.

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.

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.

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

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

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

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.

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.

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

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

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

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

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

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

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)

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

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.

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.

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.