Ir para o conteúdo

Teoria dos grafos

Origem: Wikipédia, a enciclopédia livre.
(Redirecionado de Grafo)
Teoria dos grafos
Seis pontos numerados ligados por sete linhas
Um grafo simples com seis vértices e sete arestas reduz relações a uma estrutura que pode ser percorrida e analisada
Informações gerais
ÁreaMatemática discreta
Objeto de estudoGrafos
Trabalho fundadorSolutio Problematis ad Geometriam Situs Pertinentis, de Leonhard Euler, publicado em 1736

Na matemática e na ciência da computação, a teoria dos grafos estuda os grafos, estruturas matemáticas que organizam redes de objetos e as relações entre eles. Cada objeto vira um vértice, também chamado de nó ou ponto, e cada relação vira uma aresta, também chamada de arco, ligação ou linha. Em um grafo não orientado, a ligação vale igualmente nos dois sentidos. Em um grafo orientado, ela segue uma direção determinada. Essa forma simples de organizar relações faz dos grafos um dos objetos da matemática discreta.[1]

Com esse modelo, é possível perguntar se há um caminho entre dois pontos, qual caminho custa menos, onde há ciclos, como formar pares ou atribuir cores sem conflito, quanto pode passar por uma rede, quais subestruturas ela contém e quantos grafos cumprem certa condição. A escolha do que vira vértice, aresta, direção ou peso define a pergunta matemática. Algumas respostas dependem da forma da rede, outras de matrizes, da geometria, da probabilidade ou de algoritmos, e problemas parecidos à primeira vista podem exigir recursos computacionais muito diferentes.[2]

O estudo começou a tomar forma em 1736, quando Leonhard Euler resolveu o problema das sete pontes de Königsberg ao deixar de lado distâncias e formatos e examinar apenas as conexões. A mesma ideia ganhou usos em redes de comunicação e transporte, química, física, biologia, linguística, ciências sociais, gestão de projetos e aprendizado de máquina.[3]

Definição e conceitos fundamentais

[editar | editar código]

Elementos, tipos e notação

[editar | editar código]
Quatro diagramas com vértices e arestas mostram um grafo não orientado, um orientado, um misto e um multigrafo
Um grafo é formado por vértices ligados por arestas. O termo pode designar:
  • um grafo não orientado, no alto à esquerda, em oposição ao grafo orientado, cujas arestas têm setas, no alto à direita. Arestas orientadas e não orientadas podem coexistir em um grafo misto, embaixo à esquerda
  • um grafo simples, em oposição ao multigrafo, embaixo à direita

A teoria dos grafos pertence à matemática discreta e costuma fazer parte da combinatória, mas suas perguntas e seus métodos formaram um campo próprio.[nota 1][4] O termo "grafo" entrou nesse vocabulário em 1878, quando James Joseph Sylvester publicou na revista Nature uma analogia entre os "invariantes quânticos" e "covariantes" da álgebra e os diagramas moleculares.[5]

Embora as definições variem, um grafo reúne vértices, também chamados de nós ou pontos, e arestas, também chamadas de arcos, ligações ou linhas. Os dois vértices tocados por uma aresta são suas extremidades.[nota 2][6] Em um grafo não orientado, a aresta não aponta para nenhum lado. No grafo orientado, cada aresta recebe uma direção, chamada orientação, que costuma ser desenhada com uma seta.[7] Um grafo misto aceita arestas dos dois tipos.[nota 3][8] Um grafo simples não tem duas arestas com o mesmo par de extremidades nem laços, que saem de um vértice e voltam a ele. O multigrafo admite essas possibilidades.[9] Quando cada aresta recebe um número chamado peso, a estrutura é um grafo ponderado.

Para escrever essa ideia em linguagem matemática, um grafo simples não orientado pode ser indicado por . A letra designa o conjunto de vértices, e designa um conjunto de pares não ordenados de vértices distintos.[nota 4] A ordem do grafo é , e seu tamanho é .[nota 5] O grau, também chamado de valência, de um vértice conta quantas extremidades de arestas chegam a ele. Cada laço conta duas vezes.[nota 6][10]

Quando dois vértices são extremidades da mesma aresta, eles são adjacentes, e a aresta é incidente nos dois. A vizinhança de um vértice reúne seus vértices adjacentes. Essas relações locais determinam propriedades do grafo inteiro e podem ser guardadas em listas ou matrizes.[nota 7][11]

Ao somar os graus de todos os vértices, cada aresta entra duas vezes na conta, uma em cada extremidade. O lema do aperto de mãos escreve essa relação como para todo grafo finito não orientado. O número de vértices de grau ímpar é, por esse motivo, sempre par.[nota 8][12]

Percursos e conectividade

[editar | editar código]
Grafo de oito vértices no qual uma sequência colorida de arestas liga o vértice a ao vértice h
Um percurso torna a conectividade verificável. As arestas coloridas formam um caminho entre dois vértices do grafo.

Um passeio é uma sequência alternada de vértices e arestas, na qual cada aresta une os vértices que vêm imediatamente antes e depois dela. Uma trilha é um passeio que não repete arestas. Um caminho não repete vértices. Se o primeiro e o último vértices coincidem, o passeio é fechado. Um caminho fechado que não repete os demais vértices forma um ciclo. O comprimento de um passeio, trilha ou caminho é o número de arestas percorridas.[nota 9][13]

Um grafo não orientado é conexo quando existe um caminho entre cada par de vértices. Caso contrário, ele se divide em componentes conexas, que são seus subgrafos conexos maximais.[nota 10] Nos grafos orientados, distingue-se a conectividade forte, na qual há caminhos orientados nos dois sentidos entre cada par de vértices, da conectividade fraca, obtida quando as orientações das arestas são desconsideradas.[nota 11][14]

Distâncias, parâmetros e invariantes

[editar | editar código]
Dois desenhos do mesmo grafo têm em vermelho caminhos mínimos que realizam o diâmetro
O diâmetro é a maior distância mínima entre dois vértices. No mesmo grafo, caminhos mínimos diferentes podem atingir esse valor.

A distância entre dois vértices da mesma componente de um grafo não orientado é o comprimento do menor caminho que os une.[nota 12] Em um grafo conexo, a maior distância de um vértice a qualquer outro é sua excentricidade. O menor valor de excentricidade do grafo é seu raio, e o maior é seu diâmetro. Os vértices de excentricidade mínima formam o centro do grafo. Outra medida baseada em percursos é a cintura, o comprimento do ciclo mais curto, quando existe.[15]

Uma propriedade ou quantidade que não muda quando o grafo é trocado por outro isomorfo recebe o nome de invariante de grafos.[nota 13] A ordem, o tamanho, a sequência de graus, o número de componentes, a planaridade e o fato de ser bipartido são exemplos. Os parâmetros numéricos também abrangem o número cromático, o número de clique, o número de independência, a conectividade por vértices ou arestas e a largura de árvore. Cada um resume uma parte da estrutura e pode dar limites para outros parâmetros ou controlar a dificuldade de algoritmos. Alguns valores iguais, porém, não bastam para concluir que dois grafos são isomorfos.[16]

Árvores e florestas

[editar | editar código]
Três árvores: uma em forma de caminho, uma estrela e uma estrutura ramificada
Uma árvore pode ter forma de caminho, estrela ou estrutura ramificada e ainda conectar os vértices sem formar ciclos.

Uma árvore é um grafo conexo sem ciclos, enquanto uma floresta é um grafo sem ciclos cujas componentes são árvores. Em um grafo finito, ser uma árvore equivale a haver exatamente um caminho entre cada par de vértices. Também equivale a ser conexo e ter arestas, ou a ser conexo e tornar-se desconexo quando qualquer aresta é removida. Esses critérios reconhecem a mesma estrutura por propriedades diferentes.[nota 14][17]

Todo grafo conexo contém uma árvore geradora, uma árvore que passa por todos os seus vértices.[nota 15] Se as arestas têm pesos, uma árvore geradora mínima escolhe a menor soma possível. O estudo das árvores reúne os conceitos de caminho e conectividade com problemas de otimização, decomposição e estruturas de dados.[18]

Classes elementares e generalizações

[editar | editar código]
Sete vértices agrupados por quatro regiões coloridas que marcam hiperarestas
Em um hipergrafo, uma única hiperaresta pode reunir mais de dois vértices e guardar uma relação que ocorre em grupo.

Um grafo completo contém uma aresta entre cada par de vértices distintos. Em um grafo bipartido, os vértices podem ser separados em dois conjuntos e todas as arestas têm uma extremidade em cada conjunto. Um grafo regular tem o mesmo grau em todos os vértices.[19]

A maior parte dos problemas algorítmicos usa grafos finitos. Há também grafos infinitos, para os quais conectividade, caminhos, árvores e menores são adaptados a conjuntos infinitos de vértices ou arestas.[20] Quando uma relação precisa reunir mais de dois vértices de uma só vez, o hipergrafo permite que uma aresta incida em qualquer quantidade deles.[nota 16][21]

Subgrafos, isomorfismo e operações

[editar | editar código]
Dois desenhos de um grafo mostram, antes e depois, a contração da aresta entre os vértices u e v em um vértice w
A contração funde as duas extremidades de uma aresta e é uma das operações usadas para obter menores de um grafo.

Um subgrafo nasce da escolha de parte dos vértices e das arestas de um grafo, sem mudar quais arestas tocam quais vértices. Um subgrafo gerador contém todos os vértices do grafo original. O subgrafo induzido por um conjunto de vértices contém todas as arestas do original cujas duas extremidades pertencem a esse conjunto. Dois grafos são isomorfos quando há uma correspondência bijetiva entre seus vértices que mantém as adjacências. Os rótulos, as posições e as formas do desenho podem mudar sem alterar o grafo abstrato.[nota 17][22]

Para produzir novas estruturas e comparar problemas, pode-se eliminar um vértice ou uma aresta, ou fazer uma contração de aresta, que funde as duas extremidades em um único vértice. O grafo obtido por eliminações e contrações é um menor, também chamado de subcontração, do original.[nota 18] O grafo complementar conserva os vértices e põe arestas onde não havia adjacência. O grafo linha transforma as arestas do original em vértices e une aquelas que tinham uma extremidade comum.[23]

História

[editar | editar código]

Origens e século XIX

[editar | editar código]
Mapa de Königsberg de 1651 com o rio Pregel em azul e as sete pontes em verde
No mapa de Königsberg de 1651, o Pregel está em azul e as sete pontes, em verde. O problema levou Euler a substituir a geografia detalhada por relações de conexão, passo fundador da teoria dos grafos e da topologia.

Em 1736, Leonhard Euler publicou Solutio Problematis ad Geometriam Situs Pertinentis, sobre as sete pontes de Königsberg, e iniciou o estudo matemático das estruturas definidas por conexões.[nota 19][24] Seu texto e Remarques sur les Problèmes de Situation, escrito em 1771 por Alexandre-Théophile Vandermonde a respeito do passeio do cavalo, seguiram a chamada analysis situs.[nota 20] Gottfried Wilhelm Leibniz havia iniciado essa linha de investigação.[25] A característica de Euler relaciona o número de arestas, vértices e faces de um poliedro convexo.[nota 21] Augustin-Louis Cauchy e Simon Antoine Jean L'Huillier estudaram e generalizaram essa relação.[26] Trabalhos desse tipo abriram o ramo da matemática que recebeu o nome de topologia.[27]

