Tema 14: Algoritmos de aproximación -...

22
Tema 14: Algoritmos de aproximación 1 Análisis de algoritmos M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom

Transcript of Tema 14: Algoritmos de aproximación -...

Page 1: Tema 14: Algoritmos de aproximación - eafranco.comeafranco.com/docencia/analisisdealgoritmos/files/14/Diapositivas14.pdf · Una función de Oportunidad o bien llamada de Aptitud

Tema 14: Algoritmos de aproximación

1

Análisis de algoritmos

M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom

Page 2: Tema 14: Algoritmos de aproximación - eafranco.comeafranco.com/docencia/analisisdealgoritmos/files/14/Diapositivas14.pdf · Una función de Oportunidad o bien llamada de Aptitud

• Introducción • Algoritmos de aproximación • Determinismo • Factor de aproximación • Naturaleza de los problemas

• Recocido Simulado • Algoritmos Evolutivos

• Algoritmos genéticos

• Redes Neuronales • Composición de las redes neuronales artificiales • Ejemplo: Red Neuronal Perceptrón Multicapa

Contenido

2

Anál

isis d

e al

gorit

mos

14

Alg

oritm

os d

e ap

roxi

mac

ión

Prof

. Edg

ardo

Adr

ián

Fran

co M

artín

ez

Page 3: Tema 14: Algoritmos de aproximación - eafranco.comeafranco.com/docencia/analisisdealgoritmos/files/14/Diapositivas14.pdf · Una función de Oportunidad o bien llamada de Aptitud

Introducción • Muchos problemas NP-Completos son formulados

en forma natural como problemas de optimización.

• Se sabe que la programación dinámica y otros son algoritmos exactos para encontrar soluciones óptimas requieren tiempo super-polinomial a pesar de que estos algoritmos son más eficientes que la búsqueda exhaustiva pura, su tiempo de corrida es aún exponencial. Por esa razón es entonces natural buscar otra alternativa de solución como son los algoritmos de aproximación que trabajan en tiempo polinomial.

3

Anál

isis d

e al

gorit

mos

14

Alg

oritm

os d

e ap

roxi

mac

ión

Prof

. Edg

ardo

Adr

ián

Fran

co M

artín

ez

Page 4: Tema 14: Algoritmos de aproximación - eafranco.comeafranco.com/docencia/analisisdealgoritmos/files/14/Diapositivas14.pdf · Una función de Oportunidad o bien llamada de Aptitud

4

Anál

isis d

e al

gorit

mos

14

Alg

oritm

os d

e ap

roxi

mac

ión

Prof

. Edg

ardo

Adr

ián

Fran

co M

artín

ez

• Los algoritmos de aproximación surgen de la inquietud de la comunidad científica en los años 70's, donde se pensó que las dos clases P y NP eran distintas y que por lo tanto no había algoritmos de tiempo polinomial que fuesen capaces de resolver estos problemas.

• Muchos investigadores consideraron problemas de manera que se obtuvieran versiones que fueran tratables. Así nace la primera relajación considerada que fue la condición de "optimabilidad", por lo que se enfocaron a la construcción de algoritmos de aproximación que trabajan en tiempo polinomial y que calculan soluciones cercanas al óptimo global.

Page 5: Tema 14: Algoritmos de aproximación - eafranco.comeafranco.com/docencia/analisisdealgoritmos/files/14/Diapositivas14.pdf · Una función de Oportunidad o bien llamada de Aptitud

Algoritmos de aproximación • Un algoritmo de aproximación es un algoritmo

usado para encontrar soluciones aproximadas a problemas de optimización.

• Están a menudo asociados con problemas NP-completos ya que como es poco probable que alguna vez se descubran algoritmos eficientes de tiempo polinómico que resuelvan exactamente problemas NP-completos, se opta por encontrar soluciones no-óptimas en tiempo polinomial.

5

Anál

isis d

e al

gorit

mos

14

Alg

oritm

os d

e ap

roxi

mac

ión

Prof

. Edg

ardo

Adr

ián

Fran

co M

artín

ez

