Complexidade de Algoritmos
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.
APA / Barrre
Limite Superior: melhor algoritmo que o resolve (complexidade no pior caso) Limite Inferior: melhor complexidade possvel (algumas vezes um resultado terico). Tcnica mais simples:
Diferena entre os limites ou a diminuio do limite inferior so os desafios. Sem diferena: complexidade mnina.
APA / Barrre
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 ????
APA / Barrre
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?
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:
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
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
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
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
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
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
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
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
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
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
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).
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.
APA / Barrre
Mochila
APA / Barrre
APA / Barrre
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