【数学建模_1:家政服务(1)】(lingo求解)

本文通过数学建模解决家政服务公司如何在满足市场需求的同时,制定最优招聘计划以最小化工资支出。利用LINGO软件求解,分析了不同情况下招聘策略的变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

**

数学建模_1:家政服务(1)

**
最近在备战数学建模国赛,然后也有一些题目练手,为了督促自己学习,就在博客上不定时更新一下自己练习的题目,用的软件是Python以及Lingo,lingo的官方教程我已经上传到了资源里,只要3个积分,大家自取吧。
问题背景及要求:
1.1 问题背景
某一家政服务公司(甲)专门向雇主提供护理,保姆等M项服务。根据估计,某城市下一年中第i项(i=1,2…,M)家政服务在春、夏、秋、冬四个季度的需求分别是:di1人日,di2人日,di3人日,di4人日,且假设公司的每位员工每季度工作65天。若假设提供第i项(i=1,2…,M)家政服务的员工是直接从该公司而不是从雇主那里得到Ci元/月的报酬(说明:雇主先支付报酬给公司,由公司扣除1%比例的中介费后再支付给员工,即公司主要靠收取中介费盈利,但不是全部。员工的工资Ci与中介费已经无关了。)。春季开始时,甲公司有i种(i=1,2…,M)员工Si名,且在每个季度结束后,第i种员工将有一定比例(设为ri (0,1))的人数将会自动离职。试考虑如下三种情况的最优招聘计划。即考虑在满足市场需求的条件下使得公司的利润最大(即公司的工资支出最少,或公司的待业员工人数最少)。
1.2 问题要求
(1)如果甲公司不允许主动解除员工,请你为公司制定下一年每种员工的最优招聘计划(每年只招聘一次);分析哪些季度需求的增加不会影响招聘计划?可以增加多少?
(2)如果甲公司不允许主动解除员工,且每个季度进行一次招聘,请你为公司制定最优的招聘计划。
(3)如果甲公司针对第i种(i=1,2…,M)员工在每个季度结束后允许解雇一定比例(设为ki)的员工,清为公司制定下一年度的最优招聘计划?(假设k1=k2=…kM=0.02)

因为篇幅的问题,其他的我就不写了,我只把问题的分析以及建模过程稍微写一下,我会将完整的题目以及我和队友建好的模型上传到资源里。
第一问:
问题一的分析
题目要求,在满足市场需求以及公司要求的前提下,为公司制定最优的招聘计划,使得公司的工资支出最少。因此我们建立以公司所有项目年工资支出最少作为目标函数的数学优化模型。如果将招聘员工的数量约束为整数,则可能使新招聘的员工数量远远大于实际需要的数量,很难找合理的到整数解,因此我们将新招聘员工的数量约束为实数并对所得结果向上取整。
根据题意可知,第i项项目的每个员工每季度所得工资为3Ci元。为达到公司与雇主的“互利双赢”原则,则要使员工的数量最少并且每位员工的季度工作强度最高(即每个项目的每位员工每季度工作65天)。我们设第i项服务项目下一年春季初招聘员工xi名,每季度结束后第i种员工有ri比例自动离职,建立数学优化模型并利用LINGO软件进行求解求得最优的年招聘计划。而后我们进行灵敏度分析,求解出哪些季度需求的增加不会影响招聘计划以及允许增加的数量范围。

4.1.1模型的准备
假设第i项(i=1,2…,M)服务项目春夏秋冬四个季度的需求分别为di1人,di2人,di3人,di4人;设第i项服务项目下一年最优招聘人数人数为xi人/年;第一年春第i项项目有员工Si名;第i项服务项目员工工资为Ci元/月/人,则每季度员工工资为3Ci元/季度/人。
4.1.2 模型的建立
根据4.1.1的模型假设及题目中给定的表1、表2、表3中的数据,在公司不允许主动解雇员工的前提下,我们建立以公司M项项目总工资支出(Z)最少为目标函数,以员工工作日总量大于市场需求作为约束条件的数学优化模型,模型如下:

在这里插入图片描述接下来我用lingo进行编程解答:

model:
    sets:
      project/1..18/: x ,c,s,r;
      season/1,2,3,4/;
      link(project,season):d ;
      m/1,2,3/ ;
    endsets
    
    data:
      d = 6300 7900 5600 9400
          6100 7900 6100 9200
          6600 7800 5900 9000
          6400 7700 6300 9500
          6600 7500 5400 9500
          6200 7500 5700 9300
          6100 8100 6100 9400
          6000 7900 5900 9200
          6500 7600 5500 9100
          6000 7400 5600 9200
          6500 7600 5500 9100
          6500 8200 6200 9100
          6000 8400 6000 9300
          6400 7600 6200 9700
          6600 7600 5400 9500
          6400 7900 5900 9300
          6200 7500 5500 9500
          6100 8100 6100 9400 ;
      c = 2500 2800 2400 3000 3000 2900 2400 2500 2200 2800 2900 2900 2600 2600 2100 2900 2500 2200 ;
      s = 120  100  110  110  130  130  140  100  130  130  110  100  130  120  90   130  120  140  ;
      r = 0.15 0.11 0.15 0.13 0.10 0.13 0.09 0.10 0.10 0.13 0.10 0.11 0.09 0.13 0.10 0.12 0.08 0.15 ;
    enddata
    
    !目标函数 ;
    min = @sum(m(j):@sum(project(i):3*c(i)*(s(i)+x(i))*(1-r(i))^j));
    !约束条件;
    @FOR(project(i):
         65*(s(i)+x(i)) >= d(i,1));
    @for(project(i):
         65*(s(i)+x(i))*(1-r(i))>=d(i,2));
    @for(project(i):
         65*(s(i)+x(i))*@pow((1-r(i)),2)>=d(i,3));
    @for(project(i):
         65*(s(i)+x(i))*@pow((1-r(i)),3)>=d(i,4));
    @for(project(i):
         x(i)>=0);
end

