From 2f8da2215c27e03a2b37b613279aa627918a53e2 Mon Sep 17 00:00:00 2001 From: Miloslav Ciz Date: Tue, 29 Mar 2022 14:59:16 +0200 Subject: [PATCH] Update --- algorithm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/algorithm.md b/algorithm.md index 6fe91b6..a56e436 100644 --- a/algorithm.md +++ b/algorithm.md @@ -118,7 +118,7 @@ int main(void) As algorithms are at the heart of [computer science](scompsci.md), there's a lot of rich theory and knowledge about them. -From theoretical computer science we know not all problems are [computable](computability.md), i.e. there are problems unsolvable by any algorithm (e.g. the [halting problem](halting_problem.md)). [Computational complexity](computational_complexity.md) is a theoretical study of resource consumption by algorithms, i.e. how fast and memory efficient algorithms are. [Formal verification](formal_verification.md) is a field that tries to mathematically prove correctness of algorithms (this is needed for critical software, e.g. in planes). [Genetic programming](generic_programming.md) and some other methods of [artificial intelligence](ai.md) try to automatically create algorithms (creating algorithms that create algorithms). [Computer language](computer_language.md) design is an art of finding best ways of expressing algorithms. +[Turing machine](turing_machine.md), created by [Alan Turing](turing.md), is the traditional formal tool for studying algorithms. From theoretical computer science we know not all problems are [computable](computability.md), i.e. there are problems unsolvable by any algorithm (e.g. the [halting problem](halting_problem.md)). [Computational complexity](computational_complexity.md) is a theoretical study of resource consumption by algorithms, i.e. how fast and memory efficient algorithms are (see e.g. [P vs NP](p_vs_np.md)). [Mathematical programming](mathematical_programming.md) is concerned, besides others, with optimizing algorithms so that their time and/or space complexity is as low as possible which gives rise to algorithm design methods such as [dynamic programming](dynamic_programming.md) ([optimization](optimization.md) is a less theoretical approach to making more efficient algorithms). [Formal verification](formal_verification.md) is a field that tries to mathematically (and sometimes automatically) prove correctness of algorithms (this is needed for critical software, e.g. in planes or medicine). [Genetic programming](generic_programming.md) and some other methods of [artificial intelligence](ai.md) try to automatically create algorithms (*algorithms that create algorithms*). [Quantum computing](quantum.md) is concerned with creating new kind of algorithms algorithms for quantum computers (a new type of still-in-research computers). [Programming language](programming_language.md) design is an art of finding best ways of expressing algorithms. ## Specific Algorithms