Eficientemente encontrando as interseções de conjuntos que geram um conjunto desejado

cs.stackexchange https://cs.stackexchange.com/questions/124858

  •  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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a cs.stackexchange
scroll top