Talk:Nondeterministic algorithm

message: In the intro, "a nondeterministic algorithm is an algorithm with one or more choice points where multiple different continuations are possible". What's a choice point? What's a continuation?
:I don't know how to address this comment.  If anyone else feels it should be clarified, please do. Rp 16:06, 20 October 2007 (UTC)
thread_title: Untitled

message: Wow, there's about 1.2 zillion different types of nondeterministic algorithms (if you include things like stochastic methods, etc).  This article is in need of serious attention.  Perhaps I'll have to see to that! - 172.133.246.35 06:42, 2 December 2006 (UTC)
replies: text: I think it's better to discuss stochastic methods separately, and link to them here. Rp  —Preceding comment was added at 16:02, 20 October 2007 (UTC)
thread_title:  In need of massive work 

message: In the example "Primality testing" the "Guess an integer..." part of a concrete program/implementation can only use a random number generator to get the job done. Does this mean, that "nondeterministic" and "probabilistic deterministic" are the same in this instance?
: It is not the same thing.  A probabilistic algorithm is an algorithm in which nondeterminism is resolved by the use of probability.  You don't just say that multiple choices are possible, you also give the likelihood for each of the choices to be made. Rp 18:54, 19 October 2007 (UTC)
replies: text:  I removed another sentence from that example which maintained the suggestion that nondeterminism and random choice are the same.  Rp (talk) 20:15, 30 March 2009 (UTC)
thread_title:  Is "nondeterministic algorithm" and "probabilistic deterministic algorithm" the same? 

message: Can anyone explain why the merge with nondeterminstic programming is a good idea? Or OK if I just remove the merge tags? Sam Staton 16:20, 8 October 2007 (UTC)
replies: text: The term "nondeterministic programming" feels like a contradiction to me. We don't usually combine these two words, even though it makes sense to do so. Rp 18:55, 19 October 2007 (UTC)

text: I have also read the article.  It's too sketchy but it does seem to have merit, as far as I can tell (I am not familiar with the systems mentioned).  I think merging it here would be a bad move, because this article is about the idea of a nondeterministic algorithm, which is separate from the idea of actually programming systems in terms of them. Rp 15:59, 20 October 2007 (UTC)
thread_title: Merge

message: Examples 2-4 leave a reader with no clue why they describe nondeterministic algorithms, each for its own reason I don't even want to start explaining. Is there an expert in the subject who can do a decent job here?
:I don't think of merge sort as a nondeterministic algorithm at all. Example #4 is an algorithm, but not for the problem described. I'm a logician though, not a computer scientist, and they are known to be sufficiently bad with they terminology that I am reluctant to edit too much without having reference to a CS text, which I don't. — Carl (CBM · talk) 23:59, 26 April 2010 (UTC)
replies: text: I think all the examples on the page are terrible. Can we just delete all of them? None of them seem to exhibit nondeterminism in the sense of nondeterministic Turing machines or a nondeterministic finite-state machine. --Robin (talk) 02:52, 27 April 2010 (UTC)
replies: text: I agree with that. My only concern is that maybe the term "nondeterministic algorithm" is used more generally in CS, not just referring to automata. — Carl (CBM · talk) 11:07, 27 April 2010 (UTC)
replies: text: I checked the incoming links to the page, and it looks like there are two different meanings of the words "non-determinism" that both link to this page. The first is in the sense of non-deterministic TMs, and the second meaning seems to be anything that is not deterministic (which could mean a random choice, or a choice where the user is not told how the choice is made). This page should probably then reflect these two meanings, or have one of them redirect to a different page. --Robin (talk) 13:06, 27 April 2010 (UTC)
replies: text:  If you want to write an article about nondeterministic automata, call it Nondeterministic automaton. If you think the examples are wrong, improve them or at least explain what's wrong so it can be fixed by others. Rp (talk) 08:42, 4 May 2010 (UTC)
replies: text: I can tell you what I think is wrong: I have never heard the word "nondeterministic algorithm" used to specify an algorithm that is simply underdefined, as in the merge sort example on this article.  As far as I can tell, with the way this article uses its terminology, "put the elements in order" is an example of a nondeterministic sort algorithm. Compare the "shopping list" example. It's hard for me to call these "algorithms" in any sense. — Carl (CBM · talk) 11:32, 4 May 2010 (UTC)
replies: text: I think you have a point - the term isn't commonly used in such a wide sense.  But I can't see how to make a good definition that would exclude such examples. Rp (talk) 07:58, 8 June 2010 (UTC)
thread_title:  examples 

message: There are many algorithms that may make an arbitrary choice at some point that are not considered nondeterministic by any source I'm aware of. In nearly any search, there is a choice of which node to visit next, but that does not make the search nondeterministic. In quicksort, any element may be chosen as the partition, but that does not make quicksort nondeterministic. According to CLRS, a multithreaded algorithm is nondeterministic if its behavior might vary from run to run. That is, the algorithm makes a choice, and on different runs that choice may differ. In other words, the exact behavior of the algorithm cannot be determined ahead of time. I will rework this article entirely unless someone can come up with a source that contains a different definition. -- Schapel (talk) 17:08, 16 August 2011 (UTC)
thread_title:  Nondeterministic doesn't mean an algorithm that makes choices