Page 6: Tema 14: Algoritmos de aproximación - eafranco.comeafranco.com/docencia/analisisdealgoritmos/files/14/Diapositivas14.pdf · Una función de Oportunidad o bien llamada de Aptitud

6

Anál

isis d

e al

gorit

mos

14

Alg

oritm

os d

e ap

roxi

mac

ión

Prof

. Edg

ardo

Adr

ián

Fran

co M

artín

ez

• A diferencia los algoritmos que utilizan heurísticas, que usualmente sólo encuentran soluciones razonablemente buenas en tiempos razonablemente rápidos, lo que se busca en por parte de un algoritmo de aproximación es encontrar soluciones que está demostrado son de calidad y cuyos tiempos de ejecución están acotados por cotas conocidas.

• Los algoritmos de aproximación están siendo cada vez más utilizados para resolver problemas donde los algoritmos exactos de tiempo polinomial son conocidos pero demasiado costosos debido al tamaño de la entrada.

Page 7: Tema 14: Algoritmos de aproximación - eafranco.comeafranco.com/docencia/analisisdealgoritmos/files/14/Diapositivas14.pdf · Una función de Oportunidad o bien llamada de Aptitud

• Un algoritmo de aproximación puede ser determinista o no determinista.

• Si el algoritmo de aproximación es determinista, se sabe que siempre obtendrá la misma solución para los parámetros de entrada y esta será aproximada según su factor de aproximación determinista.

• Si el algoritmo de aproximación no es determinista y se ejecuta muy rápidamente, es común ejecutarlo varias veces y elegir la mejor de las soluciones aproximadas producidas.

7

Anál

isis d

e al

gorit

mos

14

Alg

oritm

os d

e ap

roxi

mac

ión

Prof

. Edg

ardo

Adr

ián

Fran

co M

artín

ez

Determinismo

Page 8: Tema 14: Algoritmos de aproximación - eafranco.comeafranco.com/docencia/analisisdealgoritmos/files/14/Diapositivas14.pdf · Una función de Oportunidad o bien llamada de Aptitud

• Un algoritmo de aproximación bien diseñado cuenta con un análisis formal que muestra que la diferencia entre su solución y la solución optima es de un factor constante.

• Este factor se llama el factor de aproximación. • < 1 para maximización • > 1 para minimización

• Depende de la aplicación qué tan cerca debería ser la solución aproximada a la solución óptima 8

Anál

isis d

e al

gorit

mos

14

Alg

oritm

os d

e ap

roxi

mac

ión

Prof

. Edg

ardo

Adr

ián

Fran

co M

artín

ez

Factor de aproximación

Page 9: Tema 14: Algoritmos de aproximación - eafranco.comeafranco.com/docencia/analisisdealgoritmos/files/14/Diapositivas14.pdf · Una función de Oportunidad o bien llamada de Aptitud

• La mayoría de los problemas NP-completos de optimización se puede ver en la Naturaleza y existen muchos procesos que buscan un estado estable.

• Dichos procesos pueden contemplarse como procesos naturales de optimización. Se han propuesto varios algoritmos de optimización global que simulan estos procesos naturales.

9

Anál

isis d

e al

gorit

mos

14

Alg

oritm

os d

e ap

roxi

mac

ión

Prof

. Edg

ardo

Adr

ián

Fran

co M

artín

ez

Naturaleza de los problemas

Page 10: Tema 14: Algoritmos de aproximación - eafranco.comeafranco.com/docencia/analisisdealgoritmos/files/14/Diapositivas14.pdf · Una función de Oportunidad o bien llamada de Aptitud

• Tres ejemplos clásicos son: a) Recocido Simulado, basado en el proceso natural de

enfriamiento de un sólido hasta que alcanza su punto de equilibrio.

b) Algoritmos Evolutivos, basados en el concepto de evolución biológica. Entre los mismos se pueden considerar las siguientes ramas : Algoritmos Genéticos, Estrategias Evolutivas, Programación Evolutiva y Programación Genética.

c) Redes Neuronales Artificiales, basadas en procesos relacionados con el sistema nervioso central.

10

Anál

isis d

e al

gorit

mos

14

Alg

oritm

os d

e ap

roxi

mac

