Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Handling workers with variable productivity indices #108

Open
gtnunes1956 opened this issue Oct 16, 2021 · 1 comment
Open

Handling workers with variable productivity indices #108

gtnunes1956 opened this issue Oct 16, 2021 · 1 comment
Labels
enhancement New feature or request question Further information is requested

Comments

@gtnunes1956
Copy link

I haven't found a way to satisfactorily handle a situation where a worker's productivity is dependent upon the task it is assigned to (say, a bottle filling line may fill 5000 250ml bottles in a hour, but only 3000 1500ml bottles in the same period).

An obvious first attempt would be to create two different workers, each with a specific capability and productivity (say, worker1 fills 250ml bottles only, and worker2 fills 1500ml bottles only).

Unfortunately these two workers are "views" of the same physical production line, and this will cause problems when they are assigned to multiple tasks (say, task1 uses worker1, and task2 uses worker2 - task1 and task2 cannot overlap).

A straight-forward solution would be to use the 'TasksDontOverlap' constraint. The problem is scalability: I am currently working with a scheduling problem having 68 tasks and 3 physical production lines mapped to 8 "virtual" workers. The number of 'TaskDontOverlap' constraints has gone over 1200 (yes, twelve hundred), and a solution is no longer obtainable.

Any thoughts?

@tpaviot
Copy link
Owner

tpaviot commented Oct 28, 2021

Currently the productivity property of a Worker is an integer. It could be changed as a variable that can be constrained by an if/then/else clause, which certainly is more elegant than the TaskDontOverlap workaround. I'll try to make an example.

tpaviot added a commit that referenced this issue Oct 28, 2021
@tpaviot tpaviot added enhancement New feature or request question Further information is requested labels Oct 29, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants