How to find the smallest non-negative integer vector in the null-space of an integer matrix?












0












$begingroup$


Question:



For matrix $mathbf{A} in mathbb{Z}^{mtimes n}$ I would like to find the smallest positive vector in it's null-space $mathcal{N}(mathbf{A})$.
The null-space is defined as:
begin{equation}
mathcal{N}(mathbf{A}) = lbrace mathbf{x} in mathbb{Q}^{n}: mathbf{A}mathbf{x} = mathbf{0}rbrace
end{equation}

I am searching for a vector $mathbf{x}_{min} in mathbb{Z}_+^{n} cap mathcal{N}(mathbf{A}) $ which an arbitrary norm $||.||$. How can I find such a vector?



Additional information:



Although the matrix I am interested in is an integer matrix, I treated it as a linear operator on vectors of rational numbers $mathbf{A}: mathbb{Q}^n rightarrow mathbb{Q}^m$. According to this question $mathbb{Z}$ can't be a vector space over a field.



My guess is that I need to use Gaussian elimination to compute the basis of the null-space. Given the basis vectors I think I need combine them by using a version of least common multiple algorithm. I am not sure how to do this, and whether this will give a minimum vector.



If the choice of the norm matters, please make a choice.










share|cite|improve this question









$endgroup$












  • $begingroup$
    I'm pretty sure this is an active research topic in computer science, meaning any algorithm will either be slow or difficult to describe. It might help if you included some references about how you found the question
    $endgroup$
    – Will Jagy
    Jan 25 at 22:09










  • $begingroup$
    I found this while trying to retrace the steps of a scheduling algorithm for synchronous data flow model of computation. The article describing the scheduling algorithm which includes the above problem is Lee, Messerschmitt: Static Scheduling of Synchronous Dataflow Programs for Digital Signal Processing. It would help me if you could provide any reference which shows either slow or complicated algorithms for the above problem.
    $endgroup$
    – Slaven Glumac
    Jan 25 at 23:22












  • $begingroup$
    I might be able to remember something. I had an original problem which was finding any basis for the integer lattice which is the null space of an integer rectangular matrix. Turns out this is a standard matrix calculation. During that phase, i was looking for algorithms, and kept coming across references, not to the ordinary shortest vector problem (general method LLL, not guaranteed), but mentions of your question kept coming up. I can't quite recall, maybe I can find something.
    $endgroup$
    – Will Jagy
    Jan 26 at 0:06










  • $begingroup$
    en.wikipedia.org/wiki/Lattice_problem
    $endgroup$
    – Will Jagy
    Jan 26 at 0:07










  • $begingroup$
    en.wikipedia.org/wiki/Lattice_reduction
    $endgroup$
    – Will Jagy
    Jan 26 at 0:10
















0












$begingroup$


Question:



For matrix $mathbf{A} in mathbb{Z}^{mtimes n}$ I would like to find the smallest positive vector in it's null-space $mathcal{N}(mathbf{A})$.
The null-space is defined as:
begin{equation}
mathcal{N}(mathbf{A}) = lbrace mathbf{x} in mathbb{Q}^{n}: mathbf{A}mathbf{x} = mathbf{0}rbrace
end{equation}

I am searching for a vector $mathbf{x}_{min} in mathbb{Z}_+^{n} cap mathcal{N}(mathbf{A}) $ which an arbitrary norm $||.||$. How can I find such a vector?



Additional information:



Although the matrix I am interested in is an integer matrix, I treated it as a linear operator on vectors of rational numbers $mathbf{A}: mathbb{Q}^n rightarrow mathbb{Q}^m$. According to this question $mathbb{Z}$ can't be a vector space over a field.



My guess is that I need to use Gaussian elimination to compute the basis of the null-space. Given the basis vectors I think I need combine them by using a version of least common multiple algorithm. I am not sure how to do this, and whether this will give a minimum vector.



If the choice of the norm matters, please make a choice.










share|cite|improve this question









$endgroup$












  • $begingroup$
    I'm pretty sure this is an active research topic in computer science, meaning any algorithm will either be slow or difficult to describe. It might help if you included some references about how you found the question
    $endgroup$
    – Will Jagy
    Jan 25 at 22:09










  • $begingroup$
    I found this while trying to retrace the steps of a scheduling algorithm for synchronous data flow model of computation. The article describing the scheduling algorithm which includes the above problem is Lee, Messerschmitt: Static Scheduling of Synchronous Dataflow Programs for Digital Signal Processing. It would help me if you could provide any reference which shows either slow or complicated algorithms for the above problem.
    $endgroup$
    – Slaven Glumac
    Jan 25 at 23:22












  • $begingroup$
    I might be able to remember something. I had an original problem which was finding any basis for the integer lattice which is the null space of an integer rectangular matrix. Turns out this is a standard matrix calculation. During that phase, i was looking for algorithms, and kept coming across references, not to the ordinary shortest vector problem (general method LLL, not guaranteed), but mentions of your question kept coming up. I can't quite recall, maybe I can find something.
    $endgroup$
    – Will Jagy
    Jan 26 at 0:06










  • $begingroup$
    en.wikipedia.org/wiki/Lattice_problem
    $endgroup$
    – Will Jagy
    Jan 26 at 0:07










  • $begingroup$
    en.wikipedia.org/wiki/Lattice_reduction
    $endgroup$
    – Will Jagy
    Jan 26 at 0:10














