title: Modelling combinatorial optimization? problem
body: <p>I've been unable to match this problem into some canonical one, and I would like some guides to build/use an algorithm and solve it. Description is as follows:</p>
  
  <hr>
  
  <p>We have some people who want breakfast. Each one may order any number of coffee, juice and toast. We accumulate the order for all the group.</p>
  
  <p><code>InitialOrder = { C1, J1, T1 }  with C1, J1, T1 being integer non-negative numbers.</code></p>
  
  <p>Each component has a given price, so the total price of the initial order is</p>
  
  <p><code>InitialPrice = C1 * Pc + J1 * Pj + T1 * Pt with Pc, Pj, Pt being rational positive numbers</code></p>
  
  <p>Cafeteria has also 'breakfast menus' consisting in combinations of standard items</p>
  
  <pre>full breakfast = coffee + juice + toast
  normal breakfast = coffee + toast
  bread breakfast = 2 toast
  </pre>
  
  <p>Choosing these menus is cheaper than choosing each component separately, so we have</p>
  
  <pre>Pf &lt; Pc + Pj + Pt
  Pn &lt; Pc + Pt
  Pb &lt; 2 * Pt
  with Pf, Pn, Pb being rational positive numbers
  </pre>
  
  <p>People want to group the initial order into menus to minimize the total amount spent. Then</p>
  
  <p><code>FinalOrder =  { C2, J2, T2, F, N, B }  with C2, J2, T2, F, N, B integer non-negative numbers</code></p>
  
  <p>and we'll have a FinalPrice &lt;= InitialPrice as</p>
  
  <p><code>FinalPrice = C2 * Pc + J2 * Pj + T2 * Pt + F * Pf + N * Pn + B * Pb with Pc, Pj, Pt, Pf, Pn, Pb as rational positive numbers</code></p>
  
  <p>All prices (Pc, Pj, Pt, Pf, Pn and Pb) are known in advance.</p>
  
  <hr>
  
  <p>Please, do you know Which approach should I follow to build an algorithm to minimize FinalPrice for a given InitialOrder? Feel free to ask any more details you need.</p>
  
  <p>Thank you in advance.</p>