Jobshop with alternative "path"

53 views
Skip to first unread message

Alexander Leiser

unread,
Sep 19, 2022, 7:07:10 AM9/19/22
to or-tools-discuss
I'm trying to model a jobshop problem where a job could have an alternative production path. I think the easiest explanation I can give is by using the  Example flexible jobshop problem  instead of my current one to keep it simple.
The first job in the example is:

jobs = [ # task = (processing_time, machine_id)
  • [ # Job 0
    [(3, 0), (1, 1), (5, 2)], # task 0 with 3 alternatives
    [(2, 0), (4, 1), (6, 2)], # task 1 with 3 alternatives
    [(2, 0), (3, 1), (1, 2)], # task 2 with 3 alternatives
    ]...
So job 0 can run on 3 different machines in each task. What I`m trying to model right now is that for example if I use machine 2 in task 1 I don`t need to do anything in task 0 and task 2 because the machine can do all 3 tasks at once. Basically using one machine in a later task could make another task obselete. 
If I give task 0 an option with 0 processing time the optimizer would obviously always choose that one in case that machine is available at that point, so not really an option.
How can I make an earlier task depent on a later choice, any suggestions?

Laurent Perron

unread,
Sep 19, 2022, 7:30:08 AM9/19/22
to or-tools-discuss
The notion of path is unclear to me. My initial reaction is to use the same literal for all tasks in a path.
Laurent Perron | Operations Research | lpe...@google.com | (33) 1 42 68 53 00



--
You received this message because you are subscribed to the Google Groups "or-tools-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to or-tools-discu...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/or-tools-discuss/e6f2d819-e85d-4ba9-b893-f9d351252069n%40googlegroups.com.

Alexander Leiser

unread,
Sep 19, 2022, 7:36:10 AM9/19/22
to or-tools-discuss
I'm basically talking about the path a product would take. So for example in this case:
machine 1 (time 1) -> 2 (time 6) -> 2 (time 1)
one alternative would be
machine 0 (time 3) -> 1 (time 4) -> 2 (time 1)

But like this there is no way ( I found) of modelling a job path which makes one task obsolete. For example using machine 2 in task 1 makes using a machine in task 0 unnecessary or alternatively using machine 2 in task 1 requires machine 1 in task 0 but using another machine leaves all the options in task 0. I hope this clears the questions up a bit

Laurent Perron

unread,
Sep 19, 2022, 7:39:45 AM9/19/22
to or-tools-discuss
Isn't this just a set of implications between the performed literals of the tasks ?

Laurent Perron | Operations Research | lpe...@google.com | (33) 1 42 68 53 00


Alexander Leiser

unread,
Sep 19, 2022, 8:23:03 AM9/19/22
to or-tools-discuss
I think the problem is that there is no possible implication when you start scheduling. You will only find out later.
If it would be clear in task 0, that for example only that machine is needed I think it`ll be no problem.
But I have can't figure out how to model it and string everything together with the alternatives...

Reply all
Reply to author
Forward
0 new messages