8.22. In task scheduling, it is common to use a graph representation with a node for each task and a directed edge from task i to task j if i is a precondition for j. This directed graph depicts the precedence constraints in the scheduling problem. Clearly, a schedule is possible if and only if the graph is acyclic; if it isn't, we'd like to identify the smallest number of constraints that must be dropped so as to make it acyclic. Given a directed graph G = (V;E), a subset E0 E is called a feedback arc set if the removal of edges E0 renders G acyclic. FEEDBACK ARC SET (FAS): Given a directed graph G = (V;E) and a budget b, nd a feedback arc set of b edges, if one exists. (a) Show that FAS is in NP. FAS can be shown to be NP-complete by a reduction from VERTEX COVER. Given an instance (G; b) of VERTEX COVER, where G is an undirected graph and we want a vertex cover of size b, we construct a instance (G0; b) of FAS as follows. If G = (V;E) has n vertices v1; : : : ; vn, then make G0 = (V 0;E0) a directed graph with 2n vertices w1;w01; : : : ;wn;w0n , and n + 2jEj (directed) edges:(wi ;w0i) for all i = 1; 2; : : : ; n. (w0i;wj ) and (w0j;wi) for every (vi; vj ) 2 E. (b) Show that if G contains a vertex cover of size b, then G0 contains a feedback arc set of size b. (c) Show that if G0 contains a feedback arc set of size b, then G contains a vertex cover of size (at most) b. (Hint: given a feedback arc set of size b in G0, you may need to rst modify it slightly to obtain another one which is of a more convenient form, but is of the same size or smaller. Then, argue that G must contain a vertex cover of the same size as the modied feedback arc set.)