The Halting Problem: The Unsolvable Problem

Поділитися
Вставка
  • Опубліковано 3 гру 2024

КОМЕНТАРІ • 435

  • @NeerajSharma-rf2ev
    @NeerajSharma-rf2ev 4 роки тому +348

    Easiest explanation I have ever seen... really awesome!

    • @flo0778
      @flo0778 5 місяців тому

      because its wrong luls

    • @iamamaze8790
      @iamamaze8790 5 місяців тому

      @@flo0778 wdym

    • @flo0778
      @flo0778 5 місяців тому

      @@iamamaze8790 D is a computable function it takes an input x and then you can compute D(x) (potentially for ever).
      H can say if a computation will run forever.
      At 2:11. H decides if D weather D will halt or continue forever. But this makes no sense because D is a function. It needs an argument to be a program. It makes no sense to say "it holds" or "it continues forever" for a function : it could depend on the argument.
      This proof just proves that there is no algorithm that can say if a function D will stop or halt for all arguments. Which was trivial to prove : such a H cannot work for a function that stops or doesn't stop depending on the argument (example f(x : boolean) = while(x) {}).
      The real proof actually proves that there is no computable function H that can say if a program will halt; it uses a clever trick with the arguments of function D and function H. check any other video.

  • @roxferesr
    @roxferesr Рік тому +63

    This explanation is AMAZING! Most other videos feel like the author doesn't really know they problem themselves. Thanks I finally got it

  • @johndebord7802
    @johndebord7802 3 роки тому +37

    This is the best explanation of the halting problem on UA-cam by far

  • @L99BAN
    @L99BAN 3 роки тому +41

    I feel as though this video filled the gaps in my misunderstanding. So clear! Thank you so much

  • @jordanjohn01
    @jordanjohn01 3 роки тому +10

    Ive literally watched 10 other vids on the halting problem, and this is the only one that made sense. TY

  • @pslaw
    @pslaw 3 роки тому +77

    Thank you so much for the clear explanation 🙏 I've watched countless clips about the halting problems, but never got to wrap my head around it. You did an awesome job at explaining in four minutes 👍 Please make more videos about computing, not the coding but the math behind it.

  • @bisheshshrestha2740
    @bisheshshrestha2740 Рік тому +12

    I am preparing for my Automata exam. I've been struggling understanding the Halting problem this whole time. Your video was so precise and easy to understand. Keep up the good work!

  • @shadmantabib5014
    @shadmantabib5014 Рік тому +2

    This is one of the best intuitive channels for one to learn basics of fundamental computer science problems

  • @karanmunjani3256
    @karanmunjani3256 3 роки тому +7

    WOW!!! I just got ton of conceptual knowledge of TOC in detail with all the kind of theories involved inside it. Bunch of thanks to you Lydia Cheah!!!

  • @nuton9706
    @nuton9706 Рік тому +5

    Your explanation and animation help me to understand the Halting Problem! Thank you so much for such great video and please keep up the good work!

  • @HiJackLeeLee
    @HiJackLeeLee 3 роки тому +20

    I believe this is the most easy-to-understand explanation and cutest animation about Halting Promble that I can find on UA-cam.
    Appreciate.

  • @kopanhagen668
    @kopanhagen668 7 місяців тому +4

    It's so brilliantly explained, it really makes you think-why didn’t I get this sooner?

  • @dsareis9134
    @dsareis9134 3 роки тому +13

    Your explanation were quite clear, understandable and enjoyable, thank you

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

      I enjoyed all the videos I watched on your channels

  • @MATHONG
    @MATHONG 2 роки тому +1

    I'm Korean. It's informative, cute, and informative. Thanks to you, I understood it first. This was the most important task.

  • @mastadodo
    @mastadodo 4 роки тому +11

    Simple and intuitive explanation, thank you very much!

  • @Nitin-_-_-_-_-_-_-00971
    @Nitin-_-_-_-_-_-_-00971 3 роки тому +6

    The most easiest explanation on YT.❤️❤️
    I subscribed.

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

    This deserves one million more views. Thank you.

  • @miguelsr4272
    @miguelsr4272 2 роки тому +2

    Thank you very much for this video. It's the first video I've seen that explain the problem with such simplicity

  • @illyushen9856
    @illyushen9856 3 роки тому +13

    Why did ye stop making videos

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

    Easily the best explanation I’ve seen

  • @tejas.873
    @tejas.873 Місяць тому

    Wow this was the simplest yet most interesting and helpful video explanation!!

  • @amritborah2773
    @amritborah2773 2 роки тому +1

    Brilliant animation and vocal skills. Much Thanks & Love :)

  • @BenM2291
    @BenM2291 10 місяців тому

    Needed to quickly get a grasp on this for my dissertation. Definitely would've taken a long time if researched elsewhere. Thanks for the quick explanation

  • @justtom7860
    @justtom7860 6 місяців тому

    Short and precise, whilst still being engaging with amazing animations! A well deserved like :D

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

    This person has to be the best teacher ever!

  • @kid_kulafu_1727
    @kid_kulafu_1727 4 роки тому +3

    you definitely needs more subscriber. simple explanation. I easily got it. thank you! can you explain Turing complete and state machines?

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

    Easiest explanation I've seen so far.

  • @aavashkuikel1341
    @aavashkuikel1341 7 місяців тому

    Awesome explanation. Short and concise! Love from Louisiana, USA.

  • @HGGdragon
    @HGGdragon 3 роки тому +20

    I somehow misread the title as "The Hailing Problem" and therefore thought the guy on the thumbnail was Hitler.... I was mildly confused.

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

      Henceforth I'll be referring to him as "Adam" Turing.

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

      The author likes to repeat that H is always right so...

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

    One of the greatest explanations ever thanks for the video

  • @Ms_Ink
    @Ms_Ink 2 роки тому +1

    Thank you so much!! I’ve watched quite a few videos about this but this one really made sense!

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

    thank you so much i did not understand this halting problem in other programs but now it is pretty clear.

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

    3 years later and this is making things soo understandable

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

    Finally understood after watching tons of videos.... Thank you very much 🙏🙏

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

    Finally understand this! Thanks for the video, shame the channel is dead because the voice and animation are both awesome.

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

    Best explanation ever, thank you.

  • @AkikoHaruki-i5o
    @AkikoHaruki-i5o 4 дні тому

    I wondered if was dumb after watching the other videos and going “huh??” each time. I think I’m grasping it a bit better with yours. Thank you so much!!

    • @paulblart7378
      @paulblart7378 День тому

      I don't like any of these visual proofs on youtube. I think the formal mathematical proof is much easier to understand.

  • @dishendra.
    @dishendra. 10 місяців тому

    short, precise, easy to understand !

  • @bertansadiki6794
    @bertansadiki6794 Рік тому +2

    job interviews be like:
    Hmmm, it seems you dont understand the hard problems. Lets go with something easier. Write an algorithm that solves the halting problem in O(1) time!

    • @paulblart7378
      @paulblart7378 Рік тому +1

      Probably missed your joke, but that's really easy. Here's the program:
      print("It's not possible")

  • @shadmimhasansifat187
    @shadmimhasansifat187 4 роки тому

    I have watched many videos (many halting machines) around UA-cam..
    But your cute machine's just made me understood the problem..
    Thanks a ton...
    I really appreciate...
    Oh God thanks 😇

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

    really really amazing explanation , i had problem understanding this topic but now it is clear ! i am gonna recommend this channel to my friends . Keep posting more :D

  • @NeerajSingh-or9hd
    @NeerajSingh-or9hd Рік тому

    Crystal clear explanation.

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

    This video is really awesome , it gave me the clarity of the proof of this halting problem, I really appreciate the work, thank you so much bro...

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

    This is the best explanation. Now I understood the concept clearly.Thanks a lot❤❤

  • @desert-storm7
    @desert-storm7 11 місяців тому

    Proof of "everything can be explained". Awesome!

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

    Best explanation of this problem

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

    Thank you for this, excellent explanation, I actually understand the issue now!

  • @dunjasavic7583
    @dunjasavic7583 3 роки тому +4

    Thank you for your explanation, it was really easy to catch on, the best I saw. I have one question for you though, it is probably stupid because I have no programming knowledge, why is the program D programmed to do the opposite of what H says?

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

      I think the purpose of creating the program D that does the opposite of H is to make this proof, i.e. to show that the program H cannot exist. Using this program D doesn't affect the initial assumption because you should be able to design this program D since it is possible, and D can be used as input into itself since D itself is also a program.

    • @gloverelaxis
      @gloverelaxis Рік тому +1

      we've deliberately designed D *just* for the purpose of using it to prove something about how H works. I'm not sure how Alan Turing figured out (or guessed) that this particular behaviour (negating H) would be useful for proving H can't exist - that kind of creativity is the hard part of coming up with formal proofs, after all!

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

    Best Explanation hands down!!

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

    Amazing explanation. Thank you!

  • @shogunrua1040
    @shogunrua1040 9 місяців тому

    Thank you! I finally understood what it means.

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

    Awesome video. This should be used in lessons.
    Love it!

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

    Wow. This a such a good video, and I’m only half way through.

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

    First video that explained it so I can understand it! :)

  • @vijaykumar-cz7ot
    @vijaykumar-cz7ot 4 місяці тому

    How is this still free ?
    Damn this is some high quality educational playlist

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

    Great explanation, good job!

  • @adrianbermudez7005
    @adrianbermudez7005 3 місяці тому +2

    Is basically the pinochio paradox, its the exact same thing, but with computers

  • @JessicaReginadosSantos
    @JessicaReginadosSantos 27 днів тому

    BEST FREAKIN' EXPLENATION IN THE WORLD, THANK YOU SO SO SO MUCH

  • @-ChiragP
    @-ChiragP 2 роки тому

    Finally understood this thank you so much

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

    this is a kind of explanation for those people who are curious and want to learn for their own knowledge; this is not for those people who are studying the night before exam.

  • @jorandebraekeleer7557
    @jorandebraekeleer7557 4 роки тому

    Very nice explanation & animation!

  • @olgermannik1830
    @olgermannik1830 Рік тому +8

    The function H, as per your description, is meant to take in two arguments: a program (or function) P and an input i for that program. It doesn't assume that P has no arguments. The function H(P, i) would then return true if P(i) halts (returns a result after a finite number of steps) and false if P(i) loops indefinitely.
    Here's a more precise sketch of the halting problem:
    """
    def H(P, i):
    """
    H is a hypothetical function that determines whether program P halts on input i.
    Returns True if P halts on i, and False if P runs forever on i.
    """
    raise NotImplementedError
    def D(P):
    if H(P, P):
    while True:
    pass # Loop indefinitely.
    else:
    return # Halt.
    # Now consider D(D). There are two cases:
    #case1:
    # If H(D, D)==False then, by definition of D, D(D) must halt.
    # But if H(D, D)==False then, by definition of H, D(D) must never halt.
    #case2:
    # H(D,D)==True , then by the definition of D, D(D) must never halt.
    # But if H(D, D)==True, then, by definition of H, D(D) must halt.
    # In either case, we have a contradiction.
    """
    This is a contradiction, which means our initial assumption that function H can exist must be wrong. Therefore, no such function H can exist that accurately determines whether arbitrary programs halt on all inputs. This is the essence of the Halting Problem, and it also implies that there's no algorithm that can determine whether any arbitrary first-order logic formula is satisfiable.

    • @grevel1376
      @grevel1376 5 місяців тому

      you just rewrote what she said

    • @olgermannik1830
      @olgermannik1830 5 місяців тому

      @@grevel1376
      """
      def A(x):
      #A is a hypotetical function that returns its argument called with itself as its argument.
      return not x(x)
      #from definition of A: A(A)==not A(A)
      #it is a contadiction.
      #Therefore function that determines what does its argument return, if called with itself as its argument, does not exist.
      print(A(A))#never returns.
      """

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

    thank you for this, I dont know why i needed to or wanted to learn this, but Now I somewhat understand it. However everything else involved in this I dont understand.

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

    beautifully explained, thank you!

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

    Beautiful!! Keep making videos!! Mabe one explaining the Entscheidungsproblem or Type theory would be great!

  • @dariy1999
    @dariy1999 11 місяців тому

    Really good explanation

  • @dumitruluca3571
    @dumitruluca3571 20 годин тому

    great explanation

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

    Fantastic video and amazing visuals!!! :D

  • @shivanggarg2270
    @shivanggarg2270 17 днів тому

    this was awesome genuinely

  • @ShaheenSultana-p9p
    @ShaheenSultana-p9p 9 місяців тому +1

    I like❤this halting problem ,thanks🌹🙏❤ for creating this video 🎥 I enjoyed😊😂and cartoons are so cute I like it ❤. And getting halting problem knowledge📚 very easily.
    Thank you❤.......

  • @MuhammadAbdullah-qi1of
    @MuhammadAbdullah-qi1of 2 роки тому

    Tomorrow is my semester examination
    Thank you to your whole team 😭❤️

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

    great audio and video representation

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

    this is an awesome explanation, thanks :)

  • @snipebuddy
    @snipebuddy 2 роки тому +1

    very underrated

  • @tunaylmaz7405
    @tunaylmaz7405 16 днів тому

    i am watching this like 30 minutes before my quiz and what was i doing love it so much easier

  • @therightfulobstacle8297
    @therightfulobstacle8297 Рік тому +1

    It's like, "I am Lying... Is this statement a truth or a lie?"

  • @Anders01
    @Anders01 11 місяців тому

    But what if a H* program is defined with the additional constraint that it only works as a standalone program? H* determines whether a program halts or not and when feeding H* to itself it says that it halts.

    • @paulblart7378
      @paulblart7378 День тому

      That makes no difference. It doesn't matter where H is called from, its output for a certain input is always the same. This is why I don't like these visual explanations, they make things like this confusing. The formal mathematical proof is the simplest way to understand it, in my opinion.

    • @Anders01
      @Anders01 День тому

      @@paulblart7378 Then what if H(P, I) is modified with the additional constraint if(P == I) return undefined? Maybe that's cheating haha, because H is then no longer universal and can in its modified form return truth, false and undefined, but anyway.

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

    Thanks for the help. It's really help me to understand more. Very good animation, I really like this.🤖

  • @saikoushik4064
    @saikoushik4064 7 місяців тому

    Easiest and Cute explanation

  • @jeevansch.5599
    @jeevansch.5599 3 роки тому

    This is so good
    Best content in my opinion

  • @mrityunjoynath7673
    @mrityunjoynath7673 2 роки тому +6

    This is the solution to the confusion (Read this word by word you can then sleep peacefully):
    1) We know that from h we can derive h+
    2) If h+ exists then h exists
    3) And h+ returns opposite of whatever it is supposed to tell about an input
    4) We make it to contradict by inputting itself into it, now even though it’s saying the opposite of it’s input but even doing the correct thing it’s contradicting with itself!
    5) Now if h+ contradicts itself, it can’t exist and so h can’t exist!

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

      this has to be the easiest explanation on the entire internet to the Halting Problem.

  • @Kraboobee
    @Kraboobee 5 місяців тому

    I feel so bad for the sad H :( thanks for the great explanations!

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

    why you so less suscriber 😐she deserves more

  • @darshanpoudel3125
    @darshanpoudel3125 3 місяці тому

    Great Explanation ✨

    • @paulblart7378
      @paulblart7378 Місяць тому +1

      It really isn't... look how many people in the comments are confused. The formal mathematical proof is simpler to understand than any of these weird visual explanations.

  • @adenm8963
    @adenm8963 Рік тому +1

    Basically the classic "This statement is false" paradox

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

    Omg this video is best! Love the way u explained! ❤❤😊

  • @masterprattu
    @masterprattu 4 роки тому +1

    Great video!

  • @可惜前
    @可惜前 2 роки тому

    Thank you lydia!

  • @sahilghuge5302
    @sahilghuge5302 17 днів тому

    OMG loved your video!! thanks a lot

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

    Thank you

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

    Really cool problem!

  • @AakashKumar-gl2fk
    @AakashKumar-gl2fk 4 роки тому

    Best explanation

  • @NeerajSharma-rf2ev
    @NeerajSharma-rf2ev 4 роки тому

    Please make a video on solvable and unsolvable problems..

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

    Nooo poor H , you are right don't listen to other people(2.:24 to 2:29 💔)

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

    Very cute channel btw.
    I've been studying AI for almost two years and will definitely recommend your channel to all new cs students (:

  • @user-nb2yk9kf9k
    @user-nb2yk9kf9k 3 роки тому +1

    But if D follows what H says, instead of doing the opposite, will it solve the problem?

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

      What? It dosen't solve anything, the problem is that H isn't right in the situation that it is in. Of course H is usualy right, but not always.

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

    THANKS

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

    I love you! thank you so much!

  • @flo0778
    @flo0778 5 місяців тому

    There is something wrong no isn't it ?
    lets call x the program that is passed to H (the sheet that appears at 2:05). I don't understand what x is because D needs some input to be runnable. D is a funciton of some data isn't it ? So to be able to call that a x "program" that can either run indefinitely or stop, x has to be D(d1) even if the data d1 is empty. (I can construct easily a program which has different behaviors based on the data passed to it, so H cannot be a program that takes a function as an argument, it has to be a deterministic runnable with no parameters)
    at 2:20, there is no contradicion then, H said that x ( i.e. D(d1) halts) and by construction we see that D(x) = D(D(d1)) does not halt. This would only be a contradiction if D(d1) = d1 which remains to be proven there is no reason why D(D(d1)) and D(d1) should behave in the same way.
    I don't get it nothing makes sense here, this is a hoax please help.
    Edit :
    I found an actual math video that explains the real proof which does involve the data of D not some simplified version that does not work. I'm considering reporting this under the "misinformation" category

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

    nice explain