QQ登录

只需要一步,快速开始

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

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

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

1

主题

4

听众

29

积分

升级  25.26%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2009-4-22 11:37 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
本帖最后由 厚积薄发 于 2010-1-26 21:10 编辑
5 u2 q, P- m, ?2 t7 @7 J2 }: B( D; b% W) n! p; u0 g5 D; \
看到一个题:1 x% f, n( a; m* X. \1 ]2 K! \
职员时序安排模型  
! F4 I) K3 g, m) {# a: L2 A一项工作一周 7 天都需要有人(比如**工作) ,每天(周一至周日)所需的最少职员数为 20、16、13、16、19、14 和 12,并要求每个职员一周连续工作 5 天,试求每周所需最少职员数,并给出安排。注意这里我们考虑稳定后的情况。
' s1 A, O4 U' emodel: ) g6 z+ @6 m0 w8 s
sets:
7 j$ |7 w& d. J- l* A; Z  days/mon..sun/: required,start;
; ?' [/ o+ |( o; [* Tendsets
2 Z/ c7 d% k  P4 _0 }/ Udata: 0 M) f5 L' A/ n* W) b2 b7 W3 c. O/ a
  !每天所需的最少职员数; $ E( X3 J3 C# ^, o2 J
  required = 20 16 13 16 19 14 12;  
0 Q3 ]# y! t! F/ ^% jenddata
3 z" A) d' b- @, Z* d!最小化每周所需职员数;
) `) k) v( c: _) d) {  min=@sum(days: start);
3 _& j5 b9 p( v0 u  @for(days(J):
7 c6 m' D6 Y4 q    @sum(days(I) | I #le# 5:   c6 j6 v: x+ J: \& s
      start(@wrap(J+I+2,7))) >= required(J));
* V+ ^; f0 E, {6 _3 @end
6 a) G! i7 _# u/ s0 k
' |8 @8 n" }( X5 @其中@sum(days(I) | I #le# 5: / E( ?5 ?/ [* I0 J$ @$ a2 v
      start(@wrap(J+I+2,7))) >= required(J)); 是什么意思啊?我知道比如周一要排的人要从上个周四算起,但是不知道wrap中J+I+2和7各代表什么意思啊?还有这个函数怎么用啊?4 P& _; h0 o+ ~3 b0 |
请各位帮忙,谢谢了!
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 / K, B3 \& R( ^5 ]1 q0 D- G
    一个员工工作一天算一个工期& _& F( s$ c* l) n( c& A) A
    所有的天数加起来:总工期
    回复

    使用道具 举报

    追梦者 实名认证       

    13

    主题

    4

    听众

    594

    积分

    升级  98%

    该用户从未签到

    国际赛参赛者

    新人进步奖

    群组数模应用

    群组LINGO

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

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

    群组Mathematica研究小组

    本帖最后由 追梦者 于 2009-8-13 10:37 编辑 1 {+ A, \3 k; ~& w! j+ y3 n# v* u
    @wrap(index,limit)函数在循环、多阶段计划编程中经常用到!表示index模limit再加1,limit相当于一个周期。~5 u3 P: a# m7 n
    371568491 发表于 2009-4-22 22:35

    & c: d6 C9 r% u( K- X8 M: c小弟与上面这位仁兄的理解稍有不同,英美中星期表示与我们不同,我们将星期一看成第一天,而他们则是将星期日看成第一天。在lingo中sun就表示第一天,用数字0标识。因此@wrap(index,limit)的用法就是index模limit而不加1。
    , q+ [6 x+ {# i  `( h0 D你可以运行下面的结论来看一看:
    . c% v7 i( r) F1 a: c" V' ^. k. I这是原程序
    * X; u  z8 }9 S/ `4 O( v* K) L7 Emodel:; a# F9 A. ?, d+ ]5 V) B& [
    sets:
    2 I$ u6 V! z8 P& E# X* r  days/mon..sun/: required,start;
    9 z8 \. b/ D3 G  Jendsets, H6 x. Q! T; m
    data:
    7 s- q8 d1 B7 A  f7 _6 M* ^9 u" E  !每天所需的最少职员数;; N/ a3 P6 H4 L
      required = 20 16 13 16 19 14 12; 8 o" z* a9 t) [; @  W
    enddata) I% P' }# S0 Z$ D1 V* x5 `
    !最小化每周所需职员数;
    8 \& }' F- @( k% i# w  min=
    9 b% f" c& V  `$ R@sum(days:start);
    8 O8 f* ?8 a) Z. K  @for(days(J):7 B: Y" F, M" K- _
        @sum(days(I) | I #le# 5:
    0 K0 e( z$ C0 }; S4 e9 K$ o) ]8 T: L5 i+ [      start(@wrap(J+I+2,7))) >= required(J));2 \7 a. Q* U1 T4 e7 f- L: _, D4 a
    !外国人的第一天是星期日;. f, Q' k; B2 W3 s0 A' @( h
    end- K) D/ v' J0 [, c0 R3 R
    将上面的程序中的集修改为
    6 S& l" p; v' `( g" f; Ssets:
      }. ~2 _" M- p2 k' ^$ ?8 C" {* Jdays/1 2 3 4 5 6 0/: required,start;  J  ^. Y) _" h( p4 T/ V) r5 Z
    endsets
    6 f  T. r0 i8 ]2 R: ?- b# D$ ?5 _在运行效果一样,证明了我的结论。

    点评

    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的值
    7 m2 a, O6 [; V我个人觉得也不是教程上说的加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-7-20 03:54 , Processed in 0.692189 second(s), 106 queries .

    回顶部