QQ登录

只需要一步,快速开始

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

关于lingo的一个问题

[复制链接]
字体大小: 正常 放大
ljwabc115 实名认证       

21

主题

4

听众

1977

积分

师长

升级  97.7%

  • TA的每日心情
    郁闷
    2011-12-27 13:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    新人进步奖

    跳转到指定楼层
    1#
    发表于 2009-7-17 09:05 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    本帖最后由 ljwabc115 于 2009-7-17 09:09 编辑

    有4名同学到一家公司参加三个阶段的面试:公司要求每个同学都必须首先找公司秘书初试,然后到部门主管处复试,最后到经理处参加面试,并且不允许插队(即在任何一个阶段4名同学的顺序是一样的)。由于4名同学的专业背景不同,所以每人在三个阶段的面试时间也不同,如下表所示(单位:分钟):

    秘书初试

    主管复试

    经理面试

    同学甲

    13

    15

    20

    同学乙

    10

    20

    18

    同学丙

    20

    16

    10

    同学丁

    8

    10

    15








    这4名同学约定他们全部面试完以后一起离开公司。假定现在时间是早晨8:00,问他们最早何时能离开公司?(建立规划模型求解)

    本问题是一个排列排序问题。对于阶段数不小于3的问题没有有效算法,也就是说对于学生数稍多一点儿(比如20)的情况是无法精确求解的。为此人们找到了很多近似算法。这里我们建立的规划模型可以实现该问题的精确求解,但你会看到它的变量和约束是学生数的平方。因此,当学生数稍多一点儿规划模型的规模经很大,求解会花费很长时间。

    三阶段面试模型.doc

    42 KB, 下载次数: 11, 下载积分: 体力 -2 点

    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持1 反对反对0 微信微信
    ljwabc115 实名认证       

    21

    主题

    4

    听众

    1977

    积分

    师长

    升级  97.7%

  • TA的每日心情
    郁闷
    2011-12-27 13:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    新人进步奖

    !三阶段面试模型;
    model:
    sets:
      students; !学生集三阶段面试模型;
      phases;   !阶段集;
      sp(students,phases):t,x;
      ss(students,students) | &1 #LT# &2:y;
    endsets
    data:
      students = s1..s4;
      phases = p1..p3;
      t=
         13  15  20
         10  20  18
         20  16  10
         8   10  15;
    enddata
      ns=@size(students);  !学生数;
      np=@size(phases);  !阶段数;

      !单个学生面试时间先后次序的约束;
      @for(sp(I,J) | J #LT# np:
        x(I,J)+t(I,J)<=x(I,J+1)
      );
      !学生间的面试先后次序保持不变的约束;
      @for(ss(I,K):
        @for(phases(J):
          x(I,J)+t(I,J)-x(K,J)<=200*y(I,K);
          x(K,J)+t(K,J)-x(I,J)<=200*(1-y(I,K));
        )
      );
      !目标函数;
      min=TMAX;
      @for(students(I):
        x(I,3)+t(I,3)<=TMAX
      );
      !把Y定义0-1变量;
      @for(ss: @bin(y));
    End
    回复

    使用道具 举报

    ljwabc115 实名认证       

    21

    主题

    4

    听众

    1977

    积分

    师长

    升级  97.7%

  • TA的每日心情
    郁闷
    2011-12-27 13:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    新人进步奖

    !学生间的面试先后次序保持不变的约束;
      @for(ss(I,K):
        @for(phases(J):
          x(I,J)+t(I,J)-x(K,J)<=200*y(I,K);
          x(K,J)+t(K,J)-x(I,J)<=200*(1-y(I,K));
        )
      );
    这个约束条件怎么去理解呢?为什么有一个200??
    回复

    使用道具 举报

    0

    主题

    0

    听众

    63

    积分

    升级  61.05%

    该用户从未签到

    自我介绍
    亦余心之所善兮,虽九死其犹未悔
    回复 3# ljwabc115


        200其实不必深究,只要这个系数大于等于63(就是Max(13+10+20+8,15+20+16+10,20+18+16+15))就可以满足约束了
    回复

    使用道具 举报

    xiongluin 实名认证       

    0

    主题

    0

    听众

    13

    积分

    升级  8.42%

    该用户从未签到

    自我介绍
    我性格开朗,爱交朋友,喜欢学习!
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2025-8-16 07:04 , Processed in 0.612967 second(s), 81 queries .

    回顶部