[Coin-discuss] Job shop scheduling advice/help
William Heath
wgheath at gmail.com
Fri Oct 6 13:47:40 EDT 2006
Hi All,
I am very interested in solving a job shop scheduling problem I have. I
must implement the following:
22 # Jobs can have an earliest start time (es), or have already
started (st) 23 # Jobs can be scheduled as a result of forcasted
demand or as part of an 24 # actual sales order 25 # Jobs can
have a needed by time (nb) 26 # Jobs can have a normal or high
priority 27 # Jobs can have a different initial startup times on
the machines 28 # Jobs can have a different post initial startup
times on the machines 29 # Workcenters can have downtime (sdt,
duration of downtime in seconds) 30 # Workcenters can have
different schedules from each other ex: 6:00 - 17:00, 31 #
9:00 - 17:00 32
# 33 # Alternative workcenters can be used (wc4, alt: wc1,
wc2, wc3) 34 # workcenter 4 jobs
can be done on wc1, or wc2, or wc3 35 # Workcenters can have
different efficiently rates ex: 80% 120% etc... 36 # 37 # Hard
constraints for the manufacturing resource planning/scheduling: 38 #
1. No more then 1 task can be done on any 1 machine at 1 time 39 #
2. Dependent jobs must be done before parent jobs 40 # 3. No job
can be done on a machine when the machine is not available (wc
schedule) 41 # 4. A job that has started cannot be rescheduled and
must finish (can't move job if 42 # started) 43 # 5. All
jobs with a high priority must/should be scheduled before jobs with
normal 44 # priority (This obviously can be violated if a job
has already started and has normal 45 # priority, you could end
up with a situation where the normal priority job was started 46 #
before a high priority job) 47 # 7. Jobs related to a sales
order should be scheduled before those associated 48 # with
forcasted demand 49 # 8. Jobs that have a shorter needed by delta
between now and the needed by date should 50 # be done before
those with no needed by date or a longer delta between now and the
51 # needed by date 52 # 53 # Soft constraints: 54 # 1.
If a job cannot be completed by the needed by date, the less late it
is the better 55 # 2. The schedule with the least amount of non
work time gaps is superior to others 56 # when compared
(fitness function) 57 # 58 # Goal: 59 # To create an
intelligent mrp scheduler that can schedule 6000 jobs in 30 seconds
60 # choosing a suboptimal but close to optimal schedule out of many
possible schedules 61 # 62 # The results are all the jobs with
their durations and start times in seconds as an offset 63 # from
the schedule start date/time. The xmlrpc function scheduleTasks also
returns 64 # all the close times derived/needed in the scheduling.
I have attempted a brute force solution to this with perl and it needs lots
of work. If anyone is interested in looking at it please go to:
http://edusmart.cvs.sourceforge.net/edusmart/perlMRPScheduler/
The 6000 jobs take well over 30 seconds currently. It is quite frustrating
to say the least. I have been told that a better approach might be to use a
genetic algorithm. What would be ideal for me is to use a library that at
least partially or completely solves the problem. I really want to avoid
re-creating the wheel. Any help/advice would be greatly appreciated.
Thanks,
Tim
P.S.
My solution will be GPL'd and opensource and then integrated in tinyerp. If
your interested in a free opensource erp program go to www.tinyerp.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/coin-discuss/attachments/20061006/3e9b7fb5/attachment.html>
More information about the Coin-discuss
mailing list