代码中涉及的lingo语法知识我就不解释了,大家可以自行下载我的资源进行学习。里面的数据集是已知的,具体的题目我也会后续上传。
运行后结果为:

 Global optimal solution found.
  Objective value:                             0.6919287E+08
  Infeasibilities:                              0.000000
  Total solver iterations:                             0


                       Variable           Value        Reduced Cost
                          X( 1)        115.4820            0.000000
                          X( 2)        100.7726            0.000000
                          X( 3)        115.4615            0.000000
                          X( 4)        111.9486            0.000000
                          X( 5)        70.48539            0.000000
                          X( 6)        87.27604            0.000000
                          X( 7)        51.90678            0.000000
                          X( 8)        94.15427            0.000000
                          X( 9)        62.04390            0.000000
                         X( 10)        84.93974            0.000000
                         X( 11)        82.04390            0.000000
                         X( 12)        98.59029            0.000000
                         X( 13)        59.86522            0.000000
                         X( 14)        106.6212            0.000000
                         X( 15)        110.4854            0.000000
                         X( 16)        79.95275            0.000000
                         X( 17)        67.69243            0.000000
                         X( 18)        95.48200            0.000000
                          C( 1)        2500.000            0.000000
                          C( 2)        2800.000            0.000000
                          C( 3)        2400.000            0.000000
                          C( 4)        3000.000            0.000000
                          C( 5)        3000.000            0.000000
                          C( 6)        2900.000            0.000000
                          C( 7)        2400.000            0.000000
                          C( 8)        2500.000            0.000000
                          C( 9)        2200.000            0.000000
                         C( 10)        2800.000            0.000000
                         C( 11)        2900.000            0.000000
                         C( 12)        2900.000            0.000000
                         C( 13)        2600.000            0.000000
                         C( 14)        2600.000            0.000000
                         C( 15)        2100.000            0.000000
                         C( 16)        2900.000            0.000000
                         C( 17)        2500.000            0.000000
                         C( 18)        2200.000            0.000000
                          S( 1)        120.0000            0.000000
                          S( 2)        100.0000            0.000000
                          S( 3)        110.0000            0.000000
                          S( 4)        110.0000            0.000000
                          S( 5)        130.0000            0.000000
                          S( 6)        130.0000            0.000000
                          S( 7)        140.0000            0.000000
                          S( 8)        100.0000            0.000000
                          S( 9)        130.0000            0.000000
                         S( 10)        130.0000            0.000000
                         S( 11)        110.0000            0.000000
                         S( 12)        100.0000            0.000000
                         S( 13)        130.0000            0.000000
                         S( 14)        120.0000            0.000000
                         S( 15)        90.00000            0.000000
                         S( 16)        130.0000            0.000000
                         S( 17)        120.0000            0.000000
                         S( 18)        140.0000            0.000000
                          R( 1)       0.1500000            0.000000
                          R( 2)       0.1100000            0.000000
                          R( 3)       0.1500000            0.000000
                          R( 4)       0.1300000            0.000000
                          R( 5)       0.1000000            0.000000
                          R( 6)       0.1300000            0.000000
                          R( 7)       0.9000000E-01        0.000000
                          R( 8)       0.1000000            0.000000
                          R( 9)       0.1000000            0.000000
                         R( 10)       0.1300000            0.000000
                         R( 11)       0.1000000            0.000000
                         R( 12)       0.1100000            0.000000
                         R( 13)       0.9000000E-01        0.000000
                         R( 14)       0.1300000            0.000000
                         R( 15)       0.1000000            0.000000
                         R( 16)       0.1200000            0.000000
                         R( 17)       0.8000000E-01        0.000000
                         R( 18)       0.1500000            0.000000
                       D( 1, 1)        6300.000            0.000000
                       D( 1, 2)        7900.000            0.000000
                       D( 1, 3)        5600.000            0.000000
                       D( 1, 4)        9400.000            0.000000
                       D( 2, 1)        6100.000            0.000000
                       D( 2, 2)        7900.000            0.000000
                       D( 2, 3)        6100.000            0.000000
                       D( 2, 4)        9200.000            0.000000
                       D( 3, 1)        6600.000            0.000000
                       D( 3, 2)        7800.000            0.000000
                       D( 3, 3)        5900.000            0.000000
                       D( 3, 4)        9000.000            0.000000
                       D( 4, 1)        6400.000            0.000000
                       D( 4, 2)        7700.000            0.000000
                       D( 4, 3)        6300.000            0.000000
                       D( 4, 4)        9500.000            0.000000
                       D( 5, 1)        6600.000            0.000000
                       D( 5, 2)        7500.000            0.000000
                       D( 5, 3)        5400.000            0.000000
                       D( 5, 4)        9500.000            0.000000
                       D( 6, 1)        6200.000            0.000000
                       D( 6, 2)        7500.000            0.000000
                       D( 6, 3)        5700.000            0.000000
                       D( 6, 4)        9300.000            0.000000
                       D( 7, 1)        6100.000            0.000000
                       D( 7, 2)        8100.000            0.000000
                       D( 7, 3)        6100.000            0.000000
                       D( 7, 4)        9400.000            0.000000
                       D( 8, 1)        6000.000            0.000000
                       D( 8, 2)        7900.000            0.000000
                       D( 8, 3)        5900.000            0.000000
                       D( 8, 4)        9200.000            0.000000
                       D( 9, 1)        6500.000            0.000000
                       D( 9, 2)        7600.000            0.000000
                       D( 9, 3)        5500.000            0.000000
                       D( 9, 4)        9100.000            0.000000
                      D( 10, 1)        6000.000            0.000000
                      D( 10, 2)        7400.000            0.000000
                      D( 10, 3)        5600.000            0.000000
                      D( 10, 4)        9200.000            0.000000
                      D( 11, 1)        6500.000            0.000000
                      D( 11, 2)        7600.000            0.000000
                      D( 11, 3)        5500.000            0.000000
                      D( 11, 4)        9100.000            0.000000
                      D( 12, 1)        6500.000            0.000000
                      D( 12, 2)        8200.000            0.000000
                      D( 12, 3)        6200.000            0.000000
                      D( 12, 4)        9100.000            0.000000
                      D( 13, 1)        6000.000            0.000000
                      D( 13, 2)        8400.000            0.000000
                      D( 13, 3)        6000.000            0.000000
                      D( 13, 4)        9300.000            0.000000
                      D( 14, 1)        6400.000            0.000000
                      D( 14, 2)        7600.000            0.000000
                      D( 14, 3)        6200.000            0.000000
                      D( 14, 4)        9700.000            0.000000
                      D( 15, 1)        6600.000            0.000000
                      D( 15, 2)        7600.000            0.000000
                      D( 15, 3)        5400.000            0.000000
                      D( 15, 4)        9500.000            0.000000
                      D( 16, 1)        6400.000            0.000000
                      D( 16, 2)        7900.000            0.000000
                      D( 16, 3)        5900.000            0.000000
                      D( 16, 4)        9300.000            0.000000
                      D( 17, 1)        6200.000            0.000000
                      D( 17, 2)        7500.000            0.000000
                      D( 17, 3)        5500.000            0.000000
                      D( 17, 4)        9500.000            0.000000
                      D( 18, 1)        6100.000            0.000000
                      D( 18, 2)        8100.000            0.000000
                      D( 18, 3)        6100.000            0.000000
                      D( 18, 4)        9400.000            0.000000

                            Row    Slack or Surplus      Dual Price
                              1       0.6919287E+08       -1.000000
                              2        9006.330            0.000000
                              3        6950.219            0.000000
                              4        8054.997            0.000000
                              5        8026.662            0.000000
                              6        6431.550            0.000000
                              7        7922.942            0.000000
                              8        6373.941            0.000000
                              9        6620.027            0.000000
                             10        5982.853            0.000000
                             11        7971.083            0.000000
                             12        5982.853            0.000000
                             13        6408.369            0.000000
                             14        6341.239            0.000000
                             15        8330.381            0.000000
                             16        6431.550            0.000000
                             17        7246.929            0.000000
                             18        6000.008            0.000000
                             19        9206.330            0.000000
                             20        5110.381            0.000000
                             21        3714.695            0.000000
                             22        4656.747            0.000000
                             23        4851.196            0.000000
                             24        4228.395            0.000000
                             25        4786.960            0.000000
                             26        3251.286            0.000000
                             27        3458.025            0.000000
                             28        3634.568            0.000000
                             29        4754.842            0.000000
                             30        3634.568            0.000000
                             31        3288.448            0.000000
                             32        2830.528            0.000000
                             33        5215.431            0.000000
                             34        4128.395            0.000000
                             35        4109.298            0.000000
                             36        3724.008            0.000000
                             37        4910.381            0.000000
                             38        5458.824            0.000000
                             39        4237.079            0.000000
                             40        4688.235            0.000000
                             41        4619.540            0.000000
                             42        5155.556            0.000000
                             43        4989.655            0.000000
                             44        4229.670            0.000000
                             45        4322.222            0.000000
                             46        4611.111            0.000000
                             47        4974.713            0.000000
                             48        4611.111            0.000000
                             49        4024.719            0.000000
                             50        4219.780            0.000000
                             51        4949.425            0.000000
                             52        5155.556            0.000000
                             53        4668.182            0.000000
                             54        4826.087            0.000000
                             55        4958.824            0.000000
                             56        0.000000           -410.8331
                             57        0.000000           -437.5834
                             58        0.000000           -394.3998
                             59        0.000000           -480.5451
                             60        0.000000           -463.2479
                             61        0.000000           -464.5270
                             62        0.000000           -366.2568
                             63        0.000000           -386.0399
                             64        0.000000           -339.7151
                             65        0.000000           -448.5088
                             66        0.000000           -447.8063
                             67        0.000000           -453.2114
                             68        0.000000           -396.7782
                             69        0.000000           -416.4725
                             70        0.000000           -324.2735
                             71        0.000000           -458.7826
                             72        0.000000           -377.1267
                             73        0.000000           -361.5331
                             74        115.4820            0.000000
                             75        100.7726            0.000000
                             76        115.4615            0.000000
                             77        111.9486            0.000000
                             78        70.48539            0.000000
                             79        87.27604            0.000000
                             80        51.90678            0.000000
                             81        94.15427            0.000000
                             82        62.04390            0.000000
                             83        84.93974            0.000000
                             84        82.04390            0.000000
                             85        98.59029            0.000000
                             86        59.86522            0.000000
                             87        106.6212            0.000000
                             88        110.4854            0.000000
                             89        79.95275            0.000000
                             90        67.69243            0.000000
                             91        95.48200            0.000000


可以看到结果显的是全局最优解,并且最优解为:0.6919287E+08元
x(i) 为第i项服务项目下一年最优招聘人数人数为xi人/年,这样就知道18个项目下一年每年要招聘的人数了,灵敏度分析请看后续上传的资源。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值