ión

Prof

. Edg

ardo

Adr

ián

Fran

co M

artín

ez

Page 11: Tema 14: Algoritmos de aproximación - eafranco.comeafranco.com/docencia/analisisdealgoritmos/files/14/Diapositivas14.pdf · Una función de Oportunidad o bien llamada de Aptitud

• El recocido simulado, o enfriamiento simulado es un algoritmo de búsqueda meta-heurística para problemas de optimización global; el objetivo general de este tipo de algoritmos es encontrar una buena aproximación al valor óptimo de una función en un espacio de búsqueda grande. A este valor óptimo se lo denomina "óptimo global"

• El nombre e inspiración viene del proceso de recocido del acero y cerámicas, una técnica que consiste en calentar y luego enfriar lentamente el material para variar sus propiedades físicas. El calor causa que los átomos aumenten su energía y que puedan así desplazarse de sus posiciones iniciales (un mínimo local de energía); el enfriamiento lento les da mayores probabilidades de recristalizar en configuraciones con menor energía que la inicial (mínimo global). 11

Anál

isis d

e al

gorit

mos

14

Alg

oritm

os d

e ap

roxi

mac

ión

Prof

. Edg

ardo

Adr

ián

Fran

co M

artín

ez

Recocido Simulado

Page 12: Tema 14: Algoritmos de aproximación - eafranco.comeafranco.com/docencia/analisisdealgoritmos/files/14/Diapositivas14.pdf · Una función de Oportunidad o bien llamada de Aptitud

• El método fue descrito independientemente por Scott Kirkpatrick, C. Daniel Gelatt y Mario P. Vecchi en 1983,2 y por Vlado Černý en 1985.

• El método es una adaptación del algoritmo Metropolis-Hastings, un método de Montecarlo utilizado para generar muestras de estados de un sistema termodinámico.

• En cada iteración, el método de recocido simulado evalúa algunos vecinos del estado actual s y probabilísticamente decide entre efectuar una transición a un nuevo estado s' o quedarse en el estado s. En el ejemplo de recocido de metales, el estado s se podría definir en función de la posición de todos los átomos del material en el momento actual; el desplazamiento de un átomo se consideraría como un estado vecino del primero en este ejemplo. Típicamente la comparación entre estados vecinos se repite hasta que se encuentre un estado óptimo que minimice la energía del sistema o hasta que se cumpla cierto tiempo computacional u otras condiciones.

12

Anál

isis d

e al

gorit

mos

14

Alg

oritm

os d

e ap

roxi

mac

ión

Prof

. Edg

ardo

Adr

ián

Fran

co M

artín

ez

Page 13: Tema 14: Algoritmos de aproximación - eafranco.comeafranco.com/docencia/analisisdealgoritmos/files/14/Diapositivas14.pdf · Una función de Oportunidad o bien llamada de Aptitud

13

Anál

isis d

e al

gorit

mos

14

Alg

oritm

os d

e ap

roxi

mac

ión

Prof

. Edg

ardo

Adr

ián

Fran

co M

artín

ez

Page 14: Tema 14: Algoritmos de aproximación - eafranco.comeafranco.com/docencia/analisisdealgoritmos/files/14/Diapositivas14.pdf · Una función de Oportunidad o bien llamada de Aptitud

• Los algoritmos evolutivos son métodos de optimización y búsqueda de soluciones basados en los postulados de la evolución biológica. En ellos se mantiene un conjunto de entidades que representan posibles soluciones, las cuales se mezclan, y compiten entre sí, de tal manera que las más aptas son capaces de prevalecer a lo largo del tiempo, evolucionando hacia mejores soluciones cada vez.

• Los algoritmos evolutivos, y la computación evolutiva, son una rama de la inteligencia artificial. Son utilizados principalmente en problemas con espacios de búsqueda extensos y no lineales, en donde otros métodos no son capaces de encontrar soluciones en un tiempo razonable.

14

Anál

isis d

e al

gorit

mos

14

Alg

oritm

os d

e ap

roxi

mac

ión

Prof

. Edg

ardo

Adr

ián

Fran

co M

artín

ez

Algoritmos Evolutivos

