QQ登录

只需要一步,快速开始

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

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

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

1

主题

4

听众

29

积分

升级  25.26%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2009-4-22 11:37 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
本帖最后由 厚积薄发 于 2010-1-26 21:10 编辑
" r; ~' r, J) @" ^' l3 @
% i6 e- s- k+ U) ~9 \6 N看到一个题:
3 @* v# H6 G# j职员时序安排模型  5 D8 o/ ?' J! z
一项工作一周 7 天都需要有人(比如**工作) ,每天(周一至周日)所需的最少职员数为 20、16、13、16、19、14 和 12,并要求每个职员一周连续工作 5 天,试求每周所需最少职员数,并给出安排。注意这里我们考虑稳定后的情况。
* F5 z$ c' U3 R: Bmodel:
1 z- f+ _/ z. ]8 `5 I4 dsets:
2 O& a3 E+ W, d5 o  days/mon..sun/: required,start; . |. b5 L3 x  j  ]4 C( x1 D# B& V5 e& p
endsets + T7 U3 y6 o7 p! z) r0 z; c: p( a
data:
% n0 e! B7 Y% J5 _0 k  !每天所需的最少职员数;
9 R/ ^8 Q( B6 u% T  required = 20 16 13 16 19 14 12;  
& |+ N2 \: l# _2 Z! g" |enddata ; l1 ^2 H! R- o, q, m7 O
!最小化每周所需职员数;
- U& z0 p% l1 l0 o  min=@sum(days: start);
" w7 _" {; L: c# C* W  @for(days(J): ) o/ c8 ]1 R" F3 `3 d2 K
    @sum(days(I) | I #le# 5: 0 O1 f9 M2 a# b; A
      start(@wrap(J+I+2,7))) >= required(J));
/ t5 V3 I: a# J0 lend
7 [0 E2 e5 N* r
. z3 O# _8 n' u9 d其中@sum(days(I) | I #le# 5:
9 E# h* H& z9 S; |      start(@wrap(J+I+2,7))) >= required(J)); 是什么意思啊?我知道比如周一要排的人要从上个周四算起,但是不知道wrap中J+I+2和7各代表什么意思啊?还有这个函数怎么用啊?
4 L9 _" p: {/ a( l  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
    $ B$ f) W1 }+ P# h. n一个员工工作一天算一个工期$ a2 w% U0 g8 S7 Z( b5 h  b( C
    所有的天数加起来:总工期
    回复

    使用道具 举报

    追梦者 实名认证       

    13

    主题

    4

    听众

    594

    积分

    升级  98%

    该用户从未签到

    国际赛参赛者

    新人进步奖

    群组数模应用

    群组LINGO

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

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

    群组Mathematica研究小组

    本帖最后由 追梦者 于 2009-8-13 10:37 编辑
    8 n. K& a4 O$ U3 f7 {) p
    @wrap(index,limit)函数在循环、多阶段计划编程中经常用到!表示index模limit再加1,limit相当于一个周期。~1 \3 e/ L" ?+ X* t6 r" C2 S
    371568491 发表于 2009-4-22 22:35

    5 B1 T7 t  A3 x小弟与上面这位仁兄的理解稍有不同,英美中星期表示与我们不同,我们将星期一看成第一天,而他们则是将星期日看成第一天。在lingo中sun就表示第一天,用数字0标识。因此@wrap(index,limit)的用法就是index模limit而不加1。
    ( A3 c) S/ k8 \你可以运行下面的结论来看一看:
    2 f, ?% i) w8 p6 d这是原程序
    3 z5 L: m  k& r) T/ umodel:5 t7 _0 T" O) i1 [8 X
    sets:5 W3 S# B0 A+ ]
      days/mon..sun/: required,start;3 |" K7 {1 Z+ w: P8 f
    endsets" Z* M% `1 X' R- J! z
    data:( l2 `+ I7 s: V  G# U$ h: A
      !每天所需的最少职员数;9 C  k& ]5 U5 ?9 x2 G, i
      required = 20 16 13 16 19 14 12; 2 {" t5 a; c# R  w+ ~- I+ \
    enddata3 A7 m1 r( [1 Y1 k6 n  t! t
    !最小化每周所需职员数;
    3 X0 L& T, b/ w+ x  e: s; K$ @  min=
    8 y$ M2 y' F# P8 B" H* `0 a@sum(days:start);! R4 {1 s: M7 R% j9 c1 t8 A
      @for(days(J):. V) K  e5 [7 |
        @sum(days(I) | I #le# 5:
    & A& m) S' D4 Q# q      start(@wrap(J+I+2,7))) >= required(J));
    6 i4 B" C6 Q, k2 ~8 H!外国人的第一天是星期日;
    - v3 Z+ r1 o1 V0 {$ gend6 |. x$ T, i3 q' V
    将上面的程序中的集修改为 8 t" w' D/ y( {$ X- ~  z: a
    sets:! I& T, P' F! z: `% a
    days/1 2 3 4 5 6 0/: required,start;1 r, D, J. a! s
    endsets8 @8 [2 r2 `7 d- a% e; ^! G! e8 ^
    在运行效果一样,证明了我的结论。

    点评

    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的值
    # O7 M; N% ]+ i% q, q5 X2 S我个人觉得也不是教程上说的加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-10-17 07:29 , Processed in 1.268324 second(s), 109 queries .

    回顶部