Graph Labs

Documentação

Como o Graph Labs funciona

Um guia completo do estúdio: como montar o grafo, configurar e executar cada algoritmo, ler o traço passo a passo e aproveitar os recursos que tornam a conferência de exercícios mais rápida.

Nesta página
  1. 01Visão geral
  2. 02Primeiros passos
  3. 03Anatomia do estúdio
  4. 04Canvas e ferramentas
  5. 05Aba Construir
  6. 06Aba Executar
  7. 07Aba Passos
  8. 08Catálogo de algoritmos
  9. 09Atalhos de teclado
  10. 10Dados e preferências
  11. 11Perguntas frequentes

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.

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. 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. 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. 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. 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. 1.Na aba Construir, clique em Rede ponderada. O grafo é carregado e enquadrado automaticamente.
  2. 2.Vá para Executar e escolha Método de Dijkstra, em Caminho mínimo.
  3. 3.Em Raiz / origem, selecione A; em Vértice de destino, selecione F.
  4. 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. 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

Na primeira visita o estúdio já abre com a Rede ponderada carregada. Depois disso, ele sempre reabre com o último grafo em que você trabalhou.

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. 1

    Ferramentas de edição

    Selecionar e mover, adicionar vértice, conectar vértices e remover elemento.

  2. 2

    Histórico

    Desfazer, refazer e limpar o grafo inteiro.

  3. 3

    Direção das novas arestas

    Define se as arestas criadas pelo canvas nascem simples ou direcionadas.

  4. 4

    Posicionamento

    Liga ou desliga a sugestão automática e reorganiza o desenho sob demanda.

  5. 5

    Dica contextual

    Explica como usar a ferramenta ativa. Aparece em telas a partir de 640 px.

  6. 6

    Canvas

    Área de desenho com grade pontilhada, arrasto, zoom e destaques da execução.

  7. 7

    Legenda

    Significado de cada cor aplicada a vértices e arestas durante a simulação.

  8. 8

    Zoom

    Aproximar, afastar e enquadrar o grafo inteiro na tela.

  9. 9

    Abas do painel

    Alterna entre Construir, Executar e Passos, as três etapas do fluxo.

  10. 10

    Conteúdo da aba

    Formulários do grafo, catálogo de algoritmos ou o traço passo a passo.

Layout responsivo

Em telas largas (a partir de 1024 px), o canvas ocupa toda a altura à esquerda e o painel fica fixo à direita, com rolagem própria. Em tablets e celulares, o canvas aparece em cima, com cerca de metade da altura da tela, e o painel logo abaixo, com as abas fixas no topo enquanto você rola.

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

O ajuste move os vértices aos poucos, sem perder o desenho original de vista, para reduzir cruzamentos de arestas, vértices sobre arestas, sobreposições e ângulos muito fechados. Ele atua em grafos de 3 a 40 vértices e até 90 arestas, e não faz nada se o desenho já estiver limpo.

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.

    PrimKruskalDijkstra
  • Grafo direcionado com circuitos

    Grafo direcionado com três componentes fortemente conexos (f-conexos), para o método de Kosaraju.

    KosarajuDFS
  • Rede de fluxo

    Rede de fluxo: grafo direcionado com capacidade u(e) em cada aresta, da fonte s = S ao sumidouro t = T.

    Ford-Fulkerson
  • Pesos negativos

    Grafo direcionado com arestas de peso negativo e sem ciclo de peso negativo, para Bellman-Ford e Floyd-Warshall.

    Bellman-FordFloyd-Warshall
  • Grafo simples

    Grafo simples não direcionado, sem pesos relevantes: bom para as buscas em largura e em profundidade.

    BFSDFS
  • Grafo euleriano

    Exemplo 1 do deck de grafos eulerianos: todos os vértices têm grau par, então existe ciclo euleriano.

    Fleury
  • Grafo semi-euleriano

    Exemplo 2 do deck: exatamente dois vértices de grau ímpar (5 e 6), então existe trajeto euleriano aberto.

    Fleury
  • Rede 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-KarpDinic
  • Precedê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.

    Edmonds
  • Coloraçã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-Powell
  • Contraexemplo 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

Cada aresta guarda a própria orientação, então um grafo pode misturar arestas simples e direcionadas. Quando isso acontece, um aviso aparece no card de arestas com dois atalhos, Todas direcionadas e Todas simples, porque a maioria dos algoritmos exige um único tipo.

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:

CampoAlgoritmosUsoEfeito
Raiz / origemBuscas em largura e profundidade, Prim, Dijkstra e Bellman-FordobrigatórioVértice de onde a execução parte.
Vértice de destinoDijkstra, Bellman-Ford e Floyd-WarshallopcionalDestaca em roxo, no último passo, o caminho mínimo até ele.
Raiz / origem (opcional)Floyd-WarshallopcionalJunto com o destino, escolhe qual par de vértices terá o caminho destacado.
Fonte s e sumidouro tFord-Fulkerson, Edmonds-Karp e DinicobrigatórioExtremos da rede de fluxo. Precisam ser vértices diferentes.
Vértice inicialFleuryopcionalSe 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

Ao clicar em Executar, o estúdio calcula a execução inteira de uma vez, abre a aba Passos no primeiro passo e volta a ferramenta do canvas para Selecionar e mover, para que nenhum clique acidental altere o grafo durante a análise.

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:

0,5×1,6 s por passo1×0,8 s por passo2×0,4 s por passo4×0,18 s por passo

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

BDE

O primeiro elemento, o próximo a sair, fica destacado.

Pilha

ACF

O topo da pilha, o último elemento, fica destacado.

Conjunto

CDE

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érticedistpred
A0-
B7A
C3A
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.

dist finalcaminho mínimopeso da AGMfluxo máximoordem topológicanúmero de cores

Quando a execução é descartada

A execução fica vinculada ao grafo e ao algoritmo em que foi gerada. Criar, remover ou renomear vértices, mudar arestas, pesos ou direções, ou trocar de algoritmo descarta o traço automaticamente, e é preciso executar de novo. Arrastar vértices para reorganizar o desenho não afeta a execução.

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

  • 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
  • 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

  • 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

  • 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
  • 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

  • "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
  • 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
  • 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

  • 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

  • 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

  • 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
  • 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

Enquanto você digita em um campo de texto ou escolhe uma opção em uma lista, os atalhos ficam desativados, para que apagar um caractere nunca remova um vértice.

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

O estúdio guarda apenas o grafo em edição, e só no navegador e dispositivo em que ele foi criado. Limpar os dados do site, usar uma janela anônima ou carregar um modelo pronto substitui o grafo salvo.

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.