introducci´on a la computaci´on...

39
Introducci´ on a la Computaci´ on Evolutiva Dr. Carlos A. Coello Coello Introducci´ on a la Computaci´ on Evolutiva Dr. Carlos A. Coello Coello Departamento de Computaci´ on CINVESTAV-IPN Av. IPN No. 2508 Col. San Pedro Zacatenco exico, D.F. 07300 email: [email protected] http: //delta.cs.cinvestav.mx/~ccoello Clase No. 1 2016

Upload: others

Post on 08-Sep-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Introduccion a la Computacion Evolutiva

Dr. Carlos A. Coello Coello

Departamento de Computacion

CINVESTAV-IPN

Av. IPN No. 2508

Col. San Pedro Zacatenco

Mexico, D.F. 07300

email: [email protected]

http: //delta.cs.cinvestav.mx/~ccoello

Clase No. 1 2016

Page 2: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Conceptos Basicos de

Analisis de Algoritmos

Analisis a priori de algoritmos

Orden de magnitud de un algoritmo

Clase No. 1 2016

Page 3: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Analisis a priori de algoritmos

Se ignoran los detalles que sean dependientes de la arquitectura deuna computadora o de un lenguaje de programacion y se analiza elorden de magnitud de la frecuencia de ejecucion de las instruccio-nes de un algoritmo.

Clase No. 1 2016

Page 4: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Orden de magnitud de un algoritmo

Suele usarse la notacion “O” (big-O)

Si un algoritmo tiene complejidad O(g(n)) significa que alcorrerlo en una computadora con los mismos datos, perovalores incrementales de n, los tiempos resultantes de ejecucionseran siempre menores que | g(n) |

Clase No. 1 2016

Page 5: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Orden de magnitud de un algoritmo

Los tiempos mas comunes de los algoritmos son:

O(1) < O(log n) < O(n) < O(n log n) < O(n2) < O(n3) < O(2n)

Clase No. 1 2016

Page 6: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Orden de magnitud de un algoritmo

Clase No. 1 2016

Page 7: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Clase P

Un problema pertenece a la clase P si puede ser resuelto en tiempopolinomial en una computadora determinıstica.

Ejemplos: Quicksort, busqueda binaria, multiplicacion matricial.

Clase No. 1 2016

Page 8: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Clase NP

Un problema pertenece a la clase NP si puede ser resuelto entiempo polinomial pero usando una computadora no determinıstica.

Clase No. 1 2016

Page 9: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

P vs NP

La clase P contiene problemas que pueden resolverserapidamente.

La clase NP contiene problemas cuya solucion puedeverificarse rapidamente.

En 1971 se planteo la pregunta: ¿Es P = NP? Desde entonces,sigue siendo una pregunta abierta para los teoricos.

Se cree que P!=NP

Clase No. 1 2016

Page 10: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Problemas NP Completos

Todos los algoritmos requeridos para resolverlos requierentiempo exponencial en el peor caso.

Es decir, estos problemas son sumamente difıciles de resolver.

Ejemplos: el problema del viajero, O(n22n)

Clase No. 1 2016

Page 11: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

El problema del viajero

Encontrar una permutacion que represente el recorrido de unaserie de ciudades de tal forma que todas sean visitadasminimizando la distancia total viajada.

Clase No. 1 2016

Page 12: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

El problema del viajero

Si consideramos n ciudades:

El tamano del espacio de busqueda es: (n− 1)!/2

Para n=10, hay unas 181,000 soluciones posibles.

Para n=20 hay unas 10,000,000,000,000,000 soluciones posibles.

Clase No. 1 2016

Page 13: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

El problema del viajero

Para n=50 hay unas 100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 solucionesposibles.

Clase No. 1 2016

Page 14: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

El problema del viajero

Solo hay 1,000,000,000,000,000,000,000 litros de agua en elplaneta

Clase No. 1 2016

Page 15: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Tecnicas Clasicas de Busqueda y Optimizacion

Existen muchas tecnicas clasicas para resolver problemas conciertas caracterısticas especıficas.

