Questão de Algoritmos e Estrutura de Dados — Estrutura de Dados — FIOCRUZ 2024
Algoritmos e Estrutura de Dados›Estrutura 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 é:
Anão dirigido.
Bdirigido, mas pode possuir ciclos.
Cdirigido e acíclico.
Duma árvore.
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.
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.