Play Video
1
Deterministic algorithms
Deterministic algorithms
::2010/07/25::
Play Video
2
8.3 - Deterministic Selection Algorithm - Linear Time Selection - [DSA 1] By Tim Roughgarden
8.3 - Deterministic Selection Algorithm - Linear Time Selection - [DSA 1] By Tim Roughgarden
::2013/09/21::
Play Video
3
Non-deterministic algorithms
Non-deterministic algorithms
::2010/07/25::
Play Video
4
Shafi Goldwasser: Pseudo Deterministic Algorithms
Shafi Goldwasser: Pseudo Deterministic Algorithms
::2012/08/24::
Play Video
5
Deterministic Selection - Algorithm | Algorithm
Deterministic Selection - Algorithm | Algorithm
::2014/07/13::
Play Video
6
PACMAN trained with NON-deterministic Q-Learning Algorithm
PACMAN trained with NON-deterministic Q-Learning Algorithm
::2012/01/29::
Play Video
7
Randomized versus Deterministic Algorithm for a Simple Algebra Problem
Randomized versus Deterministic Algorithm for a Simple Algebra Problem
::2014/08/23::
Play Video
8
FTT Algorithm - Deterministic movement
FTT Algorithm - Deterministic movement
::2013/07/25::
Play Video
9
Deterministic Selection - Analysis - 1 | Algorithm
Deterministic Selection - Analysis - 1 | Algorithm
::2014/07/13::
Play Video
10
Deterministic Selection - Analysis - 2 | Algorithm
Deterministic Selection - Analysis - 2 | Algorithm
::2014/07/13::
Play Video
11
Metatron non deterministic test
Metatron non deterministic test
::2009/05/21::
Play Video
12
Deterministic Finite Automata ( DFA ) construction with Examples and solution Part 1
Deterministic Finite Automata ( DFA ) construction with Examples and solution Part 1
::2013/12/03::
Play Video
13
1 - Convert Regular Expression to Finite-State Automaton
1 - Convert Regular Expression to Finite-State Automaton
::2011/05/09::
Play Video
14
8.4 - Deterministic Selection Analysis 1 - Linear Time Selection - [DSA 1] By Tim Roughgarden
8.4 - Deterministic Selection Analysis 1 - Linear Time Selection - [DSA 1] By Tim Roughgarden
::2013/09/21::
Play Video
15
Design & Analysis of Algorithms: 8.5 Deterministic Selection - Analysis II
Design & Analysis of Algorithms: 8.5 Deterministic Selection - Analysis II
::2012/09/07::
Play Video
16
5.2- Quicksort Algorithm-Partition Around Pivot-[Data Structure And Algorithm 1] By Tim Roughgarden
5.2- Quicksort Algorithm-Partition Around Pivot-[Data Structure And Algorithm 1] By Tim Roughgarden
::2013/09/12::
Play Video
17
How to minimize a  Deterministic Finite Automata (DFA) using Table Fill method?
How to minimize a Deterministic Finite Automata (DFA) using Table Fill method?
::2014/05/30::
Play Video
18
Lecture 24 11/11: Online Algorithms: Paging
Lecture 24 11/11: Online Algorithms: Paging
::2013/11/19::
Play Video
19
Probabilistic Analysis Algorithm for UASLOPE Software
Probabilistic Analysis Algorithm for UASLOPE Software
::2014/02/14::
Play Video
20
19. Dynamic Programming I: Fibonacci, Shortest Paths
19. Dynamic Programming I: Fibonacci, Shortest Paths
::2013/01/14::
Play Video
21
Gibbs sampling for motif inference (deterministic, 50 iterations)
Gibbs sampling for motif inference (deterministic, 50 iterations)
::2010/05/06::
Play Video
22
Convert NFA to DFA
Convert NFA to DFA
::2011/05/10::
Play Video
23
Global Optimization of MINLP by Evolutionary Algorithms
Global Optimization of MINLP by Evolutionary Algorithms
::2014/02/26::
Play Video
24
Experimental Validation of DAESR Algorithm
Experimental Validation of DAESR Algorithm
::2014/06/20::
Play Video
25
Power Hanoi Algorithm solves the Towers of Hanoi on O(n)
Power Hanoi Algorithm solves the Towers of Hanoi on O(n)
::2014/06/04::
Play Video
26
1 - 3 - 3. Deterministic finite automata-Automata-Professor Jeffrey Ullman
1 - 3 - 3. Deterministic finite automata-Automata-Professor Jeffrey Ullman
::2012/05/03::
Play Video
27
The Birds and the Bees
The Birds and the Bees
::2013/05/05::
Play Video
28
Lec-17 Other Issues - Introduction to Dynamic Programming
Lec-17 Other Issues - Introduction to Dynamic Programming
::2009/08/31::
Play Video
29
The Raft Consensus Algorithm (Diego Ongaro) - RICON West 2013
The Raft Consensus Algorithm (Diego Ongaro) - RICON West 2013
::2013/12/02::
Play Video
30
Simple Monte Carlo simulation examples in Excel
Simple Monte Carlo simulation examples in Excel
::2012/12/09::
Play Video
31
V-Ray 2.0: How to use DMC algorithms | lynda.com tutorial
V-Ray 2.0: How to use DMC algorithms | lynda.com tutorial
::2012/03/17::
Play Video
32
Deterministic finite automata
Deterministic finite automata
::2010/09/26::
Play Video
33
Quantum wave and particle track
Quantum wave and particle track
::2013/12/09::
Play Video
34
Lec-4 Linear Programming Solutions - Simplex Algorithm
Lec-4 Linear Programming Solutions - Simplex Algorithm
::2009/08/28::
Play Video
35
Princeton KMP (Knuth Morris Pratt) Algorithm
Princeton KMP (Knuth Morris Pratt) Algorithm
::2014/03/11::
Play Video
36
What is DDA line drawing algorithm in Computer Graphics?
What is DDA line drawing algorithm in Computer Graphics?
::2014/05/30::
Play Video
37
Lec-5 Simplex Algorithm-Minimization Problems
Lec-5 Simplex Algorithm-Minimization Problems
::2009/08/28::
Play Video
38
Non-deterministic finite state automata from NDA to DFA
Non-deterministic finite state automata from NDA to DFA
::2011/05/21::
Play Video
39
Deterministic Extremum Seeking Experiment
Deterministic Extremum Seeking Experiment
::2010/12/21::
Play Video
40
Deterministic Finite Automata ( DFA ) construction with Examples and solution Part 2
Deterministic Finite Automata ( DFA ) construction with Examples and solution Part 2
::2013/12/03::
Play Video
41
What is Sutherland-Hodgman Polygon Clipping Algorithm in Computer Graphics ?
What is Sutherland-Hodgman Polygon Clipping Algorithm in Computer Graphics ?
::2014/05/31::
Play Video
42
Realistic DFN Model Building Using Deterministic Data Derived from 3D Multi-component Seismic Data
Realistic DFN Model Building Using Deterministic Data Derived from 3D Multi-component Seismic Data
::2014/07/25::
Play Video
43
8.1 - Randomized Selection Algorithm - Linear Time Selection - [DSA 1] By Tim Roughgarden
8.1 - Randomized Selection Algorithm - Linear Time Selection - [DSA 1] By Tim Roughgarden
::2013/09/21::
Play Video
44
Bresenham
Bresenham's Line Drawing Algorithm in Computer Graphics- Part 3 A solved example
::2014/05/29::
Play Video
45
3.4 - Closest Pair 1 - Divide and Conquer Algorithm.- [DSA 1] By Tim Roughgarden
3.4 - Closest Pair 1 - Divide and Conquer Algorithm.- [DSA 1] By Tim Roughgarden
::2013/09/10::
Play Video
46
Lec-21 Inventory Models - Deterministic Models
Lec-21 Inventory Models - Deterministic Models
::2009/08/31::
Play Video
47
Bresenham
Bresenham's Line Drawing Algorithm in Computer Graphics - Part 2 Steps of Algorithm
::2014/05/29::
Play Video
48
Nonequilibrium Quantum Dynamics Based on Complex Brownian Motion
Nonequilibrium Quantum Dynamics Based on Complex Brownian Motion
::2014/06/13::
Play Video
49
Programming Interviews: Repeated Element from an Array (Randomized Algorithm)
Programming Interviews: Repeated Element from an Array (Randomized Algorithm)
::2012/06/20::
Play Video
50
Mod-02 Lec-10 NON DETERMINISTIC FSA (Contd)
Mod-02 Lec-10 NON DETERMINISTIC FSA (Contd)
::2011/10/05::
NEXT >>
RESULTS [51 .. 101]
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][7] 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.[8] 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.[9][10]

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)[11]
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).[12]

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". Retrieved 2009-05-29. 
  2. ^ James Reinders. "Parallel terminology definitions". Retrieved 2009-05-29. 
  3. ^ "Intel Parallel Inspector Thread Checker". Retrieved 2009-05-29. 
  4. ^ Yuan Lin. "Data Race and Deadlock Detection with Sun Studio Thread Analyzer". 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. ^ Parallel Studio
  8. ^ 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
  9. ^ Determinism categories in the Mercury programming language
  10. ^ Mercury predicate modes
  11. ^ Representing failure using the Maybe monad
  12. ^ The class MonadPlus
Wikipedia content is licensed under the GFDL License
Powered by YouTube
LEGAL
  • Mashpedia © 2014