I was involved in this project for Mitsubishi Chemical in Japan, but the project was still ongoing when I left COSYTEC. The initial design for the CHIP part of the system was done by Gregor Baues and myself. I’m basing my description on a paper by M. Takada and T. Terano. A Planning and Scheduling Application Having Intermediate Cutting Stock and Complex Pull-Type Production Demands. Proceedings of International Symposium on Scheduling 2002. pages 137-140. http://ci.nii.ac.jp/naid/110002483524/en/
The rationale of the project was to convert the manufacturing in the plant from a push-process to a pull-process. Traditionally, the plant was producing for stock, keeping 3-4 months of finished products and making long, but infrequent, production runs to replenish the stock. Given that the plant produced 1700 types of finished products, it is not surprising that order fulfillment could reach 30 days. In order to reduce stock cost and make the factory more reactive to customer demands, the manufacturing was changed to a pull process. Orders were not satisfied from stock, but made from a stocked intermediate product, in the quantity required by the order. Constraint programming was crucial to allow frequent re-scheduling, reacting to changes in the order book. In the end the project achieved significant savings, cutting stock levels by half, and improving order fulfilment to 2.6 days on average, while achieving other savings as well.
What are PS plates, you might ask? They look like this:
PS (Pre-Sensitized, lithographic) plates are a main component in offset printing, which is used in the majority of medium to large-scale printing tasks today. In offset printing, the image to be printed comes from a coated aluminium sheet, placed around the printing cylinder. The aluminium is treated so that its surface is hydrophilic (attracts water), while the developed coating is hydrophobic. Water and oil-based ink are used to transfer the image from the plate to a rubber roller, which then transfers the image onto the paper. The image below shows the printing process:
PS plates are made from large rolls of high quality aluminium. In a first process step, the rolls are run through several steps of electro-chemical processes to clean and roughen the surface. This roughening, called graining, creates microscopic pits on the surface, which can hold water. An enlarged view of the surface is shown in the next image:
The aluminium is then anodized to harden it, and coated with a photo-sensitive polymer, then dried for some time. Up to this point this is a continuous process, i.e. the roll runs through these steps as a continuous band. Next, the roll is cut into large sheets, which are inspected for imperfections. A percentage of the sheets are rejected, good sheets are stored in the intermediate product store. Based on roll width and thickness, the details of the processing and coating, and the cut length, around 300 intermediate products are created in this process.
The next step takes large sheets from the intermediate product store and converts them into a finished product of a given size. The cutting is done by large cutting machines which make guillotine cuts across the complete width or length of the sheets, sometimes followed by drilling to create registration holes. The resulting sheets are again inspected and possibly treated, before being packaged in one of many packaging forms. They can be stacked or packaged individually, wrapped in paper or plastic, and/or stored in cardboard boxes. The packs or boxes can be stacked in larger boxes, which are then placed on pallets and possibly are wrapped in plastic.
In the Mitsubishi plant, 38 different pathways for products are used, including or skipping machines, even using the same machine several times. There are multiple copies of several machines, and the cutting machines come in different varieties. For each product, preferences and hard constraints limit which of the alternative machines can/should be used.
The development process used in this project was quite distinct. The application was developed in C++, allowing Japanese localization of the user interface. But the C++ code for the application was generated from a Prolog based model describing the UML object model, the user interface and (parts of) the constraint model. Requirements of the end-users were advancing the development of code generator at a rapid pace.
The constraint model was using the full range of global constraints available in CHIP (using its C/C++ library). The first phase of the manufacturing problem is controlled by sequence dependent setup, requiring a cycle constraint. The second production phase is modelled using more classical scheduling constraints, using disjunctive and cumulative resources, handling machine choices (with preferences) and of course using inequalities to express the sequence of operations in each job. Multiple cumulative constraints were used to express manpower limits, based on operator qualifications. Operators move between machines, as many machines are only needed for short periods of time.