← Voltar à visão geral

Aprofundamento técnico · Dominação Romana Tripla

A estrutura técnica nos detalhes.

Esta página documenta o que sustenta a visão geral: a definição formal do problema, o contraexemplo que invalida a formulação exata publicada anteriormente, a formulação proposta em seu lugar, os dois algoritmos passo a passo e as tabelas medidas em 362 grafos.

  • Programação Linear Inteira
  • Algoritmo Genético
  • MMAS + Hyper-Cube
  • RVNS
  • irace

Definição

O problema, formalmente.

Dado um grafo G e uma função h que atribui a cada vértice um rótulo em {0, 1, 2, 3, 4}, um vértice é ativo quando seu rótulo é maior que zero. A vizinhança ativa de v, escrita AN(v), é o conjunto dos vizinhos ativos de v.

Função de Dominação Romana Tripla

Σu ∈ N[v] h(u) ≥ 3 + |AN(v)|, ∀ v ∈ V(G)

O peso de h é a soma dos rótulos. O número de dominação romana tripla γ3R(G) é o menor peso possível de uma função válida, e o problema consiste em determiná-lo. A versão de decisão é NP-completa, inclusive restrita a grafos bipartidos e cordais.

Subtrair |AN(v)| dos dois lados dá a forma usada na visão geral: cada vizinho ativo contribui com h(u) − 1, isto é, envia tudo menos uma legião, enquanto o próprio vértice contribui com h(v) integral. As duas escritas são a mesma desigualdade.

Um resultado que enxuga o modelo: para todo grafo conexo não trivial existe uma função ótima que não usa o rótulo 1 (Abdollahzadeh Ahangar et al., 2021). Se um vértice recebe 1, é sempre possível zerá-lo e promover um vizinho sem aumentar o peso. Por isso tanto a formulação exata quanto as meta-heurísticas trabalham apenas com {0, 2, 3, 4} — uma variável a menos por vértice.

Os limitantes usados como referência no trabalho: γ3R(G) ≥ ⌈4n / (Δ+1)⌉ para grafos conexos com Δ ≥ 3 e n ≥ 2 (Valenzuela-Tripodoro et al., 2024), e γ3R(G) ≤ 3n/2 para grafos conexos com δ ≥ 2 (Hajjari et al., 2023).

Modelo exato

Uma formulação publicada que aceita solução inválida.

A única formulação de Programação Linear Inteira existente para o problema (Vengaldas et al., 2023) usa seis variáveis binárias por vértice e quatro famílias de restrições. A restrição responsável pelos vértices de rótulo zero é linearmente frouxa: existem rotulações que a satisfazem sem serem funções de dominação romana tripla.

A restrição problemática

pv + qv + rv + sv + Σu∈N(v) su + ⅓ Σu∈N(v) qu + ½ (tv + xv) ≥ 1

Aqui q, r e s indicam rótulo 2, 3 e 4; t e x indicam a existência de algum vizinho com rótulo 2 e com rótulo 3. A soma de frações permite que dois vizinhos de rótulo 2 “paguem” a restrição junto com o indicador t, embora dois vizinhos de rótulo 2 não sejam suficientes pela definição.

Ciclo de dez vértices com rotulação inválida aceita pelo modelo anterior Dez vértices em círculo. Sete recebem rótulo 2 e três recebem rótulo 0. Cada vértice de rótulo 0 tem exatamente dois vizinhos de rótulo 2, o que não satisfaz a definição do problema. 2 2 0 2 2 0 2 2 0 2
Contraexemplo no ciclo C10. Cada vértice de rótulo 0 tem dois vizinhos de rótulo 2, o que rende ⅔ + ½ = 7/6 ≥ 1 na restrição acima. Pela definição, porém, ele recebe apenas 1 + 1 = 2 legiões de defesa, abaixo das 3 exigidas.

Os autores refinam esse modelo em mais duas versões e mostram que são equivalentes entre si. Como a restrição defeituosa é justamente a que modela os vértices de rótulo zero e permanece nas três versões, as três herdam a falha.