Mais de um século após o artigo de Euler, Johann Benedict Listing introduzia o conceito de topologia e Arthur Cayley, interessado em formas analíticas do cálculo diferencial, começou a estudar as árvores.[28] Cayley concentrou suas técnicas na enumeração de grafos com propriedades determinadas e também relacionou as árvores à composição química.[29] A teoria enumerativa dos grafos cresceu a partir desses resultados, dos trabalhos de George Pólya publicados entre 1935 e 1937 e da generalização feita por Nicolaas Govert de Bruijn em 1959. A aproximação com a química teórica também trouxe termos que entraram no vocabulário da teoria dos grafos.

O desenvolvimento independente da topologia, entre 1860 e 1930, levou suas ideias de volta à teoria dos grafos nos trabalhos de Camille Jordan, Kazimierz Kuratowski e Hassler Whitney, enquanto técnicas da álgebra moderna aproximaram os dois campos. Um exemplo anterior veio do físico Gustav Kirchhoff, que publicou em 1845 suas leis de Kirchhoff para calcular a tensão elétrica e a corrente elétrica em circuitos elétricos.[30]

Consolidação da disciplina

[editar | editar código]
Mapa abstrato dividido em regiões coloridas de azul, verde, amarelo e laranja sem regiões vizinhas da mesma cor
Colorir mapas como grafos transforma regiões em vértices e fronteiras comuns em adjacências. Dessa tradução veio o teorema das quatro cores.

Dénes König escreveu o primeiro livro didático de teoria dos grafos, publicado em 1936.[31] Em 1969, um livro de Frank Harary tornou-se manual de referência internacional[32] e deu a matemáticos, químicos, engenheiros eletricistas e cientistas sociais uma linguagem comum. Harary destinou todos os direitos autorais ao financiamento do Prêmio George Pólya.[33]

O problema das quatro cores pergunta se qualquer mapa desenhado em um plano pode ter suas regiões coloridas com quatro cores, sem que duas regiões de fronteira comum recebam a mesma cor. Francis Guthrie formulou a questão em 1852, e o primeiro registro escrito está em uma carta enviada naquele ano por Augustus De Morgan a William Rowan Hamilton. Proliferaram provas incorretas, inclusive as propostas por Cayley e Alfred Kempe. As investigações e generalizações de Peter Tait, Percy John Heawood, Frank P. Ramsey e Hugo Hadwiger levaram ao estudo da coloração de grafos imersos em superfícies de gênero arbitrário. A reformulação de Tait abriu uma classe de questões chamada de problemas de fatoração, estudada sobretudo por Julius Petersen e Dénes König. Os trabalhos de Ramsey sobre coloração e os resultados obtidos por Pál Turán em 1941 abriram a teoria extremal dos grafos.[34][35]

Desenvolvimento computacional e contemporâneo

[editar | editar código]
Animação em que uma busca expande, passo a passo, os caminhos de menor custo a partir de um vértice
A animação do algoritmo de Dijkstra mostra a construção passo a passo de caminhos mínimos, para além da prova de que eles existem.

Os métodos probabilísticos entraram na teoria dos grafos por meio de estudos como os de Paul Erdős e Alfréd Rényi sobre a probabilidade assintótica de um grafo ser conexo. Dessa linha nasceu a teoria dos grafos aleatórios.[36]

Na segunda metade do século XX, a computação tornou-se instrumento e objeto de estudo da teoria dos grafos. Em 1959, Edsger Dijkstra publicou algoritmos para encontrar caminhos mínimos e árvores geradoras mínimas. Nas décadas seguintes, a análise de algoritmos e a complexidade computacional passaram a separar problemas tratáveis em tempo polinomial de problemas NP-completos.[nota 22][37]

O problema das quatro cores permaneceu sem solução por mais de um século. Em 1969, Heinrich Heesch publicou um método para resolvê-lo com computadores.[38] A prova assistida por computador que Kenneth Appel e Wolfgang Haken produziram em 1976 empregou o método de descarga desenvolvido por Heesch.[39][40] O procedimento começou com um conjunto inevitável de 1.936 configurações, reduzido depois a 1.476 para a verificação computacional. O computador era indispensável e essa parte não podia ser conferida integralmente à mão, o que provocou debate.[41] Duas décadas depois, Neil Robertson, Paul Seymour, Daniel P. Sanders e Robin Thomas apresentaram uma prova mais simples, baseada em 633 configurações.[34][42]

O conjunto de artigos Graph Minors, iniciado por Robertson e Seymour em 1983, levou à prova de que, em qualquer conjunto infinito de grafos finitos, algum deles é menor de outro. Toda classe de grafos fechada pela operação de menores pode, a partir desse resultado, ser caracterizada por um conjunto finito de menores proibidos.[nota 23][43]

No fim da década de 1990, os modelos de redes de pequeno mundo e de redes em crescimento por ligação preferencial deram novo impulso à ciência de redes, que estuda a estrutura e a dinâmica de redes encontradas em sistemas naturais, tecnológicos e sociais.[44]

Representações de grafos

[editar | editar código]

Como um grafo é uma abstração de relações, a mesma estrutura pode receber representações diferentes.[nota 24] Um desenho comunica visualmente, matrizes permitem usar métodos algébricos e estruturas de dados guardam o grafo para que um computador possa processá-lo.[45]

Representação visual: desenho de grafos

[editar | editar código]
Três desenhos e matrizes mostram como a renomeação dos vértices revela que dois grafos de aparência diferente são isomorfos
Desenhos diferentes podem mostrar o mesmo grafo. A correspondência entre vértices, não a posição na página, decide o isomorfismo.

Um grafo costuma ser desenhado com um ponto ou círculo para cada vértice e uma linha para cada aresta que une dois vértices. Nos grafos orientados, uma seta dá a direção. Nos grafos ponderados, o peso fica junto à aresta.[46]

O desenho não deve ser confundido com o próprio grafo, uma estrutura abstrata e não visual, pois o mesmo grafo admite desenhos diferentes. O que importa é saber quais vértices estão unidos e por quantas arestas, não a posição exata de cada elemento. Na prática, nem sempre é fácil decidir se dois desenhos correspondem ao mesmo grafo. Certas disposições são mais legíveis em alguns domínios do que em outros.[47]

W. T. Tutte introduziu procedimentos da álgebra linear para obter desenhos de grafos e, com eles, ampliou os métodos disponíveis para essa tarefa.[48]

O desenho de grafos, uma área da visualização da informação, procura tornar a estrutura legível. Em diagramas de nós e ligações, os vértices podem ser discos, caixas ou rótulos, enquanto as arestas podem ser segmentos de reta, linhas poligonais ou curvas.[49] A qualidade pode ser medida pelo número de cruzamentos,[50] pela área, pela exibição de simetrias,[51] pela minimização de curvas, pela resolução angular e pelo número de inclinações.[52] Um grafo planar admite um desenho sem cruzamentos. O campo também estuda desenhos em outras superfícies, empacotamentos de círculos,[53] grafos de interseção e visualizações da matriz de adjacência.

Representações algébricas

[editar | editar código]
Um grafo não orientado e outro orientado estão ao lado das respectivas matrizes de adjacência
Na matriz de adjacência, as linhas e colunas correspondem aos vértices, e cada entrada guarda uma ligação mostrada no desenho.

As matrizes levam as relações do grafo para a linguagem da álgebra linear. Na matriz de incidência, as linhas correspondem aos vértices e as colunas, às arestas. Na matriz de adjacência, linhas e colunas correspondem aos vértices. Em um grafo simples, a entrada informa se e são adjacentes. Quando é essa matriz, a entrada de conta os passeios de comprimento que vão de a .[nota 25][54]

A matriz de grau reúne os graus dos vértices e, ao ser combinada com a matriz de adjacência, dá a matriz laplaciana. Esta é usada em resultados como o teorema de Kirchhoff, que conta as árvores geradoras de um grafo.[nota 26] Na matriz de distâncias, cada entrada contém o comprimento do caminho mínimo entre dois vértices.[55]

Estruturas de dados

[editar | editar código]
Uma estrutura em árvore associa cada vértice a uma lista encadeada de seus vizinhos
Uma lista de adjacência guarda apenas os vizinhos que existem para cada vértice, o que costuma economizar memória em grafos esparsos.

Em aplicações computacionais, a estrutura de dados escolhida depende da estrutura do grafo e do algoritmo usado para manipulá-lo. Entre as representações por listas estão a lista de arestas, um arranjo de pares de vértices, e a lista de adjacência, que enumera separadamente os vizinhos de cada vértice. A matriz de adjacência também pode ser usada diretamente como estrutura de dados.[56]

As listas tendem a ocupar menos memória e costumam ser escolhidas para grafos esparsos, comuns em aplicações reais.[nota 27] As matrizes dão acesso rápido em certas tarefas, mas podem consumir muita memória. Uma aplicação pode combinar as duas formas. Matrizes esparsas eficientes para arquiteturas paralelas ainda são desenvolvidas e permitem escrever algoritmos de grafos como operações de álgebra linear.[57]

Modelagem e métodos de análise

[editar | editar código]

Construção do modelo

[editar | editar código]

Para modelar uma situação por um grafo, é preciso decidir quais entidades serão vértices e quais relações serão arestas. A pergunta orienta a escolha. Em uma rede viária, os vértices podem ser cruzamentos e as arestas, trechos de rua. Em outra escala, os vértices podem ser cidades e as arestas, ligações diretas entre elas. Uma relação recíproca aceita arestas não orientadas, enquanto uma relação assimétrica exige orientação. Distância, tempo, capacidade ou custo podem entrar como pesos.[58]

O modelo conserva as relações necessárias para a pergunta e deixa outros aspectos do sistema de fora.[nota 28] Dois modelos do mesmo objeto podem, por isso, responder a perguntas distintas, e a conclusão matemática só vale dentro das escolhas feitas. Também é preciso decidir se laços e arestas paralelas têm sentido, se o sistema muda com o tempo e se cada relação ocorre realmente entre pares. Essas decisões dizem se um grafo simples basta ou se o problema pede uma generalização.[nota 29][59][60][61]

Da pergunta ao problema matemático

[editar | editar código]

Depois de construído o modelo, a pergunta original é traduzida em uma propriedade, estrutura ou quantidade do grafo. A formulação determina o resultado procurado e os métodos disponíveis.[nota 30][62]

Pergunta no sistema modelado Formulação típica em grafos Resultado procurado
É possível ir de uma entidade a outra? Caminhos e conectividade Uma resposta de decisão ou um caminho que a certifique
Qual é a rota de menor custo? Caminho mínimo em grafo ponderado Um caminho que minimize a soma dos pesos
Como conectar todos os pontos com custo total mínimo? Árvore geradora mínima Uma árvore geradora que minimize a soma dos pesos
Como formar pares ou atribuir tarefas sem conflitos? Emparelhamento Um conjunto de arestas sem extremidades em comum
Como separar atividades incompatíveis? Coloração Uma atribuição de cores que respeite as adjacências
Quanto pode ser transportado por uma rede com capacidades? Fluxo máximo e corte mínimo O valor máximo do fluxo e um corte que forneça o limite correspondente

Transformações, equivalências e dualidades

[editar | editar código]
Dois grafos com os mesmos cinco vértices mostram que as arestas ausentes em um estão no outro
No grafo complementar, cada não adjacência do original vira uma aresta. Uma clique, por exemplo, vira um conjunto independente.

