40 likes | 180 Views
This article provides a comprehensive overview of Big O notation, its significance in determining time and memory complexity, and how it relates to algorithm efficiency. We explore key concepts such as order of magnitude, instances of problems, and Nirvana of polynomial time reductions. Additionally, we delve into the satisfiability problem (SAT), highlighting its NP-completeness and Cook's findings on transforming NP problems. With insights into cellular automata and their functional dynamics, this piece serves as a valuable resource for students and professionals in computer science.
E N D
Big O Notatation • How long will it take? • How much memory will it use? • Order of Magnitude Notation • instance size n • f(n) <= c g(n) for all n >= N • than, f(n) = O(g(n)) • O(n) < O(n log n)<O(n1/2)<O(n2)<O(2n)
Satisfiability (SAT) • Boolean Expression: • (x1+~x3+x4)(~x1+~x2+~x4)(~x2+x3)(~x1+x2+x4) • What combination of variable values (0,1) makes statement true or false (1,0) • 2n combinations • Decision problem: Is formula satisfiable?
NP-complete • NP: Nondeterministic Polynomial Time • 1970, Cook found way to transform every problem in NP to a single, complete problem (satisfiability). • Transform in polynomial time • Instance of one problem has solution if and only if instance of other problem does • Solve any instance of any problem equivalent to solving some instance of SAT
Cellular Automata • An automaton. A copy on each cell in n-dimensional grid • A neighborhood function that specifies which of the cell’s adjacent cells affect its state. • A transition function that specifies mapping from state of neighbor cells to state of given cell