Como é conhecida essa variante do problema de cobertura do conjunto?


12

A entrada é um universo e uma família de subconjuntos de U , digamos, F ⊆ 2 U . Nós assumimos que os subconjuntos em F pode cobrir U , ou seja, ⋃ E ∈ F E = U .UUF⊆2UFU⋃E∈FE=U

Uma sequência de cobertura incremental é uma sequência de subconjuntos em , digamos, A = { E 1 , E 2 , … , E | Um | } , isso satisfazFA={E1,E2,…,E|A|}

1) ,∀E∈A,E∈F

2) todos os recém-chegado tem nova contribuição, ou seja, , ⋃ i - 1 j = 1 E i ⊊ ⋃ i j = 1 E i ;∀i>1⋃j=1i−1Ei⊊⋃j=1iEi

O problema é encontrar uma sequência de cobertura incremental de comprimento máximo (ou seja, com o máximo ). Note-se que uma sequência de comprimento máximo deve, eventualmente, cobrir L , ou seja, ⋃ E ∈ Uma E = U .|A|U⋃E∈AE=U

Tentei encontrar um algoritmo ou um algoritmo aproximado para encontrar a sequência de cobertura incremental mais longa. Eu só estava me perguntando o que essa variante do problema de cobertura do conjunto é conhecida como. Obrigado!


Você precisa que sua família de subconjuntos cubra o universo U ? Porque é claro que você pode ter um problema de capa de conjunto mais difícil, pois procura uma capa de conjunto com propriedades adicionais. Em outras palavras, a cobertura do conjunto é reduzida ao seu problema. No wiki da capa do conjunto, também estão os resultados de falta de aproximação para a capa do conjunto. AU
— Harry

1
Apenas uma observação (pequena demais para ser uma resposta): quando seus subconjuntos são do tamanho dois, o que você procura é essencialmente uma floresta de abrangência.
— 22614 David Eppstein

Provavelmente não é novo no PO, mas aqui estão algumas observações. (1) O valor ideal é sempre no máximo | U |. Se o valor ideal é igual a | U | ou não, pode ser decidido eficientemente pelo algoritmo ganancioso que tenta minimizar o número de elementos cobertos. (2) O mesmo algoritmo guloso também funciona se todos os conjuntos em F forem do tamanho dois, veja o comentário de David Eppstein. (3) O mesmo algoritmo ganancioso não funciona em geral (suspiro). Um contra-exemplo: F = {{1,2,3}, {1,4,5,6}, {2,4,5,6}, {3,4,5,6}}.
— Tsuyoshi Ito 25/10

1
O problema não parece realmente um problema de cobertura de conjunto ... Mais como um híbrido entre correspondência e correspondência induzida em gráficos bipartidos. Uma boa reformulação equivalente é que uma família é ruim se nenhum elemento for coberto por exatamente um conjunto da família. O problema é encontrar a maior subfamília de F, de modo que A não tenha uma subfamília ruim. AFA
— Daniello 28/10

1
@Neal Young não é ruim porque b é coberto por exatamente um conjunto (a saber { a , b } ). Fb{a,b}
— Daniello 23/11

Respostas:


4

Aqui eu mostro que o problema é NP-completo.

