Computational Complexity Analysis Task

From GM-RKB
(Redirected from computational complexity)
Jump to navigation Jump to search

A Computational Complexity Analysis Task is an algorithm evaluation task that focuses on the Count of Operations for an Algorithm to perform an Task.



References

2018

  • (Wikipedia, 2018) ⇒ https://en.wikipedia.org/wiki/Computational_complexity_theory Retrieved:2018-4-1.
    • Computational complexity theory is a branch of the theory of computation in theoretical computer science that focuses on classifying computational problems according to their inherent difficulty, and relating those classes to each other. A computational problem is understood to be a task that is in principle amenable to being solved by a computer, which is equivalent to stating that the problem may be solved by mechanical application of mathematical steps, such as an algorithm.

      A problem is regarded as inherently difficult if its solution requires significant resources, whatever the algorithm used. The theory formalizes this intuition, by introducing mathematical models of computation to study these problems and quantifying the amount of resources needed to solve them, such as time and storage. Other complexity measures are also used, such as the amount of communication (used in communication complexity), the number of gates in a circuit (used in circuit complexity) and the number of processors (used in parallel computing). One of the roles of computational complexity theory is to determine the practical limits on what computers can and cannot do.

      Closely related fields in theoretical computer science are analysis of algorithms and computability theory. A key distinction between analysis of algorithms and computational complexity theory is that the former is devoted to analyzing the amount of resources needed by a particular algorithm to solve a problem, whereas the latter asks a more general question about all possible algorithms that could be used to solve the same problem. More precisely, computational complexity theory tries to classify problems that can or cannot be solved with appropriately restricted resources. In turn, imposing restrictions on the available resources is what distinguishes computational complexity from computability theory: the latter theory asks what kind of problems can, in principle, be solved algorithmically.

2018

2008

kNN with preprocessing of training set
training $\Theta(\vert\mathbb{D}\vert L_{ave})$
testing $\Theta( L_{a} + \vert \mathbb{D} \vert M_{ave} M_{a})= \Theta(\vert\mathbb{D}\vert M_{ave} M_{a})$
kNN without preprocessing of training set
training $\Theta(1)$
testing $\Theta( L_{a} + \vert \mathbb{D} \vert L_{ave} M_{a}) = \Theta(\vert\mathbb{D}\vert L_{ave} M_{a})$
Table 14.3: Training and test times for kNN classification.$ M_{ave}$ is the average size of the vocabulary of documents in the collection.

2006

single multi
LWLR [math]\displaystyle{ O(mn^2 + n^3) }[/math] [math]\displaystyle{ O\left(\dfrac{mn^2}{P} + \dfrac{n^3}{P'} + n^2 log(P) \right) }[/math]
LR [math]\displaystyle{ O(mn^2 + n^3) }[/math] [math]\displaystyle{ O\left(\dfrac{mn^2}{P} + \dfrac{n^3}{P'} + n^2 log(P)\right) }[/math]
NB [math]\displaystyle{ O(mn + nc) }[/math] [math]\displaystyle{ O\left(\dfrac{mn}{P} + nc \log(P) \right) }[/math]
NN [math]\displaystyle{ O(mn + nc) }[/math] [math]\displaystyle{ O\left(\dfrac{mn}{P} + nc \log(P)\right) }[/math]
GDA [math]\displaystyle{ O(mn^2 + n^3) }[/math] [math]\displaystyle{ O\left(\dfrac{mn^2}{P} + \dfrac{n^3}{P'} + n^2 \log(P)\right) }[/math]
PCA [math]\displaystyle{ O(mn^2 + n^3) }[/math] [math]\displaystyle{ O\left(\dfrac{mn^2}{P} + \dfrac{n^3}{P'} + n^2 \log(P)\right) }[/math]
ICA [math]\displaystyle{ O(mn^2 + n^3) }[/math] [math]\displaystyle{ O\left(\dfrac{mn^2}{P} + \dfrac{n^3}{P'} + n^2 \log(P)\right) }[/math]
k-means [math]\displaystyle{ O(mnc) }[/math] [math]\displaystyle{ O\left(\dfrac{mnc}{P} + mn\log(P) \right) }[/math]
EM [math]\displaystyle{ O(mn^2 + n^3) }[/math] [math]\displaystyle{ O\left(\dfrac{mn^2}{P} + \dfrac{n^3}{P'} + n^2 \log(P)\right) }[/math]
SVM [math]\displaystyle{ O(m^2n) }[/math] [math]\displaystyle{ O\left(\dfrac{mn^2}{P} + n^2 \log(P)\right) }[/math]
Table 1: Time Complexity Analysis.