I'm dealing with a "not-so-tiny" master production planning problem for a product with multiple exclusive configuration options (for the sake of simplicity, let's say: a car which can be configured to have one out of three available engine options, optionally one out of two available aircon alternatives, etc.)

Products are build to order (orders are aggregated and pre-scheduled on a cal week basis, though), i.e., every job also has an availability time associated with it, and for every configuration option, there are capacity limits per planning period (week) [e.g., only a certain amount of engines for each engine type is available].

Any [preferably: "awesome"] ideas for a "compact" approach to model a job in this scenario?

A bunch of double-indexed bin params for every configuration option (\(engine_{1,j} = 0, engine_{2,j} = 1, engine_{3,j} = 0\) for a job \(j\)), int param for availability time, and int var for production time (week)?

A multi-(possibly: sub-)indexed formulation?

_Any_ help/thoughts is/are appreciated!

asked 30 Jan '13, 08:36

fbahr's gravatar image

fbahr ♦
accept rate: 13%

closed 31 Jan '13, 05:36


Thanks @Paul & @kr1zz; for the time being, I decided to "close" (in the sense of "pause") this thread until I'm able to elaborate my question a little bit.

(31 Jan '13, 05:39) fbahr ♦

The question has been closed for the following reason "Other" by fbahr 31 Jan '13, 05:36

Single assembly line? Any sequence dependencies (e.g., switching motor types incurs a time penalty)? Cost-type objective, minimizing tardiness, just looking for a feasible schedule?

Related MIP models I've seen usually start by defining slots and using binary variables for which job occupies which slot(s), then bolts on more pieces as needed.

Job sequencing is also a common application of constraint programming (where the models strike me as more compact).


answered 30 Jan '13, 19:45

Paul%20Rubin's gravatar image

Paul Rubin ♦♦
accept rate: 19%

I agree with @Paul, both for the request for more info and for constraint programming: I had a little yet very pleasant experience with it, so I'd suggest it to start very quickly. In particular I played with IBM ILOG CP optimizer which provides the type "interval" as a decision variable which, in many cases, is more than enough to model a job. CP optimizer comes with many useful functions on interval variables, like cumulative expressions, which are easily plugged into constraints. Writing capacity, time windows, alternatives, etc. becomes very easy. In alternative I guess most of these functions can be implemented, if not supplied, with most cp solvers (there's plenty of!).

CP models I have seen so far are small, readable, quick to develop and to produce a feasible solution. However - in my very limited experience - better solutions can be found by other techniques, including local search or mathematical programming. However I would go for CP anyway as an initial step to better learn the problem.

That said, let us know something more about the problem...


answered 31 Jan '13, 04:03

kr1zz's gravatar image

accept rate: 25%


I'd like to learn more about your experience with CP Optimizer, especially cases where you found other methods to be more effective. It may help us improve our CP solver ;-)

(10 Feb '13, 09:00) jfpuget

Dear @jfpuget, I'd like to contribute, but I fear we're going off topic here :) I'll contact you privately.

(14 Feb '13, 03:09) kr1zz

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here



Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "Title")
  • image?![alt text](/path/img.jpg "Title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported



Asked: 30 Jan '13, 08:36

Seen: 1,487 times

Last updated: 14 Feb '13, 03:09

OR-Exchange! Your site for questions, answers, and announcements about operations research.