QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 24499|回复: 20
打印 上一主题 下一主题

【讨论】新手求助:关于lingo的wrap函数

[复制链接]
字体大小: 正常 放大
guarguar        

1

主题

4

听众

29

积分

升级  25.26%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2009-4-22 11:37 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
本帖最后由 厚积薄发 于 2010-1-26 21:10 编辑 . _$ v. w1 E2 r0 ^4 x  u, e

% L. H1 u* p0 m看到一个题:0 @0 F  X6 ~0 o: q$ R0 e
职员时序安排模型  ; |& G* t/ s, n" l# ^) j
一项工作一周 7 天都需要有人(比如**工作) ,每天(周一至周日)所需的最少职员数为 20、16、13、16、19、14 和 12,并要求每个职员一周连续工作 5 天,试求每周所需最少职员数,并给出安排。注意这里我们考虑稳定后的情况。 1 K) t/ l9 i) ?. ^" E
model:
5 E* e+ s" p: y1 m, e. T$ Jsets: 9 w/ G! X, E. b# H, `; n
  days/mon..sun/: required,start; ( V$ y7 @% t6 B5 F! A: W" w
endsets
2 L; R0 g7 F' X. ydata:
! i0 s9 N( C" t  k( d& e- f3 U  !每天所需的最少职员数; $ S" v# p( G! r& ^
  required = 20 16 13 16 19 14 12;  / [  p* z% t. U" v( G3 i
enddata ! F- i  s) D- i# E+ b- \
!最小化每周所需职员数; ' |/ U: k) j5 W
  min=@sum(days: start); + w+ T' _1 a/ X8 d0 W" ^
  @for(days(J):
9 b* y- ]" u/ e  B3 N. @- V    @sum(days(I) | I #le# 5: ( {, B! z4 r  I7 A
      start(@wrap(J+I+2,7))) >= required(J));
