0

I am trying to do a job shop scheduling resorting to anylogic. I have 20 jobs, 5 machines(resources) and each job has a specific order to visit each machine. In each machine each job has different processing time.

This is what I have right know. I have jobs agent that have a DB table of the machine sequence associated.

This is my jobs agent. I created the collections col_machinesequence(arraylist of strings with op1,op2...where op are the columns of my DB table) and enterblock(arraylist of class Enter where I put my 5 enter blocks)

In each exit block I call the function nextmachine, you can read about it here How to send agents through exit and enter blocks?.

Right know, when I run my project I don't get any error however this is what happens. I guess something in my nextmachine function or in the collection is wrong so this is where I need your help, if anyone may know what is the problem.

I also want to order each job in each machine in order to the shortest processing time. I have this DB table that right know is not associated to any agent. Does anyone know how to do this?

Thank you in advance

  • What exactly is wrong with the model? There are no errors and all machines show that 20 jobs have been passed through. That seems to be the intention? – Artem P. Jun 30 '21 at 11:33
  • Yes that is the objective, but when I run the project it is like it already starts in this state. Maybe it is because I have no delays. If that is the case, can you see if you can help me in the part of ordering the jobs ir order to their processing time please? – Rodrigo Lemos Jun 30 '21 at 11:45
  • How do **Service** objects pick the delay time for each job? – Artem P. Jun 30 '21 at 11:48
  • I put some random values for the delay and you were correct, que machine sequence is working correctly, thank you so much. But that is the point, my delay time should be que processing times obtained from my DB but I don't know how to do that because it is not associated to jobs agent – Rodrigo Lemos Jun 30 '21 at 11:52
  • I provided details on how to load it from database in another question. Alternatively you can create another agent for *processing_times* table, create a population in Main to load them and look up the right one based on job id - similar to how jobs were done. – Artem P. Jun 30 '21 at 12:05
  • I was trying the second option you talked above. I created the agent ‘processingtime’ and then I created a collection just like I did for the sequence- this one a arraylist where elements are double type. I got confused because I Need to use the same counter to acess to the correct process time right? – Rodrigo Lemos Jun 30 '21 at 12:54

0 Answers0