Backround to Q: I have a location allocation problem being modeled in frontline solver. Basically, I have a min and max limit on the number of lines I can have and some time based constraints as well. So, essentially i am running my plant for 12 months.

I need to model a continuous 2 month shutdown for the lines. I can do MIP, but I want the problem to be linear. Since # of lines in a place is a variable, my capacity constraint cant be: supply_to_plant <= (#_of_line)*(line_on_in_that_month)

How do I linearly model the continuous shutdown?

asked 14 Jun '13, 11:24

chini_lap_lp's gravatar image

accept rate: 0%

You said the number of lines is variable. Does that mean you want the model to determine when each line shuts down?

(14 Jun '13, 16:02) Paul Rubin ♦♦

You are right. the model's results should give me the amount of raw material being processed in each line for each month, and hence, when each line is down for maintenance. The constraint enabling the flow to happen is a demand constraint to be satisfied.

(14 Jun '13, 23:54) chini_lap_lp

Here is a worded form of the algebraic expression (Sorry, but the algebraic form was becoming time consuming- still learning! :) )

Network : Supply(S)->Godown1(G1)->Process(M)->Godown2(G2)->Customers(C)

TCab: Transport Cost for a to b; STc: Storage Cost at c

Processing Cost = FC(N) + VC(N)*x [FC & VC are fns of N-# of lines at candidate location m]


(Sijkl) [ i-product_type, j-month, k-supply location l-destination location]

(G1mnop) [ m-product_type, n-month, o-godown location p-processing location]

(Mqrst) [ q-product_type, r-month, s-processing location t-storage location]

(G2uvwx) [ u-product_type, v-month, w-processing location x-storage location]

Obj fn: Min z = Transport Costs + Processing Costs + Storage Cost

Subject to:

positive lower bounds, supply and demand constraints, flow constraints, line capacity constraints( 2 month shutdown + integer variables for # of lines -> non-linear in itself!)

(15 Jun '13, 01:46) chini_lap_lp

Scheduling is seldom linear in practice. But, if the number of lines is the only issue preventing you from writing a linear model, then you can try to fix those decisions and solve multiple models.

In more detail: Is it viable to enumerate the possible number of lines to shut down each month? There are typically not very many lines to begin with, and once you look at them carefully, fixing some of them open or closed tends to make it easy to fix some of the others to open or closed as well, based on data.

Solving collections of models this way is one of the reasons people migrate to modeling languages. If you want to stick with Excel, you will almost surely have to write some VBA.

For more guidance than that, we'll need more details.


answered 14 Jun '13, 23:58

Leo's gravatar image

accept rate: 8%

Even with a min and max, I also have a possibility of outsourcing. So one can't give a constraint regarding the possible number of lines to shut down each month. (Btw, the reason I am doing all this over time as well is because of a combination of highly seasonal crops)

In VBA, I am assuming a branch and bound algo will do? Although with 4-7 lines , and 10 candidate locations with a time factor of 12 months, the complexity increases! This is a fairly large problem, with variables around 50k and constraints around 7k.

(15 Jun '13, 00:12) chini_lap_lp

In linear problems: activities can be incremented by a continuous amount; and increasing the level of an activity affects the consumption each resource by the same amount no matter what the activity level is. 50K by 7K is usually not that large for a modern Linear Programming solver.

You shouldn't need to implement B&B yourself. Instead, you'll need to write some VBA code to copy values around and resolve.

If you post your model here in algebraic form you will get better answers.

(15 Jun '13, 00:35) Leo
Your answer
toggle preview

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]( "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: 14 Jun '13, 11:24

Seen: 1,561 times

Last updated: 15 Jun '13, 15:37

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