Qual é a complexidade desse problema de cobertura?

24

Edit: Eu primeiro formulei minha restrição (2), agora ela está corrigida. Eu também adicionei mais informações e exemplos.

Com alguns colegas, estudando outra questão algorítmica, conseguimos reduzir nosso problema ao seguinte problema interessante, mas não conseguimos resolver a questão de sua complexidade. O problema é o seguinte.

Instância: Um número inteiro n , um número inteiro k<n e um conjunto S={{s1,t1},,{sn,tn}} de n pares do conjunto {1,,n} .

Pergunta: Existe um conjunto SS de tamanho k tal que para cada elemento i de {1,,n} :
(1) se i<n , o intervalo [i,i+1] seja incluído em algum intervalo [si,ti] definido por um par em S e
(2) pelo menos um de i , i+1pertence a algum par de ? S
(2) pertence a algum par de S .iS

Exemplo
O conjunto é uma solução viável (assumindo que n seja par): o par { 1 , n } garante a condição (1), enquanto todos os outros pares garantem a condição (2).{{i,i+1} | i  is odd}{1,n}n{1,n}

Observações
(I) Como cada par contém exatamente dois elementos, para atender à condição (2), precisamos de pelo menos pares. BTW, isso implica uma aproximação 2 trivial retornandoSinteiro, pois assumimos que| S| n.n2S|S|n

(II) Outra maneira de analisar o problema é considerar uma escada com etapas (como a abaixo ), juntamente com um conjunto S de n ciclos da escada. Cada passo da escada corresponde a algum elemento, e cada aresta lateral é um intervalo [ i , i + 1 ] . Um ciclo incluindo as etapas s , t corresponde exactamente a um par { s , t } : ele abrange todos os intervalos consecutivos de entre s e t , e que pare em ambos s e t .nSn[i,i+1]s,t{s,t}stst
A questão é saber se existe um conjunto de k ciclos cuja união cobre todas as arestas da escada (incluindo arestas de degraus e arestas laterais).SSk

(III) Se alguém estivesse solicitando apenas a condição (1), o problema corresponderia ao problema do conjunto dominante em algum gráfico de intervalo definido a partir dos intervalos dados pelos pares de S[si,ti]S juntamente com pequenos intervalos adicionais para cada i em { 1 , , n - 1 } . Este problema é classicamente solucionável em tempo linear (veja, por exemplo, aqui ).[i+ϵ,i+1ϵ]i{1,,n1}
Da mesma forma, se alguém estivesse apenas pedindo a condição (2), isso poderia ser reduzido ao problema da cobertura da aresta (vértices são os elementos, arestas são os pares), que também é solucionável em tempo polinomial por uma abordagem de correspondência máxima.


Então, minha pergunta está no título:

Esse problema está em P? É NP-completo?

Qualquer referência a um problema semelhante é bem-vinda.

Florent Foucaud
fonte
11
Pode estar em algum lugar entre ... quem sabe que não pode ser equivalente a, digamos, isomorfismo gráfico? :)
Tsuyoshi Ito
Claro, isso é uma opção também ... Mas na verdade eu sinto isso "cheira" para estar em P - talvez porque eu espero que ele seja :)
Florent Foucaud
Por que qualquer solução viável deve ter um tamanho ? Você poderia, por favor, explicar por que o conjunto de pares {[1,n-1],[2,n]} não é viável. n2[1,n1],[2,n]
hbm
@ hbm: a solução que você está propondo não atende à condição (2) (mesmo com a restrição de antes da minha atualização). Incluí mais explicações agora, espero que seja mais claro.
Florent Foucaud
E quanto a k = n / 2? Podemos resolver o problema para este caso especial?
Domotorp 7/06

Respostas:

8

Embora isso não resolva a questão que você levanta, alguns dos comentários anteriores consideram algoritmos de aproximação. FWIW, acho que um PTAS (esquema de aproximação de tempo poligonal) é possível usando programação dinâmica. Aqui está a ideia.

