数学建模——整数规划(0-1规划)问题

这篇具有很好参考价值的文章主要介绍了数学建模——整数规划(0-1规划)问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目:现拟将录用的8名公务员安排到所属的7个部门,并且要求每个部门至少安排一名公员。

x招聘领导小组在确定录用名单的过程中,本着公平、公开的原则,同时考虑录用人员的合理分配和使用,有利于发挥个人的特长和能力。招聘领导小组将7个用人单位的基本情况(包括福利待遇、工作条件、劳动强度、晋升机会和学习深造机会等)和四类工作对聘用公务员的具体条件的希望达到的要求都向所有应聘人员公布(见表2)。每一位参加面试人员都可以申报两个自己的工作类别志愿(见表1)。请研究下列问题:

(1)如果不考虑应聘人员的意愿,择优按需录用,试帮助招聘领导小组设计一种录用分配方案;

(2)在考虑应聘人员意愿和用人部门的希望要求的情况下,请你帮助招聘领导小组设计一种分配方案;

表1:招聘公务员笔试成绩,专家面试评分及个人志愿       

应聘

人员

笔试

成绩

申报类别志愿

专家组对应聘者特长的等级评分

知识面

理解能力

应变能力

表达能力

人员1

290

(2)

(3)

A

A

B

B

人员2

288

(3)

(1)

A

B

A

C

人员3

288

(1)

(2)

B

A

D

C

人员4

285

(4)

(3)

A

B

B

B

人员5

283

(3)

(2)

B

A

B

C

人员6

283

(3)

(4)

B

D

A

B

人员7

280

(4)

(1)

A

B

C

B

人员8

280

(2)

(4)

B

A

A

C

人员9

280

(1)

(3)

B

B

A

B

人员10

280

(3)

(1)

D

B

A

C

人员11

278

(4)

(1)

D

C

B

A

人员12

277

(3)

(4)

A

B

C

A

人员13

275

(2)

(1)

B

C

D

A

人员14

275

(1)

(3)

D

B

A

B

人员15

274

(1)

(4)

A

B

C

B

人员16

273

(4)

(1)

B

A

B

C

2: 用人部门的基本情况及对公务员的期望要求

用人

部门

工作

类别

各用人部门的基本情况

各部门对公务员特长的希望达到的要求

福利待遇

工作条件

劳动强度

晋升机会

深造机会

知识面

理解能力

应变能力

表达能力

部门1

(1)

B

A

C

A

部门2

(2)

A

B

B

C

部门3

(2)

部门4

(3)

C

C

A

A

部门5

(3)

部门6

(4)

C

B

B

A

部门7

(4)

数学建模——整数规划(0-1规划)问题

 文章来源地址https://www.toymoban.com/news/detail-416029.html

问题一分析:根据国家公务员招聘标准,对笔试成绩和面试成绩分配1:1的权重,以及对笔试成绩和面试等级进行标准化处理,通过求应聘人员的面试等级与部门所要求面试等级之差,再根据面试满意度对照表(见表3)找到相应的面试满意度,运用MATLAB软件进行数据处理可求得各部门对应聘人员的满意度,最后结合题目的需求,建立“0-1”优化模型,利用软件求解。

模型的建立:

数学建模——整数规划(0-1规划)问题

1)、 将应聘人员的笔试成绩/300,得:

应聘人员

笔试成绩

应聘人员

笔试成绩

人员1

0.9667

人员9

0.9333

人员2

0.9600

人员10

0.9333

人员3

0.9600

人员11

0.9267

人员4

0.9500

人员12

0.9233

人员5

0.9433

人员13

0.9167

人员6

0.9433

人员14

0.9167

人员7

0.9333

人员15

0.9133

人员8

0.9333

人员16

0.9100

2)、将字母等级评分标准化:

字母等级

数值

A

0.9

B

0.8

C

0.7

D

0.6

3)、对每个应聘人员特长的等级评分进行标准化,取面试的等级评分与各应聘人员的面试分数的差值,最后得到七种不同的差值,由于所得差值中包含负数,因此我们根据差值制定相应面试满意度(即面试成绩)对照表如下:

