Algorithm

  

Copyright © Philip M. Parker, INSEAD. Terms of Use.

Algorithm

Definition: Algorithm

Algorithm

Noun

1. A precise rule (or set of rules) specifying how to solve some problem.

Source: WordNet 1.7.1 Copyright © 2001 by Princeton University. All rights reserved.
 

Date "algorithm" was first used: 1699. (references)

Specialty Definitions: Algorithm

DomainDefinitions

Computing

Algorithm A detailed sequence of actions to perform to accomplish some task. Named after an Iranian mathematician, Al-Khawarizmi. Technically, an algorithm must reach a result after a finite number of steps, thus ruling out brute force search methods for certain problems, though some might claim that brute force search was also a valid (generic) algorithm. The term is also used loosely for any sequence of actions (which may or may not terminate). Paul E. Black's Dictionary of Algorithms, Data Structures, and Problems (http://www.nist.gov/dads/). (2002-02-05). Source: The Free On-line Dictionary of Computing.

Aerospace

1. A special mathematical procedure for solving a particular type of problem.2. = algorism. (references)

Math

(1) Software delivered to the SDPS by a science investigator (PI, TL, or II) to be used as the primary tool in the generation of science products. The term includes executable code, source code, job control scripts, as well as documentation. (2) A prescription for the calculation of a quantity; used in Earth system science to derive physical or biological properties from observations and to facilitate calculation of state variables in models. (references)
 A computable set of steps to achieve a desired result. (references)

Mathematics

A formal statement, clear complete and unambiguous, of how a certain process needs to be undertaken. Source: European Union. (references)

Science

A mathematical relation between an observed quantity and a variable used in a step-by-step mathematical process to calculate a quantity. In the context of remote sensing, algorithms generally specify how to determine higher-level data products from lower-level source data. For example, algorithms prescribe how atmospheric temperature and moisture profiles are determined from a set of radiation observations originally sensed by satellite sounding instruments. (references)

Solar

The set of simple instructions that combine to accomplish a task. Computer codes are algorithms. (references)

Weather

A computer program (or set of programs) which is designed to systematically solve a certain kind of problem. WSR-88D radars (NEXRAD) employ algorithms to analyze radar data and automatically determine storm motion, probability of hail, VIL, accumulated rainfall, and several other parameters. (references)

Source: compiled by the editor from various references; see credits.

Top     

Specialty Definition: Algorithm

(From Wikipedia, the free Encyclopedia)

Broadly-defined, an algorithm is an interpretable, finite set of instructions for dealing with contingencies and accomplishing some task which can be anything that has a recognizable end-state, end-point, or result for all inputs. (contrast with heuristic). Algorithms often have steps that repeat (iterate) or require decisions (logic and comparison) until the task is completed.

In formal mathematical terms, an algorithm is considered to be any sequence of operations which can be performed by a Turing-complete system.

Different algorithms may complete the same task with a different set of instructions in more or less time, space, or effort than others. A cooking recipe is an example of an algorithm. Given two different recipes for making potato salad, one may have "peel the potato" before "boil the potato" while the other presents the steps in the reverse order, yet they both call for these steps to be repeated for all potatoes and end when the potato salad is ready to eat.

Correctly performing an algorithm will not solve a problem if the algorithm is flawed, or not appropriate to the problem. For example, performing the potato salad algorithm will fail if there are no potatoes present, even if all the motions of preparing the salad are performed as if the potatoes were there.

Formalized algorithms

Algorithms are essential to the way computers process information, because a computer program is essentially an algorithm that tells the computer what specific steps to perform (in what specific order) in order to carry out a specified task, such as calculating employees' paychecks or printing students' report cards.

Typically, when an algorithm is associated with processing information, data is read from an input source or device, written to an output sink or device, and/or stored for further use. Stored data is regarded as part of the internal state of the entity performing the algorithm.

For any such computational process, the algorithm must be rigorously defined: specified in the way it applies in all possible circumstances that could arise. That is, any conditional steps must be systematically dealt with, case-by-case; the criteria for each case must be clear (and computable).

Because an algorithm is a precise list of precise steps, the order of computation will almost always be critical to the functioning of the algorithm. Instructions are usually assumed to be listed explicitly, and are described as starting 'from the top' and going 'down to the bottom', an idea that is described more formally by flow of control.

