Pular para o conteúdo principal

Questão de Algoritmos e Estrutura de Dados — Estrutura de Dados — FIOCRUZ 2024

Algoritmos e Estrutura de DadosEstrutura de Dados
Código
qg145069
Banca
FIOCRUZ
Órgão
FIOCRUZ
Ano
2024
Nível
Superior
Cargo
Tecnologista em Saúde Pública - Bioinformática
Snakemake é um gerenciador de workflows baseado no paradigma do GNU Make. Neste paradigma, define-se um conjunto de regras; cada regra especifica como criar um arquivo de saída a partir de arquivos de entrada. O conjunto dessas regras e as dependências entre elas estabelecem um grafo de dependências entre as tarefas. É correto afirmar que o grafo é:
  1. Anão dirigido.
  2. Bdirigido, mas pode possuir ciclos.
  3. Cdirigido e acíclico.
  4. Duma árvore.
  5. Euma floresta.
Revelar gabarito e comentário

GabaritoC — dirigido e acíclico.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Gerenciador de workflows Snakemake: grafo de dependências

Gabarito: letra C. No paradigma do GNU Make (e do Snakemake), as regras definem a criação de arquivos de saída a partir de arquivos de entrada, estabelecendo um grafo de dependências direcionado e acíclico (DAG). Um arquivo de saída depende de seus arquivos de entrada, e não pode haver dependência circular, pois isso implicaria que um arquivo depende de si mesmo, o que é proibido.

1Dirigido (entrada → saída)
2Acíclico (DAG)
Ciclos quebram o workflow
3Não é árvore
Nó pode ter múltiplos predecessores
Nó pode ter múltiplos sucessores
Grafo de dependências (Snakemake/Make)
LEVELsoulevel.com.br
Grafo de dependências (Snakemake/Make): Dirigido (entrada → saída); Acíclico (DAG) (Ciclos quebram o workflow); Não é árvore (Nó pode ter múltiplos predecessores, Nó pode ter múltiplos sucessores)

Alternativa A — ❌ Incorreta

O grafo é dirigido, pois as dependências têm direção (entrada → saída). Um grafo não dirigido não representaria corretamente a relação de dependência.

Alternativa B — ❌ Incorreta

Embora seja dirigido, o grafo não pode possuir ciclos. A existência de um ciclo quebraria a execução do workflow, pois um arquivo dependeria de si mesmo ou haveria dependência circular.

Alternativa C — ✅ Correta ⟵ GABARITO

O grafo de dependências no Snakemake é dirigido e acíclico (DAG). É a definição clássica: as setas vão dos insumos para os produtos, e a ausência de ciclos garante que todas as dependências possam ser resolvidas.

Alternativa D — ❌ Incorreta

Um grafo é mais geral que uma árvore. Em uma árvore, cada nó (exceto a raiz) tem exatamente um predecessor; no DAG do Snakemake, um arquivo pode depender de vários arquivos e ser usado por vários outros, não sendo necessariamente uma árvore.

Alternativa E — ❌ Incorreta

Uma floresta é um conjunto de árvores. O grafo do Snakemake pode ser um único DAG, ou vários DAGs, mas não se restringe a uma floresta — a caracterização correta é DAG.

PEGA ESSA DICA!

Sempre que uma ferramenta de workflow (Make, Snakemake, Airflow, Nextflow) é mencionada, lembre-se de que o grafo de dependências é um DAG (Directed Acyclic Graph). Essa é uma propriedade fundamental.

Gabarito: letra C.

Link permanente: /questoes/qg145069