Page 15: Tema 14: Algoritmos de aproximación - eafranco.comeafranco.com/docencia/analisisdealgoritmos/files/14/Diapositivas14.pdf · Una función de Oportunidad o bien llamada de Aptitud

• Siguiendo la terminología de la teoría de la evolución, las entidades que representan las soluciones al problema se denominan individuos o cromosomas, y el conjunto de éstos, población. Los individuos son modificados por operadores genéticos, principalmente el sobrecruzamiento, que consiste en la mezcla de la información de dos o más individuos; la mutación, que es un cambio aleatorio en los individuos; y la selección, consistente en la elección de los individuos que sobrevivirán y conformarán la siguiente generación. Dado que los individuos que representan las soluciones más adecuadas al problema tienen más posibilidades de sobrevivir, la población va mejorando gradualmente.

15

Anál

isis d

e al

gorit

mos

14

Alg

oritm

os d

e ap

roxi

mac

ión

Prof

. Edg

ardo

Adr

ián

Fran

co M

artín

ez

Page 16: Tema 14: Algoritmos de aproximación - eafranco.comeafranco.com/docencia/analisisdealgoritmos/files/14/Diapositivas14.pdf · Una función de Oportunidad o bien llamada de Aptitud

• Suele hablarse de tres paradigmas principales de algoritmos evolutivos: • Programación evolutiva • Estrategias evolutivas • Algoritmos genéticos

• Cada uno de estos paradigmas se originó independientemente y

con distintas motivaciones. Actualmente, los algoritmos tienden a combinar características de éstos tres y a incluir mecanismos de otros campos de estudio, tales como el aprendizaje automático, otros algoritmos de búsqueda, o diferentes estructura de datos. Algunas de las tendencias actuales son las siguientes: • Evolución diferencial • Modelos probabilísticos • Evolución simulada • Algoritmos culturales • Algoritmos meméticos • Programación genética

16

Anál

isis d

e al

gorit

mos

14

Alg

oritm

os d

e ap

roxi

mac

ión

Prof

. Edg

ardo

Adr

ián

Fran

co M

artín

ez

Page 17: Tema 14: Algoritmos de aproximación - eafranco.comeafranco.com/docencia/analisisdealgoritmos/files/14/Diapositivas14.pdf · Una función de Oportunidad o bien llamada de Aptitud

• Son llamados así porque se inspiran en la evolución biológica y su base genético-molecular. Estos algoritmos hacen evolucionar una población de individuos sometiéndola a acciones aleatorias semejantes a las que actúan en la evolución biológica (mutaciones y recombinaciones genéticas), así como también a una selección de acuerdo con algún criterio, en función del cual se decide cuáles son los individuos más adaptados, que sobreviven, y cuáles los menos aptos, que son descartados.

• Un algoritmo genético es un método de búsqueda dirigida

basada en probabilidad. Bajo una condición muy débil (que el algoritmo mantenga elitismo, es decir, guarde siempre al mejor elemento de la población sin hacerle ningún cambio) se puede demostrar que el algoritmo converge en probabilidad al óptimo.

17

Anál

isis d

e al

gorit

mos

14

Alg

oritm

os d

e ap

roxi

mac

ión

Prof

. Edg

ardo

Adr

ián

Fran

co M

artín

ez

Algoritmos Genéticos

Page 18: Tema 14: Algoritmos de aproximación - eafranco.comeafranco.com/docencia/analisisdealgoritmos/files/14/Diapositivas14.pdf · Una función de Oportunidad o bien llamada de Aptitud

• Funcionamiento de un algoritmo genetico • Entre un conjunto de soluciones de un problema, llamado fenotipo, y

el conjunto de individuos de una población natural, codifica la información de cada solución en una cadena, generalmente binaria, llamada cromosoma. Los símbolos que forman la cadena son llamados genes. Cuando la representación de los cromosomas se hace con cadenas de dígitos binarios se le conoce como genotipo. Los cromosomas evolucionan a través de iteraciones, llamadas generaciones. En cada generación, los cromosomas son evaluados usando alguna medida de aptitud. Las siguientes generaciones (nuevos cromosomas), operadores genéticos, de sobrecruzamiento y de mutación.

