Algorithms

  1. Complexity Theory
    1. Computability Theory
      1. Models of Computation
        1. Turing Machines
          1. Formal Definition
            1. Components
              1. Tape
                1. Head
                  1. States
                    1. Transition Function
                    2. Configurations
                      1. Computation Steps
                        1. Acceptance and Rejection
                        2. Church-Turing Thesis
                          1. Statement
                            1. Implications
                              1. Alternative Models
                            2. Decidability
                              1. Decidable Languages
                                1. Undecidable Problems
                                  1. The Halting Problem
                                    1. Problem Statement
                                      1. Proof of Undecidability
                                        1. Diagonalization Argument
                                        2. Rice's Theorem
                                          1. Post Correspondence Problem
                                          2. Reduction Techniques
                                            1. Many-One Reductions
                                              1. Turing Reductions
                                            2. Recursive and Recursively Enumerable Languages
                                              1. Definitions
                                                1. Relationships
                                                  1. Closure Properties
                                                2. Computational Complexity Classes
                                                  1. Time Complexity Classes
                                                    1. Class P
                                                      1. Polynomial-Time Algorithms
                                                        1. Examples of P Problems
                                                          1. Closure Properties
                                                          2. Class NP
                                                            1. Nondeterministic Polynomial Time
                                                              1. Verifier-Based Definition
                                                                1. Certificate Verification
                                                                  1. Examples of NP Problems
                                                                    1. Relationship to P
                                                                    2. Class co-NP
                                                                      1. Relationship to NP
                                                                      2. Polynomial Hierarchy
                                                                        1. Levels of the Hierarchy
                                                                          1. Collapse Conditions
                                                                        2. Space Complexity Classes
                                                                          1. PSPACE
                                                                            1. NPSPACE
                                                                              1. Savitch's Theorem
                                                                                1. PSPACE-Completeness
                                                                                2. Other Complexity Classes
                                                                                  1. EXPTIME
                                                                                    1. NEXPTIME
                                                                                      1. BPP
                                                                                        1. RP and co-RP
                                                                                          1. ZPP
                                                                                        2. NP-Completeness Theory
                                                                                          1. NP-Complete Problems
                                                                                            1. Cook-Levin Theorem
                                                                                              1. Statement
                                                                                                1. Proof Outline
                                                                                                  1. Significance
                                                                                                  2. First NP-Complete Problem
                                                                                                    1. Boolean Satisfiability (SAT)
                                                                                                  3. Proving NP-Completeness
                                                                                                    1. Two-Step Process
                                                                                                      1. Showing Problem is in NP
                                                                                                        1. Reduction from Known NP-Complete Problem
                                                                                                        2. Polynomial-Time Reductions
                                                                                                          1. Transitivity
                                                                                                          2. Reduction Techniques
                                                                                                            1. Direct Construction
                                                                                                              1. Gadget-Based Reductions
                                                                                                                1. Local Replacement
                                                                                                              2. Classic NP-Complete Problems
                                                                                                                1. 3-SAT
                                                                                                                  1. Problem Definition
                                                                                                                    1. Reduction from SAT
                                                                                                                    2. Clique Problem
                                                                                                                      1. Problem Definition
                                                                                                                        1. Reduction from 3-SAT
                                                                                                                        2. Vertex Cover
                                                                                                                          1. Problem Definition
                                                                                                                            1. Reduction from Clique
                                                                                                                            2. Hamiltonian Path
                                                                                                                              1. Problem Definition
                                                                                                                                1. Reduction Techniques
                                                                                                                                2. Subset Sum
                                                                                                                                  1. Problem Definition
                                                                                                                                    1. Reduction from 3-SAT
                                                                                                                                    2. Partition Problem
                                                                                                                                      1. Graph Coloring
                                                                                                                                        1. Independent Set
                                                                                                                                        2. NP-Hard Problems
                                                                                                                                          1. Relationship to NP-Complete
                                                                                                                                            1. Examples
                                                                                                                                              1. Traveling Salesperson Problem
                                                                                                                                                1. General Satisfiability
                                                                                                                                              2. Implications of P vs NP
                                                                                                                                                1. Open Problem Status
                                                                                                                                                  1. Consequences if P = NP
                                                                                                                                                    1. Consequences if P ≠ NP
                                                                                                                                                      1. Practical Implications
                                                                                                                                                      2. Coping with NP-Completeness
                                                                                                                                                        1. Approximation Algorithms
                                                                                                                                                          1. Parameterized Complexity
                                                                                                                                                            1. Exponential-Time Algorithms
                                                                                                                                                              1. Heuristic Methods
                                                                                                                                                                1. Special Cases