Uma transformação pode expor a equivalência entre dois problemas. Uma clique de um grafo vira um conjunto independente em seu complemento. Colorir as arestas de um grafo equivale a colorir os vértices de seu grafo linha. Em um grafo plano conexo, a dualidade relaciona ciclos do original a cortes do dual. Essas correspondências levam definições, teoremas e algoritmos de uma formulação para outra.[nota 31][63]

Métodos de prova e análise

[editar | editar código]

Entre as técnicas combinatórias usadas para provar resultados sobre grafos, a dupla contagem calcula a mesma coleção de duas maneiras, como ocorre no lema do aperto de mãos. A indução costuma remover um vértice ou uma aresta, aplicar a hipótese ao grafo menor e reconstruir a solução. Um argumento extremal escolhe um objeto máximo ou mínimo e prova que qualquer violação permitiria melhorá-lo. A prova clássica da existência de árvores geradoras, por exemplo, começa com um subgrafo gerador conexo que tem o menor número possível de arestas.[64]

Os métodos algébricos transformam o grafo em matrizes, polinômios ou grupos, enquanto o método probabilístico prova que uma estrutura existe ao mostrar que ela ocorre com probabilidade positiva, mesmo sem construí-la diretamente.[nota 32] As decomposições estruturais separam o grafo em partes mais simples. Os métodos algorítmicos acrescentam a construção efetiva e calculam quanto tempo e quanta memória ela exige. Uma prova de existência, por si só, não dá um algoritmo eficiente.[nota 33][65]

Problemas fundamentais

[editar | editar código]

Depois que o modelo está definido, um problema pode pedir que se decida se uma estrutura existe, que se construa um caminho ou emparelhamento, que se encontre o melhor valor possível ou que se contem configurações. A dificuldade da mesma pergunta pode mudar conforme a classe do grafo, os pesos, a orientação das arestas e os parâmetros escolhidos.[66]

Caminhos, ciclos e conectividade

[editar | editar código]
Rede de cidades alemãs ligada por arestas rotuladas com distâncias em quilômetros
Ao transformar cidades em vértices e distâncias em pesos, uma rota geográfica torna-se um problema de caminhos em um grafo ponderado.

Problemas de percursos perguntam se determinados vértices podem ser ligados e quais restrições devem ser impostas ao trajeto. Problemas de conectividade procuram determinar quantos vértices ou arestas precisam ser retirados para desconectar o grafo, ou quantos caminhos independentes existem entre dois pontos. O teorema de Menger relaciona o número máximo de caminhos internamente disjuntos ao tamanho mínimo de um conjunto separador.[67]

A existência de um caminho ou circuito euleriano pode ser decidida pelos graus e pela conectividade, e o percurso pode ser construído em tempo linear no tamanho do grafo. Decidir se existe um caminho ou circuito hamiltoniano, embora a pergunta pareça semelhante, é NP-completo.[nota 34][68]

Emparelhamentos, coberturas e empacotamentos

[editar | editar código]
Três grafos destacam em vermelho conjuntos crescentes de arestas sem extremidades comuns
As arestas destacadas não compartilham extremidades e formam um emparelhamento. A pergunta passa de uma regra local para a busca do maior conjunto possível.

Um emparelhamento reúne arestas sem extremidades em comum. Conforme a pergunta, busca-se um emparelhamento máximo, com o maior número possível de arestas, ou um emparelhamento perfeito, que cubra todos os vértices.[nota 35] O teorema do casamento de Hall dá as condições para que um emparelhamento cubra uma das partes de um grafo bipartido. O mesmo raciocínio pode ser usado para atribuir pessoas, tarefas e recursos.[69]

Em grafos, os problemas de cobertura podem designar formas do problema da cobertura de conjuntos aplicadas a subconjuntos de vértices ou subgrafos.[70]

  • O problema do conjunto dominante é o caso em que os conjuntos são as vizinhanças fechadas.
  • O problema da cobertura de vértices é o caso em que os elementos cobertos são as arestas.
  • O problema original da cobertura de conjuntos, também chamado de conjunto de interseção, pode ser formulado como uma cobertura de vértices em um hipergrafo.

Problemas de empacotamento procuram selecionar subestruturas mutuamente disjuntas, como caminhos, ciclos ou árvores. Emparelhamentos são o caso em que as subestruturas escolhidas são arestas.[71]

Coloração de grafos

[editar | editar código]
Grafo dividido em quatro áreas coloridas, com vértices adjacentes recebendo cores diferentes
Uma coloração válida separa por cores os vértices que não podem compartilhar a mesma escolha, convertendo conflitos em uma restrição visual.

Muitos problemas e teoremas procuram colorir um grafo de modo que dois vértices adjacentes não recebam a mesma cor ou impondo restrições semelhantes.[nota 36] Também é possível colorir arestas, por exemplo impedindo que duas arestas incidentes tenham a mesma cor. A área reúne estes resultados e conjecturas.

Fluxos, cortes e circulação

[editar | editar código]
Rede orientada de uma fonte s a um sorvedouro t com capacidades e fluxos marcados nas arestas
O maior fluxo possível da fonte ao sorvedouro tem o mesmo valor que o menor gargalo capaz de separá-los.

Uma rede de fluxo é um grafo orientado cujas arestas têm capacidades, com uma fonte, um sorvedouro e conservação do fluxo nos demais vértices.[nota 37] O teorema do fluxo máximo e corte mínimo afirma que o maior valor enviado da fonte ao sorvedouro é igual à menor capacidade de um corte que os separa. O resultado está na base de algoritmos de transporte, comunicação, circulação e alocação de recursos.[76] Diferentes redes de fluxo levam aos problemas listados abaixo.

Subestruturas, isomorfismo e menores

[editar | editar código]
Dois grafos apresentam a mesma estrutura ramificada, mas com vértices de grau dois inseridos em arestas diferentes
Subdividir arestas acrescenta vértices de grau dois sem mudar a forma topológica do grafo. A mesma estrutura pode, então, ser reconhecida em escalas diferentes.

O problema do isomorfismo de subgrafos pergunta se um grafo ocorre como subgrafo de outro. Quando o padrão também faz parte da entrada, a versão de decisão é NP-completa. A pergunta também entra no estudo de propriedades de grafos hereditárias para subgrafos. Se um grafo tem uma propriedade desse tipo, todos os seus subgrafos também a têm.[nota 38] Nos problemas de otimização, um subgrafo maximal não aceita nenhum acréscimo sem perder a propriedade, enquanto um subgrafo máximo tem o maior tamanho possível. Encontrar uma clique máxima é NP-difícil. A versão de decisão correspondente, o problema do clique, é NP-completa.[77]

O problema do isomorfismo de grafos é o caso particular que pergunta se dois grafos são isomorfos. Não se sabe se ele é NP-completo nem se pode ser resolvido em tempo polinomial. Desde 2016, conhece-se um algoritmo geral de tempo quase polinomial, com limite superior da forma .[nota 39][78]

A busca por subgrafos induzidos levanta um problema próximo, pois algumas propriedades também passam para essas partes do grafo. Encontrar um subgrafo induzido máximo com determinada propriedade pode ser NP-difícil, embora uma solução apenas maximal por inclusão possa ser mais simples. Procurar o maior subgrafo induzido sem arestas equivale a procurar o maior conjunto independente. A versão de decisão desse problema é NP-completa.[79]

No problema da contenção de menores, procura-se um grafo fixo entre os menores de outro grafo. Muitas propriedades passam para os menores. O teorema de Wagner dá um exemplo dessa relação.

No problema da contenção de subdivisões, procura-se um grafo fixo como subdivisão de outro. Uma subdivisão, ou homeomorfismo, surge quando novos vértices são inseridos em algumas arestas.[nota 40] A planaridade pode ser testada por esse tipo de contenção, como afirma o teorema de Kuratowski.

  • um grafo é planar se, e somente se, não contém como subdivisão o grafo bipartido completo nem o grafo completo [81]

O teorema de Kelmans–Seymour, formulado primeiro como conjectura, foi provado em um conjunto de artigos concluído em 2020.

Alguns problemas perguntam até que ponto um grafo pode ser recuperado a partir dos subgrafos obtidos quando se elimina um vértice. A conjectura da reconstrução segue em aberto. Buscas computacionais confirmaram sua validade para todos os grafos com até 13 vértices e para algumas classes limitadas de grafos maiores.[83]

Decomposições e parâmetros estruturais

[editar | editar código]
Um grafo em grade está ao lado de uma árvore cujas folhas correspondem às arestas do grafo
Uma decomposição organiza uma estrutura densa como uma árvore de partes. A largura das separações pode, então, controlar propriedades e algoritmos.

A decomposição divide o conjunto de arestas de um grafo em partes, cada qual acompanhada dos vértices necessários. Muitas perguntas buscam decompor um grafo em subgrafos isomorfos a um grafo fixo, como na decomposição de um grafo completo em ciclos hamiltonianos. Outras determinam uma família de grafos para receber a decomposição, como uma família de ciclos. A conjectura de empacotamento de árvores de Gyárfás, por exemplo, pede que árvores especificadas, com respectivamente 1, 2, 3, ..., arestas, sejam empacotadas sem sobreposição de arestas no grafo completo .[84]

Os problemas estudados abrangem os itens abaixo.

Enumeração

[editar | editar código]
Coleção dos grafos simples não isomorfos com quatro vértices, ordenados pelo número de arestas
A enumeração a menos de isomorfismo conta cada estrutura uma só vez, mesmo quando rótulos ou desenhos diferentes levam ao mesmo grafo.

A enumeração de grafos conta os grafos que satisfazem condições determinadas. Os grafos rotulados têm vértices com identidades fixadas. Os não rotulados são contados a menos de isomorfismo.[nota 42] Harary e Palmer reúnem uma parte ampla desses problemas.[86]

Problemas geométricos e de visibilidade

[editar | editar código]
Polígono com segmentos ligando pares de vértices que podem ver um ao outro sem atravessar a fronteira
O grafo de visibilidade converte a geometria dos obstáculos em adjacências, permitindo estudar cobertura e rotas por métodos combinatórios.

Na geometria computacional, grafos de visibilidade registram quais pontos ou regiões podem ser ligados por segmentos que não atravessam obstáculos.[nota 43] Entre os problemas associados estão o problema da galeria de arte, que procura posicionar observadores para cobrir uma região poligonal, e questões de reconhecimento e caracterização de grafos de visibilidade.[87]

Subáreas

[editar | editar código]

As subáreas da teoria dos grafos se sobrepõem, pois um mesmo problema pode exigir estrutura combinatória, simetria algébrica, representação geométrica, probabilidade e algoritmos. Cada divisão dá mais atenção a certo tipo de pergunta e às ferramentas usadas para respondê-la.

Teoria estrutural dos grafos

[editar | editar código]
Um grafo está acima de uma árvore cujos nós contêm subconjuntos sobrepostos de vértices
Uma decomposição em árvore organiza sobreposições locais sem formar ciclos. Sua largura mede quanto o grafo se afasta do comportamento de uma árvore.

A teoria estrutural dos grafos investiga como as propriedades do grafo inteiro nascem de suas subestruturas e das maneiras de separá-lo em partes mais simples. Ela estuda conectividade, caminhos disjuntos, subgrafos e menores proibidos, decomposições em árvore e relações entre classes de grafos.[88]

