再说一些实现方法。' L) H! F; k1 n o8 O/ E
) r" v- w0 l; k$ Y5 k# ?7 ~7 o* {为你的货架建立一个二维全局数组,每个单元对应一个货位。这样既可以研究随机摆放,也可以研究按照固定位置摆放。如果你不需要直观,一维数组也可以。
# V; W8 Z/ a$ J+ D z5 B7 ?" C# O% C0 Q% n
如果货位上没有货物,就设置为0,有货物就这根据货物类型分为 X=1,Y=2,Z=3 等等。
% T, B% K/ M* Y# |% l% j1 b6 S6 o$ T. a) R% y5 M
当货物进来时,根据货物的类型 XYZ 将货物放置于某个货架上,这个放置的过程,相当于在全局数组中找到货位赋值的过程。这里建议你用 Equation (I) 这个模块来表达这个逻辑。在这个模块中,需要大量采用 GAGetInteger, GASetInteger 这两个函数不断从数组中读取或者写入。我估计这两个函数会占据你逻辑的大部分内容,这相当于不断的查货位,占据货位,清空货位。. A9 l! ]9 |: ?8 s: ^! f
1 L! p! V& j ?$ R5 H7 X
当货物经过 equation(I) 模块后,就存入到 queue 模块,但为了出货方便,建议你采用 Queue, Equation 模块,这个模块可以模拟按照各种需要的次序离开货位。
/ f, s9 ~2 k& T" I" y1 Y0 _* u, L' n0 @) b$ R+ x* ~6 V+ `
当货物离开时,在 queue, equation 模块中,按照需要的时间间隔和逻辑,也是大量采用 GAGetInteger 和 GASetInteger 这两个函数,将可以离开的货物选择地释放出来(如果不明白, 请参考这个模块的例子) ,并且清空货位的数组单元。( Y z. d W9 k( p$ i4 Q* w/ r
8 j; m/ |' K1 @, g; {, ~! e. M
我不是太明白你的出货策略,这三个产品的出货策略如果需要和下游需求挂钩的话,那么在你的模型中还要有下游需求的模拟,否则,你需要人为地产生出货的需求间隔和数量。 |