[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Job Shop Scheduling for a 2 stage process



Title:
Hi David, and nice comments Wendy,
 
I am about to finish a PhD for a simultaneous Lotsizing and Scheduling problem in a single stage parallel non-identical machine scenario. I have developed the integration between GAs and Linear programming and so far my results proved that it works very well. The way I represented the solution also allow flexibility in terms of time-horizon were periods are not identified with traditional approaches such Big buckets and Small buckets by Wolsey.
The advantage of using integrated approaches is that you can have the best of the randomness from GA side and the optimal solutions from LP. LP is also quicker to solve than MIPs and offers a reasonable and sometimes optimal solution overall. GA alone is horrible and MIP alone are to time consuming so using them integrated is a very nice alternative, but be careful since all will depend how do you represent your scheduling problem.
For more details of my research please do not hesitate to contact me.
 
Andrea Toniolo Staggemeier
PhD Research Student
University of the West of England
Faculty of Computing, Engineering and Mathematical Sciences
Intelligent Computer Systems Centre
P Block - Room 3P31 - Frenchay Campus
Coldharbour lane - Bristol - England
BS16 1QY
Phone: ++44 117 344 3279
e-mail: Andrea.Staggemeier@uwe.ac.uk
 
----- Original Message -----
From: Wendy Williams
To: Multiple recipients of list GASCHEDULING
Sent: Monday, February 16, 2004 1:32 PM
Subject: Re: Job Shop Scheduling for a 2 stage process

I have worked on some manufacturing planning and scheduling problems.

What I have found is:

1) Evolutionary algorithms work great for manufacturing *planning* 
problems where the horizon and number of orders is huge. These are far, 
far bigger and complex than *scheduling*. Deterministic search 
algorithms will need huge amounts of memory and processing time for 
planning problems, but EAs are more readily adaptable to implementation 
limitations.

EAs also work wonderfully if you want to implement a solution relatively 
quickly and develop it by iterative prototyping. The flexibility of 
separating search from ranking the goodness of candidate solutions is 
extremely powerful when developing industrial solutions. Often users 
find out that what they thought were requirements really don't make 
sense if they can separate themselves from all their historical 
assumptions and their worries about how an algorithm performs search. 
Being able to change the objective function quickly to try things out is 
extremely valuable.

2) EAs won't produce the detailed quality of schedule that mixed integer 
programming can provide, but they are much quicker to implement and far 
more adaptable to ongoing release changes.  I have worked on flow 
problems  where the scheduling constraints were so many and so extremely 
interdependent on orders (even from a past schedules) that the best EA 
solutions were still suboptimal (often that's why planning over the 
larger time horizon is key, as well as scheduling).  There were very few 
soft constraints and very little tolerance for high WIP (work in 
progress/process) - products would be useless or damaged if WIP measures 
were too high, expensive equipment would run suboptimally, and so on.

You can fine-tune your EA so that it starts out searching globally and 
narrows down focus to local search at the end (either by dynamically 
changing modifiers and modifier weights and parameters; or buying runing 
sequences or populations of different kinds of EAs to accomplish the 
same thing). This can do amazingly well and then you can even run some 
kind of repair algorithm after that. Still, my experience is that 
someone who really knows how to do mixed-integer programming can beat 
even a great EA hands down, but they need a system with a fast CPU and  
Megs/Gigs of RAM. And the users have to be able to specify exactly what 
they want and need *upfront*, before algorithm design begins.

One can produce an EA in a few weeks and be ready to start fine-tuning. 
Experienced MIP programmers took months because they had to be able to 
specify far more details on "how" to produce a good solution. They also 
needed a long fine-tuning stage because they had huge performance and 
memory problems and had to partition the problem (and redo lots of 
programming and testing). For well-designed EA software, this is easily 
managed by tweaking parameters.

In subsequent releases, there were features that could only be added to 
the EA solution, often because of time to implement. Or because users 
wanted to play around with multiple objectives or constraints that were 
very difficult and/or time-consuming to add to the MIP approach. In that 
case, users didn't care that EA results were not optimal -- getting 
"good enough" results was just fine. I don't think this would apply to 
your case however as there's less tolerance for violation of constraints.

3) To answer your question: in my opinion, the best solution is probably 
to use both algorithms. Start out with an EA. Get something up and going 
and see what kind of schedules are produced. Fine-tune EA algorithm 
search performance while also refining user requirements and 
expectations (always an evolving target...). Once you know exactly what 
users really want, you can implement a MIP solution. In the meantime, 
the EA is available.

In working on manufacturing problems,  I was fortunate to be in an 
environment where the synergy between the EA and MIP algorists was quite 
remarkable. Each was able to improve one's own algorithm by observing 
the other's approach. With some more time, I think we could have 
implemented an awesome solution that combined both methods, but in the 
timeframe we had, that wasn't possible.

We were able to determine where each algorithm had it's strengths and 
weaknesses and the tradeoff pattern between algorithms. Our  product 
manager was really great on describing  when each of the solutions 
worked best so that users had a choice.

I don't know if it helps, but that's my two cents for the day!
Wendy

To be more precise, I would be interested in more details, such as
1) What is the time horizon (2 weeks, 1 month?)
2) How many orders on average per schedule? Are they distributed fairly 
evenly over the schedule time horizon?
3) Has any planning already been done to produce the orders for the 
schedule input? How much variation is acceptable from the plan? How much 
variation from the previous schedule?
4) More details on resources (load restrictions, setup times,...), 
number of shifts, and all the stuff needed to define objectives, hard 
and soft constraints.
5) What kind of system, memory limits, and runtime limits?

--
Wendy Williams
wendy@magma.ca

David wrote:

>Hi guys,
> 
>I am newbie to this mailing list and certainly in an urgent need for
>directions on particular scheduling problem... 
> 
>I am currently working on a job shop scheduling process for a parallel 2
>stage oven-furnace kind of material flow.
> 
>I am undecided on what approach should I use to solve the problem. I am
>thinking of using either dynamic programming, integer programming or EA
>to solve.  I wonder anyone here has previous experience on solving job
>shop scheduling problems before.
> 
> 
>I would appreciate all suggestions and comments  
>Many thanks for your time and attention !! 
> 
> 
>P/S: More details on the problem at hand can be forwarded on request.
> 
>Regards
>David
> 
> 
>
>  
>
  



This incoming email to UWE has been independently scanned for viruses and any virus detected has been removed using McAfee anti-virus software