You are on page 1of 5

6 3.

Simple discrete optimization examples

3. Simple discrete optimization examples


3.1 The knapsack problem

Consider a problem faced by a hiker packing n types (items) of equipment into his knapsack.
Let cj > 0 be the "value" and aj > 0 be the "weight" of the j-th item. If the total weight
N f g
limitation (capacity of the knapsack) is b, = 1; : : : ; n the set of the items, then the problem of
maximizing the total value of the packed knapsack may formulated as binary knapsack problem:

maximize
X
cj xj (1a)
j∈N

subject to
X
aj xj  b; (1b)
j∈N
f g
xj ∈ 0; 1 ; ∀j ∈ N; (1c)
where

Æ
1; if the j-th item is packed,
xj =
0; otherwise.

3.2 Unrelated parallel machines

A production system consists of single stage with a set of several (parallel) machines. Let
pij be the processing time of product j on machine i and Cmax the makespan, i.e. the maximal
processing time of one of the machines. Now we formulate the problem in the following way:

minimize

Cmax (2a)

subject to
X
pji xji  Cmax ; ∀i ∈ M; (2b)
j∈N
X
xji = 1; ∀j ∈ N ; (2c)
i∈M
f g
xji ∈ 0; 1 ; ∀j ∈ N; ∀i ∈ M; (2d)
where

Æ
1; if j-th product is assigned to j-th machine,
xji =
0; otherwise.
3. Simple discrete optimization examples 7

3.3 The capacitated plant location problem

The problem involves choosing locations for plants (facilities) producing a single product in
such a way that the total cost of production and transportation of the product from the plants
to the clients (consumer) in order to cover their demands are minimal.
M f g N f g
Let = 1; : : : ; m be the set of plants and = 1; : : : ; n be the set of clients. Let ci be
the xed cost of opening i-th plant, ai the productivity of the i-th plant, bj the demand of the
j-th client, and dij a unit cost of production in i-th plant and transportation to the j-th client.
Now we formulate the problem in the following way:

minimize
X XX
ci xi + dij yij (3a)
i∈M i∈M j∈N

subject to
X
yij  bj ; ∀j ∈ N; (3b)
i∈M
X
yij  ai xi ; ∀i ∈ M; (3c)
j N∈

xi ∈ f0; 1g; ∀i ∈ M; (3d)


