-3

I need a simple description of nondeterministic algorithms . Can we comapre nondeterministic algorithm with computer with parrallel processor? please someone exactly explain me about nondeterministic algorithms

amir amir
  • 3,375
  • 7
  • 26
  • 29
  • 1
    Have you tried the [Wikipedia article](http://en.wikipedia.org/wiki/Non-deterministic_algorithm)? – Kerrek SB Aug 18 '11 at 11:17
  • Defenitly, ssomeone that ask question in the StackOverFlow searches in Google and read some article about it and if he didn't understand then ask his question in StackOverFlow,And I don't understand why someone give to this person negative point. – amir amir Aug 18 '11 at 11:28
  • 1
    (I didn't downvote this.) Well, if you've read the article, which I think is pretty clear, perhaps you could be more specific about which points you don't understand? "please someone exactly explain me about nondeterministic algorithms" is not a very good question, it's very hard to give a precise, succinct answer that isn't a maths textbook. – Kerrek SB Aug 18 '11 at 11:41
  • I think the problem with the wiki article it refers to both concepts of non-deterministic algorithms without distinguishing between them too much, the theoretical [non deterministic turing machines] and the practical [processing is done in non deterministic order], this is what me and aioobe were arguing about, and I think the wiki page does not distinguish well between them. – amit Aug 18 '11 at 11:51
  • p.s. the question is perfectly clear, when read on the context of the tags. – amit Aug 18 '11 at 12:53

1 Answers1

2

a non deterministic algorithm is an algorithm ran on a non deterministic turing machine.
each calculation in this algorithm can branch into 2 calculations, which are computed simultaneously.

none deterministic algorithm example:
Set Cover: "guess" a subset of the vertices, and check if it is a valid cover.
the guessing is: for each element: check one possibility it IS in the set and it is NOT in the set.

It is not parallel processor, because in here (nondeterministic algorithm), the number of branches is not limited, while in parallel processor it is. In parallel computing, you are still bounded to do the 2^n OPs for finding vertex coverage, while in nondeterministic algorithm, you are doing only n ops, with n different branches.

a non-deterministic machine would be more like quantum computer, than parallel processing. [note that quantum computer is still 'weaker' then non-deterministic turing machine, assuming P!=NP, of course].

Anirudh Ramanathan
  • 46,179
  • 22
  • 132
  • 191
amit
  • 175,853
  • 27
  • 231
  • 333
  • *the number of branches is not limited* has absolutely nothing to do with non-determinism. As I said below my answer, a random choice between *two* branches yields a non-deterministic algorithm. – aioobe Aug 18 '11 at 11:31
  • @aioobe: please read the wiki page for [non deterministic algorithms](http://en.wikipedia.org/wiki/Nondeterministic_algorithm) – amit Aug 18 '11 at 11:31
  • please cite the sentence that proves your point. – aioobe Aug 18 '11 at 11:32
  • @aioobe: the OP is refering to the theoretical non-determenistic concept, related to non-deterministic Turing machine – amit Aug 18 '11 at 11:33
  • I suspect the wikipedia page you're referring to is too. – aioobe Aug 18 '11 at 11:35
  • 1
    "In computational complexity theory, nondeterministic algorithms are ones that, at every possible step, can allow for multiple continuations (imagine a man walking down a path in a forest and, every time he steps further, he must pick which fork in the road he wishes to take). These algorithms do not arrive at a solution for every possible computational path; however, they are guaranteed to arrive at a correct solution for some path. The choices can be interpreted as guesses in a search process." – amit Aug 18 '11 at 11:35
  • Right. And nothing prevents multiple solutions to be correct, right? – aioobe Aug 18 '11 at 11:36