QQ登录

只需要一步,快速开始

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

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

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

1

主题

4

听众

29

积分

升级  25.26%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2009-4-22 11:37 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
本帖最后由 厚积薄发 于 2010-1-26 21:10 编辑
/ r! c1 v$ ?7 x
( V9 @% A. I0 N1 P8 F. v5 P看到一个题:
8 Y# R( u3 u! _( u9 s* g职员时序安排模型  
8 Q+ t- y6 {$ b5 l+ O: i一项工作一周 7 天都需要有人(比如**工作) ,每天(周一至周日)所需的最少职员数为 20、16、13、16、19、14 和 12,并要求每个职员一周连续工作 5 天,试求每周所需最少职员数,并给出安排。注意这里我们考虑稳定后的情况。
% E/ B+ M& p; a2 h1 n0 G/ j( Nmodel:
4 k4 \) K$ t7 y$ T5 m' R! Ssets: ) c: z$ O/ m/ g  u: w2 V2 {( _) _
  days/mon..sun/: required,start; 4 }9 h; z$ R) W+ i
endsets 5 O+ o) t! l! ^
data: 2 I3 z+ n+ e7 r
  !每天所需的最少职员数;
7 N7 J9 j4 y9 e" A, Y! `, P  required = 20 16 13 16 19 14 12;    u8 u) [2 R$ ~4 _+ S( e" @1 P
enddata ) o9 N) e3 P0 e) W( U2 L
!最小化每周所需职员数; + h+ q7 u+ y* r
  min=@sum(days: start); : h$ I, m( C9 P! C
  @for(days(J):
5 C& \6 E7 {! Q    @sum(days(I) | I #le# 5:
( C7 O( Q  t  I      start(@wrap(J+I+2,7))) >= required(J)); 1 v5 G9 o, g9 |+ M2 }  [; P
end
! ~3 v/ ]7 Y  ]) K6 [& D
  r4 k8 |  _/ H4 `3 T其中@sum(days(I) | I #le# 5: ( }# B, h3 J. }' X* \+ H7 ?) R
      start(@wrap(J+I+2,7))) >= required(J)); 是什么意思啊?我知道比如周一要排的人要从上个周四算起,但是不知道wrap中J+I+2和7各代表什么意思啊?还有这个函数怎么用啊?
2 `; Z, ~& o$ y* z! _( a( X请各位帮忙,谢谢了!
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
buct 实名认证       

26

主题

3

听众

1156

积分

  • 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
    2 q3 O$ {1 ]* P  e5 [& o一个员工工作一天算一个工期
    0 X! T: y2 Z# w所有的天数加起来:总工期
    回复

    使用道具 举报

    追梦者 实名认证       

    13

    主题

    4

    听众

    594

    积分

    升级  98%

    该用户从未签到

    国际赛参赛者

    新人进步奖

    群组数模应用

    群组LINGO

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

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

    群组Mathematica研究小组

    本帖最后由 追梦者 于 2009-8-13 10:37 编辑 3 D# X1 w# k3 \8 b& C2 |" o( c
    @wrap(index,limit)函数在循环、多阶段计划编程中经常用到!表示index模limit再加1,limit相当于一个周期。~
    0 {, S; p; H0 l( E2 v& N371568491 发表于 2009-4-22 22:35
    ) O; e: A4 L& F
    小弟与上面这位仁兄的理解稍有不同,英美中星期表示与我们不同,我们将星期一看成第一天,而他们则是将星期日看成第一天。在lingo中sun就表示第一天,用数字0标识。因此@wrap(index,limit)的用法就是index模limit而不加1。, r' t3 s1 W  O. ?5 k
    你可以运行下面的结论来看一看:- M+ p5 s$ B  i1 v& G: C6 V
    这是原程序( ^; |# d' m/ I
    model:0 A8 b. r1 G; \2 j, V+ f' ]9 @; S
    sets:
    - E7 k3 r7 C% R/ _( }8 g  days/mon..sun/: required,start;& t* ~* t; ]% }8 `) m* g8 Y6 e
    endsets
    # X  k$ g/ K+ ^7 X" t# `data:
      X+ u& p$ |! n' h' x  e! Q4 F  !每天所需的最少职员数;4 [( X$ o# j) m- N% `9 U
      required = 20 16 13 16 19 14 12;
    , @" v, P$ a' u/ S  m+ v% o2 Oenddata
    . I0 G) ^6 p8 ~* Y! n!最小化每周所需职员数;4 y0 Y8 X  v; j7 n( ?4 T
      min=
    " p3 k5 I" w! b@sum(days:start);0 H! L" _1 L5 [& Q- |
      @for(days(J):* G& g2 V! D: X1 w
        @sum(days(I) | I #le# 5:0 a# @9 V# l. j0 T
          start(@wrap(J+I+2,7))) >= required(J));4 ]& q7 O' R! h
    !外国人的第一天是星期日;
    6 h1 f( m- q9 Z; Xend
    2 T/ V. E3 t" g" H. C4 ]9 T6 F& r将上面的程序中的集修改为 5 u6 l* T* }7 V- ~6 e
    sets:
    - f3 t0 @+ ]6 h' i4 u/ V6 \2 r" tdays/1 2 3 4 5 6 0/: required,start;# |, l2 q+ b  C' y
    endsets2 U9 x8 K! r" j( R9 b0 M: z
    在运行效果一样,证明了我的结论。

    点评

    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的值) q5 J+ j1 i* _, B- `' l! w7 O
    我个人觉得也不是教程上说的加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, 2026-4-22 21:25 , Processed in 1.106890 second(s), 109 queries .

    回顶部