Anda di halaman 1dari 26

Anlise e Projeto de Algoritmos

Prof. Eduardo Barrre

eduardo.barrere@ice.ufjf.br www.barrere.ufjf.br www.ufjf.br/pgcc www.dcc.ufjf.br

Complexidade de Algoritmos

Computabilidade: Um problema computvel se solucionvel numa Mquina de Turing


Uma mquina de Turing pode ser pensada como uma fita infinita de papel, dividida em pequenas casas, e um lpis/borracha especial que pode seguir instrues. Essas instrues so bastante simples: o lpis pode ler um smbolo na fita e, analisando-o, pode apag-lo e escrever por cima do smbolo lido e, mudando de estado, pode se mover para a direita ou para a esquerda para analisar um novo smbolo, ou simplesmente parar.

Programa de Ps-Graduao em Cincia da Computao DCC UFJF

APA / Barrre

Mquina de Turing
Existem mquinas de Turing determinsticas e nodeterminsticas. As determinsticas so aquelas que quando esto em um certo estado, lendo um certo dado, podem se movimentar de um nico modo rumo prxima configurao. As no-determinsticas podem se mover para diversas configuraes, a partir do dado lido e da configurao interna atual. Evidentemente as mquinas determinsticas formam uma subclasse das no-determinsticas.

Alan Mathison Turing 1912-1954

Programa de Ps-Graduao em Cincia da Computao DCC UFJF

APA / Barrre

Limite de Complexidade de um Problema

Limite Superior: melhor algoritmo que o resolve (complexidade no pior caso) Limite Inferior: melhor complexidade possvel (algumas vezes um resultado terico). Tcnica mais simples:

Contar as entradas e sadas produzidas

Diferena entre os limites ou a diminuio do limite inferior so os desafios. Sem diferena: complexidade mnina.
APA / Barrre

Programa de Ps-Graduao em Cincia da Computao DCC UFJF

Intratabilidade

Algoritmo no eficiente -> algoritmo de complexidade no polinomial O(2n) -> grandes valores de n -> algoritmo intratvel!

Algoritmos razoveis: polinomiais Algoritmos no razoveis: exponencial Limite inferior polinomial e Limite superior exponencial ????

Programa de Ps-Graduao em Cincia da Computao DCC UFJF

APA / Barrre

Problemas de Otimizao vs. Problemas de Deciso


A resoluo de um problema de otimizao consiste na seleo da melhor soluo para outro problema. Arvore Geradora Mnima (Ot.): escolher a melhor soluo (i.e. de menor peso) para o problema da determinao de uma arvore geradora (qualquer). A cada problema de optimizao esta normalmente associado um problema de deciso, i.e., um problema cuja soluo e uma resposta sim/no: Arvore Geradora Mnima (Dec.): dado um valor k, existir alguma rvore geradora para G com peso k?
Programa de Ps-Graduao em Cincia da Computao DCC UFJF APA / Barrre

Problemas Difceis Famosos


Coloraco de um Grafo G = (V;E): e uma funco C : V S, com S um conjunto finito de cores, verificando a restrio: (v, w) pertence a E -> C(v) C(w)
(vertices adjacentes so coloridos com cores diferentes)

Problema de Otimizao: Dado G, determinar uma colorao C tal que o numero de cores usadas mnimo. Problema Deciso: Dado G e k inteiro, haver alguma coloraco de G usando no mximo k cores?

Programa de Ps-Graduao em Cincia da Computao DCC UFJF

APA / Barrre

Colorao de Grafos

Aplicao: problemas de escalonamento, por exemplo o problema de para determinar horrios dos exames de um conjunto de disciplinas ( V ) sujeito a incompatibilidades (pares de disciplinas cujos exames no podem acontecer em simultneo - E). Qual o nmero de slots de tempo necessrios? Exemplo:

Programa de Ps-Graduao em Cincia da Computao DCC UFJF

APA / Barrre

Colorao de Grafos
Soluo tima: 3 cores

Desafios: determinar solues para instncias deste problema sobre grafos maiores . . . escrever um algoritmo para resolver o problema.
APA / Barrre

Programa de Ps-Graduao em Cincia da Computao DCC UFJF

Problemas Difceis Famosos


Bin Packing": Dados n objetos de dimenses s1, .... , sn, com 0 < si 1,