A ausência de certas subestruturas define muitas classes, e o teorema de Robertson–Seymour garante que toda classe de grafos finitos fechada pela operação de menores é determinada por um conjunto finito de menores proibidos.[89] Os parâmetros estruturais também podem antecipar a dificuldade de um problema. A largura de árvore mede quanto um grafo se aproxima de uma árvore, e muitos problemas difíceis em grafos gerais admitem algoritmos eficientes quando esse parâmetro é limitado.[90]

O estudo estrutural procura ainda enumerar os membros de uma classe, caracterizá-la por subestruturas proibidas, determinar relações de inclusão entre classes, reconhecer seus membros por algoritmos eficientes e encontrar representações adequadas para eles.[91]

Teoria topológica dos grafos

[editar | editar código]
Grafo de Heawood desenhado sem cruzamentos sobre a superfície de um toro
Grafo diamante disposto em uma única página de uma imersão em livro
Grafo bipartido completo K quatro sete com dezoito cruzamentos marcados em vermelho
Mapa dos Estados Unidos colorido com quatro cores, sem regiões adjacentes da mesma cor
A teoria topológica relaciona a estrutura do grafo ao espaço em que ele é desenhado. O conjunto reúne a imersão do grafo de Heawood em um toro, uma imersão em livro de uma página do grafo diamante, o número de cruzamentos de , com 18 cruzamentos em vermelho, e a coloração dos Estados Unidos pelo teorema das quatro cores, sem contar lagos e oceanos.

A teoria topológica dos grafos estuda grafos como espaços topológicos. Um grafo simples pode ser construído geometricamente com simplexos de dimensão zero para os vértices e de dimensão um para as arestas. Juntos, eles formam um complexo simplicial unidimensional.[nota 44][92] Essa subárea abrange a imersão de grafos em superfícies, a imersão sem enlace, os menores de grafos, o número de cruzamentos, a coloração de mapas e o grafo de tensão.[93]

Na imersão de um grafo em uma superfície, pontos são associados aos vértices e arcos simples, às arestas. As extremidades de cada arco correspondem aos vértices terminais da aresta. Nenhum arco contém um ponto associado a outro vértice e dois arcos nunca se cruzam em um ponto interior a qualquer um deles.[nota 45][94] O conceito pode ser generalizado pela imersão sem enlace, na qual dois ciclos do grafo não formam um enlace no espaço euclidiano tridimensional,[95] e pela imersão em livro, feita em uma coleção de semiplanos que têm a mesma reta como fronteira.[96]

Para obter o grafo dual de uma imersão no plano, coloca-se um vértice em cada face e, para cada aresta do grafo original, traça-se uma aresta dual que separa as mesmas duas faces. Em grafos planos conexos, essa dualidade troca ciclos por cortes e permite transportar resultados entre problemas de coloração, conectividade e fluxo.[nota 46][97]

Um grafo é menor de outro quando pode ser formado pela eliminação de vértices e arestas e pela contração de arestas.[98] Um dos primeiros resultados da teoria dos menores é o teorema de Wagner, pelo qual um grafo finito é planar se, e somente se, não contém como menor o grafo completo de cinco vértices nem o grafo utilitário.[99] O teorema de Robertson–Seymour garante que toda classe de grafos finitos fechada pela operação de menores pode ser caracterizada por um conjunto finito de menores proibidos.[100]

O número de cruzamentos é a quantidade mínima de interseções entre arestas em um desenho do grafo. Esse estudo nasceu de uma pergunta feita por Pál Turán, que buscava uma planta industrial com o menor número possível de cruzamentos entre as linhas que ligavam fornos de tijolos a depósitos. O problema da fábrica de tijolos de Turán pode ser formulado como a busca do número de cruzamentos de um grafo bipartido completo.[101]

A coloração de mapas pode ser formulada como uma coloração de grafos. Cada região vira um vértice, e uma aresta une as regiões que compartilham uma fronteira. O teorema das quatro cores afirma que quatro cores bastam para colorir as regiões de qualquer mapa sem que duas regiões com uma fronteira comum tenham a mesma cor.[102] O resultado é mais forte que o teorema das cinco cores. O problema Terra–Lua, ainda em aberto, estende o problema da coloração de mapas planares resolvido pelo teorema das quatro cores.

Um grafo de tensão é um grafo orientado cujas arestas recebem rótulos invertíveis formados por elementos de um grupo. A estrutura especifica de modo compacto o grafo derivado.[103] Ela também é usada para formar um grafo de cobertura.[104]

Teoria algébrica dos grafos

[editar | editar código]
Grafo de Petersen desenhado como um pentágono externo, uma estrela interna e cinco conexões entre ambos
A teoria algébrica dos grafos usa a teoria dos grupos para estudar simetrias. O grafo de Petersen, por exemplo, é vértice-transitivo, simétrico, distância-transitivo e distância-regular. Seu grupo de automorfismos tem 120 elementos e é o grupo simétrico .

A teoria algébrica dos grafos usa métodos da álgebra, sobretudo a álgebra linear e a teoria dos grupos. A teoria espectral de grafos trabalha com a matriz de adjacência e com seu espectro, formado pelo polinômio característico e pelos autovalores e autovetores da matriz.[nota 47] O campo também estuda a matriz laplaciana, definida a partir da matriz de grau, uma matriz diagonal que reúne os graus dos vértices, e da matriz de adjacência.[105]

Na teoria dos grupos, os grupos de automorfismos e a teoria geométrica dos grupos permitem classificar famílias de grafos por suas simetrias.[nota 48][106] Entre elas estão os grafos simétricos, vértice-transitivos, aresta-transitivos, distância-transitivos, distância-regulares e fortemente regulares.[107] O teorema de Frucht afirma que todo grupo finito é o grupo de simetrias de algum grafo finito não orientado. Em uma forma mais forte, há infinitos grafos simples, conexos e não isomorfos cujos grupos de automorfismos são isomorfos a cada grupo finito.[108]

A teoria algébrica também trata de invariantes algébricos, do polinômio cromático, do polinômio de Tutte e dos invariantes de nós.[109] O polinômio cromático conta as colorações de um grafo em função do número de cores.[110] O polinômio de Tutte tem duas variáveis e codifica propriedades da conectividade do grafo.[111]

Teoria geométrica dos grafos

[editar | editar código]
Pontos no plano ligados por uma árvore geradora mínima euclidiana
Projeção plana do grafo formado pelos vértices e arestas de um dodecaedro
Círculos tangentes cujos pontos de contato correspondem às arestas de um grafo moeda
Plano de Fano e o grafo bipartido de Levi associado a suas incidências
A teoria geométrica estuda propriedades combinatórias e geométricas de grafos desenhados com arestas retas ou curvas. O conjunto reúne uma árvore geradora mínima euclidiana, o grafo dodecaédrico de um dodecaedro regular, um grafo moeda obtido por empacotamento de círculos e o grafo de Heawood como grafo de Levi do plano de Fano.

A teoria geométrica dos grafos estuda as propriedades combinatórias e geométricas de grafos desenhados no espaço euclidiano, com arestas em segmentos de reta ou curvas contínuas.[nota 49][112] Inserida na geometria discreta e na geometria computacional, abrange os grafos planares,[113] sua relação com politopos convexos de dimensões superiores,[114] a interseção entre conjuntos de formas geométricas[115] e campos como a geometria de incidência e a geometria projetiva.[116]

Um grafo planar desenhado no plano euclidiano com vértices pontuais e segmentos de reta sem cruzamentos como arestas chama-se grafo planar de linhas retas. Pelo teorema de Fáry, todo grafo planar admite esse desenho. Trata-se de um caso particular de grafo euclidiano, no qual o comprimento de cada aresta é a distância euclidiana entre suas extremidades. Nessa área, a árvore geradora mínima euclidiana minimiza o comprimento total dos segmentos entre pontos finitos de um espaço euclidiano. O problema de Hadwiger–Nelson procura o menor número de cores para colorir o plano sem dar a mesma cor a dois pontos separados por distância unitária. O problema do caminho mínimo busca um caminho cuja soma dos valores das arestas seja a menor possível.[117]

No grafo de visibilidade, os vértices correspondem a pontos e as arestas, a conexões visíveis. Em um polígono simples, sem auto-interseções nem buracos, as arestas do grafo de visibilidade correspondem aos lados e às diagonais do polígono.[118] Um grafo poliédrico é um grafo não orientado formado pelos vértices e arestas de um poliedro convexo tridimensional. Pelo teorema de Steinitz, ele deve ser planar e 3-conexo por vértices, isto é, permanecer conexo após a remoção de quaisquer dois vértices.[119]

Em um grafo de interseção, cada vértice corresponde a um conjunto, e dois vértices são unidos quando os conjuntos têm interseção não vazia.[120] O menor número de elementos necessários para construir dessa forma um grafo de conjuntos finitos chama-se número de interseção. Quando os conjuntos são objetos geométricos, o grafo resultante também pode ser geométrico. A interseção de segmentos em uma dimensão forma um grafo de intervalos, e a de discos unitários no plano forma um grafo de discos unitários. O grafo de interseção de um empacotamento de círculos é um grafo moeda, no qual os vértices correspondem aos círculos e as arestas, aos pares de círculos tangentes. Pelo teorema de Koebe–Andreev–Thurston, os grafos de tangência de empacotamentos de círculos com interiores disjuntos são exatamente os grafos planares finitos.[121] O teorema de Scheinerman afirma que todo grafo planar é o grafo de interseção de algum conjunto de segmentos de reta no plano.[122]

O grafo de Levi é um grafo bipartido associado a uma estrutura de incidência e a uma configuração projetiva.[123]

Teoria extremal dos grafos

[editar | editar código]
Grafo bipartido completo com cinco vértices em cada parte e todas as ligações entre as duas partes
A teoria extremal dos grafos procura o maior número possível de arestas de um grafo, chamado de número extremal. O ponto de partida foi o teorema de Mantel, que determina o número extremal de um grafo sem triângulos, como o da imagem, em .

A teoria extremal dos grafos, parte da combinatória extremal, procura o maior número possível de arestas que um grafo pode ter sob certas condições. Esse valor recebe o nome de número extremal.[nota 50][124] O teorema de Mantel determina o número extremal de um grafo sem triângulos e abriu essa linha de investigação. O teorema de Turán estendeu o resultado a qualquer grafo não orientado que não contenha um subgrafo completo de tamanho fixado. O teorema de Erdős–Stone generaliza o teorema de Turán e também recebe o nome de "teorema fundamental da teoria extremal dos grafos".[125]

A área também abrange o problema do subgrafo proibido, a densidade de homomorfismos e o lema de regularidade de Szemerédi. No problema do subgrafo proibido, procura-se o número extremal de um grafo com vértices que não contenha um subgrafo isomorfo a um grafo dado.[126] A densidade de homomorfismos é um parâmetro do homomorfismo de grafos e pode expressar a probabilidade de que uma função escolhida uniformemente ao acaso entre os vértices de dois grafos seja um homomorfismo. Isso ocorre quando a função leva vértices adjacentes do primeiro grafo a vértices adjacentes do segundo.[127] O lema de regularidade de Szemerédi afirma que um grafo pode ser dividido em um número limitado de partes, de modo que as arestas entre elas sejam -regulares.[nota 51]

A teoria dos limites de grafos leva essas ideias a sequências de grafos cada vez maiores. Em grafos densos, as densidades de homomorfismos podem convergir para um objeto-limite[nota 52] dado por uma função simétrica mensurável, chamada de graphon. Com esse recurso, a combinatória extremal encontra os grafos aleatórios, a amostragem de grandes redes e os testes de propriedades.[128]

