Tuesday, October 23, 2007

Someone call the nut house

because we have a crazy mathematician on the loose!

Some people have told me that my ideas are way too complicated for most people, and I tend to agree. To some rare individuals, it seems that they are a gross oversimplification. My good friend L.C.S., who has a promising blog named Les aventures du mathématicien fou, had so much to say about my last post Why is the bus so often late in the comments that it would be a crime not to re-post it here.

So there it is, his two posts:

First Post

That looks interesting. However, I do think your model neglects some important things. First, waiting w for the runner causes not only the people in the bus to lose time, but also all other eventual passengers on the bus ride. Indeed, after waiting for the runner, the bus will be w seconds late.

Suppose we number the bus stops along the ride by 1, 2, ..., N. We set X_i to be the number of passengers in the bus between stop i-1 and stop i. Let Y_i be the number of people waiting for the bus at stop i. Then, if the runner is at stop k we have the following TCS if we wait for the runner:

TCS = w * (sum{Y_i, i > k} + X_k)

Then, for it to be valuable to wait, we need:

t > w * (sum{Y_i, i > k} + X_k)

Second, it would be very unfair to wait for the runner at stop k but not for other runners. Thus, if we want to be fair, we need either to wait for all runners along the ride or for none of them.

Let w_i be the time to wait for the runner at stop i. This time can be zero if no runner is present at stop i. Then, if we do not wait for them, the TCS is:

TCS = (N - 1) * t

If we do wait, we get:

TCS = sum{w_k * (sum{Y_i, i > k} + X_k), k = 1, 2, ..., N - 1}

Now, it is unreasonable to suppose we already know all X_i and Y_i. We should treat them as random variables with a given distribution (which can be found by sampling the commuters). Then we can make the calculation with the expectation of the TCS for waiting.

Second Post

Ok, I just realized I made an important mistake. If we do not wait for the runners, then the TCS is not necessarily (N - 1) * t. It is so if there is a runner at each bus stop. A more realistic TCS is given by
TCS = M * t
where M is the number of runners.

And the point you made is very important indeed, Simon. We need to define what "time" means in this context. If we consider an absolute time, then a "runner" at stop i+1 that arrives w_{i+1} seconds late will not cause any problem if the bus has already more than that much time late. However, considering this is much more complicated.

In my comment, I used a "relative" time, meaning that the w_k were times measured relative to the arrival of the bus at stop k. Similarly, I made the not so realistic assumption that the time between buses is alwats t. So even if a bus is already late the runner that did not pick the bus will wait t, not t minus the amount of time the preceding bus was late...

I think it is possible to formulate this problem in a more convenient way. Something like
minimize TCS
s.t. some constraints
To do this, we need to find an expression for the TCS that includes both cases (waiting and not waiting). Then we could set the w_k as variables an try to find what values give an optimal solution to that problem. I still need to figure how to do that. As soon as I found something, I will post it here.

1 comment:

Jonathan said...

Making a complete model would be quite difficult because you have to account for so many things, like there may be more than one bus that passes at that corner which would make t depend on another bus so you would need to come up with something for the whole bus network. Plus, some people could also decide to just stay home, etc. Basically you'll end up with a differential equation that takes up a whole page with plenty of initial conditions. Oh, the joy of differential equations...