Es importante saber al menos de la existencia de estas tecnicas,pues cuando el problema por resolverse se adecua a ellas, no tieneningun sentido usar heurısticas.

Clase No. 1 2016

Page 16: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Tecnicas Clasicas de Busqueda y Optimizacion

Para optimizacion lineal, el metodo Simplex sigue siendo la opcionmas viable. Para optimizacion no lineal, hay metodos directos (p.ej. la busqueda aleatoria) y metodos no directos (p. ej. el metododel gradiente conjugado).

Clase No. 1 2016

Page 17: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Tecnicas Clasicas de Busqueda y Optimizacion

Existen tambien tecnicas que construyen parcialmente una soluciona un problema. Por ejemplo, la programacion dinamica y el metodode ramificacion y busqueda (branch & bound).

Clase No. 1 2016

Page 18: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Tecnicas Clasicas de Busqueda y Optimizacion

Cuando enfrentamos un cierto problema de optimizacion, si lafuncion a optimizarse se encuentra en forma algebraica, esimportante intentar resolverla primero con tecnicas clasicas, antesde utilizar cualquier heurıstica.

Clase No. 1 2016

Page 19: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Lo que el mundo real demanda

Existen problemas que no pueden resolverse usando unalgoritmo que requiere tiempo polinomial.

De hecho, en muchas aplicaciones practicas, no podemossiquiera decir si existe una solucion eficiente.

Hay muchos problemas para los cuales el mejor algoritmo quese conoce requiere tiempo exponencial.

Clase No. 1 2016

Page 20: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

¿Que es una heurıstica?

La palabra “heurıstica” se deriva del griego heuriskein, que significa“encontrar” o “descubrir”. El significado del termino ha variadohistoricamente. Algunos han usado el termino como un antonimode “algorıtmico”. Por ejemplo, Newell et al. dicen: “a un procesoque puede resolver un cierto problema, pero que no ofrece ningunagarantıa de lograrlo, se le denomina una “heurıstica” para eseproblema”

Clase No. 1 2016

Page 21: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

¿Que es una heurıstica?

Las heurısticas fueron un area predominante en los orıgenes de laInteligencia Artificial. Actualmente, el termino suele usarse comoun adjetivo, refiriendose a cualquier tecnica que mejore eldesempeno en promedio de la solucion de un problema, aunque nomejore necesariamente el desempeno en el peor caso (Russell &Norvig, 1995).

Clase No. 1 2016

Page 22: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

¿Que es una heurıstica?

Una definicion mas precisa y adecuada para los fines de este cursoes la proporcionada por Reeves (1993):Una heurıstica es una tecnica que busca soluciones buenas (esdecir, casi optimas) a un costo computacional razonable, aunquesin garantizar factibilidad u optimalidad de las mismas. En algunoscasos, ni siquiera puede determinar que tan cerca del optimo seencuentra una solucion factible en particular.

Clase No. 1 2016

Page 23: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

¿Realmente necesitamos tecnicas heurısticas?

Cuando enfrentamos espacios de busqueda tan grandes como en elcaso del problema del viajero, y que ademas los algoritmos maseficientes que existen para resolver el problema requieren tiempoexponencial, resulta obvio que las tecnicas clasicas de busqueda yoptimizacion son insuficientes.

Clase No. 1 2016

Page 24: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Ejemplos de tecnicas heurısticas

Busqueda tabu

Recocido simulado

Escalando la colina

Clase No. 1 2016

Page 25: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Busqueda Tabu

Usa una “memoria” para guiar la busqueda.

Algunas soluciones examinadas recientemente son“memorizadas” y se vuelven tabu (prohibidas) al tomardecisiones acerca del siguiente punto de busqueda.

Es determinıstica, aunque se le pueden agregar elementosprobabilısticos.

Clase No. 1 2016

Page 26: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Recocido Simulado

Basado en el enfriamiento de los cristales.

El horario de enfriamiento es crucial.

Requiere de una temperatura inicial, una final y una funcion devariacion de la temperatura.

