La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Complejidad de los problemas de decisión

Presentaciones similares


Presentación del tema: "Complejidad de los problemas de decisión"— Transcripción de la presentación:

1 Complejidad de los problemas de decisión
Un problema de decisión comprende dos partes: un dato del problema y una pregunta cuya respuesta es SI o NO Problemas de decisión clásicos: SAT: dato: un conjunto V de variables booleanas y un conjunto C de cláusulas sobre V pregunta: existe una afectación de las variables que haga verdadera todas las cláusulas? TSP: dato: un grafo G=(X,U) valuado y un número B pregunta: Existe un circuito hamiltoniano de G de valor menor a B?

2 PARTICION: dato: un conjunto A={ai /iI} de n números enteros pregunta: ¿existe una partición de A en dos sub-conjuntos A1 y A2 de igual peso?: ai= ai = !/2* ai ? iI iI iI KNAPSACK: dato: un conjunto de n parejas (bi,ci) de enteros y dos constantes K1 y K2 pregunta: Existe un subconjunto J de I /: bi= K1 y ci  K2 ? iJ iJ CLIQUE: dato: un grafo G=(X,U) y un entero positivo J pregunta: G contiene un clique (subgrafo completo de G) de tamaño J?

3 TRIPARTICION: dato: un conjunto A={ai /iI} de 3q números enteros con ai= qB y para todo i, B/4  ai  3B/4 iI pregunta: ¿existe una partición de A en q sub-conjuntos de cardinalidad 3 y peso B?: ILP: dato: Una matriz A (m,n) con valores enteros, una matriz línea c con valores enteros de orden n, una matriz columna b de orden m y un número entero B, pregunta: Hay una matriz columna x con valores enteros / Ax b y cx B?

4 Lenguajes y Problemas de decisión
Codificación: permite asociar a todo enunciado de un problema una palabra x definida sobre un alfabeto X (x X*) . A todo problema de decisión se le asocia un lenguaje L  X*, que está formado por un conjunto de palabras para las cuales la respuesta es SI. Clase NP Máquinas de Turing no determinísticas (MTND). Def: la clase NP es el conjunto de lenguajes reconocidos polinomialmente por una MTND: L  NP si existe una MTND y un polinomio P/ x L sii la MTND termina en el estado SI para el dato x en tiempo finito y T(x)  P(x) (T(x)=duración del cálculo en la MTND) Los problemas de decisión clásicos pertenecen a NP Para verificar que un problema de decisión es NP, una vez fijado los valores de una potencial solución, alcanza con que la verificación se realice en tiempo polinomial.

5 Reducción polinomial Def: Se dice que un problema 1 se reduce polinomialmente a otro 2 : 12, si 1es polinomial o si existe un algoritmo polinomial que construye a partir de un dato D1 de entrada de 1 uno D2 de 2 , tal que la respuesta para D1 es SI, si y solamente si la respuesta para D2 es SI. Prop: si existe un algoritmo polinomial para resolver 2 entonces existirá un algoritmo polinomial para resolver 1 . Se dice entonces que 2 es mas difícil que 1 La reducción polinomial es un preorden sobre NP: es reflexiva y transitiva. Se puede definir entonces una relación de equivalencia y una relación de orden para las clase s de equivalencia asociadas: 1 es equivalente a 2 si: 12 y 21

6 La subclase más fácil de NP: la clase P
Def: los problemas NP-completos: Cook demostró que todo problema de NP se reduce polinomialmente a SAT, entonces SAT es un problema más difícil que todo problema de NP. Como SAT pertenece a NP, NP contiene una subclase de problemas más difíciles , los NP-completos Los problemas de decisión clásicos son NP-completos Para demostrar que un problema 2 es NP-completo alcanza con verificar que pertenece a NP y de encontrar un problema 1 , probado NP-completo y demostrar que 1  2

7 Ejemplos : 1) Problema de una máquina:
dato: I={ n tareas independientes, no divisibles}, J={(pi,ri,di) iI} / pi=duración, ri = fecha de disponibilidad,di=fecha de finalización pregunta: hay un orden de ejecución de estas n tareas sobre una máquina que respete las fechas de disponibilidad y finalización para todas las tareas? 2) Problema de dos máquinas: J={pi, iI} y un número B pregunta: hay un orden de ejecución de estas n tareas sobre dos máquinas, de duración inferior a B?

8 Prop: Los problemas de una y dos máquinas son NP-completos
Se demuestra probando que: a) los Problemas de una y dos máquinas son de NP b) PARTICION se reduce polinomialmente al problema de una máquina b) PARTICION se reduce polinomialmente al problema de dos máquinas