0












0








0





$begingroup$


Question:



For matrix $mathbf{A} in mathbb{Z}^{mtimes n}$ I would like to find the smallest positive vector in it's null-space $mathcal{N}(mathbf{A})$.
The null-space is defined as:
begin{equation}
mathcal{N}(mathbf{A}) = lbrace mathbf{x} in mathbb{Q}^{n}: mathbf{A}mathbf{x} = mathbf{0}rbrace
end{equation}

I am searching for a vector $mathbf{x}_{min} in mathbb{Z}_+^{n} cap mathcal{N}(mathbf{A}) $ which an arbitrary norm $||.||$. How can I find such a vector?



Additional information:



Although the matrix I am interested in is an integer matrix, I treated it as a linear operator on vectors of rational numbers $mathbf{A}: mathbb{Q}^n rightarrow mathbb{Q}^m$. According to this question $mathbb{Z}$ can't be a vector space over a field.



My guess is that I need to use Gaussian elimination to compute the basis of the null-space. Given the basis vectors I think I need combine them by using a version of least common multiple algorithm. I am not sure how to do this, and whether this will give a minimum vector.



If the choice of the norm matters, please make a choice.










share|cite|improve this question









$endgroup$




Question:



For matrix $mathbf{A} in mathbb{Z}^{mtimes n}$ I would like to find the smallest positive vector in it's null-space $mathcal{N}(mathbf{A})$.
The null-space is defined as:
begin{equation}
mathcal{N}(mathbf{A}) = lbrace mathbf{x} in mathbb{Q}^{n}: mathbf{A}mathbf{x} = mathbf{0}rbrace
end{equation}

I am searching for a vector $mathbf{x}_{min} in mathbb{Z}_+^{n} cap mathcal{N}(mathbf{A}) $ which an arbitrary norm $||.||$. How can I find such a vector?



Additional information:



Although the matrix I am interested in is an integer matrix, I treated it as a linear operator on vectors of rational numbers $mathbf{A}: mathbb{Q}^n rightarrow mathbb{Q}^m$. According to this question $mathbb{Z}$ can't be a vector space over a field.



My guess is that I need to use Gaussian elimination to compute the basis of the null-space. Given the basis vectors I think I need combine them by using a version of least common multiple algorithm. I am not sure how to do this, and whether this will give a minimum vector.



If the choice of the norm matters, please make a choice.







linear-algebra vector-spaces






share|cite|improve this question













share|cite|improve this question











share|cite|improve this question




share|cite|improve this question










asked Jan 25 at 20:17









Slaven GlumacSlaven Glumac

11811