Dada qualquer instância e , construa uma solução da seguinte maneira. Marcar cada ( 1 / ε ) 'th vértice. Para cada vértice marcado i , de todas as arestas ( j , k ) que "abrangem" i (ou seja, que atendem à restrição (1) para i ), escolha uma aresta que minimize jϵ>0(1/ϵ)i(j,k)iij e uma que minimize maximize . Adicionar estas 2 ε n bordas para a solução.k2ϵn

Essas arestas atendem às restrições do tipo (1) para muitos dos vértices. Enquanto isso, eles contribuem com arestas para a solução, que é apenas O ( ϵ OPT ) . Para finalizar, encontraremos uma solução ideal para o problema restante de encontrar um conjunto de arestas que atenda a todas as restrições de tipo (1) e tipo (2) restantes.2nϵO(ϵOPT)

Defina um "bloco" de vértices como um conjunto de vértices consecutivos cujas restrições de tipo (1) são atendidas pelas arestas adicionadas até agora. Entre dois blocos consecutivos, há uma sequência de vértices cujas restrições de tipo (1) não são atendidas. (Qualquer uma dessas seqüências tem comprimento no máximo , porque os vértices marcados têm suas restrições de tipo (1) atendidas pelas arestas já adicionadas.) Chame qualquer sequência como uma "vizinhança" dos dois blocos adjacentes (para que cada bloco tenha um vizinhança à esquerda e vizinhança à direita).1/ϵ

Dentro de cada vizinhança, para cada vértice na vizinhança, cada aresta deixando o vértice mede uma distância de no máximo (porque a aresta não abrange nenhum vértice marcado). Assim, o vértice tem grau no máximo 1 / ϵ . Assim, cada bairro tem no máximo 1 / ϵ vértices e toca no máximo 1 / ϵ 2 arestas. Chame qualquer subconjunto dessas arestas de "configuração" da vizinhança. Se uma configuração atender a todas as restrições de tipo (1) e tipo (2) para os vértices na vizinhança, chame a configuração de "válida".1/ϵ1/ϵ1/ϵ1/ϵ2

Para cada bloco , para cada par ( C i , C i + 1 ) de configurações válidas das duas vizinhanças do bloco, calcule (em tempo polinomial, usando a correspondência máxima etc), o tamanho mínimo F i ( C i , C i + 1 ) de qualquer conjunto S de arestas (se houver), de modo que as arestas em C iS C / ϵ 2i(Ci,Ci+1)Fi(Ci,Ci+1)S se encontram do tipo (2) restrições para os vértices no bloco. Uma vez que existem no máximo 2 1CiSCi+1 configurações, isso pode ser feito em tempo polinomial (para eps fixo). 21/ϵ2=O(1)

Agora você pode resolver a instância original por encontrar uma seqüência de configurações válidas, uma para cada vizinhança, que minimiza i | D i | + F i ( D i , D i + 1 ) , onde F i é como definido no parágrafo anterior. Isso pode ser feito encontrando um caminho mais curto no gráfico formado por todas as configurações válidas, com uma margem de custo | D i | +D1,D2,..,Dki|Di|+Fi(Di,Di+1)Fi de cada configuração D i para vizinhança i para cada configuração D i + 1 para vizinhança i + 1 . (Este gráfico tem tamanho ó ( 2 1 / ε 2 N ) , o qual é S ( n ) para fixa ε ).|Di|+Fi(Di,Di+1)DiiDi+1i+1O(21/ϵ2n)O(n)ϵ

Neal Young
fonte
11
Agradável. e bem-vindo à história!
precisa
Obrigado pela sua resposta, Neal (desculpe, não tive tempo de verificar isso antes)! Mesmo que isso não responda totalmente à minha pergunta, ainda é um passo adiante. Apenas dois comentários: acho que deve ser "maximiza k" em vez de "minimiza k" (segundo parágrafo). Além disso, para ser mais preciso, quando se quer um ( ) -approximation, deve-se marcar cada k = 4 / ε 'th vértice (desde S P T n / 2 e que, em seguida, tomar 2 n / k ε ó P T bordos no primeiro passo). 1+ϵk=4/ϵOPTn/22n/kϵOPT
Florent Foucaud