QQ登录

只需要一步,快速开始

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

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

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

1

主题

4

听众

29

积分

升级  25.26%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2009-4-22 11:37 |只看该作者 |正序浏览
|招呼Ta 关注Ta
本帖最后由 厚积薄发 于 2010-1-26 21:10 编辑 6 {% w; t1 v% P/ j
: R" f6 _4 }0 C# u+ S
看到一个题:% N) c7 d) y4 l
职员时序安排模型  
3 @2 J- h/ n, q/ M! ~( \$ R5 U一项工作一周 7 天都需要有人(比如**工作) ,每天(周一至周日)所需的最少职员数为 20、16、13、16、19、14 和 12,并要求每个职员一周连续工作 5 天,试求每周所需最少职员数,并给出安排。注意这里我们考虑稳定后的情况。 4 u# u+ u% o6 P
model: " e# A% F$ L5 ~3 T3 Q" t4 V
sets: + F  w9 M8 Y$ T9 B* R9 i( A
  days/mon..sun/: required,start; ( p- M  l5 s3 A2 _+ q+ G" L  |
endsets
& \2 |% R' F2 R. s+ a& H! e3 e" cdata: 3 O' D7 a/ ]1 p4 F) p/ M# U0 T6 P
  !每天所需的最少职员数;
. E) w+ l) k  [) H' v: S( t  `  required = 20 16 13 16 19 14 12;  
' Y! x( r; s3 `& I: nenddata
9 j. s6 b+ E/ P. c( y( O6 v!最小化每周所需职员数; / B+ ?5 p% t+ W2 A
  min=@sum(days: start);
1 Q2 O! S5 W& A4 V* q, H  @for(days(J):
" t4 H: L. Q" U; {% Q. J    @sum(days(I) | I #le# 5:
( M( M' A9 V6 P# [# Z% u7 F      start(@wrap(J+I+2,7))) >= required(J));
6 C0 ~6 d/ i# U  E, Tend/ G3 s: `/ u, P( c( F

  b! T) m0 g$ d! i9 B其中@sum(days(I) | I #le# 5:
" D- m& p5 z$ m; G$ _: s8 ?      start(@wrap(J+I+2,7))) >= required(J)); 是什么意思啊?我知道比如周一要排的人要从上个周四算起,但是不知道wrap中J+I+2和7各代表什么意思啊?还有这个函数怎么用啊?' l9 K9 e) h$ L. U3 R* R
请各位帮忙,谢谢了!
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
enqi999        

0

主题

12

听众

74

积分

升级  72.63%

  • TA的每日心情
    奋斗
    2015-1-5 18:43
  • 签到天数: 1 天

    [LV.1]初来乍到

    社区QQ达人

    回复

    使用道具 举报

    dirk190        

    4

    主题

    11

    听众

    41

    积分

    升级  37.89%

  • TA的每日心情
    奋斗
    2014-9-24 22:31
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    自我介绍
    在校学生
    追梦者 发表于 2009-8-13 10:27 2 i3 N: e% r7 n9 i  c9 ]$ U$ t
    小弟与上面这位仁兄的理解稍有不同,英美中星期表示与我们不同,我们将星期一看成第一天,而他们则是将星 ...

    # m, ~8 Q6 a% p, I: x换成1到7 结果相同的
    回复

    使用道具 举报

    9

    主题

    7

    听众

    188

    积分

    升级  44%

  • TA的每日心情
    慵懒
    2013-8-23 15:15
  • 签到天数: 84 天

    [LV.6]常住居民II

    自我介绍
    我想参加明年的数模竞赛

    群组西安交大数学建模

    群组数学建摸协会

    群组英语科技论文写作实训

    追梦者 发表于 2009-8-13 10:27
    ; ?+ I' ^7 A0 l4 }2 e1 x8 S小弟与上面这位仁兄的理解稍有不同,英美中星期表示与我们不同,我们将星期一看成第一天,而他们则是将星 ...

    $ a) q/ [/ C3 n& S. k% i% e我也觉得不用+1啊,
    回复

    使用道具 举报

    5

    主题

    4

    听众

    127

    积分

    升级  13.5%

  • TA的每日心情
    擦汗
    2012-5-15 12:46
  • 签到天数: 34 天

    [LV.5]常住居民I

    自我介绍
    我想要参加数模竞赛,希望大家多多交流
    刘振 发表于 2011-8-12 20:01   K! U3 d' M0 D1 g& y
    model: 3 X6 O9 z/ A! P$ L1 ?+ O
    sets: ( l" D* c  ^% X* S0 f& d9 S& B
    days/mon..sun/: required,start;
    7 ?$ x) R+ O1 j8 a6 |
    对一下做下调整,便于理解
    7 O5 T* _" ~6 w- G- W* H6 v2 P4 ]/ C- c8 E) p1 J8 k  H5 U
    model: 5 \1 Z3 e9 j# P5 {
    sets: : q  L. A1 w6 `6 d! Z
    : x& q, G9 z  A days/mon..sun/: required,start; & b% @' S* ~5 d9 @5 J
    endsets - h  W) ]$ D9 O5 I2 ~) H  K
    6 W0 ]0 T+ T4 u7 z% F$ m, F data:
    , f, P1 m  L5 U* \8 H!每天所需的最少职员数;
    ' F2 n7 `6 `1 E9 Frequired = 20 16 13 16 19 14 12; ; }: G' I5 C3 z! F( \' p" b/ H) |1 e* L/ }
    enddata   ]- t4 R' b. j  e9 q% Z9 c1 T4 N  B, |- D: J
    !最小化每周所需职员数; . z4 K' V6 u5 \9 I. X% C0 \& H
    * {5 X. A7 E) C! i/ s min=@sum(days: start);
    / x/ }2 ]5 J- X% W8 Z@for(days(J): , D4 ]# m" O2 R7 M
        @sum(3 j& R1 i8 {% a. h6 U+ r1 F
                 days(I) | I #le# 5: & w) v6 B/ `% y; a# V
                 start(@wrap(J+I+2,7))* k! }! l- Q3 @5 h: ^+ A
                 ) >= required(J));
    $ N/ R) e$ h) r7 z9 Z/ H: Nend
    1 R1 ?: ~5 e7 b, G9 G; |; Z
    ) f) K& r8 |: B7 m5 f' p
    回复

    使用道具 举报

    ehi28        

    0

    主题

    4

    听众

    140

    积分

    升级  20%

    该用户从未签到

    回复

    使用道具 举报

    0

    主题

    4

    听众

    65

    积分

    升级  63.16%

    该用户从未签到

    回复

    使用道具 举报

    成城        

    0

    主题

    2

    听众

    120

    积分

    升级  10%

  • TA的每日心情
    郁闷
    2011-9-11 00:41
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    自我介绍
    没有最好只有更好
    回复

    使用道具 举报

    刘振        

    0

    主题

    2

    听众

    11

    积分

    升级  6.32%

  • TA的每日心情
    郁闷
    2011-9-9 20:51
  • 签到天数: 1 天

    [LV.1]初来乍到

    回复

    使用道具 举报

    刘振        

    0

    主题

    2

    听众

    11

    积分

    升级  6.32%

  • TA的每日心情
    郁闷
    2011-9-9 20:51
  • 签到天数: 1 天

    [LV.1]初来乍到

    model:
    : @) z9 P9 e! B# }sets: * ~6 ]2 J5 x+ _+ q9 t
    days/mon..sun/: required,start;
    ; @; T+ S3 p5 [4 A+ kendsets
    ( u! }8 O) r& ~! {data:
    5 G# R1 J5 O) f; @( L5 J!每天所需的最少职员数; / {9 X) R. g' i" G# g- O
    required = 20 16 13 16 19 14 12;
    # y' R) K& b% p' [enddata + }$ M$ }  I+ j# w6 ^1 R
    !最小化每周所需职员数;
    0 N  S) g7 Y, z" ]min=@sum(days: start); . @6 P6 V1 |. d( u
    @for(days(J): * g/ |& F& j6 f
        @sum(days(I) | I #le# 5:
    + L  A( I- ?, T  W7 K      start(@wrap(J+I+2,7))) >= required(J)); 9 g/ s$ C1 i% N* C5 X! u$ w
    end
    7 J6 s7 N' X. B/ C; S$ w0 J$ h1 Q6 j
    ( ~3 U6 F; _) w$ D$ o+ X! `解释下:9 y& Y/ a5 Q- {* u" P  o! y
    @for(days(J):
    5 b: |$ e$ ^$ \' u7 r    @sum(days(I) | I #le# 5: # P$ q/ h9 ~+ H2 q! e
          start(@wrap(J+I+2,7))) >= required(J));& c7 @8 P: q+ m0 r* K. [  I
    5 w: W; N  z; \$ I+ z, y* I
    当day(J)为1时,day(I)=1,2,3,4,5.由于7为循环周期,故@warp(J+I+2)返回的值是4,5,6,7,1的职员和.当day(J)为2时,@warp(J+I+2)返回的值是5,6,7,1,2的职员和,以此类推。
      Q# [% I5 v+ Q! I" L4 F. F+ p- B& J& Y% M& ~1 k
    网上有一种说法是,英美中星期表示的不同,中国将星期一看成第一天,而国外则是将星期日看成第一天。在lingo中sun就表示第一天,用数字0标识。因此@wrap(index,limit)的用法就是index模limit再加1。将上面的程序中的集修改为
    , ~" F) X. V3 d/ E+ t4 X
    . c0 A2 e$ n4 ]
    5 e  p& N" p+ X. ^: ysets:
    1 j( i$ u# ]+ R- p" ?' O5 Kdays/1 2 3 4 5 6 0/: required,start;
    7 }; v; w( c# v: \9 m3 v' D/ H0 dendsets
      N0 q- O7 m0 G. m; H6 ?7 p1 O
    / k; F  a$ H, V! A% H- x
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-7-25 02:23 , Processed in 0.896334 second(s), 103 queries .

    回顶部