Soma definida cumulativa mínima


17

Considere este problema: Dada uma lista de conjuntos finitos, localize os pedidos que minimizam .s1,s2,s3,|s1|+|s1s2|+|s1s2s3|+

Existem algoritmos conhecidos para isso? Qual é a sua complexidade? Ainda não consegui pensar em um algoritmo ideal eficiente, mas também não está obviamente no NP-Hard.


11
Você já tentou todas as formas óbvias de candidatos para tentar resolver isso com um algoritmo ganancioso, para ver se alguma delas funciona? (As probabilidades são de que nenhuma delas funcione, mas vale a pena checar. Geralmente, para cada candidato a algoritmo ganancioso que você tem em mente, se não funcionar, geralmente é fácil encontrar um contraexemplo que comprove isso.)
DW

Eu já provei que o algoritmo ganancioso não funciona para n 3. Contra-exemplo: A = {0, 1} B = C = {2,3,4}. A solução ideal é B, C, A com custo 11, o algoritmo ganancioso fornece A, B, C com custo 12. Até agora, o melhor que consegui é um algoritmo de aproximação com relação , o que é muito ruim. n + 2n+23
Antimony

Existe um programa dinâmico de tempo , em que é o número de conjuntos. O(2npoly(n))n

11
Talvez isso seja mais adequado à história.
Yuval Filmus

5
Alguém pode resolver o caso especial quando todos ? |si|=2
Domotorp 5/12/14

Respostas:


6

Esse problema está realmente relacionado a um problema de agendamento conhecido como "Agendamento com restrição de precedência para minimizar o tempo de conclusão ponderado". O problema é o seguinte: Dado um conjunto de trabalhos, em que cada trabalho tem um tempo de processamento (p) e peso (w) e um gráfico de precedência é definido nos trabalhos. O objetivo é agendar os trabalhos em uma única máquina (não preventiva), de modo que as restrições de precedência sejam estatisticas e a soma do tempo de conclusão ponderado seja minimizada. O problema é NP-difícil e uma aproximação 2 é conhecida.

Redução do problema de soma cumulativa mínima para o problema de planejamento com restrição de precedência: Para cada elemento, crie um trabalho com p = 1, w = 0. Também para cada conjunto, crie um trabalho com p = 0, w = 1. Crie o gráfico de precedência, de modo que se o elemento , em seguida, deve ser agendada antes . Eu acho que esse caso especial do problema de agendamento também é difícil para o NP.e SeSeS

Veja os seguintes links,

1) http://www.win.tue.nl/~gwoegi/papers/precsum.pdf

2) http://web.engr.illinois.edu/~chekuri/papers/dam_sched.ps


Eu também recomendaria o documento a seguir para limites aprimorados, casos especiais e resultados de dureza para o problema de agendamento. people.idsia.ch/~monaldo/papers/MOR-schedprec-11.pdf . Veja também o artigo sobre dureza 2- \ epsilon sob uma variante de jogos exclusivos de Bansal e Khot win.tue.nl/~nikhil/pubs/focs-09-version.pdf .
Chandra Chekuri

A redução não teria que ir na outra direção para provar que o problema da soma acumulada é NP Hard?
Antimony

Deixa pra lá, acho que vejo como a redução ocorre nos dois sentidos.
Antimony

1

Shalmoli Gupta já explicou que o problema geral é NP-Hard, então decidi investigar se algum caso especial é passível de solução polinomial. Eventualmente, encontrei uma solução para o caso especial de conjuntos que representam uma árvore, ou mais geralmente, uma ordem paralela de séries por inclusão de subconjunto, com todos os conjuntos incomparáveis ​​separados.

Uma propriedade que facilita as coisas é se a lista de conjuntos for fechada sob interseção. Se , existe uma ordem ideal em que s 1 vem antes de s 2 . Podemos supor ao WLOG que a ordem ideal é uma extensão linear da ordem parcial dada pela inclusão de subconjunto.s1s2s1s2

Como todos os subconjuntos de um conjunto aparecem antes dele na ordem, isso significa que a quantia adicionada à soma corrente por um determinado conjunto é fixa, independentemente de onde ele apareça. Se é a lista de conjuntos, em seguida, o custo incremental de um conjunto é o número de elementos em s que não são em qualquer subconjunto de s que aparece em S . Se o mesmo conjunto aparecer várias vezes em S , podemos escolher arbitrariamente um para ir primeiro e permitir que os outros custem 0.SSS

Isso significa que o problema é equivalente ao tempo mínimo de conclusão ponderado no planejamento de uma única máquina com restrições de precedência. Neste problema, dado um conjunto de postos de trabalho com pesos e tempos t j , e uma ordem parcial sobre o emprego P , que deseja encontrar uma ordenação dos trabalhos que minimiza o tempo de conclusão total ponderado, ou sejawjtjP

i=1nwji(k=1itjk)

sujeito às limitações de precedência . O problema mínimo de conjunto cumulativo com conjuntos fechados de interseção pode ser resolvido criando um trabalho para cada conjunto, onde cada trabalho tem peso 1, tempo igual ao custo incremental definido acima e P é a ordem dada pela inclusão do subconjunto.PP

Como se vê, esse problema também é NP-Hard para geral . No entanto, certas formas especiais de P podem ser resolvidas em tempo polinomial.PP

Este artigo fornece um algoritmo para o caso de ordens paralelas em série P (que inclui também o caso importante de árvores). Infelizmente, como não consegui acessar esse documento, decidi tentar reinventá-lo de forma independente. Aqui está o que eu criei.O(nlogn)P

Para resolver este problema, são necessárias várias observações.

