![]() |
|
![]() |
| Yeah, the word is "uniform", e.g. a uniform family of circuits is one where there is a Turing machine where, for each n, it outputs the circuit for inputs of size n. |
![]() |
| > a program that just prints the answer for all of those things
Everything can be textualized, but making a complete interpreter for it requires understanding what intelligence really is. |
![]() |
| If NP somehow was proved to be P, with a likely value being something like O(n^(10^10^10)) or much larger, would the actual constructive reduction be at all useful? |
![]() |
| A lot of stuff in math doesn't work the same way without the law of the excluded middle, but it's always assumed unless it's stated explicitly that we're working under some other logical system. |
![]() |
| FYI in the textbook version, they do say to assume the question is unambiguously binary (Sipser 2nd ed. page 162). It is very astute of you to catch that! |
![]() |
| This is a very good (and funny) response.
If you're allowed to invoke God ironically in the question, you're allowed to take that seriously (meta-ironically?) in the rebuttal! |
![]() |
| Nope. In a discourse constrained by regular logic, it's a logically consistent argument. Their rules, not mine!
Any other movie quotes to put forward in lieu of counter-arguments? |
![]() |
| Sure, I'm getting mixed up in "debate between experts" and "pedagogical difficulties with laypeople". TFA is meant to be discussing the former case, and I read it as the latter. |
![]() |
| I don’t get the god thing. Why is f computable, just because we know the possible outputs? By that logic the halting problem is computable because h(f) is either 1 or 0. |
![]() |
| For the purpose of the busy beaver problem, your second and third cases are equivalent- it’s a beaver that does not halt. Therefore neither of them are BB(6). BB(6) is tautologically an integer |
![]() |
| Every Turing machine execution either halts, or does not halt. There are no intermediate possibilities. Some non-halting is easier to prove than others, but it's all still non-halting. |
![]() |
| > The busy beaver is not defined entirely by halting vs not-halting.
> Looping beavers are excluded as well. Looping beavers do not halt. > there is a middle ground between non-halting and provably non-halting Yes, there are turing machines that encode mathematical theorems which are independent of ZFC, meaning they cannot be proven to halt or not to halt. The state-of-the-art is BB(748), which is known to be independent [0]. There are also much smaller known turing machines which encode classically difficult math problems, like the Goldbach conjecture [1]. This means that the value of BB(27) cannot be proven until the Goldbach conjecture is proven or disproven, as until that is done, we will always have something like "BB(27) is N unless the Goldbach conjecture is false". However, our inability to prove these things does not change the fact that they have specific values. To stick with the BB(27) example, say that it seems we've narrowed it down to some huge number A, or a number dependent on the first number for which Goldbach does not hold. Call that second number B. We may be unable to find the value of B (doing so would disprove Goldbach), but it is still a specific number. There still exists a concrete value for BB(27)--it's A if Goldbach is true, and it's B is Goldbach is false. [0] https://www.ingo-blechschmidt.eu/assets/bachelor-thesis-unde... [1] https://gist.github.com/anonymous/a64213f391339236c2fe31f874... This 27-state machine halts when it finds a counterexample to the Goldbach conjecture. |
![]() |
| I think "effectively ask this question" is quite ambiguous here. The original question implying NP-hard problems are "impossible to solve", which already makes no sense. |
![]() |
| Probably not!
Thinking of a way for smart people to formally encode questions and hand them off to dumb computers is what led to the whole field of computing in the first place! |
![]() |
| It seems that at least some theorists believe the P vs NP question isn't even provable using our current axioms, and that a proof would require new mathematics. |
![]() |
| Yeah... I'm normally a huge fan of his posts, but this one seems more like venting about the number of cranks he has to deal with in the comments to his blog. Not that I blame him haha |
![]() |
| > That's not a program, it's two programs
Yes, and one of them is "a fast program that correctly answers the P vs. NP question". We don't know which. |
![]() |
| nit:
> if response is true: i've always wondered how people know when to stop (which, i guess, is relevant to the subject matter). e.g. why is your next step not > if (response is true) is true: |
![]() |
| I would say it's because this is pseudo code and it is a lot clearer that way.
Depending on language >if response: could mean "response" is true,1,not empty, X.... |
![]() |
| > ... handwaves away that ..
These kind of handwaveing are quite common in math. For example, Axiom of Choice assume there exists a choice function. It does not specify how. |
![]() |
| The comments on this article are like a flytrap for people with exactly the kind of misconception the article is talking about. |
![]() |
| If you’re using ZFC, there is (TFA mentions the state of the art is BB(745); Yedida and Aaronson’s original work on BB(8000)[1] is quite fun to read from a programmer’s point of view). But the second form still exists (if you accept excluded middle)—you just can’t prove which one it is!
Specifically, ZFC is consistent iff ZFC+“Y&A’s machine does halt” is consistent iff ZFC+“Y&A’s machine never halts” is consistent (a theorem in a fairly weak ambient metalogic). So you can take a stronger set theory that does prove the answer, it’s just that thus far we have no reason to prefer theories that answer yes to theories that answer no. (You don’t have to accept excluded middle, and it can on occasion be useful not to[2], but pragmatically you’re going to have a lot of difficulties even with first-year calculus unless you do.) [1] https://scottaaronson.blog/?p=2725 [2] https://www.ams.org/journals/bull/2017-54-03/S0273-0979-2016... |
![]() |
| > Let n equal 3 if God exists, or 5 if God does not exist. Is n prime?
[Not yet finished the article] Author says the answer is True. I say the question is malformed, and cannot be answered. |
![]() |
| I see the question this way:
|
![]() |
| You have misunderstood the article. The question being discussed was not "How hard is it to solve P?=NP", it was "Is P?=NP itself NP-hard", which is just an invalid question. |
![]() |
| OK, so he has a concept of a time when the program is written and so on. Decisions about how the program is written, or what is to be written, can involve non-computable metaphysical questions. |
For example: does there exist an algorithm that computes the Kolmogorov complexity, K(s), of string s for arbitrary s? It is well-known that the answer is "no" — there is no Turing machine that takes as input a string of arbitrary length and computes K(s). The proof is quite brief and involves the halting problem.
But if we ask a similar question: does there exist an algorithm that computes K(s) of string s for arbitrary string s with length < n? The answer is yes! And there exists such an algorithm for any value of n.
How is that possible? Think about it for a second, because the answer is going to disappoint you: simply create a Turing machine that consists of a giant lookup table for all 2^n possible strings that prints the value of K(s) for each one.
But wait, that's cheating! Maybe so, but any specific implementation of the algorithm has a finite description. And by definition, K(s) is also finite for all s. While it's true that I haven't provided any particular method for determining the value of K(s) for all 2^n strings in order to actually create the lookup table, that doesn't matter. Such an algorithm nevertheless exists, regardless of whether you can find it or prove that it does what you want it to.
So in a sense, finite questions about a finite number of things are sort of uninteresting from the perspective of computability, because you can always write a program that just prints the answer for all of those things (how quickly it does this is another matter). But when you extend the question to an infinite number of things, computability becomes much more interesting, because you don't know whether something finite can provide answers to questions about an infinite number of things.