So this is a bit of a thought provoking question to get across the idea of NP-Completeness by my professor. I get WHY there should be a solution, due to the rules of NP-Completeness, but I don't know how to find it. So here is the problem:
The problem is a simple task scheduling problem with two processors. Each processor can handle one of the n
tasks, and any two tasks can be done simultaneously. Each task has an end time e
, it must be completed by this time. Each task also has a duration d
. All time values, such as end time, duration, and the current time in the system (the time will start at 0), are all integers. So we are given a list of n
tasks and we need to use these two processors to schedule them ALL. If any one can not be scheduled, the algorithm has to return no solution. Keep in mind that the order does not matter and it doesn't matter which processor gets which task, as long as there is no overlap and each task finishes before its deadline.
So here is where the problem gets conceptual/abstract, say we have access to a special little function, we have no idea how it works, all we know is this: given a list of n
tasks and the current schedule, it will return true
or false
based on whether or not the algorithm is solvable from this point. This function assumes that the already scheduled tasks are set in stone, and it will only change the times of the unscheduled tasks. However, all this function does is return true or false, it will not give you the proper schedule if it does find a solution. The point is that you can use the special function in the implementation of the scheduling problem. The goal is to solve the scheduling problem, and return a working schedule with every job scheduled properly, using a polynomial number of calls to the special function.
EDIT: To clarify, the question is this: Create a solution to schedule all n
tasks without any going over deadline, using a polynomial number of calls to the "special function."
I think this problem is to show that verifying a solution is polynomial, but finding it is nonpolynomial. But my professor is insistent that there is a way to solve this using a polynomial number of calls to the special function. Since the problem as a whole is NP-Complete, this would prove that the nonpolynomial aspect of the runtime comes in during the "decision portion of the algorithm.
If you would like me to clear up anything just leave a comment, I know this wasn't a perfect explanation of the problem.