A formulação proposta

min Σv∈V (2qv + 3rv + 4sv) (2qv + 3rv + 4sv) + Σu∈N(v) (qu + 2ru + 3su) ≥ 3 qv + rv + sv ≤ 1, qv, rv, sv ∈ {0,1}

A restrição é a própria definição escrita em variáveis binárias, depois de cancelar o termo |AN(v)|: um vizinho de rótulo 2 contribui com 1, um de rótulo 3 contribui com 2 e um de rótulo 4 contribui com 3 — exatamente “envia tudo menos uma legião”. Descartar o rótulo 1 pelo teorema acima reduz o modelo de 6|V| variáveis e 4|V| restrições para 3|V| variáveis e 2|V| restrições.

Algoritmos

Duas meta-heurísticas, o mesmo formato de solução.

Nos dois algoritmos, uma solução é um vetor de n posições com valores em {0, 2, 3, 4}, e o custo a minimizar é a soma das posições. O que muda é como o espaço de busca é percorrido.

FLGA

Algoritmo genético.

  • População inicial por heurística: quatro variantes foram comparadas. H1 sorteia um vértice, rotula com 2 e zera a vizinhança; H2 faz o mesmo com rótulo 4 e depois tenta reduzir rótulos; H3 percorre os vértices em ordem decrescente de grau; H4 mistura as três em partes iguais. H4 venceu e define o FLGA.
  • Reparo em vez de descarte: cruzamento e mutação produzem soluções inviáveis com frequência. Em vez de rejeitá-las, o procedimento feasibilityCheck percorre os vértices violados e eleva o rótulo ao mínimo que restaura a viabilidade. A população permanece inteiramente viável ao fim de cada geração.
  • Redução gulosa: decreaseLabels tenta rebaixar cada rótulo (4 → 3 → 2 → 0) e desfaz a mudança que quebra a viabilidade do vértice ou de sua vizinhança ativa. É o que impede que o reparo acumule folga desnecessária.
  • Operadores: seleção por torneio, cruzamento de um ou dois pontos sorteado a cada par, mutação que troca uma posição por um rótulo aleatório e elitismo que preserva ⌈população × taxa⌉ indivíduos.
  • Parada: número máximo de gerações ou número máximo de gerações consecutivas sem melhoria — o que ocorrer primeiro.
Comparação entre as quatro heurísticas de população inicial
Grafo|V|H1H2H3H4PLI
g25-.5251412141110*
g50-.2503530312924*
g100-.21005048474632
g175-.21755654555032
g200-.52002423212116*
Recorte de 5 dos 24 grafos aleatórios usados nessa comparação; valores de fitness (menor é melhor). O nome gN-.p indica N vértices e probabilidade de conexão 0,p. O asterisco marca os casos em que o solver comprovou o ótimo dentro do limite de tempo.

ACO-FL

Colônia de formigas com busca local.

A implementação segue o Max-Min Ant System dentro do Hyper-Cube Framework: cada vértice carrega um feromônio τv ∈ [0,1], iniciado em 0,5 e limitado a [0,001; 0,999].

  • Construção: cada formiga escolhe vértices para receber rótulo 4 e zera a vizinhança, até esgotar o grafo auxiliar. A escolha usa deg(u) · τu: com probabilidade fixa toma o máximo, senão sorteia por roleta proporcional.
  • Estender e reduzir: extendSolution promove uma fração dos vértices a rótulo 4, deliberadamente encarecendo a solução para escapar de mínimos locais; reduceSolution percorre os vértices em ordem decrescente de grau rebaixando rótulos enquanto a viabilidade se mantém.
  • Busca local RVNS: destrói uma parcela da solução, reconstrói, estende e reduz. A intensidade da destruição cresce com o nível de vizinhança k, que sobe a cada iteração sem melhoria e volta a 1 assim que uma solução melhor aparece.
  • Feromônios guiados pela convergência: o fator φ decide o peso da melhor solução da iteração contra a melhor global — só a da iteração enquanto φ < 0,4, só a global quando φ ≥ 0,8. Se φ passa de 0,99, os feromônios são reinicializados para evitar estagnação.
