Informal
definition
For a detailed presentation of the
various points of view around the definition of "algorithm", see Algorithm
characterizations. For examples of simple addition algorithms specified in
the detailed manner described in Algorithm characterizations, see Algorithm
examples.
While there is no generally accepted
formal definition of "algorithm," an informal definition could
be "a set of rules that precisely defines a sequence of operations."
For some people, a program is only an algorithm if it stops eventually; for
others, a program is only an algorithm if it stops before a given number of
calculation steps.
A prototypical example of an
algorithm is Euclid's algorithm to determine the maximum common divisor
of two integers; an example (there are others) is described by the flow
chart above and as an example in a later section.
Boolos & Jeffrey (1974, 1999) offer an informal meaning of the word in the following
quotation:
No human being can write fast
enough, or long enough, or small enough† ( †"smaller and smaller without
limit ...you'd be trying to write on molecules, on atoms, on electrons")
to list all members of an enumerably infinite set by writing out their names,
one after another, in some notation. But humans can do something equally
useful, in the case of certain enumerably infinite sets: They can give explicit
instructions for determining the nth member of the set, for
arbitrary finite n. Such instructions are to be given quite explicitly,
in a form in which they could be followed by a computing machine, or by
a human who is capable of carrying out only very elementary operations on
symbols.
The term "enumerably infinite"
means "countable using integers perhaps extending to infinity." Thus,
Boolos and Jeffrey are saying that an algorithm implies instructions for a
process that "creates" output integers from an arbitrary
"input" integer or integers that, in theory, can be chosen from 0 to
infinity. Thus an algorithm can be an algebraic equation such as y = m + n—two
arbitrary "input variables" m and n that produce an
output y. But various authors' attempts to define the notion indicate
that the word implies much more than this, something on the order of (for the
addition example):
Precise instructions (in language understood by "the
computer") for a fast, efficient, "good"process that specifies
the "moves" of "the computer" (machine or human, equipped
with the necessary internally contained information and capabilities) to find,
decode, and then process arbitrary input integers/symbols m and n,
symbols + and = ... and "effectively" produce, in a
"reasonable" time, output-integer y at a specified place and
in a specified format.
The concept of algorithm is
also used to define the notion of decidability. That notion is central
for explaining how formal systems come into being starting from a small
set of axioms and rules. In logic, the time that an algorithm
requires to complete cannot be measured, as it is not apparently related with
our customary physical dimension. From such uncertainties, that characterize
ongoing work, stems the unavailability of a definition of algorithm that
suits both concrete (in some sense) and abstract usage of the term.
From : Wikipedia
Tidak ada komentar:
Posting Komentar