Buscar

FCC - Resumo P1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

FCC – Resumo P1 
Cite algumas características do Fortran. 
 O Fortran permite a criação de programas que se 
fundamentam na velocidade da execução. 
 Em principio dependia de comandos GO to. Posteriormente 
foram inseridos métodos como IF/else, while... 
 Erros de escrita de código são difíceis de serem identificados 
 
O que é MatLab? E qual sua vantagem? 
É um software interativo de grande eficiência especialmente 
voltado para a realização de operações de cálculo numérico. 
Sua grande vantagem é a sua capacidade de integração de 
diferentes áreas. Outra vantagem é o tempo gasto em relação a 
outras linguagens como o Fortran para a solução de problemas 
numericamente complexos. 
 
Cite algumas características do MatLab. 
 Elemento básico de informação é uma matriz 
 Variáveis são definidas com o operador de igualdade 
 Não há declaração de tipos. O espaço de armazenamento é 
alocado dinamicamente 
 
Defina simulação. 
Consiste em empregar formalizações em computadores, tais 
como expressões matemáticas ou especificações formalizadas, 
com o propósito de limitar um processo ou operações do 
mundo real. 
 
Quais as finalidades da simulação? O que é possível obter com 
a simulação? 
 Descrever o comportamento do sistema 
 Construir teorias e hipóteses a partir das observações 
 Usar o modelo para realizar previsões 
 
Defina otimização. 
É o estudo de problemas em que busca minimizar ou maximizar 
uma função através da escolha de variáveis dentro de um 
conjunto de valores possíveis. Através disso pode-se obter o 
melhor desempenho do sistema. 
 
O que é problema de otimização? 
Trata-se de um problema para encontrar a melhor solução de 
todas as soluções viáveis. 
 
O que é problema de otimização combinatória? 
É um problema de otimização com variáveis discretas. Neste 
tipo de problema, que é o mais complexo de ser resolvido, 
procura-se por uma solução, através da permutação de várias 
soluções. 
 
Qual a diferença de problema com variáveis discreto para um 
problema continuo? 
Nos problemas contínuos, o espectro de soluções é mais 
controlado dentro de um intervalo com infinitas soluções. Em 
geral, não modela problemas do mundo real. 
 
Defina um problema NP. 
É um problema de otimização combinatória com algumas 
condições especiais, tais como, o tamanho de toda solução 
viável ser delimitado em um tamanho de dada distancia x, 
poder ser descrito polinominalmente e m ser um tempo 
polinomial computacional. 
 
Defina algoritmo determinístico. Quais as vantagens e 
desvantagens? 
É um algoritmo que, dada certa entrada, produzirá sempre a 
mesma saída. São considerados práticos, pois executam em 
máquinas reais de forma razoavelmente eficiente, mas 
encontrar esse tipo de algoritmo para alguns problemas é difícil 
e nem sempre é do interesse que os resultados sejam 
previsíveis, além de serem computacionalmente complexos em 
alguns casos. 
 
Quais os fatores podem tornar um algoritmo não 
determinístico? 
 Se o algoritmo usa algum valor externo que não o de entrada, 
como um entrada de usuário, uma variável global, etc. 
 Se a operação é algo sensível ao tempo. 
 Potenciais erros de hardware causando mudanças 
inesperadas de estado 
 
Defina algoritmo não determinístico. 
É um algoritmo que pode apresentar comportamentos 
diferentes em diferentes execuções. 
 
Defina alinhamento de sequencias, alinhamento global e local. 
Alinhamento de sequencias – forma de organizar sequencias de 
DNA, RNA e proteínas para identificar regiões similares que 
podem ser consequências de relações funcionais, estruturais ou 
evolucionárias. 
Alinhamento Global – Estratégia para cobrir o comprimento de 
todas as sequencias. Mais genérico. 
Alinhamento Local – Identificam regiões de similaridade dentro 
de sequencias longas que, em gral, são divergentes no todo. 
 
Qual a diferença entre algoritmos baseados em programação 
dinâmica e heurística? 
Os baseados em programação dinâmica são bem mais lentos, 
no entanto precisos. Já os heurísticos são mais 
eficientes(rápidos), mas não produzem soluções exatas. 
 
Defina programação dinâmica. 
É um método aplicável a problemas onde a solução pode ser 
computada a partir de uma solução previamente calculada e 
memorizada de outros subproblemas que compõem o 
problema original. 
 