Contribuição da busca local RVNS
Grafo|V|ACO com RVNSACO sem RVNSPLI
g50-.250283024*
g75-.275343728*
g100-.2100353832
g200-.2200445336
g250-.5250202416*
Recorte de 5 dos 30 grafos aleatórios. A versão com busca local é a que passou a se chamar ACO-FL. O ganho aparece principalmente nos grafos esparsos e grandes, onde a construção sozinha estaciona.

Protocolo

Como os experimentos foram montados.

  • Instâncias — 362 grafos: 50 matrizes esparsas da base BAI, 186 da coleção Harwell-Boeing, 56 grafos da base Miscellaneous Networks, 10 grafos de cada família clássica (ciclos, caminhos, estrelas e árvores) e 30 grafos aleatórios Erdős-Rényi de 25 a 250 vértices com probabilidade de conexão 0,2, 0,5 e 0,8.
  • Referência exata: o modelo PLI foi implementado em Python com Pyomo e NetworkX. A versão gratuita do CPLEX é limitada a mil variáveis e mil restrições, o que cobre grafos de até 333 vértices; acima disso foi usado o CBC. Cada instância teve no máximo 900 segundos, e o solver devolve a melhor solução encontrada — que nem sempre é comprovadamente ótima.
  • Ajuste de parâmetros: as configurações dos dois algoritmos foram definidas pelo irace sobre um subconjunto representativo de 115 grafos, 5 de cada base, cobrindo instâncias pequenas, médias e grandes. Nenhum parâmetro foi ajustado à mão sobre o conjunto completo.
  • Ambiente: Intel Core i5-8265U a 1,60 GHz, 8 GB de RAM, Ubuntu 22.04.5 LTS. Meta-heurísticas em C++ compiladas com G++ 11.4.0 e as flags -std=c++17 -Wall -Wextra -Ofast -finline-functions -march=native.
Parâmetros do ACO retornados pelo irace
ParâmetroIntervalo de buscaCom RVNSSem RVNS
number_of_ants(1, 5)12
iterations(1, 5)55
evaporation_rate(0.1, 0.5)0.28710.1415
min_destruction_rate(0.1, 0.3)0.243
max_destruction_rate{0.5, 0.7, 0.9}0.7
max_rvns_functions{3, 5, 10}5
max_rvns_iterations{50, 100}50
max_rvns_no_improvement_iterations{10, 20, 30, 50}20
selection_vertex_rate_construct_solution{0.1 … 0.9}0.10.1
selection_vertex_rate_extend_solution{0.1 … 0.9}0.90.9
add_vertices_rate_extend_solution{0.05, 0.1, 0.5}0.050.05
Parâmetros do FLGA retornados pelo irace
ParâmetroIntervalo de buscaValor ajustado
population_size(1, 5)2
generations(10, 1000)532
elitism_rate(0.1, 0.6)0.3288
mutation_rate(0.1, 0.6)0.4886
crossover_rate(0.1, 1.0)0.4862
tournament_population_size(2, 9)2
max_no_improvement_iterations(1, 100)86
O tamanho da população é a ordem do grafo dividida pelo valor da última coluna.

Resultados

ACO-FL contra FLGA, medidos pelo ótimo.

O gap relativo compara a melhor solução encontrada pelas meta-heurísticas com a solução do modelo exato. O ACO-FL vence na maioria das instâncias, mas a vantagem não é uniforme: em grafos pequenos e densos, e em alguns grafos com muitos ótimos locais, o FLGA chega mais perto.

