ALGOII-CLASE1
-
Upload
tomi-sebastian-juarez -
Category
Documents
-
view
8 -
download
0
Transcript of ALGOII-CLASE1
-
Problemas de dificultad NP
Anlisis y diseo de algoritmos II- 2014
-
Introduccin a la complejidad
computacional
Problema
lo describe un
Lenguaje
Clases de problemas/clases de lenguajes
Clasificacin general
Problemas de decisin Problemas de optimizacin
Indecidibles Insolubles
Decidibles Solubles Soluciones
algortmicas
-
Problemas de decisin:
Ejemplos
Un problema de decisin puede ser formulado de
manera tal que dada una entrada requiere una respuesta
simple: si o no, true o false.
Problemas decidibles
Ejemplo: Determinar la pertenencia de una cadena a
un lenguaje de tipo 2.
Problemas indecidibles
Ejemplo: Problema del Halting
-
Problemas de optimizacin:
Ejemplos
Informalmente, los problemas de optimizacin son un tipo
general de problemas en los que se desea elegir el mejor de un
conjunto de elementos.
Coloreo de un grafo
Dado un grafo G = (V,E) y un conjunto finito de colores S, un
coloreo es un mapping C:V-> S, tal que si existe un arco
(v,w) E, luego C(v) =/= C(w). Determinar el mnimo coloreo
de G.
Problema de la mochila
Dado un conjunto de n objetos de tamaos s1,s2, sn y una
mochila de capacidad C (s1,s2, sn y C son enteros positivos)
encontrar un subconjunto de objetos que maximice el uso de la
mochila.
-
Problemas de optimizacin:
Ejemplos
Problema del viajante
Dadas las distancias entre un conjunto de n
ciudades, determinar el circuito que debera
recorrer un viajante, que parte de una estas
ciudades, visita a todas las dems exactamente
una vez y vuelve al punto de partida, habiendo
recorrido la menor distancia posible.
-
Problemas de optimizacin:
Ejemplos
Ordenamiento de tareas con penalidades
Dadas n tareas a ser ejecutadas una por vez. Cada tarea Ji tiene
un tiempo de ejecucin ti, un plazo de espera di medido desde el
comienzo de la ejecucin, una penalidad pi por exceder el plazo
de espera. Un orden especfico de tareas es una permutacin S
de {1,2,...,n} donde Js(1) es la primera tarea ejecutada, Js(2) la
siguiente, etc. La penalidad total para un ordenamiento particular
es
n
P S = [if (t s(1) + ....+ t s(i) ) > d s(i) then ps(i) else 0]
i=1
Se requiere encontrar un ordenamiento tal que minimice la
penalidad total
-
Problemas de decisin versus
Problemas de Optimizacin
La clasificacin de problemas de decisin puede
basarse en modelos de procedimientos ms simples
que los que requerira una clasificacin de problemas
de optimizacin. Por ejemplo, pueden basarse en
autmatas reconocedores como la mquina de
Turing.
Para todo problema de optimizacin se puede
construir una versin de un problema de decisin del
mismo grado de dificultad.
-
Problemas de decisin versus
Problemas de Optimizacin
Problema del Coloreo de un grafo
Versin de Optimizacin
Dado un grafo G = (V,E) y un conjunto finito de colores
S, un coloreo es un mapping C:V-> S, tal que si existe
un arco (v,w) E, luego C(v) < > C(w). Se requiere
colorear el grafo con la mnima cantidad de colores.
Versin de Decisin
Dado un grafo G y un entero positivo k existe un
coloreo de k colores?
-
Problemas de decisin versus
Problemas de Optimizacin
Versin de optimizacin del viajante
Dadas las distancias entre un conjunto de n
ciudades, determinar el circuito que debera
recorrer un viajante, que parte de una estas
ciudades, visita a todas las dems exactamente
una vez y vuelve al punto de partida, habiendo
recorrido la menor distancia posible.
-
Problemas de decisin versus
Problemas de Optimizacin
Versin de decisin del viajante
Dadas las distancias entre un conjunto de n
ciudades, determinar si existe un circuito cuya
distancia total sea K y puede ser recorrido por
un viajante que parte de una estas ciudades,
visita a todas las dems exactamente una vez y
vuelve al punto de partida.
-
Clasificacin de problemas decidibles
P-tiempo
La clase de problemas de decisin de complejidad
temporal polinomial.
La clase de lenguajes que pueden ser reconocidos por
Mquinas de Turing determinsticas de complejidad
temporal polinomial
-
Clasificacin de problemas decidibles
NP-tiempo
La clase de lenguajes que pueden ser reconocidos por Mquinas de Turing no-determinsticas de complejidad temporal polinomial
Nondeterministic Polinomial
NP
-
Clasificacin de problemas decidibles
PSPACE
La clase de lenguajes que pueden ser
reconocidos por Mquinas de Turing de
complejidad espacial polinomial
-
Relacin entre NP-tiempo y P-tiempo
Problema abierto:
NP-tiempo incluye a P-tiempo?
Qu se sabe sobre NP-tiempo?
Se ha identificado una clase de problemas de NP-tiempo.
NP-Completo
Un lenguaje Lo est en NP-Completo si todo lenguaje
L1 NP-tiempo se reduce a Lo en un tiempo polinomial
-
Relacin entre NP-tiempo y P-tiempo Un lenguaje Lo est en NP-Completo si todo lenguaje
L1 NP-tiempo se reduce a Lo en un tiempo polinomial
M1 y M2 son Mquinas de Turing definidas sobre un mismo alfabeto.
M2 es una Mquina de Turing no determinstica que reconoce a L0.M1 es una Mquina de Turing determinstica de complejidad temporal polinomial, que convierte a la cadena w1 en la cadena w2de forma tal que si w1 L1 luego w2 L2.
MT M1 MT M2
w1 SIw2
NO
Reconoce a L1 Reconoce a Lo
-
Relacin entre NP-tiempo y P-tiempo
Los problemas NP-Completo son los ms difciles en
NP-tiempo dado que si existiese un algoritmo de complejidad temporal polinomial para un problema de la clase NP-Completo, luego existira un algoritmo de complejidad temporal polinomial para TODO problema perteneciente a NP-tiempo.
Informalmente, si existiese un algoritmo polinomial para un problema NP-completo, podramos resolver cualquier problema en NP-tiempo en un tiempo polinomial, luego P=NP.
-
Relacin entre NP-tiempo y P-tiempo
NP-Completo
L NP-Completo si
1. L NP-tiempo
2. Para todo L NP-tiempo , L se reduce a L
NP
NP_COMPLETO
-
Relacin entre P-tiempo y NP-tiempo
SAT ( Satisfiability) es el primer problema para el que fue demostrada su pertenencia a la clase NP-Completo.
SAT: Evaluar una frmula del clculo proposicional es un problema NP-Completo
Demostrado por Stephen Cook en 1974
-
Relacin entre P-tiempo y NP-tiempo
SAT: Evaluar una frmula del clculo
proposicional es un problema NP-Completo.
Bases de la demostracin de Cook:
MTD SAT
FM (w) SI
NO
M: codificacin de MT ND
w: cadena
describe NP-tiempo, porqu?
frmula
-
Relacin entre NP-tiempo y
P-tiempo
Para probar que un problema A en NP-tiempo es
NP-completo es suficiente probar que algn otro
problema NP-completo B se reduce a A. Es
decir, A es polinomialmente transformable a B.
SAT FNC-SAT Vertex-COVER HAM-CYCLE TSPCLIQUE
Subset-sum
-
Relacin entre NP-tiempo y
P-tiempo
Clique en grafos
Dado un grafo no-orientado G = (V,E), un
clique es un subconjunto V V de vrtices,
tal que cada par est conectado por un arco en E.
El tamao del clique es la cantidad de vrtices
que contiene.
Problema: Dado un grafo no-orientado
G = (V,E), existe un clique de k vrtices?
-
Relacin entre NP-tiempo y
P-tiempo
Clique
1
3 5
6
42
V = { 4,5,6}
-
Relacin entre NP-tiempo y
P-tiempo
Vertex-Cover- Cobertura de vrtices en grafos
Dado un grafo no-orientado G = (V,E), una
cobertura de vrtices es un subconjunto de
vrtices V tal que si (u,v) es un arco de G, luego
u V o v V( o ambos). El tamao es la
cantidad de vrtices en la cobertura.
Problema: Existe una cobertura de k vrtices?
-
Relacin entre NP-tiempo y
P-tiempo
Vertex-Cover- Cobertura de vrtices en grafos
Mnimo
cubrimiento de
vrtices
-
Problemas de dificultad NPSiempre es posible construir una versin de decisin
para un problema de optimizacin que tenga el mismo
grado de dificultad.
Decisin Optimizacin
NP-Completo NP-Hard
Ejemplos de NP-Hard
Versin de optimizacin del Viajante
Versin de optimizacin del Coloreo de un grafo
-
Relacin entre P-tiempo y NP-tiempo
Ejemplos de NP-Completos
Versin de decisin del viajante
Versin de decisin del Coloreo de un grafo
?Qu sucedera si alguien descubriese un
algoritmo polinomialmente acotado para un
problema NP-Completo?
-
Relacin entre NP-tiempo y P-tiempo
Si bien no se han encontrado algoritmos
acotados polinomialmente para problemas
NP-Completos, no se ha podido demostrar que
no existen!!!
NP-tiempo ? P-tiempo
NP-tiempo
NP-COMPLETOP-tiempo
SE CONJETURA
NO DEMOSTRADO
-
Relacin entre NP-tiempo y P-tiempo
-
Relacin entre NP-tiempo y P-tiempo
La pregunta P = NP? es uno de los famosos
Problemas del Milenio premiados con un milln
de dlares por el Clay Mathematics Institute.
Recientemente, en agosto de 2010, el ingeniero y
matemticoVinay Deolalikar (HP Research Labs, Palo
Alto, California) present una demostracin
concluyendo que P NP.
-
Relacin entre NP-tiempo y P-tiempo
La demostracin presentada por Vinay
Deolalikar ( de 103 pginas*) est basada
en fsica estadstica y varias reas de las
matemticas. Se realizarn comprobaciones
En varias oportunidades se han presentado otras
demostraciones para este problema que
resultaron errneasa la fecha sta tambin
*
-
Otra clase: PSPACE y PSPACE-
completo
PSPACE
La clase de lenguajes que pueden ser reconocidos por
Mquinas de Turing de complejidad espacial
polinomial.
Se conjetura que existen problemas PSPACE-completo
tal que si uno de ellos est en NP, PSPACE=NP, o,
si uno de ellos est en P, PSPACE= P.
-
PSPACE-completo
Una frmula booleana plenamente cuantificada
es una frmula en lgica de primer orden donde
toda variable es cuantificada
Se puede generalizar el problema SAT para el
problema de la frmula booleana cuantificada,
un importante problema PSPACE-completo.
Ej:
-
Relacin entre P, NP y PSPACE
Se conjetura
P
NP
PSPACE
?
-
PSPACE-completo
Ejemplos
Pentomino
Reversi
Hex
Sokoban
-
Problemas difciles
Problemas computacionalmente
TRATABLES
INTRATABLES
Qu relaciones existen entre los problemas
tratables, intratables y las clases de problemas
P-tiempo, NP-Tiempo, NP-Completo,
NP Hard y PSPACE-completo?
-
Problemas difcilesNo podemos afirmar que todo problema en P-tiempo tiene una
solucin eficiente.
Para ciertas instancias y en funcin de restricciones al tiempo de ejecucin un problema en P-tiempo puede ser ineficiente.
Puede estar en P-tiempo y el orden del polinomio alto
No podemos afirmar que todo problema en NP-Hard es
ineficiente
Un problema en NP-Hard puede ser tratable para ciertas instancias.
Sin embargo
-
Problemas difciles
Sin embargo
hay muy buenas razones para buscar soluciones
que estn en P-tiempo dado que un problema que
no est en P-tiempo ser, en general, muy
costoso y probablemente intratable.
-
Problemas difcilesUn algoritmo para un problema complejo puede construirse
combinando algoritmos para problemas simples. Los algoritmos
simples pueden operar sobre las mismas entradas o sobre entradas
calculadas como resultados intermedios de otros problemas
simples.
Luego, la complejidad del algoritmo puede ser acotada
por suma, multiplicacin y composicin de complejidades de
otros algoritmos. Los polinomios son cerrados bajo estas
operaciones, luego cualquier algoritmo construido a partir de
algoritmos acotados polinomialmente ser tambin un algoritmo acotado
polinomialmente.
-
Algoritmos aproximados y heursticos
para problemas de complejidad NP
Si bien no se ha podido demostrar an que no existen
algoritmos eficientes para las clases NP-completo, PSPACE
completo y NP-Hard, desde el punto de vista prctico hay que
resolverlos eficientemente.
Si las entradas son pequeas podramos construir algoritmos basados en backtracking que realicen una bsqueda exhaustiva
Sino, podramos construir soluciones aproximadas,cercanas a la mejor solucin, a partir de algoritmos polinomiales.
-
Cmo resolver problemas difciles?
Cmo resolver problemas de complejidad
exponencial?
Ante todo darnos cuenta si realmente es
un problema para el que no existen soluciones
de complejidad temporal polinomial.
Ejemplo: resolver el cubo de Rubik
Es un problema de dificultad NP?
-
Cmo resolver problemas difciles?
Ejemplo: resolver el cubo de Rubik
Es un problema de dificultad NP?
El nmero de posibles permutaciones
en el Cubo de Rubik es de:
8! 12! 37 211
2
43.252.003.274.489.856.000
Por qu?
-
Ejemplo: El cubo de Rubik
Con un equivalente a 35 aos de CPU, donados por Google, un grupo de ingenieros, matemticos y programadores estableci que se necesitan de 20 o menos movimientos para resolver cualquiera de las
43 252 003 274 489 856 000 configuraciones del cubo. El resultado de este algoritmo ha recibido el nombre del "nmero de Dios" debido a que un ser todopoderoso sera el nico que podra adivinar la mnima cantidad de movimientos para cada configuracin.
-
El cubo de RubikCmo resolvieron las 43,252,003,274,489,856,000 configuraciones del cubo?
Particionaron las configuraciones en 2,217,093,120 conjuntos de 19,508,428,800 configuraciones cada uno.
Usando simetra y set covering encontraron que la cantidad de conjuntos que se necesitaba resolver era 55,882,296
Para cada configuracin no es necesario encontrar la solucin ptima, sino slo soluciones de 20 o menos pasos
Programaron la resolucin de un simple conjunto en 20 segundos
Usaron el equivalente de 35 aos de CPU para resolver los 55,882,296 conjuntos.
Cobertura de conjuntos (Set-Covering):
Dado un universo U, una familia S de subconjuntos de U, una cobertura o solucin para el problema es una subfamilia cuya unin d por resultado el mismo U. S= {{1,2,3}{2,4} {3,4} {4,5}} {{1,2,3}{4,5}}
www.cube20.org
-
El cubo de Rubik
Analizar este problema teniendo en cuenta lo
recientemente demostrado.
Es un problema tratable o intratable?
Es de dificultad NP?
-
Algoritmos aproximados y heursticos
para problemas NP-Hard
Cmo resolver problemas de dificultad NP?
No pretendemos encontrar la mejor solucin
sino una buena solucin.
Algoritmos aproximados
Algoritmos heursticos
-
Algoritmos heursticos versus
algoritmos aproximados Heurstica Hallar, inventar
Algoritmo Heurstico
Procedimiento que puede producir una solucin buena, no muy alejada de la
ptima, o incluso la ptima si somos afortunados!
Algoritmo aproximado
Procedimiento que proporciona una solucin aproximada, que si bien no es la
ptima, se puede medir cun cerca est de la ptima.
Los algoritmos heursticos y los aproximados no garantizan encontrar la
solucin ptima
Los algoritmos aproximados establecen una cota de error.
-
Algoritmos de aproximacin para
problemas NP-Hard
Supongamos problemas de optimizacin, en los que
cada solucin factible tiene un costo positivo y se
pretende obtener una solucin cercana a la ptima.
Dependiendo del problema, una solucin ptima puede
ser definida como el mximo o el mnimo costo de las
soluciones factibles. El problema de optimizacin
puede ser de maximizacin o minimizacin
-
Algoritmo de aproximacinUn algoritmo de aproximacin est acotado por (n) si para
cualquier entrada de tamao n, el costo de la solucin del
algoritmo de aproximacin, para un costo de una solucin
factible c y un costo c* de una solucin ptima, es:
a) si el problema es de maximizacin
c / c* (n) 0 < c c*
y
b) si el problema es de minimizacin
c* / c (n) 0 < c* c
Es decir, max ( c/c* , c*/c) (n)
-
Algoritmo de aproximacin
max ( c/c* , c*/c) (n)
Qu expresa (n)=1?
Qu expresa (n) = 2?
Qu expresa (n) >> 1?
-
Algoritmo de aproximacin
Otra medida es el error relativo definido mediante
c c*/ c
Un algoritmo de aproximacin tiene un error relativo
(n) si c c*/ c (n).
Un esquema de aproximacin para un problema de
optimizacin tiene como entradas no slo a una
instancia de un problema sino un valor > 0, tal que
para un dado, el esquema es un algoritmo de
aproximacin con un error relativo acotado por .
-
Algoritmo de aproximacin
Problema del viajante
Un circuito en un grafo G es una secuencia de arcos
(a1, a2), . . .,(ak1, ak ), (ak , a1) en G tal que:
ai =/= aj para cada i =/= j ,
{a1, . . . , ak} es el conjunto de vrtices de G.
Costo de un circuito en G:
costo ( ) = (costo((ai , ai+1)) + costo((ak , a1))1 i k-1
-
Algoritmo de aproximacin
Problema del viajante Mtrico
Costo de un circuito en G:
costo ( ) = (costo((ai , ai+1)) + costo((ak , a1))1 i k-1
Viajante mtrico
Distancia euclideana
costo ( u,w) costo(u,v) + costo(v,w)
u w
v
-
Problema del viajante mtrico
Algoritmo de aproximacin
1. Construir un rbol de recubrimiento de
mnimo costo . Sea T
76
5
43
2
1
76
5
43
2
1 76
-
76
5
43
2
1
Problema del viajante mtrico
Algoritmo de aproximacin
2. Doblar cada arco de T para obtener un grafo
euleriano G.
-
Problema del viajante mtrico
Algoritmo de aproximacin
3. Construir un circuito euleriano E sobre G.
3 2 12
3
4565
7
5
4
-
43 3
1
2
Problema del viajante mtrico
Algoritmo de aproximacin
4. Construir un circuito C que visite a todos los vrtices
usando la desigualdad triangular
76
5
43
2
1
1
3 2
1
4
56
7
-
Problema del viajante mtrico
Algoritmo de aproximacin- Error
COSTO (T) OPT
COSTO (E) = 2 COSTO (T)
COSTO (C) COSTO(E)
COSTO (C) 2 OPT
Se dice que este algoritmo es FACTOR 2, indicando
que a lo sumo duplica el valor de la solucin ptima
-
Problema del viajante mtrico
Algoritmo de aproximacin
Propuesta:
Implementar el algoritmo de aproximacin
Cul es la complejidad del algoritmo de
aproximacin?
Cul es el error? Cunto se acerca a la solucin
ptima? Comprobar empricamente que es factor 2.
-
Algoritmo Heurstico
Problema del coloreo de un grafo
Dado un grafo G = (V,E) y un conjuto finito de
colores S, un coloreo es un mapping
C:V-> S, tal que si existe un arco (v,w) E,
luego C(v) =/= C(w).
1 2
4
3
5
-
Algoritmo Heurstico
Problema del coloreo de un grafo
for ( i=2; i
-
Algoritmo Heurstico
Problema del coloreo de un grafo
Colorear
a1 a2 an
b1 b2 bnb3
a3
-
Algoritmo Heurstico
Problema del coloreo de un grafo
Secuencia de vrtices
a1 a2 an
b1 b2 bnb3
a3
Coloreo ptimo:2 colores
-
Algoritmo Heurstico
Problema del coloreo de un grafo
Secuencia de vrtices
a1 a2 an
b1 b2 bnb3
a3
n colores!!!
-
Algoritmo heurstico
Problema del coloreo del grafo
Depende de la secuencia de vrtices usada
la cantidad de colores del coloreo.for ( i=2; i
-
Algoritmo heurstico
Problema del coloreo del grafo
No se conocen algoritmos de aproximacin para el coloreo de un grafo que estn acotados por un factor constante.
Se demostr que si se descubriese un algoritmo de aproximacin que en el peor de los casos duplicara la cantidad de colores de la solucin ptima, sera posible obtener un coloreo ptimo en tiempo polinomial.
Esto implicara
P-tiempo = NP-tiempo. !!!!
As, obtener una buena solucin, no necesariamente la ptima, para el coloreo puede ser en s mismo un problema NP-HARD.
-
Problema del viajante
Se lo conoce como TSP (Traveling Salesman
Problem).
Sea G = (V, E) un grafo orientado y rotulado.
Un ciclo hamiltoniano es un ciclo que contiene a
cada uno de los vrtices de G una vez.
Se desea obtener un ciclo hamiltoniano de
mnimo costo.
-
Problema NP-HARD
Problema del viajante
a
e c
d
b3
7 4
6 5
8
2 6
4 3
Una instancia de TSP
-
Problema NP-HARD
Problema del viajante
a
e c
d
b3
7 4
6 5
8
2 6
4 3
Una instancia de TSP
-
Problema del viajante
Algoritmo heurstico
Algoritmo heurstico basado en Prim
T= { }; /Inicializar T, rbol de recubrimiento/
S = { }; /conjunto de vertices S/
while ( S =/= V)
{ elegir un arco (u,v) de mnimo costo/
u S, v V-S y grado-incidencia (u) < 2;
T = T U {(u,v)};
S = S U {v}; }
-Completar circuito uniendo los dos vertices de T de grado de
incidencia 1 O(n2)
-
Problema del viajante
Algoritmo heurstico
3
7 4
6 5
8
2 6
4 3
Circuito para una instancia de TSP
a
a
b
b
c
d
d
c
ee
3
3
8
5
2
COSTO = 21
-
Problemas de dificultad NP
Tcnicas de bsqueda exhaustiva
-
Algoritmos de bsqueda exhaustiva
Bsqueda en el espacio de soluciones
Exploracin sistemtica por prueba y error de
alternativas
-
Algoritmos de bsqueda
Tipos de algoritmos
Bsqueda de caminos (Pathfinding)
Bsqueda con adversario. Juegos
Bsqueda con restricciones
-
Bsqueda de camino
Ejemplo
Laberintos
-
Bsqueda de camino
Ejemplo
(n2-1) Puzzle
-
Bsqueda con adversario
Ejemplo
Juegos de dos
jugadores
Ajedrez
-
Bsqueda con restricciones
Ejemplo
N-reinas
-
Bsqueda con restricciones
Ejemplo
Sudoku
-
Modelo del espacio del problema
Espacio del problema
conjunto de estados del problema
conjunto de operadores que cambian el estado
Instancia del problema
espacio del problema
estado inicial,
estado objetivo
-
Espacio del problema
El espacio del problema se representa por un
grafo
los nodos representan estados
los arcos representan operadores
orientados o no orientados
-
Modelo del espacio del problema
Espacio del problema
b
d
f
c
a
Estado
inicial
Estado
final
e
g
Operador 1
Operador 2
-
Espacio del problema
Por simplicidad es comn representar al espacio
del problema por un rbol, el estado inicial es la
raz del rbol
+La ausencia de ciclos simplifica la bsqueda
-Estados que son alcanzados por dos caminos
diferentes se representan por nodos duplicados
-
Espacio del problema
Modelado como rbol
a b
c
ed
f
g
e
-
8-puzzle- Espacio del problema
-
Eficiencia y algoritmos de bsqueda
exhaustiva
Parmetros de la bsqueda que determinan la eficiencia:
- # nodos en el grafo de espacio del problema
o una mejor medida
factor de bifurcacin (nmero promedio de hijos de un
nodo)
y profundidad de la solucin (longitud del camino ms
corto del nodo inicial a la meta, o la longitud de la
secuencia ms corta de operadores que resuelve el
problema)
-
Tcnicas de bsqueda
Backtracking
-
Backtracking
Caractersticas
Puede aplicarse en problemas de
optimizacin, con o sin restricciones.
Bsqueda exhaustiva en el espacio de soluciones
-
Backtracking
Caractersticas
El espacio de soluciones factibles puede
modelarse mediante un rbol n-ario.
... .
X1=X1=
X2=X2=
X4=
X3=
-
Backtracking
Caractersticas
En general, la solucin puede expresarse como una
tupla (x1, x2, ,xn), donde los xi son elegidos de un
conjunto finito Si
.
X1=X1= a
X2= bX2=
X4= d
X3= c
-
Backtracking
Caractersticas
En general, se pretende encontrar un vector que maximiza, minimiza o satisface una funcin objetivoP(x1,x2,,xn).
Varios problemas a ser resueltos por backtracking requieren que todas las soluciones factiblessatisfagan un conjunto de restricciones.
Las restricciones pueden ser explcitas (reglas que restringen los valores de xi a un conjunto de valores) o implcitas (reglas que determinan cules de las tuplas en el espacio de soluciones satisfacen la funcin objetivo)
-
Backtracking
Caractersticas
Problema de la mochilaDados n pesos positivos pi, n beneficios positivos bi y
un nmero positivo C (la capacidad de la mochila),
elegir un subconjunto de pesos tal que
pi xi C y bi xi sea maximizado1 i 0, n > 0, xi{0,1} (1 i n)
Restricciones implcitas, definen el espacio de soluciones
factibles
-
Backtracking
Caractersticas
Problema de la mochila
C =11
p1 = 1 b1 = 1 x1= 0
p2 = 2 b2 = 6 x2 = 0
p3= 5 b3 = 18 x3 = 1
p4= 6 b4 = 22 x4 = 1
p5= 7 b5 = 28 x5 = 0
La solucin ptima incluye a los elementos 3 y 4 con un
beneficio de 40
-
Problemas NP-HARD
Backtracking
Caractersticas
La solucin se calcula a partir de una
secuencia de decisiones
... .
X1=a
X2=b
X3=c
-
Backtracking
Caractersticas
X = (0,0,1,1,0) b = (1,6,18,22,28)
p = (1,2,5,6,7)
C = 11
x1 = 0
x2 = 0
x3 =1
x4=1
x5 =0
Espacio de soluciones factibles para la instancia del problema de la
mochila
-
Backtracking
Caractersticas
Existe una forma sistemtica y organizada de generar y recorrer el espacio que contiene a todas las posibles secuencias de decisiones.
Existe una funcin que permite averiguar si una secuencia de decisiones, la solucin actual en curso, cumple las restricciones implcitas.
Existe una funcin solucin que permite determinar si una secuencia de decisiones factibles es solucin.
-
Backtracking
Espacio de bsqueda exponencial
v2v1
v1
vj
vj
#nodos O(jk)
-
Backtracking
Espacio de bsqueda
Cada camino de la raz a un nodo es una secuencia
de decisiones.
El espacio de bsqueda no debe incluir soluciones
repetidas
Una solucin es factible si no viola las restricciones
Una secuencia de decisiones puede ser
prolongable o no prolongable
-
Backtracking- Espacio de bsqueda
Problema de la mochila
Modela subconjuntos de objetos{1,2,..,n}
objeto 1
objeto 2
objeto 3
objeto n
# espacio de bsqueda O(2n)
[1,1,-,-,,-]
[0,1,-,-,,-]
[o,-,-,,-]
[0,0,-,-,,]
-
Backtracking- Espacio de bsqueda
Problema de la suma de subconjuntos
Dado un conjunto S de naturales, encontrar todos
los subconjuntos cuya suma sea igual a M.
S={2,1,3,4}
{2,1}
{2}
{2,4}{2,3}
{2,1,4} {2,3,1} {2,3,4}{2,1,3} {2,4,3}
{2,4,1,3} {2,4,3,1}{2,3,4,1}{2,3,1,4}{2,1,4,3}{2,1,3,4}
{2,4,1}
Es un espacio de
soluciones factibles?
-
Backtracking- Espacio de bsqueda
Problema de la suma de subconjuntos
Dado un conjunto S de naturales, encontrar todos
los subconjuntos cuya suma sea igual a M.
S={2,1,3,4}
{2,1}
{2}
{2,4}{2,3}
{2,1,4} {2,3,1} {2,3,4}{2,1,3} {2,4,3}
{2,4,1,3} {2,4,3,1}{2,3,4,1}{2,3,1,4}{2,1,4,3}{2,1,3,4}
{2,4,1}
MAL MODELADO-
Repeticin de estados
-
Backtracking- Espacio de bsqueda
Poda
Problema de suma de subconjuntos
Modela subconjuntos de objetos de S {2,1,3,4}
ordenar
-
Backtracking- Espacio de bsqueda
Ejercicio propuesto
Problema de la suma cero de subconjuntos
Dado un conjunto S de enteros, encontrar todos
los subconjuntos cuya suma sea igual a 0.
Modelar el espacio de soluciones factibles
-
Backtracking-Espacio de bsqueda
Problema del viajante
La raz rbol es un vrtice, los nodos circuitos en
construccin y las hojas circuitos.
-
Backtracking- Espacio de bsqueda
Poda
Problema de suma de subconjuntos
Modela subconjuntos de objetos de S {2,1,3,4}
ordenar
M=4>4
-
Backtracking- Esquema 1
void Back (estado d, solucion *sol)
{ int nrohijo=1;
estado sig;
if (hoja(d)) calcular-solucion(d,sol);
else { nrohijo =1;
while (hijos(d,nrohijo, &sig) )
{ if !podado(sig, sol)
Back(sig, sol);
++nrohijo;
}
}
}
d
sig
nrohijo=1 nrohijo=i
Back(sig,sol)
-
Backtracking- Esquema 2
void Back (estado d, solucion *sol)
{ int nrohijo=1;
estado sig;
if (hoja(d)) calcular-solucion(d,sol);
else
{ nrohijo =1;
while (hijos(d,nrohijo, &sig) && !podado(sig, sol))
{ Back(sig, sol);
++nrohijo;
}
}
}
d
sig
-
Backtracking y Juegos
Heurstica Minimax
Un juego plantea situaciones de conflicto en la
que los jugadores deben tomar decisiones
sabiendo que los dems tambin toman
decisiones, y que el resultado del conflicto
se determina, de algn modo, a partir de todas
las decisiones realizadas
-
Backtracking y Juegos
Heurstica Minimax
Si cada jugador puede analizar de antemano las
posibles estrategias de sus oponentes y sus
consecuencias, existen estrategias que permiten
minimizar la prdida mxima esperada.
Heurstica Minimax
-
Backtracking y Juegos
Heurstica Minimax
Espacio de bsqueda se denomina rbol de juego.
Los nodos del rbol representan configuraciones
del tablero.
Los niveles del rbol se asocian a jugadores
especficos.
Una funcin de evaluacin , define cun buena es
una configuracin cuando la alcanza un jugador
-
Backtracking y Juegos
Heurstica Minimax
Espacio de bsqueda se denomina rbol de juego.
Ejemplo: TA-TE-TI
x x
x y JUEGA X --MAX
y y
x x x x x x x
x y x x y x y JUEGA Y
y x y y y y y MIN
x y x x x x y x x x
x y y x y x x y x x y JUEGA X
y x y y x y y y y y y MAX
x y x x x x x y x
x x y y x y x x y
y x y y x y y x y
Existe una estrategia ganadora para X si Y
juega inteligentemente?
-
Backtracking y Juegos
Heurstica Minimax
Los nodos del rbol representan configuraciones del
tablero y los niveles del rbol se asocian a jugadores.
x x
x y JUEGA X --MAX
y y
x x x x x x x
x y x x y x y JUEGA Y
y x y y y y y MIN
x y x x x x y x x x
x y y x y x x y x x y JUEGA X
y x y y x y y y y y y MAX
x y x x x x x y x
x x y y x y x x y
y x y y x y y x y
Existe una estrategia ganadora para X si Y
juega inteligentemente?
-
Backtracking y Juegos
Heurstica Minimax
Espacio de bsqueda se denomina rbol de juego.
Los nodos del rbol representan configuraciones
del tablero.
Los niveles del rbol se asocian a jugadores
especficos.
Una funcin de evaluacin , define cun buena es
una configuracin cuando la alcanza un jugador
-
Backtracking y Juegos
Heurstica Minimax
Funcin de evaluacin
El algoritmo explorar los nodos del rbol asignndoles
un valor numrico mediante una funcin de evaluacin,
empezando por los nodos terminales y subiendo hacia la
raz. La funcin definir lo buena que es la configuracin (estado
del tablero) para un jugador cuando la alcanza. En el caso
del ta-te-ti o el ajedrez los posibles valores pueden ser (+1,0,-1)
que se corresponden con ganar, empatar y perder
respectivamente. En el caso del Backgamon los posibles valores
podran tener un rango de [+192,-192], correspondindose con el
valor de las fichas.
-
Backtracking y Juegos
Heurstica Minimax
x x
x y 1 JUEGA X --MAX
y y
x x x x x x x
x y 0 x x y -1 1 x y JUEGA Y
y x y y y y y MIN
x y x x x x y x x x
x y y x y x x y x x y JUEGA X
y x y y x y y y y y y MAX
0 1 0 -1
x y x x x x x y x
x x y y x y x x y
y x y y x y y x y
0 1 0
0
Existe una estrategia ganadora para X si Y
juega inteligentemente?
1 gana X; 0 empate; -1 pierde X
Funcin de evaluacin
-
Backtracking y Juegos
Heurstica Minimax
Algoritmo heurstico Minimax
Generacin del rbol de juego (espacio de bsqueda). Se generarn todos los nodos hasta llegar a un estado terminal.
Calcular los valores de la funcin de evaluacin para cada hoja del rbol.
Calcular el valor de un nodo interior a partir del valor de sus hijos. Alternativamente, se definirn como los valores mnimos y mximos de sus hijos representando los movimientos del jugador y del oponente, de ah el nombre de Minimax.
Elegir la jugada conveniente a partir de estos valores.
-
Backtracking y Juegos
Heurstica Minimax
x x
x y 1 JUEGA X --MAX
y y
x x x x x x x
x y 0 x x y -1 1 x y JUEGA Y
y x y y y y y MIN
x y x x x x y x x x
x y y x y x x y x x y JUEGA X
y x y y x y y y y y y MAX
0 1 0 -1
x y x x x x x y x
x x y y x y x x y
y x y y x y y x y
0 1 0
0
Existe una estrategia ganadora para X si Y
juega inteligentemente?
1 gana X; 0 empate; -1 pierde X
Funcin de evaluacin
-
Backtracking y Juegos
Heurstica Minimax
Poda Alfa-Beta
Se denomina poda alfa-beta dado que utiliza dos
parmetros que describen los lmites sobre los
valores que aparecen a lo largo de cada camino.
es el valor de la mejor opcin hasta el momento a lo largo del camino para MAX
es el valor de la mejor opcin hasta el momento a lo largo del camino para MIN
Se realizar la poda de las ramas restantes cuando el valor actual
que se est examinando sea peor que el valor actual de o para
MAX o MIN, respectivamente.
-
Bsqueda con adversario. Juegos
Algoritmo Minimax
x x
x y 1 JUEGA X --MAX
y y
x x x x x x x
x y 0 x x y -1 1 x y JUEGA Y
y x y y y y y MIN
x y x x x x y x x x
x y y x y x x y x x y JUEGA X
y x y y x y y y y y y MAX
0 1 0 -1
x y x x x x x y x
x x y y x y x x y
y x y y x y y x y
0 1 0
0
Existe una estrategia ganadora para X si Y
juega inteligentemente?
1 gana X; 0 empate; -1 pierde X
-
-
-
Bsqueda con adversario. Juegos
Algoritmo Minimax + Poda - Poda Alfa-Beta
Se denomina poda alfa-beta dado que utiliza dos
parmetros que describen los lmites sobre los
valores que aparecen a lo largo de cada camino.
es el valor de la mejor opcin hasta el momento a lo largo del camino para MAX
es el valor de la mejor opcin hasta el momento a lo largo del camino para MIN
Se realizar la poda de las ramas restantes cuando el valor actual
que se est examinando sea peor que el valor actual de o para
MAX o MIN, respectivamente.
Depende del orden de generacin de sucesores
-
Bsqueda con adversario. Juegos
Esquema Minimax
Esquema 3
int back (estado d, tipoMinimax modo)
{int nrohijo, valor;
estado siguiente;
if (hoja(d)) return eval(d,modo); calcula valor de hoja
else {nrohijo=1;
if (modo==max) valor = bajo; inicializa valor
else valor=alto;
while (hijos (d,nrohijo, &siguiente))
-
Bsqueda con adversario. Juegos
Esquema MinimaxEsquema 3 (cont)
while(hijos (d, nrohijo, &siguiente))
{if (!podado (valor, modo))
if (modo == max)
valor = maximo (valor, back(siguiente, min));
else
valor = minimo (valor,back(siguiente, max));
}
++nrohijo;}
return valor;
}
}