Section titles are approachable and it has figures and graphics with geometric ideas.
It's about a formula (another word for algorithm) for computing the determinant, it's not like they shat a new theorem in category theory.
And however higher-mathy that may be, a link to a chunk of python code implementing the formula certainly would not have been detrimental to the paper.
Unless of course all of the other higher math folks would look down upon a despicable math researcher that would dare spoil a perfectly honorable higher math research paper by adding disgustingly usable code to it.
Think of the insult!
People could even get down to running the code just to check that the formula actually works !
Ivory tower much ?
They're certainly not above writing code. You seem to have missed the appendix, where they wrote some to prove that their bound on the tensor rank of 4x4 determinants over GF2 is exactly 12. https://gitlab.com/apgoucher/det4f2
Also, a formula is not an algorithm. You can oftentimes extract an algorithm from a formula, but the value of a formula in pure math is to be able to write something in a different way. Formulas reveal structure that (hopefully) can be exploited when solving other problems.
> People could even get down to running the code just to check that the formula actually works !
This is an interesting perspective, but you have to take into account that papers are written for some audience in mind -- this one is written for combinatorialists (hence the math.CO designation on the arXiv). It's not too hard of an exercise to plug this formula into Mathematica for this audience. But also, this audience would rather see a proof than computational evidence.
Huh? Some differences:
- A formula says nothing about evaluation order, sometimes not even about evaluation (example: where’s the algorithm in e^(iπ) -1 = 0?)
- the computations that an algorithm makes cannot always be expressed in a closed-form expression (example: what’s the formula for quicksort?)
A formula is “a concise way of expressing information symbolically” (https://en.wikipedia.org/wiki/Formula)
They are not the same - there's plenty of formulas for which there is no algorithm, and even proofs in complexity theory proving there can never be an algorithm.
Algorithms merely formalize a tiny subset of math as things which are computable via a step by step process, and modern computers grew out of exactly the question of what things are computable. Turns out not much compared to the space of all "things."
Start here to learn more https://en.wikipedia.org/wiki/Computable_function
The higher math researchers usually pay for it being less accessible, because the first engineering paper that uses their works gets cited a lot more.
But that also leads to cargo-cult engineering, where the first implementation of the paper just gets copied around without understanding (e.g. if there are limitations/assumptions).
Yeah, the margin was probably not wide enough.
First of all, to clear up a possible misunderstanding: this new formula will not help you to compute determinants more quickly. The number of terms still grows a lot faster than polynomial, and if you just want to compute the determinant, there are polynomial-time algorithms for that.
The best theoretical results on the complexity of computing determinants, that I know of, are in [0]. In practice you'd probably use Gaussian elimination, or maybe Bareiss for integers.
Someone complained that there’s no code in the paper. Since it isn’t really useful for practical computation, I didn’t think code would be useful, but in fact it did start as a Mathematica program when I first discovered it. Adam Goucher (one of my co-authors) wrote a blog post on it [1] within a few days of its discovery, which links to my original Mathematica notebook.
(Edit: ur-whale points out that the link to the Mathematica notebook no longer works. I have now republished it at [2].)
[0] https://users.cs.duke.edu/~elk27/bibliography/04/KaVi04_2697...
[1] https://cp4space.hatsya.com/2022/07/02/a-combinatorial-proof...
[2] https://www.wolframcloud.com/obj/robin.houston/Published/det...
That was me, apparently much to the dislike of a number of HNers :)
Thank you very much for the pointer to the notebook although it is not easy to access, you seem to need a Wolfram account to get to it.
[EDIT]: "Sorry, you do not have permission to access this item." after I logged into Wolfram ...
> Since it isn’t really useful for practical computation, I didn’t think code would be useful
This is a very common misconception.
There is a large category of people out there (software engineers among other) that find it much easier to read code than reading abstract math formulas full of weird greek letters and which typically pre-suppose what the reader does and doesn't know (things that are considered "trivial" by the author and not worth mentioning in the paper is often a huge obstacle for the reader to proceed with understanding what goes on).
Code is explicit to the degree that a machine can execute it, and therefore often way easier as a path to understanding an idea.
Publishing code also has the minor benefits of actually exposing things that are claimed to work but often don't - again because a machine can execute it whereas a math formula in a PDF does not have that nice property.
I’ve just republished it at https://www.wolframcloud.com/obj/robin.houston/Published/det...
I’d be interested to know whether the code _does_ make it easier for you to understand.
They'll also reject you for having too much discussion and explanation. Now that almost all "papers" are PDFs and we don't have to worry about printing costs, I worry that the expected brevity in math is just elitism. Sure, if you're one of the six experts in the sub sub subfield the paper concerns itself with, the brevity is welcome, but for everyone else...
I'm just jazzed to see a math paper in my wheelhouse on the front page of HN.
The standard formula for determinants of an n×n matrix (equation 1 in the paper) is the sum of n! terms, one term for each permutation of {1..n}.
The paper details a method (equation 11) in which the sum is instead over all what they call »partial partitions of {1..n}«, denoted PP(n). I don’t know the size of PP(n), but if their claim is correct then PP(n) has exponentially less elements than S(n) (which has n! elements). I don’t see the value of |PP(n)| in the paper, but if it’s O(n^42), that would be an example of something that’s superexponentially smaller/faster. (n! is approximately n^n/e^n, the Stirling Formula.)
There’s a bit of a subtlety here, which is that the formula evaluates to zero whenever the partial partition contains a singleton. For example, the partial partitions of {1,2,3} are:
{}
{1}
{2}
{3}
{1, 2}
{1, 3}
{2, 3}
{1, 2, 3}
{1, 2} | {3}
{1, 3} | {2}
{1} | {2, 3}
{1} | {2} | {3}
but most of these contain a part that only has one element. For example {1} | {2, 3} has the singleton part {1}. Only five of them have no singleton part: {}
{1, 2}
{1, 3}
{2, 3}
{1, 2, 3}
(In fact all five of these consist of just a single part, but that’s just an artifact of using such a small example. If there are more than three elements then we can have things like {1, 2} | {3, 4}.)In general the number of partial partitions of n elements that have no singleton parts is the n’th Bell number[0]. The Bell numbers grow much more slowly than the factorials, but still much faster than any polynomial.
FYI, The Bareiss algorithm can calculate the determinant in polynomial time, including bounding the bit complexity to polynomial space [0].
Their formula express det. with B_n = exp( n ln n - n lnln n - O(n)) terms.
The old formula had exp(n ln n - O(n)) terms.
It's a nice bound, but won't change much for non-theoretical results.