差值

0.3

0.2

0.1

0

-0.1

-0.2

-0.5

满意度

0.95

0.90

0.85

0.80

0.75

0.70

0.65

4)、通过满意度对照表,我们可以求得每个应聘人员的面试满意度如下表:

部门1

部门2

部门3

部门4

部门5

部门6

部门7

人员1

0.8125

0.8250

0.825

0.8250

0.8250

0.8250

0.8250

人员2

0.8000

0.8125

0.8125

0.8125

0.8125

0.8125

0.8125

人员3

0.7625

0.7750

0.7750

0.7750

0.7750

0.7750

0.7750

人员4

0.8000

0.8125

0.8125

0.8125

0.8125

0.8125

0.8125

人员5

0.7875

0.8000

0.8000

0.8000

0.8000

0.8000

0.8000

人员6

0.7750

0.7875

0.7875

0.7875

0.7875

0.7875

0.7875

人员7

0.7875

0.8000

0.8000

0.8000

0.8000

0.8000

0.8000

人员8

0.8000

0.8125

0.8125

0.8125

0.8125

0.8125

0.8125

人员9

0.8000

0.8125

0.8125

0.8125

0.8125

0.8125

0.8125

人员10

0.7625

0.7750

0.7750

0.7750

0.7750

0.7750

0.7750

人员11

0.7625

0.7750

0.7750

0.7750

0.7750

0.7750

0.7750

人员12

0.7625

0.7750

0.7750

0.7750

0.7750

0.7750

0.7750

人员13

0.7625

0.7750

0.7750

0.7750

0.7750

0.7750

0.7750

人员14

0.7750

0.7875

0.7875

0.7875

0.7875

0.7875

0.7875

人员15

0.7875

0.8000

0.8000

0.8000

0.8000

0.8000

0.8000

人员16

0.7875

0.8000

0.8000

0.8000

0.8000

0.8000

0.8000

以上过程用matlab求解,代码如下:

% s1=xlsread('F:\数学建模算法与应用\公务员招聘\公务员分数.xlsx','sheet1','B2:B17');
s2=xlsread('F:\数学建模算法与应用\公务员招聘\公务员分数.xlsx','sheet1','C2:F17');
s3=xlsread('F:\数学建模算法与应用\公务员招聘\公务员分数.xlsx','sheet1','K1:N7');
% disp(s3)
e=zeros(7,4);
%     for i=1:16
       for k=1:7       
            for j=1:4
                e(k,j)=s2(16,j)-s3(k,j);
                if (e(k,j)==3)
                    e(k,j)=0.95;
                    continue;
                end
                if (e(k,j)==2)
                    e(k,j)=0.9;
                    continue;
                end
                if (e(k,j)==1)
                    e(k,j)=0.85;
                    continue;
                end
                if (e(k,j)==0)
                    e(k,j)=0.8;
                    continue;
                end
                if (e(k,j)==-1)
                    e(k,j)=0.75;
                    continue;
                end
                if (e(k,j)==-2)
                    e(k,j)=0.70;
                    continue;
                end
                if (e(k,j)==-3)
                    e(k,j)=0.65;
                    continue;
                end
            end
       end
%     end