9 Conjetura fundamental: PNP
La duración de los algoritmos es función de la longitud de los datos de entrada. Para codificar un número entero ai, alcanza con log ai bits, 2 Def: un algoritmo es de complejidad pseudo-polinomial si es polinomial para una codificación en base 1 de los datos de entrada. (la codificación en base 1 de ai necesita ai bits) Def: Problemas NP en sentido fuerte: si son NP -completos y si la existencia de un algoritmo pseudo-polinomial para resolverlo, implica la existencia de uno polinomial.

10 Problemas de búsqueda Para muchos problemas no es suficiente probar la existencia de una solución, es necesario encontrarla Def: Un problema de búsqueda  consiste en un conjunto de datos D y para cada dato D D , un conjunto de soluciones S(D). Un algoritmo resuelve un problema de búsqueda  si, DD, calcula un elemento de S(D) , para el caso S(D) y de lo contrario devuelve . A cada uno de los problemas de decisión clásicos le corresponde un problema de búsqueda

11 Problemas de optimización
Un problema de optimización se obtiene a partir de un problema de búsqueda, asociándole a cada solución un valor y buscando la solución de valor óptimo. Ejemplo: En TSP-optimización se buscará el circuito hamiltoniano de largo mínimo. ==> Un problema de optimización es un problema de búsqueda en el cual la función económica juega un rol particular, ya que establece un criterio de búsqueda: S(D) se restringe al conjunto de soluciones óptimas

12 Reducción de Turing Def: Se dice que un problema de búsqueda 1 se reduce polinomialmente a otro 2 por la reducción de Turing: 1T2, si para resolver 1 existe un algoritmo A1 que utiliza como subprograma un algoritmo A2 que resuelve 2 y tal que la complejidad de A1 es polinomial cuando se evalúa arbitrariamente cada llamado a A2 como una constante. Prop: si A2 polinomial => A1 polinomial La reducción de Turing es también un preorden que permite comparar problemas de búsqueda.

13 Todo problema de decisión puede ser considerado como uno de búsqueda particular. Por convención, D, el conjunto S(D) =, si la respuesta a D es NO y S(D) ={SI} si la respuesta a D es SI. Def: los problemas NP-difíciles(duros): un problema  es NP-difícil si es más difícil que un problema NP-completo, o sea existe un problema NP-completo que se reduce polinomialmente por la reducción de Turing a  ILP-optimización son NP-difíciles

14 Prog. Entera mixta Prog. Entera pura Prog Lineal Prog. 0 1 mixta
Flujos en redes Localización Prog. 0-1 Knapsack entero Pbs lineales de flujos Set packing Set covering 0-1 Knapsack Camino más corto Trasporte Matching Node packing TSP Asignación

15 Algoritmos aproximados
Def: algoritmo aproximado es un algoritmo que construye una solución que no se puede garantizar que sea óptima Para problemas de gran tamaño se utilizan métodos heurísticos Problema de métodos heurísticos: no trabajan eficazmente sobre todos los datos. Por esta razón muchas veces se trabaja con muchas soluciones introduciendo, para la construcción de soluciones, sorteos o por ejemplo por métodos de “vecinos”. Métodos heurísticos: generalmente no validados matemáticamente pero eficientes en la práctica.

16 Problemas de optimización y algoritmos aproximados
Un problema de optimización es un problema combinatorio comprendiendo: un conjunto D de datos, para cada dato d D un conjunto de soluciones S una función F:S->R que fija el valor de cada una de las soluciones Sea s* una solución óptima y F*(d) su valor óptimo Def: Algoritmo aproximado: es un algoritmo A que construye una solución s’, sea F’(d)=F(s’) el valor de esta solución aproximada Def: Aproximación absoluta: un algoritmo aproximado A da una aproximación absoluta si existe k tal que para todo dato d, F*(d)-F’(d)k

17 Def: Aproximación relativa: un algoritmo aproximado A da una aproximación relativa si existen dos números a y b tal que para todo dato d, F*(d)-F’(d) a F*(d)+b Def: Esquema de aproximación: Un esquema de aproximación es una familia de algoritmos aproximados A (Rn+) tal que para todo dato d, A genera una solución de valor F’(d), con: F*(d)- F’(d ) F*(d) Def: Esquema de aproximación enteramente polinomial: es un esquema de aproximación donde la complejidad del algoritmo A es una función polinomial del tamaño del problema y de 1/ 

18 Construcción de soluciones
Def: Un método heurístico es un algoritmo aproximado o procedimiento inexacto que está bien definido paso a paso y que permite llegar a una solución de buena calidad rápidamente. Las heurísticas son utilizadas en problemas donde se prioriza el tiempo de cálculo frente a la calidad de las soluciones. Resultado de heurística: depende de su capacidad de adaptarse a casos particulares, de que evite quedar atrapada en mínimos locales y de su capacidad de exploración de la estructura del problema

