is this NP complete ?
sasa.swe_at_gmail.com
Date: 03/28/05
- Previous message: Ralph Hartley: "Re: Quantum Computation"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: 28 Mar 2005 10:01:47 -0800
Hello,
I would appreciate your advice deciding if the following problem is NP
complete or can be solved in polynomial time.
Given a set of m processors. There are n tasks running on these m
processors.
The task assignment on the processors (mapping) and the execution order
(schedule) is known (precedence constraints on tasks mapped on
different processors and scheduling order on each processor).
Tasks have a certain fixed execution time and a deadline (they have to
finish all before their deadlines).
The start time of each task is a variable.
Due to dependencies between tasks on different processors, there is a
certain amount of idleness.
During idle times, we would like to switch off the processor in order
to save energy. A shutdown operation
comes with a fixed time and energy penalty.
We would like to find out when to shutdown a processor and for how long
(actually the difficulty is to decide if or not
to shutdown at the end of a task; if we would know after which tasks to
shutdown, an LP formulation could determine
the size of the shutdown).
Is this problem NP complete or not ?
I think that the precedence constrained knapsack might be reduced to my
problem, but I not 100% sure since in my case the
order of tasks is given and I have to find out only if & when to
shutdown.
As an ILP, I would formulate the problem like this:
minimize xshut[i]*constant_energy_overhead +
xidle[i]*t_idle[i]*constant_idle_power
start_time[i]+exec_time[i] +
xshut[i]*(t_shut[i]+constant_time_overhead) + xidle[i]*t_idle[i] =
start_time[j]; # where j $
# on the same processor
start_time[i]+exec_time[i]<=tart_time[j]; # where j is a successor of
task i
# on another processor
start_time[i]+exec_time[i]<=deadline[i];
xshut[i] + xidle[i]=1, binary variables: xshut[i]=1 if there is a
shutdown after i;
xidle[i]=1 if there is no
shutdown
t_shut[i] is the length of the shutdown time after task i
t_idle[i] is the length of the idle time after task i
Thanks for your suggestions.
Best wishes,
Alexandru
- Previous message: Ralph Hartley: "Re: Quantum Computation"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]