News for hackers. Stuff that matters.
Re:Bipartite Matching Is in NC by amirhirsch on Friday June 26, 2026 @10:17AM (#48686901)
This is an awesome result.

For those unfamiliar: NC is the class of problems which can be solved in polylogarthmic depth with polynomial number of logic gates. It is unproven if NC != P similar to P != NP.

Re:Bipartite Matching Is in NC by gignico on Friday June 26, 2026 @10:22AM (#48686966)
Yes, but logic gates with constant fan-in, crucially, otherwise that's called AC.
Re:Bipartite Matching Is in NC by amluto on Friday June 26, 2026 @11:36AM (#48687920)
I never studied these specific classes, but my immediate intuition is that an n-input fan-in AND or OR gate can be reduced to a tree of 2-input gates with depth O(log(n)), which preserves polylog complexity, so surely AC = NC.

Wikipedia agrees :)

If you specify the exponent of the log, you get a different answer.

Re:Bipartite Matching Is in NC by amirhirsch on Friday June 26, 2026 @10:49AM (#48687317)
Yes.

There is a beautiful proof of the disjunction between AC0 and NC showing parity cannot be done in AC0 using harmonic analysis of Boolean functions

Re:Bipartite Matching Is in NC by ZeroCool2u on Friday June 26, 2026 @12:10PM (#48688313)
Re:Bipartite Matching Is in NC by amirhirsch on Friday June 26, 2026 @01:15PM (#48689129)
https://en.wikipedia.org/wiki/Switching_lemma

That paper is in the wiki refs but Hastad’s original is from 1986

Re:Bipartite Matching Is in NC by osti on Friday June 26, 2026 @11:45AM (#48688018)
So is it a class of problems that can be parallelized well?
Re:Bipartite Matching Is in NC by adgjlsfhk1 on Friday June 26, 2026 @12:10PM (#48688311)
no (in both directions). lots of np/exp problems paralize well and you can be in NC and parallelize really inefficiently (e.g. you can get a 10x speedup, but you need 1000000x the hardware). the better framing is that NC is the class of efficient algorithms that can be sped up near arbitrarily by parallelization
Re:Bipartite Matching Is in NC by osti on Friday June 26, 2026 @12:21PM (#48688451)
Hmm your last sentence seems to exactly agree that it's a class of algos that parallelize well? What does sped up arbitrarily mean? It's still polynomial speed up right?
Re:Bipartite Matching Is in NC by chowells on Friday June 26, 2026 @01:08PM (#48689045)
It's a difference of degree. People expect something that "parallelizes well" to show near 1-to-1 speedup. Double the hardware, double the speed. This is "you can always speed it up, but the hardware requirements can increase at any polynomial rate".
Re:Bipartite Matching Is in NC by osti on Friday June 26, 2026 @01:18PM (#48689185)
Ah got it. Reread previous comment and that makes sense.
Re:Bipartite Matching Is in NC by dragontamer on Friday June 26, 2026 @04:01PM (#48691271)
Yeah it's more of "on a hypothetical infinitely parallel computer, you'll get a big speedup'.

Which is still useful if you can prove a problem is in NC. It's just not quite as strong as people make it out to be.

Re:Bipartite Matching Is in NC by vintermann on Friday June 26, 2026 @10:47AM (#48687295)
Many years ago, on Boardgamegeek, there was a game trading system called "Math Trades", where participants would list a number of trades they were willing to make, and they ran some complicated calculations to figure out how to let as many as possible trade.

CS professor Chris Okasaki, known for his book on purely functional data structures, also played board games and he came across this phenomenon. He realized that it could be modelled as a bipartite matching problem, and wrote a MUCH faster program to manage math trades.

https://okasaki.blogspot.com/2008/03/what-heck-is-math-trade...

I guess it can be made even faster now in theory.

Re:Bipartite Matching Is in NC by emil-lp on Friday June 26, 2026 @01:53PM (#48689698)
The kidney exchange problem isn't bipartite matching but a cycle packing problem (or disjoint cycle cover).
Re:Bipartite Matching Is in NC by mirashii on Friday June 26, 2026 @05:36PM (#48692296)
The math trades still happen regularly at cons, e.g. Origins had one just last week.
Re:Bipartite Matching Is in NC by sigbottle on Friday June 26, 2026 @06:05PM (#48692579)
Chris okasaki! Was into functional data structures in college, great book and great dude
Re:Bipartite Matching Is in NC by throwaway81523 on Friday June 26, 2026 @11:09PM (#48694762)
I don't think this new result is supposed to be a speedup. It might even be slower than the existing method. Rather, it's a way to get rid of the random number generator that the old algorithm relied on, so it's deterministic unlike the old way. I'm not even sure that it's guaranteed to find the answer, as opposed to finding it with high probability.

It's mostly of theoretical interest except for some possible niche applications, I'd say. For a math trade type of problem, you'd just go ahead and use the old algorithm with an RNG.

Another famous result of this type was AKS primality testing. Randomized algorithms like Miller-Rabin were known for a long time, very reliable, and quite simple to implement, but AKS was an important theoretical advance because it didn't use random inputs. I think everyone still uses Miller-Rabin in practice.

Re:Bipartite Matching Is in NC by klipt on Saturday June 27, 2026 @05:08PM (#48701774)
Of course the easiest solution to the problem is money. You sell the games you don't want for money. You buy the games you want with money.

Much simpler than algorithms for bartering.