Problema Otimizao: Quantas gavetas de dimenso 1 sero necessrias para arrum-los? (E qual a disposio dos objetos correspondente?) Problema Deciso: Dado um inteiro k, ser possvel arrumar os n objetos em k gavetas?

Aplicaes: Sistemas Operacionais: dispor programas em pginas de memria; dispor dados em palavras de tamanho fixo; Investigao Operacional: problemas de corte de componentes (ex. tecido) em peas de dimenso normalizada.
Programa de Ps-Graduao em Cincia da Computao DCC UFJF APA / Barrre

Bin Packing
Entrada: lista de itens L. Sada : empacotamento de L nos bins. 1. Coloque cada item grande em um bin. Indexe os bins em uma ordem arbitrria. Defina estes bins como ativos. Organize os itens pequenos como segue. 2. Se houver um bin ativo aberto, coloque o item atual ai no bin ativo aberto com o menor ndice se o bin tiver espao suficiente para ai. Caso contrrio feche este bin ativo e considere o bin extra:
(a) Se exite um bin extra aberto e h espao suficiente para ai, ento coloque ai nesse bin extra. (b) Caso contrrio feche o bin extra, se existir. Abra um novo bin para ai e defina este bin como bin extra.

3. Se no h bin ativo aberto, crie um novo bin para ai, defina este novo bin como bin ativo.
Programa de Ps-Graduao em Cincia da Computao DCC UFJF APA / Barrre

Bin Packing

Entrada: lista de itens L. Sada : empacotamento de L nos bins.

Programa de Ps-Graduao em Cincia da Computao DCC UFJF

APA / Barrre

Bin Packing

1. Coloque cada item grande em um bin. Indexe os bins em uma ordem arbitrria. Defina estes bins como ativos. Organize os itens pequenos

Programa de Ps-Graduao em Cincia da Computao DCC UFJF

APA / Barrre

Bin Packing

1. 2.

..... Se houver um bin ativo aberto, coloque o item atual ai no bin ativo aberto com o menor ndice se o bin tiver espao suficiente para ai. Caso contrrio feche este bin ativo e considere o bin extra: (a) Se exite um bin extra aberto e h espao suficiente para ai, ento coloque ai nesse bin extra. (b) Caso contrrio feche o bin extra, se existir. Abra um novo bin para ai e defina este bin como bin extra.
APA / Barrre

Programa de Ps-Graduao em Cincia da Computao DCC UFJF

Bin Packing

1. 2.

..... Se houver um bin ativo aberto, coloque o item atual ai no bin ativo aberto com o menor ndice se o bin tiver espao suficiente para ai. Caso contrrio feche este bin ativo e considere o bin extra: (a) Se exite um bin extra aberto e h espao suficiente para ai, ento coloque ai nesse bin extra. (b) Caso contrrio feche o bin extra, se existir. Abra um novo bin para ai e defina este bin como bin extra.
APA / Barrre

Programa de Ps-Graduao em Cincia da Computao DCC UFJF

Bin Packing

1. 2.

..... Se houver um bin ativo aberto, coloque o item atual ai no bin ativo aberto com o menor ndice se o bin tiver espao suficiente para ai. Caso contrrio feche este bin ativo e considere o bin extra: (a) Se exite um bin extra aberto e h espao suficiente para ai, ento coloque ai nesse bin extra. (b) Caso contrrio feche o bin extra, se existir. Abra um novo bin para ai e defina este bin como bin extra.
APA / Barrre

Programa de Ps-Graduao em Cincia da Computao DCC UFJF

Bin Packing

1. 2. 3.

..... Se houver um bin ativo aberto, coloque o item atual ai no bin ativo aberto com o menor ndice se o bin tiver espao suficiente para ai. Caso contrrio feche este bin ativo e considere o bin extra: ........... Se no h bin ativo aberto, crie um novo bin para ai, defina este novo bin como bin ativo.
APA / Barrre

Programa de Ps-Graduao em Cincia da Computao DCC UFJF

Bin Packing

1. 2.

..... Se houver um bin ativo aberto, coloque o item atual ai no bin ativo aberto com o menor ndice se o bin tiver espao suficiente para ai. Caso contrrio feche este bin ativo e considere o bin extra: (a) Se exite um bin extra aberto e h espao suficiente para ai, ento coloque ai nesse bin extra. (b) Caso contrrio feche o bin extra, se existir. Abra um novo bin para ai e defina este bin como bin extra.
APA / Barrre