19 Técnicas para mejorar una heurística: preproce-samiento de datos, diseño y utilización de estructuras de datos eficientes, utilización de procedimientos aleatorios en forma controlada (para diversificar el espacio de soluciones obtenidas), búsqueda intensa en regiones ‘promisorias’ según cierto criterio, etc.

20 Def: Metaheurísticas: clase de métodos aproximados que dan una metodología general, un marco de trabajo que permite la creación de nuevos algoritmos híbridos por combinación de diferentes conceptos derivados de las heurísticas clásicas, etc. Ejemplos de metaheurísticas: tabu search, simulated annealing, algoritmos genéticos, redes neuronales, GRASP, ANT-systems, etc. Las metaheurísticas utilizan estrategias de aprendizaje de forma de poder estructurar la información para buscar eficientemente soluciones cercanas a la óptima.

21 Tabu search Es una técnica de búsqueda local
Basada en noción de “vecindad”: sea S el espacio de búsqueda de un problema de optimización y f, la función objetivo, N(s) es la función de vecindad N:S--> PS, N depende de la estructura del problema Es un método de búsqueda local iterativo: partiendo de una solución s0 navega por el espacio de búsqueda pasando de una solución a alguna de sus vecinas

22 El algoritmo lleva una lista de movimientos de una solución a otra
El algoritmo lleva una lista de movimientos de una solución a otra. Para evitar ciclos, el movimiento a realizar no debe estar en esta lista, llamada lista-tabu. Lista-tabu contiene los últimos P movimientos Función de aspiración A: es una función / v=f(s) y A(v)=v’ representa el valor de la función objetivo al cual se pretende llegar desde v. La función A permite modificar la lista-tabu Parámetros del algoritmo: largo de la lista-tabu (P), función A de aspiración, cardinalidad del conjunto V  N(s) y máxima cantidad de iteraciones sin mejorar el valor de la función objetivo (K)

23 Algoritmo: 1- s=s0, s-min=s0, i=0 2- calcular V  N(s) y f(s’)=min f(s) / sV, 3- i=i+1, si i>K, stop 4- s’  lista-tabu? No: si f(s’)< f(s-mín), s-min=s’, i=0, fin si. s=s’, actualizar lista-tabu ir a 2 5-Si f(s’)A(f(s)), s=s’,i=0, eliminar s’ de la lista-tabu, ir a 2. 6- elegir otro s’ V, ir a 3.

24 Simulated annealing Método de búsqueda local
Parte de una solución factible s0 , por algún procedimiento se genera una solución vecina: s’V N(s) , y se acepta s’ como nueva solución factible con cierta probabilidad aunque esta sea peor que la de partida. Sea ‘f’ la función objetivo a minimizar y =f(s’)-f(s). La probabilidad de aceptar s’ como nueva solución está dada por: Pr(aceptar s’)= si <0 y e- /t si 0

25 t es un parámetro del algoritmo, llamado temperatura
Fijado t se repite el proceso hasta que se llegue a una condición de ‘equilibrio’ que depende del problema (lo más sencillo: número fijo de iteraciones). Alcanzado el equilibrio para ese t, se decrementa por alguna regla y se inician nuevamente los cálculos El algoritmo finaliza al llegar a un valor de t mínimo en el que prácticamente s’ se acepta sólo si <0, o sea en este punto el algoritmo funciona como una búsquda local simple. Conjunto de parámetros (o estrategia de enfriamiento): temperatura inicial, regla para decrementar la temperatura y condición de equilibrio

26 Algoritmos Genéticos En este enfoque un problema de optimización= encontrar el individuo mas apto (cromosoma) dentro de una población. Función objetivo relacionada con la función de aptitud (fitness) Soluciones=individuos o cromosomas Población es un conjunto de N individuos Individuo=secuencia (string) de elementos atómicos (genes) Un gen puede tomar valores en un conjunto predefinido

27 Algoritmo genético: actúa sobre cromosomas modificando sus componentes de acuerdo a las reglas de la genética, a través de operadores genéticos Operadores: newpop (reproducción): obtiene un nuevo individuo tomando en cuenta el fitness de cada individuo de la población actual. crossover: toma como entrada la nueva población (newpop) y devuelve otra población crosspop. El operador extrae aleatoriamente dos individuos (padres), elige aleatoriamente, por distribución uniforme, el punto de cruzamiento en los cromosomas e intercambia valores a la derecha de este punto generando dos hijos. El operador crossover es utilizado con probabilidad pc. Sirve para mejorar las características de los nuevos individuos

28 mutación: toma como entrada newpop y deuelve una nueva población mutpop, en la cual algunos individuos sufrieron mutaciones. Cada individuo puede ser seleccionado con probabilidad pm, siendo los seleccionados los que sufren mutación. Para usar algoritmos genéticos se deben seleccionar una estructura de cromosomas para codificar en ellos las soluciones. La función de fitness es función de los valores de los genes y debe estar directamente relacionada con la función objetivo.

