240 likes | 620 Views
Algoritmos Aproximados TSP – CoBertura de Conjuntos. Carmen Vasquez. Agenda. Algoritmos Aproximados Algoritmo aproximado para TSP Algoritmo aproximado para Cobertura de Conjuntos. Antecedentes. P : Clase a la que pertenecen los problemas resolubles en tiempo polinomial .
E N D
AlgoritmosAproximadosTSP – CoBertura de Conjuntos Carmen Vasquez
Agenda • AlgoritmosAproximados • Algoritmoaproximadopara TSP • AlgoritmoaproximadoparaCobertura de Conjuntos
Antecedentes • P : Clase a la quepertenecen los problemasresolubles en tiempopolinomial. • NP: Clase a la quepertenecen los problemasverificables en tiempopolinomial. • ¿P=NP? • ¿Quéhacemosmientrasaveriguamos la respuesta? • Usamosheurísticasquenosofrezcansolucionescercanas a la optimalidad
Algoritmos aproximados • Algoritmoseficientes (tiempopolinomial). • Para todainstancia del problema, la soluciónqueofrece el algoritmoestáacotadapor un factor del valor óptimo. • Radio de aproximación: factor comparado con el óptimo
Problema TSP • Dado un númerofinito de ciudades y el costo de viajar entre cada par de ciudades, encontrar la forma máseconómica de visitartodaslasciudades y retornar al punto de inicio. • Características: • Los costos de viaje son simétricos • Formalización: • Entrada: Grafo no dirigido, G=(V,E) , c:E -> Z+ • Objetivo: Encontrar un “tour” (ciclohamiltoniano) de costomínimo
¿Porqué resolver TSP? • ¿Porquéesteproblemaesinteresante? • Problemasrelacionados con Transporte y distribución • Recolección de monedas • Programa Starlight • Cadenasuniversales de ADN • http://www.tsp.gatech.edu
TSP con la desigualdad del triángulo • Tambiénconocidocomo Metric-TSP • Basado en el principio de desigualdad del triangulo de Euclides: c(u,w)<=c(u,v)+c(v,w) • Este problemaes NP Completo, aúnsirequerimosque la función de costosatisfaga la desigualdad del triángulo, por lo quebuscaremos un buenalgoritmo de aproximación
Solución basada en árboles cobertores de costo mínimo • Grafo G(V,E) no dirigido • Ejemplo de árbol cobertor de costo mínimo para G
Algoritmoaproximadobasado en árbolescobertores de costomínimo • APPROX-TSP-TOUR(G, c“) • 1 Seleccione un vérticer en V [G] como “raíz” • 2 Calcule un árbolcobertor de costomínimoT para G desde r • 3 Sea L la lista de vertices visitados en el árbol en un recorrido DFS, eliminando los duplicados • 4 retorne el ciclohamiltonianoH quevisita los vertices en orden L
Algoritmo de kruskal • Comienza con los nodos desconectados, y considera un ordenamiento de las aristas no decreciente en costo • 1 T <- {} , E<- E(G), E’ secuencia de E ordenada por costo • 2 Mientras T no sea árbol cobertor de G y E’<>{} • 3 e<- Siguiente arista de E • 4 E’ <- E’-e • 5 Si T+E no posee ciclos • 6 T<- T+e
Radio de aproximación • El algoritmopropuestoes 2-aproximado • Sea H* el tour óptimo, y T un árbol cobertor de costo mínimo • C(T) <= C(H*) • Dado que un recorrido DFS pasa por cada arista de T exactamente 2 veces • C(W) <= 2C(T) y entonces C(W) <= 2C(H*) • DFS no es un tour. Sea H el ciclo hamiltoniano resultante al eliminar los nodos visitados más de una vez. Es claro que • C(H) <= C(W) <= 2C(H*)
Optimización de Christofides • Hay un algoritmo aproximado mejor al expuesto, que fue propuesto por Christofides • El algoritmo de Chistofides tiene un radio de aproximación de 3/2
TSP General no tiene algoritmo aproximado polinomial • Sea A un algoritmoaproximadoqueresuelve el ciclohamiltoniano en tiempopolinomial con un radio de aproximación p. • Convertimosunainstancia del ciclohamiltoniano en unainstancia de TSP de la siguiente forma • Dado G=(V,E) creamos H = (V, E’) donde H es un grafocompleto • Sea c(e) = 1si e ∈E, sino c(e) = p(|V|)+1 • Si G tiene un ciclohamiltoniano, OPT = |V|, sinoOPT ≥|V|+ p(|V|). Esto es si G tiene un ciclo Hamiltoniano, A resuelve TSP en tiempo polinomial • Como el ciclo hamiltoniano (y TSP) es un problema NP-Completo, si A existe P=NP
Problemacobertura de conjuntos • Conjuntofinito X y unafamilia F de subconjuntos de X, dondecadaelemento de X pertenece al menos a un subconjunto en F • Hallar el mínimo S ∈ F talquetodoelemento X “estácubierto” F = {S1,S2,S3,S4,S5,S6} S = {S3,S4,S5}
¿Por qué resolver cobertura de conjuntos? • Es una abstracción de muchos problemas combinatorios, por ejemplo: • Formar un equipo de proyecto donde todos los conocimientos requeridos estén presentes, con el número mínimo de miembros de equipo • Minimización de lógica booleana: dada una función booleana de K variables, con 2k vectores de entrada, buscamos el circuito más simple que implementa la función exactamente
Algoritmo “greedy” paracobertura de conjuntos • GREEDY-SET-COVER(X,F ) • 1 U ← X • 2 C ← Ø • 3 mientras U ≠ Ø • 4 hacerseleccionarS ∈ F talque la intersección entre S y U esmáxima • 5 U ← U – S • 6 C ← C+S • 7 return C • Para el ejemplo anterior, el algoritmo greedy retorna S={S1,S4,S5,S3}
El algoritmo “greedy” es un algoritmoaproximado • Asignamoscosto 1 a cadasubonjuntoelegidopor el algortimo, y distribuimosestecostoequitativamente entre todos los elementosnuevoscubiertos. • Sea Cx el costo de cubrir el elemento x y Si el subconjuntoconsideradopor el algoritmoquecontiene a x la primeravez • Cx = 1 / |Si – (S1 U S2 U … U Si-1)| • En cadapaso del algoritmounaunidad de costoesasignada, por lo cual • |C| = ∑ Cx x ∈ X
El algoritmo “greedy” es un algoritmoaproximado (continuación) • Así, el costo de la coberturaóptima C* es • ∑ ∑ Cx S∈C*x∈S • Y comotodo x∈ X está al menosunavez en S ∈ C* tenemos • ∑ ∑ Cx >= ∑ Cx S∈C*x∈Sx ∈ X • Por lo tanto |C| <= ∑ ∑ Cx S∈C*x∈S • Y paracadaconjunto S en la familia F ∑ Cx <=H(|S|) x ∈ X • De lo que se desprende |C| <= ∑ H(|S|) S∈C* <= |C*|*H(max{|S| ∈ F})
El algoritmo “greedy” es un algoritmoaproximado (continuación) • En resumen, el radio de aproximación del algoritmo considerado es p(n) = H(max{|S|: S ∈ F})
Conclusión • En lasúltimas dos exposicioneshemoscorroboradoque los algoritmosaproximadosnosayudan a computarsolucionescercanas a lasóptimasparaproblemas de optimizaciónmuycomplejos