Clase1: Análisis de Algoritmos, Optimización Clásica, Heurísticas

Slides:



Advertisements
Presentaciones similares
complejidad de un problema.
Advertisements

Tipos de Modelos en Investigación de Operaciones
Melissa Victoria Mendiola Peralta.  Los algoritmos son las series de pasos por los cuales se resuelven los problemas.
MODELOS PARA LA INVESTIGACIÓN DE OPERACIONES. FUNDAMENTACION La característica fundamental de las entidades productivas, tengan o no fines de lucro, sean.
Análisis de los algoritmos Unidad 7. Análisis La resolución práctica de un problema – algoritmo o método de resolución – y por otra un programa o codificación.
“Intervención en el aula a través de situaciones problemas” Formulas y Funciones Docente: Javier Ospina Moreno Institución educativa Ángela Restrepo Moreno.
PRÁCTICAS PROFESIONALIZANTES I TECNICATURA SUPERIOR EN SANEAMIENTO Y CONTROL AMBIENTAL BERTHE CYNTHIA.
INFORMATICA II TEMA. ALGORITMOS MAESTRA PAULINA RUIZ SOSA.
LOS RESULTADOS DE LOS APRENDIZAJES Y LAS PRUEBAS OBJETIVAS COMO INSTRUMENTO DE MEDICION.
1 LENGUAJES DE PROGRAMACIÓN. Son aplicaciones específicas diseñadas para crear otras aplicaciones o programas. Son programas para crear programas. 2.
Componentes Internos Docente Martin Marengo Curso 5I TT y TM
Funciones y gráficas ITZEL ALEJANDRA LOZOYARODRIGUEZ
A quién va dirigido este curso:
IV. Métodos de Búsqueda Estudiaremos los métodos de búsqueda para resolver problema de la IA.
Introducción a la Programación Multimedial
. Primera Open Class Asignatura: Programación Estructurada Tema:
Inventario de Fuentes de Datos Abiertos de México
Qué es la Econometría No hay acuerdo en la definición ya que:
PRESENTACIÓN ESTUDIO DE MERCADO
ESCUELA POLITÉCNICA NACIONAL PRODUCCIÓN DE GAS NATURAL
Funciones o Señales Singulares
PROBLEMA DEL AGENTE VIAJERO
Características estáticas de los elementos del sistema de medición
UNIDAD I: TEORIA Y MODELOS DE SIMULACION
MAESTRÍA EN CONTROL DE OPERACIONES Y GESTIÓN LOGÍSTICA
Proceso de Desarrollo de SW
introducción Ingeniería de software
En la siguiente presentación veremos algunos términos que debemos conocer para iniciar la educación virtual.
CAPÍTULO 9: DETECCIÓN DE LÍNEAS
CLASIFICACION DE SOFWARE EDUCATIVO
Características estáticas de los elementos del sistema de medición
ENFOQUES DE CONSERVACIÓN
El resultado obtenido en esta etapa son las especificaciones de lo que se debe hacer para solucionar el problema.
MÉTODOS NUMÉRICOS ..
Tema 6. Conceptos básicos de programación Clase 1
Fundamentos de Probabilidad
ALGORTIMO Y PROGRAMA REDES PETRI
Fundamentos del computador
Introducción a la Simulación
METODO DE TRANSPORTE APROXIMACION DE VOGEL
PROGRAMACION LINEAL UNIVERSIDAD LIBRE 2016
La Música Tipo de Música.
Unidad 4. Capítulo IX. Búsqueda de Yp: Variación de parámetros.
Simulador modular secuencial basado en ecuaciones
ANÁLISIS DE DATOS Empre Adriana Lombana Toro.
MARCO TEÓRICO.
La Gestión y el Control de Procesos
PROGRAMACIÓN 1 INTRODUCCIÓN
Sabes Que es un ALGORITMO
Java – programación orientada a objetos programación ii – iee
ESTADÍSTICA BÁSICA.
1 INTELIGENCIA ARTIFICIAL 2018-II. Clasificación de problemas algorítmicos.
Fundamento de Sistemas Expertos
5. Optimización de redes. Integrantes: * Christian Cota * Cesar Rojo
FORMULACIÓN DE PROYECTOS
METODOS PARA ANALISIS DE TALUDES
Sea la ecuación diferencial lineal de orden “n” y de coeficientes variables
Pipelining Peligros de control.
“Algoritmos en Inteligencia Artificial” Rogelio Ferreira Escutia
El camí més curt i estratègies per a trobar-lo
Análisis Numéricos Unidad 2
Optimización de Procesos.
Lingüística computacional
MC Beatriz Beltrán Martínez Verano 2018
Nelson Baloian, José A. Pino
¡Data Discovery con R y PBI! ¿Qué es? ¿Por qué es importante?
ANALISIS DE REGRESION SIMPLE
Estrategia algorítmica
REGRESION LINEAL SIMPLE
ACTIVIDAD RESULTADOS ISCE 2018
Transcripción de la presentación:

Clase1: Análisis de Algoritmos, Optimización Clásica, Heurísticas Gabriela Ochoa http://www.ldc.usb.ve/~gabro/ Basado en material elaborado por: Dr. Carlos A. Coello Coello http://delta.cs.cinvestav.mx/~ccoello 02/12/2018

Conceptos Básicos de Análisis de Algoritmos Análisis a priori de algoritmos Orden de magnitud de un algoritmo 02/12/2018

Análisis a priori de algoritmos Ignorar detalles dependientes de la arquitectura del computador o de un lenguaje de programación Analizar el orden de magnitud de la frecuencia de ejecución de las instrucciones de un algoritmo. 02/12/2018

