Re: Even Distribution

2020-04-17 Thread doc hawk via use-livecode
Bob belabored, > BAs I said, all else being equal, roughly same work required, localized > territory, no chance of a job being rescheduled, etc. Use a Round Robin > approach. For that matter, if it is an ongoing situation, where this is simply a daily load of randomly sized tasks, round

Re: Even Distribution

2020-04-17 Thread Skip Kimpel via use-livecode
Awesome. thank you! On Fri, Apr 17, 2020 at 1:15 PM Alex Tweedly via use-livecode < use-livecode@lists.runrev.com> wrote: > Or to do the full distribution ... > > put Njobs div Ndrivers into tMin > put NJobs mod Ndrivers into tExtras > > repeat with i = 1 to NDrivers > if i <= tExtras

Re: Even Distribution

2020-04-17 Thread Alex Tweedly via use-livecode
Or to do the full distribution ... put Njobs div Ndrivers into tMin put NJobs mod Ndrivers into tExtras repeat with i = 1 to NDrivers    if i <= tExtras then   allocate tMin+1   else allocate tMin   end if end repeat However, say your drivers are sorted alphabetically, then before

Re: Even Distribution

2020-04-17 Thread Bob Sneidar via use-livecode
As I said, all else being equal, roughly same work required, localized territory, no chance of a job being rescheduled, etc. Use a Round Robin approach. Start with first worker, store as next worker, assign first job, update next worker. On to job 2 and so forth until no more jobs. Next day

Re: Even Distribution

2020-04-17 Thread Bob Sneidar via use-livecode
Wait, what? You didn’t mention that! Okay we do service for copiers in the greater LA area. We assign territories for every technician and every customer. Also, the nearest technician to any zone may be called upon to service another technician’s copiers if the assigned technician is

Re: Even Distribution

2020-04-17 Thread Bob Sneidar via use-livecode
That wasn’t part of the initial problem. :-) Bob S > On Apr 16, 2020, at 7:30 PM, Dev via use-livecode > wrote: > > Since you would probably have long trips and short trips, I would try and > allocate on an estimated time to complete basis so that all were busy for > about the same time.

Re: Even Distribution

2020-04-17 Thread Bob Sneidar via use-livecode
Assign the jobs round robin if all other things are equal. Bob S > On Apr 16, 2020, at 7:23 PM, Skip Kimpel via use-livecode > wrote: > > I have 15 "jobs" that need to be assigned to 7 "drivers". How would you > evenly distribute the jobs to the drivers? In this case one of the drivers >

Re: Even Distribution

2020-04-17 Thread Skip Kimpel via use-livecode
Jerry, You did not over simplify at all! I used your basic concept and tweaked it and then applied it to my nested repeats and BAM... got it. Thanks again, everybody! SKIP On Fri, Apr 17, 2020 at 12:28 AM Jerry Jensen wrote: > Hi Skip, > Forgive me if this is not the answer you seek, or an

Re: Even Distribution

2020-04-16 Thread Jerry Jensen via use-livecode
Hi Skip, Forgive me if this is not the answer you seek, or an oversimplification, but there is an easy way to find if the jobs can be exactly evenly distributed, with nothing left over: if (tjobs mod tdrivers) = 0 then // it is evenly distrutable. .Jerry > On Apr 16, 2020, at 7:41 PM, Skip

Re: Even Distribution

2020-04-16 Thread Håkan Liljegren via use-livecode
Maybe I’m misunderstanding but if you just want to divide the jobs you could have a counter for the current driver and after assigning a job you increase the counter and wrap it when you exceed the number of drivers. If you’re looking for a more fancy job division algorithm you should take a

Re: Even Distribution

2020-04-16 Thread Skip Kimpel via use-livecode
I have working on creating a loop that would divide the number of jobs by the number of users and then checking to see to see if it is evenly divisible but that is kind of where I am stuck. Everything I have tried thus far has proven to be unsuccessful. SKIP On Thu, Apr 16, 2020 at 10:36 PM

Re: Even Distribution

2020-04-16 Thread Brian Milby via use-livecode
It was already mentioned somewhat, but you need some sort of weight metric for each job.  Save the “smallest” job.  For each driver, assign the largest and smallest job remaining.  When done, add the weight for each driver and give the remaining job to the one with the least work. Thanks,

Re: Even Distribution

2020-04-16 Thread Skip Kimpel via use-livecode
Dev, I have already sorted the jobs out by proximity so I don't need to worry about that. Just need the distribution piece down. I agree, you have a good point an might prove valuable in the future. SKIP On Thu, Apr 16, 2020 at 10:33 PM Skip Kimpel wrote: > Haha... Let me specify, I am

Re: Even Distribution

2020-04-16 Thread Skip Kimpel via use-livecode
Haha... Let me specify, I am looking to do this programmatically :) SKIP On Thu, Apr 16, 2020 at 10:31 PM Dev via use-livecode < use-livecode@lists.runrev.com> wrote: > Since you would probably have long trips and short trips, I would try and > allocate on an estimated time to complete basis so

Re: Even Distribution

2020-04-16 Thread Dev via use-livecode
Since you would probably have long trips and short trips, I would try and allocate on an estimated time to complete basis so that all were busy for about the same time. > On 16-Apr-2020, at 8:23 PM, Skip Kimpel via use-livecode > wrote: > > I have 15 "jobs" that need to be assigned to 7

Re: Even Distribution

2020-04-16 Thread doc hawk via use-livecode
On Apr 16, 2020, at 7:23 PM, Skip Kimpel via use-livecode wrote: > > I have 15 "jobs" that need to be assigned to 7 "drivers". How would you > evenly distribute the jobs to the drivers? Fire two drivers. :_) If they complain, fire two more, and it’s still easy . . .

Even Distribution

2020-04-16 Thread Skip Kimpel via use-livecode
I have 15 "jobs" that need to be assigned to 7 "drivers". How would you evenly distribute the jobs to the drivers? In this case one of the drivers would have 3 jobs while the others have two. Obviously, the number of drivers and number of jobs would fluctuate. This has been my mind twister for