7
1 Aula 06 : Slide 1 CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1 Ferramentas para Síntese Automática de Circuitos Integrados Profs: Ricardo Reis e Marcelo Johann Complexidade Computabilidade e Tratabilidade Algoritmos e Abordagens para Otimização de Problemas Aula 06 : Slide 2 CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1 Conteúdo: primeira parte Teoria: Computabilidade Prática: Tratabilidade Medidas de Complexidade Crescimento de Funções Redução de Problemas Classes de Problemas Problemas de Decisão e Otimização Aula 06 : Slide 3 CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1 Teoria da Computabilidade Nem todo problema bem formulado pode ser computado por um algoritmo Gödel’s incompleteness theorem Existem estruturas de conjuntos para as quais é provado que não pode haver um algoritmo que sempre termine com a resposta. MAS isso somente vale para conjuntos infinitos Aula 06 : Slide 4 CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1 Medidas de Complexidade Notação Assintótica Função O: f(n) = O(g(n)) se f é limitada acima por g assintoticamente, com fator constante Função : f(n) = (g(n)) se f é limitada abaixo por g assintoticamente, com fator constante Função Θ: f(n) = Θ(g(n)) se f é limitada abaixo e acima por g assintoticamente, com fatores constantes Aula 06 : Slide 5 CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1 Crescimento de funções > 10 500 > 10 500 9 * 10 157 2 * 10 18 3 * 10 6 720 2 n! > 10 500 10 301 10 30 10 6 10 3 64 4 2 n 10 18 10 9 10 6 8 * 10 3 10 3 216 8 n 3 10 12 10 6 10 4 4 * 10 2 10 2 36 4 n 2 6 * 10 6 3 * 10 3 2 * 10 2 26 10 4.7 0.6 n log 10 n 3 * 10 6 3 * 10 3 3 * 10 2 60 30 18 6 3n 10 6 10 3 10 2 20 10 6 2 n n = 10 6 n = 10 3 n = 10 2 n = 20 n = 10 n = 6 n = 2 function too small: not a concern do need a computer! Bad! Polynomial Aula 06 : Slide 6 CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1 Complexity vs Speed Complexity vs Speed Both are important in practice Complexity When the problem’s instance size increases Speed When the problem’s instance size is bounded

Ferramentas para Síntese Conteúdo: primeira parte ...johann/cmp241/aula06.problems.algorithms.ppt.pdf · CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS

Embed Size (px)

Citation preview

Page 1: Ferramentas para Síntese Conteúdo: primeira parte ...johann/cmp241/aula06.problems.algorithms.ppt.pdf · CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS

1

Aula 06 : Slide 1CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Ferramentas para SínteseAutomática de Circuitos IntegradosProfs: Ricardo Reis e Marcelo Johann

ComplexidadeComputabilidade e TratabilidadeAlgoritmos e Abordagens para

Otimização de Problemas

Aula 06 : Slide 2CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Conteúdo: primeira parte

Teoria: Computabilidade Prática: Tratabilidade Medidas de Complexidade Crescimento de Funções Redução de Problemas Classes de Problemas Problemas de Decisão e Otimização

Aula 06 : Slide 3CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Teoria da Computabilidade Nem todo problema bem formulado pode ser

computado por um algoritmoGödel’s incompleteness theorem

Existem estruturas de conjuntos para asquais é provado que não pode haver umalgoritmo que sempre termine com aresposta.

MAS isso somente vale para conjuntosinfinitos

Aula 06 : Slide 4CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Medidas de ComplexidadeNotação Assintótica

Função O: f(n) = O(g(n)) se f é limitada acima por gassintoticamente, com fator constante

Função Ω: f(n) = Ω(g(n)) se f é limitada abaixo por gassintoticamente, com fator constante

Função Θ: f(n) = Θ(g(n)) se f é limitada abaixo e acimapor g assintoticamente, com fatores constantes

Aula 06 : Slide 5CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Crescimento de funções

> 10500> 105009 * 101572 * 10183 * 1067202n!

> 105001030110301061036442n

10181091068 * 1031032168n3

10121061044 * 102102364n2

6 * 1063 * 1032 * 10226104.70.6n log10 n

3 * 1063 * 1033 * 10260301863n

106103102201062n

