ALGOII-CLASE1

download ALGOII-CLASE1

of 121

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;

    }

    }