18

Anál

isis d

e al

gorit

mos

14

Alg

oritm

os d

e ap

roxi

mac

ión

Prof

. Edg

ardo

Adr

ián

Fran

co M

artín

ez

Page 19: Tema 14: Algoritmos de aproximación - eafranco.comeafranco.com/docencia/analisisdealgoritmos/files/14/Diapositivas14.pdf · Una función de Oportunidad o bien llamada de Aptitud

• Los componentes básicos de un algoritmo genético son 1. Operadores genéticos (mutación y cruzamiento) 2. Una representación apropiada del problema a resolver 3. Una función de Oportunidad o bien llamada de Aptitud (fitness) 4. Un procedimiento de inicialización

19

Anál

isis d

e al

gorit

mos

14

Alg

oritm

os d

e ap

roxi

mac

ión

Prof

. Edg

ardo

Adr

ián

Fran

co M

artín

ez

Algoritmo_Genético_Simple; Begin Generar una población Inicial; Calcular la función de evaluación de cada individuo; While NOT Terminado do Begin // Producir una nueva generación For Tamaño_población /2 do Begin // Ciclo Reproductivo Seleccionar dos individuos de la generación anterior, para el cruce (probabilidad de selección proporcional a la función de evaluación del individuo); Cruzar con cierta probabilidad los dos individuos obteniendo dos

descendientes; Mutar los dos descendientes con cierta probabilidad; Calcular la función de evaluación de los dos descendientes

mutados; Insertar los dos descendientes mutados en la nueva generación; End del for; If la población ha convergido then Terminado = True; end del if end del while end del Algoritmo_Genético_Simple;

Page 20: Tema 14: Algoritmos de aproximación - eafranco.comeafranco.com/docencia/analisisdealgoritmos/files/14/Diapositivas14.pdf · Una función de Oportunidad o bien llamada de Aptitud

• Las redes de neuronas artificiales son un paradigma de aprendizaje y procesamiento automático inspirado en la forma en que funciona el sistema nervioso de los animales. Se trata de un sistema de interconexión de neuronas que colaboran entre sí para producir un estímulo de salida.

• Consisten en unidades de procesamiento densamente interconectadas , llamadas neuronas por su similaridad funcional con las neuronas biológicas. Las unidades de procesamiento reciben, pro-cesan y transmiten señales, tal como las neuronas biológicas.

20

Anál

isis d

e al

gorit

mos

14

Alg

oritm

os d

e ap

roxi

mac

ión

Prof

. Edg

ardo

Adr

ián

Fran

co M

artín

ez

Redes Neuronales

Page 21: Tema 14: Algoritmos de aproximación - eafranco.comeafranco.com/docencia/analisisdealgoritmos/files/14/Diapositivas14.pdf · Una función de Oportunidad o bien llamada de Aptitud

• Los nueve componentes principales del funcionamiento de las Redes Neuronales Artificiales son:

1. Un conjunto de unidades de procesamiento (neuronas); 2. Un estado de activación (variable de estado); 3. Una función de salida para cada unidad; 4. Un conjunto de conexiones (patrón de conectividad); 5. Un conjunto de reglas de propagación para propagar las

señales de salida a través de la RNA. 6. Una regla de combinación 7. Una regla de activación 8. Una regla de modificación 9. Un ambiente en el cual opera la RNA

21

Anál

isis d

e al

gorit

mos

14

Alg

oritm

os d

e ap

roxi

mac

ión

Prof

. Edg

ardo

Adr

ián

Fran

co M

artín

ez

Composición de las redes neuronales artificiales

Page 22: Tema 14: Algoritmos de aproximación - eafranco.comeafranco.com/docencia/analisisdealgoritmos/files/14/Diapositivas14.pdf · Una función de Oportunidad o bien llamada de Aptitud

22

Anál

isis d

e al

gorit

mos

14

Alg

oritm

os d

e ap

roxi

mac

ión

Prof

. Edg

ardo

Adr

ián

Fran

co M

artín

ez

Ejemplo: Red Neuronal Perceptrón Multicapa