Nesta página
01
Visão geral
O Graph Labs é um laboratório visual de teoria dos grafos. Você desenha o grafo, escolhe um dos métodos clássicos e acompanha a execução iteração por iteração, com as mesmas tabelas, filas e notação usadas em sala.
- 17
- algoritmos implementados
- 9
- tópicos da disciplina
- 12
- grafos de exemplo
O problema que ele resolve
O pseudocódigo no papel esconde justamente a parte que mais importa para aprender: o que acontece em cada iteração. Ler que o método de Dijkstra “seleciona o vértice não fechado de menor rótulo” é bem diferente de ver esse vértice ser escolhido, a tabela de distâncias ser atualizada e a aresta entrar na solução.
No Graph Labs, você remonta o grafo de um exercício da lista, executa o método sobre ele e compara cada passo com o que resolveu à mão. É útil em aulas e monitorias, na correção de exercícios e no estudo individual antes da prova.
Fiel à disciplina
Nomes, notação, tabelas e ordem de visita seguem o que é ensinado e cobrado em sala, e não a versão genérica de uma biblioteca.
Cada decisão justificada
Todo passo traz um título, a explicação do que aconteceu e o estado das estruturas auxiliares naquele instante.
100% no navegador
Sem cadastro, sem servidor e sem banco de dados. Funciona no computador, no tablet e no celular.
Páginas da aplicação
Estúdio /pt-br/studio
O coração do projeto: editor de grafos, seleção do algoritmo e reprodução da execução passo a passo.
Algoritmos /pt-br/algorithms
Referência teórica de cada método: ideia central, invariante, requisitos, erros comuns e pseudocódigo.
Sobre /pt-br/about
Origem do projeto na monitoria de Teoria dos Grafos e informações do autor.
02
Primeiros passos
Todo uso do estúdio segue o mesmo ciclo de quatro etapas, refletido nas três abas do painel lateral: Construir, Executar e Passos.
- 1
Monte o grafo
Na aba Construir, carregue um modelo pronto ou desenhe do zero: crie vértices clicando no canvas e conecte-os com a ferramenta de arestas.
- 2
Ajuste pesos e direções
Defina o peso de cada aresta (ou deixe sem peso) e escolha se ela é simples ou direcionada, pelo canvas ou pela lista de arestas.
- 3
Escolha o algoritmo
Na aba Executar, selecione o método e preencha os parâmetros que aparecerem: raiz, destino, fonte, sumidouro ou sequência de visita.
- 4
Execute e acompanhe
Clique em Executar. A aba Passos abre sozinha com o primeiro passo; avance manualmente ou use a reprodução automática.
Exemplo guiado: caminho mínimo com Dijkstra
Um roteiro de dois minutos para conhecer o estúdio usando um grafo pronto:
- 1.Na aba Construir, clique em Rede ponderada. O grafo é carregado e enquadrado automaticamente.
- 2.Vá para Executar e escolha Método de Dijkstra, em Caminho mínimo.
- 3.Em Raiz / origem, selecione
A; em Vértice de destino, selecioneF. - 4.Clique em Executar Dijkstra e use Próximo passo para ver cada vértice ser fechado e cada aresta tensa ser relaxada na tabela dist e pred.
- 5.No último passo, o caminho mínimo
A → C → F, de peso 11, aparece em roxo, e o card de Conclusões resume as distâncias finais.
Dica
03
Anatomia do estúdio
O estúdio divide a tela em duas áreas: o canvas, onde o grafo é desenhado e animado, e o painel lateral, onde ficam os formulários, o catálogo de algoritmos e o traço da execução.
- 1
Ferramentas de edição
Selecionar e mover, adicionar vértice, conectar vértices e remover elemento.
- 2
Histórico
Desfazer, refazer e limpar o grafo inteiro.
- 3
Direção das novas arestas
Define se as arestas criadas pelo canvas nascem simples ou direcionadas.
- 4
Posicionamento
Liga ou desliga a sugestão automática e reorganiza o desenho sob demanda.
- 5
Dica contextual
Explica como usar a ferramenta ativa. Aparece em telas a partir de 640 px.
- 6
Canvas
Área de desenho com grade pontilhada, arrasto, zoom e destaques da execução.
- 7
Legenda
Significado de cada cor aplicada a vértices e arestas durante a simulação.
- 8
Zoom
Aproximar, afastar e enquadrar o grafo inteiro na tela.
- 9
Abas do painel
Alterna entre Construir, Executar e Passos, as três etapas do fluxo.
- 10
Conteúdo da aba
Formulários do grafo, catálogo de algoritmos ou o traço passo a passo.
Layout responsivo
04
Canvas e ferramentas
O canvas é a área de desenho do estúdio. É nele que você cria e organiza o grafo e, durante a simulação, acompanha visualmente o estado de cada vértice e aresta.
Ferramentas de edição
Apenas uma ferramenta fica ativa por vez, destacada na barra superior. O cursor muda de formato para indicar qual está em uso, e uma dica ao lado da barra explica o que fazer.
Selecionar e mover
Ferramenta padrão. Clique em um vértice ou aresta para selecioná-lo, arraste vértices para reposicioná-los e arraste o fundo para mover a visão.
Adicionar vértice
Cada clique em um ponto vazio cria um vértice ali. Os rótulos seguem a sequência A, B, C, ..., Z, A1, B1, ..., sempre pulando os já usados.
Conectar vértices
Clique no vértice de origem e depois no de destino. Entre os dois cliques, uma linha tracejada acompanha o cursor. Esc cancela.
Remover elemento
Clique em um vértice ou aresta para apagá-lo. Remover um vértice remove também todas as arestas ligadas a ele.
Histórico, direção e posicionamento
Desfazer
Volta a última alteração do grafo. Guarda até 60 alterações.
Refazer
Reaplica uma alteração desfeita.
Limpar grafo
Apaga todos os vértices e arestas. Pode ser desfeito com Desfazer.
Novas arestas não direcionadas
As arestas criadas no canvas nascem simples (padrão).
Novas arestas direcionadas
As arestas criadas no canvas nascem com seta, da origem para o destino.
Sugestão de posicionamento
Quando ligada, cada nova aresta dispara um ajuste fino do desenho. A preferência fica salva.
Reorganizar agora
Aplica o ajuste de posicionamento imediatamente, uma única vez.
Como funciona a sugestão de posicionamento
Navegação e zoom
Arraste o fundo para mover a visão e use a roda do mouse (ou o gesto de pinça no trackpad e no celular) para aproximar e afastar, sempre centrado no ponto sob o cursor. O zoom vai de 30% a 260%. Os botões no canto inferior direito oferecem o mesmo controle:
Aproximar
Aumenta o zoom em 25%, mantendo o centro.
Afastar
Reduz o zoom em 20%, mantendo o centro.
Enquadrar grafo
Ajusta zoom e posição para que o grafo inteiro caiba na tela.
Ao carregar um modelo pronto, o grafo é enquadrado automaticamente. Arestas paralelas entre o mesmo par de vértices, como A → B e B → A, são desenhadas curvas para não se sobreporem.
Cores durante a execução
Depois que um algoritmo é executado, cada vértice e aresta recebe um estado a cada passo. A legenda no canto inferior esquerdo do canvas resume o significado das cores:
Não explorado
Estado inicial: o algoritmo ainda não alcançou o elemento.
Marcado
Alcançado, mas ainda não processado: está na fila, na pilha ou na fronteira.
Em análise
Elemento examinado no passo atual. Vértices em análise pulsam para chamar a atenção.
Explorado / na solução
Processamento concluído ou elemento aceito na solução (árvore, ordem, emparelhamento).
Descartado
Rejeitado pelo algoritmo, como uma aresta que formaria ciclo. Arestas descartadas ficam tracejadas.
Caminho
Resultado destacado no fim: caminho mínimo, caminho aumentante ou trajeto euleriano.
Marcações adicionais
Anel tracejado na cor principal
Vértice de partida. A etiqueta acima dele indica RAIZ ou, nos algoritmos de fluxo, FONTE.
Anel tracejado roxo
Vértice de chegada: DESTINO, ou SUMIDOURO nos algoritmos de fluxo.
- 1/6
Etiqueta sob o vértice
Valor do vértice no passo atual: TD/TT na busca em profundidade, nível na busca em largura, dist em Dijkstra, cor na coloração, s e t no fluxo.
- 3/5
Rótulo da aresta
Mostra o peso. Durante a execução pode dar lugar a outro valor, como fluxo/capacidade nos algoritmos de fluxo ou a ordem de travessia em Fleury.
Contorno colorido
Agrupa vértices do mesmo conjunto: componentes f-conexos em Kosaraju, árvores da floresta em Kruskal, classes de cor na coloração.
05
Aba Construir
Tudo o que diz respeito à estrutura do grafo: modelos prontos, lista de vértices e lista de arestas. Qualquer alteração feita aqui aparece no canvas na hora, e vice-versa.
Modelos prontos
Os modelos reproduzem exemplos usados em aula, cada um pensado para destacar o comportamento de determinados algoritmos. Carregar um modelo substitui o grafo atual (é possível desfazer), limpa a raiz e o destino escolhidos e enquadra o desenho.
Rede ponderada
Grafo não direcionado e ponderado, com peso w(e) > 0 em cada aresta: base para AGM (Prim e Kruskal) e para Dijkstra.
PrimKruskalDijkstraGrafo direcionado com circuitos
Grafo direcionado com três componentes fortemente conexos (f-conexos), para o método de Kosaraju.
KosarajuDFSRede de fluxo
Rede de fluxo: grafo direcionado com capacidade u(e) em cada aresta, da fonte s = S ao sumidouro t = T.
Ford-FulkersonPesos negativos
Grafo direcionado com arestas de peso negativo e sem ciclo de peso negativo, para Bellman-Ford e Floyd-Warshall.
Bellman-FordFloyd-WarshallGrafo simples
Grafo simples não direcionado, sem pesos relevantes: bom para as buscas em largura e em profundidade.
BFSDFSGrafo euleriano
Exemplo 1 do deck de grafos eulerianos: todos os vértices têm grau par, então existe ciclo euleriano.
FleuryGrafo semi-euleriano
Exemplo 2 do deck: exatamente dois vértices de grau ímpar (5 e 6), então existe trajeto euleriano aberto.
FleuryRede com gargalo
Rede do deck de Edmonds-Karp: duas arestas de capacidade 100 ligadas por uma de capacidade 1, que expõe a fragilidade da escolha arbitrária de caminho.
Ford-FulkersonEdmonds-KarpDinicPrecedência de atividades
Grafo acíclico do deck de ordenação topológica: a fabricação de uma estante, de comprar as tábuas até transportá-la.
KahnOrd. topológica (BP)Emparelhamento com botões
Grafo genérico com dois ciclos de tamanho ímpar: exige a contração de botões (blossoms) do método de Edmonds.
EdmondsColoração de vértices
Grafo com χ(G) = 3 em que a ordem alfabética faz o método guloso gastar 4 cores, enquanto Welsh-Powell encontra 3.
Coloração gulosaWelsh-PowellContraexemplo de Welsh-Powell
Grafo bipartido, logo χ(G) = 2, em que Welsh-Powell mesmo assim usa 3 cores. É o contraexemplo do deck de coloração.
Welsh-PowellColoração gulosa
Vértices
O card Vértices lista todos os vértices em ordem alfabética, com a contagem total no cabeçalho. O botão Novo cria um vértice no canvas sem precisar trocar de ferramenta; depois é só arrastá-lo para o lugar desejado.
- Renomear: edite o rótulo direto no campo de texto, com até 6 caracteres. A ordem alfabética dos rótulos é a ordem padrão de visita de todos os algoritmos.
- Selecionar: clique no círculo com as iniciais ou no campo de texto para destacar o vértice no canvas.
- Remover: o ícone de lixeira apaga o vértice e todas as arestas incidentes a ele.
Arestas
O formulário no topo do card cria arestas com precisão, o que é útil para grafos grandes ou para copiar um exercício: escolha os vértices De e Para, informe o Peso e o Tipo (simples ou direcionada) e clique em Adicionar aresta. O cabeçalho mostra o total de arestas e quantas são de cada tipo.
Peso opcional
Campo vazio cria uma aresta sem peso, que conta como 1 nos algoritmos ponderados. Aceita negativos e decimais com vírgula ou ponto.
Sem laços
Uma aresta precisa ligar dois vértices diferentes.
Sem arestas repetidas
Não é possível criar duas arestas iguais. Uma aresta simples A - B já conecta B a A, mas duas direcionadas opostas, A → B e B → A, são permitidas.
Cada aresta da lista pode ser editada sem ser recriada:
- o campo numérico altera o peso, e apagá-lo deixa a aresta sem peso;
- o selo alterna a direção com um clique: simples / direcionada
- clicar nos rótulos seleciona a aresta no canvas;
- a lixeira remove a aresta.
Grafos mistos
06
Aba Executar
Aqui você escolhe o algoritmo, informa os parâmetros que ele pede e confere se o grafo atende aos requisitos antes de rodar a simulação.
Escolha do algoritmo
O card Algoritmo agrupa os métodos por tópico, na ordem da disciplina. Cada opção mostra o nome, a complexidade e um resumo da estratégia. O algoritmo selecionado fica destacado e define o conteúdo do card Parâmetros logo abaixo.
Parâmetros
O cabeçalho do card repete o nome e a complexidade do método, seguidos pelos requisitos do grafo em forma de selos. Os campos de vértice só aparecem quando o algoritmo os utiliza:
| Campo | Algoritmos | Uso | Efeito |
|---|---|---|---|
| Raiz / origem | Buscas em largura e profundidade, Prim, Dijkstra e Bellman-Ford | obrigatório | Vértice de onde a execução parte. |
| Vértice de destino | Dijkstra, Bellman-Ford e Floyd-Warshall | opcional | Destaca em roxo, no último passo, o caminho mínimo até ele. |
| Raiz / origem (opcional) | Floyd-Warshall | opcional | Junto com o destino, escolhe qual par de vértices terá o caminho destacado. |
| Fonte s e sumidouro t | Ford-Fulkerson, Edmonds-Karp e Dinic | obrigatório | Extremos da rede de fluxo. Precisam ser vértices diferentes. |
| Vértice inicial | Fleury | opcional | Se houver vértices de grau ímpar, o trajeto precisa partir de um deles. |
Quando um campo obrigatório ainda não foi escolhido, o estúdio usa o primeiro vértice em ordem alfabética (e, para o sumidouro, o primeiro diferente da fonte). Os vértices escolhidos ganham um anel tracejado no canvas com a etiqueta RAIZ, DESTINO, FONTE ou SUMIDOURO.
Sequência de visita
Muitos algoritmos precisam decidir qual vizinho examinar primeiro. Por padrão a decisão segue a ordem alfabética dos rótulos, que é a convenção usada em sala. Quando o exercício pede outra ordem, monte-a em Sequência de visita:
- clique nos vértices na ordem desejada para acrescentá-los à sequência;
- o primeiro vértice escolhido vira a raiz quando nenhuma for definida acima (nos algoritmos de fluxo, ele é o primeiro vizinho tentado na busca);
- clique em um vértice da sequência para retirá-lo;
- os vértices que ficarem de fora seguem em ordem alfabética, depois dos escolhidos;
- o botão Padrão volta à ordem alfabética.
Validação antes de executar
Os requisitos são verificados a cada alteração do grafo ou dos parâmetros. Se estiver tudo certo, aparece uma confirmação em verde; caso contrário, cada problema é listado em vermelho com a correção sugerida, e o botão Executar fica desabilitado.
O grafo atende aos requisitos deste algoritmo.
Kruskal opera sobre grafos não direcionados: converta todas as arestas para não direcionadas.
A fonte s e o sumidouro t precisam ser vértices diferentes.
Dica
07
Aba Passos
Depois da execução, a aba Passos funciona como um player: você navega pela simulação enquanto o canvas e as estruturas auxiliares mostram o estado exato de cada iteração.
Controles de reprodução
O cabeçalho indica o algoritmo e a posição atual (por exemplo, Passo 4 de 23), com uma barra de progresso logo abaixo. Os controles são:
Primeiro passo
Volta ao estado inicial.
Passo anterior
Recua uma iteração.
Reproduzir / pausar
Avança sozinho no ritmo escolhido. No fim, recomeça do primeiro passo.
Próximo passo
Avança uma iteração.
Último passo
Pula para o resultado final.
Limpar
Descarta a execução e devolve o canvas às cores originais.
O controle deslizante salta direto para qualquer passo. Qualquer navegação manual pausa a reprodução automática. As velocidades disponíveis são:
O que cada passo mostra
O card principal traz o título da decisão tomada (por exemplo, “Aresta tensa (A, C): relaxada”), a justificativa com os valores envolvidos e, quando faz sentido, métricas como a ordem de visita, a iteração corrente ou o valor do fluxo. Abaixo dele aparecem as estruturas auxiliares do algoritmo.
Fila
O primeiro elemento, o próximo a sair, fica destacado.
Pilha
O topo da pilha, o último elemento, fica destacado.
Conjunto
Elementos sem ordem de saída, como os vértices ainda não fechados.
As tabelas reproduzem as do quadro: dist e pred, tempos de descoberta e término, matrizes de Floyd-Warshall, fluxo e capacidades residuais, entre outras. Linhas coloridas indicam o papel de cada entrada no passo atual:
dist e pred
| Vértice | dist | pred |
|---|---|---|
| A | 0 | - |
| B | 7 | A |
| C | 3 | A |
| D | ∞ | - |
- Azul: entrada alterada ou examinada neste passo.
- Verde: valor definitivo ou elemento aceito.
- Vermelho: elemento rejeitado.
Conclusões
No último passo surge o card Conclusões, em verde, que interpreta o resultado: distâncias finais e caminho recuperado, peso total da árvore geradora, valor do fluxo máximo e o corte correspondente, componentes encontrados, ordem topológica, número de cores usadas. É o resumo para conferir com a sua resposta.
Quando a execução é descartada
08
Catálogo de algoritmos
Os 17 métodos disponíveis no estúdio, na ordem da disciplina. Para a ideia central, o invariante, os erros comuns e o pseudocódigo de cada um, abra a página de referência.
Busca em grafos
- Busca em ProfundidadeO(n + m)
Escolhe sempre o vértice marcado mais recentemente alcançado, registrando tempo de descoberta TD e tempo de término TT.
Parâmetros: Raiz
Aceita arestas direcionadas e não direcionadasEm grafo não direcionado: arestas de árvore e de retornoEm grafo direcionado: árvore, retorno, avanço e cruzamento - Busca em LarguraO(n + m)
Escolhe sempre o vértice marcado menos recentemente alcançado, usando uma fila, e define o nível de cada vértice.
Parâmetros: Raiz
Aceita arestas direcionadas e não direcionadasIgnora os pesos das arestasClassifica as arestas em pai, tio, irmão e primo
Conectividade
- Método de KosarajuO(n + m)
Encontra os componentes fortemente conexos (f-conexos) com duas buscas em profundidade: uma em G e outra no grafo reverso Gᴿ.
Parâmetros: Nenhum
Exige grafo direcionadoIgnora os pesos das arestas
Grafos eulerianos
- Método de FleuryO(m² )
Constrói um trajeto euleriano caminhando pelo grafo e evitando atravessar uma ponte enquanto houver outra aresta disponível.
Parâmetros: Vértice inicial opcional
Exige grafo não direcionado e conexoNo máximo 2 vértices de grau ímparIgnora os pesos das arestas
Árvore geradora mínima
- Método de PrimO(m log n)
Inclui vértices um a um: a cada passo acrescenta a aresta de menor peso entre V(T) e os vértices ainda não selecionados.
Parâmetros: Raiz
Exige grafo não direcionadoExige grafo ponderado com peso w(e) > 0Só existe árvore geradora se o grafo for conexo - Método de KruskalO(m log m)
Inclui arestas, e não vértices: ordena as arestas por peso não decrescente e aceita cada uma que não forme ciclo com as já inseridas em E(T).
Parâmetros: Nenhum
Exige grafo não direcionadoExige grafo ponderado com peso w(e) > 0Em grafo desconexo produz uma floresta geradora mínima
Caminho mínimo
- Método de DijkstraO(n²)
"Fecha" um vértice por iteração, sempre o de menor dist, e relaxa as arestas tensas que saem dele.
Parâmetros: Origem; destino opcional
Aceita arestas direcionadas e não direcionadasExige pesos não negativosBaseia-se no princípio da relaxação - Método de Bellman-FordO(n · m)
Programação dinâmica: examina todas as arestas a cada iteração, relaxando as que estiverem tensas, por |V(G)| − 1 iterações.
Parâmetros: Origem; destino opcional
Admite arestas de peso negativoNão admite ciclo de peso negativoDetecta ciclo de peso negativo alcançável a partir da origem Caminhos mínimos entre todos os pares por programação dinâmica: a rodada k libera o vértice k como intermediário.
Parâmetros: Origem e destino opcionais
Admite arestas de peso negativoNão admite ciclo de peso negativoCalcula todos os pares de vértices de uma só vez
Fluxo máximo
- Método de Ford-FulkersonO(m · f) com capacidades inteiras
Enquanto existir algum caminho aumentante em G'(f), envia por ele o gargalo δ e atualiza a rede residual.
Parâmetros: Fonte s e sumidouro t
Exige rede de fluxo: grafo direcionado com capacidade u(e) > 0Requer uma fonte s e um sumidouro tO caminho aumentante é escolhido de forma arbitrária - Método de Edmonds-KarpO(n · m² )
Implementação eficiente de Ford-Fulkerson: a cada iteração escolhe o caminho aumentante mais curto, obtido por busca em largura.
Parâmetros: Fonte s e sumidouro t
Exige rede de fluxo: grafo direcionado com capacidade u(e) > 0Requer uma fonte s e um sumidouro tEscolhe sempre o caminho aumentante com menos arestas - Método de DinicO(n² · m)
A cada iteração constrói a rede em níveis GL a partir de G′(f) e determina nela um fluxo de bloqueio.
Parâmetros: Fonte s e sumidouro t
Exige rede de fluxo: grafo direcionado com capacidade u(e) > 0Requer uma fonte s e um sumidouro tNo máximo n − 1 fluxos de bloqueio
Ordenação topológica
- Método de KahnO(n + m)
Determina a cada instante um vértice com grau de entrada zero, insere-o no fim do resultado e reduz o grau de entrada de seus sucessores.
Parâmetros: Nenhum
Exige grafo direcionadoSó existe ordenação topológica em grafo acíclicoDetecta a existência de ciclo Descrito por Tarjan em 1976: insere cada vértice no início do resultado somente depois de visitar todos os que dependem dele.
Parâmetros: Nenhum
Exige grafo direcionadoSó existe ordenação topológica em grafo acíclicoMarca temporária reencontrada evidencia ciclo
Emparelhamento
- Método de EdmondsO(n² · m)
Busca caminhos M-aumentantes entre vértices expostos, contraindo os botões (blossoms) que aparecem, até que não exista mais nenhum.
Parâmetros: Nenhum
Exige grafo não direcionadoIgnora os pesos das arestasTrata grafo genérico, não apenas bipartido
Coloração
- Método gulosoO(n + m)
Percorre os vértices em uma ordem qualquer e atribui a cada um a cor de menor índice não utilizada por nenhum de seus vizinhos.
Parâmetros: Nenhum
Exige grafo não direcionadoColoração aproximada, não necessariamente mínimaO resultado depende da ordem dos vértices - Método de Welsh-PowellO(n² )
Ordena os vértices em ordem não crescente de graus e colore, com uma mesma cor, todos os que não estiverem conectados a um vértice já colorido com ela.
Parâmetros: Nenhum
Exige grafo não direcionadoColoração aproximada, não necessariamente mínimaCostuma usar menos cores que o método guloso
09
Atalhos de teclado
Os atalhos funcionam em qualquer aba do estúdio e agilizam a edição do grafo.
- Desfaz a última alteração do grafo.Ctrl Zou⌘ Z
- Refaz a alteração desfeita.Ctrl Shift Zou⌘ Shift Z
- Remove o vértice ou a aresta selecionada.DeleteouBackspace
- Cancela a seleção ou a aresta que está sendo criada.Esc
Nota
10
Dados e preferências
O Graph Labs não tem servidor, banco de dados nem cadastro. Todo o processamento acontece no seu navegador e nada do que você desenha é enviado para lugar algum.
- Grafo atualSalvo no navegador
Vértices, posições, arestas, pesos e direções são salvos a cada alteração. Ao voltar ao estúdio, o grafo reaparece exatamente como você deixou.
- Sugestão de posicionamentoSalvo no navegador
Fica lembrado se você prefere o ajuste automático ligado ou desligado.
- Tema claro ou escuroSalvo no navegador
Na primeira visita segue a preferência do sistema operacional. Depois, vale a escolha feita no botão do cabeçalho.
- IdiomaSalvo no navegador
O inglês é o padrão. Depois que você escolhe outro idioma no cabeçalho, o site passa a abrir nele nas próximas visitas.
- Histórico e execuçãoApenas nesta sessão
O histórico de desfazer e refazer, o algoritmo escolhido e o traço da execução são descartados ao recarregar a página.
Um grafo por navegador
11
Perguntas frequentes
Respostas rápidas para as dúvidas mais comuns no uso do estúdio.
Por que o botão Executar está desabilitado?
O grafo ou os parâmetros não atendem aos requisitos do algoritmo escolhido. Os problemas aparecem listados em vermelho logo acima do botão, cada um com a correção sugerida, como converter as arestas para direcionadas ou escolher uma fonte diferente do sumidouro.
O resultado ficou diferente do que fiz no papel. O que pode ser?
Na maioria das vezes é a ordem de visita. Quando há empate, o estúdio examina os vizinhos em ordem alfabética dos rótulos. Se o exercício usa outra convenção, monte a mesma ordem em Sequência de visita, na aba Executar. Confira também a raiz escolhida e se todas as arestas têm o tipo e o peso corretos.
O que acontece com arestas sem peso?
Elas contam como peso 1 nos algoritmos que usam pesos ou capacidades. Nas buscas, em Kosaraju, Fleury, no emparelhamento e na coloração os pesos são ignorados.
Posso usar pesos negativos?
Sim. Bellman-Ford e Floyd-Warshall aceitam arestas de peso negativo e indicam quando existe um ciclo de peso negativo. Dijkstra exige pesos não negativos, e os algoritmos de fluxo exigem capacidades positivas; nesses casos a validação avisa antes da execução.
O grafo pode ter laços ou arestas múltiplas?
Não. Laços (arestas de um vértice para ele mesmo) não são suportados, e não é possível repetir uma aresta entre o mesmo par de vértices. A exceção são duas arestas direcionadas em sentidos opostos, como A → B e B → A, que são permitidas e desenhadas curvas.
Mudei o grafo e a execução sumiu. É um erro?
Não. O traço sempre corresponde ao grafo em que foi gerado. Qualquer mudança estrutural, como vértices, arestas, rótulos, pesos ou direções, ou a troca de algoritmo descarta a execução para evitar mostrar passos que não valem mais. Basta executar de novo. Apenas arrastar vértices não descarta nada.
Perdi o grafo que estava montando. Dá para recuperar?
Se a página ainda estiver aberta, use Desfazer (Ctrl + Z): o histórico guarda as últimas 60 alterações, inclusive Limpar grafo e carregar um modelo. Depois de recarregar a página o histórico é perdido, mas o último estado do grafo continua salvo no navegador.
Funciona no celular?
Sim. O canvas aceita toque para criar e mover vértices, arrastar com um dedo para mover a visão e pinça com dois dedos para o zoom. O painel lateral aparece abaixo do canvas, com as abas fixas no topo.