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/22::
Play Video
3
Non-deterministic algorithms
Non-deterministic algorithms
::2010/07/25::
Play Video
4
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/22::
Play Video
5
PACMAN trained with NON-deterministic Q-Learning Algorithm
PACMAN trained with NON-deterministic Q-Learning Algorithm
::2012/01/29::
Play Video
6
FTT Algorithm - Deterministic movement
FTT Algorithm - Deterministic movement
::2013/07/25::
Play Video
7
8.5 - Deterministic Selection Analysis 2 - Linear Time Selection - [DSA 1] By Tim Roughgarden
8.5 - Deterministic Selection Analysis 2 - Linear Time Selection - [DSA 1] By Tim Roughgarden
::2013/09/22::
Play Video
8
Metatron non deterministic test
Metatron non deterministic test
::2009/05/22::
Play Video
9
Daniel Dennett - Free Will Determinism and Evolution
Daniel Dennett - Free Will Determinism and Evolution
::2011/02/26::
Play Video
10
The Birds and the Bees
The Birds and the Bees
::2013/05/05::
Play Video
11
1 - Convert Regular Expression to Finite-State Automaton
1 - Convert Regular Expression to Finite-State Automaton
::2011/05/09::
Play Video
12
4.4 - Correctness Proof 2 - Prim
4.4 - Correctness Proof 2 - Prim's Minimum Spanning Tree Algorithm - [DSA 2] By Tim Roughgarden
::2013/09/29::
Play Video
13
Computer Science 170 - Lecture 2
Computer Science 170 - Lecture 2
::2012/01/20::
Play Video
14
Simple Monte Carlo simulation examples in Excel
Simple Monte Carlo simulation examples in Excel
::2012/12/09::
Play Video
15
8.4 - A More Complex Example - Huffman Codes - [DSA 2] By Tim Roughgarden
8.4 - A More Complex Example - Huffman Codes - [DSA 2] By Tim Roughgarden
::2013/10/03::
Play Video
16
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/22::
Play Video
17
TRIUMPH: Three Optical Polishing Solutions in One Machine
TRIUMPH: Three Optical Polishing Solutions in One Machine
::2014/01/10::
Play Video
18
Genetic Algorithms With Immigrants and Memory Schemes for Dynamic Shortest Path Routing Problems
Genetic Algorithms With Immigrants and Memory Schemes for Dynamic Shortest Path Routing Problems
::2013/05/30::
Play Video
19
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
20
3.1 - O(n log n) Part1 - Divide and Conquer Algorithm - [DSA 1] By Tim Roughgarden
3.1 - O(n log n) Part1 - Divide and Conquer Algorithm - [DSA 1] By Tim Roughgarden
::2013/09/10::
Play Video
21
9.3 - Random Contraction Algorithm - Graphs Algorithms - [DSA 1] By Tim Roughgarden
9.3 - Random Contraction Algorithm - Graphs Algorithms - [DSA 1] By Tim Roughgarden
::2013/09/28::
Play Video
22
Quantum wave and particle track
Quantum wave and particle track
::2013/12/09::
Play Video
23
Gibbs sampling for motif inference (deterministic, 50 iterations)
Gibbs sampling for motif inference (deterministic, 50 iterations)
::2010/05/06::
Play Video
24
Global Optimization of MINLP by Evolutionary Algorithms
Global Optimization of MINLP by Evolutionary Algorithms
::2014/02/26::
Play Video
25
3 - 4 - O(n log n) Algorithm for Closest Pair I-Design and Analysis of Algorithmes I-Tim Roughrarden
3 - 4 - O(n log n) Algorithm for Closest Pair I-Design and Analysis of Algorithmes I-Tim Roughrarden
::2012/04/20::
Play Video
26
6.2 - Quicksort Analysis - Analysis Part 2 - [Data Structure And Algorithm 1] By Tim Roughgarden
6.2 - Quicksort Analysis - Analysis Part 2 - [Data Structure And Algorithm 1] By Tim Roughgarden
::2013/09/14::
Play Video
27
8.3 - A Greedy Algorithm - Huffman Codes - [DSA 2] By Tim Roughgarden
8.3 - A Greedy Algorithm - Huffman Codes - [DSA 2] By Tim Roughgarden
::2013/10/03::
Play Video
28
Probabilistic Analysis Algorithm for UASLOPE Software
Probabilistic Analysis Algorithm for UASLOPE Software
::2014/02/14::
Play Video
29
11.2 - Dijkstras Algorithm Examples - Dijkstras Shortest Path Algorithm - [DSA 1] By Tim Roughgarden
11.2 - Dijkstras Algorithm Examples - Dijkstras Shortest Path Algorithm - [DSA 1] By Tim Roughgarden
::2013/09/28::
Play Video
30
OM Calculation: Project Management Network Analysis  Deterministic Time
OM Calculation: Project Management Network Analysis Deterministic Time
::2013/11/17::
Play Video
31
13.5 - Detecting Negative Cycles - The Bellman-Ford Algorithm - [DSA 2] - By Tim Roughgarden
13.5 - Detecting Negative Cycles - The Bellman-Ford Algorithm - [DSA 2] - By Tim Roughgarden
::2013/10/06::
Play Video
32
3.5 - Handling Ties - Scheduling Application - [DSA 2] By Tim Roughgarden
3.5 - Handling Ties - Scheduling Application - [DSA 2] By Tim Roughgarden
::2013/09/29::
Play Video
33
Minimizing Maximum Flowtime of Jobs with Arbitrary Parallelizability @ WAOA 2010 (3/3)
Minimizing Maximum Flowtime of Jobs with Arbitrary Parallelizability @ WAOA 2010 (3/3)
::2010/09/14::
Play Video
34
floating point
floating point
::2012/08/06::
Play Video
35
Minimizing Maximum Flowtime of Jobs with Arbitrary Parallelizability @ WAOA 2010 (1/3)
Minimizing Maximum Flowtime of Jobs with Arbitrary Parallelizability @ WAOA 2010 (1/3)
::2010/09/14::
Play Video
36
7.2 - Union by Rank - Advanced Union-Find - [DSA 2] By Tim Roughgarden
7.2 - Union by Rank - Advanced Union-Find - [DSA 2] By Tim Roughgarden
::2013/09/30::
Play Video
37
8.2 - Problem Definition - Huffman Codes - [DSA 2] By Tim Roughgarden
8.2 - Problem Definition - Huffman Codes - [DSA 2] By Tim Roughgarden
::2013/10/03::
Play Video
38
Minimizing Maximum Flowtime of Jobs with Arbitrary Parallelizability @ WAOA 2010 (2/3)
Minimizing Maximum Flowtime of Jobs with Arbitrary Parallelizability @ WAOA 2010 (2/3)
::2010/09/14::
Play Video
39
5.1 - Quicksort Algorithm - Quicksort Overview - [Data Structure And Algorithm 1] By Tim Roughgarden
5.1 - Quicksort Algorithm - Quicksort Overview - [Data Structure And Algorithm 1] By Tim Roughgarden
::2013/09/12::
Play Video
40
Bug Algorithms for Simple Robot Motion using Corobot robots
Bug Algorithms for Simple Robot Motion using Corobot robots
::2013/03/05::
Play Video
41
Dr. Ravi Zacharias & Dr. John Lennox VS Dr. Stephen Hawking
Dr. Ravi Zacharias & Dr. John Lennox VS Dr. Stephen Hawking
::2013/12/30::
Play Video
42
4.1 - Problem Definition - Prim
4.1 - Problem Definition - Prim's Minimum Spanning Tree Algorithm - [DSA 2] By Tim Roughgarden
::2013/09/29::
Play Video
43
Solving parameter identification problem using genetic algorithms evolutionnary strategy -- N. HARB
Solving parameter identification problem using genetic algorithms evolutionnary strategy -- N. HARB
::2013/03/27::
Play Video
44
Get Commissions for Free Video Review - CAUTION!
Get Commissions for Free Video Review - CAUTION!
::2012/10/22::
Play Video
45
8 - 3 - Deterministic Encryption_SIV and wide PRP-Cryptography-Professor Dan Boneh
8 - 3 - Deterministic Encryption_SIV and wide PRP-Cryptography-Professor Dan Boneh
::2012/04/18::
Play Video
46
7 - 2 - Part II -Design and Analysis of Algorithmes I-Tim Roughrarden
7 - 2 - Part II -Design and Analysis of Algorithmes I-Tim Roughrarden
::2012/04/21::
Play Video
47
Lec-17 Other Issues - Introduction to Dynamic Programming
Lec-17 Other Issues - Introduction to Dynamic Programming
::2009/08/31::
Play Video
48
proof 2 for determinism (2/2)
proof 2 for determinism (2/2)
::2009/07/26::
Play Video
49
L3: Non-Deterministic Finite State Machines
L3: Non-Deterministic Finite State Machines
::2012/12/12::
Play Video
50
4.7 - Fast Implementation 2 - Prim
4.7 - Fast Implementation 2 - Prim's Minimum Spanning Tree Algorithm - [DSA 2] By Tim Roughgarden
::2013/09/29::
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 given input, 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.

Problems with deterministic algorithms[edit]

Unfortunately, for some problems deterministic algorithms are also hard to find. For example, there are simple and efficient probabilistic algorithms that determine whether a given number is prime and have a very small chance of being wrong. These have been known since the 1970s (see for example Fermat primality test); the known deterministic algorithms remain considerably slower in practice.

As another example, NP-complete problems, which include many of the most important practical problems, can be solved quickly using a machine called a nondeterministic Turing machine, but efficient practical algorithms have never been found for any of them. At best, we can currently only find approximate solutions or solutions in special cases.

Another major problem with deterministic algorithms is that sometimes, we don't want the results to be predictable. For example, if you are playing an on-line game of blackjack that shuffles its deck using a pseudorandom number generator, 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] Similar problems arise in cryptography, where private keys are often generated using such a generator. This sort of problem is generally avoided using a cryptographically secure pseudo-random number generator.

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

Mashpedia enables any individual or company to promote their own Youtube-hosted videos or Youtube Channels, offering a simple and effective plan to get them in front of our engaged audience.

Want to learn more? Please contact us at: hello@mashpedia.com

Powered by YouTube
LEGAL
  • Mashpedia © 2014