by williamkuszmaul on 6/10/20, 1:34 AM with 16 comments
by lalaland1125 on 6/10/20, 5:52 AM
https://www.cl.cam.ac.uk/teaching/1415/AdvAlgo/lec8_ann.pdf contains a more correct proof.
Note the |C∗| ≥ |A| line on slide 8. That's critical to the correctness of the proof, but missing in this article.
by throw149102 on 6/10/20, 6:17 AM
Given a set of clauses C_1 ^ C_2 ^ ... ^ C_n where each clause is an OR of 3 logical variables, find assignments to each variable to maximize the number of clauses satisfied.
The algorithm is to just assign each variable randomly. For each clause, there are 8 possible assignments, and 7 out of 8 make the clause true. Therefore, randomly assigning them gives you a 7/8-approximation.
What makes this so fascinating to me is that the difference between a (polynomial) algorithm that gets 7/8 right and one that gets 8/8 right is the difference between a child randomly guessing and solving all of the world's most important problems in a single algorithm. It could be worth trillions of dollars. Of course, it's probably impossible and therefore P != NP.
by landtuna on 6/10/20, 11:43 AM
by v_g on 6/10/20, 5:21 AM
Most likely I’m not understanding the problem, would appreciate if someone could clarify.
by saagarjha on 6/10/20, 5:43 AM
by downshun on 6/10/20, 5:26 AM
Take a star with many (>3) leaves
Replace every leaf by a star
The algorithm fails by picking up leaves