O que é preciso para que a programação dinâmica possa ser 
aplicada a um problema de otimização? 
Deve ter subestrutura ótima, ou seja, uma solução ótima para o 
problema contém em seu interior soluções ótimas para 
subproblemas, e superposição de problemas (um algoritmo 
recursivo reexamina o mesmo problema muitas vezes). 
 
Como funciona o nw? 
O algoritmo realiza o alinhamento par-a-par entre as 
sequencias, a partir da construção de uma matriz de valores e, 
posteriormente, faz uma escalada em caminho reverso para 
obter o melhor alinhamento. 
 
Qual a diferença entre os algoritmos needleman-wunsch(nw) 
e smith-waterman(sw)? 
O algoritmo nw busca o máximo de coincidências analisando as 
sequencias globalmente, enquanto o algortimo sw preocupa-se 
em encontrar pontos específicos de similaridade dentro das 
sequencias. 
 
De um exemplo de utilização do sw. 
Em um genoma de um vírus, se os pesquisadores tiverem 
conhecimento de uma região em particular que corresponda a 
sua capacidade de mutação, pode-se desenvolver um inibidor 
para ela. 
Algoritmo de needleman-wunsch(nw) 
Utilizando 2 sequencias cria-se uma matriz para alinhar as sequencias. 
Ex: 
Temos as sequencias: E: 
S1=GAATTCAGTTA Match=5 
S2=GGATCGA Mismatch=-3 
Gap=-4 
1. Montamos uma matriz: 
 - G A A T T C A G T T A 
- 
G 
G 
A 
T 
C 
G 
A 
2. Para preencher as células das linhas 0 e colunas 0: 
 
 
3. Para preencher os demais: 
 
 
 
 
 
 
 
4. Com a matriz preenchida: 
 
 - G A A T T C A G T T A 
- 0 -4 -8 -12 -16 -20 -24 -28 -32 -36 -40 -44 
G -4 5 1 -3 -7 -11 -15 -19 -23 -27 -31 -35 
G -8 1 2 -2 -6 -10 -14 -18 -14 -18 -22 -26 
A -12 -3 6 7 3 -1 -5 -9 -13 -17 -21 -16 
T -16 -7 2 3 12 8 4 0 -4 -8 -12 -16 
C -20 -11 -2 -1 8 9 13 9 5 1 -3 -7 
G -24 -15 -6 -5 4 5 9 10 14 10 6 2 
A -28 -19 -10 -1 0 1 5 14 10 11 7 11 
 
5. Para fazer o backtracking: 
 Começa-se no canto inferior direito verificando qual das formulas 
anteriores resultou nesse resultado para saber para qual direção 
seguir. 
 Caso se segue em direção a match/mismatch copiar as sequencias. 
Caso se segue pro lado o gap aparece na segunda sequencia. E 
caso se segue para cima, o gap aparece na primeira sequencia. 
 
 - G A A T T C A G T T A 
- 0 -4 -8 -12 -16 -20 -24 -28 -32 -36 -40 -44 
G -4 5 1 -3 -7 -11 -15 -19 -23 -27 -31 -35 
G -8 1 2 -2 -6 -10 -14 -18 -14 -18 -22 -26 
A -12 -3 6 7 3 -1 -5 -9 -13 -17 -21 -16 
T -16 -7 2 3 12 8 4 0 -4 -8 -12 -16 
C -20 -11 -2 -1 8 9 13 9 5 1 -3 -7 
G -24 -15 -6 -5 4 5 9 10 14 10 6 2 
A -28 -19 -10 -1 0 1 5 14 10 11 7 11 
 
Obtemos: 
 
G A A T T C A G T T A ALIN 1 
G G A _ T C _ G _ _ A 
G A A T T C A G T T A ALIN 2 
(USANDO 12) G G A T _ C _ G _ _ A 
 
Algoritmo de Smith-waterman(sw) 
1. De mesmo modo que em nw, temos 2 sequencias e construímos uma 
matriz a partir delas. 
2. Preenchemos as linhas 0 e colunas 0 com 0. 
3. Utilizamos para preencher as demais células: 
 
 
 
 
 
 
4. Para fazer o backtracking começamos a partir do maior valor encontrado 
na matriz e prosseguimos do mesmo modo que em nw.

Outros materiais