Está en la página 1de 28

Link del Video:

https://drive.google.com/file/d/14YSyd-anyW3j7W2AHAQp
zTnrZdq11u6F/view?usp=sharing

Algoritmos
Heurísticos
Integrantes
Ramos Villanueva, Sebastian Elias
Reyna Ulloa Eduardo Juan
Ventura Villanueva, Cristhofer Moises
Zenobio Pariasca, Edgar Alonso
Velasquez Hinostroza Jim
Introducción
“En algunas ocasiones,uno tiene que hallar algún tipo de solución para el problema sea difícil o no”

Principios de la Heurística y algoritmos aproximados

¿Qué es la heurística?
Un procedimiento que puede producir una buena solución a un problema,llegando a poder ser óptima pero
que también puede no hacerlo.Puede ser probabilística o determinista.

¿Por qué usar la heurística?

Incertidumbre El error puede Pueden ser una


en los datos de ser menor que mejor vía que los alg.
entrada los alg. exactos deterministas
Los algoritmos heurísticos.- Problema del color

Sea G = <N,A> un grafo no dirigido,deseamos colorear los nodos de G de tal forma que ningún nodo
adyacente tenga el mismo color.Usar el mínimo de colores

El algoritmo voraz heurístico nos indica:


● Seleccionar un color y nodo inicial arbitrario
● Pintamos cantidad de nodos disponibles que no sean vecinos de este color.
● Si ya no se pueden pintar más volvemos al primer paso.
● Finaliza al colorear todo el grafo
Sin embargo,con un orden sistemático: 1-5-2-3-4

El algoritmo voraz no es más que una heurística qué


puede hallar una solución óptima,pero no hay certeza
de que lo haga
¿Está justificado el uso de este algoritmo?
Si,basta con mostrar que para todo grafo G existe al menos una ordenación que permite hallar
al algoritmo una solución óptima.

Suponga un grafo cualquiera G y qué una solución óptima requiere k colores y de


repente...le dan esa solución.
Pasos:
1. Numere arbitrariamente los k colores
2. Numere los nodos de la siguiente forma:
a. Todos los nodos que hayan sido pintados por el color 1 en la solución óptima
b. Seguir así hasta el color que,no importa el orden de enumeración
3. Aplicar la heurística voraz por el orden asignado,en efecto,es óptimo

Sin embargo,esta solución no es necesariamente la misma de la original

Pueden haber nodos del color 1 que originalmente eran del color 2,pero eso no significa
que no hayan nodos que puedan tener el color 2 y así sucesivamente
Sobre los casos negativos...
Que su uso sea justificado no significa que sea completamente óptimo.Por ejemplo,grafos que
únicamente requerirán k colores y la heurística hallada una solución usando c colores con c/k tan
elevado como deseemos.

Sea un grafo con 2n nodos donde si i es


impar es adyacente a todo impar menos a i+1
y si i es par es adyacente a los impares
menos a i-1

Si la heurística voraz elige el orden 1,3,...,2n-1,2,4,...,2n es óptimo.


Si la heurística voraz elige el orden natural: 1,2,...,2n-1,2n. Empezara a pintar nodos en parejas
consecutivas usando n colores,algo muy malo

Si intentamos aplicar la heurística varias veces al mismo grafo para reducir


errores,pierde valor práctico volviendo la eficiencia en O(n^3)
13.2 ALGORITMOS APROXIMADOS
El viajante metrico:
Aqui describirmos un algoritmo aproximado eficiente para un caso especial. Se dice que una
matriz de distaancias tiene la propidad metrica si es valida la desigualdad riangular: para tres
ciudades cualquiera i, j y k.

En otras palabras la distancia directa desde i hasta j nunca es mayor que la distancia desde i
hasta j pasando por k,
El camino Hamiltoniano

En teoría de grafos, un camino hamiltoniano en un grafo


es un camino (es decir, una sucesión de aristas
adyacentes), que visita todos los vértices del grafo una
sola vez. Si además el primer y último vértice visitado
coincide, el camino es un ciclo hamiltoniano.
El problema de encontrar un ciclo (o camino)
hamiltoniano en un grafo arbitrario se sabe que es
NP-completo y como tal aparece en la lista de los 21
problemas NP-completos de Karp.