So far, this discussion of the formalization of an algorithm has assumed the premises of imperative programming. This is the most common conception, and it attempts to describe a task in discrete, 'mechanical' means. Unique to this conception of formalized algorithms is the assignment operation, setting the value of a variable. It derives from the intuition of 'memory' as a scratchpad. There is an example below of such an assignment.

See functional programming for an alternate conception of an algorithm.

Implementing algorithms

Once a formal description has been obtained, an algorithm is a well-defined method or procedure for solving a problem such as a problem in mathematics; or otherwise relating to the manipulation of information.

Algorithms are now most often implemented as computer programs but can be implemented by other means, such as electric circuits or a machine. They may even be performed directly by humans: think for example of an abacus, or performing arithmetic with pen and paper or its mental equivalent - most people use algorithms they learned as a child to do this.

The analysis and study of algorithms is a central discipline of computer science, and is often practiced abstractly (without the use of a specific programming language, designed for practical implementation). In this sense, it resembles other mathematical disciplines in that the analysis focuses on the underlying principles driving the algorithm, and not it's particular implementation. The 'coding' (more properly 'codifying' though this terminology is seldom, if ever, used) of algorithms in such an abstract manner is termed 'writing pseudocode'.

Some restrict the definition of algorithm to procedures that eventually finish. Others include procedures that could run forever without stopping, arguing that a computer may be required to carry out an ongoing task. Other requirements beside having an ending state, then, are used to determine if the algorithm successfully completes a task.

Example

Here is a simple example of an algorithm.

Imagine you have an unsorted list of random numbers. Our goal is to find the highest number in this list. Upon first thinking about the solution, you will realize that you must look at every number in the list. Upon further thinking, you will realize that you need to look at each number only once. Taking this into account, here is a simple algorithm to accomplish this:

  1. Pretend the first number in the list is the largest number.
  2. Look at the next number, and compare it with this largest number
  3. Only if this next number is larger, then keep that as the new largest number
  4. Repeat steps 2 and 3 until you have gone through the whole list.

And here is a more formal coding of the algorithm in a pseudocode that is similar to most programming languages:
Given: a list List of length Length 

counter = 1
largest = List[counter]
while counter <= Length:
    if List[counter] > largest:
        largest = List[counter]
    counter = counter + 1
print largest

Notes on notation: As it happens, most people who implement algorithms want to know how much of a particular resource (such as time or storage) a given algorithm requires. Methods have been developed for the analysis of algorithms to obtain such quantitative answers, and after reading that section, you will determine that this algorithm has a time requirement of O(n), where the big O notation was used and n stands for the length of the list.

History

The word algorithm is a corruption of early English algorisme, which came from Latin algorismus, which came from the name of the Persian mathematician Abu Ja'far Mohammed ibn Musa al-Khwarizmi (ca. 780 - ca. 845). He was the author of the book Kitab al-jabr w'al-muqabala (Rules of Restoration and Reduction) which introduced algebra to people in the West. The word algebra itself originates from al-Jabr from the book title. The word algorism originally referred only to the rules of performing arithmetic using Arabic numerals but evolved into algorithm by the 18th century. The word has now evolved to include all definite procedures for solving problems or performing tasks.

The first case of an algorithm written for a computer was Ada Byron's notes on the analytical engine written in 1842, from which she earns the title of the world's first programmer.

The lack of mathematical rigor in the "well-defined procedure" definition of algorithms posed some difficulties for mathematicians and logicians of the 19th and early 20th centuries. This problem was largely solved with the description of the Turing machine, an abstract model of a computer described by Alan Turing, and the demonstration that every method yet found for describing "well-defined procedures" advanced by other mathematicians could be emulated on a Turing machine (a statement known as the Church-Turing thesis).

Nowadays, a formal criterion for an algorithm is that it is a procedure implementable on a completely-specified Turing machine or one of the equivalent formalisms. Turing's initial interest was in the halting problem: deciding when an algorithm describes a terminating procedure. In practical terms computational complexity theory matters more: it includes the puzzling problem of the algorithms called NP-complete, which are generally presumed to take more than polynomial time.

Classes of algorithms

Algorithms come in different flavours. A recursive algorithm is one that invokes (makes reference to) itself repeatedly until a certain condition matches, which is a method common to functional programming. A greedy algorithm works by making a series of simple decisions that are never reconsidered. A divide-and-conquer algorithm recursively reduces an instance of a problem to one or more smaller instances of the same problem, until the instances are small enough to be directly expressible in the programming language employed (what is 'direct' is often discretionary). A dynamic programming algorithm works bottom-up by building progressively larger solutions to subproblems arising from the original problem, and then uses those solutions to obtain the final result. Many problems (such as playing chess) can be modeled as problems on graphs. A graph exploration algorithm specifies rules for moving around a graph and is useful for such problems. Probabilistic algorithms are those that make some choices randomly (or pseudo-randomly).