ACO-FL, FLGA e PLI nos grafos aleatórios
Grafo|V||E|ACO-FLFLGAPLIGap
g25-.22561192419*0,00%
g25-.825235777*0,00%
g50-.550637121212*0,00%
g75-.275549343928*21,43%
g100-.51002490191714*21,43%
g150-.2150229939473221,88%
g200-.82001594712128*50,00%
g225-.8225200151288*0,00%
g250-.2250624952543933,33%
Recorte de 9 dos 30 grafos aleatórios. O gap é calculado sobre a melhor das duas meta-heurísticas. Em g100-.5 e g225-.8 é o FLGA que fica na frente, inclusive alcançando o ótimo na segunda.
Famílias clássicas, com γ3R conhecido pelo PLI
Grafo|V|γ3RACO-FLFLGA
Ciclo C100100135135146
Caminho P100100135135147
Estrela S100100444
Árvore T100100132143141
Ciclo C250250335339359
Árvore T250250354366380
Em ciclos e caminhos o ACO-FL reproduz o ótimo até cem vértices. A estrela é trivial para ambos: um único centro com rótulo 4 resolve o grafo inteiro. Em árvores aleatórias o FLGA às vezes fica à frente.

Resultado e impacto comunicados

As três métricas que sustentam cada afirmação.

Nenhuma comparação do trabalho se apoia em impressão: os três critérios abaixo foram declarados antes dos experimentos e aplicados igualmente às duas meta-heurísticas e ao modelo exato.

Critério 1

Tempo de execução

Segundos por instância, medidos na mesma máquina e com as mesmas flags de compilação. Responde por eficiência computacional — e só por ela.

Critério 2

Fitness, o peso da solução

A soma dos rótulos da melhor função encontrada. Como é exatamente a grandeza que o problema pede para minimizar, compara-se diretamente com o valor do modelo exato.

Critério 3

Gap relativo

Distância percentual entre a melhor solução das meta-heurísticas e o valor obtido pelo PLI. É a métrica que permite dizer “ficou a tantos por cento do ótimo”.

Como é calculado

gap = (melhor − PLI) / PLI

A melhor das duas meta-heurísticas entra no numerador, e não cada uma isoladamente: o gap mede a distância do conjunto de métodos propostos até a referência exata.

A partir dessas três métricas, o que o trabalho afirma publicamente:

  • Primeira formulação exata correta: o modelo PLI publicado anteriormente aceita soluções inválidas, e o texto exibe o contraexemplo que comprova a falha.
  • Primeiras meta-heurísticas para o problema: não havia, até então, abordagem baseada em algoritmos genéticos ou colônia de formigas para a Dominação Romana Tripla.
  • Base de instâncias reutilizável: 30 grafos aleatórios gerados com γ3R exato calculado, além dos valores exatos da maior parte das demais instâncias — material de comparação para pesquisas seguintes.
  • Componentes justificados por medição: a busca local RVNS e a heurística de população inicial H4 foram escolhidas por comparação sob o mesmo protocolo, não por preferência.
  • Resultado honesto sobre a margem: em 362 grafos avaliados, apenas 6 ficaram a mais de 50% do valor de referência; todos os demais ficaram abaixo desse limiar.

Limites do que foi medido

O que os números não dizem.

  • Nem todo valor de referência é ótimo comprovado. O solver operou com limite de 900 segundos por instância. Sem o asterisco, o valor da coluna PLI é apenas a melhor solução encontrada nesse tempo, e o gap correspondente é uma estimativa por cima.
  • Gaps maiores em grafos densos. Quando o ótimo é um número pequeno, como 8, cada legião a mais custa muitos pontos percentuais: os 50% de g200-.8 são a diferença entre 12 e 8. O gap relativo exagera a distância nesses casos.
  • Uma execução por instância. As meta-heurísticas são estocásticas e os resultados relatados não vêm de múltiplas execuções com intervalo de confiança, o que impede afirmar diferenças pequenas entre os dois algoritmos.
  • Trabalho em aberto. Ampliar a busca de hiperparâmetros, testar outras estratégias de seleção, cruzamento, mutação e elitismo no GA, avaliar outros mecanismos de escolha no ACO e reduzir o tempo de execução por otimizações de implementação.

Contexto do projeto

Voltar à visão geral do problema.