Es un algoritmo probabilıstico de busqueda local.

Clase No. 1 2016

Page 27: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Escalando la Colina

Se aplica a un punto a la vez (tecnica local).

Se generan varios estados posibles y se selecciona el mejor.

No hay retroceso ni registro historico.

Puede quedar atrapado facilmente en optimos locales.

Es un algoritmo determinıstico.

Clase No. 1 2016

Page 28: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Optimizacion Global

El objetivo principal de cualquier tecnica de optimizacion esencontrar el optimo (o los optimos) globales de cualquier problema.En matematicas, existe un area que se ocupa de desarrollar losformalismos que nos permitan garantizar la convergencia de unmetodo hacia el optimo global de un problema.

Clase No. 1 2016

Page 29: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Optimizacion Global

Desgraciadamente, solo en algunos casos limitados, puedegarantizarse convergencia hacia el optimo global.Por ejemplo, para problemas con espacios de busqueda convexos,las condiciones de Kuhn-Tucker son necesarias y suficientes paragarantizar optimalidad global de un punto.

Clase No. 1 2016

Page 30: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Optimizacion Global

En problemas de optimizacion no lineal, las condiciones deKuhn-Tucker no son suficientes para garantizar optimalidad global.De hecho, todas las tecnicas usadas para optimizacion no linealpueden localizar cuando mucho optimos locales, pero no puedegarantizarse convergencia al optimo global a menos que se usentecnicas exhaustivas o que se consideren tiempos infinitos deconvergencia.

Clase No. 1 2016

Page 31: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Optimizacion Numerica

Existen muchos tipos de problemas de optimizacion, pero los quenos interesan mas para los fines de este curso, son de los deoptimizacion numerica, que pueden definirse de la siguiente manera:

Minimizar f(~x)

sujeta a:

gi(~x) ≤ 0 i = 1, ..., p

hj(~x) = 0 j = 1, ..., n

Clase No. 1 2016

Page 32: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Optimizacion Numerica

Llamaremos a (~x) las variables de decision del problema, gi(~x) sonlas restricciones de desigualdad, y hj(~x) son las restricciones deigualdad. Asimismo, f(~x) es la funcion objetivo del problema (laque queremos optimizar).

Clase No. 1 2016

Page 33: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Optimizacion Numerica

A las restricciones de igualdad y desigualdad expresadasalgebraicamente, se les denomina “restricciones explıcitas”. Enalgunos problemas, existen tambien “restricciones implıcitas”,relacionadas sobre todo con las caracterısticas del problema.

Clase No. 1 2016

Page 34: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Optimizacion Numerica

Por ejemplo, si decimos:

10 ≤ x1 ≤ 20

estamos definiendo que el rango de una variable de decision debeestar contenido dentro de un cierto intervalo. De tal forma, estamos“restringiendo” el tipo de soluciones que se consideraran comovalidas.

Clase No. 1 2016

Page 35: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Ejemplos de espacios de busqueda convexos

Clase No. 1 2016

Page 36: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Ejemplos de espacios de busqueda no convexos

Clase No. 1 2016

Page 37: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Zona factible y no factible

Todas las soluciones a un problema que satisfagan las restriccionesexistentes (de cualquier tipo), se consideran ubicadas dentro de lazona factible. De tal forma, podemos decir que el espacio debusqueda de un problema se divide en la region (o zona) factible yla no factible.

Clase No. 1 2016

Page 38: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Zona factible y no factible

Esta imagen ilustra la diferencia entre la zona factible y no factiblede un problema:

Clase No. 1 2016

Page 39: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase1-2016.pdfClase No. 1 2016 Introducci´on a la Computaci´on Evolutiva Dr. Carlos A. Coello

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Optimizacion Combinatoria

Existe una clase especial de problemas que tambien seran de interespara este curso, en los cuales las variables de decision son discretasy las soluciones suelen presentarse en la forma de permutaciones. Aestos problemas se les denomina de “optimizacion combinatoria”(p. ej. el problema del viajero).

Clase No. 1 2016