1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
mine Scilab Group Scilab Function mine
NAME
mine - a mining problem
CALLING SEQUENCE
[cout,feed]=mine(n1,n2,uvect)
PARAMETERS
n1 : Number of discrete point for the state.
n2 : Number of time step
uvect
: a row vector which gives the possible control value ( integer values ).
for example u=[-1,0,1] means that at each step we come down one step
or stay at the same level or rise one step ).
cout(n1,n2)
: The Bellman values.
feed(n1,n2)
: The feedback Law.
DESCRIPTION
Dynamic programming applied to an optimal extraction of ore in an
opencast mine. The extraction is done as follows : the steam shovel move
forward for (k=1,2,...,n2) at each step it takes the ore, then move up
or down (or stay at the same level) according to the control value to
reach another level at next step. The extraction process must maximise
the following cost :
-- n2-1
\
/ f(x(k),k) + V_F(x,n2)
-- k=1
with x(k+1)=x(k) + u. x(k) is the trajectory depth at step k (x=1 is the
ground level). The instantaneous cost f(i,k) stands for the benefit of
digging at depth i at position k. It must be given as a Scilab macro ff_o
[y]=ff_o(x,k)
and for efficiency ff_o must accept and return column vectors for x and
y. V_F(i,n2) is a final cost which is set so as to impose the steam
shovel to be at ground level at position n2
FF_O
SHOWCOST
CALLING SEQUENCE
[]=showcost(n1,n2,teta,alpha)
DESCRIPTION
Shows a 3D representation of the instantaneous cost.
|