disp(e)
sum_row=sum(e,2);
disp((sum_row/4)');
xlswrite('F:\数学建模算法与应用\公务员招聘\公务员分数.xlsx',(sum_row/4)','sheet2','F17:L17');
% s1=s1/300;


% xlswrite('F:\数学建模算法与应用\公务员招聘\公务员分数.xlsx',s1,'sheet2','b2');
% xlswrite('F:\数学建模算法与应用\公务员招聘\公务员分数.xlsx',s3,'sheet2','c2');

s2=xlsread('F:\数学建模算法与应用\公务员招聘\公务员分数.xlsx','sheet2','B2:B17');
s3=xlsread('F:\数学建模算法与应用\公务员招聘\公务员分数.xlsx','sheet2','F2:L17');
e=zeros(16,7);
for i=1:16
    for j=1:7
        e(i,j)=s2(i,1)*0.5+s3(i,j)*0.5;
    end
end
disp(e);
xlswrite('F:\数学建模算法与应用\公务员招聘\公务员分数.xlsx',e,'sheet2','f22:l37');

接下来引入0-1变量:

根据约束条件分析,建立如下的数学模型:

数学建模——整数规划(0-1规划)问题

 求解该模型则运用Lingo软件,代码如下:

model:
sets:
aa/1..7/;
bb/1..16/;
link(bb,aa):a,f;
endsets
data:
a=@ole('F:\数学建模算法与应用\公务员招聘\公务员分数.xlsx','data');此处的‘data’在Excel设置,确定数据位置
!将f写入Excel
@ole('F:\数学建模算法与应用\公务员招聘\公务员分数.xlsx','one')=f;此处的‘one’在Excel设置,确定写入位置
enddata
max=@sum(bb(i):@sum(aa(j):f(i,j)*a(i,j)));
@for(bb(i):@sum(aa(j):f(i,j))>=0);
@for(bb(i):@sum(aa(j):f(i,j))<=1);
@for(aa(j):@sum(bb(i):f(i,j))<=2);
@for(aa(j):@sum(bb(i):f(i,j))>=1);
@for(bb(i):@for(aa(j):@bin(f(i,j))));
@sum(bb(i):@sum(aa(j):f(i,j)))=8;
end

写入 Excel表如下:

数学建模——整数规划(0-1规划)问题

 因此得到最终答案为:

用人部门

分配人员

1

人员5

2

人员1、人员12

3

人员4

4

人员2

5

人员3

6

人员9

7

人员8

问题二分析:

1)、我们的目标是需要使各部门对应聘人员的综合满意度达到最大值的同时,也需要让应聘人员的意愿(即满意度)达到最大值,因此我们对两个满意度分别分配1:1的权重,建立目标模型如下:

数学建模——整数规划(0-1规划)问题

2)、 对应聘人员对第一、第二志愿以及其它工作类别的满意度进行标准化处理,结果如下表所示:

第一志愿

0.9

第二志愿

0.7

其它工作类别

0.4

3)、模型的建立:

数学建模——整数规划(0-1规划)问题

 求解该模型则运用Lingo软件,代码如下:

model:
sets:
aa/1..7/;
bb/1..16/;
link(bb,aa):a,f,c;
endsets
data:
a=@ole('F:\数学建模算法与应用\公务员招聘\公务员分数.xlsx','data');
c=@ole('F:\数学建模算法与应用\公务员招聘\公务员分数.xlsx','point');
@ole('F:\数学建模算法与应用\公务员招聘\公务员分数.xlsx','zero')=f;
enddata
max=(@sum(bb(i):@sum(aa(j):f(i,j)*a(i,j)))+@sum(bb(i):@sum(aa(j):f(i,j)*c(i,j))));
@for(bb(i):@sum(aa(j):f(i,j))>=0);
@for(bb(i):@sum(aa(j):f(i,j))<=1);
@for(aa(j):@sum(bb(i):f(i,j))<=2);
@for(aa(j):@sum(bb(i):f(i,j))>=1);
@for(bb(i):@for(aa(j):@bin(f(i,j))));
@sum(bb(i):@sum(aa(j):f(i,j)))=8;
end

写入 Excel表如下:

数学建模——整数规划(0-1规划)问题

  因此得到最终答案为:

用人部门

分配人员

1

人员9

2

人员8

3

人员1

4

人员5

5

人员2、人员12

6

人员7

7

人员4

PS:将Lingo结果写入Excel中,需对Excel设置,设置如下:

选定数据写入的合适区域,点击“公式”-“名称管理器”-“新建名称”,此时就可自定义名称啦

数学建模——整数规划(0-1规划)问题 

数学建模——整数规划(0-1规划)问题

 

