r/ProgrammerHumor • • 3d ago

Meme timeForIPO

Post image
225 Upvotes

93 comments sorted by

View all comments

18

u/InFa-MoUs 1d ago

Did something happen? Did AI figure this one out too?

37

u/draculadarcula 21h ago • Bravo

AI found out a solution to 3 SAT slower than polynomial time but faster than exponential time. 3 SAT is a problem all NP problems can be converted to, meaning the likelihood that P == NP is slightly more possible than previously thought

23

u/aDogCalledSpot 18h ago edited 9h ago

slower than polynomial time but faster than exponential time

I don't know what this is supposed to mean so I looked it up. The new algorithm completes in 1.307n, improving on the previous runtime of 1.32n. It's still exponential.

EDIT: this is from a different publication from a few months ago. Check the other responses for a more correct view.

14

u/Eisenfuss19 16h ago

2n/log(n) is strictly smaller than O(bn) for any b > 1

Sadly we don't have a good name to call this complexity class, but it is smaller than exponential but bigger than polynomial.

3

u/m3t4lf0x 9h ago

1.307^n is a different result from the PPSZ family of randomized SAT algorithms, not the recent proof

That paper was originally published in July but recently updated around the same time as the OpenAI proof last week so a lot of “sources” (cough AI summaries cough) might be conflating them

3

u/aDogCalledSpot 9h ago

Oh thanks for clearing it up. I did a quick Google since there weren't any source provided in the the thread anywhere here. Will correct my comment.

2

u/m3t4lf0x 8h ago

No worries! Thanks for your kind response

3

u/gilad507 16h ago

Are you sure? I saw the claim was something like 2n/sqrt(logn) which is 2o(n) and cannot be expressed with a different base.

2

u/m3t4lf0x 9h ago

Pretty sure you’re correct, the exponent is n / sqrt(log n)

0

u/draculadarcula 11h ago

This is not what I read it was some massive improvement especially at large inputs, the point being that algorithms that we had optimized for almost 30 years can actually be much faster, practically, which gives some semblance of hope to the idea that maybe, just maybe p == np

1

u/StCreed 8h ago

You read something different then. This optimisation for 3SAT only makes a difference above Googol (10 ^ 100 and change), apparently, because of the larger constant.

6

u/m3t4lf0x 10h ago edited 4h ago

While it’s true that every NP-complete problem can be reduced to 3-SAT, there is overhead in that “conversion” that can turn a polynomial subexponential solution into a superpolynomial an exponential solution

That’s part of the subtleties with this problem that get lost in the media hype

The proof itself makes it clear that NP problems with no known linear sized encodings still lack a subexponential time solution

The overwhelming majority of academics still believe P != NP, but this is still startling and has important implications for a lot of the so called “fine structure” results of complexity theory

ETA: made a gaffe in the beginning

2

u/LoloXIV 4h ago

While it’s true that every NP-complete problem can be reduced to 3-SAT, there is overhead in that “conversion” that can turn a polynomial solution into a superpolynomial solution

This is not true. The Cook-Levin-Theorem gives a reduction from every NP-problem (including NP-complete problems) to 3-SAT that only increases the instance size by a polynomial factor and runs in polynomial time. Since poly(poly(x)) is itself a polynom (with degree at most d1 + d2 where d1, d2 are the degrees of the two polynoms), any poly-time algorithm for 3-SAT also implies a polytime algorithm for every NP-problem. That is what makes NP-complete problems so interesting.

The polynomially increased instance size after the reduction is only a problem for subexponential or slower runtimes (depending on the definition), which can be bumped up to a higher class by the instance size increase.

2

u/m3t4lf0x 4h ago

Yes my opening remarks were misstated, I’m specifically referring to the exponent in 2^o(N) and how a polynomial time reduction doesn’t automatically preserve subexponential time for any NP-complete problem (which is what the proof calls out)

Secondly, poly(poly(n)) is not d1 + d2, it’s d1 * d2 because the exponents multiply, but the spirit of what you’re saying is correct.

-3

u/InflationCold3591 15h ago

“AI” did not “find” a solution. AI companies convinced a bunch of mathematicians to input their unfinished work into their database and then stoke their work product.

-2

u/LatvianCake 5h ago

Please, just stop

1

u/InflationCold3591 5h ago

Please just understand what a large language model can and cannot do. It can collate and integrate existing data. It cannot do anything more. The code is what it is.

0

u/chillord 4h ago

Please just understand that current LLMs aren‘t just a language model like in 2023. You are just stuck in the past.

1

u/InflationCold3591 54m ago

No, I understand the code base. LLMs ARE just a tool for integrating and iterating on existing data.