n = 106n = 103n = 102n = 20n = 10n = 6n = 2function

too small: not a concern do need a computer!

Bad

!Po

lyno

mia

l

Aula 06 : Slide 6CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Complexity vs SpeedComplexity vs Speed

Both are important in practice

Complexity When the problem’s instance size increases

Speed When the problem’s instance size is

bounded

Page 2: Ferramentas para Síntese Conteúdo: primeira parte ...johann/cmp241/aula06.problems.algorithms.ppt.pdf · CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS

2

Aula 06 : Slide 7CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Redução de ProblemasProblema A

Problema BAula 06 : Slide 8CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Classes de Problemas

Classe P Determinístico Polinomial

Aula 06 : Slide 9CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Classes de Problemas

Classe NP Não-determinístico Polinomial

Aula 06 : Slide 10CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Classes de Problemas

Classe NP-Completo Problemas relacionados Qualquer um pode ser reduzido ao outro Se houver solução para um, há para todos “são o mesmo”

Aula 06 : Slide 11CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Classes de Problemas

Classe NP-Difícil Problemas pelo menos tão difíceis quanto os

mais difíceis da classe NP Todos NP se reduzem a NP-Hard

Aula 06 : Slide 12CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Relacionamento das classes

Venn Diagram

Page 3: Ferramentas para Síntese Conteúdo: primeira parte ...johann/cmp241/aula06.problems.algorithms.ppt.pdf · CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS

3

Aula 06 : Slide 13CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Relacionamento das Classes

Wikipedia

http://en.wikipedia.org/wiki/Complexity_classhttp://en.wikipedia.org/wiki/NP-hard

Complexity Zoo

Aula 06 : Slide 14CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Problemas de Decisão

Resposta deve ser SIM ou NÃO

Aula 06 : Slide 15CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Problemas de Pesquisa

Encontrar uma entrada para a qual aresposta é SIM

Aula 06 : Slide 16CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Problemas de Otimização

Há um mérito (número) associado à cadapossível valor de entrada: encontrar o menorou maior valor

Aula 06 : Slide 17CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Satisfiability

The Boolean SATisfiability game: http://www.cril.univ-

artois.fr/~roussel/satgame/satgame.php?level=1&lang=eng

Aula 06 : Slide 18CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Bad news:Most CAD problems are NP-complete or NP-Hard

So, How do we solve them???

SEGUNDA PARTE…

Page 4: Ferramentas para Síntese Conteúdo: primeira parte ...johann/cmp241/aula06.problems.algorithms.ppt.pdf · CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS

4

Aula 06 : Slide 19CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Conteúdo: segunda parte

Otimização Convexa (MODELO)Pesq. Oper., Progr. linear, quadrática, geométrica

Mecanismos de BuscaGuloso, Backtrack, Local, Exaustiva, Branch-and-bound,Programação Dinâmica, Tabu, GRASP

Algoritmos Randomizados e Meta-HeurísticasSA, TA, GA, MA, AC

Aula 06 : Slide 20CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Problem Problem and Solutionand Solution SpaceSpace

Aula 06 : Slide 21CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

How How is is this cost functionthis cost function??

Aula 06 : Slide 22CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Modelos lineares

Aula 06 : Slide 23CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Modelos lineares

X1 é o espaço de soluções, X2 é o valor a otimizar…Mas… Só existe uma variável no problema?

Aula 06 : Slide 24CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Funções multi-dimensionais

Page 5: Ferramentas para Síntese Conteúdo: primeira parte ...johann/cmp241/aula06.problems.algorithms.ppt.pdf · CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS

5

Aula 06 : Slide 25CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Modelos Quadráticos

Aula 06 : Slide 26CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Programação Geométrica

Tutorial DATE 2005 Stephen Boyd

http://www.stanford.edu/~boyd/papers/date05.htmlhttp://www.stanford.edu/~boyd/papers/gp_tutorial.html

Aula 06 : Slide 27CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Algoritmos Gulosos (Greedy)

Tomam cada decisão conforme a melhoropção local

Percorrem da raiz a uma folha diretamente Geralmente não encontram o mínimo global, Pois os problemas não possuem em geral

decisões independentes entre sí

Aula 06 : Slide 28CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Backtracking

