Deviding timeconsuming tasks efficiently across agents

32 Views Asked by At

Maybe there's a concept for this problem:

Suppose 3 Bankrobbers, Alice, Bob and Carl want to heist a bank, and the bank has 10 vaults. The Vaults are of different difficulty. Let those difficultys be reperesented by the time $t_i$ to open them, so for example: [1,2,3,4,5,6,7,8,9,10] for the ten vaults. Also, traveling from one vault to another vault takes no time and any vault can only be opened by one robber.

Now my problem: how to effeciently calculate the fastest possible heist? Note that the vaulttimes may vary and the robber group may be of a different size.

Is this problem maybe known with a different story?

Anyway, my attempt to this is: every robber always picks an unopened vault that takes the longest time.

But I don't know if this is the fastest solution.

Edit: as it turns this is the fastest time calculation:

Sort the vaults by their time, it doesn't matter if from smallest to biggest or vice versa.

Now have the robbers in a list $(y_1,...,y_i)$ where $y_i$ is the busytime they accumulated so far, y is 0 at the beginning for all robbers.

While the vaultlist has elements:

  1. Now always choose the robber with the smallest time and give him the last vault of the vault list by adding the vaulttime to his/her busytime.

  2. Remove the last vault from the list.

The heisttime will now be the highest busytime from our bankrobberlist. so some $y_k$.

Can anyone prove that this yields the fastest heisttime?

1

There are 1 best solutions below

0
On

Actually there is a counterexample: Consider the following $5$ vaults with times to break them:$8,7,6,4,3$.

If we run your algorithm on these vaults with $2$ robbers and with the vault times in decreasing order we get the following distribution:

First robber: 8, 4, 3

Second robber: 7, 6

But an optimal distribution would be:

First robber: 8, 6

Second robber: 7, 4, 3

Also for increasing order we would get:

First robber: 3, 6, 8

Second robber: 4, 7

You can see that your algorithm does not compute the best heist time for this example.