dd

<p>set P;<br /> set M;<br /> set T := 1..6;</p> <p>param am&nbsp;&nbsp;&nbsp; {M}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;=&nbsp;&nbsp;&nbsp; 0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Available Machines Count<br /> param mm&nbsp;&nbsp;&nbsp; {M, T}&nbsp;&nbsp;&nbsp; &gt;=&nbsp;&nbsp;&nbsp; 0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Maintenance Machines Count<br /> param pf&nbsp;&nbsp;&nbsp; {P}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;=&nbsp;&nbsp;&nbsp; 0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Profit<br /> param tm&nbsp;&nbsp;&nbsp; {P, M}&nbsp;&nbsp;&nbsp; &gt;=&nbsp;&nbsp;&nbsp; 0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Time<br /> param de&nbsp;&nbsp;&nbsp; {P, T}&nbsp;&nbsp;&nbsp; &gt;=&nbsp;&nbsp;&nbsp; 0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Demand<br /> param si&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; := 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Initial Stock<br /> param sf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :=&nbsp;&nbsp;&nbsp; 0.5;&nbsp;&nbsp;&nbsp; # Stock Fee<br /> param sc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :=&nbsp;&nbsp;&nbsp; 100;&nbsp;&nbsp;&nbsp; # Stock Capacity<br /> param fsc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :=&nbsp;&nbsp;&nbsp; 50;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Final Stock Capacity<br /> param dm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :=&nbsp;&nbsp;&nbsp; 24;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Days per Months<br /> param sd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :=&nbsp;&nbsp;&nbsp; 2;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Sessions per Day<br /> param hs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :=&nbsp;&nbsp;&nbsp; 8;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Hours per Session</p> <p>var x {P, T}&nbsp;&nbsp;&nbsp; &gt;=&nbsp;&nbsp;&nbsp; 0;<br /> var d {P, T}&nbsp;&nbsp;&nbsp; &gt;=&nbsp;&nbsp;&nbsp; 0;<br /> var i {P, T}&nbsp;&nbsp;&nbsp; &gt;=&nbsp;&nbsp;&nbsp; 0;</p> <p>maximize Total_Profit:<br /> &nbsp;&nbsp;&nbsp; sum {p in P, t in T} pf[p] * d[p, t] - sum {p in P, t in T} sf * i[p, t];<br /> &nbsp;&nbsp; &nbsp;<br /> subject to Machine_Availability {m in M, t in T}:<br /> &nbsp;&nbsp;&nbsp; sum {p in P} tm[p, m] * x[p, t]<br /> &nbsp;&nbsp;&nbsp; &lt;= (am[m] - mm[m, t]) * dm * sd * hs;</p> <p>subject to Demand {p in P, t in T}:<br /> &nbsp;&nbsp;&nbsp; d[p, t] &lt;= de[p, t];</p> <p>subject to Stock {p in P, t in T}:<br /> &nbsp;&nbsp;&nbsp; x[p, t] + (if t &gt; 1 then i[p, t - 1] else si) = d[p, t] + i[p, t];</p> <p>subject to Stock_Capacity {p in P, t in T}:<br /> &nbsp;&nbsp;&nbsp; i[p, t] &lt;= sc;<br /> &nbsp;&nbsp; &nbsp;<br /> subject to Final_Stock_Capacity {p in P}:<br /> &nbsp;&nbsp;&nbsp; i[p, 6] = fsc;</p> <p>data;<br /> &nbsp;&nbsp;&nbsp; set P := 1 2 3 4 5 6 7;<br /> &nbsp;&nbsp;&nbsp; set M := Grinding Vertical_Drilling Horizontal_Drilling Boring Planing;</p> <p>&nbsp;&nbsp;&nbsp; param am :=<br /> &nbsp;&nbsp;&nbsp; Grinding&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4<br /> &nbsp;&nbsp;&nbsp; Vertical_Drilling&nbsp;&nbsp;&nbsp; 2<br /> &nbsp;&nbsp;&nbsp; Horizontal_Drilling 3<br /> &nbsp;&nbsp;&nbsp; Boring&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br /> &nbsp;&nbsp;&nbsp; Planing&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1;</p> <p>&nbsp;&nbsp;&nbsp; param mm:<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp; 5&nbsp;&nbsp;&nbsp; 6 :=<br /> &nbsp;&nbsp;&nbsp; Grinding&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; 0<br /> &nbsp;&nbsp;&nbsp; Vertical_Drilling&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; 0<br /> &nbsp;&nbsp;&nbsp; Horizontal_Drilling&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 1<br /> &nbsp;&nbsp;&nbsp; Boring&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 0<br /> &nbsp;&nbsp;&nbsp; Planing&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 1;</p> <p>&nbsp;&nbsp;&nbsp; param pf :=<br /> &nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; 10<br /> &nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp; 6<br /> &nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp; 8<br /> &nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp; 4<br /> &nbsp;&nbsp;&nbsp; 5&nbsp;&nbsp;&nbsp; 11<br /> &nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp; 9<br /> &nbsp;&nbsp;&nbsp; 7&nbsp;&nbsp;&nbsp; 3;</p> <p>&nbsp;&nbsp;&nbsp; param tm:<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Grinding&nbsp;&nbsp;&nbsp; Vertical_Drilling&nbsp;&nbsp;&nbsp; Horizontal_Drilling&nbsp;&nbsp;&nbsp; Boring&nbsp;&nbsp;&nbsp; Planing :=<br /> &nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; 0.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.05&nbsp;&nbsp;&nbsp; 0<br /> &nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp; 0.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.03&nbsp;&nbsp;&nbsp; 0<br /> &nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.01<br /> &nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.07&nbsp;&nbsp;&nbsp; 0<br /> &nbsp;&nbsp;&nbsp; 5&nbsp;&nbsp;&nbsp; 0.3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.05<br /> &nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp; 0.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br /> &nbsp;&nbsp;&nbsp; 7&nbsp;&nbsp;&nbsp; 0.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.08&nbsp;&nbsp;&nbsp; 0.05;</p> <p>&nbsp;&nbsp;&nbsp; param de:<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp; 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6 :=<br /> &nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; 500&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 600&nbsp;&nbsp;&nbsp; 300&nbsp;&nbsp;&nbsp; 200&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 500<br /> &nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp; 1000&nbsp;&nbsp;&nbsp; 500&nbsp;&nbsp;&nbsp; 600&nbsp;&nbsp;&nbsp; 300&nbsp;&nbsp;&nbsp; 100&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 500<br /> &nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp; 300&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 200&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 400&nbsp;&nbsp;&nbsp; 500&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 100<br /> &nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp; 300&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 500&nbsp;&nbsp;&nbsp; 100&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 300<br /> &nbsp;&nbsp;&nbsp; 5&nbsp;&nbsp;&nbsp; 800&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 400&nbsp;&nbsp;&nbsp; 500&nbsp;&nbsp;&nbsp; 200&nbsp;&nbsp;&nbsp; 1000&nbsp;&nbsp;&nbsp; 1100<br /> &nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp; 200&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 300&nbsp;&nbsp;&nbsp; 400&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 300&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 500<br /> &nbsp;&nbsp;&nbsp; 7&nbsp;&nbsp;&nbsp; 100&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 150&nbsp;&nbsp;&nbsp; 100&nbsp;&nbsp;&nbsp; 100&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 60;<br /> end;</p> <p>&nbsp;</p>