数学建模志愿者排班问题志愿者从8点工作到22点,每人工作3小时,只有20点开始工作的人工作2小时,对于志愿者的最小需求可

1个回答

  • 志愿者排班问题解答

    (1)假设从早上8点开始,整点时有xi位志愿者开始工作,如下表:

    时间 8:00 9:00 10:00 11:00 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 20:00 21:00

    开始工作人数 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21

    需要人数 4 4 6 6 8 8 6 6 4 4 6 6 8 8

    从20:00开始,工作时间由3小时调整为2小时,但接待时间到22:00为止,刚好为2小时,故此条件不构成限制.

    为方便计算,假定x6=x7=0.设每个时间段需要的工作人数为zi,则:;

    目标:所需志愿者最少.

    LINGO Model如下:

    min= X8 +X9+ X10+ X11+ X12+ X13+ X14+ X15+ X16+ X17+ X18+ X19+ X20+ X21;

    X8>=4; X8+ X9>=4; X8+ X9+ X10>=6; X9+ X10+ X11>=6; X10+ X11+ X12>=8;

    X11+ X12+ X13>=8; X12+ X13+ X14>=6; X13+ X14+ X15>=6; X14+ X15+ X16>=4; X15+ X16+ X17>=4;

    X16+ X17+ X18>=6; X17+ X18+ X19>=6; X18+ X19+ X20>=8; X19+ X20+ X21>=8;

    运行LINGO软件得到问题的最优解(只列出非零变量):

    最优目标函数值=32.00000

    X8=4.000000 X10=4.000000 X11=2.000000 X12=2.000000 X13=4.000000 X15=2.000000 X16=2.000000 X17=4.000000 X19=2.000000 X20=6.000000

    根据运行结果,最优时间表确定如下,此时最少人数为32人

    时间 8:00 9:00 10:00 11:00 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 20:00 21:00

    开始工作人数 4 0 4 2 2 4 0 2 2 4 0 2 6 0

    需要人数 4 4 6 6 8 8 6 6 4 4 6 6 8 8

    (2)没有志愿者愿意在12:00和18:00开始工作,即增加约束条件:

    X12=0; X18=0.

    LINGO Model如下:

    min= X8 +X9+ X10+ X11+ X12+ X13+ X14+ X15+ X16+ X17+ X18+ X19+ X20+ X21;

    X8>=4; X8+ X9>=4; X8+ X9+ X10>=6; X9+ X10+ X11>=6; X10+ X11+ X12>=8;

    X11+ X12+ X13>=8; X12+ X13+ X14>=6; X13+ X14+ X15>=6; X14+ X15+ X16>=4; X15+ X16+ X17>=4;

    X16+ X17+ X18>=6; X17+ X18+ X19>=6; X18+ X19+ X20>=8; X19+ X20+ X21>=8;

    X12=0; X18=0;

    运行LINGO软件得到问题的最优解(只列出非零变量):

    最优目标函数值=32.00000

    X8=4.000000 X10=6.000000 X11=2.000000 X13=6.000000

    X16=4.000000 X17=2.000000 X19=4.000000 X20=4.000000

    根据运行结果,最优时间表确定如下,此时最少人数为32人

    时间 8:00 9:00 10:00 11:00 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 20:00 21:00

    开始工作人数 4 0 6 2 0 6 0 0 4 2 0 4 4 0

    需要人数 4 4 6 6 8 8 6 6 4 4 6 6 8 8

相关问题