Número:
Enunciado: Uma empresa de produtos alimentícios possui uma frota de veículos que realizam entregas por diversas cidades. Os veículos de transporte de mercadoria possuem uma capacidade limitada de carga e devem realizar entregas em diferentes cidades distribuídas em um mapa. O gerente desta empresa deseja minimizar os custos no processo de entrega de mercadorias determinando rotas que minimizem a distância total percorrida e atenda a todas as demandas das cidades do mapa. Os veículos devem partir do depósito e retornar para o mesmo e cada cidade só deve ser visitada uma vez.
A figura abaixo ilustra uma possível solução do problema:
O problema descrito acima pode ser reduzido ao:
a) Ciclo Hamiltoniano
b) Clique
c) Fluxo máximo
d) Caxeiro Viajante
e) NDA
Ideia original de: Lucas Oliveira Batista
Blog com a finalidade de auxiliar na etapa de aprendizagem pós aula.
sexta-feira, 14 de junho de 2013
MO 417 - QUESTÃO PARA A PROVA ORAL 2ª QUESTÃO
Número:
Enunciado: Sabendo
que SAT é NP-Completo e que existem funções polinomiais f(n) e g(n) que
possibilitam a redução de SAT ao CLIQUE transformando a entrada de SAT
em uma entrada para CLIQUE e transformando o resultado de CLIQUE para o
resultado de SAT. É INCORRETO afirmar que:
Ideia original de: Lucas Oliveira Batista
a) A redução de SAT ao CLIQUE prova que CLIQUE é pelo menos NP-difícil.
b)
Se soubessemos que a cota inferior de SAT é omega(h(n)) podemos afirmar
que a cota inferior de CLIQUE é igual a cota inferior de SAT,
omega(h(n)) apenas se f(n)+h(n)=o(h(n)).
c) Se soubessemos que CLIQUE tem cota superior O(h(n)) podemos afirmar
que SAT tem cota inferior O(h(n)).
d) Se soubessemos que CLIQUE tem cota superior O(h(n)) podemos afirmar
que SAT tem cota superior O(h(n)) apenas se f(n)+h(n)=o(h(n)).
e) NDA
Definições:
Cota
superior: Dado um problema, se conhecemos um algoritmo que resolve tal
problema em um modelo computacional em tempo T(n) então T(n) é a cota
superior do problema.
Cota
inferior: Dado um problema e um modelo computacional, a cota inferior
do problema expressa a eficiência mínima para qualquer algoritmo que
possa resolver o problema neste modelo computacional. Por exemplo,
problemas de ordenação por comparação tem cota inferior = tetha(nlgn).
Ideia original de: Lucas Oliveira Batista
quinta-feira, 30 de maio de 2013
MO417 - 1ª QUESTÃO PARA A PROVA ORAL
Número:
Enunciado: Dada a rede de fluxo abaixo com origem "s" e sorvedor "t", determine o valor do fluxo, o fluxo máximo e o corte mínimo s-t, respectivamente.
a) 15 , 21 , ({s,a,b,c,d,e} {t})
b) 15 , 23 , ({a,b,c,d,e} {s,t})
c) 15 , 21 , ({s,a,b,c,d} {e,t})
d) 23 , 23 , ({s,a,b,c} {d,e,t})
e) NDA
Ideia original de: Lucas Oliveira Batista
Enunciado: Dada a rede de fluxo abaixo com origem "s" e sorvedor "t", determine o valor do fluxo, o fluxo máximo e o corte mínimo s-t, respectivamente.
a) 15 , 21 , ({s,a,b,c,d,e} {t})
b) 15 , 23 , ({a,b,c,d,e} {s,t})
c) 15 , 21 , ({s,a,b,c,d} {e,t})
d) 23 , 23 , ({s,a,b,c} {d,e,t})
e) NDA
Ideia original de: Lucas Oliveira Batista
MO417 - 2ª QUESTÃO PARA A PROVA ORAL
Número:
Enunciado: Sobre o método de Ford-Fulkerson e suas implementações podemos afirmar:
I) Em uma rede de fluxo, um corte (S,T) é definido como um corte em que a origem "s" e o sorvedor "t" encontram-se em conjuntos diferentes.
II) Em uma rede de fluxo, o fluxo máximo com origem "s" e sorvedor "t" é igual a capacidade do corte máximo (S,T)
III) O algoritmo de Edmonds-Karp tem complexidade O(VE²), pois utiliza a busca em largura O(VE) para calcular caminhos aumentantes.
IV) Em uma rede de fluxo G com origem "s" e sorvedor "t", se existe um caminho de "s" até "t" sobre a rede residual Gf então o fluxo em G não é máximo.
a) I, III e IV são verdadeiras
b) II e III são verdadeiras
c) III e IV são verdadeiras
d) I e IV são verdadeiras
e) NDA
Ideia original de: Lucas Oliveira Batista
Enunciado: Sobre o método de Ford-Fulkerson e suas implementações podemos afirmar:
I) Em uma rede de fluxo, um corte (S,T) é definido como um corte em que a origem "s" e o sorvedor "t" encontram-se em conjuntos diferentes.
II) Em uma rede de fluxo, o fluxo máximo com origem "s" e sorvedor "t" é igual a capacidade do corte máximo (S,T)
III) O algoritmo de Edmonds-Karp tem complexidade O(VE²), pois utiliza a busca em largura O(VE) para calcular caminhos aumentantes.
IV) Em uma rede de fluxo G com origem "s" e sorvedor "t", se existe um caminho de "s" até "t" sobre a rede residual Gf então o fluxo em G não é máximo.
a) I, III e IV são verdadeiras
b) II e III são verdadeiras
c) III e IV são verdadeiras
d) I e IV são verdadeiras
e) NDA
Ideia original de: Lucas Oliveira Batista
sexta-feira, 17 de maio de 2013
MO417 - QUESTÃO PARA A PROVA ORAL
Número:
Enunciado: Considerando os algoritmos de Bellman-Ford, Dag-Shortest-Paths ou Dijkstra, analise os grafos
abaixo e indique quais destes algoritmos
podem ser utilizados para encontrar um caminho mais curto a partir do
vértice s.
Grafo 2:
Grafo 3:
a) Grafo 1: Dijkstra e Dag-Shortest-Paths. Grafo 2: Bellman-Ford e Dijkstra. Grafo 3: Dag-Shortest-Paths e Bellman-Ford
b) Grafo 1: Bellman-Ford. Grafo 2: Bellman-Ford
e Dag-Shortest-Paths. Grafo 3: Bellman-Ford e Dijkstra
c) Grafo 1:
Nenhum dos algoritmos. Grafo
2: Bellman-Ford e Dag-Shortest-Paths. Grafo 3: Bellman-Ford e Dijkstra
d) Grafo 1: Bellman-Ford. Grafo 2: Bellman-Ford
e Dag-Shortest-Paths. Grafo 3: Bellman-Ford, Dag-Shortest-Paths e Dijkstra
e) NDA
Ideia
original de: Lucas Oliveira Batista
sexta-feira, 3 de maio de 2013
MO417-QUESTÃO PARA A PROVA ORAL -1ª QUESTÃO
Número:
Enunciado: Quais das arestas devem ser removidas do grafo abaixo para que seja possível obter uma ordenação topológica?
a) 9 e 3
b) 8 e 5
c) 1 e 10
d) 9 e 1
e) NDA
Ideia original de: Lucas Oliveira Batista
quinta-feira, 2 de maio de 2013
MO417 - QUESTÃO PARA A PROVA ORAL - 2ª QUESTÃO
Número:
Enunciado: Marque a alternativa que NÃO corresponde a uma possível “breadth-first tree”, construída
pela busca em largura com origem no vértice 1 sobre o grafo abaixo:
Ideia original de: Lucas Oliveira Batista
quinta-feira, 18 de abril de 2013
MO417 - QUESTÃO PARA A PROVA ORAL
Número:
Enunciado: Podemos representar uma expressão contendo operadores e
operandos binários em uma árvore binária de forma que a raiz contem um operador
que deve ser aplicado ao resultado das expressões das sub-árvores esquerda e
direita. Uma expressão em Notação Polonesa os operadores devem preceder os dois
valores numéricos associados.
Dado uma expressão e sua árvore correspondente:
5+3*2
Assinale a alternativa que contém o percurso utilizado na árvore e a notação polonesa da expressão:
a) Percorrer
a árvore em pós-ordem: 5+3*2
b) Percorrer
a árvore em pré-ordem: 532*+
c) Percorrer
a árvore em pós-ordem: +5*32
d) Percorrer
a árvore em pré-ordem: +5*32
e) NDA
Ideia
original de: Lucas Oliveira Batista
sexta-feira, 5 de abril de 2013
MO417 - QUESTÃO PARA A PROVA ORAL - 2ª QUESTÃO
Número:
Enunciado: Comparando os pseudo-códigos abaixo que calculam a sequência de Fibonacci podemos afirmar que:
a) Fib1 e Fib2 possuem o mesmo tempo de execução, pois calculam a sequência de Fibonacci resolvendo os mesmos subproblemas várias vezes.
b) Fib1 e Fib2 utilizam a técnica de divisão e conquista, pois esta técnica é utilizada quando o problema é dividido em subproblemas dependentes.
c) Se adicionarmos a Fib1 a técnica de memoização, Fib1 tem tempo de execução menor que Fib2, pois nem todos os subproblemas são resolvidos para encontrar a solução do problema geral.
d) Fib2 utiliza a técnica de programação dinâmica, pois esta técnica é utilizada quando há uma repetição dos mesmos subproblemas os quais não são independentes, ou seja, os subproblemas compartilham subsubproblemas.
e) NDA
Ideia original de: Lucas Oliveira Batista
Enunciado: Comparando os pseudo-códigos abaixo que calculam a sequência de Fibonacci podemos afirmar que:

a) Fib1 e Fib2 possuem o mesmo tempo de execução, pois calculam a sequência de Fibonacci resolvendo os mesmos subproblemas várias vezes.
b) Fib1 e Fib2 utilizam a técnica de divisão e conquista, pois esta técnica é utilizada quando o problema é dividido em subproblemas dependentes.
c) Se adicionarmos a Fib1 a técnica de memoização, Fib1 tem tempo de execução menor que Fib2, pois nem todos os subproblemas são resolvidos para encontrar a solução do problema geral.
d) Fib2 utiliza a técnica de programação dinâmica, pois esta técnica é utilizada quando há uma repetição dos mesmos subproblemas os quais não são independentes, ou seja, os subproblemas compartilham subsubproblemas.
e) NDA
Ideia original de: Lucas Oliveira Batista
MO417 - QUESTÃO PARA A PROVA ORAL - 1ª QUESTÃO
Número:
Enunciado: Sobre programação dinâmica assinale a alternativa correta marcando V para verdadeiro e F para falso:
( ) Ao contrário da divisão e conquista as técnicas de programação dinâmica utilizam um enfoque tabular de baixo para cima que resolve todos os subproblemas uma única vez. Este enfoque gera algoritmos mais eficientes.
( ) Problemas onde a divisão de um problema de tamanho n resulta em a subproblemas de tamanho n-1 geralmente nos levam a algoritmos recursivos exponenciais O(a^n). A programação dinâmica aplicada a estes problemas não gera algoritmos eficientes.
( ) A construção de um algoritmo utilizando programação dinâmica supõe quatro etapas: definição da subestrutura ótima, definição da recursividade, resolução dos subproblemas (bottom-up) e construção da solução ótima.
( ) A programação dinâmica geralmente é aplicada a problemas de otimização, quando os subproblemas são dependentes e superpostos, buscando todas as soluções ótimas para o problema.
a) V – F – V – F
b) V – V – V – F
c) F – F – F – V
d) F – V – V – F
e) NDA
Ideia original de: Lucas Oliveira Batista
Enunciado: Sobre programação dinâmica assinale a alternativa correta marcando V para verdadeiro e F para falso:
( ) Ao contrário da divisão e conquista as técnicas de programação dinâmica utilizam um enfoque tabular de baixo para cima que resolve todos os subproblemas uma única vez. Este enfoque gera algoritmos mais eficientes.
( ) Problemas onde a divisão de um problema de tamanho n resulta em a subproblemas de tamanho n-1 geralmente nos levam a algoritmos recursivos exponenciais O(a^n). A programação dinâmica aplicada a estes problemas não gera algoritmos eficientes.
( ) A construção de um algoritmo utilizando programação dinâmica supõe quatro etapas: definição da subestrutura ótima, definição da recursividade, resolução dos subproblemas (bottom-up) e construção da solução ótima.
( ) A programação dinâmica geralmente é aplicada a problemas de otimização, quando os subproblemas são dependentes e superpostos, buscando todas as soluções ótimas para o problema.
a) V – F – V – F
b) V – V – V – F
c) F – F – F – V
d) F – V – V – F
e) NDA
Ideia original de: Lucas Oliveira Batista
sexta-feira, 29 de março de 2013
MO417 - QUESTÃO PROVA ORAL
Numero:
Enunciado: Dado
o procedimento FUNCTION (A) abaixo, podemos afirmar que:
FUNCTION
(A)
1 if (A.length%2!=0)
2 max=min=A[1]
3 iniciaFor=2
4 elseif(A[1]
> A[2]){
5 max
= A[1]
6 min
= A[2]
7 iniciaFor=3
8 else max=A[2]
9 min=A[1]
10 iniciaFor=3
11 for
(i= iniciaFor;i<A.length;i=i+2)
12 if(A[i]>A[i+1])
13 if(max<A[i])
14 max=A[i];
15 if
(min>A[i+1])
16 min=A[i+1];
17 elseif(max<A[i+1])
18 max=A[i+1]
19 if
(min>A[i])
20 min=A[i]
21 RETURN (max,min)
a) Busca os
elementos máximo e mínimo independentemente, fazendo no máximo 3(n-3)/2 comparações.
b) Busca os
elementos máximo e mínimo independentemente, fazendo no máximo 2n – 2 comparações.
c) Busca os
elementos máximo e mínimo simultâneos, fazendo no máximo (3n)/2 -2 comparações.
d) Busca os
elementos máximo e mínimo simultâneos, fazendo no máximo 3⌊n/2⌋ comparações.
e) NDA
Ideia
original de: Lucas Oliveira Batista
sexta-feira, 22 de março de 2013
MO417 - QUESTÃO PARA A PROVA ORAL
Número:
Enunciado: Um
estudante de bioinformática possui uma lista com N enzimas e um arranjo A (ilustrado abaixo) que
contém inibidores de enzimas associados a uma enzima específica.
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
…
|
N
|
|
A
|
B
|
C
|
F
|
L
|
A
|
A
|
H
|
J
|
Y
|
…
|
Z
|
Tomando
os 10 primeiros elementos como exemplo, o estudante deseja ordenar os
inibidores de enzimas, de forma que elementos repetidos na entrada tenha a
mesma ordem de precedência na saída e sem utilizar uma estrutura de dados
adicional, da seguinte forma:
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
|
A
|
A
|
A
|
B
|
C
|
F
|
H
|
J
|
L
|
Y
|
Qual algoritmo
de ordenação poderia ser utilizado?
a) Bucket-sort, Radix-sort e Heap-sort.
b) Todos os
algoritmos classificados como divisão e conquista.
c) Selection-sort, Insertion-sort e Quick-sort.
d) Counting-sort, Insertion-sort e Heap-sort.
e) NDA
Ideia
original de: Lucas Oliveira Batista
sexta-feira, 15 de março de 2013
MO417 - QUESTÃO PARA PROVA ORAL
Número:
Enunciado: Dada a seguinte função recursiva:
Function (n)
if (n ≤ 1)
PARAR
else
Ativar processo X
Function (n/2)
A fórmula de recorrência que representa esta função é:
T(n) = 1 + T(n/2), n>1
T(1) = 0
Sendo
T(n) o número de ativações do processo X, podemos afirmar que:
a) A recorrência não pode ser resolvida pelo método mestre, pois não existe a constante “a”.
b)
T(n) = Θ (lg n), logo o processo x será ativado lg n vezes.
c)
T(n) = Θ (n lg n), logo o processo x será ativado n lg n vezes.
d)
T(n) = Θ (2n), logo o processo x será ativado 2n vezes.
e)
NDA
Ideia original de: Lucas Oliveira Batista
sexta-feira, 8 de março de 2013
MO417 - Questão para a prova oral
Número:
Enunciado: Sobre a notação O, Ω e algoritmos, assinale V para verdadeiro e F para falso:
( ) O (lê-se o maiúsculo) fornece um limite assintótico superior e é formalmente definido como O(g(n)) = {f(n): existem constantes positivas c e n0 tais que 0 ≤ f(n) ≤ cg(n) para todo n>n0}
( ) Ao contrário de O (lê-se o maiúsculo), Ω fornece um limite assintótico inferior e é formalmente definido como Ω(g(n)) = {f(n): existem constantes positivas c e n0 tais que 0 ≤ cg(n) < f(n) para todo n>n0}
( ) Um limite inferior para um problema P é uma função h(n). Todo algoritmo que resolve P efetua pelo menos Ω(h(n)) operações.
( ) Dado um problema P, se P é Ω(h(n)) e encontramos um algoritmo A com complexidade O(h(n)) entao A é um algoritmo ótimo para P.
( ) O tempo de execução do algoritmo selection_sort para o pior caso é O(n²) e para o melhor caso O(n)
a. V - V - V F - V
b. F - F - F - V - F
c. V - F - F - F - V
d. V - F - V - V - F
e. NDA
Ideia original de: Lucas Oliveira Batista
Enunciado: Sobre a notação O, Ω e algoritmos, assinale V para verdadeiro e F para falso:
( ) O (lê-se o maiúsculo) fornece um limite assintótico superior e é formalmente definido como O(g(n)) = {f(n): existem constantes positivas c e n0 tais que 0 ≤ f(n) ≤ cg(n) para todo n>n0}
( ) Ao contrário de O (lê-se o maiúsculo), Ω fornece um limite assintótico inferior e é formalmente definido como Ω(g(n)) = {f(n): existem constantes positivas c e n0 tais que 0 ≤ cg(n) < f(n) para todo n>n0}
( ) Um limite inferior para um problema P é uma função h(n). Todo algoritmo que resolve P efetua pelo menos Ω(h(n)) operações.
( ) Dado um problema P, se P é Ω(h(n)) e encontramos um algoritmo A com complexidade O(h(n)) entao A é um algoritmo ótimo para P.
( ) O tempo de execução do algoritmo selection_sort para o pior caso é O(n²) e para o melhor caso O(n)
a. V - V - V F - V
b. F - F - F - V - F
c. V - F - F - F - V
d. V - F - V - V - F
e. NDA
Ideia original de: Lucas Oliveira Batista
sexta-feira, 1 de março de 2013
MO417 - Complexidade de Algoritmos I
Blog com a finalidade de auxiliar na etapa de aprendizagem pós aula.
Assinar:
Postagens (Atom)