29 Algoritmo genético: consiste en aplicar sucesivamente los tres operadores a cada población hasta que finalmente la población última estará compuesta por individuos idénticos, el tipo más apto, la solución óptima. NOTA: se debe poder comenzar con un cierto conjunto de soluciones factibles

30 GRASP GRASP= Greedy Randomized Adaptive Search Procedure
Algoritmo GRASP: Inicialización While (criterio de parada no satisfecho) construir-solución (s) búsqueda-local(s) actualizar-sol (s,s*) fin while return(s*)

31 Método de búsqueda local
Método iterativo, una solución factible es construida en cada iteración En cada iteración: elección del próximo elemento: se ordenan, de acuerdo a una función ‘golosa’ , todos los elementos disponibles en una lista de candidatos se elige aleatoriamente un candidato entre los mejores de la lista de candidatos. Heurística es adaptativa: beneficios asociados a cada elemento son actualizados, de forma de tomar en cuenta la elección hecha en el paso anterior Heurística es probabilística

32 RCL=lista restringida de mejores candidatos
Elección aleatoria en RCL permite generar soluciones diferentes en cada iteración Limitaciones: pueden estar relacionadas con la cardinalidad de la lista y el valor de los elementos en relación a la elección ‘golosa’ Pasos del algoritmo: 1- armar RCL 2- S=elección aleatoria en RCL 3- adaptar función golosa (S)

33 EJEMPLO 1 Búsqueda local: casi siempre es beneficioso aplicar una búsqueda local en la vecindad de la solución construida de forma de mejorar la que se tiene. Es común generar varias soluciones iniciales EJEMPLO 2 Calidad de las soluciones GRASP: análisis formal es difícil Existe una justificación si se ve GRASP como una técnica de muestreo: en cada iteración GRASP produce una solución muestra de una distribución desconocida de todas las soluciones posibles. Una medida de la varianza de la distribución es el largo de RCL. Si  RCL =1, todas soluciones iguales, varianza es nula

34 Algoritmo: 1- i=1 2- while i<K 2.1- armar RCL 2.2- elección aleatoria del próximo elemento 2.3- solución completa? No: Adaptar función golosa, ir a 2.1 2.4- búsqueda local 2.5- actualizar solución óptima 2.6- i=i+1 3- fin while

35 ANT systems-Colonias de agentes cooperativos
Se basa en imitar el comportamiento de las colonias de hormigas. Cada hormiga considerada individualmente tiene capacidades básicas pero la colonia logra en conjunto un comportamiento inteligente, como resultado de la interacción entre las hormigas. Pese a ser insectos casi ciegos logran encontrar el camino mas corto entre el hormiguero y la fuente de comida. Comunicación por medio de sustancia química dejada como rastro.

36 Esta idea sirve como base para esta heurística, características:
Una hormiga se mueve escencialmente al azar pero si encuentra una huella dejada previamente es muy probable que la siga, reforzándola además con su propio rastro. Esta idea sirve como base para esta heurística, características: retroalimentación positiva cálculo distribuído: evita la convergencia prematura uso de una heurística greedy constructiva: ayuda a encontrar soluciones aceptables en las primeras etapas del proceso de búsqueda Agentes cooperativos (hormigas): pueden tener memoria, tener cierta inteligencia, etc.

37 Redes neuronales (RRNN)
Se basa en imitar el comportamiento y forma de comunicación de las neuronas reales Elemento básico: una neurona. Recibe estímulos como entrada y como salida una señal que es función de las entradas si la intensidad de las entradas supera cierto umbral (: threshold) Red: conjunto de elementos simples interconectados Una neurona puede recibir como entrada las salidas de otras. Las entradas estan ponderadas por coeficientes wij Diferentes modelos. Modelos en capas

38 Características RRNN:
tienen fundamento matemático información almacenada o representada en patrones formados por los wij. Estos patrones se van alterando a medida que pasa la información. memoria distribuida, con habilidad a resistir al ruido: la pérdida de una unidad de memoria apenas modifica la representación Una red neuronal se entrena, no programa Parámetros: función de transferencia, estructura de conexiones y ley de aprendizaje Buena habilidad para generalizar: aprender exitosamente las características de una categoría de objetos basados en una muestra de esa categoría

39 Aplicaciones RRNN: Predicción
(backpropagation, backpropagation recurrente) Clasificación (perceptron, redes probabilísticas, mapas auto-organizativos, etc) Optimización (Hopfield,Boltzman, Kohonen Filtros de datos (Adaline, madaline, recirculación,etc)


Descargar ppt "Complejidad de los problemas de decisión"

Presentaciones similares


Anuncios Google