-1
$\begingroup$
  1. My definition of an algorithm is a finite sequence of operations provided by an abstract machine, where the operations are executed one after another in the order specified by the sequence.
  2. Different machines may provide different sets of operations, so the definition of an algorithm depends on the abstract machine and can be different on different abstract machines.

Thanks.

$\endgroup$
  • $\begingroup$ I asked a related question here cs.stackexchange.com/questions/32533/… $\endgroup$ – Tim Nov 2 '14 at 0:54
  • $\begingroup$ The machine is not necessarily abstract : computers use algorithms, our brains use algorithms, etc.. It is abstract when you formalize it. $\endgroup$ – François Jul 16 '15 at 15:42
  • $\begingroup$ Your question already includes a complete answer to the original problem but no question about this answer. Thus, only "yes/no" answers may remain, helping neither you nor future visitors. Please read related meta discussions here and here and adjust your question accordingly, e.g. by formulating a specific question about a single element of your answer you are uncertain about. If you just want general feedback, you are welcome to visit us in Computer Science Chat. $\endgroup$ – David Richerby Jul 16 '15 at 21:42
1
$\begingroup$

While very vague, I don't see anything inherently wrong with your "definition", nor do I know strictly better ones.

See also here.

| cite | improve this answer | |
$\endgroup$
1
$\begingroup$

One of my professors gave us this definition of algorithms when he was about to introduce Turing Machines:

An algorithm is a finite sequence of instructions which always terminates and gives us a result.

Therefore an algorithm requires termination as well as the production of a result, otherwise it is nothing more than a procedure which is a sequence of operations/instructions.

A procedure may be effectively calculable by pen/paper method, but an algorithm is effectively computable by a Turing machine.

| cite | improve this answer | |
$\endgroup$
  • 1
    $\begingroup$ Welcome to Computer Science Stack Exchange. May be you should relate more your answer to the question asked. In what way does your definition differ from that given by the OP of the question. That might shed some light as to what issues may be. For example, you require termination, which he does not. Does that have implications? Just having one assertion/definition against another is not much help to readers. Answers should motivated, or at least defended or discussed, or compared in some way. $\endgroup$ – babou Jul 16 '15 at 9:36
  • $\begingroup$ Tried to improve on the answer. Hope it is better. $\endgroup$ – Sagnik Jul 16 '15 at 9:46
  • $\begingroup$ Actually, the Turing machine was designed to be the mechanical equivalent of the pen and paper method. It was considered adequate by mathematicians expert in those issues. So I doubt it is reasonable to attempt to distinguish them in two separate definitions. But I actually made a mistake: your only difference with the question is about the prodution of a result, which seems reasonable. Actually, these definitions correspond to halting turing machines. People sometimes call it semi-algorithm when the computation does not terminate on some inputs. $\endgroup$ – babou Jul 16 '15 at 10:08
  • $\begingroup$ True. Let's see whether OP accepts this defintion. $\endgroup$ – Sagnik Jul 16 '15 at 10:26
  • $\begingroup$ @babou: what do you mean by " prodution of a result"? When an abstract machine executes a sequence of operations, it will do something whether that something is desired or not and whether that something is null or not. So by "a result", do you mean the desired one only? $\endgroup$ – Tim Jul 16 '15 at 13:44

Not the answer you're looking for? Browse other questions tagged or ask your own question.