Estou olhando para o seguinte problema:
Dados vetores dimensionais dos números naturais e algum vetor de entrada , é uma combinação linear dos com coeficientes numéricos naturais? u u v i
ou seja, existem alguns que ? u = t 1 v 1 + ⋯ + t m v m
Obviamente, a versão em número real desse problema pode ser resolvida usando a eliminação gaussiana. Gostaria de saber, a versão inteira deste problema foi estudada? Quais algoritmos existem para resolvê-lo?
Observe que isso está usando números naturais, mas não aritmética modular; portanto, isso é um pouco separado do Teorema Chinês do Restante e de sistemas como esse. Além disso, parece relacionado a equações diofantinas, mas estou me perguntando o que foi feito no caso em que apenas números inteiros não negativos são considerados? Isso também lembra um problema multidimensional de soma de subconjuntos, generalizado para nos permitir obter um número arbitrário de cópias de cada vetor. Também parece relacionado a testar se é um elemento da rede gerada por , exceto que aqui permitimos apenas combinações lineares com coeficientes não negativos.
Para qualquer pessoa interessada, isso é motivado examinando se um vetor Parikh está em um conjunto linear, como no Teorema de Parikh .
Em particular, estou interessado em um algoritmo que poderia resolver o problema usando apenas operações com números naturais, evitando entrar nos números reais / de ponto flutuante.
Respostas:
Seu problema é NP-completo, por redução do Subset Sum (está em NP, pois o fato de tudo não ser negativo limita suficientemente bem os coeficientes da solução). Dada uma instância da soma do subconjunto (existe um subconjunto de soma a ?), Construímos uma instância do seu problema da seguinte maneira. Para cada , colocamos como o vetor com duas entradas diferentes de zero: e e para ser o vetor com uma entrada diferente de zero . O vetor de destino éS T v 1 , … , v 2 n , u 1 ≤ i ≤ n v i v i , i = 1 v i , n + 1 = s i v n + i v n + i , i = 1 u =S={s1,…,sn},T S T v1,…,v2n,u 1≤i≤n vi vi,i=1 vi,n+1=si vn+i vn+i,i=1 v 1 , … , v 2 n 1 , … , 1 , ∗ v i , v n + i Su=1,…,1,T . Cada combinação natural de igual a deve selecionar exatamente um de cada um de e, assim, codifica um subconjunto de cuja soma é o valor do último componente.v1,…,v2n 1,…,1,∗ vi,vn+i S
fonte