O gráfico de triangulação é um problema de algoritmos e teoria de grafos .
![]() |
Triangulação de um gráfico |
Estamos trabalhando em um gráfico não direcionado . Um gráfico é triangulado se qualquer ciclo de comprimento maior que 3 admitir uma corda. Também é considerado cordal .
A triangulação de um gráfico não triangulado consiste em torná-lo triangulado. A triangulação de um gráfico não é única e a busca pela triangulação ótima (no sentido do número mínimo de arestas adicionadas) é um problema NP-Completo .
O algoritmo acima é extremamente simplista. Consiste em percorrer todos os vértices, conectar os vizinhos do vértice aos pares e, em seguida, "removê-lo" do gráfico. Isso para todas as cúpulas. Complexidade sem contar o tempo da escolha do topo. Este algoritmo não encontra uma triangulação ótima (no sentido do número de arestas adicionadas). Ele apenas permite que você encontre uma triangulação do gráfico.
Podemos ver que a eficiência do algoritmo depende de como tirar os vértices. Podemos, portanto, trazer heurísticas diferentes para melhorar muito o resultado.
A pontuação é calculada de acordo com o número de vizinhos de um vértice e o número de seus vizinhos conectados dois a dois. Portanto, tentamos a cada vez pegar o topo onde o número de arestas a serem adicionadas é o menor.
Com deg igual ao grau do vértice e númeroVoisin Conecta o número de vizinhos ligados dois a dois do vértice em questão.
Embora a heurística com pontuação seja eficaz, geralmente é necessário desenvolver suas próprias heurísticas de acordo com o gráfico. Por exemplo, levando em consideração suas peculiaridades simétricas.
O algoritmo mais usado para verificar se um gráfico está triangulado é uma varredura de largura lexicográfica (chamada Lex-BFS ). Este algoritmo começa numerando cada um dos vértices na ordem definida no algoritmo que é linear .
![]() |
LexBfs em um gráfico |