Por lo tanto para todo ciclo


Hamiltoniano
Árbol de expansión de peso mínimo

El árbol de expansión de peso


mínimo es aquel que comienza
desde un vértice y encuentra todos
sus nodos accesibles y las
relaciones en conjunto que
permiten que se conecten dichos
nodos con el menor peso posible.
Este tipo de cálculo de alto interés
cuenta con diversos usos.
ELABORACIÓN ÁRBOL DE PESO MÍNIMO

Pasos:
● Se inicia en cualquier nodo.
● Seleccionar la arista de menor
costo adyacente al nodo.
● Se busca la arista de menor
costo de los nodos ya
analizados adyacente que no
genere ciclos.
PROBLEMA DE LA MOCHILA

Es un problema de optimización
combinatoria, es decir, que busca
la mejor solución entre un
conjunto finito de posibles
soluciones a un problema. Modela
una situación análoga al llenar
una mochila, incapaz de soportar
más de un peso determinado, con
todo o parte de un conjunto de
objetos, cada uno con un peso y
valor específicos. Los objetos
colocados en la mochila deben
maximizar el valor total sin
exceder el peso máximo.
PROBLEMA DE MOCHILA
LLENADO DE CAJAS
13.3 PROBLEMAS DE APROXIMACIÓN
CON DIFICULTAD NP
No siempre un algoritmo voraz será capaz hallar rápidamente una solución de dificultad NP.
Para que un algoritmo aproximado eficiente pueda garantizar una cota superior fija para el valor
absoluto de sus soluciones se debe cumplir que P= NP

Ahora consideramos un problema de optimización: opt (X) = solución óptima del caso X

opt(X) = 3 opt(X) = 4 opt(X) = 2


PROBLEMAS DE APROXIMACIÓN CON DIFICULTAD NP

De esa forma obtenemos: opt (X) ≤ opt(X)

Ahora sean c y ε constantes positivas

El problema de aproximación absoluta c : c-abs-P

El problema de aproximación relativa ε : ε -rel-P


PROBLEMAS DE APROXIMACIÓN CON DIFICULTAD NP
● Problemas de aproximación con dificultad absoluta
Definimos que el problema del viajante métrico = MTSP

Demostraremos que MTSP ≤ c -abs -MTSP para cualquier constante positiva c

ES DECIR LO QUE BUSCAMOS ES UN ALGORITMO PARA EL PROBLEMA


EXACTO DEL VIAJANTE QUE SEA EFICIENTE SIN TENER EN CUENTA EL
TIEMPO INVERTIDO POR EL ALGORITMO APROXIMADO

Concluimos que la solución de MTSP se obtiene fácilmente a partir


de cualquier solución aproximada c absoluta del caso M’
PROBLEMAS DE APROXIMACIÓN CON DIFICULTAD NP
● Problemas de aproximación con dificultad relativa
Definimos que el problema para hallar el recorrido óptimo = TSP
Problema de decisión de ciclo hamiltoniano = HAMD

Teorema 13.3.2 HAMD ≤ ε-REL- TSP para cualquier


constante positiva c
Demostración:
Un grafo G =<N, A>, donde n = número de nodos

Obtenemos que:

O
13.4 LO MISMO, PERO DISTINTO
Sea G = <N,A> un grafo no dirigido, y sea c: A → R+ una función de coste. Consideremos una partición
de N en tres subconjuntos: N1, N2 y N3, que sucesivo se llamarán racimos, de tal manera que cada
nodo de N pertenezca exactamente a uno de los racimos.

nodos

aristas cruzadas
aristas internas

Solución óptima

PROBLEMA:
Seleccionar N1, N2 y N3 de tal manera que el coste total de las aristas internas sea mínimo.

Dificultad NP
LO MISMO, PERO DISTINTO

Consideremos los dos problemas de optimización siguientes:

