Questions are in black, answers in blue.
Well, no, because A is a set of tuples that contain undirected graphs, and undirected graphs have no loops. But if I understand you correctly, why don't you just take your G' and make a G'' by just deleting the loops? Then G'' would have a clique of size k' iff G' does, and the reduction from (G,k.b) to (G'',k') would be a valid reduction from C to A.
The idea here is that if the witness must be a string
of a particular length, then I completely specify the partial witnesses by
saying that y, as a string, must be a prefix of the witness string yz. That
is, there must be a binary string z such that the concatenation of y and z
is a witness string.
Perhaps an example will make this clearer. Suppose that A is the CLIQUE
problem, so that B is the set of tuples (G,k,w) such that G is a graph with
n vertices and w is a string of length n, with exactly k ones, specifying the
vertices in a clique of G. For example, let n=6 and k=3, and suppose that
{x1, x4, x6} is a clique in G. Then the witness vector for this clique would be
100101, making the partial witness vectore for this clique the empty string,
1, 10, 100, 1001, 10010, and 100101 itself.
You are right that the format of witnesses must be specified exactly
before the problem makes sense. But once witnesses are specified as strings
of a particular length, the notions of concatenation and prefix on strings make
it completely clear what a "partial witness" is.
The problem here is that a problem with a short straight-line program could have an equivalent CNF that is exponential in length. (So your cited algorithm could not possibly be poly-time in the input -- maybe it is poly-time in the size of the CNF result.) You need a different approach that doesn't rely on an equivalent formula, just one that is satisfiable iff the original one is.
May I use one of these other models to solve the problem, does it depend somehow on the straight-line model as you have defined it?
Yes, you may use the other model if it is clear what you are doing, as you say the models are entirely equivalent.
Yes, exactly.
Is it helpful to think of the 3-SAT instances as being in CNF?
Yes, that's the only way to think of them, since 3-SAT is defined to be the set of satisfiable 3-CNF formulas, and 3-CNF is just CNF where there are at most three literals per clause.
You're right, I describe the algorithm correctly but I call it a reduction from X to B when as you say it is a reduction from B to X.
You're right, this is a mistake. I meant "Karp-reducible to A" every time I wrote "Karp-reducible to B" -- I've now corrected this.
Remember the definition of a cut -- it is a partition of
the vertices into two sets A and B, and an edge crosses the cut if one
of its endpoints is in A and the other in B. So all the edges from one
vertex to another cross the cut if the two vertices are in different sets.
In your example, the maximum cut puts b in one set and both a and c in the
other, cutting all five edges.
Yes, you're right -- since (b) requires a valid y iff one exists, it also solves the search problem of (a). So if you have a correct solution for (b), you may just quote it to solve (a) as long as it is clear what you are talking about.
Last modified 15 November 2005