Convertemos um CNF em uma instância do seu problema da seguinte maneira. Suponha que as variáveis ​​do CNF sejam x i 's e as cláusulas sejam m C j ' s, onde n < m . Vamos U = ∪ i ( A i ∪ B i ∪ Z i ) onde todos os conjuntos na união são completamente disjuntos. De fato, A i = { a i , j ∣ x i ∈ C j } ∪ { a in xim Cjn<mU=∪i(Ai∪Bi∪Zi)e B i ={ b i , j | x i ∈ C j }∪{ b i , 0 }, enquanto Z i é qualquer conjunto de cardinalidadek=2n+1. Além disso significamZ= ∪ i Z i e correcção para cada Z i uma família crescente de comprimentokdentro dela, indicado por Z i ,Ai={ai,j∣xi∈Cj}∪{ai,0}Bi={bi,j∣xi∈Cj}∪{bi,0}Zik=2n+1Z=∪iZiZik paral=1 ..k. Para todas as variáveis x i , adicionamos2kconjuntos para F , cada conjunto da forma A i ∪ Z i , l e B i ∪ Z i , l . Para cada cláusula C j , podemos adicionar um conjunto de M , que contémZ, e para todos os x i ∈ C j elemento{ um i , j }Zi,ll=1..kxi2kFAi∪Zi,lBi∪Zi,lCjFZxi∈Cj{ai,j}e para cada elemento { b i , j } .x¯i∈Cj{bi,j}

Suponha que a fórmula seja satisfatória e fixe uma tarefa satisfatória. Em seguida, escolher os conjuntos da forma A i ∪ Z i , l ou B i ∪ Z i , l , dependendo se x i é verdadeira ou não. Esses são n k conjuntos incrementais. Agora adicione os conjuntos m correspondentes às cláusulas. Eles também aumentam o tamanho, pois as cláusulas são satisfatórias. Finalmente, podemos até mesmo adicionar k mais conjuntos (um para cada variável) para fazer o cover sequence U .kAi∪Zi,lBi∪Zi,lxinkmkU

Agora, suponha que conjuntos sejam colocados em uma sequência incremental. Observe que no máximo k + 1 conjuntos correspondentes a x i podem ser selecionados para cada x i . Portanto, se não houver conjuntos de cláusulas na sequência incremental, no máximo n ( k + 1 ) poderá ser selecionado, o que é muito pouco. Observe que, assim que um conjunto de cláusulas é selecionado, podemos escolher no máximo dois conjuntos correspondentes a cada x i , um total de no máximo 2 n conjuntos. Portanto, temos que escolher pelo menosn(k+1)+mk+1xixin(k+1)xi2nconjuntos de variáveis n ( k - 1 ) antes que qualquer conjunto de cláusulas seja selecionado. Mas como podemos escolher no máximo k + 1 para cada x i , isso significa que, para cada um, escolhemos pelo menos 1 , como k = 2 n + 1 . Isso determina o "valor" da variável, portanto, podemos escolher apenas cláusulas "verdadeiras".n(k−1)k+1xi1k=2n+1

Atualização: valor alterado de de n para 2 n + 1, conforme apontado por Marzio.kn2n+1


1
Um esclarecimento: Eu rapidamente verificados a construção para a fórmula insatisfatível ( n = k = 1 , m = 2 ), mas parece que podemos construir uma sequência de n ( k + 1 ) + m = 4 de aumentando conjuntos de F . Provavelmente cometi um erro: temos F = { { a 1 , 0 , a 1 , 1 , a 1x1∧¬x1n=k=1,m=2n(k+1)+m=4F? F={{a1,0,a1,1,a1,2,z1},{b1,0,b1,1,b1,2,z1},{a1,1,z1},{b1,2,z1}}
— Marzio De Biasi

Conhecendo você e eu, tenho certeza que o erro é meu ... Acho que devemos obter F={{a1,0,a1,1,z1},{b1,0,b1,2,z1},{a1,1,z1},{b1,2,z1}}, mas é claro que ainda é um problema. OK, vejo onde cometi o erro, corrijo em um minuto, thx!
— Domotorp 4/12/14

Ok, vou dar uma olhada amanhã! Apenas uma nota, você pode escrever (em um comentário) que é para x i ∧ ¬ x i e qual é o "valor-alvo" para o comprimento da seqüência de cobertura (é isso k)? Porque, na resposta modificada, você define k = 2 n + 1 primeiro e depois fala sobre n ( k + 1 ) + m = 2 n 2 + 2 n + m conjuntos são colocados em uma sequência incremental ; está correto (ainda não tentei a redução)?Fxi∧¬xik=2n+1n(k+1)+m=2n2+2n+m
— Marzio De Biasi

F={{a1,0,a1,1,z1,},{a1,0,a1,1,z1,z2},{a1,0,a1,1,z1,z2,z3},{b1,0,b1,2,z1},{b1,0,b1,2,z1,z2},{b1,0,b1,2,z1,z2,z3},{a1,1,z1,z2,z3},{b1,2,z1,z2,z3}}

n(k+1)+m=65

0

AB⊆A⋃X∈BX

E1,…,EmBEiBEi

A


Este é um problema bastante natural ...


Lembrete rápido: no problema de empacotamento de conjuntos, dada uma família de conjuntos, encontre o subconjunto máximo de conjuntos que atenda a algumas restrições adicionais (por exemplo, nenhum elemento é coberto mais de 10 vezes, etc.).


Esta resposta está apenas provando que a pergunta é natural ou há algo mais que você também afirma?
— Domotorp

É declarar isso de uma maneira mais simples. Não?
— Sariel Har-Peled

Sim, eu concordo com isso.
— Domotorp
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.