QQ登录

只需要一步,快速开始

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

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

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

1

主题

4

听众

29

积分

升级  25.26%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2009-4-22 11:37 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
本帖最后由 厚积薄发 于 2010-1-26 21:10 编辑 , x( g% ~0 P5 I2 Z& u( |

1 n$ g# V( s' ?看到一个题:
0 e- u0 S" l# N2 V; M. M职员时序安排模型  1 A1 B+ j" Z" E9 f- m
一项工作一周 7 天都需要有人(比如**工作) ,每天(周一至周日)所需的最少职员数为 20、16、13、16、19、14 和 12,并要求每个职员一周连续工作 5 天,试求每周所需最少职员数,并给出安排。注意这里我们考虑稳定后的情况。 , w  Y( E( L# f4 \2 d
model:
& M3 S7 [( m: j9 F) B+ Lsets:
0 q1 q. b- r. @$ X5 I- r  days/mon..sun/: required,start;
+ X& L$ V% Q! ?0 P0 o( hendsets ! E( X  ?5 N- O9 V
data: 4 p( Q. U4 |- r( [. i
  !每天所需的最少职员数;
5 [0 a, @' F( {$ w8 X  required = 20 16 13 16 19 14 12;  
$ l. ?; s. k9 G' genddata
# Y& n. B4 z; u!最小化每周所需职员数;
  M7 L& o) u' i$ f! R9 f' z# t  min=@sum(days: start); . r& t% u6 ]  [( T# U& {9 _# N7 S
  @for(days(J):
6 q! r! I7 N$ Y% e4 m    @sum(days(I) | I #le# 5: 4 X1 U; r) m' ^
      start(@wrap(J+I+2,7))) >= required(J));
1 Y& T3 }0 S  @) I# eend" }8 W) _4 i/ a& E+ [0 w. c

# w  |7 I0 r5 M" t. j. r( U其中@sum(days(I) | I #le# 5:
$ l1 x* ~9 z3 A6 G% s' N- [3 U# j      start(@wrap(J+I+2,7))) >= required(J)); 是什么意思啊?我知道比如周一要排的人要从上个周四算起,但是不知道wrap中J+I+2和7各代表什么意思啊?还有这个函数怎么用啊?& `8 z# b' y! I* k+ W, E
请各位帮忙,谢谢了!
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
    0 A$ }9 ~! [: S4 ?$ @/ {+ A一个员工工作一天算一个工期# C# p. l1 k, {) C; H) H( g
    所有的天数加起来:总工期
    回复

    使用道具 举报

    追梦者 实名认证       

    13

    主题

    4

    听众

    594

    积分

    升级  98%

    该用户从未签到

    国际赛参赛者

    新人进步奖

    群组: 数模应用

    群组: LINGO

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

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

    群组: Mathematica研究小组

    本帖最后由 追梦者 于 2009-8-13 10:37 编辑 ' m5 A/ G$ o9 z# z+ f& O6 M
    @wrap(index,limit)函数在循环、多阶段计划编程中经常用到!表示index模limit再加1,limit相当于一个周期。~
    : P& v3 a$ f8 Y. t" e371568491 发表于 2009-4-22 22:35

    0 ~  P' y! F* n$ D小弟与上面这位仁兄的理解稍有不同,英美中星期表示与我们不同,我们将星期一看成第一天,而他们则是将星期日看成第一天。在lingo中sun就表示第一天,用数字0标识。因此@wrap(index,limit)的用法就是index模limit而不加1。/ ^: z9 v1 F/ j5 c) I* |! k
    你可以运行下面的结论来看一看:# A$ d# u) N: s5 v
    这是原程序+ p: @1 G/ u# W& t' g, |
    model:
    , k5 R  B) B- C9 Ksets:
    % i* b2 u: P1 A$ n3 I  w  days/mon..sun/: required,start;4 o8 d. o+ |4 k# Y
    endsets
    * e4 b" s% E! G; s* B9 l% o7 B2 z. wdata:
    9 W" Y( S" n# h0 {& ]  !每天所需的最少职员数;
    6 _7 ?* U6 @& Z1 a2 I1 P% q& k$ K  required = 20 16 13 16 19 14 12; - n( W4 B& G6 d, [
    enddata
    4 u3 G3 q( e7 U( ?5 u- R!最小化每周所需职员数;
    1 i. N- y; W2 X; S9 \  min=
    5 K: h' Y  s& ^0 Z( Z@sum(days:start);, r7 ^6 F. c$ W: n5 o, Z+ C( M* x
      @for(days(J):! s1 S5 E3 K. {! P
        @sum(days(I) | I #le# 5:
    $ r5 Y& P3 ]& u4 {. j( l. o5 C      start(@wrap(J+I+2,7))) >= required(J));2 @; F& H/ P& y9 r
    !外国人的第一天是星期日;
    + S! M2 C5 _, \  xend
    % |* l8 ^' L1 k0 M8 @) {' U/ d0 Y将上面的程序中的集修改为
    ! S1 Y7 V) t3 x5 l5 p$ t! Jsets:! G5 k4 j4 [- _7 u" d
    days/1 2 3 4 5 6 0/: required,start;, C4 s% d5 |( A- Q. V' Y4 O( T4 a, U
    endsets
    1 ?, l. R* O' @" z) o! A, b. u在运行效果一样,证明了我的结论。

    点评

    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" p1 {5 W" P( r
    我个人觉得也不是教程上说的加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-10-11 06:46 , Processed in 1.096272 second(s), 109 queries .

    回顶部