Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re^3: Efficient Assignment of Many People To Many Locations?

by dragonchild (Archbishop)
on Feb 25, 2005 at 17:21 UTC ( [id://434579]=note: print w/replies, xml ) Need Help??


in reply to Re^2: Efficient Assignment of Many People To Many Locations?
in thread Efficient Assignment of Many People To Many Locations?

Now, I think I'm understanding your problem better. The actual problem isn't so much the assignment of sales calls as the scheduling of sales calls. Let me rephrase it, if you don't mind:
  • You have a set of resources, each with a starting location.
  • You have a set of locations those resources have to cover, with both an expected arrival time and a duration at that location.
  • You have a set of estimated travel costs between locations. (This is the hardest part.)

The question is how to optimize the assignment of the arrival times at each location. For example, let's say you have two sales calls in the same building, each expected to take an hour. You can assign them both to the same salesrep and schedule one for 9am and the other for 10.30 am.

Of course, I haven't seen a good definition for the cost of travel. For example, it takes longer to go from Albany to New York vs. Philadelphia to New York, even though Albany is closer. The reason is that there is excellent train service to/from Philly, but only highways to/from Albany. And, if you want to be useful, you need to take into account plane schedules (though you could assume that everyone takes the red-eye, but you won't be popular after a few months).

You may also want to estimate the expected ROI for a sales call. For example, if you expect $1000 of business from a call, but the salesrep's time is worth $320 ($40/hr) and it costs $600 to get there, is that salescall worth it? But, I think we're getting too complicated.

Essentially, this is really starting to approach the travelling salesman problem in complexity.

Being right, does not endow the right to be rude; politeness costs nothing.
Being unknowing, is not the same as being stupid.
Expressing a contrary opinion, whether to the individual or the group, is more often a sign of deeper thought than of cantankerous belligerence.
Do not mistake your goals as the only goals; your opinion as the only opinion; your confidence as correctness. Saying you know better is not the same as explaining you know better.

  • Comment on Re^3: Efficient Assignment of Many People To Many Locations?

Replies are listed 'Best First'.
Re^4: Efficient Assignment of Many People To Many Locations?
by SmugX (Beadle) on Feb 25, 2005 at 17:42 UTC
    Ooh, no, I'm not being quite that complicated!

    For the purposes of my problem, we can forget about times. Let's assume that each sales rep only has one call per day. My problem is merely about the best geographical assignment.

    Cost of travel is tricky - althought nowhere near as tricky as in your situation. Most reps will hopefully not be travelling that far (if I can get this algorithm right!!!) and all will be travelling by car: hence, no plane scheduling problems, and no allowing for travelling by planes, trains or automobiles as appropriate.

    Hence, I've boiled the scoring mechanism down to simply one of distance. (I'd love a way of estimating time to travel, because of course 50 miles up a motorway is slightly different to 50 miles straight across a town centre. However, whilst I'd love any help on this (I'm in the UK, if you're going to suggest any route-finding services), this is definitely out-of-scope for my original problem.)

    Thanks again,
    SmugX.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://434579]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others surveying the Monastery: (4)
As of 2024-04-19 12:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found