The final is individual work. Please do not discuss these questions with anyone expect with Swamy, Tom and Eva. We will do our best to answer your emails promptly during the week, and also will have office hours every day (see Web). In writing down your solutions you may use any algorithm we discussed in class without writ- ing out the details of the algorithm. In proving a problem NP-complete, you may use the NP- completeness of any of the problems that we proved NP-complete in class or as a homework. Please do not search the Web for answers. You may use the course packet, Kozen's book, hand- outs, or any of the recommended books. If you use books other than the course packet, or Kozen's book in your solutions, please give clear reference to the source you used. (1) Suppose you are managing a system in which asynchronous processes make use of shared resources. Thus, the system has a set of n processes and a set of m resources. At any given point in time, each process specifies a set of resources that it requests to use. Each resource might be requested by many processes at once; but it can only be used by a single process at a time. Your job is to allocate resources to processes that request them. If a process is allocated all the resources it requests, then it is active; otherwise it is blocked. You want to perform the allocation so that as many processes as possible are active. Thus, we phrase the Resource Reservation problem as follows: given a set of process and resources, the set of requested resources for each process, and a number k, is it possible to allocate resources to processes so that at least k processes will be active? Consider the following list of problems, and for each problem either give a polynomial time algorithm or prove that the problem is NP-complete. (a) The general Resource Reservation problem defined above. (b) The special case of the problem when k=2. (c) The special case of the problem when there are two types of resources, say rooms and equipments, each process requires at most one resource of each type. (d) The special case of the problem when each resource is requested by at most two processes.