yij  0; ∀i ∈ M; ∀j ∈ N; (3e)
where
yij { is the amount of product transported from i-th plant to j-th client

and
Æ
1; if plant i will be opened,
xi =
0; otherwise.
8 3. Simple discrete optimization examples

4.Optimization of station workloads and product movements

The contents of this section is a part of: Sawik, T. (1999): Production Planning and
Scheduling in Flexible Assembly Systems. Springer-Verlag, Berlin, New-York, Tokyo 1999
(pp. 44{47).
In order to best utilize the system capabilities and to minimize the completion time of all
product requirements, the FAS balancing problem should simultaneously account for both the
assembly times and the transportation times between the stations.
The models presented in this section aim at simultaneous optimization of station workloads
and station-to-station product ows. The problem objective is to determine the optimal assign-
ment of tasks to station and the assembly routes for all products so as to minimize the sum of
weighted assembly and transportation time.
The solution of each model must satisfy the following four basic types of constraints:
 The demand for all products must be satis ed.

 The number of tasks assigned to each station must not exceed its exibility capacity.

 Tasks must be assigned to stations such that precedence relations among the tasks are
maintained with no revisiting of stations required in a FAL.
 Products must be routed to the stations where the required assembly tasks have been
assigned.

Station 1 Station 2 Station m


- m1 machines ×
b1 part feeders
- m2 machines ×
b2 part feeders
-- mm machines ×
bm part feeders
-
Set of components Set of components Set of components

 
6 
L/U

Base parts
? Finished products

Rysunek 1: A exible assembly line with parallel machines

Models M1 and M2 are proposed for exible assembly lines, in which products do not revisit
any station. In the model M1 each station is a single assembly machine, whereas in M2 a station
consists of identical parallel machines (see Fig. 3.1). Model M3 is constructed for a general FAS,
in which revisiting of stations is allowed.
In the models M1 and M2 precedence relations among the assembly tasks for all the product
types are merged and are represented by a single super-precedence constraint, whereas in the
model M3 individual precedence constraints for each product type are introduced. The notation
used in the models proposed is shown in Table 3.1.
In order to simplify the presentation of models proposed for exible assembly lines, all
machines in the FAL are assumed to be of the same type, which is exible enough to perform
3. Simple discrete optimization examples 9

all assembly tasks. This assumption can be easily relaxed to extend the models for multiple
machine types. When a machine i is incapable of performing some tasks j, (i.e., i ∈ Ij ), the
corresponding assignment and routing variables are restricted to zero.
Another simpli ed assumption made in this section is that of equal working space required for
all tasks. Under this assumption, the nite working space bi of a station can be rede ned as its
exibility capacity, i.e., the maximum number of di erent tasks that can be assigned to a station.
If the latter assumption does not hold, then di erent working space requirement coeÆcients aij
for each task should be introduced into the corresponding constraints with the bi 's coeÆcients
de ned again as a station working space available.
Model M1: Balancing station workloads and minimizing product movements in a e-
xible assembly line
Minimize
XX
Fmax = Pmax + (1 - ) dk yik (4)
i∈I k∈K

X Xto
subject
dk pjk xij  Pmax; i∈I (5)
k∈K j∈Jk
X
xij = 1; j∈J (6)
X
i∈I
xij  bi ; i∈I (7)
X j∈J
X
ixij  ixir ; (j; r) ∈R (8)
i∈I i∈I
yik  xij ;
i ∈ I; k ∈ K; j ∈ Jk (9)
f g
xij ∈ 0; 1 ; ∀i; j (10)
f g
yik ∈ 0; 1 ; ∀i; k (11)
The rst term of the objective function Fmax (3.1) corresponds to station workload balance
and the second term to station visits by all products. The weight factor  (0    1) is used
for trading-o between the two criteria.
Constraint (3.2) determines workload Pmax of the bottleneck station. Constraint (3.3) ensures
that each task is assigned to only one station. The station exibility capacity constraint (3.4)
guarantees that the total number of tasks assigned to a station does not exceed the number of
available part feeders. Constraint (3.5) maintains the precedence relations among the assembly
tasks and ensures that a product does not revisit any station in a unidirectional ow system.
If task r is assigned to station i, then task of each type j, that is to be performed immediately
before r must be assigned to a station l such that l  i. Constraint (3.6) ensures that each
product is routed to the station where the required tasks are assigned.
10 3. Simple discrete optimization examples

Tabela 1: Notation
Indices
i = f
assembly station, i ∈ I = 1; : : : ; mg
j = f g
assembly task, j ∈ J = 1; : : : ; n
h = parallel machine at station i, (h = 1; : : : ; mi )
k f
= product, k ∈ K = 1; : : : ; v g
Input parameters
aij = working space required for assignment of task j to sta-
tion i
bi = total working space of station i (number of tasks that
may be assigned to station i, if all aij = 1)
dk = demand for product k
mi = number of parallel machines at station i
pjk = assembly time for task j of product k
qil = transportation time from station i to station l
Ij = the set of stations capable of performing task j
Jk = the set of tasks required for product k
R (Rk ) = the set of immediate predecessor-successor pairs of ta-
sks (j; r) (for product k) such that task j must be per-
formed immediately before task r
 = the weight factor in the objective function, 0    1
Decision variables
M = number of stations with assigned tasks
Mi = number of parallel machines at station i with assigned
tasks
Pmax = maximum station workload (cycle time)
xij = 1, if task j is assigned to station i ∈ Ij ; otherwise
xij = 0
xihj = 1, if task j is assigned to parallel machine h at station
i; otherwise xihj = 0
yik = 1, if product k visits station i; otherwise yik = 0
yiljk = 1, if product k is transferred from station i after com-
pletion of task j, to station l to perform next task;
otherwise yiljk = 0
Yiljk = number of products k to be transferred from station i
after completion of task j, to station l to perform the
next task
zijk = 1, if product k is assigned to station i to perform task
j; otherwise zijk = 0
Zijk = number of products k assigned to station i to perform
task j

You might also like