T - PowerPoint PPT Presentation

1 / 48
About This Presentation
Title:

T

Description:

T cnicas exactas. T cnicas aproximadas. Problemas. De decisi n 183287 es primo? ... 9,34,-2,6,28] T cnicas Exactas. Fuerza Bruta. Probar todas. las opciones. ... – PowerPoint PPT presentation

Number of Views:41
Avg rating:3.0/5.0
Slides: 49
Provided by: Gon136
Category:
Tags: exactas

less

Transcript and Presenter's Notes

Title: T


1
Técnicas Algorítmicas
  • Gonzalo Sainz-Trápaga (GomoX)
  • Charlas PC 2008
  • www.pcmasmas.com
  • 26 de Julio de 2008

2
Temas
  1. Problemas
  2. Técnicas exactas
  3. Técnicas aproximadas

3
Problemas
4
De decisión
  • 183287 es primo?
  • Cuál es el mínimo de
  • la secuencia 7,8,32?

5
De optimización
  • Hallar el camino más corto
  • entre Buenos Aires y Beijing
  • Ordenar la secuencia
  • 1,9,34,-2,6,28

Elegir o proponer una solución.
6
Técnicas Exactas
7
Fuerza Bruta
Probar todas las opciones.
8
Fuerza Bruta
Se recorre todo el universo de soluciones
posibles.
for cand in generarCandidatos() if
esSolucion(cand) return cand
9
Fuerza Bruta
Ordenar por fuerza bruta
for p in permutaciones(secuencia) if
estaOrdenado(p) return p
10
Fuerza Bruta
  • Limitaciones
  • Usos reales

11
Backtracking
Probar todas las opciones,
de forma más inteligente.
12
Backtracking
Orden!
13
Backtracking
Ordenar la secuencia 3,1,2
14
Backtracking
  • Podas
  • Recursión

15
Backtracking
  • Limitaciones
  • Usos reales

16
Divide Conquer
Vamos por partes
- Jack el destripador
17
Divide Conquer
  • Dividir
  • Conquistar
  • Combinar

18
Divide Conquer
Merge sort
def mergesort(l) m1 l0len(l)/2 m2
llen(l)/2len(l) return combinar(mergesort(m1)
, mergesort(m2))
19
Divide Conquer
  • Recursión
  • Paralelismo

20
Divide Conquer
  • Usos reales
  • Limitaciones

21
Programación Dinámica
Usar COBOL arruina el cerebro
- Edsger Dijkstra
22
Programación Dinámica
Subestructura Óptima
Recursión
23
Programación Dinámica
Fibonacci
def fibo(n) if n 1 or n 2 return 1
else return fibo(n-1) fibo(n-2)
24
Programación Dinámica
fibo(n) fibo(n-1) fibo(n-2)
fibo(n-2) fibo(n-3)
fibo(n-3) fibo(n-4)
fibo(n-4) fibo(n-5)
25
Programación Dinámica
Solapamiento
A
B
26
Programación Dinámica
  • Top-down
  • Bottom-up

27
Programación Dinámica
Fibonacci (top down)
tabla def fibo(n) if n 1 or n 2
return 1 else if n in tabla return
tablan else res fibo(n-1)
fibo(n-2) tablan res return res
28
Programación Dinámica
Fibonacci (bottom up)
tabla def fibo(n) if n 1 or n
2 return 1 else tabla1 fibo(1)
tabla2 fibo(2) for i in 3n-1
tablai tablai-1 tablai-2
return tablan-1 tablan-2
29
Programación Dinámica
Fibonacci (bottom up 2.0)
def fibo(n) if n 1 or n 2 return 1
else t1 fibo(1) t2 fibo(2) for i
in 3n-1 tmp t2 t2 t1 t2
t1 tmp return t1 t2
30
Programación Dinámica
  • Usos reales
  • Limitaciones

31
Programación Lineal
32
Programación Lineal
  • Ecuaciones lineales
  • SIMPLEX
  • Programación entera

33
Técnicas Aproximadas
34
"La mayor deficiencia de la raza humana es
nuestra incapacidad para comprender la función
exponencial."
- Albert Bartlett
35
Heurísticas
36
Metaheurísticas
37
Algoritmos Golosos
38
Algoritmos golosos
  • Usos
  • Limitaciones

39
Taboo Search
40
Algoritmos Genéticos
- Charles Darwin
41
Algoritmos Genéticos
Algoritmo genético
generacion 0 poblacion generarIndividuosAleato
rios() while(generacion lt 5000) padres
poblacion.tomarAlgunos() poblacion.agregar(padre
s.procrear()) poblacion.mutarAlgunos()
poblacion.matarAlgunos() generacion poblacion
.sort(aptitud) machoAlfa poblacion0 return
machoAlfa
42
Algoritmos Genéticos
  • Usos
  • Parametrización

43
Otras metaheurísticas
GRASP Colonias de hormigas Redes neuronales
44
Problemas de las Metaheurísticas
  • Confiabilidad
  • Parametrización

45
Más opciones!
  • Algoritmos aproximados
  • Algoritmos híbridos

46
Esta charla fue traída a ustedes por cortesía de
Lotux Neon.
47
Preguntas?
48
Fin.
Write a Comment
User Comments (0)
About PowerShow.com