Teoria dos grafos aleatórios

[editar | editar código]

A teoria dos grafos aleatórios estuda grafos por meio do método probabilístico. O campo foi iniciado pelos matemáticos húngaros Paul Erdős e Alfréd Rényi, cujo procedimento produz grafos aleatórios no chamado modelo de Erdős–Rényi.[129]

No modelo , começa-se com vértices. Cada par distinto recebe uma aresta, de modo independente, com probabilidade .[nota 53] Mudar produz fenômenos de limiar. Considere , com constante e crescendo sem limite. Se , as componentes têm tamanho sublinear com probabilidade que tende a 1. Se , surge com a mesma garantia assintótica uma componente conexa com número de vértices proporcional a , chamada de componente gigante. Essas transições de fase aproximam os grafos aleatórios da teoria da percolação e da física estatística.[130]

Grafo ponderado em que as arestas escolhidas formam uma árvore geradora mínima destacada
Sobre o mesmo grafo, pesos sorteados ao acaso fazem da árvore geradora mínima uma variável aleatória que preserva todos os vértices.

Árvores aleatórias

[editar | editar código]

Uma árvore aleatória é uma árvore, um grafo não orientado no qual cada par de vértices está unido por exatamente um caminho, formada por um processo estocástico regido por probabilidades.[nota 54] A lista abaixo reúne seus tipos e estruturas relacionadas.

Enumeração de grafos

[editar | editar código]

A enumeração de grafos conta estruturas com propriedades prescritas e distingue os grafos rotulados, cujos vértices têm identidades fixadas, dos grafos não rotulados, contados a menos de isomorfismo. A fórmula de Cayley afirma que existem árvores rotuladas com vértices. Esse também é o número de árvores geradoras do grafo completo .[137]

Teoria algorítmica dos grafos

[editar | editar código]
Animação em que a busca em largura visita os vértices de uma árvore nível por nível
A busca em largura expande o grafo em camadas de distância crescente, convertendo a conectividade em uma ordem sistemática de visita.

A teoria algorítmica dos grafos estuda procedimentos para reconhecer propriedades de grafos e construir objetos como caminhos mínimos, árvores geradoras, emparelhamentos, colorações e fluxos. Entre suas ferramentas básicas estão a busca em largura e a busca em profundidade, que percorrem sistematicamente os vértices e as arestas de um grafo.[138]

Além da correção dos algoritmos, a área compara tempo de execução, memória e complexidade computacional. Alguns problemas admitem algoritmos polinomiais, enquanto outros são NP-completos em grafos gerais, mas se tornam tratáveis em classes restritas ou quando certos parâmetros são limitados. Para redes de grande porte, também se empregam algoritmos de aproximação, aleatorizados, parametrizados, paralelos e distribuídos.[139]

Um problema algorítmico pode pedir uma decisão, a construção de um objeto, a otimização de uma quantidade ou a enumeração de soluções. A estrutura e a forma de guardar o grafo mudam o algoritmo disponível. Decomposições estruturais, por exemplo, permitem usar programação dinâmica quando a largura de árvore é limitada.[140]

Aplicações

[editar | editar código]
Rede densa e colorida em que os vértices são edições linguísticas da Wikipédia e as arestas são editores em comum
Durante um mês de 2013, edições linguísticas da Wikipédia foram usadas como vértices e os editores que trabalharam em versões diferentes, como arestas. O grafo torna visíveis relações que uma lista de edições isoladas não mostraria.[141]

Relações e processos de sistemas físicos, biológicos,[142][143] sociais e de informação podem ser formulados como grafos.[144] Quando o grafo recebe dados de um sistema real sobre entidades, ligações ou processos, costuma ser chamado de rede.[nota 55]

Ciência de redes

[editar | editar código]

A ciência de redes estuda como redes de sistemas naturais, tecnológicos e sociais se formam, se organizam e mudam. Para isso, reúne teoria dos grafos, probabilidade, estatística, sistemas dinâmicos e conhecimentos do sistema observado. A teoria dos grafos pode investigar uma estrutura abstrata. A ciência de redes também pergunta como uma rede empírica surgiu, como se modifica e de que maneira sua organização altera os processos que ocorrem nela.[145]

Uma rede real pode ter mais de um tipo de ligação, conter camadas ou reunir interações com mais de duas entidades. As redes multicamadas separam relações ou sistemas interdependentes. Hipergrafos e complexos simpliciais guardam interações de ordem superior. Essas extensões evitam a perda de informação que ocorreria se todo o sistema fosse reduzido a uma única rede de relações aos pares.[nota 56][60][61]

Ciência da computação

[editar | editar código]

Na ciência da computação, os grafos organizam redes de comunicação, dados, dispositivos computacionais, projetos de circuitos integrados e fluxos de execução, com ligações causais ou não causais. Em um site, por exemplo, as páginas podem ser vértices de um grafo orientado, e as hiperligações formam arestas que apontam de uma página para outra.[146] A computação também desenvolve algoritmos para tratar grafos. Os sistemas de reescrita manipulam grafos em memória por meio de regras e formalizam suas transformações. Já os bancos de dados de grafos guardam e consultam dados estruturados como grafos de modo persistente e seguro para transações.[147]

Nos grafos orientados usados em máquinas de estados finitos, fluxogramas, redes de Petri e cadeias de Markov, os vértices são estados, tarefas ou eventos, e as arestas são transições ou dependências.[148]

Aprendizado de máquina e estruturas aleatorizadas

[editar | editar código]
Um vértice central recebe mensagens de quatro vizinhos e combina seus vetores para atualizar o próprio estado
Em uma rede neural de grafos, cada vértice agrega informações dos vizinhos. As camadas seguintes aumentam a parte do grafo que pode alterar seu estado numérico.

No aprendizado de máquina, as redes neurais de grafos aprendem com dados estruturados em rede. Muitas delas atualizam o vetor de características de cada vértice ao agregar informações de seus vizinhos.[nota 57] O método é usado em moléculas, sistemas de recomendação e grafos de conhecimento.[149]

Outras estruturas em forma de árvore usam escolhas aleatórias para tarefas computacionais específicas. A floresta aleatória combina árvores de decisão construídas com escolhas ao acaso. A árvore de exploração rápida cresce por amostragem para buscar caminhos em espaços de muitas dimensões. A treap combina propriedades de uma árvore de busca e de um heap por meio de prioridades aleatórias.[nota 58][150]

Segurança de redes e detecção de ataques cibernéticos

[editar | editar código]
Rede de treze nós com um hub azul, um grupo laranja e um caminho vermelho
Ao converter registros de comunicação em vértices, arestas e atributos, padrões como hubs, agrupamentos e rotas tornam-se sinais mensuráveis para a análise de tráfego.

A detecção de ataques baseada em grafos aplica a teoria dos grafos à identificação de ataques contra redes de computadores, em especial ataques distribuídos de negação de serviço, chamados de DDoS, e outras formas de intrusão.[nota 59][151]

Nesses sistemas, dados de tráfego, como registros de fluxo IP, formam um grafo. Os nós correspondem a entidades da rede, como endereços de origem e destino ou portas, e as arestas são os fluxos de comunicação observados. Contagens de pacotes, volume de bytes e duração do fluxo ficam guardados como atributos dos nós ou das arestas.[151]

Medidas estatísticas aplicadas à estrutura do grafo permitem detectar ataques, e uma delas é a entropia não extensiva baseada na formulação de Tsallis, sensível às mudanças na distribuição dos fluxos que acompanham o tráfego malicioso.[nota 60] A análise dos grafos de fluxo também permite localizar uso indevido de recursos, gargalos de tráfego e violações de políticas.[151]

Linguística

[editar | editar código]
Palavras de uma frase ligadas por arcos rotulados que indicam relações de dependência sintática
Na análise de dependências, palavras tornam-se vértices e relações sintáticas tornam-se arestas orientadas, expondo a estrutura que organiza uma frase.

Na linguística, as estruturas discretas da linguagem natural podem ser estudadas por grafos. A sintaxe e a semântica composicional costumam usar árvores, cuja capacidade expressiva vem do princípio da composicionalidade aplicado a um grafo hierárquico.[nota 61] Abordagens como a gramática sintagmática nuclear modelam a sintaxe com estruturas de características tipadas, que são grafos acíclicos orientados.[152]

Na semântica lexical, sobretudo em aplicações computacionais, o sentido de uma palavra pode ser modelado por suas relações com outras palavras. As redes semânticas são usadas na linguística computacional. A língua também pode ser analisada como grafo na fonologia, como ocorre na teoria da otimidade, que emprega reticulados, e na morfologia de estados finitos, que usa transdutores de estados finitos. A série de oficinas TextGraphs, da Association for Computational Linguistics, dedica-se a métodos baseados em grafos. WordNet e VerbNet organizam léxicos em rede.[153][154][155]

Estruturas de características e unificação

[editar | editar código]

As teorias de modelagem de restrições tratam de famílias de grafos orientados ordenadas por uma ordem parcial. Nessas aplicações, as estruturas de características guardam informação parcial em atributos e valores e podem ser ordenadas por especificidade. A unificação combina duas estruturas compatíveis no grafo mais geral que conserva as informações de cada uma. Quando não há conflito, ela se torna uma operação fundamental em gramáticas baseadas em restrições.[nota 62][156]

Em sistemas compatíveis com o princípio da composicionalidade, a unificação fornece uma operação para combinar e satisfazer restrições. Ela é usada na prova automática de teoremas e na modelagem da análise sintática em linguística computacional.[157]

Física, química e engenharia

[editar | editar código]
Diagrama de Feynman com quatro linhas externas que se encontram em dois vértices ligados por uma linha interna
Em um diagrama de Feynman, o grafo organiza vértices de interação e linhas de propagação. As regras físicas dão sentido e valores a essa estrutura.

Na química e na física, a teoria dos grafos é usada para estudar moléculas. A física da matéria condensada pode analisar quantitativamente estruturas atômicas tridimensionais simuladas a partir de propriedades topológicas dos átomos. Os diagramas e regras de cálculo de Feynman organizam os termos de expansões perturbativas da teoria quântica de campos, associando fatores matemáticos a vértices de interação e linhas de propagação para calcular amplitudes de processos físicos.[nota 63][158] Na química, um grafo pode modelar uma molécula, com vértices para os átomos e arestas para as ligações químicas. Esse método é empregado no processamento computacional de estruturas moleculares, desde editores químicos até buscas em bancos de dados.[159]

Na física estatística, grafos podem guardar as ligações locais entre partes interagentes de um sistema e a dinâmica de processos físicos. Na modelagem de redes elétricas, pesos atribuídos às arestas expressam a resistência dos segmentos de fio e permitem calcular propriedades da rede.[160] Grafos também modelam canais microscópicos de meios porosos, com vértices para os poros e arestas para os canais menores que os ligam. A teoria química dos grafos usa o grafo molecular para modelar moléculas.

Ao retirar nós ou arestas, uma rede pode passar por uma transição de fase e se dividir em pequenos aglomerados. A teoria da percolação analisa o limiar dessa ruptura.[nota 64][161]

Ciências sociais

[editar | editar código]
Sociograma com crianças desenhadas como triângulos e círculos e suas escolhas marcadas por setas
No sociograma de Jacob L. Moreno, de 1953, pessoas são vértices e escolhas são arestas. O desenho deixa visíveis posições centrais, grupos e assimetrias nas relações sociais.[162]