MAX-CORTAR es el problema de maximizar el coste total de las aristas cruzadas para todas las
particiones de N.

MIN-RACIMO es el problema de minimizar el coste total de los aristas internos para todas las
particiones de N.

El problema 𝜀-rel-MAX-CORTAR se puede resolver eficientemente para 𝜀 ≥ ⅓ mientras que el problema


𝜀-rel-MIN-RACIMO sigue siendo de dificultad NP para todos los valores positivos de 𝜀.
LO MISMO, PERO DISTINTO
TEOREMA Es posible calcular eficientemente las aproximaciones
---------------------⅓-relativas del problema MAX-CORTAR.

Solución óptima Solución aproximado

N1 = {a, b} N1 = {a, e}
N2 = {c, d} N2 = {b, d}
N3 = {e} N3 = {c}

MAX-CORTAR = 31 más del 87% MAX-CORTAR = 27


LO MISMO, PERO DISTINTO
En cada pasada por el
bucle externo, se sigue
que suma ≥ 3*racimo

El coste total de las aristas


cruzadas en la solución
descubierta por el
algoritmo es por lo tanto:

Pero el coste total de AC en una solución óptima no


puede ser menor que el coste de AC en la solución El algoritmo proporciona una
aproximada, entonces : aproximación ⅓ -relativa del
problema MAX-CORTAR
13.5. Enfoques de Aproximación

Esquema de aproximación → Este algoritmo admite como entrada una cota


superior ε del error relativo admisible.
Esquema de aproximación polinomial → Tiempo en O(p(n,1/ε)) caso peor
para hallar aproximaciones ε-relativas para casos de tamaño n, donde p es
algún polinomio fijo dos variables.
Llenado de cajas
Supongamos que existe un algoritmo BPaprox(w[i,..,n],W,ε) que funciona en un tiempo
O(p(n,1/ε))
El algoritmo sería el siguiente:
función BP(w[1..n],W)
devolver [PBaprox(w,W,1/(n+1))]
El algoritmo BP funciona en un tiempo polinómico respecto al tamaño del ejemplar, puesto
que en este caso 1/ε = n+1
La solución que proporciona PBaprox(w,W,1/(n+1)) tiene que ser tal que

pero opt/(n+1) ≤ 1
Entonces

Y por tanto
Problema de la mochila
Recuerde de la Sección 8.4 que el núcleo del algoritmo de programación dinámica es una
tabla V[1..n, 0..W)
En la tabla, V[i, j] da el valor máximo de los objetos que podemos transportar si el límite de
peso es j y si solamente toma los objetos de entre los i primeros.

Una aproximación parecida emplea una tabla U[1..n, 0..M] donde M es una cota superior del
valor óptimo que podemos transportar en la mochila. Obtendremos la cota M ejecutando
nuestro algoritmo aproximado 1/2-relativo y multiplicando su respuesta por 2.
En esta ocasión, U[i, j] nos da el peso mínimo de los objetos que podemos transportar para
lograr exactamente el valor j si sólo tomamos objetos de entre los i primeros.
Problema de la mochila
Esta regla dice que para lograr el valor j con los i primeros objetos, podemos:
● No utilizar el objeto i → la carga pesa al menos U[i-1, j]
● Añadir un objeto i a una colección de objetos entre los i-1 primeros cuyo valor total era
j-vi → peso total era al menos U[i-1, j-vi]
La solución está dada por el mayor j tal que U[n, j] ≤ W
Esta aproximación requiere un tiempo que está en O(nlogn+ nM) :
● Tiempo en O(n log n) para calcular la cota superior M
● Cada una de las nM entradas de U requiere un tiempo constante para su cálculo → O(M)
¿Por qué querría alguien emplear esta aproximación, que resulta ligeramente más
complicada y quizá menos natural que el algoritmo de programación dinámica de la
Sección 8.4?
Este nuevo algoritmo es preferible cuando los valores son más pequeños que los pesos
porque el tiempo que requiere depende del valor total de la solución óptima, más que de la
capacidad total de la mochila a efectos de peso

También podría gustarte