Talk:Randomized algorithm

Comment on "Motivation"
"Find an 'a' in the array" is not an output. Possible outputs would be a boolean (" 'a' found") or 'a' itself.

"findingA_LV(array A, n)" has no output.

The behaviour of "findingA_MC(array A, n, k)" is independent of 'a'.

I am not editing because I do not know what is intended, am ignorant of the subject, which is why I looked this up. — Preceding unsigned comment added by 82.210.108.5 (talk) 15:43, 8 December 2011 (UTC)

Merger proposal
Needs to be merged with randomized algorithms. Fredrik 09:33, 10 Mar 2004 (UTC)

Possible minor mistake in the Miller-Rabin primality test ?
Shouldn't the probability in the article: (3/4)100 be (1/4)100, according to the 3 propositions of the Miller-Rabin test, since the probability of not picking a witness each iteration is 1/4?


 * Yes, it should have been (1/4)100. Corrected now. Andris 15:29, Jun 28, 2004 (UTC)

Nonterminating "algorithm"?
I am told by my theoretical Computer Science teacher that an algorithm is not an algorithm if it doesn't end (please see the wikipedia page about Algorithm: "given an initial state, will terminate in a corresponding recognizable end-state". So the side-note "(possibly nonterminating) algorithm" doesn't make sense. But I don't know enough about this to make an edit.

No, algorithms that do not terminate are still algorithms.


 * There are two possible definitions of the term 'probabilistic algorithm'. See my addition to the intro section and cited books. Qwertyus (talk) 00:50, 28 April 2009 (UTC)

pseudorandom number generator?
In the first paragraph, the sentence: this means that the machine implementing the algorithm has access to a pseudorandom number generator. - does it really matter if the random number generator is pseodorandom? Would an algorithm which used a Hardware random number generator, not be classed as a randomized algorithm? If so, then this line should be changed to ' a source of random numbers'...
 * The statement was oddly placed and unclear; it said "in common practice" and is describing how they're typically implemented, as opposed to defining "randomized algorithm." In fact, a program based on a PRNG isn't a randomized algorithm at all but a deterministic approximation of one, so this was quite misleading. Dcoetzee 04:30, 4 December 2008 (UTC)
 * After reading the paragraph In common practice, randomized algorithms are approximated using a pseudorandom number generator in place of a true source of random bits; such an implementation may deviate from the expected theoretical behavior., I thought a reference is missing, did anyone found a reference, or is willing to re-write or remove it. As a non-english native I don't think I am able to write an understandable and grammatically correct part, in addition I am not fimilar enough with theoretical informatics. - Have a nice day, -- 12:50, 7 June 2014 (UTC)~ — Preceding unsigned comment added by 178.190.51.123 (talk)

Where randomness helps
Another example that could be added to the list Randomized algorithm: Symmetry breaking in distributed computing. As a trivial example, leader election in a symmetric, anonymous network is impossible without randomness. — Miym (talk) 00:04, 29 November 2009 (UTC)

Relevance of Prisoner's Dilemma
I don't pretend to have a deep understanding of randomized algorithms, but the invocation of the Prisoner's Dillema in the "Motivation" section makes little sense to me: "Randomized algorithms are particularly useful when faced with a malicious "adversary" or attacker who deliberately tries to feed a bad input to the algorithm (see worst-case complexity and competitive analysis (online algorithm)) such as in the Prisoner's dilemma." I don't think the Prisoner's Dilemma is at all an example of what the sentence is talking about (another party passing particular data to an algorithm, hoping to make it work as hard as possible). Am I missing something? Dindon (talk) 04:58, 16 December 2009 (UTC)

Motivation
I don't understand why the Monte Carlo algorithm does not care about finding an 'a' and how we'd use it in practice. Should we always run it k times in a row and then have a look at what has been found (after each iteration? or just at the k^th)? Or is a stop condition based on the value selected at each iteration missing?134.58.45.79 (talk) 15:27, 22 September 2010 (UTC)

History section
From the history section: «[...] since with a little care the probability of error can be made astronomically small.» Astronomically small... I don't know what that's supposed to mean. Maybe rewrite to negligible or something like that? 84.226.128.111 (talk) 00:22, 6 January 2012 (UTC)

motivation
''In cryptographic applications, pseudo-random numbers cannot be used, since the adversary can predict them, making the algorithm effectively deterministic. Therefore either a source of truly random numbers or a cryptographically secure pseudo-random number generator is required.''

The first sentence contradicts the second. Cryptographically secure pseudo-random numbers are still pseudo-random numbers. Get plenty of rest before editing, unless stupidity is the main problem, then try banging your head on the wall. — Preceding unsigned comment added by 24.151.242.14 (talk) 19:42, 13 January 2014 (UTC)

