Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
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”
¿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.
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
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.
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
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
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
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.
N1 = {a, b} N1 = {a, e}
N2 = {c, d} N2 = {b, d}
N3 = {e} N3 = {c}
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