1
A Simple Mathematical Programming Problem
Consider a single constraint separable optimization problem of the form:
max
z
=
g
i
(
x
i
)
i
=
1
n
∑
st
h
i
(
i
=
1
n
∑
x
i
)
≤
b
x
i
≥
0 and integers for all
i
.
This problem can be solved by dynamic programming even when the functions
g
i
and
h
i
do not conform to the standard convexity assumptions of mathematical programming.
We decompose the problem into a sequence of single decision variable subproblems
using the constraint to define the state variable domains and the subproblem
interconnections.
This is accomplished by specifying a sequence in which the variables
are to be determined; that is, imposing an artificial sequence in which the variables are to
be determined.
Lets assume that we will work these in the index variable name sequence,
x
1
as the first subproblem,
x
2
as the second, etc.
Then we have transformed the problem
into one depicted by the sequential diagram (three variable problem illustration):
Time 2
Time 3
s
3
s
2
s
4
XX
X
1
2
3
= b
Time 1
> 0
s
1
The state variables
s
i
represent the amount of the resource
b
which is available for
allocation in the specific and future decision periods.
The last state variable,
s
4
in this
example, is the slack variable or how must of the initial b units are left over at the end of
the allocation process and, hence, this must be a nonnegative quantity.
This
nonnegativity property propagates all of the way back to the initial subproblem placing
restrictions on the decision variables.
Here we are assuming that the terms
h
i
represent
usage of the resource units and do not increase them, that is,
h
i
(
x
i
)
≥
0:
This preview has intentionally blurred sections. Sign up to view the full version.
View Full Document2
s
n
+
1
=
s
n
−
h
n
(
x
n
)
≥
0
implies 0
≤
h
n
(
x
n
)
≤
s
n
s
i
+
1
=
s
i
−
h
i
(
x
i
)
≥
0
implies
0
≤
h
i
(
x
i
)
≤
s
i
,
i
∈
n
,
"
,1
s
1
=
b
We can now formulate the dynamic programming recursion equations for this problem.
These are:
f
1
(
s
1
)
=
max{
g
1
(
x
1
)
+
f
2
(
s
1
−
h
1
(
x
1
)) :
x
1
∈
{0,1,2,
"
} with
h
1
(
x
1
)
≤
s
1
},
s
1
∈
{
b
}
f
2
(
s
2
)
=
max{
g
2
(
x
2
)
+
f
3
(
s
2
−
h
2
(
x
2
)) :
x
2
∈
"
} with
h
2
(
x
2
)
≤
s
2
},
s
2
∈
{0,
"
,
b
}
#
f
n
(
s
n
)
=
max{
g
n
(
x
n
):
x
n
∈
"
} with
h
n
(
x
n
)
≤
s
n
},
s
n
∈
"
,
b
}
From the formulation, again we must evaluate these recursion functions in the reversion
order of their definition.
Thus, we solve for
f
n
, then
f
n1
,
"
, and finally
f
1
.
Example Problem
.
We consider the problem:
max
z
=
13
x
1
−
x
1
2
+
30.2
x
2
−
5
x
2
2
+
10
x
3
−
2.5
x
3
2
st
x
1
+
x
2
+
x
3
≤
5
x
i
≥
0 and integers for all
i
.
This results in the recursion functions, here we use the notation very similar to the
MOR/DP language to facilitate the problem solution as well as its formulation:
f
3
(
s
3
)
=
max{10
x
3
−
2.5
x
3
2
:
x
3
in 0.
.5
with
x
3
≤
s
3
},
s
3
in 0.
.5
;
f
2
(
s
2
)
=
max{30.2
x
2
−
5
x
2
2
+
f
3
(
s
2
−
x
2
x
2
in 0.
.5
with
x
2
≤
s
2
},
s
2
in 0.
.5
;
f
1
(
s
1
)
=
max{13
x
1
−
x
1
2
+
f
2
(
s
1
−
x
1
x
1
in 0.
.5
with
x
1
≤
s
1
},
s
1
in 5
;
The tabular solution to this problem is given first and then the output of MOR/DP.
This is the end of the preview.
Sign up
to
access the rest of the document.
 Spring '07
 Klutke
 Optimization, lagrange multipliers, xmax, recursion function

Click to edit the document details