( s$ W7 Y3 H. J: J  cend
, ]5 \8 k- {( {# j, g) G0 W
' h# @7 P2 I8 x/ N! F4 q, |, d. W其中@sum(days(I) | I #le# 5:
# f6 C" H+ C- n0 T      start(@wrap(J+I+2,7))) >= required(J)); 是什么意思啊?我知道比如周一要排的人要从上个周四算起,但是不知道wrap中J+I+2和7各代表什么意思啊?还有这个函数怎么用啊?# J) V! C+ X2 P& p
请各位帮忙,谢谢了!
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
buct 实名认证       

26

主题

3

听众

1155

积分

  • TA的每日心情
    开心
    2018-10-14 09:54
  • 签到天数: 2 天

    [LV.1]初来乍到

    新人进步奖 发帖功臣

    群组数学建模

    群组数学趣味、游戏、IQ等

    群组我行我数

    群组Mathematica研究小组

    群组文献查询

    回复

    使用道具 举报

    371568491 实名认证       

    8

    主题

    3

    听众

    257

    积分

    升级  78.5%

  • TA的每日心情
    开心
    2012-9-14 15:36
  • 签到天数: 1 天

    [LV.1]初来乍到

    新人进步奖

    @wrap(index,limit)函数在循环、多阶段计划编程中经常用到!表示index模limit再加1,limit相当于一个周期。~
    回复

    使用道具 举报

    xieducx7        

    0

    主题

    4

    听众

    10

    积分

    升级  5.26%

    该用户从未签到

    新人进步奖

    1# guarguar
    , h- Q3 r8 F9 |' |5 \, ?7 h) g一个员工工作一天算一个工期- v. W$ H, @3 b8 _. U
    所有的天数加起来:总工期
    回复

    使用道具 举报

    追梦者 实名认证       

    13

    主题

    4

    听众

    594

    积分

    升级  98%

    该用户从未签到

    国际赛参赛者

    新人进步奖

    群组数模应用

    群组LINGO

    群组四川农业大学数学建模协会

    群组重庆交通大学数学建模协会

    群组Mathematica研究小组

    本帖最后由 追梦者 于 2009-8-13 10:37 编辑 . p! g! Z" v9 N4 e. q1 u( c0 q/ g; ?
    @wrap(index,limit)函数在循环、多阶段计划编程中经常用到!表示index模limit再加1,limit相当于一个周期。~
    # r  B& b" t9 _% [4 S0 |371568491 发表于 2009-4-22 22:35

    8 D# r0 O# N9 M- y小弟与上面这位仁兄的理解稍有不同,英美中星期表示与我们不同,我们将星期一看成第一天,而他们则是将星期日看成第一天。在lingo中sun就表示第一天,用数字0标识。因此@wrap(index,limit)的用法就是index模limit而不加1。) |- x! y/ d4 |2 @6 t. v" h& x8 }
    你可以运行下面的结论来看一看:# v0 A  O. E7 c- c( P! Q
    这是原程序
    3 y7 r1 w5 u' Imodel:; w& g. E. d$ U  R9 \; Z
    sets:% E, s. y2 h/ Y
      days/mon..sun/: required,start;
    - U) T" N0 a, l# _) h8 O0 Xendsets/ H* F2 o7 S* \4 d7 l7 l
    data:
    1 G1 X" i/ p& u  !每天所需的最少职员数;
    6 z3 u9 R6 V) {8 [  required = 20 16 13 16 19 14 12;
    7 L* f4 }! Q7 O% m4 m) ?enddata
    . z* y7 }' @. A; Z; D' p!最小化每周所需职员数;) i+ H* B' J8 b/ M+ v, S& t  Q, {% H
      min=
    6 r, i/ q4 r# \0 F; `4 z@sum(days:start);
    7 O8 d9 Q2 W" b% ~  @for(days(J):) r3 v4 {7 I8 G; S
        @sum(days(I) | I #le# 5:& j0 Q, Y  L2 v5 M' S. U* l
          start(@wrap(J+I+2,7))) >= required(J));
    3 K* c& ]1 |$ h4 R, Z+ U! L!外国人的第一天是星期日;
    ' i9 G. L! G" X- I7 [1 E! Iend* b0 a1 U  b. E7 T) S8 i
    将上面的程序中的集修改为
    3 T% C* r" ?0 R0 Q. Xsets:
    0 Y* \, e* Q8 X2 l. [: ?days/1 2 3 4 5 6 0/: required,start;
    : w! f/ s$ ]9 ^6 E" T+ Oendsets
    0 y" c: b( v' ~2 R, o- ~在运行效果一样,证明了我的结论。

    点评

    dirk190  换成1到7 结果相同的  详情 回复 发表于 2014-7-19 22:15
    ganquanlife  我也觉得不用+1啊,  详情 回复 发表于 2013-1-30 19:56
    回复

    使用道具 举报

    0

    主题

    0

    听众

    7

    积分

    升级  2.11%

    该用户从未签到

    新人进步奖

    回复

    使用道具 举报

    唐超超 实名认证       

    0

    主题

    4

    听众

    79

    积分

    升级  77.89%

    该用户从未签到

    群组数学建模

    回复

    使用道具 举报

    phylince        

    0

    主题

    4

    听众

    47

    积分

    升级  44.21%

    该用户从未签到

    新人进步奖

    就是1到limit,没有0了,0应该替换成Limit的值) X3 B& T& D% E3 j9 [
    我个人觉得也不是教程上说的加1
    回复

    使用道具 举报

    sqk20091 实名认证       

    0

    主题

    4

    听众

    6

    积分

    升级  1.05%

    该用户从未签到

    自我介绍
    逗你玩儿
    回复

    使用道具 举报

    0

    主题

    2

    听众

    7

    积分

    升级  2.11%

    该用户从未签到

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-11-8 18:01 , Processed in 0.959958 second(s), 106 queries .

    回顶部