Você está na página 1de 6

PROVA

1. BackTracking
- Recursividade
- Busca Exaustiva (Combinatrio)
- Caixeiro Viajante, N-Rainhas, Passeio do Cavalo
- Fcil de implementar
- Usado para encontrar todas as solues possveis para o
problema
- Percorre a rvore por DFS (depth-first search - busca em
profundidade)
- Descobre uma m escolha e a desfaz voltando
- Percorre toda a arvore de espao de estados at achar uma
soluo
- Trata-se de uma funo de viabilidade

2. Algoritmos Gulosos
- Fcil Implementao
- Nem sempre produz melhor soluo (+informao = > chance
de soluo tima)
- Escolhe o melhor caminho no momento
- Problema do Troco
- No volta atrs
- Podem entrar em loop infinito
- Utilizam de uma estratgia contrria a programao dinmica.

3. Algoritmos Sobre Grafos


- Algoritmo de Busca (profundidade DFS e largura BFS)
* Examina cada arco no mx. uma vez.
- DFS
* backtracking, pr-ordem, labirintos.

* utiliza pilha
- BFS
* utiliza fila de vrtices (s, ento vizinhos com distncia 1 de
s, ento vizinhos a 2 de s)
- Algoritmos de Caminhos Mnimos (Dijkstra)
* Considerado algoritmo guloso
* No garante soluo tima caso grafo possua arestas de
peso negativo
* GPS (menor caminho)
- Algoritmos de rvores Mnimas (Prim, Kruskal)
- Prim
* Algoritmo guloso.
* Subrvore de custo mnimo.
* Conceito de Franja.
- Kruskal (diferena PRIM-KRUSKAL?)
* Algoritmo guloso.
* rvore geradora mnima (soma das arestas conectando
todos os vrtices mnimo).
* Menor custo para rotas de avio.

4. Programao Dinmica
- Mtodo para construo de algoritmos que resolvam problemas
computacionais.
- Otimizao combinatria.
- Recurso com apoio de tabela.
- A funo da tabela salvar a soluo dos subproblemas de
forma que estes no precisem ser recalculados.
- Reduz o problema em subproblemas e resolve esses
subproblemas em busca da soluo tima.
- Consumo de tempo proporcional a tabela.

- A tabela a base de um algoritmo de PD.


- Alguns problemas da otimizao:
* Muitas solues possveis.
* Cada soluo tem um valor.
- Etapas de um algoritmo de PD:
* Caracterizar soluo tima.
* Definir recursivamente o valor da soluo tima.
* Calcular o valor dessa soluo de forma bottom-up
(subproblemas menores para maiores at a raiz).
* Construir soluo a partir dos clculos realizados.
- Exemplos: Fibonacci e Calcular Troco.

5. Branch and Bound


-

Utilizado em problemas de otimizao combinatria


Branch = parties realizadas no espao de solues
Bound = Limitaes nas parties
Divide o problema em sub-problemas da mesma forma que
a Programao Dinmica, de forma que a soluo pode ser
obtida atravs da resoluo dos problemas menores.
- Problemas que no contenham a soluo tima so
descartados
- O problema visto como uma rvore; o n raiz o problema
original e as folhas so solues viveis.
- Permite percorrer a rvore de qualquer maneira (DFS - BFS)
- Limites so utilizados para descartar ns da rvore onde h
certeza de que no originaro solues melhores do que as
j existentes.
- Permitem medir a distncia at a soluo tima.
obs: (no entendi o conceito de limites inferior e superior ainda)

6. Casamento de Padres
- Ato de verificar padres em um conjunto de dados (buscar
string em um texto ou um conjunto de nmeros em um
conjunto maior)
- Busca um padro P de tamanho m em um arranjo T de
tamanho n onde m<=n. Os elementos P e T so definidos
por um alfabeto finito sigma (Ex: a..z ou 0..9).
- Algoritmo Fora Bruta
O algoritmo de fora bruta pode ser utilizado para
casamento de padres. Porm no a melhor escolha
de algoritmo.
A complexidade da Fora Bruta O((n-m)m), ou seja,
ele buscar m em todas posies de n menos o
tamanho de m.
Utilizado para padres e textos pequenos.
- Algoritmo KMP
Complexidade para pior caso O(n).
A diferena entre KMP e Fora Bruta que no KMP os
valores que geraram um falso comeo j so conhecidos, e
por isso sero evitados.

- Algoritmo BMH
Implementao simples.
Muito utilizado em funes localizar de editores de
texto.
Pesquisa o padro da direita para a esquerda.
BMH se difere da fora bruta pois utiliza uma tabela de
deslocamento.

- Mtodo Robin-Karp
Trata cada substring de tamanho M do texto como
chave em uma tabela.
- Casamentos no exatos so situes onde o algoritmo
aproxima o input do caso mais utilizado, como exemplo o
Google aproxima o resultado de um input com erro
gramatical.

7. P, NP e NP-Completo
- Conceito de tempo polinomial: Um algoritmo polinomial se
o seu consumo de tempo limitado por uma funo
polinomial proporcional ao tamanho da instncia do
problema.
- Um algoritmo determinstico pode ser representado por uma
mquina de estados, onde aps o estado inicial, o estado
atual determinar o prximo estado (abstrato pra caralho).
Uma mquina determinstica pode nunca retornar um
resultado.
- J o conceito de no-determinstico se difere quando
quando o algoritmo considera valores externos aos de
entrada previamente definidos, como variveis globais ou
entradas de usurio.
- Tambm considerado como no-determinstico quando se
tem solues distintas segundo uma mesma entrada.
- Basicamente entende-se por NP, os problemas cuja soluo
pode ser verificada em tempo polinomial, mas podem no
ser resolvidos em tempo polinomial.
- Exemplos: Caixeiro Viajante, Quadrado Perfeito.

- Problemas P podem ser resolvidos em tempo polinomial.


Aqui est contida a maior parte dos algoritmos.
- Exemplos: BubbleSort O(n).
- Reduo de Problemas NP
Um problema Y no mais dificil de resolver que um
problema X se um algoritmo que resolve X pode ser
usado para resolver Y.
As etapas dessa reduo so:
Transformar uma instancia de Y
em uma instancia de X, resolver X com um
algoritmo para X obtendo uma soluo S e por fim
transformar S em uma soluo da instancia de Y.
- Um problema C considerado NP-Completo se 1. ele esta
contido em NP e 2. todo problema np-completo redutvel
para C em tempo polinomial.
- P vs NP: Problema conhecido na Ciencia da Computao.
Todo problema cuja soluo pode ser verificada em tempo
polinomial (classe NP), pode ser resolvido em tempo
polinomial (classe P)?

Você também pode gostar