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.
2. In theoretical computer science and mathematics, the theory of computation is the branch that deals with how efficiently problems can be solved on a model of computation, using an algorithm.
3. The field is divided into three major branches: automata theory and language, computability theory, and computational complexity theory, which are linked by the question: "What are the fundamental capabilities and limitations of computers?"
4. In computability theory and computational complexity theory, a model of computation is the definition of the set of allowable operations used in computation and their respective costs.
5. It is used for measuring the complexity of an algorithm in execution time and or memory space: by assuming a certain model of computation, it is possible to analyze the computational resources required or to discuss the limitations of algorithms or computers.
6. So in principle, any problem that can be solved (decided) by a Turing machine can be solved by a computer that has a finite amount of memory.
7. A finite-state machine (FSM) or finite-state automaton (plural: automata), or simply a state machine, is a mathematical model of computation used to design both computer programs and sequential logic circuits. It is conceived as an abstract machine that can be in one of a finite number of states.
8. An abstract machine, also called an abstract computer, is a theoretical model of a computer hardware or software system used in automata theory. Abstraction of computing processes is used in both the computer science and computer engineering disciplines and usually assumes a discrete time paradigm
9. One popular model more similar to real modern machines is the RAM model, which allows random access to indexed memory locations.
10. In computer science and automata theory, the state of a digital logic circuit or computer program is a technical term for all the stored information, at a given instant in time, to which the circuit or program has access
11. In electronics, a logic gate is an idealized or physical device implementing a Boolean function; that is, it performs a logical operation on one or more logical inputs, and produces a single logical output.
12. Digital logic circuits can be divided into two types: combinational logic, whose output signals are dependent only on its present input signals, and sequential logic, whose outputs are a function of both the current inputs and the past history of inputs.
14. a computer program stores data in variables, which represent storage locations in the computer's memory. The contents of these memory locations, at any given point in the program's execution, is called the program's state.
15. The term is often used in contrast to declarative programming, which focuses on what the program should accomplish without specifying how the program should achieve the result.
16. In some of these programs, information about previous data characters or packets received is stored in variables and used to affect the processing of the current character or packet. This is called a "stateful protocol" and the data carried over from the previous processing cycle is called the "state". In others, the program has no information about the previous data stream and starts "fresh" with each data input; this is called a "stateless protocol".
17. In computability theory and computational complexity theory, a model of computation is the definition of the set of allowable operations used in computation and their respective costs.
18. A Turing machine is an abstract machine[1] that manipulates symbols on a strip of tape according to a table of rules; to be more exact, it is a mathematical model that defines such a device.
19. An automaton is supposed to run on some given sequence of inputs in discrete time steps.
20. In mathematics, computer science, and linguistics, a formal language is a set of strings of symbols that may be constrained by rules that are specific to it.
21. The alphabet of a formal language is the set of symbols, letters, or tokens from which the strings of the language may be formed; frequently it is required to be finite.
22. A formal language is often defined by means of a formal grammar such as a regular grammar or context-free grammar, also called its formation rule.
23. In computational complexity theory, decision problems are typically defined as formal languages, and complexity classes are defined as the sets of the formal languages that can be parsed by machines with limited computational power.
24. Automata theory is the study of abstract machines (or more appropriately, abstract 'mathematical' machines or systems) and the computational problems that can be solved using these machines.2
25. Language theory is a branch of mathematics concerned with describing languages as a set of operations over an alphabet.
26. Because automata are used as models for computation, formal languages are the preferred mode of specification for any problem that must be computed.
27. The statement that the halting problem cannot be solved by a Turing machine[7] is one of the most important results in computability theory, as it is an example of a concrete problem that is both easy to formulate and impossible to solve using a Turing machine.
28. Computability theory, also called recursion theory, is a branch of mathematical logic, of computer science, and of the theory of computation that originated in the 1930s with the study of computable functions and Turing degrees.
29. In order to analyze how much time and space a given algorithm requires, computer scientists express the time or space required to solve the problem as a function of the size of the input problem.
30. The Millennium Prize Problems are seven problems in mathematics that were stated by the Clay Mathematics Institute in 2000.
31. Hamilton's mathematical contributions are primarily in the field of differential geometry and more specifically geometric analysis. He is best known for having discovered the Ricci flow and starting a research program that ultimately led to the proof, by Grigori Perelman, of the Thurston geometrization conjecture and the solution of the Poincaré conjecture. In August 2006, Perelman was awarded, but declined, the Fields Medal for his proof, in part citing Hamilton's work as being foundational.
32. An algorithm is said to be of polynomial time if its running time is upper bounded by a polynomial expression in the size of the input for the algorithm, i.e., T(n) = O(nk) for some constant k.
33. Problems for which a deterministic polynomial time algorithm exists belong to the complexity class P, which is central in the field of computational complexity theory.
34. Cobham's thesis states that polynomial time is a synonym for "tractable", "feasible", "efficient", or "fast".
35. P is the smallest time-complexity class on a deterministic machine which is robust in terms of machine model changes.
36. the set of problems that can be solved by an abstract machine M using O(f(n)) of resource R, where n is the size of the input.
37. complexity classes can be defined based on function problems (an example is FP), counting problems (e.g. #P), optimization problems, promise problems, etc.
38. Logic (from the Ancient Greek: λογική, logike)[1] is the branch of philosophy concerned with the use and study of valid reasoning.
39. Logic is often divided into three parts: inductive reasoning, abductive reasoning, and deductive reasoning.
40. An algorithm is an effective method expressed as a finite list[4] of well-defined instructions[5] for calculating a function.
41. Determinism is the philosophical position that for every event, including human interactions, there exist conditions that could cause no other event.
42. Usually, efficient data structures are key to designing efficient algorithms.
43. 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.
44. Three significant characteristics of distributed systems are: concurrency of components, lack of a global clock, and independent failure of components.
45. Machine learning is a scientific discipline that deals with the construction and study of algorithms that can learn from data. Such algorithms operate by building a model based on inputs[21]:2 and using that to make predictions or decisions, rather than following only explicitly programmed instructions.
46. Modern cryptography is heavily based on mathematical theory and computer science practice; cryptographic algorithms are designed around computational hardness assumptions, making such algorithms hard to break in practice by any adversary.
47. performing appropriate mathematical analysis can contribute to the reliability and robustness of a design
Areas:
Algorithms
Data Structures
Computational Complexity Theory
Distributed Computation
Parallel Computation
Machine Learning
Cryptography
Information Theory
Computational Number Theory
Automata Theory
Coding Theory
Computational Learning Theory
Formal Methods
Program Semantics
Symbolic Computation
Computational Geometry
Very-Large-Scale Integration
Computational Biology
Quantum Computation
Terms:
Halting Problems
Theory:
Automata Theory
Formal Language
Computability Theory/Theory of Computation
Computational Complexity Theory
Programming:
Imperative Programming
Declarative Programming
Machines:
Abstract Machine
RAM Model
Finite State Machine
Turing Machine [Critical]
Constant Time
Logarithmic Time
linear Time
Quadratic Time
Polynomial Time
Exponential Time
Factorial Time
Model of Computation:
Turing machines,
finite state machines,
recursive functions,
lambda calculus,
combinatory logic,
cellular automaton,
abstract rewriting systems.
People:
Grigori Yakovlevich Perelman is a Russian mathematician who made landmark contributions to Riemannian geometry and geometric topology before apparently withdrawing from mathematics.
Categories about Model of Computation:
1. abstract machine and models equivalent to it (e.g. lambda calculus is equivalent to the Turing machine) used in proofs of computability and upper bounds on computational complexity of algorithms,
2. decision tree models, used in proofs of lower bounds on computational complexity of algorithmic problems.
Fields:
NP-Hardness
NP-Complete
Examples for FSM:
Vending Machine
Traffic Lights
References:
https://en.wikipedia.org/wiki/Theoretical_computer_science
https://en.wikipedia.org/wiki/Theory_of_computation
https://en.wikipedia.org/wiki/Abstract_machine
https://en.wikipedia.org/wiki/State_(computer_science)
https://en.wikipedia.org/wiki/Model_of_computation
https://en.wikipedia.org/wiki/Finite-state_machine
https://en.wikipedia.org/wiki/Formal_language
https://en.wikipedia.org/wiki/Automata_theory
https://en.wikipedia.org/wiki/Millennium_Prize_Problems
https://en.wikipedia.org/wiki/Time_complexity#Polynomial_time
https://en.wikipedia.org/wiki/Theoretical_computer_science
https://en.wikipedia.org/wiki/Logic
https://en.wikipedia.org/wiki/Amdahl%27s_law
No comments:
Post a Comment