Remove a questionable remark on the effectivity
I made a change (forgot to log in before...) where I removed a remark on the *effectivity* of a Monte Carlo algorithm. It said that when the answer may be wrong (Monte Carlo algorithm), this is not an algorithm anymore. I do not know any reference pretending this, and on the contrary modern presentations of algorithms mention randomized algorithms (of any sort) as perfectly valid algorithms. The citation to justify the sentence was the following:


 * Probabilistic algorithms should not be mistaken with methods (which I refuse to call algorithms), which produce a result which has a high probability of being correct. It is essential that an algorithm produces correct results (discounting human or computer errors), even if this happens after a very long time.
 * H. Cohen (2000). A course in computational number theory. Springer-Verlag, p2.

However, this citation was misunderstood. The end of the paragraph is an example of a "non-algorithmic method" in the words of Cohen. It explains a pseudo-primality test (to test whether N is prime, test whether 2N-1 = 1 mod N) which fails for N = 341 for instance. This method indeed is not an algorithm. But it has nothing to do with a Monte Carlo algorithm! It uses no randomness, and consistently fails for some input. -- B!Gre (talk) 15:02, 2 September 2019 (UTC)

probabilistic algorithm
Today probabilistic algorithm is a redirect to randomized algorithm.

I feel that to comply with the WP:R guideline, this article needs to specifically spell out the relationship between probabilistic algorithms and randomized algorithms. Are they the same (interchangeable synonyms)? If not, exactly what is the difference between a probabilistic algorithm and a randomized algorithm? --DavidCary (talk) 03:43, 26 December 2020 (UTC)

"Adversarial input" listed at Redirects for discussion
A discussion is taking place to address the redirect Adversarial input. The discussion will occur at Redirects for discussion/Log/2021 May 13 until a consensus is reached, and readers of this page are welcome to contribute to the discussion. KnowledgeablePersona (talk) 04:56, 13 May 2021 (UTC)

First algorithm
after looking some myself, I see what you may be talking about on this stackexchange question:. It seems like some actual qualified author is making the case for Pocklington. The problem is that it's rather difficult to cite. If we could find this "Factoring Integers before Computers" book then we'd be in business, but so far I can only find mentions of the publication. It would also help if anyone was able to verify what's in the "Closest point problems in computational geometry" source that we currently reference. Sadly that ref was added by an IP editor almost a decade ago.&#32;-- Fyrael (talk) 21:46, 18 April 2022 (UTC)


 * Let me make two points in response:
 * (1) There is already a Wikipedia page for the Pocklington algorithm, and the Wikipedia page includes a trial-and-error step, which succeeds with 50% probability on each attempt (although that page could do a better job calling that out). So there is already clear precedent on Wikipedia for the history of the algorithm I am referring to.
 * (2) Regardless, it's just not okay to have the history in its current form, since nobody can reasonably claim that the first randomized algorithm was in the 1970s. (Rabin's algorithm was 1976, if it's the algorithm that is referred to on the Wikipedia page for the Closest Pair of Points problem). At the very least, Quicksort comes earlier (1961).
 * As I see it, the current form of the page is clearly wrong. And my proposed edit is backed up by the Wikipedia page for Pocklington's algorithm. But, no matter what, we need to do something about the current page.
 * So what should we do?
 * Thanks for your help Swordyfish (talk) 22:11, 18 April 2022 (UTC)
 * At the very least, not counting sampling methods for estimating statistical information, the idea of approximately solving optimization problems by randomly sampling solutions and keeping the best sample found appears explicitly in "Algorithms for solving production-scheduling problems", Giffler & Thompson, 1960. (There's also much earlier work on algorithms with random data and on algorithms for generating random numbers, but that's different from the idea of using random methods for nonrandom inputs.) —David Eppstein (talk) 00:36, 19 April 2022 (UTC)
 * I'm honestly pretty out of my depth here. I only came across this on recent changes patrol and saw someone doing their own research and replacing what looked like a well-sourced statement with an unsourced one. Sadly it's looking like this was probably a falsely sourced bit of content. I won't object to any further changes any of you implement.&#32;-- Fyrael (talk) 03:45, 19 April 2022 (UTC)
 * I restored the pointer to Pocklington's algorithm, with a proper source (the one cited in the forum link). The other comments at the forum make me wary of stating outright that it is the first known randomized algorithm, but I did include a quote from the source suggesting that it may be. —David Eppstein (talk) 05:20, 19 April 2022 (UTC)