Qual é o truque de "adicionar um número enorme" na redução da 3-Partition?

7

Problema: Para provar oNP-Completenessdo problema de "Packing Squares (com diferentes comprimentos laterais) em um retângulo" ,Partição 3 é reduzido, como mostra a figura a seguir.

embalagem quadrada

No Partição 3 exemplo, existem n elementos (a1,,ai,,an). A soma designadat é t=ain/3.

Na redução, Bé um número enorme (constante) e cadaai é representado por um (B+ai)×(B+ai)quadrado. O espaço em branco no retângulo será preenchido por unidade (1×1) quadrados.


Perguntas: Não entendo bem o truque de "adicionar um grande númeroB"na redução. Acho que é usado para forçar que qualquer esquema de embalagem dê uma solução para 3-Partition. Mas como?

Pergunta 1: Qual é o truque de "adicionar um número enorme" para a redução de 3-Partition? Especificamente, por que essa redução funciona? Por que esse truque é necessário, ou seja, por que a redução não funcionaria se deixássemos de foraB (conjunto B=0)?

Tentei identificar a falha da prova de "qualquer embalagem dá uma partição 3", mas não consegui entender o ponto-chave.

Na verdade, eu também vi outras reduções de 3-Partitionque também usam esse truque. Assim,

Pergunta 2: Qual é o objetivo geral desse truque de "adicionar um número enorme" nas reduções de 3-Partition( se houver )?


Nota: Esse problema é da vídeo aula (de 01:15:15) do Prof. Erik Demaine. Eu deveria ter verificado primeiro o artigo original "Empacotando quadrados em um quadrado" . No entanto, ele não está acessível para mim na Internet. Se você possui uma cópia e gostaria de compartilhar, pode encontrar minha caixa de correio em meu perfil. Desde já, obrigado.

hengxin
fonte
Não vi a prova de Demaine, mas você tem uma redução de um problema semelhante aqui .
RB
O que você quer dizer com "qual é o truque de ..."? Você pode formular a Questão 1 de uma maneira mais específica? Você quer dizer, por que essa redução funciona? Quer dizer, por que isso é necessário, ou seja, por que a redução não funcionaria se deixássemos de foraB (conjunto B=0 0)? Algo mais? E, depois de explicado, pode nos dizer o que tentou responder a essa pergunta por conta própria?
DW
@ DW Obrigado pela sua sugestão. Tentei encontrar a falha da prova de "toda embalagem dá uma partição de 3" quandoB=0 0. No entanto, não tenho a prova original e tenho dificuldade nisso.
hengxin 02/02
Você quer dizer que não possui os detalhes da redução de 3 partições para os quadrados de embalagem, apenas um esboço? O que você quer dizer com "a prova original"? Quanto ao artigo que você não consegue encontrar na Internet: você tentou visitar sua biblioteca local para ver se eles conseguem uma cópia do artigo que você mencionou ou tentou entrar em contato com os autores?
DW
@DW É bem possível que eu encontre a resposta da prova no jornal (que não está acessível). A prova de contorno (a foto) perde muitos detalhes. Basicamente, eu quero descobrir por queBé necessário na redução. Talvez eu possa tentar entrar em contato com os autores.
hengxin 02/02

Respostas:

1

O grande B está aqui para garantir que os quadrados sigam o padrão mostrado na figura.

Na parte "existe uma embalagem existe uma partição 3 ". Você precisa exibir tripples de números inteiros com soma =t. Isso é fácil se os quadrados de codificação na embalagem estiverem dispostos 3 a 3 como na figura, mas como você sabe que é esse o caso? Por exemplo, com quadrados azuis muito ligeiramente menores, você pode ter dois quadrados pequenos lado a lado na mesma coluna e, em seguida, terá problemas.

Uma maneira de usar o truque do B constante é dizer que não é possível fazer com que nenhuma linha horizontal cruze estritamente mais do que n/3 quadrados (essa linha tem comprimento (B+t)n3, um quadrado tem tamanho pelo menos Be B>tn3) Portanto, cada linha horizontal encontra um 1º quadrado, um 2º quadrado, etc., e então você pode mostrar (novamente usando o grandeB), que o Euos quadrados de cada linha devem se encontrar na mesma coluna. Depois de conseguir isso, você obtém uma 3 partição.

Sobre a pergunta 2, é obviamente difícil dar uma resposta formal, mas o padrão geral é o seguinte: com 3 partições, é necessário introduzir algum tipo de folga para permitir que qualquer número inteiro em um intervalo [mEun,mumax]de alguma forma, pode ser codificado e incorporado em um slot (que deve corresponder ao tamanho máximo possível). Porém, um problema comum é ter dois números inteiros no mesmo slot ou, geralmente, outros problemas sobrepostos (como nos quadrados aqui). Isso é resolvido certificando-se de que omEun é grande o suficiente em comparação com o tamanho do slot (geralmente precisamos mEun>mumax/2ou mEun>mumax(n-1 1)/(n) aqui): isso é facilmente alcançado com uma constante aditiva B.

Editar instância de amostra em queB é necessário: deixe a instância da 3-partição ser (10,7,2,10,9,2) com t=20. Esta não é uma instância. No entanto, comB=0 0, você tem uma embalagem válida do 40.×20 retângulo: use uma primeira coluna com quatro quadrados (10,7,2,2), os dois últimos lado a lado e uma segunda coluna com apenas (10,9). Isso não é possível com, digamos,B=100e um 240×320 retângulo.

tarulen
fonte