Cook-Levin Theorem: Full Proof (SAT is NP-complete)

Поділитися
Вставка
  • Опубліковано 25 сер 2024
  • Here we give the full proof that SAT is NP-complete, which is a general polynomial-time reduction from any problem B in NP. We use the "tableau" proof which encodes the transitions of a nondeterministic poly-time TM.
    If you like this content, please consider subscribing to my channel: / @easytheory
    ▶SEND ME THEORY QUESTIONS◀
    ryan.e.dougherty@icloud.com
    ▶ABOUT ME◀
    I am a professor of Computer Science, and am passionate about CS theory. I have taught many courses at several different universities, including several sections of undergraduate and graduate theory-level classes.

КОМЕНТАРІ • 25

  • @4leks4ndr47
    @4leks4ndr47 Рік тому +7

    i passed my exam thanks to you, thank you!! great job

  • @charlesrodriguez6276
    @charlesrodriguez6276 3 роки тому +9

    Bro you are literally a life saver. Your explanations are amazing, the content is top-notch, you put a lot of effort into explaining each detail. Will definitely buy the textbook you have coming thank you for this content!

  • @MaxGelm
    @MaxGelm 3 роки тому +5

    Thanks for the clear explanation! Made me understand everything I didn't during the lectures.

  • @PriyaSharma-sz1sl
    @PriyaSharma-sz1sl 9 місяців тому +2

    Ultimate explanation 💯👌

  • @chretienli6405
    @chretienli6405 2 роки тому

    You are the curriculum... appreciate you so much man

  • @hoanguyentrong2636
    @hoanguyentrong2636 3 роки тому +2

    You're the best . Thank you so much

  • @KnakuanaRka
    @KnakuanaRka 3 роки тому

    Now that is a mind blow. 💥8|
    We just went over it a few days ago in Discrete 2. Talk about crazy.

  • @jemesmemes9026
    @jemesmemes9026 3 роки тому +1

    for anyone getting this in their recommended, SAT stands for Boolean Satisfiability Problem

    • @EasyTheory
      @EasyTheory  3 роки тому +1

      Thanks! I changed the title to reflect that.

  • @YoussefKossale
    @YoussefKossale 3 місяці тому +1

    I don't quite understand how we can put NTM configurations one after the other in the table? do we put only a path of configs from the execution tree of the NTM?

    • @goranivankovic221
      @goranivankovic221 Місяць тому

      We don't actually fill in this table with values, we only encode that they must follow the rules of the given NTM. If all formulas 1,2,3,4 are True, then there exists some path of configs that finishes with q accept. It is maybe like Sudoku. We can solve the sudoku in multiple ways. Once we solve it we can track back for each step and check that rules of sudoku were followed. This formula would be True only if there exists some way of solving the Sudoku, not telling us exactly how to fill it in.

  • @alicianieto2822
    @alicianieto2822 Рік тому

    Thanks!

  • @user-xj6oq1wh6z
    @user-xj6oq1wh6z Рік тому

    ur the best, tks!!

  • @Giorgio-pv1hj
    @Giorgio-pv1hj 3 роки тому

    you're great! thanks!

  • @joesilvester7235
    @joesilvester7235 3 роки тому +1

    what is the time complexity for this

    • @EasyTheory
      @EasyTheory  3 роки тому

      I'm assuming you mean the reduction, and that will be some polynomial multiplied by the runtime of the original Turing Machine. (The "size" of the formula involves O(n^(2c)) "cells", where n^c was the runtime of the TM.) So the size of the *formula* is a polynomial in the size of the original TM. However, the runtime of *any algorithm for SAT* might not necessarily be polynomial. This is purely the reduction from any NP problem to SAT.

  • @BjarkeEbert
    @BjarkeEbert 2 роки тому

    Thanks for the explanation! Where it clicked for me is that given the input to the Turing machine, there's a known upper bound on the Turing runtime, and thus on the tape, making it a finite problem for THAT input: no infinite tape.
    Small addition to your explanation around 20 minutes: I guess the important thing is that Phi1..Phi4 can be generated in polynomial TIME, not that the result formula had polynomial SIZE (which follows, btw)

  • @KnakuanaRka
    @KnakuanaRka 3 роки тому

    Could somebody explain why the columns of # at the start and end are necessary?

    • @guyelf9419
      @guyelf9419 3 роки тому +1

      I believe it's just a convention to mark the beginning and end of the Turing Machine. When you're running the TM you can't really tell on which cell index you're located and since here we are limited by the size of the table to be of O(n^2k), this is how you know you reached those limits.

  • @sheikhshakilakhtar6844
    @sheikhshakilakhtar6844 3 роки тому

    I have a request. While I think I have understood this proof, which is also the one presented in Sipser's book, I am having a hard time trying to understand the one used in the book by Arora and Barak. Would you mind making a video on that and tell us where the two proofs are different and where similar?

    • @EasyTheory
      @EasyTheory  3 роки тому +1

      I'll look and see! I'm guessing the terminology is slightly different but the basic proof strategy is the same.

    • @sheikhshakilakhtar6844
      @sheikhshakilakhtar6844 3 роки тому

      @@EasyTheory Thank you