11811












  • $begingroup$
    I'm pretty sure this is an active research topic in computer science, meaning any algorithm will either be slow or difficult to describe. It might help if you included some references about how you found the question
    $endgroup$
    – Will Jagy
    Jan 25 at 22:09










  • $begingroup$
    I found this while trying to retrace the steps of a scheduling algorithm for synchronous data flow model of computation. The article describing the scheduling algorithm which includes the above problem is Lee, Messerschmitt: Static Scheduling of Synchronous Dataflow Programs for Digital Signal Processing. It would help me if you could provide any reference which shows either slow or complicated algorithms for the above problem.
    $endgroup$
    – Slaven Glumac
    Jan 25 at 23:22












  • $begingroup$
    I might be able to remember something. I had an original problem which was finding any basis for the integer lattice which is the null space of an integer rectangular matrix. Turns out this is a standard matrix calculation. During that phase, i was looking for algorithms, and kept coming across references, not to the ordinary shortest vector problem (general method LLL, not guaranteed), but mentions of your question kept coming up. I can't quite recall, maybe I can find something.
    $endgroup$
    – Will Jagy
    Jan 26 at 0:06










  • $begingroup$
    en.wikipedia.org/wiki/Lattice_problem
    $endgroup$
    – Will Jagy
    Jan 26 at 0:07










  • $begingroup$
    en.wikipedia.org/wiki/Lattice_reduction
    $endgroup$
    – Will Jagy
    Jan 26 at 0:10


















  • $begingroup$
    I'm pretty sure this is an active research topic in computer science, meaning any algorithm will either be slow or difficult to describe. It might help if you included some references about how you found the question
    $endgroup$
    – Will Jagy
    Jan 25 at 22:09










  • $begingroup$
    I found this while trying to retrace the steps of a scheduling algorithm for synchronous data flow model of computation. The article describing the scheduling algorithm which includes the above problem is Lee, Messerschmitt: Static Scheduling of Synchronous Dataflow Programs for Digital Signal Processing. It would help me if you could provide any reference which shows either slow or complicated algorithms for the above problem.
    $endgroup$
    – Slaven Glumac
    Jan 25 at 23:22












  • $begingroup$
    I might be able to remember something. I had an original problem which was finding any basis for the integer lattice which is the null space of an integer rectangular matrix. Turns out this is a standard matrix calculation. During that phase, i was looking for algorithms, and kept coming across references, not to the ordinary shortest vector problem (general method LLL, not guaranteed), but mentions of your question kept coming up. I can't quite recall, maybe I can find something.
    $endgroup$
    – Will Jagy
    Jan 26 at 0:06










  • $begingroup$
    en.wikipedia.org/wiki/Lattice_problem
    $endgroup$
    – Will Jagy
    Jan 26 at 0:07










  • $begingroup$
    en.wikipedia.org/wiki/Lattice_reduction
    $endgroup$
    – Will Jagy
    Jan 26 at 0:10
















$begingroup$
I'm pretty sure this is an active research topic in computer science, meaning any algorithm will either be slow or difficult to describe. It might help if you included some references about how you found the question
$endgroup$
– Will Jagy
Jan 25 at 22:09




$begingroup$
I'm pretty sure this is an active research topic in computer science, meaning any algorithm will either be slow or difficult to describe. It might help if you included some references about how you found the question
$endgroup$
– Will Jagy
Jan 25 at 22:09












$begingroup$
I found this while trying to retrace the steps of a scheduling algorithm for synchronous data flow model of computation. The article describing the scheduling algorithm which includes the above problem is Lee, Messerschmitt: Static Scheduling of Synchronous Dataflow Programs for Digital Signal Processing. It would help me if you could provide any reference which shows either slow or complicated algorithms for the above problem.
$endgroup$
– Slaven Glumac
Jan 25 at 23:22






$begingroup$
I found this while trying to retrace the steps of a scheduling algorithm for synchronous data flow model of computation. The article describing the scheduling algorithm which includes the above problem is Lee, Messerschmitt: Static Scheduling of Synchronous Dataflow Programs for Digital Signal Processing. It would help me if you could provide any reference which shows either slow or complicated algorithms for the above problem.
$endgroup$
– Slaven Glumac
Jan 25 at 23:22














$begingroup$
I might be able to remember something. I had an original problem which was finding any basis for the integer lattice which is the null space of an integer rectangular matrix. Turns out this is a standard matrix calculation. During that phase, i was looking for algorithms, and kept coming across references, not to the ordinary shortest vector problem (general method LLL, not guaranteed), but mentions of your question kept coming up. I can't quite recall, maybe I can find something.
$endgroup$
– Will Jagy
Jan 26 at 0:06




$begingroup$
I might be able to remember something. I had an original problem which was finding any basis for the integer lattice which is the null space of an integer rectangular matrix. Turns out this is a standard matrix calculation. During that phase, i was looking for algorithms, and kept coming across references, not to the ordinary shortest vector problem (general method LLL, not guaranteed), but mentions of your question kept coming up. I can't quite recall, maybe I can find something.
$endgroup$
– Will Jagy
Jan 26 at 0:06












$begingroup$
en.wikipedia.org/wiki/Lattice_problem
$endgroup$
– Will Jagy
Jan 26 at 0:07




$begingroup$
en.wikipedia.org/wiki/Lattice_problem
$endgroup$
– Will Jagy
Jan 26 at 0:07












$begingroup$
en.wikipedia.org/wiki/Lattice_reduction
$endgroup$
– Will Jagy
Jan 26 at 0:10




$begingroup$
en.wikipedia.org/wiki/Lattice_reduction
$endgroup$
– Will Jagy
Jan 26 at 0:10










0






active

oldest

votes











Your Answer





StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "69"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3087577%2fhow-to-find-the-smallest-non-negative-integer-vector-in-the-null-space-of-an-int%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Mathematics Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


Use MathJax to format equations. MathJax reference.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3087577%2fhow-to-find-the-smallest-non-negative-integer-vector-in-the-null-space-of-an-int%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Mario Kart Wii

What does “Dominus providebit” mean?

File:Tiny Toon Adventures Wacky Sports JP Title.png