Consiste em desfazer decisões tomadas etomar novas.

Equivale a percorrer a árvore emprofundidade (DFS)

Aula 06 : Slide 29CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

BUSCA LOCAL

Muito semelhante a backtracking Consiste simplesmente em partir de uma

solução e ir verificando as soluções“vizinhas”, especialmente as de menor custo

Mas pode ser multidimensional, baseado emalterações

Mas objetivo principal é visitar os vizinhosmais “baratos”

Aula 06 : Slide 30CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Busca Exaustiva

É o Resultado de uma backtracking completo,ou DFS completo

Pode ser empregado, lembrem, quando oproblema é limitado (bounded) - entradastêm tamanho pequeno

Page 6: Ferramentas para Síntese Conteúdo: primeira parte ...johann/cmp241/aula06.problems.algorithms.ppt.pdf · CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS

6

Aula 06 : Slide 31CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Branch-and-Bound

Consiste em avaliar a melhor solução de umasub-árvore e podá-la caso uma soluçãomelhor já tenha sido encontrada

Igualmente, no contexto de backtracking

Uma variante interessante é o aprendizadodinâmico. Ex: SAT

Aula 06 : Slide 32CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Programação Dinâmica Quando o problema possui a propriedade de

que toda a solução ótima somente pode sercomposta por trechos ótimos (ex: caminhos)

Mas, em situações intermediárias, não sesabe quais caminhos alternativos ganham

Progr. Dinâmica faz uma coleção de soluçõesparciais e as filtra assim que pode compará-las. Exemplos: Saco do ladrão, buffers

Aula 06 : Slide 33CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Randomizados e Meta-Heurísticas

Randomized Algorithms

SA - Simulated Annealing TA - Threshold Accepting GA - Genetic Algorithm MA - Memetic Algorithm AC - Ant Colony

Aula 06 : Slide 34CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Three basic functions: Temperature Schedule (above), Cost(wire length) and Perturbation (changes in current solution).

PerturbationCost

Reject / Accept

thanks to Renato Hentschke

AnnealingAnnealing

Aula 06 : Slide 35CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

In a In a NutshellNutshell

While (temp*=0.99 > finalvalue) make_perturbation(); if ( newcost < actualcost || rand() < e^(-deltacost / temp) ) accept(); else reject();

Simulated annealing does:

Aula 06 : Slide 36CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Threshold AcceptingThreshold Accepting

While (threshold*=0.99 > finalvalue) make_perturbation(); if ( newcost < actualcost + threshold ) accept(); else reject();

Threshold Accepting is solely:

It is easier and more efficientbut Why???

Page 7: Ferramentas para Síntese Conteúdo: primeira parte ...johann/cmp241/aula06.problems.algorithms.ppt.pdf · CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS

7

Aula 06 : Slide 37CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Threshold AcceptingThreshold Accepting1) Integrating a constant distribution leads to the same normal distribution of perturbations

2) It is easier to advance:

Aula 06 : Slide 38CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Threshold AcceptingThreshold Accepting

Results 1 - 10 of about 1,870,000 for"simulated annealing". (0.26 seconds)

Results 1 - 10 of about 28,000 for"threshold accepting". (0.18 seconds)

Results 1 - 10 of about 145 for"bachelor acceptance". (0.26 seconds)

Aula 06 : Slide 39CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Understanding Understanding S.A. S.A. and and T.A.T.A.S.A. and T.A. are random walks in the

space stateThe more you walk, more likely you end upclose to the optimal…

Requires some tuning and expertiseAppletshttp://www-lehre.inf.uos.de/~sborggre/SimulatedAnnealing.html

http://www.duke.edu/~jmu2/color/gc.html

Aula 06 : Slide 40CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Algoritmos GenéticosOu Evolução Simulada

População Qualidade do Indivíduo define sobrevivência Cruzamento Mutação Elitismo e Importância da Morte

Memória

Aula 06 : Slide 41CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Algoritmos Meméticos

Os individuos aprendem durante a vida A aprendizagem é transmitida em DNA

mitocondrial

Aula 06 : Slide 42CMP241 - Ferramentas para Síntese Automática de CIs - Reis/Johann - UFRGS 2009/1

Próxima aula

ParticionamentoPosicionamentoFloorplanning