Share
VIDEOS 1 TO 50
Algorithms || P vs NP || Deterministic and Non Deterministic || Part-2
Algorithms || P vs NP || Deterministic and Non Deterministic || Part-2
Published: 2015/04/16
Channel: InnovateHub .in
What is DETERMINISTIC ALGORITHM? What does DETERMINISTIC ALGORITHM mean?
What is DETERMINISTIC ALGORITHM? What does DETERMINISTIC ALGORITHM mean?
Published: 2017/10/21
Channel: The Audiopedia
Deterministic algorithm
Deterministic algorithm
Published: 2016/01/22
Channel: WikiAudio
Median Selection Algorithm (Part #5 - Deterministic Solutions)
Median Selection Algorithm (Part #5 - Deterministic Solutions)
Published: 2016/01/25
Channel: Course Grinder
Deterministic algorithms
Deterministic algorithms
Published: 2010/07/25
Channel: EW926
P versus NP problem Explained !
P versus NP problem Explained !
Published: 2015/06/06
Channel: Khalid Oubelque
Nondeterministic algorithm
Nondeterministic algorithm
Published: 2016/01/22
Channel: WikiAudio
Deterministic Selection - Algorithm | Algorithm
Deterministic Selection - Algorithm | Algorithm
Published: 2014/07/13
Channel: Free Engineering Lectures
Non-deterministic Polynomial Time Decidable Problem - Intro to Algorithms
Non-deterministic Polynomial Time Decidable Problem - Intro to Algorithms
Published: 2015/02/23
Channel: Udacity
Nondeterministic TMs - Georgia Tech - Computability, Complexity, Theory: Complexity
Nondeterministic TMs - Georgia Tech - Computability, Complexity, Theory: Complexity
Published: 2015/02/23
Channel: Udacity
Randomized versus Deterministic Algorithm for a Simple Algebra Problem
Randomized versus Deterministic Algorithm for a Simple Algebra Problem
Published: 2014/08/23
Channel: algomanic
Non-deterministic algorithms
Non-deterministic algorithms
Published: 2010/07/25
Channel: EW926
What is NONDETERMINISTIC ALGORITHM? What does NONDETERMINISTIC ALGORITHM MEAN?
What is NONDETERMINISTIC ALGORITHM? What does NONDETERMINISTIC ALGORITHM MEAN?
Published: 2017/10/18
Channel: The Audiopedia
Deterministic Selection - Analysis - 1 | Algorithm
Deterministic Selection - Analysis - 1 | Algorithm
Published: 2014/07/13
Channel: Free Engineering Lectures
Lecture 5/65: Nondeterministic Finite State Machines: Introduction
Lecture 5/65: Nondeterministic Finite State Machines: Introduction
Published: 2015/01/23
Channel: hhp3
Randomization Vs Determinism - Intro to Theoretical Computer Science
Randomization Vs Determinism - Intro to Theoretical Computer Science
Published: 2015/02/23
Channel: Udacity
8   3   Deterministic Selection   Algorithm Advanced   Optional 17 min
8 3 Deterministic Selection Algorithm Advanced Optional 17 min
Published: 2017/01/27
Channel: Stanford Algorithms
Shafi Goldwasser: Pseudo Deterministic Algorithms
Shafi Goldwasser: Pseudo Deterministic Algorithms
Published: 2012/08/24
Channel: princetonacademics
How To Convert Non Deterministic Grammar Into Deterministic Grammar |WHAT? WHY? HOW?
How To Convert Non Deterministic Grammar Into Deterministic Grammar |WHAT? WHY? HOW?
Published: 2017/02/24
Channel: VARUN TANEJA
New Pseudo-deterministic Algorithms - Shafi Goldwasser
New Pseudo-deterministic Algorithms - Shafi Goldwasser
Published: 2016/10/12
Channel: Institute for Advanced Study
Improved Deterministic Algorithms for Sparse Max-SAT
Improved Deterministic Algorithms for Sparse Max-SAT
Published: 2015/11/10
Channel: Simons Institute
L10: Equivalence of Non-Deterministic and Deterministic TMs
L10: Equivalence of Non-Deterministic and Deterministic TMs
Published: 2012/12/13
Channel: UCDavis
Non-deterministic Finite Automata
Non-deterministic Finite Automata
Published: 2016/12/24
Channel: Neso Academy
8 - 3 - Deterministic Selection - Algorithm -Design and Analysis of Algorithmes I-Tim Roughrarden
8 - 3 - Deterministic Selection - Algorithm -Design and Analysis of Algorithmes I-Tim Roughrarden
Published: 2012/04/21
Channel: OpenCourseOnline
Deterministic Selection - Analysis - 2 | Algorithm
Deterministic Selection - Analysis - 2 | Algorithm
Published: 2014/07/13
Channel: Free Engineering Lectures
P and NP Class Problem and Polynomial Time Solvable (English+Hindi)
P and NP Class Problem and Polynomial Time Solvable (English+Hindi)
Published: 2016/11/04
Channel: University Academy- Formerly-IP University CSE/IT
Deterministic Finite Automata (Example -1)
Deterministic Finite Automata (Example -1)
Published: 2016/12/18
Channel: Neso Academy
Lecture 6/65: Nondeterministic Finite State Machines: Formal Definition
Lecture 6/65: Nondeterministic Finite State Machines: Formal Definition
Published: 2015/01/23
Channel: hhp3
Deterministic Finite Automata ( DFA )  with (Type 1: Strings ending with)Examples
Deterministic Finite Automata ( DFA ) with (Type 1: Strings ending with)Examples
Published: 2015/06/09
Channel: The BootStrappers
Algorithms - Deterministic Selection   Analysis I
Algorithms - Deterministic Selection Analysis I
Published: 2017/10/11
Channel: intrigano
Probabilistic Analysis: Randomized Algorithms
Probabilistic Analysis: Randomized Algorithms
Published: 2015/10/22
Channel: Himmat Yadav
Download Observability Properties and Deterministic Algorithms in Visual Inertial Structure from Mot
Download Observability Properties and Deterministic Algorithms in Visual Inertial Structure from Mot
Published: 2017/03/03
Channel: Jessica Pritchard
Nearly Optimal Deterministic Algorithms Via M-Ellipsoids - Santosh Vempala
Nearly Optimal Deterministic Algorithms Via M-Ellipsoids - Santosh Vempala
Published: 2016/08/30
Channel: Institute for Advanced Study
Deterministics and Non Deterministics Algorithms
Deterministics and Non Deterministics Algorithms
Published: 2017/02/17
Channel: COMPUTER SCIENCE NOTES
Non-deterministic Meaning
Non-deterministic Meaning
Published: 2015/04/30
Channel: ADictionary
Convert NFA to DFA
Convert NFA to DFA
Published: 2011/05/10
Channel: Barry Brown
Lecture 7/65: Equivalence of Deterministic and Nondeterministic FSMs
Lecture 7/65: Equivalence of Deterministic and Nondeterministic FSMs
Published: 2015/01/23
Channel: hhp3
Niv Buchbinder: Deterministic Algorithms for Submodular Maximization Problems
Niv Buchbinder: Deterministic Algorithms for Submodular Maximization Problems
Published: 2015/10/26
Channel: Hausdorff Center for Mathematics
Building A Non-Deterministic Ram - Intro to Theoretical Computer Science
Building A Non-Deterministic Ram - Intro to Theoretical Computer Science
Published: 2015/02/23
Channel: Udacity
Building A Non-Deterministic Ram - Intro to Theoretical Computer Science
Building A Non-Deterministic Ram - Intro to Theoretical Computer Science
Published: 2015/02/23
Channel: Udacity
Ankit Garg: A deterministic poly time algorithm for rational identity testing
Ankit Garg: A deterministic poly time algorithm for rational identity testing
Published: 2016/03/16
Channel: WACT 2016
Free Download Observability Properties and Deterministic Algorithms in Visual Inertial Structure fro
Free Download Observability Properties and Deterministic Algorithms in Visual Inertial Structure fro
Published: 2017/03/13
Channel: Darcy Elliston
Linear Programs and Deterministic Rounding
Linear Programs and Deterministic Rounding
Published: 2016/08/12
Channel: Microsoft Research
FTT Algorithm - Deterministic movement
FTT Algorithm - Deterministic movement
Published: 2013/07/25
Channel: Moshe Israel
PACMAN trained with NON-deterministic Q-Learning Algorithm
PACMAN trained with NON-deterministic Q-Learning Algorithm
Published: 2012/01/29
Channel: omotto
Approximation Algorithms for Discrete Stochastic Optimization Problems
Approximation Algorithms for Discrete Stochastic Optimization Problems
Published: 2016/09/06
Channel: Microsoft Research
Kleenex Compiling Non-Deterministic Transducers to Deterministic Streaming Transducers
Kleenex Compiling Non-Deterministic Transducers to Deterministic Streaming Transducers
Published: 2016/04/04
Channel: Ras Bodik
Median Selection Algorithm (Part #5 - Deterministic Solutions)
Median Selection Algorithm (Part #5 - Deterministic Solutions)
Published: 2017/02/10
Channel: Michael Nielson
Simulating A Non-Deterministic Ram - Intro to Theoretical Computer Science
Simulating A Non-Deterministic Ram - Intro to Theoretical Computer Science
Published: 2015/02/23
Channel: Udacity
[8b-2] Deterministic CF Languages (COMP2270 - 2017)
[8b-2] Deterministic CF Languages (COMP2270 - 2017)
Published: 2017/04/25
Channel: Shannon Fenn
NEXT
GO TO RESULTS [51 .. 100]

WIKIPEDIA ARTICLE

From Wikipedia, the free encyclopedia
Jump to: navigation, search

In computer science, a deterministic algorithm is an algorithm which, given a particular input, will always produce the same output, with the underlying machine always passing through the same sequence of states. Deterministic algorithms are by far the most studied and familiar kind of algorithm, as well as one of the most practical, since they can be run on real machines efficiently.

Formally, a deterministic algorithm computes a mathematical function; a function has a unique value for any input in its domain, and the algorithm is a process that produces this particular value as output.

Formal definition[edit]

Deterministic algorithms can be defined in terms of a state machine: a state describes what a machine is doing at a particular instant in time. State machines pass in a discrete manner from one state to another. Just after we enter the input, the machine is in its initial state or start state. If the machine is deterministic, this means that from this point onwards, its current state determines what its next state will be; its course through the set of states is predetermined. Note that a machine can be deterministic and still never stop or finish, and therefore fail to deliver a result.

Examples of particular abstract machines which are deterministic include the deterministic Turing machine and deterministic finite automaton.

What makes algorithms non-deterministic?[edit]

A variety of factors can cause an algorithm to behave in a way which is not deterministic, or non-deterministic:

  • If it uses external state other than the input, such as user input, a global variable, a hardware timer value, a random value, or stored disk data.
  • If it operates in a way that is timing-sensitive, for example if it has multiple processors writing to the same data at the same time. In this case, the precise order in which each processor writes its data will affect the result.
  • If a hardware error causes its state to change in an unexpected way.

Although real programs are rarely purely deterministic, it is easier for humans as well as other programs to reason about programs that are. For this reason, most programming languages and especially functional programming languages make an effort to prevent the above events from happening except under controlled conditions.

The prevalence of multi-core processors has resulted in a surge of interest in determinism in parallel programming and challenges of non-determinism have been well documented.[1][2] A number of tools to help deal with the challenges have been proposed[3][4][5][6] to deal with deadlocks and race conditions.

Disadvantages of Determinism[edit]

It is advantageous, in some cases, for a program to exhibit nondeterministic behavior. The behavior of a card shuffling program used in a game of blackjack, for example, should not be predictable by players — even if the source code of the program is visible. The use of a pseudorandom number generator is often not sufficient to ensure that players are unable to predict the outcome of a shuffle. A clever gambler might guess precisely the numbers the generator will choose and so determine the entire contents of the deck ahead of time, allowing him to cheat; for example, the Software Security Group at Reliable Software Technologies was able to do this for an implementation of Texas Hold 'em Poker that is distributed by ASF Software, Inc, allowing them to consistently predict the outcome of hands ahead of time.[7] These problems can be avoided, in part, through the use of a cryptographically secure pseudo-random number generator, but it is still necessary for an unpredictable random seed to be used to initialize the generator. For this purpose a source of nondeterminism is required, such as that provided by a hardware random number generator.

Note that a negative answer to the P=NP problem would not imply that programs with nondeterministic output are theoretically more powerful than those with deterministic output. The complexity class NP (complexity) can be defined without any reference to nondeterminism using the verifier-based definition.

Determinism categories in languages[edit]

Mercury[edit]

This logic-functional programming language establish different determinism categories for predicate modes as explained in the ref.[8][9]

Haskell[edit]

Haskell provides several mechanisms:

non-determinism or notion of Fail
  • the Maybe and Either types include the notion of success in the result.
  • the fail method of the class Monad, may be used to signal fail as exception.
  • the Maybe monad and MaybeT monad transformer provide for failed computations (stop the computation sequence and return Nothing)[10]
determinism/non-det with multiple solutions
you may retrieve all possible outcomes of a multiple result computation, by wrapping its result type in a MonadPlus monad. (its method mzero makes an outcome fail and mplus collects the successful results).[11]

ML family and derived languages[edit]

As seen in Standard ML, OCaml and Scala

  • The option type includes the notion of success.

Java[edit]

  • The null reference value may represent an unsuccessful (out-of-domain) result.

References[edit]

  1. ^ Edward A. Lee. "The Problem with Threads" (PDF). Retrieved 2009-05-29. 
  2. ^ Bocchino Jr., Robert L.; Adve, Vikram S.; Adve, Sarita V.; Snir, Marc (2009). Parallel Programming Must Be Deterministic by Default. USENIX Workshop on Hot Topics in Parallelism. 
  3. ^ "Intel Parallel Inspector Thread Checker". Retrieved 2009-05-29. 
  4. ^ Yuan Lin. "Data Race and Deadlock Detection with Sun Studio Thread Analyzer" (PDF). Retrieved 2009-05-29. 
  5. ^ Intel. "Intel Parallel Inspector". Retrieved 2009-05-29. 
  6. ^ David Worthington. "Intel addresses development life cycle with Parallel Studio". Retrieved 2009-05-26. 
  7. ^ Gary McGraw and John Viega. Make your software behave: Playing the numbers: How to cheat in online gambling. http://www.ibm.com/developerworks/library/s-playing/#h4
  8. ^ Determinism categories in the Mercury programming language[dead link]
  9. ^ Mercury predicate modes[dead link]
  10. ^ Representing failure using the Maybe monad
  11. ^ The class MonadPlus

Disclaimer

None of the audio/visual content is hosted on this site. All media is embedded from other sites such as GoogleVideo, Wikipedia, YouTube etc. Therefore, this site has no control over the copyright issues of the streaming media.

All issues concerning copyright violations should be aimed at the sites hosting the material. This site does not host any of the streaming media and the owner has not uploaded any of the material to the video hosting servers. Anyone can find the same content on Google Video or YouTube by themselves.

The owner of this site cannot know which documentaries are in public domain, which has been uploaded to e.g. YouTube by the owner and which has been uploaded without permission. The copyright owner must contact the source if he wants his material off the Internet completely.

Powered by YouTube
Wikipedia content is licensed under the GFDL and (CC) license