Algorithms are usually discussed with the assumption that computers execute each instruction of an algorithm at a time. Those computers are sometimes called serial computers. An algorithm designed for such an environment is called a serial algorithm, as opposed to parallel algorithms, which take advantage of computer architectures where several processors can work on a problem at the same time.

Genetic algorithms attempt to find solutions to problems by mimicking biological evolutionary processes, with a cycle of random mutations yielding successive generations of 'solutions'. Thus, they emulate reproduction and "survival of the fittest". In genetic programming, this approach is extended to algorithms, by regarding the algorithm itself as a 'solution' to a problem.

A list of algorithms discussed in Wikipedia is available.

See also

References

Source: adapted by the editor from Wikipedia, the free encyclopedia under a copyleft GNU Free Documentation License (GFDL) from the article "Algorithm."

Top     

Synonyms: Algorithm

Synonyms: algorithmic program (n), algorithmic rule (n). (additional references)

Top     

Synonyms within Context: Algorithm

ContextSynonyms within Context (source: adapted from Roget's Thesaurus).

Numeration

Noun: numeration; numbering; Verb: pagination; tale, recension, enumeration, summation, reckoning, computation, supputation; calculation, calculus; algorithm, algorism, rhabdology, dactylonomy; measurement; statistics.

Source: adapted from Roget's Thesaurus.

Top     

Crosswords: Algorithm

English words defined with "algorithm": algorithm error, algorithmicsorting algorithm. (references)
Specialty definitions using "algorithm": ALgorithm DEScription, anytime algorithm, approximation algorithm-approximation algorithmBaum Welch algorithm, Bellman-Ford algorithm, Bresenham's algorithmChristofides algorithm, Codd's reduction algorithm, COMMUNITY CONSENSUS ALGORITHMData Encryption Algorithm, deterministic algorithm, Dijkstra's algorithmEuclidean Algorithm, Euclid's Algorithm, evolutionary algorithm, exponential-time algorithm, extended Euclid's algorithm, external memory algorithmFloyd-Warshall algorithmgenetic algorithm, Graph Algorithm and Software Package, greedy algorithmhybrid algorithmInternational Data Encryption AlgorithmJohnson's algorithmKnuth-Morris-Pratt algorithm, Kruskal's algorithmLas Vegas algorithmmemetic algorithm, Michigan Algorithm Decoder, Monte Carlo algorithmoff-line algorithm, on-line algorithmpolynomial-time algorithm, Prim's algorithm, probabilistic algorithmrandomized algorithm, replacement algorithmSmith algorithm, spanning tree algorithm. (references)
Non-English Usage: "Algorithm" is also a word in the following language with the English translation in parentheses.

German (algorithm).

Top     

Commercial Usage: Algorithm

DomainTitle

Books

  • Automatic Algorithm Recognition and Replacement : A New Approach to Program Optimization (reference)

  • Data Structures & Algorithm Analysis in Java (reference)

  • Data Structures and Algorithm Analysis in C++ (2nd Edition) (reference)

  • Spoken Language Processing: A Guide to Theory, Algorithm and System Development (reference)

  • The Algorithm Design Manual (reference)

    (more book examples)

  

Periodicals

  • Dynamics Of Continuous Discrete And Impulsive Systems Series B: Application & Algorithm (reference)

    (more periodical examples)

  

Music

Source: compiled by the editor from various references; see credits.

Top     

Non-Fiction Usage: Algorithm

SubjectTopicQuote

Health

With the advent of solid-phase antibody-binding assays, such as enzyme-linked immunosorbent assay (ELISA), the diagnostic algorithm for identification of viral activity has changed. (references)

The ATP recognized low HDL cholesterol (< 35 mg/dL) as a major risk factor for coronary heart disease (CHD). It recommended that HDL cholesterol be measured in all patients with high blood cholesterol (greater than or equal to 240 mg/dL) and in those patients with borderline high blood cholesterol (200-239 mg/dL) who had definite CHD or two other CHD risk factors (one of which could be male sex). Low HDL cholesterol was entered in the treatment decision algorithm as one of the major risk factors that would affect the assessment of overall coronary risk and therefore influence clinical decisions about treatment. (references)

Source: compiled by the editor from ICON Group International, Inc.; see credits.

Top     

Usage Frequency: Algorithm

"Algorithm" is generally used as a noun (singular) -- approximately 99.81% of the time. "Algorithm" is used about 539 times out of a sample of 100 million words spoken or written in English. Its rank is based on over 700,000 words used in the English language. Some parts-of-speech are not covered due to the samples used by the British National Corpus. (note: percents less than one-hundredth of one percent have been omitted)
Parts of SpeechPercentUsage per
100 Million Words
Rank in English
Noun (singular)99.81%53811,454
Noun (proper)0.19%1339,140
                    Total100.00%539N/A

Source: compiled by the editor from several corpora; see credits.

Top     

Expressions: Algorithm

Expressions using "algorithm": A* algorithm algorithm 8 algorithm DEScription algorithm error anytime algorithm approximation algorithm Boltzmann learning algorithm Codd's reduction algorithm data Encryption Algorithm euclidean Algorithm Euclid's Algorithm evolutionary algorithm generational replacement genetic algorithm genetic algorithm graph Algorithm and Software Package international Data Encryption Algorithm memetic algorithm Michigan Algorithm Decoder nearest neighbor algorithm replacement algorithm shift algorithm sorting algorithm spanning tree algorithm. Additional references.

Source: compiled by the editor from various references; see credits.

Top     

Frequency of Internet Keywords: Algorithm

The following statistics estimate the number of searches per day across the major English-language search engines as identified by various trade publications. Hyperlinks lead to commercial use of the expression at Amazon.com.
 
ExpressionFrequency
per Day
  ExpressionFrequency
per Day

  algorithm

561

  md5 algorithm

12

  genetic algorithm

172

  search algorithm

12

  algorithm find gene

96

  algorithm rete

12

  acls algorithm

45

  algorithm dijkstras

11

  encryption algorithm

40

  algorithm videoguard

11

  sorting algorithm

29

  graph algorithm

10

  algorithm and data structure

25

  introduction to algorithm

10

  algorithm definition

21

  crc algorithm

10

  rsa algorithm

20

  data compression algorithm

10

  euclidean algorithm

17

  greedy algorithm

10

  compression algorithm

16

  evolutionary algorithm

10

  sort algorithm

15

  data mining algorithm

10

  algorithm pharma

14

  the simplex algorithm

10

  dijkstra algorithm

14

  algorithm quick sort

9

  pid algorithm

14

  scheduling algorithm

9

  des algorithm

13

  computer algorithm

9

  algorithm back percolation

13

  algorithm soundex

9

  algorithm em

12

  algorithm generator sql

9

  hash algorithm

12

  square root algorithm

9

  quicksort algorithm

12

  shortest path algorithm

8
Source: compiled by the editor from various references; see credits.

Top     

Modern Translations: Algorithm

Language Translations for "algorithm"; alternative meanings/domain in parentheses.

Albanian

  

aldoritëm. (various references)

   

Arabic 

  

‏نظام الحلول الحسابية, ‏الحلول الحسابية. (various references)

   

Bulgarian 

  

метод (method, mode, modus, process, scheme, system, way), алгоритъм. (various references)

   

Chinese 

  

算法 (algorithmic). (various references)

   

Czech

  

algoritmus. (various references)

   

Danish

  

algoritme. (various references)

   

Dutch

  

algoritme. (various references)

   

Esperanto

  

algoritmo. (various references)

   

Farsi 

  

الگوریتم . (various references)

   

Finnish

  

algoritmi. (various references)

   

French

  

algorithme. (various references)

   

German

  

Algorithmus. (various references)

   

Greek 

  

αλγόριθμος. (various references)

   

Hungarian

  

algoritmus (algorism). (various references)

   

Indonesian

  

algoritme. (various references)

   

Italian

  

algoritmo. (various references)

   

Japanese Kanji 

  

"算手 , アルコール発酵 (a "salon" where the hostesses are supposedly part-timers with other jobs, alcohol fermentation, Alcyone, Algeria, Algol, algorithmic, argon, ars amatoria, tango). (various references)

   

Japanese Katakana 

  

アルゴリズ , え"ざ"てじゅ". (various references)

   

Korean 

  

산법 (Arithmetic). (various references)

   

Pig Latin

  

algorithmay

   

Portuguese

  

algoritmo. (various references)

   

Russian 

  

алгоритм (algorism). (various references)

   

Serbo-Croatian

  

algoritam. (various references)

   

Spanish

  

algoritmo. (various references)

   

Swedish

  

algoritm. (various references)

   

Turkish

  

arap rakamları sistemi (algorism). (various references)

   

Ukranian 

  

алгоритм. (various references)

   

Vietnamese 

  

thuật toán (algorism). (various references)

Source: compiled by the editor from various translation references.

Top     

Ancestral Language Translations: Algorithm

LanguagePeriodTranslations
Old French900-1400

algorisme. (various references)

Source: compiled by the editor from various references.

Top     

Derivations & Misspellings: Algorithm

Derivations

Words beginning with "algorithm": algorithmic, algorithmically, algorithms. (additional references)


Misspellings

"Algorithm" is suggested in spellcheckers for the following: Algarth, algorhithm, algorhitm, algorhthm, algorith, algorithim, algorithme, algorithn, algoriths, algorithum, algorithym, algoritm, algorthim, algorythm, algotithm, alogorithm, alogrithm. (additional references)

Source: compiled by the editor, based on several corpora (additional references).

Top     

Rhyming with "Algorithm"

# of Phoneme MatchesPronunciationWord(s) rhyming with "algorithm" (pronounced a"lgeri'thum)
6-g er i' th u mlogarithm.
3-th u mfathom, rhythm.

Source: compiled by the editor (additional references); see credits.

Top     

Anagrams: Algorithm

Scrabble® Enable2K-Verified Anagrams

Direct Anagrams: logarithm.

Words within the letters "a-g-h-i-l-m-o-r-t"

-2 letters: alright.

-3 letters: alight, aright, galiot, glamor, glioma, gloria, harlot, latigo, liroth, maloti, mitral, mohair, mortal, ramtil, rialto, righto, tailor, thairm, thiram, thoria.

-4 letters: airth, algor, altho, amigo, amort, argil, argol, argot, garth, gator, girth, glair, gloam, gloat, goral, grail, griot, grith, groat, hilar, horal, ihram, imago, laigh, laith, largo, lathi, light, lirot, litho.

 Words containing the letters "a-g-h-i-l-m-o-r-t"
 

+1 letter: algorithms, logarithms.

 

+2 letters: algorithmic, cologarithm, logarithmic.

 

+3 letters: cologarithms.

 

+4 letters: antilogarithm.

 

+5 letters: antilogarithms, dermatoglyphic, metallographic, pharmacologist, rheumatologies, rheumatologist.

Source: compiled by the editor from various references; see credits.

SCRABBLE® is a registered trademark. All intellectual property rights in and to the game are owned in the U.S.A and Canada by Hasbro Inc., and throughout the rest of the world by J.W. Spear & Sons Limited of Maidenhead, Berkshire, England, a subsidiary of Mattel Inc. Mattel and Spear are not affiliated with Hasbro.

Top     

Alternative Orthography: Algorithm


Hexadecimal (or equivalents, 770AD-1900s) (references)

41 6C 67 6F 72 69 74 68 6D

Leonardo da Vinci (1452-1519; backwards) (references)

American Sign Language (origins from 1620-1817 in Italy and, especially, France) (references)

=

Semaphore (1791, in France) (references)

Braille (1829, in France) (references)

Morse Code (1836) (references)

.-    .-..    --.    ---    .-.    ..    -    ....    --

Dancing Men (Sir Arthur Conan Doyle, 1903) (references)

Binary Code (1918-1938, probably earlier) (references)

01000001 01101100 01100111 01101111 01110010 01101001 01110100 01101000 01101101

HTML Code (1990) (references)

&#65 &#108 &#103 &#111 &#114 &#105 &#116 &#104 &#109

ISO 10646 (1991-1993) (references)

0041 006C 0067 006F 0072 0069 0074 0068 006D

British Sign Language (Fingerspelling, BSL; 1992, British Deaf Association Dictionary of British Sign Language) (references)

Encryption (beginner's substitution cypher): (references)

357873818475867479

Top     

 

INDEX

1. Definition
2. Synonyms
3. Crosswords
4. Usage: Commercial
5. Quotations: Non-fiction
6. Usage Frequency
7. Expressions
8. Expressions: Internet
9. Translations: Modern
10. Translations: Ancient
11. Derivations
12. Rhymes
13. Anagrams
14. Orthography
15. Bibliography


  

Copyright © Philip M. Parker, INSEAD. Terms of Use.