到了这里,关于数学建模——整数规划(0-1规划)问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 二、数学建模之整数规划篇

    1.定义 2.例题 3.使用软件及解题 1.整数规划 (Integer Programming,简称IP):是一种数学优化问题,它是线性规划(Linear Programming,简称LP)的一个扩展形式。在线性规划中,优化目标和约束条件都是线性的,而在整数规划中,除了这些线性约束外,变量还被限制为整数值。在整

    2024年02月11日
    浏览(44)
  • 数学建模整理-线性规划、整数规划、非线性规划

    在人们的生产实践中,经常会遇到如何利用现有资源来安排生产,以取得最大经济 效益的问题。若目标函数及约束条件均为线性函数,则称为线性规划(Linear Programming 简记 LP)。 可行解 :满足约束条件的解。 可行预 :所有可行解构成的集合称为问题的可行域,记为R。 图解法

    2024年02月06日
    浏览(37)
  • 数学建模(四)整数规划—匈牙利算法

    目录 一、0-1型整数规划问题 1.1 案例 1.2 指派问题的标准形式 2.2 非标准形式的指派问题 二、指派问题的匈牙利解法  2.1 匈牙利解法的一般步骤 2.2 匈牙利解法的实例 2.3 代码实现 投资问题: 有600万元投资5个项目,收益如表,求利润最大的方案? 设置决策变量: 模型: 指派

    2024年02月11日
    浏览(40)
  • 数学建模--非整数规划求解的Python实现

    目录 1.算法流程简介 2.算法核心代码 3.算法效果展示

    2024年02月10日
    浏览(40)
  • 数学建模十大算法03—线性规划、整数规划、非线性规划、多目标规划

    一、线性规划(Linear Programming,LP) 1.1 引例 在人们的生产实践中,经常会遇到 如何利用现有资源来安排生产,以取得最大经济效益的问题。 此类问题构成了运筹学的一个重要分支一数学规划,而 线性规划(Linear Programming, LP) 则是数学规划的一个重要分支。 简而言之,线

    2024年02月13日
    浏览(42)
  • 【数学建模】混合整数规划MIP(Python+Gurobi代码实现)

    目录 1 概述 2 入门算例 2.1 算例 2.2 求解 ——Pulp库和cvxpy 3 进阶算例 3.1 算例 3.2 Python+Gurobi代码实现 3.3 运行结果 混合整数规划 (MIP) 是 NP-hard 问题中的一类,它的目标是在线性约束下将线性目标最小化,同时使部分或全部变量均为整数值,在容量规划、资源分配与装箱等等现

    2024年02月07日
    浏览(58)
  • 数学建模基础算法Chapter2.1 -- 整数规划(ILP): 分支定界+割平面

    By 进栈需检票 当题目要求的最优解是整数,例如物件的数量,参与人员的数量等时,就不能继续使用之前的线性规划了(当出现小数的情况),这个时候需考虑整数规划这样的一种建模形式 但是目前所流行的求整数规划的方法,只适用于整数线性规划,不能解决一切的整数

    2024年02月12日
    浏览(54)
  • Matlab数学建模算法详解之混合整数线性规划 (MILP) 算法(附完整实现代码)

    🔗 运行环境:Matlab 🚩 撰写作者:左手の明天 🥇 精选专栏:《python》 🔥  推荐专栏:《算法研究》 ####  防伪水印—— 左手の明天 #### 💗 大家好🤗🤗🤗,我是 左手の明天 !好久不见💗 💗今天分享matlab数学建模算法—— 混合整数线性规划 (MILP) 算法 💗

    2024年02月04日
    浏览(48)
  • 数学建模 优化问题——数学规划

    优化问题 :在一系列客观或主观限制条件下,寻求使所关注的某个或多个指标达到最大(或最小)的决策 结构设计、资源分配、生产计划、运输方案中经常可见 通常的解决手段: 经验积累、主观判断 做试验、比优劣 建立数学模型,求解最优策略 解决优化问题的数学方法: 数

    2024年02月06日
    浏览(50)
  • 数学建模——规划问题

     运筹学对于线性规划问题直接使用图解法,单纯形法利用求解。在python中可以直接使用scipy.optimize模块的linprog函数求解。   linprog 函数的调用方式: 常用参数解释 : (1)  c:价格向量 (2)  A_ub:不等式约束技术系数矩阵 (3)  b_ub:不等式约束资源向量 (4)  A_eq:等式约束技

    2024年02月13日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包