Sie sind auf Seite 1von 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)?

Das könnte Ihnen auch gefallen