01: // -------------------------------------------------------------------------- 02: // Licensed Materials - Property of IBM 03: // 04: // 5725-A06 5725-A29 5724-Y48 5724-Y49 5724-Y54 5724-Y55 05: // Copyright IBM Corporation 1998, 2013. All Rights Reserved. 06: // 07: // Note to U.S. Government Users Restricted Rights: 08: // Use, duplication or disclosure restricted by GSA ADP Schedule 09: // Contract with IBM Corp. 10: // -------------------------------------------------------------------------- 11: 12: int RollWidth = ...; 13: int NbItems = ...; 14: 15: range Items = 1..NbItems; 16: int Size[Items] = ...; 17: int Amount[Items] = ...; 18: 19: // used in column generation 20: float Duals[Items] = ...; 21: 22: 23: tuple pattern { 24: key int id; 25: int cost; 26: int fill[Items]; 27: } 28: 29: 30: {pattern} Patterns = ...; 31: 32: dvar float Cut[Patterns] in 0..1000000; 33: 34: 35: minimize 36: sum( p in Patterns ) 37: p.cost * Cut[p]; 38: 39: subject to { 40: forall( i in Items ) 41: ctFill: 42: sum( p in Patterns ) 43: p.fill[i] * Cut[p] >= Amount[i]; 44: } 45: 46: 47: execute DISPLAY { 48: writeln("Cut = ",Cut); 49: for(var p in Patterns) 50: writeln("Use of pattern ", p, " is : ",Cut[p]); 51: } 52: 53: tuple CutSolutionT{ 54: pattern Patterns; 55: float value; 56: }; 57: {CutSolutionT} CutSolution = {<i0,Cut[i0]> | i0 in Patterns};