Eficientemente encontrando as interseções de conjuntos que geram um conjunto desejado
-
29-09-2020 - |
Pergunta
Dada uma coleção de conjuntos $ \ {s_1, s_2, \ dots, s_n \} $ , encontre todas as interseções "reduzidas" entre esses conjuntos que geram Conjunto desejado $ \ {x} $ como resultado. Uma interseção "reduzida" é definida como uma interseção entre os conjuntos em que $ S_I \ CAP S_J \ Cap \ Dots \ Cap S_K= {x \} $ , tal que remova Qualquer um dos conjuntos na intersecção muda o resultado do conjunto desejado $ \ {x \} $ para outra coisa.
Por exemplo, para a coleção de conjuntos $ {a, b, c, d, e, f} $ , onde:
$ a={c, d, f, g, x \} $ ,
$ b={c, d, g, p, t, x \} $ ,
$ c={E, i, x, y \} $ ,
$ D={a, i, o, p, q, w, x \} $ ,
$ e= {f, t, w, x \} $ e
$ f= {a, b, c, d, e \} $ , então:
- $ a \ Cap B \ Cap e={x \} $ é uma interseção reduzida, porque $ a \ cap B. ={c, d, g, x \} $ , $ a \ cap e={f, x \} $ e $ b \ Cap e={t, x \} $ . Removendo qualquer um dos conjuntos $ a $ , $ B $ , ou $ E $ da intersecção $ a \ Cap B \ Cap e $ produz um resultado diferente do conjunto desejado $ \ {x \} $ .
- $ c \ Cap d \ Cap e={x \} $ não é uma interseção reduzida, porque $ c \ cap e={x \} $ . Removendo conjunto $ D $ da interseção $ c \ cap d \ cap e $ ainda produz o conjunto desejado $ \ {x \} $ como resultado.
minha pergunta é: Dada uma coleção de conjuntos, qual é o algoritmo mais eficiente para encontrar todas as interseções reduzidas entre esses conjuntos que geram um conjunto desejado?
Observe que não importa se o conjunto desejado possui apenas um único elemento nele ou não. Neste exemplo, acabei de usar um único elemento $ x $ para simplicidade.
Solução
Seu problema é equivalente a enumerar todas as tampas de conjunto de inclusão-mínimas, um problema endereçado aqui .
Suponha que você esteja procurando por todas as coleções de conjuntos cuja interseção seja algum conjunto $ t $ .Todos os conjuntos relevantes devem conter $ t $ , para que você possa considerar todos os conjuntos contendo $ t $ ,e remova $ t $ de todos eles.Isso reduz ao caso $ t=FORTSET $ .
Agora deixe $ u $ ser a união de todos os conjuntos.A intersecção de uma coleção de conjuntos é vazia se a união de seus complementos é $ U $ .Em outras palavras, se você complementar todos os conjuntos, você está interessado em capas de conjunto de inclusão-mínimas.