Programa de Ps-Graduao em Cincia da Computao DCC UFJF

Bin Packing

1. 2.

..... Se houver um bin ativo aberto, coloque o item atual ai no bin ativo aberto com o menor ndice se o bin tiver espao suficiente para ai. Caso contrrio feche este bin ativo e considere o bin extra: (a) Se exite um bin extra aberto e h espao suficiente para ai, ento coloque ai nesse bin extra. (b) Caso contrrio feche o bin extra, se existir. Abra um novo bin para ai e defina este bin como bin extra.
APA / Barrre

Programa de Ps-Graduao em Cincia da Computao DCC UFJF

Bin Packing

1. 2. 3.

..... Se houver um bin ativo aberto, coloque o item atual ai no bin ativo aberto com o menor ndice se o bin tiver espao suficiente para ai. Caso contrrio feche este bin ativo e considere o bin extra: ........... Se no h bin ativo aberto, crie um novo bin para ai, defina este novo bin como bin ativo.
APA / Barrre

Programa de Ps-Graduao em Cincia da Computao DCC UFJF

Problemas Difceis Famosos


Mochila": Dada uma mochila de capacidade C e n objetos de dimenses s1, .... ,sn e valores p1, ...., pn,

Problema Otimizao: Determinar o valor mximo dos objetos que se consegue colocar na mochila (e a lista desses objetos). Problema Deciso: Dado um inteiro k, existira um conjunto de objetos que caiba na mochila e corresponda a um valor k?

Aplicaes: Planejamento econmico; investimentos (tamanhos correspondem a capital investido, valor corresponde a lucro esperado).

Programa de Ps-Graduao em Cincia da Computao DCC UFJF

APA / Barrre

Mochila - Enunciado

Um viajante deve levar consigo, apenas uma mochila. Essa mochila possui uma capacidade limitada e deve ser carregada apenas com objetos que sero teis durante a viagem. Cada objeto nico e possui um peso e um determinado valor. Que objetos dever ser levados pelo viajante de forma a maximizar o valor da mochila? Um continer com capacidade limitada deve ser carregado com diversos produtos de pesos e tamanhos diferentes. Como deve-se proceder para carregar o mximo possvel de produtos, desperdiando o mnimo possvel de espao. Um computador est sobrecarregado de arquivos e os mesmos devem ser transferidos para mdias em CD, e sabe-se que ser necessrio mais de um CD. Como deve-se proceder para carregar o mximo possvel de arquivos em cada CD, desperdiando o mnimo possvel de espao em cada mdia.

Programa de Ps-Graduao em Cincia da Computao DCC UFJF

APA / Barrre

Mochila

Programa de Ps-Graduao em Cincia da Computao DCC UFJF

APA / Barrre

Problemas Difceis Famosos


Caminhos e Circuitos de Hamilton: Num grafo G, um caminho de Hamilton um caminho que passa por cada vrtice exatamente uma vez. Um circuito de Hamilton qualquer ciclo que seja um caminho de Hamilton. Problema Deciso: Decidir se G contem ou no um caminho de Hamilton (ou um circuito).

Programa de Ps-Graduao em Cincia da Computao DCC UFJF

APA / Barrre

Problemas Difceis Famosos


Caixeiro Viajante: Dado um grafo G, com seus respectivos pesos,

Problema Otimizao: Determinar o circuito de Hamilton de peso mnimo. Problema Deciso: Para um inteiro k, haver algum circuito de Hamilton em G, com peso k?

Aplicaes: O caixeiro viajante pretende minimizar a distncia total percorrida para passar por todas as cidades que deve visitar. Mas tambm: circuito timo para recolha de lixo ou entrega de correio numa cidade . . .
Programa de Ps-Graduao em Cincia da Computao DCC UFJF APA / Barrre

Caixeiro Viajante

Problema (n-1)! Combinaes possveis: 1) 2) 3) 4) 5) 6)


Programa de Ps-Graduao em Cincia da Computao DCC UFJF

12341 12431 13241 13421 14231 14321


APA / Barrre

Anda mungkin juga menyukai