Na sociologia, a teoria dos grafos permite medir, por exemplo, o prestígio de atores por relações de trabalho ou estudar a propagação de rumores em redes sociais, sobretudo com programas de análise de redes sociais.[163] Nos grafos de conhecimento e amizade, uma aresta une duas pessoas que se conhecem. Os grafos de persuasão modelam a possibilidade de uma pessoa afetar o comportamento de outra. Nos grafos de colaboração, uma aresta une duas pessoas que trabalham juntas de alguma maneira, como na atuação em um mesmo filme.[164]

A sociometria e a teoria dos grafos ganharam uma formulação matemática conjunta no fim da década de 1940. Alex Bavelas propôs um modelo para estruturas de grupos e relacionou a posição dos participantes em redes de comunicação ao desempenho de tarefas. As medidas de centralidade entraram, a partir desses estudos, na análise de redes sociais.[nota 65][165]

Biologia, medicina e ecologia

[editar | editar código]
Árvore filogenética ramificada que separa bactérias, arqueias e eucariotos a partir de um ancestral comum
Em uma árvore filogenética, as ramificações expressam hipóteses de ancestralidade. A proximidade no desenho acompanha a descendência. A semelhança visual, sozinha, não determina essa proximidade.

Na biologia e na conservação, um vértice pode corresponder a uma região habitada por uma espécie, e as arestas, às rotas de migração ou deslocamento entre regiões. O modelo permite examinar padrões reprodutivos, acompanhar a propagação de doenças e parasitas e avaliar como mudanças de deslocamento afetam outras espécies.[166]

Na biologia molecular e na genômica, métodos baseados em grafos organizam conjuntos de dados com muitas relações. Na análise de transcriptomas de células individuais, por exemplo, eles agrupam células em tipos celulares.[nota 66] Genes e proteínas também podem formar vias biológicas em grafos, como vias metabólicas e redes de regulação genética.[167] Árvores evolutivas, redes ecológicas e agrupamentos hierárquicos de padrões de expressão genética também assumem a forma de grafos.

A teoria dos grafos ainda é empregada na conectômica e na neurociência computacional. Em um grafo do sistema nervoso, os nós podem ser neurônios ou regiões cerebrais, e as arestas podem ser conexões estruturais ou funcionais. Esses grafos permitem comparar padrões de conectividade presentes em condições neurológicas.[168][169][170]

Transportes e gestão de projetos

[editar | editar código]
Rede viária abstrata em que cruzamentos são vértices e trechos recebem pesos numéricos
Rede PERT com atividades, durações e um caminho crítico em vermelho
Vértices, arestas, direções e pesos podem organizar rotas de transporte ou precedências de um projeto. O sistema modelado dá sentido a cada elemento.

Em uma rede viária, os pesos das arestas podem expressar o comprimento de cada estrada, o tempo de viagem, o consumo de energia ou o custo monetário. Esses grafos são usados na programação de aparelhos de GPS, no planejamento de rotas e em mecanismos de busca de viagens que comparam duração e preço de voos.[171]

Na gestão de projetos, o PERT e o método do caminho crítico organizam atividades e relações de precedência em redes orientadas, em geral acíclicas.[nota 67] Dadas as estimativas de duração e as relações de precedência adotadas, o caminho crítico determina a duração mínima do projeto e aponta as atividades cuja demora adia a conclusão, enquanto os demais caminhos podem ter alguma folga.[172]

Ver também

[editar | editar código]

Notas

  1. ↑ A combinatória estuda maneiras de contar, escolher e organizar objetos. A teoria dos grafos usa muitas dessas ideias e desenvolveu perguntas e métodos próprios.
  2. ↑ Aqui, "ponto" e "linha" são apenas maneiras de desenhar a estrutura. O tamanho dos pontos, o comprimento das linhas e a distância entre eles não fazem parte do grafo, a menos que o modelo diga isso.
  3. ↑ Uma rua de mão dupla vira uma aresta não orientada. Uma rua de mão única vira uma aresta orientada. Um mapa com os dois tipos produz um grafo misto.
  4. ↑ "Não ordenado" quer dizer que o par é o mesmo que . Isso combina com uma ligação sem direção. Ir de a dá a mesma aresta que ir de a .
  5. ↑ As barras em e indicam quantos elementos há em cada conjunto. Aqui, "ordem" conta vértices e "tamanho" conta arestas.
  6. ↑ Um laço sai de um vértice e volta ao mesmo vértice. Como suas duas extremidades chegam ao mesmo lugar, ele acrescenta duas unidades ao grau.
  7. ↑ Uma informação local diz o que acontece perto de um vértice, como quem são seus vizinhos. Uma propriedade global depende do grafo inteiro, como ser possível chegar de qualquer vértice a qualquer outro.
  8. ↑ O nome vem de uma reunião. Se cada aperto de mãos liga duas pessoas, a soma do número de apertos feitos por todas elas conta cada aperto duas vezes.
  9. ↑ A diferença está no que pode ser repetido. Um passeio pode repetir tudo, uma trilha não repete arestas e um caminho não repete vértices. O uso cotidiano da palavra "caminho" é menos rigoroso.
  10. ↑ "Maximal" significa que não é possível acrescentar outro vértice do mesmo grafo sem perder a propriedade de formar uma única parte conexa. Não quer dizer necessariamente "a maior parte de todas".
  11. ↑ Em uma rede de ruas de mão única, conectividade forte significa que se pode ir e voltar entre quaisquer dois pontos respeitando as setas. Na conectividade fraca, pergunta-se apenas se os pontos ficariam ligados caso o sentido das ruas fosse ignorado.
  12. ↑ Essa distância conta arestas, não centímetros no desenho. Se as arestas tiverem pesos, pode-se definir outra distância pela menor soma de pesos.
  13. ↑ Mudar os nomes dos vértices ou redesenhar o grafo não altera um invariante. Mesmo assim, dois grafos diferentes podem ter invariantes iguais.
  14. ↑ Qualquer uma dessas caracterizações basta. Se uma vale, todas as outras também valem.
  15. ↑ Ela pode ser vista como um "esqueleto" do grafo. Conserva todos os vértices e apenas as arestas necessárias para mantê-los conectados, sem formar ciclos.
  16. ↑ Uma hiperaresta pode reunir um grupo inteiro de uma só vez. Substituir o grupo por arestas aos pares perderia a informação de que todos participam da mesma relação.
  17. ↑ "Bijetiva" quer dizer que cada vértice de um grafo corresponde a exatamente um vértice do outro, sem sobrar nem repetir nenhum. Se as ligações também forem mantidas, os dois grafos têm a mesma estrutura.
  18. ↑ O nome "menor" não se refere apenas a ter menos vértices. Ele indica que o grafo foi simplificado pelas operações permitidas de apagar e contrair.
  19. ↑ O título latino pode ser traduzido como "Solução de um problema relativo à geometria da posição". A ideia central era estudar como as partes se conectavam, sem medir suas formas ou distâncias.
  20. ↑ Analysis situs é uma expressão latina para "análise da posição". Ela designava problemas em que importavam a disposição e a ligação entre as partes, não suas medidas exatas.
  21. ↑ Aqui, "face" é cada região da superfície do poliedro. Para muitos poliedros convexos, vértices menos arestas mais faces resulta em 2.
  22. ↑ Em linguagem simples, um algoritmo polinomial tende a crescer de modo controlável quando a entrada aumenta. Nos problemas NP-completos, uma solução proposta pode ser conferida rapidamente, mas não se conhece um método rápido que resolva todos os casos.
  23. ↑ Uma classe é "fechada" por menores quando qualquer simplificação permitida de um grafo da classe permanece na classe. Os menores proibidos formam uma lista de obstáculos.
  24. ↑ Convém separar o sistema real, o grafo escolhido para modelá-lo e o desenho usado para mostrar esse grafo. Confundir essas camadas pode levar a conclusões que o modelo não sustenta.
  25. ↑ Cada multiplicação da matriz combina um passo possível com o seguinte. Ao elevar a , o cálculo reúne todas as sequências possíveis de passos.
  26. ↑ O nome "laplaciana" vem de uma operação da matemática contínua. No grafo, a matriz cumpre um papel parecido ao comparar o valor em um vértice com os valores de seus vizinhos.
  27. ↑ Um grafo é esparso quando tem poucas arestas em comparação com a quantidade máxima que poderia ter. Redes viárias, por exemplo, costumam ligar cada cruzamento a apenas alguns outros.
  28. ↑ Abstrair não é copiar a realidade de forma incompleta por engano. É escolher, de propósito, quais detalhes importam para a pergunta que se quer responder.
  29. ↑ Uma relação aos pares liga duas entidades por vez, como "a pessoa A telefonou para a pessoa B". Uma conversa coletiva envolve mais pessoas ao mesmo tempo e pode pedir um hipergrafo ou outra extensão.
  30. ↑ Perguntar "existe uma rota?" pede uma resposta de sim ou não. Perguntar "qual é a melhor rota?" pede uma otimização. Essa diferença muda o tipo de algoritmo necessário.
  31. ↑ A transformação pode dar outra aparência a um problema conhecido. Converte-se o problema, resolve-se a versão equivalente e, no fim, traduz-se a resposta de volta.
  32. ↑ Se um objeto escolhido ao acaso tem alguma chance de possuir a propriedade desejada, então pelo menos um objeto com essa propriedade precisa existir. O argumento pode provar isso sem dizer qual objeto é.
  33. ↑ Saber que uma solução existe é diferente de saber encontrá-la com recursos razoáveis. Um método que testa todas as possibilidades pode estar correto e ainda levar tempo impraticável.
  34. ↑ O percurso euleriano quer usar cada aresta uma vez. O hamiltoniano quer visitar cada vértice uma vez. A troca de "arestas" por "vértices" parece pequena, mas muda profundamente a dificuldade do problema.
  35. ↑ "Máximo" quer dizer o maior entre todos os emparelhamentos. "Perfeito" quer dizer que ninguém fica sem par e só pode existir quando a estrutura permite cobrir todos os vértices.
  36. ↑ As "cores" são rótulos abstratos. Podem ser horários, frequências, equipes ou qualquer escolha que precise separar elementos incompatíveis. Não precisam ser cores visíveis.
  37. ↑ Conservar o fluxo significa que, nos vértices intermediários, a quantidade que entra também precisa sair. A fonte envia e o sorvedouro recebe. Os demais pontos apenas encaminham.
  38. ↑ "Hereditária" quer dizer que a propriedade passa do grafo para as partes escolhidas. A operação precisa estar clara, pois uma propriedade pode ser hereditária para subgrafos e não para menores ou subgrafos induzidos.
  39. ↑ Essa classificação da dificuldade ainda está em aberto. O problema pode ser resolvido muito bem na prática para muitos tipos e tamanhos de grafo. Um limite quase polinomial cresce muito mais devagar que um limite exponencial geral, mas ainda não prova que exista um algoritmo de tempo polinomial.
  40. ↑ Subdividir uma aresta é colocar novos vértices no meio dela, como criar paradas intermediárias em uma ligação. Ao contrário da contração, isso não funde as extremidades.
  41. ↑ Com uma largura pequena, o grafo pode ser organizado em partes locais, conectadas como uma árvore. Isso permite resolver o problema por etapas, guardando apenas a informação necessária em cada parte.
  42. ↑ Se três vértices são Ana, Beto e Caio, trocar seus nomes pode produzir outro grafo rotulado. Sem rótulos, desenhos que diferem apenas por essa troca contam como a mesma estrutura.
  43. ↑ "Ver" tem aqui um sentido geométrico: dois pontos são visíveis um ao outro se o segmento reto entre eles permanece na região permitida.
  44. ↑ "Unidimensional" significa que a estrutura é feita de pontos e segmentos, sem precisar preencher áreas. Mesmo quando o desenho ocupa uma folha, as arestas continuam sendo objetos de uma dimensão.
  45. ↑ Uma imersão sem cruzamentos pode usar a superfície de uma esfera, de um toro ou de outro objeto. Um grafo que não cabe no plano pode caber em uma superfície com alças.
  46. ↑ O grafo abstrato, sozinho, não determina o dual. A posição do grafo na superfície fixa as faces que serão usadas.
  47. ↑ O "espectro" é a lista de autovalores da matriz, com suas repetições. Ele reúne propriedades algébricas que permitem conhecer a regularidade, a conectividade e outras características do grafo.
  48. ↑ Um automorfismo é uma maneira de trocar os vértices de lugar sem mudar quais pares são adjacentes. O conjunto de todas essas trocas registra as simetrias internas do grafo.
  49. ↑ Na teoria geométrica, medidas como distância, ângulo e posição podem fazer parte do problema. Na teoria topológica, o foco costuma estar no que permanece igual quando o desenho é deformado sem cortar ou colar.
  50. ↑ A pergunta típica é "quanto podemos acrescentar antes de surgir uma estrutura proibida?" O valor extremo dá exatamente esse limite.
  51. ↑ O símbolo é uma tolerância pequena. Em linguagem intuitiva, a ligação entre duas partes passa a parecer quase uniforme quando observada em subconjuntos suficientemente grandes.
  52. ↑ Um objeto-limite dá o padrão do qual uma sequência de grafos muito grandes se aproxima. Ele não precisa ser um grafo finito e pode funcionar como uma versão contínua do comportamento da sequência.
  53. ↑ "Independentemente" quer dizer que sortear uma aresta não altera a chance das demais. O modelo dá uma família de grafos possíveis, não um único desenho.
  54. ↑ Um processo estocástico inclui escolhas regidas por probabilidades. Repetir o processo pode produzir árvores diferentes, embora todas sigam as mesmas regras.
  55. ↑ Na prática, "grafo" costuma destacar a estrutura matemática, enquanto "rede" sugere que vértices e arestas vêm de um sistema observado. A fronteira entre os dois usos não é rígida.
  56. ↑ Em uma rede social, uma camada pode registrar amizade e outra, relações de trabalho. Separá-las evita tratar vínculos de naturezas diferentes como se fossem iguais.
  57. ↑ O vetor de características é uma lista de números que resume o vértice. Ao combinar informações dos vizinhos, o modelo passa a considerar também o que há em torno dele.
  58. ↑ Heap pode ser traduzido como "monte". Em computação, é uma estrutura em que o elemento de maior ou menor prioridade fica sempre fácil de localizar.
  59. ↑ A sigla inglesa DDoS significa "negação de serviço distribuída". Muitas máquinas enviam tráfego ao mesmo alvo para sobrecarregá-lo e dificultar o acesso legítimo.
  60. ↑ Nesse uso, a entropia mede como o tráfego se distribui. Uma mudança brusca no padrão pode servir como sinal de anomalia, embora não prove sozinha que houve um ataque.
  61. ↑ O princípio da composicionalidade diz, de modo geral, que o sentido de uma expressão depende do sentido de suas partes e de como elas são combinadas.
  62. ↑ Unificar é juntar informações sem apagar nenhuma delas. Se uma estrutura diz "número: singular" e outra exige "número: plural", há conflito e a unificação falha.
  63. ↑ As linhas de um diagrama de Feynman não devem ser lidas simplesmente como trajetórias visíveis de partículas. O diagrama organiza termos de um cálculo físico.
  64. ↑ A ideia lembra um líquido tentando atravessar um material poroso. Se houver conexões suficientes, forma-se uma passagem ampla. Abaixo de certo ponto, restam apenas grupos isolados.
  65. ↑ Centralidade não é uma única medida. Uma pessoa pode ser central por ter muitos contatos, por estar perto das demais ou por ser a ponte entre grupos.
  66. ↑ O transcriptoma é o conjunto de moléculas de RNA produzidas em uma célula em determinado momento. Compará-las ajuda a saber o que a célula está fazendo e a que tipo ela pertence.
  67. ↑ PERT é a sigla inglesa de "técnica de avaliação e revisão de programas". A rede mostra o que precisa acontecer antes de cada etapa e ajuda a estimar a duração do projeto.

