2

Suppose that I make a new algorithm to calculate something. How do I know that the exact algorithm has been found or not? I know that I can check scientific journals to figure that out. But surely checking every single journals available is not a feasible way to figure that out, especially since I'll have to read them before I can tell whether they use the same algorithm or not as the title can only tell the general idea of how the calculation is done. Also many journals requires one to subscribe or pay for their service. It'd be ridiculus to pay huge sum of money just to ensure whether my algorithm has been found or not.

So, how do I figure whether a certain algorithm has been found or not?

  • 3
    a new algorithm to calculate something Did you use that something as the key to search for the algorithm? – scaaahu Nov 8 '16 at 11:48
  • Like I said, I can search for a certain something in the journals. But the problem is that if it is something common, like let's say, an algorithm to predict trend, I'd have hundreds of papers returned by the search engine and that is just from one journal. Access to those journals ain't free, most of the time. Or, if they are free, they are limited to only the abstract, you'd have to pay to see the content. And I never saw someone writing the exact formula in the abstract. So the only way for me to figure if it has been found would be to buy all those journals. Not feasible, right? – 絢瀬絵里 Nov 8 '16 at 12:00
  • I would do two types of searches, for the problem and for the solution approach. Look for any paper in either area, and then do reference searches for related papers. Try to get access to a university library. – Patricia Shanahan Nov 8 '16 at 12:35
  • You need to talk to your university library about Access to those journals ain't free, most of the time. They should be able to give you free access. – scaaahu Nov 8 '16 at 13:16
  • 4
    But the problem is that if it is something common, like let's say, an algorithm to predict trend — If it's something common, you can safely assume that it has already been discovered. If it's something very common, the correct citation is likely "folklore", which means "so completely standard that nobody remembers where it came from, but any expert in the field would consider obvious." – JeffE Nov 8 '16 at 16:03
9

I'm afraid I have bad news:

Unless you are writing algorithms for entirely new scientific areas, you can safely assume that every algorithm anyone can come up without being familiar with the literature is either (i) already known, or (ii) inferior to already known algorithms. In other words, since you don't seem to be familiar with the literature in your field, I would think that the chances for your algorithm to be new and better are slim. It may of course be new, but inferior to existing methods, in which case it's not useful.

(The reason for this is that people who are familiar with the literature, have been thinking about these issues for a long time, and know about the limitations of the existing methods, are most likely to come up with improvements. It is unlikely that people who are not familiar with an area waltz in, come up with something, and it turns out to be better than what all of the experts have come up with. It probably happens every once in a while, but it's unlikely.)

This doesn't help you find out whether your algorithm has been found so far. But it helps you determine whether it's worthwhile pursuing this further -- which it is likely not. You are probably better off spending your time reading the literature in the field to understand what others have been doing, what the limitations of existing algorithms are, etc.

2

To answer your question: the only way to know whether your algorithm has been published before is doing a literature search. You will eventually have to do this, anyway. No paper with an empty references section will be published, unless it is a truly extraordinary paper defining a new field of science.

But, I may have some good news for you. The other accepted answer conveyed bad news that your algorithm most likely has been published already. I have invented in the last two years three algorithms for which my literature search has not found prior art. The algorithms were invented before knowing the literature of the field, and I only did the literature search later to find out if the algorithms were novel. Not only that, but all of the algorithms are practically as simple as or simpler than the prior art. Two of the algorithms are 10x faster than prior art; the remaining one of them 2x faster for sorted data but 2x slower for unsorted data. I intend to publish the first paper about one of the 10x faster algorithms in a conference the next summer.

So, I would not omit doing the literature search merely based on the bad news of the accepted answer that your work most likely has been published already (yes, I know the other answer encouraged you to do a literature search but on the other hand presented it as "bad news"). You should, however, avoid calling your algorithm "novel" if the literature search failed to find prior art, because there is always a possibility of somebody already knowing your algorithm. And, if the paper is only about that algorithm, then it is expected by the reader that the algorithm is novel, so why mention it explicitly?

In order to publish your paper, you must obviously have heavy supporting evidence for the performance of your algorithm in comparison to the prior art. How fast it is? Does it parallelize? If so, what is the performance as a function of the CPU core count? If the literature search finds prior art, perhaps you could anyway publish your performance measurement results. After all, a thorough analysis of the real-world performance of various already known algorithms might be something that has been missing. But, getting a performance comparison paper accepted without containing a novel algorithm is obviously harder than getting a paper about a novel algorithm accepted, so you should do the literature search as early as possible in order to know which direction to take.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.