|
|
|
|
|||||||||||||||||||||||||||
![]() |
|
|
«
Previous Thread
|
Next Thread
»
|
Thread Tools | Search this Thread | Display Modes |
|
#1
|
|||
|
|||
|
Reusable resources in a scheduling model
R.U.B wrote:
Hello, > I would like to ask for your help on a MIP model I have been working on for a while. I am modeling reusable resources, teams of workers to be exact, in a static model. In details, I have a scheduling model which assigns jobs to machines where workers have to work for a predefined time on each machine to complete the job. The issue is that the # of workers is smaller than the # of machines and thus only a few machines (as many as the number of workers) can be used at the same time. The workers should be assigned to jobs, become busy, and then become idle when the job is complete and get reassigned for another job. > I tried to model the worker-job assignment using a binary variable. It's easy to assign the worker for the first time (binary var =1) but then I couldn't figure out any way to make the binary variable 0 after some time and set it to 1 again later. > Could you help me with any idea of how to deal with this, preferably without involving dynamic programming? > If workers are in some way unique (different workers have different capabilities), you need binary assignment variables with three subscripts, one each for worker, machine and time. For each worker-time pair, the sum across all machines of those variables is <= 1. For each job-machine-time combination, you need constraints that block that assignment unless the requisite worker-machine-time binaries are equal to 1. the other hand, if all workers look alike, rather than using binary variables you are better off using general integer variables for the number of workers assigned to each machine at each time. Use a constraint that, in each time, the sum of those variables (across all machines) is less than or equal to the number of workers in the pool. You can do this for multiple worker pools (e.g., machine operators v. material handlers). Don't worry about forcing workers to become unassigned at the end of a job. As long as the constraints prevent workers from being two places at once, the solution will take care of that. Worst case, if the solution has workers assigned to idle machines (which can only happen if the workers are not needed elsewhere and there is no cost for have them assigned), you can manually adjust the solution later. It will still be optimal. /Paul |
![]() |
| Viewing: Web Development Archives > FAQs > Research > Reusable resources in a scheduling model |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|
|
|