Referências

  1. ↑ Bondy & Murty 2008, pp. 1–3; Feofiloff, Kohayakawa & Wakabayashi 2004, pp. 1–3.
  2. ↑ Diestel 2025; Gibbons 1985.
  3. ↑ Biggs, Lloyd & Wilson 1986, pp. 1–3; Newman 2010; Bronstein et al. 2021.
  4. ↑ Mohar & Thomassen 2001.
  5. ↑ Sylvester 1878.
  6. ↑ Ore 1962, p. 1.
  7. ↑ Ore 1962, p. 2.
  8. ↑ Ore 1962, p. 3.
  9. ↑ Bollobás 2013, p. 7.
  10. ↑ Bondy & Murty 2008, pp. 1–3; Feofiloff, Kohayakawa & Wakabayashi 2004, pp. 1–3.
  11. ↑ Bondy & Murty 2008, pp. 1–4; Feofiloff, Kohayakawa & Wakabayashi 2004, pp. 2–4.
  12. ↑ Feofiloff, Kohayakawa & Wakabayashi 2004, p. 3.
  13. ↑ Bondy & Murty 2008, pp. 3–5; Feofiloff, Kohayakawa & Wakabayashi 2004, pp. 7–10.
  14. ↑ Bondy & Murty 2008, pp. 5–7.
  15. ↑ Bondy & Murty 2008, cap. 1.
  16. ↑ Bondy & Murty 2008, cap. 1; Biggs 1993, cap. 2; Bodlaender 1996.
  17. ↑ Diestel 2025, seção 1.5; Lehman, Leighton & Meyer 2015, seção 11.10.
  18. ↑ Lehman, Leighton & Meyer 2015, seção 11.10.
  19. ↑ Bondy & Murty 2008, pp. 5–12; Feofiloff, Kohayakawa & Wakabayashi 2004, pp. 11–18.
  20. ↑ Diestel 2025, cap. 8.
  21. ↑ Berge 1958.
  22. ↑ Diestel 2025, seção 1.1; Lehman, Leighton & Meyer 2015, seção 11.4.
  23. ↑ Diestel 2025, seção 1.7.
  24. ↑ Biggs, Lloyd & Wilson 1986, pp. 2–3.
  25. ↑ Biggs, Lloyd & Wilson 1986, pp. 21–22.
  26. ↑ Cauchy 1813; L'Huillier 1812–1813.
  27. ↑ Richeson 2008, p. 63.
  28. ↑ Cayley 1857.
  29. ↑ Cayley 1875.
  30. ↑ Biggs, Lloyd & Wilson 1986.
  31. ↑ Tutte 2001, p. 30.
  32. ↑ Gardner 1992, p. 203.
  33. ↑ Society for Industrial and Applied Mathematics 2002, p. 26.
  34. 1 2 Thomas, Robin. «The Four Color Theorem». Georgia Institute of Technology. Consultado em 4 de outubro de 2026
  35. ↑ Biggs, Lloyd & Wilson 1986.
  36. ↑ Bollobás 2001, p. xi.
  37. ↑ Dijkstra 1959; Karp 1972.
  38. ↑ Heesch, Heinrich. Untersuchungen zum Vierfarbenproblem. Mannheim: Bibliographisches Institut, 1969.
  39. ↑ Appel, K.; Haken, W. (1977). «Every planar map is four colorable. Part I. Discharging» (PDF). Illinois Journal of Mathematics. 21 (3): 429–490. doi:10.1215/ijm/1256049011
  40. ↑ Appel, K.; Haken, W. (1977). «Every planar map is four colorable. Part II. Reducibility». Illinois Journal of Mathematics. 21 (3): 491–567. doi:10.1215/ijm/1256049012
  41. ↑ «Computer Printout, Semi-critical Subsets of Colorings of the 6-Ring». National Museum of American History, Smithsonian Institution. Consultado em 4 de outubro de 2026
  42. ↑ Robertson, N.; Sanders, D.; Seymour, P.; Thomas, R. (1997). «The four color theorem». Journal of Combinatorial Theory, Series B. 70: 2–44. doi:10.1006/jctb.1997.1750
  43. ↑ Robertson & Seymour 2004.
  44. ↑ Watts & Strogatz 1998; Barabási & Albert 1999.
  45. ↑ Di Battista et al. 1994; Biggs 1993, cap. 2; Gibbons 1985.
  46. ↑ Di Battista et al. 1994.
  47. ↑ Di Battista et al. 1994.
  48. ↑ Tutte 1963.
  49. ↑ Di Battista et al. 1994, p. viii.
  50. ↑ Di Battista et al. 1994, p. 14.
  51. ↑ Di Battista et al. 1994, p. 16.
  52. ↑ Pach & Sharir 2009.
  53. ↑ Malitz & Papakostas 1994.
  54. ↑ Biggs 1993, cap. 2.
  55. ↑ Biggs 1993, cap. 2.
  56. ↑ Gibbons 1985; Kepner & Gilbert 2011.
  57. ↑ Kepner, Jeremy; Gilbert, John (2011). Graph Algorithms in the Language of Linear Algebra. [S.l.]: SIAM. ISBN 978-0-89871-990-1
  58. ↑ Lehman, Leighton & Meyer 2015, caps. 9–11.
  59. ↑ Newman 2010, caps. 6–7.
  60. 1 2 Kivelä M, Arenas A, Barthelemy M; et al. (2014). «Multilayer networks». Journal of Complex Networks. 2 (3): 203–271. doi:10.1093/comnet/cnu016
  61. 1 2 Battiston F, Amico E, Barrat A; et al. (2021). «The physics of higher-order interactions in complex systems». Nature Physics. 17: 1093–1098. doi:10.1038/s41567-021-01371-4
  62. ↑ Gibbons 1985; Lehman, Leighton & Meyer 2015, caps. 9–12.
  63. ↑ Diestel 2025, caps. 1, 4–5; Gross & Tucker 2012, cap. 2.
  64. ↑ Lehman, Leighton & Meyer 2015, seções 11.2, 11.7 e 11.10.
  65. ↑ Biggs 1993; Diestel 2025, cap. 11; Gibbons 1985; Karp 1972.
  66. ↑ Gibbons 1985; Karp 1972.
  67. ↑ Diestel 2025, cap. 3.
  68. ↑ Gibbons 1985; Karp 1972.
  69. ↑ Diestel 2025, cap. 2; Feofiloff, Kohayakawa & Wakabayashi 2004, cap. 5.
  70. ↑ Karp 1972.
  71. ↑ Diestel 2025, cap. 2.
  72. ↑ Kang, Dong Yeap; Kelly, Tom; Kühn, Daniela; Methuku, Abhishek; Osthus, Deryk (2023). «A proof of the Erdős–Faber–Lovász conjecture». Annals of Mathematics. 198 (2): 537–618. doi:10.4007/annals.2023.198.2.2
  73. ↑ Basavaraju, Manu; Chandran, L. Sunil; Francis, Mathew C.; Naskar, Ankur (2024). «Weak Total Coloring Conjecture and Hadwiger's Conjecture on Total Graphs». Electronic Journal of Combinatorics. 31 (1): P1.4. doi:10.37236/11032
  74. ↑ Jafari, Amir (2026). «The List Edge-Coloring Conjecture for Two New Infinite Families of Complete Graphs». arXiv. arXiv:2608.22895Acessível livremente
  75. ↑ Diestel 2025, cap. 7.
  76. ↑ Ford & Fulkerson 1956.
  77. ↑ Karp 1972.
  78. ↑ Babai, László (2016). «Graph isomorphism in quasipolynomial time [extended abstract]». Proceedings of the 48th Annual ACM Symposium on Theory of Computing: 684–697. arXiv:1512.03547Acessível livremente. doi:10.1145/2897518.2897542
  79. ↑ Karp 1972.
  80. ↑ Lovász 2006, p. 77.
  81. ↑ Diestel 2025, cap. 4.
  82. ↑ He, Dawei; Wang, Yan; Yu, Xingxing (2020). «The Kelmans–Seymour conjecture IV: A proof». Journal of Combinatorial Theory, Series B. 144: 309–358. arXiv:1612.07189Acessível livremente. doi:10.1016/j.jctb.2019.12.002
  83. ↑ McKay, Brendan D. (2022). «Reconstruction of small graphs and digraphs» (PDF). Australasian Journal of Combinatorics. 83 (3): 448–457. arXiv:2102.01942Acessível livremente. Consultado em 4 de outubro de 2026
  84. ↑ Balogh, József; Palmer, Cory (2013). «On the Tree Packing Conjecture». SIAM Journal on Discrete Mathematics. 27 (4): 1995–2006. doi:10.1137/120902719
  85. ↑ Bodlaender 1996.
  86. ↑ Harary & Palmer 1973.
  87. ↑ Everett & Corneil 1995.
  88. ↑ Diestel 2025, cap. 3 e 12.
  89. ↑ Robertson & Seymour 2004.
  90. ↑ Bodlaender 1996.
  91. ↑ Diestel 2025, cap. 12.
  92. ↑ Gross & Tucker 2012, p. 1.
  93. ↑ Gross & Tucker 2012, sumário; Beineke & Wilson 2009, sumário.
  94. ↑ Gross & Tucker 2012, p. 1.
  95. ↑ Lovász 2006, p. 76.
  96. ↑ Persinger 1966.
  97. ↑ Gross & Tucker 2012, cap. 2.
  98. ↑ Lovász 2006, p. 76.
  99. ↑ Lovász 2006, p. 77.
  100. ↑ Lovász 2006, Teorema 4, p. 78; Robertson & Seymour 2004.
  101. ↑ Foulds 1992, p. 71.
  102. ↑ Gross & Tucker 2012, p. 215.
  103. ↑ Gross & Tucker 2012, p. 57.
  104. ↑ Gross & Tucker 2012, p. 72.
  105. ↑ Cvetković & Rowlinson 2004, p. 88; Kaveh 2013, pp. 27–28.
  106. ↑ Biggs 1993, capítulo 15, "Automorphisms of graphs".
  107. ↑ Godsil & Royle 2001, pp. xii–xix.
  108. ↑ Gross & Tucker 2012, p. 70.
  109. ↑ Godsil & Royle 2001, pp. xii–xix.
  110. ↑ Biggs 1993, p. 64.
  111. ↑ Biggs 1993, p. 98.
  112. ↑ Pach 2018, p. 257.
  113. ↑ Bounceur, Bezoui & Euler 2019, pp. 13–14.
  114. ↑ Everett & Corneil 1995; Ziegler 2007, pp. 628–642.
  115. ↑ McKee & McMorris 1999, pp. 1–2.
  116. ↑ Grünbaum 2006, p. 181.
  117. ↑ Bounceur, Bezoui & Euler 2019, pp. 13–14.
  118. ↑ Everett & Corneil 1995.
  119. ↑ Ziegler 2007, pp. 628–642.
  120. ↑ McKee & McMorris 1999, pp. 1–2.
  121. ↑ Brightwell & Scheinerman 1993, p. 214; Thurston 2002, Corolário 13.6.2, p. 330.
  122. ↑ Chalopin & Gonçalves 2009.
  123. ↑ Grünbaum 2006, p. 181.
  124. ↑ Chartrand et al. 2024, p. 221.
  125. ↑ Bollobás 2013, p. 104.
  126. ↑ Bollobás 2013, p. 123.
  127. ↑ Zhao 2023, p. 135; Borgs et al. 2008; Hahn & Tardif 1997, pp. 108–109.
  128. ↑ Lovász 2012.
  129. ↑ Bollobás 2001, p. xi.
  130. ↑ Erdős & Rényi 1960; Bollobás 2001.
  131. ↑ Wilson 1996.
  132. ↑ Witten & Sander 1981.
  133. ↑ Sedgewick & Flajolet 2013, p. 286.
  134. ↑ Morin 2014.
  135. ↑ McDiarmid, Johnson & Stone 1997.
  136. ↑ Drmota 2009, cap. 7.
  137. ↑ Cayley 1889.
  138. ↑ Gibbons 1985.
  139. ↑ Gibbons 1985; Karp 1972.
  140. ↑ Bodlaender 1996.
  141. ↑ Hale, Scott A. (2014). «Multilinguals and Wikipedia editing». Proceedings of the 2014 ACM Conference on Web Science. [S.l.: s.n.] pp. 99–108. ISBN 978-1-4503-2622-3. arXiv:1312.0976Acessível livremente. doi:10.1145/2615569.2615684
  142. ↑ Mashaghi, Alireza; Ramezanpour, Abbas; Karimipour, Vahid (2004). «Investigation of a protein complex network». European Physical Journal B. 41 (1): 113–121. arXiv:cond-mat/0304207Acessível livremente. doi:10.1140/epjb/e2004-00301-0
  143. ↑ Shah, Preya; Ashourvan, Arian; Mikhail, Fadi; Pines, Adam; Kini, Lohith; Oechsel, Kelly; Das, Sandhitsu R.; Stein, Joel M.; Shinohara, Russell T.; Bassett, Danielle S.; Litt, Brian; Davis, Kathryn A. (1 de julho de 2019). «Characterizing the role of the structural connectome in seizure dynamics». Brain. 142 (7): 1955–1972. PMC 6598625Acessível livremente. PMID 31099821. doi:10.1093/brain/awz125
  144. ↑ Adali, Tulay; Ortega, Antonio (maio de 2018). «Applications of Graph Theory [Scanning the Issue]». Proceedings of the IEEE. 106 (5): 784–786. doi:10.1109/JPROC.2018.2820300
  145. ↑ National Research Council 2005; Newman 2010.
  146. ↑ Newman 2010.
  147. ↑ Gibbons 1985; Kepner & Gilbert 2011.
  148. ↑ Gibbons 1985.
  149. ↑ Bronstein et al. 2021.
  150. ↑ Breiman 2001; LaValle 1998; Seidel & Aragon 1996.
  151. 1 2 3 Amaral, Alexandre; Mendes, Leonardo; Zarpelão, Bruno; Proença Jr., Mario (janeiro de 2017). «Deep IP Flow Inspection to Detect Beyond Network Anomalies». Elsevier. Computer Communications. doi:10.1016/j.comcom.2016.12.007. Consultado em 21 de agosto de 2026
  152. ↑ Carpenter 1992.
  153. ↑ «Proceedings of TextGraphs-11: the Workshop on Graph-based Methods for Natural Language Processing». ACL Anthology, Association for Computational Linguistics. 2017. doi:10.18653/v1/W17-24. Consultado em 4 de outubro de 2026
  154. ↑ «WordNet: A Lexical Database for English». Universidade de Princeton. Consultado em 4 de outubro de 2026
  155. ↑ «VerbNet». Universidade do Colorado em Boulder. Consultado em 4 de outubro de 2026
  156. ↑ Carpenter 1992.
  157. ↑ Carpenter 1992.
  158. ↑ Bjorken, J. D.; Drell, S. D. (1965). Relativistic Quantum Fields. Nova Iorque: McGraw-Hill. p. viii
  159. ↑ Cayley 1875; Newman 2010.
  160. ↑ Kumar, Ankush; Kulkarni, G. U. (4 de janeiro de 2016). «Evaluating conducting network based transparent electrodes from geometrical considerations». Journal of Applied Physics. 119 (1): 015102. doi:10.1063/1.4939280
  161. ↑ Newman 2010.
  162. ↑ Grandjean, Martin. "Social network analysis and visualization: Moreno's Sociograms revisited". 2015. Rede redesenhada com base em Moreno, Who Shall Survive, 1934.
  163. ↑ Rosen, Kenneth H. (14 de junho de 2011). Discrete Mathematics and Its Applications 7 ed. Nova Iorque: McGraw-Hill. ISBN 978-0-07-338309-5
  164. ↑ Grandjean, Martin (2016). «A social network analysis of Twitter: Mapping the digital humanities community» (PDF). Cogent Arts & Humanities. 3 (1): 1171458. doi:10.1080/23311983.2016.1171458
  165. ↑ Bavelas 1948; Bavelas 1950.
  166. ↑ Urban, Dean; Keitt, Timothy (2001). «Landscape Connectivity: A Graph-Theoretic Perspective». Ecology. 82 (5): 1205–1218. doi:10.1890/0012-9658(2001)082[1205:LCAGTP]2.0.CO;2
  167. ↑ Kelly, S.; Black, Michael (9 de julho de 2020). «graphsim: An R package for simulating gene expression data from graph structures of biological pathways» (PDF). The Open Journal. Journal of Open Source Software. 5 (51): 2161. doi:10.21105/joss.02161
  168. ↑ Shah, Preya; Ashourvan, Arian; Mikhail, Fadi; Pines, Adam; Kini, Lohith; Oechsel, Kelly; Das, Sandhitsu R.; Stein, Joel M.; Shinohara, Russell T.; Bassett, Danielle S.; Litt, Brian; Davis, Kathryn A. (1 de julho de 2019). «Characterizing the role of the structural connectome in seizure dynamics». Brain. 142 (7): 1955–1972. PMC 6598625Acessível livremente. PMID 31099821. doi:10.1093/brain/awz125
  169. ↑ Vecchio F, Miraglia F, Piludu F; et al. (2017). «"Small World" architecture in brain connectivity and hippocampal volume in Alzheimer's disease: a study via graph theory from EEG data». Brain Imaging and Behavior. 11 (2): 473–485. PMID 26960946. doi:10.1007/s11682-016-9528-3
  170. ↑ Agosta F, Sala S, Valsasina P; et al. (2013). «Brain network connectivity assessed using graph theory in frontotemporal dementia». Neurology. 81 (2): 134–143. PMID 23719145. doi:10.1212/WNL.0b013e31829a33f8
  171. ↑ Dijkstra 1959; Foulds 1992.
  172. ↑ Malcolm et al. 1959.

Bibliografia

[editar | editar código]

Leitura adicional

[editar | editar código]

Ligações externas

[editar | editar código]
Outros projetos Wikimedia também contêm material sobre este tema:
Commons Categoria no Commons
Wikiversidade Cursos na Wikiversidade

Recursos em português

[editar | editar código]

Recursos de consulta e pesquisa em outras línguas

[editar | editar código]

Software e algoritmos em outras línguas

[editar | editar código]

Livros em outras línguas disponíveis na internet

[editar | editar código]