Borda transversal
Na teoria do hipergrafo , um transversal é uma parte dos vértices que encontra todas as arestas de um hipergrafo . O conjunto de transversais é a [[Grade (matemática) | grade ]] . Isso é análogo à cobertura do vértice ( cobertura do vértice em inglês) nos gráficos.
Definições
Recorde-se que um hipergrafo é um par onde está um conjunto de vértices e uma família de subconjuntos chamados arestas, ou hiper arestas.
H{\ displaystyle {\ mathcal {H}}}
(V,E){\ displaystyle (V, \, E)}
V{\ displaystyle V}
E{\ displaystyle E}
V{\ displaystyle V}![V](https://wikimedia.org/api/rest_v1/media/math/render/svg/af0f6064540e84211d0ffe4dac72098adfa52845)
Uma transversal a é um número tal que, para cada aresta que pertence a , .
H{\ displaystyle {\ mathcal {H}}}
T⊂V{\ displaystyle T \ subset V}
e{\ displaystyle e}
E{\ displaystyle E}
T∩e≠∅{\ displaystyle T \ cap e \ neq \ emptyset}![{\ displaystyle T \ cap e \ neq \ emptyset}](https://wikimedia.org/api/rest_v1/media/math/render/svg/adb9a0c023dd084b99858d3b2b6ecffe6c08fcc7)
O número de transversalidade de um hipergrafo é do tamanho de um menor transversal de . É freqüentemente notadoH{\ displaystyle {\ mathcal {H}}}
H{\ displaystyle {\ mathcal {H}}}
τ(H){\ displaystyle \ tau ({\ mathcal {H}})}
Exemplo
Por exemplo, se o hipergrafo é definido por e , então admite vários transversais de tamanho 2 (por exemplo ou ) e nenhum de tamanho 1 (porque nenhum vértice pertence a todas as arestas). Seu número de transversalidade vale, portanto, 2.
H{\ displaystyle {\ mathcal {H}}}
V={1,2,3,4,5,6}{\ displaystyle V \, = \, \ {1,2,3,4,5,6 \}}
E={{1,2,3},{1,4,5},{2,3,6},{4,5,6}}{\ displaystyle E \, = \, \ {\ {1,2,3 \}, \ {1,4,5 \}, \ {2,3,6 \}, \ {4,5,6 \} \}}
H{\ displaystyle {\ mathcal {H}}}
{1,6}{\ displaystyle \ {1,6 \}}
{2,4}{\ displaystyle \ {2,4 \}}![{\ displaystyle \ {2,4 \}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/303ee7b3881b20e9b99f732866ee8b061e43aeff)
Vértices redundantes de uma transversal
Um vértice de uma transversal é considerado não redundante se houver uma aresta do hipergrafo inicial cuja intersecção com esta transversal seja reduzida ao vértice considerado. Em outras palavras, um vértice de uma transversal associada a um hipergrafo não é redundante se satisfizer:eu{\ displaystyle i}
X{\ displaystyle X}
H(V,E){\ displaystyle {\ mathcal {H}} (V, E)}
∃e∈E,e∩X={eu}{\ displaystyle \ existe e \ in E, e \ cap X = \ {i \}}
Intuitivamente, a redundância de um vértice equivale à transversalidade do conjunto de vértices . Na verdade, se é redundante, então para qualquer hiper-borda : se então , e se então existe um elemento tal que o carro é redundante. Temos então . Por outro lado, se é uma transversal, então é necessariamente redundante porque se existisse tal que , então teríamos e não seria uma transversal.
eu{\ displaystyle i}
X∖{eu}{\ displaystyle X \ setminus \ {i \}}
eu{\ displaystyle i}
e{\ displaystyle e}
eu∉e∩X{\ displaystyle i \ notin e \ cap X}
e∩(X∖{eu})=e∩X≠∅{\ displaystyle e \ cap (X \ setminus \ {i \}) = e \ cap X \ neq \ emptyset}
eu∈e∩X{\ displaystyle i \ in e \ cap X}
j≠eu{\ displaystyle j \ neq i}
j∉e∩X{\ displaystyle j \ notin e \ cap X}
eu{\ displaystyle i}
j∈e∩(X∖{eu})≠∅{\ displaystyle j \ in e \ cap (X \ setminus \ {i \}) \ neq \ emptyset}
X∖{eu}{\ displaystyle X \ setminus \ {i \}}
eu{\ displaystyle i}
e{\ displaystyle e}
e∩X={eu}{\ displaystyle e \ cap X = \ {i \}}
e∩(X∖{eu})=∅{\ displaystyle e \ cap (X \ setminus \ {i \}) = \ emptyset}
X∖{eu}{\ displaystyle X \ setminus \ {i \}}![{\ displaystyle X \ setminus \ {i \}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a6b324a467e1a5062b61fe6ac12419c486a77a23)
Uma transversal é considerada mínima (ou não redundante) se nenhum de seus subconjuntos também for transversal, o que equivale a dizer que nenhum de seus vértices é redundante. De fato: vimos no parágrafo anterior que se um de seus vértices fosse redundante, teríamos um subconjunto transversal, e se tivéssemos um subconjunto transversal, poderíamos mostrar que qualquer vértice de é redundante (a demonstração é muito semelhante à do parágrafo anterior).
X{\ displaystyle X}
X′{\ displaystyle X '}
X∖X′{\ displaystyle X \ setminus X '}![{\ displaystyle X \ setminus X '}](https://wikimedia.org/api/rest_v1/media/math/render/svg/8286cb07518d1233957ed1d2e389eaa03722e381)
Hipergrafo transversal
O conjunto de transversais mínimos associados a um hipergrafo forma um hipergrafo denominado hipergrafo transversal .
O cálculo de um hipergrafo transversal é viável, até hoje, no tempo , sendo o cardinal do conjunto de vértices.
O(NÃOo(registroNÃO)){\ displaystyle O (N ^ {o (\ log N)})}
NÃO{\ displaystyle N}![NÃO](https://wikimedia.org/api/rest_v1/media/math/render/svg/f5e3890c981ae85503089652feb48b191b57aae3)
Algoritmo
Pseudo-código
O algoritmo MTMiner (para Minimal Transversals Miner ) permite calcular os transversais mínimos de um dado hipergrafo.
Entrée Un hypergraphe
H=(V,E){\displaystyle {\mathcal {H}}=(V,E)}![{\displaystyle {\mathcal {H}}=(V,E)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/04285e60db0adeb0c382ddf8e53bbb5ee2a61591)
Sortie L'ensemble des transversales minimales de
H{\displaystyle {\mathcal {H}}}![{\mathcal {H}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/19ef4c7b923a5125ac91aa491838a95ee15b804f)
Fonction MTMiner(
H{\displaystyle {\mathcal {H}}}![{\mathcal {H}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/19ef4c7b923a5125ac91aa491838a95ee15b804f)
)
MT←{{v}∣v∈V, {v} est une arête transversale}{\displaystyle MT\leftarrow \{\{v\}\mid v\in V,\ \{v\}{\text{ est une arête transversale}}\}}
N1←{{v}∣v∈V∖MT, v est dans une arête de E}{\displaystyle N_{1}\leftarrow \{\{v\}\mid v\in V\setminus MT,\ v{\text{ est dans une arête de }}E\}}
j←1{\displaystyle j\leftarrow 1}![{\displaystyle j\leftarrow 1}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a201d50e7afb971fd2b4bbcca67ec7e84238a446)
tant que
Nj≠∅{\displaystyle N_{j}\neq \emptyset }![{\displaystyle N_{j}\neq \emptyset }](https://wikimedia.org/api/rest_v1/media/math/render/svg/82e83c48784d7549f2254c3c9b60517e3b436758)
faire :
pour tous
P⊂V{\displaystyle P\subset V}![{\displaystyle P\subset V}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2ac56b4033cb76a97ff76d0ff6062f5e25bb6afc)
et
v1≠v2∈V{\displaystyle v_{1}\neq v_{2}\in V}![{\displaystyle v_{1}\neq v_{2}\in V}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b2e6c9b9a378f61c93ecd863e9a9a286aa9b9c5d)
tels que
P∪{v1},P∪{v2}∈Nj{\displaystyle P\cup \{v_{1}\},P\cup \{v_{2}\}\in N_{j}}![{\displaystyle P\cup \{v_{1}\},P\cup \{v_{2}\}\in N_{j}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/759fd67e247713fd3a028f1f2c527edfeb2ae742)
:
W←P∪{v1}∪{v2}{\displaystyle W\leftarrow P\cup \{v_{1}\}\cup \{v_{2}\}}![{\displaystyle W\leftarrow P\cup \{v_{1}\}\cup \{v_{2}\}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/976769cfb367bf478e85359bb75b225251a2d438)
si
W{\displaystyle W}![W](https://wikimedia.org/api/rest_v1/media/math/render/svg/54a9c4c547f4d6111f81946cad242b18298d70b7)
est non-redondant :
si
W{\displaystyle W}![W](https://wikimedia.org/api/rest_v1/media/math/render/svg/54a9c4c547f4d6111f81946cad242b18298d70b7)
est transversal :
Ajouter
W{\displaystyle W}![W](https://wikimedia.org/api/rest_v1/media/math/render/svg/54a9c4c547f4d6111f81946cad242b18298d70b7)
à
MT{\displaystyle MT}![MT](https://wikimedia.org/api/rest_v1/media/math/render/svg/98a909994972c27e3d072742881c62dcfb3aeeae)
sinon :
Ajouter
W{\displaystyle W}![W](https://wikimedia.org/api/rest_v1/media/math/render/svg/54a9c4c547f4d6111f81946cad242b18298d70b7)
à
Nj+1{\displaystyle N_{j+1}}
j←j+1{\displaystyle j\leftarrow j+1}![{\displaystyle j\leftarrow j+1}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e5a5e3291b445ad105c3e4d7c5c58057196074c7)
renvoyer
MT{\displaystyle MT}
Exemplo de execução
Seja o hipergrafo formado por vértices , com arestas . A execução prossegue da seguinte forma:
H{\ displaystyle {\ mathcal {H}}}
V={1,2,3,4,5}{\ displaystyle V = \ {1,2,3,4,5 \}}
E={{1,2,3},{1,4},{3,5},{4,5}}{\ displaystyle E = \ {\ {1,2,3 \}, \ {1,4 \}, \ {3,5 \}, \ {4,5 \} \}}![{\ displaystyle E = \ {\ {1,2,3 \}, \ {1,4 \}, \ {3,5 \}, \ {4,5 \} \}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/bafdc34276314796d1f955c86512ab37069ff567)
-
MT{\ displaystyle MT}
é inicializado com ;∅{\ displaystyle \ emptyset}![\ emptyset](https://wikimedia.org/api/rest_v1/media/math/render/svg/6af50205f42bb2ec3c666b7b847d2c7f96e464c7)
-
NÃO1{\ displaystyle N_ {1}}
é inicializado com ;{{1},{2},{3},{4},{5}}{\ displaystyle \ {\ {1 \}, \ {2 \}, \ {3 \}, \ {4 \}, \ {5 \} \}}![{\ displaystyle \ {\ {1 \}, \ {2 \}, \ {3 \}, \ {4 \}, \ {5 \} \}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f1f077fe88640011e9a4150aceea968286f72acf)
-
C{\ displaystyle W}
tomará sucessivamente como valores e :
{1,2},{1,3},{1,4},{1,5},{2,3},{2,4},{2,5},{3,4},{3,5}{\ displaystyle \ {1,2 \}, \ {1,3 \}, \ {1,4 \}, \ {1,5 \}, \ {2,3 \}, \ {2,4 \} , \ {2,5 \}, \ {3,4 \}, \ {3,5 \}}
{4,5}{\ displaystyle \ {4,5 \}}![{\ displaystyle \ {4,5 \}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/62e69048793e26a2f9ba42849abf3214d0c21594)
-
{1,5}{\ displaystyle \ {1.5 \}}
e são adicionados a ,{3,4}{\ displaystyle \ {3,4 \}}
MT{\ displaystyle MT}![MT](https://wikimedia.org/api/rest_v1/media/math/render/svg/98a909994972c27e3d072742881c62dcfb3aeeae)
-
{1,3},{1,4},{2,4},{2,5},{3,5}{\ displaystyle \ {1.3 \}, \ {1.4 \}, \ {2.4 \}, \ {2.5 \}, \ {3.5 \}}
e são adicionados a ,{4,5}{\ displaystyle \ {4,5 \}}
NÃO2{\ displaystyle N_ {2}}![N_ {2}](https://wikimedia.org/api/rest_v1/media/math/render/svg/597ea9dac049261fdda77c5176b050e6588d6bb9)
- As outras hiper-arestas são redundantes;
-
NÃO2{\ displaystyle N_ {2}}
vale a pena ;{{1,3},{1,4},{2,4},{2,5},{3,5},{4,5}}{\ displaystyle \ {\ {1,3 \}, \ {1,4 \}, \ {2,4 \}, \ {2,5 \}, \ {3,5 \}, \ {4,5 \} \}}![{\ displaystyle \ {\ {1,3 \}, \ {1,4 \}, \ {2,4 \}, \ {2,5 \}, \ {3,5 \}, \ {4,5 \} \}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d63810a1871f03400b273c57340a05e3350c3755)
-
C{\ displaystyle W}
tomará sucessivamente como valores e :
{1,3,4},{2,4,5},{1,3,5},{1,2,4},{1,4,5}{\ displaystyle \ {1,3,4 \}, \ {2,4,5 \}, \ {1,3,5 \}, \ {1,2,4 \}, \ {1,4,5 \}}
{3,4,5}{\ displaystyle \ {3,4,5 \}}![{\ displaystyle \ {3,4,5 \}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/085dd7bab450e45707ee9a6130ea503e84df87f1)
-
{2,4,5}{\ displaystyle \ {2,4,5 \}}
é adicionado a ,MT{\ displaystyle MT}![MT](https://wikimedia.org/api/rest_v1/media/math/render/svg/98a909994972c27e3d072742881c62dcfb3aeeae)
- As outras hiper-arestas são redundantes;
-
NÃO3=∅{\ displaystyle N_ {3} = \ emptyset}
;
- O algoritmo retorna .MT={{1,5},{3,4},{2,4,5}}{\ displaystyle MT = \ {\ {1,5 \}, \ {3,4 \}, \ {2,4,5 \} \}}
![{\ displaystyle MT = \ {\ {1,5 \}, \ {3,4 \}, \ {2,4,5 \} \}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4d956b4235292007a3b6ce6b9090494164a24932)
Os transversais mínimos de são bem e .
H{\ displaystyle {\ mathcal {H}}}
{1,5},{3,4}{\ displaystyle \ {1.5 \}, \ {3.4 \}}
{2,4,5}{\ displaystyle \ {2,4,5 \}}![{\ displaystyle \ {2,4,5 \}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4600842f19f3bded1497123b2294d2a039a53d2a)
Notas e referências
-
Loïck. Lhote , Exemplos de análise de algoritmos em Aritmética, Teoria da Informação e Mineração de Dados ,19 de janeiro de 2017, 75 p. ( leia online )
-
(em) Michael L. Fredman e Leonid Khachiyan , " On the Complexity of Monotone Dualization of disjunctive Normal Forms " , Journal of Algorithms , vol. 21, n o 3,1 r nov 1996, p. 618-628 ( ISSN 0196-6774 , DOI 10.1006 / jagm.1996.0062 , ler online , acessado em 25 de agosto de 2020 )
-
(in) Céline Hébert Alain Bretto e Bruno Crémilleux , " Uma formalização de mineração de dados para melhorar a computação mínima do hipergrafo transversal " , Fundamenta Informaticae ,dezembro de 2007, p. 415-433
-
(in) Julien David , Loïck Lhote , Arnaud Mary e Francois Rioult , " Um estudo médio de hipergrafos e mínimo seu transversal " , Ciência da computação teórica ,2015( DOI 10.1016 / j.tcs.2015.06.052 )
<img src="https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;">