Localizando pequenos conjuntos de números inteiros nos quais cada elemento é uma soma de dois outros

16

Este é um acompanhamento para esta pergunta em math.stackexchange.

Digamos que um conjunto não vazio S ℤ ℤ seja auto-sustentável se, para todo a  ∈ S, existirem elementos distintos b, c  ∈ S tais que a  =  b  + c. Para números inteiros positivos n , exemplos simples incluem o ideal S =  n ℤ ou (para n > 3) o intervalo inteiro [- nn ].

Diremos que S é fortemente auto-sustentável se S for separado de −S: isto é, se a  S, então - a  ∉ S. Nenhum dos exemplos acima é auto-suficiente, porque na verdade eles estão fechados sob negação. Existem conjuntos finitos que são fortemente autossustentáveis: por exemplo, os conjuntos {−22, −20, −18, −16, −14, −12, −10, −2, 1, 3, 7, 8, 15 , 23} e {−10, −8, −6, −2, 1, 3, 4, 5}.

Questão 1. Para um número inteiro positivo N > 0, existe um algoritmo poly ( N ) -time [ou polylog ( N ) -time ]] para (i)  produzir um conjunto fortemente autossustentável, cujo valor absoluto máximo é N , ou (ii) )  determinam que esse conjunto não existe? [ Editar : como indicado na resposta mais antiga + no meu comentário, sempre existe um conjunto para N  ≥ 10.]

Questão 2. Para N > 0, você pode construir o conjunto fortemente autossustentável com o valor absoluto máximo N e qual possui o menor número possível de elementos?

Niel de Beaudrap
fonte
11
migrar as perguntas respondidas não é uma prática comum e a pergunta parece boa aqui. Mas se você quiser, vou migrar.
Kaveh
Também não tenho certeza de que faz sentido migrar uma pergunta respondida.
Suresh Venkat
Como você deseja, então. O fato de essa pergunta permanecer aqui me incomoda há algum tempo desde que o site se tornou um fórum maduro para perguntas e respostas sobre tópicos teóricos. Eu pensei que o tom poderia ser muito mais adequado para o (nível de pesquisa não) cs.SE; mas se você não achar que há um problema de consistência significativo, pararei de me preocupar com isso.
Niel de Beaudrap 16/07/12

Respostas:

6

Suponho que seja possível um algoritmo de tempo linear para a pergunta nº 1) (e se você estiver disposto a lidar com uma representação diferente, um algoritmo de tempo O (1))

Dado qualquer N> = 23, construímos um conjunto fortemente autoportante que contém 1 e N.

Podemos fazer isso facilmente se construirmos o mesmo para N-1 e depois adicionar N ao conjunto resultante.

Para o caso base de 23, podemos começar com seu conjunto de exemplos.

Para diminuir o tamanho, poderemos usar uma abordagem semelhante:

Conjuntos de construções que contêm 1, N and N-1.

Usamos esses conjuntos restritos e fazemos essa construção recursivamente para reduzir o tamanho para O (logN) da seguinte maneira:

  • Se N for par, para construir um conjunto contendo 1, N e N-1, construa recursivamente um conjunto contendo 1, N / 2 e N / 2-1 (ou seja, conjunto correspondente a N / 2) e adicione N e N-1 ao conjunto resultante. Como N-1 = N / 2 + N / 2-1 e N = 1 + N-1, esse é um conjunto válido.

  • Se N for ímpar, construa um conjunto para N-1 e N para o conjunto resultante.

Para os casos base, podemos começar com {−22, −20, −18, −16, −14, −12, −10, −2, 1, 3, 7, 8, 15, 23,24} para N = 24. Para 24 <N <= 47, podemos usar o algoritmo de tempo linear acima e desenvolver o conjunto para N = 24. Para N> = 48, passamos a reduzir pela metade.

De fato, para o composto N, podemos reduzir ainda mais o tamanho necessário para um dos primos pequenos que divide N: encontre um conjunto para o primo pequeno e apenas multiplique todos os números por um fator adequado.

Pode ser interessante provar alguns limites inferiores no caso de N ser primo.

Aryabhata
fonte
+1. Serve-me bem por fazer uma pergunta com muita folga, suponho. Você pode fazer o mesmo com N> 10, é claro. O que nos deixa com a questão de construir conjuntos que são menores que isso (possivelmente de tamanho mínimo, como no # 2).
Niel de Beaudrap 18/08/10
Para sua resposta revisada, diminua o tamanho: Eu não sigo. Entendo que você deseja ter N "suportado" (expresso como uma soma de elementos distintos) como 1 + (N-1). Mas como você "apoia" o N-1, então? --- Além disso: estou mais interessado no tamanho, ou seja, na cardinalidade do conjunto em si, embora limites interessantes em sua representação também possam ser interessantes.
Niel de Beaudrap
@Niel: Eu estava prestes a comment: ver a minha edição :-)
Aryabhata
Considere o caso de N = 46. Então N / 2 = 23; tomamos o exemplo dado na pergunta como o conjunto autossustentável e incluímos N-1 = 45 e N = 46. Como então "apoiamos" N-1 = 45?
Niel de Beaudrap
2
(Você pode considerar mudar seu apelido. Por que não anunciar quem você realmente é? Isso também me permite abordá-lo sem parecer que estou insultando alguém, caso você queira mudar seu apelido mais tarde.)
Niel de Beaudrap,
5

Para N ≥ 10, pode-se construir um conjunto de tamanho fortemente auto-suficiente no máximo onze, da seguinte maneira:

{−N, −N + 2, −N + 4, −2, 1, 3, 4, 5, N-7, N-6, N-5}.

O exemplo mais curto apresentado na pergunta original corresponde ao caso N = 10. Isso está próximo de ser ideal, pois qualquer conjunto fortemente autossustentável deve ter cardinalidade de pelo menos oito .

Assim, o problema é solucionável no tempo O (log (N)) [retomado em operações aritméticas mundanas em N], produzindo um conjunto de cardinalidade entre oito e onze.

A construção desta resposta foi apresentada pela primeira vez na pergunta math.stackoverflow , que também fornece a intuição para a construção. Ainda podemos obter construções menores, por exemplo , igualando o limite inferior de oito para cada N> 9? E os casos de N ∈ {8,9}?

Niel de Beaudrap
fonte