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


12

A entrada é um universo e uma família de subconjuntos de U , digamos, F2 U . Nós assumimos que os subconjuntos em F pode cobrir U , ou seja, E F E = U .UUF2UFUEFE=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) ,EA,EF

2) todos os recém-chegado tem nova contribuição, ou seja, , i - 1 j = 1 E ii j = 1 E i ;i>1j=1i1Eij=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|UEAE=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 iB iZ i ) onde todos os conjuntos na união são completamente disjuntos. De fato, A i = { a i , jx iC j } { a in xim Cjn<mU=i(AiBiZi)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,jxiCj}{ai,0}Bi={bi,jxiCj}{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..kxi2kFAiZi,lBiZi,lCjFZxiCj{ai,j}e para cada elemento { b i , j } .x¯iCj{bi,j}

Suponha que a fórmula seja satisfatória e fixe uma tarefa satisfatória. Em seguida, escolher os conjuntos da forma A iZ i , l ou B iZ 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 .kAiZi,lBiZi,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(k1)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

ABAXBX

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.