>> Mohit Singh: Okay, yes. It's a pleasure... problem, which is I guess one of the four, or...

advertisement
>> Mohit Singh: Okay, yes. It's a pleasure to have Thomas tell us about the scheduling
problem, which is I guess one of the four, or three of the four, remaining open problems from
Garey and Johnson, so the problem is really old, and Thomas is going to tell us something new
on it.
>> Thomas Rothvoss: Yes, thanks. I think technically speaking, we're not going to completely
close it, but anyway, thanks for getting up so early. This isn't the time for everybody in the
room. Okay, yes, this is ->>: I just want to say that there are only five of us in the room, so you could talk to us a little
more personally.
>> Thomas Rothvoss: Okay. Okay, I will try to address the audience more personally. Thank
you, James, for asking the first question before I start. Okay, so this is joint work with Elaine
Levey, who is also at UW. Okay, so this is the problem I want to talk about. You have some
unit size jobs, so you have some jobs that have processing length 1, and the jobs have precedence
constraints, so you have to process, let's say, this job, before you can start any of those jobs here.
And I give you M machines. They are all identical. The goal is, you want to schedule the jobs in
a nonpreemptive way so that the makespan is minimized, and the makespan is the time that the
last job finishes. Okay? Okay, so just to warm up, let me just explain to you a simple 2
approximation algorithm that's 50 years old and works as follows. You just schedule everything
gradually, so let's say you just select any job that you can select, and you just put it on one of the
machines. Now, there is another job that you can just process, and now you see that, well, in
principle, you have a third machine here, but you don't have a job where all the predecessors are
already completed, so you leave that slot empty and you move on with the next time and with the
next job. So you just do everything gradually, the way you would imagine it makes sense, so
this is how the algorithm would work, and okay. So here you see that while there is this chain,
we didn't pay a lot of attention to that, so we have quite some idle times here, and now this is the
time that the last job finishes. Now, you can see that actually this is the makespan here, so this is
the time that the last job is finishing. You can also see that this is not the optimum solution.
There is this chain of five jobs. We probably should have started this a lot earlier and just work
on the chain all the time, so this is an approximation algorithm, and it definitely does not always
give you the optimal solution. But the claim is this gives you a 2 approximation, so how can you
see this? So first of all, if you stare at the times where there is some idle time, where you didn't
use all of the machines, then why did you do that? Why did you not process this job earlier?
Well, actually, the reason is that there has to be a job that it depends on coming earlier, and that's
actually the only reason why you couldn't schedule this earlier. So to be more precise, there is a
chain that goes over all of the non-busy times, and if you wanted to be formal, you could
construct this chain from the last job. You could wonder, why did I not schedule this guy
earlier? Well, because of this job. Why did I not schedule this guy earlier? Because of this job.
Why did I not schedule this guy earlier? Because of this job, and so on. Now, you can wonder,
if you have a chain, what's the length of the chain? Well, the length of any chain is the lower
bound of the optimum, because also the optimum kind of needs to process the chain somewhere.
Okay, so that's good. So this gives us a bound on the non-busy periods. Actually, bounding the
busy periods is even easier, because you can imagine that even if the optimum would be allowed
to ignore all the precedence constraints, even then, just to process all the jobs, you need at least
that amount of time. Okay? Great. And now you just add things up and you get that the
schedule we're getting has length that was 2 times the optimum. Actually, the algorithm isn't
much better than a 2 approximation. You can be a little bit more careful, and depending on how
large your number of machines is, you can be a little bit better than 2, but if that number goes to
infinity, then the ratio goes to 2, like the approximation ratio of this algorithm. Okay. So we
would like to beat this algorithm, and it's kind of what's like the standard technique in
approximation algorithms? You write on some linear program. So we could do that, and this
might be the natural linear program, like experts would probably call that a time index version.
So let's say you have a variable X(jt), and this variable is going to tell you whether you want to
run the job at time T, and I hope you see that you only need to consider integer times. There are
just integer timeslots. So what would be the constraints? Every job should be scheduled
somewhere. At any time, you can schedule at most M jobs. M is the number of machines you
have, and then you should have some constraint that implements the precedence constraints, so
you should have if some job, I should be finished before J, then it's of the fraction that's finished
until some time T, can't be bigger than the fraction that's scheduled for that other job until time T
plus 1. Okay, good. So this is a fine linear program, but can you beat the gap of 2? No, not
really. It's not hard to come up with some integrality gap construction. Just imagine in this case
I give you two machines, but you could have some kind of blocks of three jobs. Let's say this is
like a long sequence of jobs, and it's kind of the other jobs in the Ith block depend on the I minus
first block, and now the fractional solution that you could construct would be that you can kind
of process all the jobs in the same block in parallel. So this would mean that these three jobs -in an integral solution, you would need 2 time units, but the fractional solution could essentially
schedule this in 1.5 time units. It's nice to observe that in the fractional solution, the support of
jobs can overlap even if the jobs have precedence constraints, so this is something you can't rule
out. That makes the whole thing difficult. So the integrality gap, it's also essentially 2, so if the
number of machine goes, then the gap will tend to 2. So this isn't really going to buy you that
much.
>>: Is there a rounding algorithm based on this?
>> Thomas Rothvoss: You could probably come up with some rounding algorithm. I doubt that
you could beat the simple greedy algorithm.
>> Mohit Singh: But even getting factor 2.
>> Thomas Rothvoss: For this problem, it's extremely hard to not get a factor of 2 in some
sense, so yes, it's probably an exercise. I haven't done it myself.
>>: Is it the same as integral scheduling, but you allow me to start jobs at fractional times?
That's at least what this takes advantage of, right, like 1, 2 and three start at second 2, and then
they go to second 2.5, and then you start 4, 5, 6. I'm just saying, then you sort of can -- at least
for this, you can respect the precedence constraints but just have, be able to ->> Thomas Rothvoss: Is this the same? I don't think so. No, I don't think so. No, I don't think
it's the same. Okay. Good. Okay, so we did see that little 2 approximation algorithm by
Graham, and in fact, it's unlikely that you can beat the 2 in general. So there's a paper by Olah
saying that, well, under some variant of the unique games conjecture, you're not going to -- you
won't be able to beat the factor of 2. That's the question what I'm going to talk about in the next
2.5 hours, but okay. So in scheduling, it does actually make a lot of sense to consider cases like
what happens if the number of machines is a constant, so think of M as being a big constant.
Maybe then we can beat the factor of 2, and there hasn't been much success, actually, so this is
what we want to do. Okay. And Mohit mentioned already that this is -- essentially, this is one of
the four open problems in Garey and Johnson, where now it's maybe three and a half open
problems, now that graph isomorphism is kind of solved.
>>: How do you -- you can beat factor of 2 if M is a large constant, so what's the question?
>> Thomas Rothvoss: If this is -- if M is allowed to grow with input lang, you can't beat 2.
>>: So how are you going to fit a result in between those two bullets?
>> Thomas Rothvoss: I will give you an algorithm, but the running time will depend
exponentially on M, on the number of machines, and there was no such algorithm known before
that's better than 2. Okay. In fact, if you have let's say three machines, it's unclear whether this
is an NP hard problem. There's a nice survey of Schuurman and Woeginger about open
problems in scheduling. It's now 16 years old. A couple of problems have been solved. One of
the problems that has been opened is whether let's say for three machines there is a P test ->> Mohit Singh: Sorry, is [indiscernible] constant hardness node, or no?
>> Thomas Rothvoss: It's not known, no. Like if you have 10 billion machines, it's also open
whether this is NP hard. Yes. And the result I want to talk about here is that actually, you can
take that linear program, you can throw it into your favorite LP or STP hierarchy, and after some
number of rounds, the gap goes down to 1 plus epsilon. That number of rounds is a weird
number that's a little more than poly log, and the epsilon of the M actually goes here into the
hull. Okay, so this gives you also an algorithm that finds the schedule in some kind of weird a
little more than quasi-polynomial running time.
>>: But the [indiscernible] of M is like a pretty big -- because you didn't write it.
>> Thomas Rothvoss: That's like the rule of thumb. It's really an M here and I think times 1
over epsilon squared I think is the dependence here. On the other hand, it's in the exponent.
Good. Okay. Good, so this is what I want to talk about. Okay, so what's the Lasserre hierarchy?
The idea is it's a very general idea. You imagine you have some linear program, let's say with
binary variables. Let's say the set of feasible fraction solutions is K. Now, you want to add in
some more constraints so that your LP becomes better. So what ideally you want to have is that
convex hull of the integer points in K. You're not going to get there, but you can write down
some bigger system, and it's going to be kind of stronger than your original linear program. That
system will depend on some parameter that's called the number of rounds of the hierarchy, and as
you increase the parameter, the hierarchy gets stronger and stronger, and then eventually, after a
number of variables, many durations, it's going to converge to the integral hull. Okay, so many
of you might have seen this already. So the idea is that if this is just a general linear program,
then you -- and T is your number of rounds, then you would just take variables for all subsets of
at most T many variables, and you'd write down some kind of meta variable, which is supposed
to tell you the extent to which all of those variables have to be 1, so you have some extra
variables. This is why it's so-called lift and project, because the extra variables, they give you a
lift, and in particular, you will have your original variables in there. And now you just need to
write down some constraint system that gives you some kind of consistency, and you can do this
explicitly. I don't want to go into details. At this point, I would like to treat the Lasserre
hierarchy as a black box. We know what properties it has. But if you wanted to write down
explicitly the constraints, then you would take your variables. You would throw them into a big
matrix that's called the moment matrix, and then you ask that this moment matrix has to be
positive semi-definite. You also would take all the constraints that you would have and you
would put them together into another big moment matrix, and also that has to be positive semidefinite for a point A constraint.
>>: You say it works with [indiscernible].
>> Thomas Rothvoss: Yes.
>>: So why are you describing the serve?
>> Thomas Rothvoss: Purely hypothetically, imagine one of the authors has a survey on the
Lasserre hierarchy and wanted to copy-paste this. Actually, I find the definition more elegant
than for Sherali-Adams. It doesn't matter. So we're using -- yes, the Lasserre hierarchy has a lot
more power than we need. Okay. I hope that doesn't make you -- doesn't cause you a headache,
okay? We're not using any kind of fancy polynomial-whatever power here. Okay, good. James
doesn't look convinced, just for the record. For the people who can't see ->>: I'm trying to follow, so I want to be prepared.
>> Thomas Rothvoss: Okay, okay, okay. Imagine this is Sherali-Adams. Imagine for yourself
this is Sherali-Adams. It's not going to be any different, the algorithm isn't. Okay, so if that
number of rounds T is a constant, you can solve those systems in polynomial time, and well, for
us, it's not going to be constant. It's going to be that weird somewhat more than poly log term, so
this is going to be, yes, a little bit more than quasi-polynomial. Okay, good.
>>: Okay, and I have one more question. So if 2 minus epsilon was NP hard, then your result
says that the running time on the reduction, okay, assuming that like say [sat] requires
exponential time, your thing says the running time reduction has to be at least something.
>> Thomas Rothvoss: Yes.
>>: Do you have any idea of like ballpark what that is, or it's just some function of epsilon and
M?
>> Thomas Rothvoss: Yes. It's going to be some function. I never figured it out, but you could
have sub-argument in that, yes. Okay. Okay, so the Lasserre hierarchy and the Sherali-Adams
hierarchy, they have some nice properties, which is as follows. If you look at a solution which is
valid for T rounds, and you look at one of the variables that's strictly between 0 and 1, then it's
true that this is actually a convex combination of two solutions, two Lasserre solutions, one
where the variable is 0, one where the variable is 1, and both of those are valid for one round
less. Okay. In particular, a way to reinterpret this is as follows, that if you have a Lasserre
vector, you have a variable that's strictly between 0 and 1, then you can say, oh, I want to have
that this variable is actually 1. So you can what's called -- you can induce on that variable being
1, which geometrically means you're just replacing your Lasserre vector by one of those guys
where the variable is actually 1, and this is going to cost you one record. And we will do this
frequently.
>> Mohit Singh: One or 0?
>> Thomas Rothvoss: Yes, we are doing this with 1. Obviously, the same thing would also
work if you wanted to set the variable to 0, yes. Okay, good. There's one observation that's
worth making that looks trivial, but if you do this conditioning, then the support of your Lasserre
vector is only going to shrink. Now, imagine this would be an actual probability distribution,
and if you induce on some event, then another event that had a 0 probability before is still going
to have a 0 probability. No conditioning will make the probability suddenly positive. Okay,
good. Okay. Fine. So this is -- okay, let me now go to the algorithm, and here is a little bit what
we want to do. So imagine we kind of guess the time that the optimum needs. Let's say this is
capital T, so imagine this is the time horizon. We kind of give this parameter capital T to
Lasserre, and we find some Lasserre solution with a large enough number of rounds, which is
kind of valid for that scheduling LP. And now we want to round that scheduling Lasserre LP,
STP. Okay, so first, if this is the time horizon, let's look at some kind of a binary partition of that
time horizon, so we just partition everything always into two intervals of the same length, and
then obviously we need like log T many levels. And now let's imagine that these are jobs, and
let's look at the support of jobs, so these are times when the Lasserre vector has some positive
probability of scheduling the guy. So they don't have to be intervals. They don't need to be
consecutive to support. Okay. Now, we want to do the following. Imagine for the moment we
kind of assign the jobs to the minimal interval containing all the support. Okay. Now, the idea is
we want to have an algorithm that essentially starts at the bottom of the partition and schedules
the job, so we would like to first schedule the jobs that have a very small support, and then later
add in the jobs where the support was very long, kind of hoping that they had more flexibility.
Okay. Good. Okay, now, this is the actual algorithm. This is the overview of the actual
algorithm. In the first step, we do the following. We look at the first let's say log log N-square,
many of those levels. And we massage the Lasserre vector. By conditioning on certain events,
we will get that the maximum chain of jobs that are assigned to those levels is small, and I will
explain this in a little more detail on the next slide. Let's take this as given for now. Okay.
Now, after we do this, let's say these are the supports of the jobs, and these are the intervals
where they are assigned to.
>>: I missed something very basic. What does it mean, the support of the job?
>> Thomas Rothvoss: These are the time units where this guy is scheduled, so let's say this is JT
where this is positive. This is the support of a job, and now kind of with respect to the current
Lasserre solution.
>>: Is it clear the support will be continuous?
>> Thomas Rothvoss: No, it's not in general.
>>: The figure seems to suggest it.
>> Thomas Rothvoss: The laziness of the person drawing the picture, which is me, suggests that
it would be. I think one's here, here. And then from now on, they just look like intervals, but
they don't have to be. Okay, good. Okay, so it's like, for example, this blue rectangle mean that,
yes, there is some probability that the job is scheduled here, some probability that the job is
scheduled there and so on. Okay, good. So now we want to create some gap here, and we take
log log N levels. It's kind of somewhere in the middle, and we delete all the jobs. We throw
them away. Now, you might be saying that I'm forced to schedule all the jobs, but if I have a
small fraction of jobs that I kind of threw away, I can kind of just insert them at the very end, and
you can just imagine that for every job, you can just insert a private new time for him, and you
can just insert him, and that is -- well, you just paid this extra in the bank spend, but that's not a
big problem. Okay, so as long as we're throwing away only an epsilon over M fraction of the
jobs, we're good. Okay, good. Now, this creates a gap in the sense that now the intervals at the
top are a lot longer than the intervals being down here, and if you do the math, and actually, this
factor is like a poly log term of this thing, and I need that poly log term. That's why I have log
log N levels here. Okay, good. Now, I do the following. I have my Lasserre vector, and please
remember that I did some conditioning, so it's not anymore the original Lasserre vector, but I do
the following. I now recursively run my scheduling algorithm, and I schedule all the jobs in
those bottom intervals. So I go through every of those bottom intervals, and I just schedule the
vectors. I schedule the jobs, and I do this independently for those intervals. And the important
thing is that I have my Lasserre vector, and I give a copy to every of those intervals here, and
now since I do this recursively, there's going to be some conditioning going on here, some
independent conditioning going on there. So I schedule the job.
>>: Tell me, how do you schedule the jobs?
>> Thomas Rothvoss: Recursively.
>>: What does it mean?
>> Thomas Rothvoss: Well, to understand recursion, you first need to understand recursion, but
-- yes, it's an old one. Sorry.
>>: So you're doing that using the property that every point is a combination of ->> Thomas Rothvoss: I would say here -- okay, the algorithm that I kind of here described, I
described it here kind of for the top interval, for the largest possible interval, for the whole time
horizon. But you can imagine, you run the same algorithm that I just described here, you run it
just for that smaller time horizon, and you run it only with the jobs that had the complete support
in here.
>> Mohit Singh: But they're not exact solutions, right? Because I always gave the job to an
[indiscernible].
>> Thomas Rothvoss: Wait, wait, wait. I look at the jobs that have the whole support in here.
And then it looks like the original problem, okay? It's just on a smaller timescale. Okay, good.
So that looks fine, but there is a problem. So there are my top jobs, and now I also have to
schedule the top jobs, and the problem is kind of have to insert them in the gaps that remain, and
there isn't really a reason why this should work, and so what could be the problem? The problem
is that we're doing a lot of conditioning in the Lasserre solution, and this is not necessarily
consistent. So it might be that in any actual integral solution, it's like if you schedule this job at
the end, then in the other interval, you would have to schedule another job kind of at the
beginning or also at the end, so that you can schedule those top jobs in between. So there is
some consistency that we are losing, okay? But it will still be enough, and why does it work?
The reason is that we have decreased the length of the maximum chain among the top jobs, the
jobs that are assigned to the top intervals. Okay, good. Okay. So first thing's first, let's talk
about the first point. What did I want to do? I had those jobs that were assigned to the first poly
log, log N many levels, and I wanted to decrease the length of the maximum chain by
conditioning on certain events.
>> Mohit Singh: So, Thomas, I just want to get some [indiscernible]. Is it clearly for the chain
that's a [small], you have a certain P task or something? Because I don't understand like ->> Thomas Rothvoss: Yes, it is. Because just look at Graham's algorithm. Okay, the bound
here is essentially you get the optimum plus the length of the maximum chain, which is that itself
is bounded by the optimum, but if you give me a better bound on the length of the maximum
chain, you can get something better than 2. Yes, so in particular, from this, you already see that
you only have a major problem if you have long chains, so we're kind of getting rid in some
sense of the long chain problem. Well, they will still exist, but yes. Okay, so what's -- where
were we? We were precisely not here. Okay, this is the thing. Okay, so don't look at the
statement of the lemma that we're going to prove. Look at the picture. So imagine, this is one of
the top intervals, and imagine there are a ton of jobs assigned to it. What does it mean they are
assigned to it? It means their whole support is contained, but the whole support also kind of
contains the separating line between the next top intervals. And okay, now imagine it happens
that some of these jobs has a lot of other jobs dependent on him. So in this case, there's the blue
job, and let's say there are a lot of other jobs dependent on him, but still, the support can overlap.
This cannot be ruled out. Okay, now we do kind of the obvious thing. We spend one of our
Lasserre rounds, and we condition on the event that this job with the [higher] degree is scheduled
in the right-hand side interval, in the right-hand side subinterval. Now, after this conditioning,
all the other jobs that depend on him will also be fully scheduled in that right-hand side interval.
So in some sense, after one conditioning, the support of a lot of jobs actually moves down by one
level, and so now -- well, you just repeat this argument, and the support of jobs always moves
down. You do this often enough. You count how many intervals do you actually have among
the top intervals, and then you get bound on the number of rounds that you're losing, so there is
some little calculation, but this is the basic argument.
>> Mohit Singh: So you are still [indiscernible], so you will know on the current [indiscernible]
combination, where either it is completely scheduled and I do, or not at all.
>> Thomas Rothvoss: Yes.
>> Mohit Singh: So you want to say that I go here or here.
>> Thomas Rothvoss: Yes.
>> Mohit Singh: How about you say and just go here?
>> Thomas Rothvoss: You take one of the variables, and you condition it to be 1.
>> Mohit Singh: But condition [faction] solution might not be a whole [faction] solution. It
might have an objective on it.
>> Thomas Rothvoss: I don't have an objective.
>> Mohit Singh: It's a feasibility problem.
>> Thomas Rothvoss: It's a feasibility problem.
>> Mohit Singh: Okay, good.
>> Thomas Rothvoss: Okay, any other questions? Okay, good. So what I hope I could
convince you is that I could actually -- if you look at the picture, I can actually decrease the
maximum chain length of jobs assigned to the top intervals to something as small as I like. And
that number, while I will lose some number of rounds proportional to that, but I'm good. Okay,
good. Okay, so that's fine. But let me go back to the next thing that we want to do. Okay, so
after I recursively scheduled all the jobs assigned to bottom intervals. Now, the crucial argument
is how do you insert the jobs assigned to top intervals. And now the only thing we know is that
actually, the length of any chain among those jobs is very short, is as short as we like. Okay,
now let's move on with that. Okay, so where is actually the problem? Imagine this is the job
assigned to one of the top intervals, but the job may actually depend on some jobs that are
scheduled in bottom intervals, and it also may have some of those jobs dependent on him. And
the problem is that now we would recursively schedule this guy somewhere in this interval, but
maybe we're scheduling him at the end, and we might schedule this guy somewhere here, but
maybe we schedule him at the beginning, so we don't have any control over that. So in principle,
I can imagine that for my top job, the only way to be safe is that I entered him in some slot that
comes after the end of any interval where a dependent bottom drop was scheduled. Okay? So
you could imagine that I define a release time for this job, and this is on some kind of scheduling
term. I define a release time for this job, which is the end of any interval where a dependent
bottom job is scheduled, and I define a deadline for my top job, which is the beginning of any
interval where -- like the earliest interval where a dependent bottom job is scheduled. Okay.
And now I will try to schedule my top job somewhere between that release time and deadline,
and if you look at the support of the top job, there is a little bit of a problem, because there is
some fraction of its support where I'm now kind of forbidden to schedule the job. Okay, good.
Okay, but here is the claim. The point is that the bottom intervals are a lot shorter than the top
intervals, and the gap is some poly log term. Okay. And I want to essentially schedule the top
jobs, imagine, in two phases. In the first phase, I want to just prove to you that I could schedule
the top jobs if I would be allowed to ignore any precedence constraint other than that I have to
schedule the job between release and deadline. This is what I show in the first phase. In the
second phase, I show that imagine I know that I can schedule the job between release time and
deadline, if I ignore precedence constraints. Now, I can also schedule it with precedence
constraints, knowing that the precedence constraints that I have to respect don't have long chains.
Okay, so let's start with the first argument. If the top jobs wouldn't have any precedence
constraints with each other, what could I do? I claim that then I could actually find a good
assignment, and now this is an easy problem. This is essentially a bipartite metric problem,
where you can imagine that for every top job, there are some slots, some time slots, where you
could schedule the job, and you know that the Lasserre solution, it was a fraction solution for
that bipartite matching problem. The only difficulty is that there are some parts of the fraction
solution are cut off. If you have a matching problem and there is some part in the matching
graph that is cut off, but you can check halts condition and you can just see what is the amount of
edges that I'm losing, and okay. So essentially, the only thing you need to check is the
following. You look at some subset of the top jobs, and you lose what is the neighborhood -what is the size of the neighborhood you're losing. And now the argument is that out of Q
intervals, out of Q bottom intervals, you're only losing two intervals. You're only losing the slots
in two intervals, and the reason is that every of the top jobs must contain one of those
borderlines. And you know that you have one of those borderlines only every Q of those small
intervals. So in particular, it means that you cannot lose more than two bottom intervals in any
of the -- that are contained in one of the top intervals, and I'm not convinced that this is a great
explanation, but I hope you believe that this is not a hard argument. So this is essentially -- it's a
bipartite matching problem. You can bound the number of jobs that you can't schedule anymore
by just looking at halts condition and just counting by how much your neighborhood could
possibly shrink. And here you use that you're kind of talking about intervals. Okay, good. So
this is the first phase. Now, the second phase is this is -- might look familiar to you if you're into
scheduling. Essentially, we're using the earliest deadline for scheduling policy, which is kind of
-- it's a standard thing in scheduling. It's kind of optimal in many settings. It's not exactly
optimal in our setting, but it's good enough, so what is the problem. So imagine these are our top
jobs. These are the jobs assigned to top intervals. Now, what is the setting, we know what we
have left now. We know that the length of the maximum chain is not too long. We can make
this as small as we like. We know that while each of those jobs may have a release time and may
have a deadline, we know that actually the time horizon is partitioned into a not-too-large
number of blocks which correspond to where the top intervals begin and where they end. Sorry,
where the largest of the bottom intervals begins and ends. And we also have some capacity left,
and please, remember that we already scheduled all the bottom jobs recursively, so there are
some slots are left. So you can imagine that there is some kind of capacity curve, and we have to
fill in the top jobs somewhere in the remaining slots. And from the last slide, we do know that if
we would be allowed to ignore any precedence constraint among the jobs, we would be able to
schedule everything. And now the argument is that we can still schedule essentially all of the
jobs, losing only a small number, and there the crucial argument is that the length of the
maximum chain was bounded. Okay. Good. So what is the earliest deadline first algorithm.
Essentially, you sort the jobs according to the deadlines, and now you just schedule them
greedily, and let's imagine the following. If you have a job and its deadline is coming and you
didn't manage to schedule job in one of the slots, then we just throw it away, and we want to
count how many of the jobs did we throw away. Okay, and there's the last slide. And this is
essentially a modification of a standard argument and scheduling, so if you ever look into a
scheduling book, you might find something very similar. So imagine this is the time horizon,
these are blocks, and you only have deadlines at the beginning and at the end of those blocks.
Okay. Now, let's assume for the sake of contradiction that there's some interval where we have
discarded more than K many jobs, and we want to get some bound on K, so let's imagine this is
very, very large, and then we will come to a [indiscernible]. Okay. Good. So for some technical
reason, imagine that the large job that you discarded in this block, it really was the lowest
priority job, and imagine you just delete everything else. The trick is that the earliest deadline
first policy doesn't actually change for all the jobs that came earlier, so that's without loss of
generality. Okay, so we know that this block is kind of overloaded. For some reason that we
don't understand yet, we were throwing a lot of jobs away. Now, let's backtrack and let's see -let's go back to the last block, where we had less than C many idle times, and C was the bound
on the maximum chain length, meaning that actually the block before had more than C many idle
times. And now the crucial argument is if you have a job that we did schedule in one of those
blocks here, then I claim that the deadline could not have been before this point. Because if it
would have been before this point, then it would have been at this point or earlier, and I had
more than C many idle times, meaning I could have scheduled it in here. So the point is, the
observation you should make is -- okay. So let's say in this picture, the maximum -- okay,
imagine the maximum chain length is two, and now here, let's say I have three free slots. Now,
imagine you want to schedule a job, and you want to schedule it as early as possible. Then the
only reason why I cannot schedule him in one of those three slots would be that while he has to
depend on this guy, but why did I not schedule this guy earlier? Well, he has to depend on this
guy. Well, then he has to depend on this guy. So then you can again construct a chain of length
more than C, very similar to Graham's algorithm, to the analysis of Graham's algorithm, and then
you would get a region. Okay, so what happens? So every job that we actually scheduled in this
area, it had release time and deadline here, so it had -- and any of those K jobs that we couldn't
schedule, it has release time and deadline here, and that gives you a bound on K. And the bound
depends on C and that number of blocks here. Yes, I think it should be -- K should be bounded
by PMC, so you know that in no block do you discard more than that many jobs, so you probably
have to multiply that with another factor of P, which is your number of blocks. And that's
actually the end of the whole thing. Okay. So there are some calculations. You just need to
count how many jobs did you throw away in total. You choose the parameters correctly, but
every idea is actually you did see. Okay. Is there any question? Okay. There are actually some
open problems. So it's not so clear whether not a constant number of Lasserre round would be
enough, or Sherali-Adams rounds, or at least an actual poly log number of rounds. So for us, this
is like -- this is M divided by epsilon-squared times log log N, so that's not so nice. Actually,
also nice problem is what happens if you have running times that are not one, but you have
arbitrary running times. Some of the arguments still make sense. Others don't. So that would be
nice, whether one can have some extension here, and that's what I wanted to tell you. Thank you
for listening.
>> Mohit Singh: Questions? What's an important problem?
>> Thomas Rothvoss: For this one? Well, the two approximations. So Graham's algorithm also
works if you have general running times. Two, maybe two minus 1RM, something like that, but
nothing better. Do you have a question?
>>: I had one technical question, because it might be [indiscernible], but somehow you just -why did you need this break of log log N, because I thought you just needed it to break -- you
just need 2 to be large, right?
>> Thomas Rothvoss: Yes, yes.
>>: But 2 could be a large constant, as well, right? K depends on epsilon, or indeed does it need
to depend on N?
>> Thomas Rothvoss: Okay, the problem is how many jobs you throw away, so you want to say
-- you want to throw away like an epsilon or epsilon round fraction of jobs throwing way would
be fine. There is a technical problem, which is that the level where the jobs are assigned, it can
move, because you do the conditioning. And this makes it very hard to only cut a constant
fraction of the jobs, so this is why we had to choose the parameter larger. It does look like a
technical problem. We really thought for some time about it, but we couldn't get rid of it. That's
the reason why there's the log N to the log log N term. It's one of the things where you write it
down, you think, okay, it's not going to take you more than 20 minutes to find a solution, and
two weeks later, you say, ah, let's be happy with it. Yes.
>> Mohit Singh: Any more questions? Okay, let's thank Thomas again.
Download