Originally posted by: Filipe Costa
Hi all,
General context of my problem: I need to schedule mill orders (specification of each mill order is encoded in the product item) in machines. However some mill orders can not go to all machines; The setup time to move from a mill order A to a Mill order B depends on the machine that they are scheduled and the product item of mill order A and mill order B;
Snip of the Model:
{Operations} operations = {<mo,ma>| mo in mill_orders, ma in machines, d in dependencies : d.product_item==mo.product_item && d.machine==ma.name};
dvar interval transformation[o in operations] optional size ftoi(ceil(o.mill_order.volume/ o.machine.production_rate));
dvar sequence machines_operations[ma in machines] in all(o in operations: ma.name==o.machine.name) transformation[o] types all(o in operations: ma.name==o.machine.name) ord(product_items,o.mill_order.product_item);
How can I efficiently minimize the setup times on each machine?
Right now this is my objective function:
minimize sum (ma in machines) ((max(o in operations: o.machine.name==ma.name) endOf(transformation[o])) - (sum(o in operations: o.machine.name==ma.name) sizeOf(transformation[o]))); // Downtime Optimization
But it is very slow...
#DecisionOptimization#OPLusingCPOptimizer