Primeiro, na ausência de restrições de precedência, a solução ideal é simplesmente classificar os trabalhos em ordem crescente de . Por simplicidade, vou me referir a isso como o valor do trabalho, abreviadov(j). Observe que, como a classificação éO(nlogn), é impossível fazer melhor que essa complexidade.tjwjv(j)O(nlogn)

Regra 1 Seja e b trabalhos de tal forma que a < b P e b cubra a. Se v ( a ) < v ( b ) , podemos eliminar a restrição a < b sem afetar a ordenação ideal ou o valor objetivo.aba<bPv(a)<v(b)a<b

Suponha aparece antes um na ordenação ótima do problema relaxado. Como b abrangeu a originalmente, isso significa que todos os trabalhos entre be na nova ordem são incomparáveis ​​a e b. Mas como b tem um valor mais alto que a, podemos diminuir o valor objetivo trocando be uma contradição.ba

Da mesma forma, podemos eliminar a restrição no caso em que , desde que asseguremos que, após a classificação por valor, rompamos os laços consultando as relações de precedência do problema original (simplificado). Isso garante que a solução ideal encontrada para o problema relaxado também seja uma solução ideal para o problema original.v(a)=v(b)

Portanto, sempre que b abrange a e , podemos simplificar o problema eliminando a restrição a < b .v(a)v(b)a<b

Regra 2 Suponha que sabemos que b segue imediatamente após a em uma solução ótima. Podemos mesclar aeb em um novo nó c com e t c = t a + t b , enquanto contratamos o poset P apropriadamente.wc=wa+wbtc=ta+tbP

O valor objetivo ideal do novo problema difere em uma constante do valor objetivo original (especificamente ), no entanto, essa constante não depende da ordem e, portanto, a ordem ideal não é afetada. Podemos recuperar uma solução ótima para o problema antigo, pegando uma solução ótima para o novo problema e substituindo c por um b .watbcab

Regra 3 Suponhamos que, uma solução óptima para um problema exemplo, vem imediatamente antes b e v ( um ) > v ( b ) . Agora, suponha que criamos uma instância de problema maior adicionando novos trabalhos com o novo poset formado a partir de séries ou composição paralela ao original. Sempre haverá uma solução ideal para o problema maior em que a vem imediatamente antes de b .abv(a)>v(b)ab

Suponha o contrário. Deixe a solução ideal conter . Como P foi formado pela composição paralela em série, sabemos que todos os x i s são incomparáveis ​​a a e b . Mesclar todos os nós x i em um novo nó x usando a regra 2. Agora considere v ( x ) . Se v ( x ) v ( a ), então podemos trocara,x1,x2,,bPxiabxixv(x)v(x)v(a) e a sem aumentar o valor objetivo. Da mesma forma, se v ( x ) v ( b ) , podemos trocar x e b . Portanto, v ( a ) < v ( x ) < v ( b ) . Mas v ( a ) > v ( b ) , uma contradição.xav(x)v(b)xbv(a)<v(x)<v(b)v(a)>v(b)

Usando as regras 2 e 3, já podemos obter um algoritmo simples, mas subótimo . Como P é uma ordem paralela em série, suponha que a entrada contenha uma representação em árvore de P, em que cada nó representa composição em série ou composição paralela, e as folhas são tarefas individuais. Podemos encontrar uma solução ideal com a passagem antecipada da árvore, mantendo a invariante de que a solução ideal para cada subproblema é uma cadeia em ordem crescente de valor.O(n2)PP

Suponhamos que é a composição série de sub-problemas com posets P 1 e P 2 . Deixe as soluções ideais solicitarem C 1 e C 2 . A solução ideal para P é claramente a concatenação dessas cadeias. No entanto, é possível que o primeiro trabalho em C 2 tenha um valor menor que o último trabalho em C 1 . Para manter a invariante de que a solução é uma cadeia classificada, usamos a regra 3 + regra 2 para mesclar os pontos de extremidade, desde que eles não estejam na ordem de classificação.PP1P2C1C2PC2C1

Se é uma composição paralela, simplesmente pegamos as cadeias classificadas S 1 e S 2 e as fundimos em uma nova cadeia classificada. Graças ao invariante, isso é válido.PS1S2

Infelizmente, esse algoritmo é . Para obter um algoritmo O ( n l o g n ) , precisamos calcular as cadeias preguiçosamente usando a regra 1.O(n2)O(nlogn)

Especificamente, se um subproblema contiver apenas nós em que as restrições de precedência são iguais à ordem dos valores, podemos esquecer completamente as restrições de precedência e examinar apenas os valores. Isso é garantido pela mesma invariante que garantiu que as soluções sejam classificadas em cadeias no algoritmo anterior.

Em vez de calcular uma cadeia classificada para cada subproblema, representamos a solução ideal para um subproblema como um par de pilhas de Fibonacci, uma pilha mínima e uma pilha máxima, ambas contendo todos os trabalhos no subproblema. Isso significa que podemos destacar o elemento mínimo ou máximo da solução em tempo logarítmico.

PP

Para uma composição paralela, simplesmente mesclamos os pares de heap. O novo heap mínimo é a mesclagem do heap mínimo de cada subproblema e da mesma forma com o heap máximo. Observe que pilhas de Fibonacci são mescláveis ​​em tempo constante.

Depois que tivermos um par de heap representando a solução para todo o problema, podemos encontrar a ordem real da solução pressionando o heap mínimo até que ele esteja vazio. Depois disso, desfazemos todas as substituições da regra 2 para obter uma solução para o problema original.

O(nlogn)

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.