Orden de magnitud de un algoritmo (1/3) Suele usarse la notación “O” (big-O) Complejidad O(g(n)): significa que al correrlo en una computadora con los mismos datos, pero valores incrementales de n, los tiempos resultantes de ejecución serán siempre menores que |g(n)| 02/12/2018

Orden de magnitud de un algoritmo (2/3) Tiempos más comunes de los algoritmos: O(1) < O(log n) < O(n) < O(n log n) < < O(n2) < O(n3) < O(2n) 02/12/2018

Orden de magnitud de un algoritmo (3/3) 02/12/2018

Clase P Un problema pertenece a la clase P si puede ser resuelto en tiempo polinomial en una computadora determinística. Ejemplos: Quicksort, búsqueda binaria, multiplicación matricial. 02/12/2018

Clase NP Problema NP: puede ser resuelto en tiempo polinomial pero usando una computadora no determinística Computadora no detérministica: al ser confrontada con varias opciones, puede “adivinar” la correcta. Nunca hace elecciones incorrectas que la lleven a un paso previo No existen en el mundo real. Herramienta imaginaria que hace que los problemas difíciles parezcan triviales 02/12/2018

P vs NP La clase P contiene problemas que pueden resolverse rápidamente. La clase NP contiene problemas cuya solución puede verificarse rápidamente. En 1971 se planteó la pregunta: ¿Es P = NP? Desde entonces, sigue siendo una pregunta abierta para los teóricos. Se cree que P != NP 02/12/2018

Problemas NP Completos Todos los algoritmos requeridos para resolverlos requieren tiempo exponencial en el peor caso. Es decir, son sumamente difíciles de resolver. Ejemplos: el problema del agente viajero, O(n22n) 02/12/2018

El problema del agente viajero (1/2) Encontrar una permutación que represente el recorrido de una serie de ciudades de tal forma que todas sean visitadas minimizando la distancia total viajada. 02/12/2018

El problema del viajero (2/2) Consideremos n ciudades: El tamaño del espacio de búsqueda 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 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 soluciones posibles (Sólo hay 1,000,000,000,000,000,000,000 litros de agua en el planeta) 02/12/2018

Técnicas Clásicas de Búsqueda y Optimización (1/4) Existen muchas técnicas clásicas para resolver problemas con ciertas características específicas. Es importante conocer la existencia de estas técnicas. Cuando el problema por resolverse se adecúa a ellas, no tiene sentido usar heurísticas. 02/12/2018

Técnicas Clásicas de Búsqueda y Optimización (2/4) Para optimización lineal, el método Simplex sigue siendo la opción más viable. Para optimización no lineal, hay métodos directos (p. ej. la búsqueda aleatoria) y métodos no directos (p. ej., el método del gradiente conjugado). 02/12/2018

Técnicas Clásicas de Búsqueda y Optimización (3/4) Existen también técnicas que construyen parcialmente una solución a un problema. Por ejemplo, la programación dinámica y el método de ramificación y búsqueda (branch & bound). 02/12/2018

Técnicas Clásicas de Búsqueda y Optimización (4/4) Cuando enfrentamos un cierto problema de optimización, si la función a optimizarse se encuentra en forma algebraica, es importante intentar resolverla primero con técnicas clásicas, antes de utilizar cualquier heurística. 02/12/2018

Lo que el mundo real demanda Existen problemas que no pueden resolverse usando un algoritmo que requiere tiempo polinomial. De hecho, en muchas aplicaciones prácticas, no podemos siquiera decir si existe una solución eficiente. Hay muchos problemas para los cuales el mejor algoritmo que se conoce requiere tiempo exponencial. 02/12/2018

¿Qué es una heurística? (1/2) Heurística del griego heuriskein ("encontrar" o "descubrir) El significado del término ha variado en históricamente. Las heurísticas fueron un área predominante en los orígenes de la Inteligencia Artificial Definición actual: técnica que mejora el desempeño en promedio de la solución de un problema, aunque no mejore necesariamente el desempeño en el peor caso (Russell & Norvig, 1995). 02/12/2018

¿Qué es una heurística? (2/2) Definición más precisa (Reeves, 1993): “Una heurística es una técnica que busca soluciones buenas (es decir, casi óptimas) a un costo computacional razonable, aunque sin garantizar factibilidad u optimalidad de las mismas. En algunos casos, ni siquiera puede determinar qué tan cerca del óptimo se encuentra una solución factible en particular.” 02/12/2018

¿Realmente necesitamos técnicas heurísticas? Las técnicas clásicas de optimización son insuficientes cuando: Enfrentamos espacios de búsqueda muy grandes (ej. agente) Algoritmos conocidos más eficientes para resolver el problema requieren tiempo exponencial 02/12/2018

Ejemplos de técnicas heurísticas Búsqueda tabú Recocido simulado Escalando la colina 02/12/2018

Búsqueda Tabú Usa una "memoria" para guiar la búsqueda. Algunas soluciones examinadas recientemente son "memorizadas” y se vuelven tabú (prohibidas) al tomar decisiones acerca del siguiente punto de búsqueda. Es determinística, aunque se le pueden agregar elementos probabilísticos. 02/12/2018

Recocido Simulado Basado en el enfriamiento de los cristales. El esquema de enfriamiento es crucial. Requiere de una temperatura inicial, una final y una función de variación de la temperatura. Es un algoritmo probabilístico de búsqueda local. 02/12/2018

Escalando la Colina Se aplica a un punto a la vez (técnica local). Se generan varios estados posibles y se selecciona el mejor. No hay retroceso ni registro histórico. Puede quedar atrapado fácilmente en óptimos locales. Es un algoritmo determinístico. 02/12/2018