QQ登录

只需要一步,快速开始

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

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

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

1

主题

4

听众

29

积分

升级  25.26%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2009-4-22 11:37 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
本帖最后由 厚积薄发 于 2010-1-26 21:10 编辑
' h# I, m$ D# H/ L0 v/ A( r9 @' C1 {. f# ]8 Q
看到一个题:
% }" Q  P$ H7 g职员时序安排模型  
/ ]$ Z3 F; N! q一项工作一周 7 天都需要有人(比如**工作) ,每天(周一至周日)所需的最少职员数为 20、16、13、16、19、14 和 12,并要求每个职员一周连续工作 5 天,试求每周所需最少职员数,并给出安排。注意这里我们考虑稳定后的情况。
- L- _, y1 Z! Y& u) p6 O+ smodel:
: a2 ?2 d0 m3 D0 w2 xsets:
) z8 X% r" T6 ^; ^) v2 D* C  days/mon..sun/: required,start; 0 ~2 J- G8 z' L1 @' |3 d
endsets ( i  Y4 h  x  F; R! V3 M, f
data:
: P1 i4 D2 s  K: V4 H/ W  !每天所需的最少职员数;
- j! E( V/ i8 H, y* z  required = 20 16 13 16 19 14 12;  
9 {4 B. D1 ]# u+ F2 G0 Renddata
/ R  i+ b: s9 g7 t7 v6 z!最小化每周所需职员数; % q. X7 P1 [3 J5 O+ s' ?
  min=@sum(days: start);
! S3 j$ }* X+ V! }4 U  @for(days(J): ! ~* H( W' U( j) H2 m  N
    @sum(days(I) | I #le# 5: ) S7 j1 c) j& T* t
      start(@wrap(J+I+2,7))) >= required(J));
/ a: m; w+ l7 o; `1 {end% i& w; {& a0 e1 P9 L

" B  ?# S  [, e' T1 o- ~* _2 Q" P其中@sum(days(I) | I #le# 5: ! ^3 p& V9 @7 f, W' @  ?
      start(@wrap(J+I+2,7))) >= required(J)); 是什么意思啊?我知道比如周一要排的人要从上个周四算起,但是不知道wrap中J+I+2和7各代表什么意思啊?还有这个函数怎么用啊?+ l7 b! i3 E: ]: V' o7 a% k! J
请各位帮忙,谢谢了!
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 % ~. E# n! ~7 n% {1 p% H
    一个员工工作一天算一个工期
      T6 d" o. A# b9 I( w所有的天数加起来:总工期
    回复

    使用道具 举报

    追梦者 实名认证       

    13

    主题

    4

    听众

    594

    积分

    升级  98%

    该用户从未签到

    国际赛参赛者

    新人进步奖

    群组数模应用

    群组LINGO

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

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

    群组Mathematica研究小组

    本帖最后由 追梦者 于 2009-8-13 10:37 编辑 + B$ w* @! A& X$ g1 w1 z
    @wrap(index,limit)函数在循环、多阶段计划编程中经常用到!表示index模limit再加1,limit相当于一个周期。~
    * u3 h  s6 ?( {( A371568491 发表于 2009-4-22 22:35
    7 g# \: \# P. B' B4 v
    小弟与上面这位仁兄的理解稍有不同,英美中星期表示与我们不同,我们将星期一看成第一天,而他们则是将星期日看成第一天。在lingo中sun就表示第一天,用数字0标识。因此@wrap(index,limit)的用法就是index模limit而不加1。; P( d8 m' k* D* @+ A+ E/ b
    你可以运行下面的结论来看一看:
    ) h0 G4 @  J! ?/ b+ @0 `这是原程序
    + J3 V; d1 r/ C8 j- dmodel:
    3 v+ g; [8 E+ i2 k% Z# y8 K( Csets:% k5 z1 T  h8 o) e1 b) {
      days/mon..sun/: required,start;2 e( I" m, |3 j9 U
    endsets
    + l: o* M# f- l. odata:: c  {% o0 r  k) a8 ~
      !每天所需的最少职员数;
    9 E4 Z7 r: i' r8 B: Z! Z4 c, K8 `1 u  required = 20 16 13 16 19 14 12;
    7 v& x* e2 K% p- V2 G( R( r+ _enddata. Q- I9 c6 ^% w1 N! J
    !最小化每周所需职员数;
    . c- f7 T+ I, R" x1 w8 Z1 T  min=7 E2 R7 t2 v) B8 w% N( C
    @sum(days:start);5 J  l: D5 |9 C! _
      @for(days(J):/ _  U/ {1 i3 U4 J: e+ j0 j
        @sum(days(I) | I #le# 5:3 C, }" h. V6 d5 i) R+ l
          start(@wrap(J+I+2,7))) >= required(J));8 Z8 [# ~: I1 g$ K8 B; h
    !外国人的第一天是星期日;
    ' e/ l& |0 w( N3 U3 ^2 w& }5 fend! l8 ~& N; @  ]: ^
    将上面的程序中的集修改为
    - `6 N+ ^' @+ ?( y2 l8 [, C7 gsets:. l7 w! j- C8 b1 N: _1 E
    days/1 2 3 4 5 6 0/: required,start;) ^: R6 {4 B. d; G; l, \
    endsets, p$ X% q# |0 E/ j
    在运行效果一样,证明了我的结论。

    点评

    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的值
    ) R) y0 r& X$ S$ p我个人觉得也不是教程上说的加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-8-23 19:44 , Processed in 0.517421 second(s), 110 queries .

    回顶部