基于0-1整数规划的“玫瑰有约”模型--进一步利用matlab深入研究
来源:互联网 发布:java中decode什么意思 编辑:程序博客网 时间:2024/05/07 18:12
摘要:由于“剩男剩女”们的需要,电视相亲节目风行一时。针对这一现象,本文模拟“玫瑰有约”婚恋节目,提供10男10女单身青年一个相亲的平台,在男女双方都相互充分了解了对方的基本条件和要求的基础上,男女双方只能作出一个选择,也就是每名男士只能选一名女士,同理每名女士只能选一名男士,而只有当男女双方相互选中时,才认为配对成功。因而,我们根据男女青年的基本条件和择偶要求条件,量化成相应的条件和要求矩阵,然后分别求出男士对女士单向满意度和女士对男士单向满意度。由于配对是双向的选择,故而相互双向的满意最大才是最好的配对组合,进而我们把单向满意度按权重分别计算得到男女双方相互满意度矩阵。因此,问题转化为寻找合适的配对组合,使得双方满意度矩阵中的满意度之和最大。具体求解将采用0-1整数规划方法,把已有的10对男女双向满意度矩阵中的最大满意度之和作为目标函数,相应的约束条件是男女的匹配是一一对应和仅存在配对与不配对两种情况分别对应1和0的取值的可能。结合matlab编写程序,从而最终给10对男女青年配对的最优化组合方案。更进一步,我们还利用程序计算在不求线性规划的最优解的情况下,随机产生0-1矩阵代入求得该0-1矩阵对应的配对方案下的最大满意度,与前面线性规划的最优解方案的满意度对比,随机产生的配对方案都小于或等于最优解对应的最大满意度,故而可以方便合理检验,验证模型结果的合理性。
关键词:玫瑰有约 满意度 0-1整数规划 Matlab
1、背景介绍
为了“脱光”、告别单身,不少都市大龄男女通过参加婚恋活动,增进彼此的认识,如今最热门的电视相亲节目也就是聚焦在这一人群身上,赶场的未婚男女络绎不绝,而其中剩客又占了很大比例,这是一场剩宴,剩况空前,空前绝后!谁和谁在此遇见,谁和谁从此向剩字说再见,谁又还一直在骑驴找马守株待兔不间断地做着多项选择题。然而每个男女青年的择偶条件也不尽相同,即对每项基本条件的要求是不相同的。于是各类于婚恋活动便根据他(她)们的年龄、基本条件和要求条件进行牵线搭桥,以尽可能提高配对成功率。针对这一现象,本文模拟“玫瑰有约”婚恋活动,为征婚男女青年巧搭鹊桥,促进他们喜结良缘。
2、问题引入
“玫瑰有约”是一个电视相亲节目,参与者为10对青年男女,每个人的基本条件都不相同,如外貌、性格、气质、事业、财富等。每项条件通常可以分为五个等级A、B、C、D、E,如外貌、性格、气质、事业可分为很好、好、较好、一般、差;财富可以分为很多、多、较多、一般、少。每个人的择偶条件也不尽相同,即对每项基本条件的要求是不同的。下面给出20组报名参加节目的青年男女的基本条件和要求条件,节目组从中随机抽取10对男女参加节目,并根据他(她)们的年龄、基本条件和要求条件进行牵线搭桥。本文建立数学模型,为节目组解决下面问题:
男女双方都相互了解了对方的条件和要求,让每一个人出一次选择,只有当男女双方相互选中对方时才认为配对成功,每一个人只有一次选择机会。怎样告诉10对男女青年都应该如何做出选择,使得配对成功率最高?
女
青
年
基 本 条 件
要求条件及其权重
外貌
性格
气质
事业
财富
年龄
外貌
性格
气质
事业
财富
1
A
C
C
D
A
28
B
A
B
A
D
10%
30%
10%
30%
20%
2
B
A
B
A
D
25
C
B
B
A
B
15%
25%
20%
20%
20%
3
C
B
A
E
A
26
B
A
C
B
C
15%
15%
15%
20%
35%
4
A
B
B
C
D
27
A
A
B
B
A
20%
20%
20%
20%
20%
5
B
D
C
E
C
25
A
B
C
B
B
25%
30%
10%
25%
10%
6
A
C
B
C
A
26
B
A
B
B
C
10%
20%
20%
30%
20%
7
D
C
B
A
B
30
C
B
A
A
C
20%
25%
10%
20%
25%
8
A
B
A
E
C
31
B
A
B
A
B
10%
20%
10%
30%
30%
9
A
A
A
C
E
26
C
B
B
B
A
20%
10%
20%
20%
30%
10
B
C
D
B
B
27
B
B
A
A
C
20%
20%
30%
20%
10%
11
A
B
B
C
B
28
C
B
A
B
C
20%
30%
10%
20%
20%
12
B
E
C
E
A
26
A
A
B
B
E
25%
25%
10%
20%
20%
13
E
A
C
B
B
26
C
A
B
C
C
20%
20%
15%
25%
20%
14
B
B
C
A
A
25
B
A
A
B
D
15%
25%
20%
20%
20%
15
C
B
A
A
C
29
B
A
B
B
B
10%
25%
10%
30%
25%
16
B
A
C
D
C
28
B
A
B
B
A
15%
15%
15%
20%
35%
17
A
E
E
D
A
25
A
A
D
A
C
25%
25%
15%
20%
15%
18
A
A
B
B
C
28
C
A
B
A
C
30%
25%
20%
15%
10%
19
B
A
C
C
E
25
B
B
B
A
A
25%
25%
25%
15%
10%
20
D
B
A
C
D
29
B
B
A
B
B
10%
30%
10%
25%
25%
男
青
年
基本条件
要求条件及其权重
外
貌
性格
气质
事业
财富
年
龄
外
貌
性格
气质
事业
财富
1
A
C
B
C
A
29
A
A
C
B
D
25%
20%
15%
25%
15%
2
C
A
B
A
D
29
B
A
B
B
C
20%
30%
10%
25%
15%
3
B
B
A
B
B
28
B
A
A
B
C
25%
20%
25%
15%
15%
4
C
A
B
B
D
28
C
A
B
C
D
15%
20%
35%
15%
15%
5
D
B
C
A
A
30
C
B
B
B
E
20%
20%
15%
20%
25%
6
C
B
C
B
B
28
B
B
C
D
C
25%
25%
15%
25%
10%
7
A
B
B
D
C
30
C
B
B
D
C
25%
20%
25%
15%
15%
8
B
A
B
C
D
30
A
B
C
C
D
25%
20%
15%
25%
15%
9
A
D
C
E
B
28
A
A
A
C
C
25%
25%
25%
15%
10%
10
D
B
A
A
A
28
A
B
A
D
E
25%
20%
15%
25%
15%
11
B
A
C
D
A
32
A
B
C
D
B
25%
20%
25%
15%
15%
12
A
B
C
A
B
29
B
A
B
B
C
20%
30%
10%
25%
15%
13
B
A
D
E
C
28
A
C
B
B
C
25%
20%
15%
25%
15%
14
A
A
B
B
D
30
A
C
C
D
C
25%
25%
15%
25%
10%
15
A
B
B
C
C
28
A
A
B
C
D
25%
20%
15%
25%
15%
16
D
E
B
A
A
30
A
A
A
E
E
25%
20%
15%
25%
15%
17
C
A
B
A
D
28
A
A
A
E
E
25%
25%
15%
25%
10%
18
A
B
A
C
B
31
B
B
A
C
C
25%
20%
15%
25%
15%
19
C
D
A
A
A
29
A
B
A
E
D
25%
25%
15%
25%
10%
20
A
B
C
D
E
27
B
C
B
D
B
15%
20%
35%
15%
15%
3、问题分析
我们将外貌、性格、气质、事业、财富五个方面的五个等级A、B、C、D、E分别赋值为5、4、3、2、1。一对青年男女能否配对成功,主要取决于相互之间的好感的程度—“满意度”,单方面的高满意度也不一定能配对成功。因为每人个只能选择一次,能不能配对成功取决于双方是不是选中对方,即要看双方彼此的满意度如何。实际中,假如一个男青年A对一个女青年B的满意度最高,但B对A的满意度不一定最高,即若A选择B,但B不一定选择A。因此,A与B不一定配成对,反之亦然。现在的问题是谁选谁,使配对成功的可能性最大呢?这个问题实际上是男女双方在彼此基本了解的情况下,在保证自己一定满意的条件下做出自己的选择,也需要猜测对方会做出怎样的选择。所谓的“成功率”,就是男女双方最终配对成功的概率。实际上。可以利用他们相互之间的满意度来间接刻画。相互的满意度越高,双方配对成功的概率就越大。
由于外貌、性格、气质、事业、财富五个方面在每个人的选择中所起的作用不尽相同,我们设计简单问卷供参与活动的男女青年在节目前填写,以确定五方面在对每个人选择中所起作用的权重。
4、模型假设与符号说明
4.1模型假设:
(1)题目所给出的男女青年的评价是客观真实的;
(2)每个人在选择双方的时候是理智的;
(3)男女青年不会受当时环境的影响。
(4)对于年龄,假设配对成功的要求为男青年至多比女青年的年龄大5岁,或女青年至多比男青年的大2岁,
4.2符号说明:
K=1,2,3,4,5分别表示外貌、性格、气质、事业、财富这5个条件;
(i=1,2…… 10) 表示年龄升序排列后男青年编号;
(j=1,2…… 10) 表示年龄升序排列后女青年编号;
( i=1,2…… 10,k=1,2,3,4,5) 表示男青年i在k方面的基本条件;
( i=1,2…… 10,k=1,2,3,4,5) 表示男青年i在k方面的要求;
( i=1,2…… 10,k=1,2,3,4,5) 表示男青年i在k方面的要求的权重;
( j=1,2…… 10,k=1,2,3,4,5) 表示女青年j在k方面的基本条件;
( j=1,2…… 10,k=1,2,3,4,5) 表示女青年j在k方面的要求;
( j=1,2…… 10,k=1,2,3,4,5) 表示女青年j在k方面的要求的权重;
表示男青年i对女青年j在k方面的满意度;
表示女青年j对男青年i在k方面的满意度;
表示男青年i与女青年j在k方面的满意度之和.
表示男青年i与女青年j的满意度之和.
5、模型的建立和求解
5.1条件量化处理
选取10名男青年和10名女青年进行配对分析,先整理得到按年龄重排的前10名男女青年,并把其中的基本条件级别A、B、C、D、E分别赋值量化为5、4、3、2、1。
男青年基本条件
按年龄重排
外貌
性格
气质
事业
财富
年龄
1
5
4
3
2
1
27
2
4
4
5
4
4
28
3
3
5
4
4
2
28
4
3
4
3
4
4
28
5
5
2
3
1
4
28
6
2
4
5
5
5
28
7
4
5
2
1
3
28
8
5
4
4
3
3
28
9
3
5
4
5
2
28
10
5
3
4
3
5
29
女青年基本情况
按年龄重排
外貌
性格
气质
事业
财富
年龄
1
4
5
4
5
2
25
2
4
2
3
1
3
25
3
4
4
3
5
5
25
4
5
1
1
2
5
25
5
4
5
3
3
1
25
6
3
4
5
1
5
26
7
5
3
4
3
5
26
8
5
5
5
3
1
26
9
4
1
3
1
5
26
10
1
5
3
4
4
26
对于每个人的外貌、性格、气质、事业、财富五项条件的5个等级A,B,C,D,E分别作量化处理为5,4,3,2,1。于是根据上表可以得到男女青年的基本条件量化矩阵和要求条件量化矩阵(或称权值矩阵)以及满意度分量分别记为:
其中,
利用matlab编程,关键语段是对B(i,k)与C(j,k)的大小的比较判断,采用if-elseif-else语句,如(全部代码详见附录):
k=1; %此即K=1,先考虑“外貌”方面
for j=1:10
for i=1:10
if (B(i,k)==C(j,k))
S(i,j)=1
elseif (B(i,k)>C(j,k))
S(i,j)=-2^(B(i,k)-C(j,k))
elseS(i,j)=2^(C(j,k)-B(i,k))
end
end
end
经过计算,在外貌方面,也即K=1,男青年i对女青年j在外貌的满意度矩阵如下:
同样道理,我们可以计算出女青年j对男青年i在K方面的满意度矩阵
经计算,在外貌方面,也即K=1,女青年j对男青年i在外貌的满意度矩阵为
5.2满意度的说明
现在,我们对满意度进行说明,要确定对的第K项条件的满意度。先对年龄进行筛选,如果、的年龄大于或大于,则和的满意度为-1000;如果基本条件达不到的要求即,给它赋值为值.否则,满意度记为刚好达到为1,超过要求时,满意度赋值为。这样就体现了,当一方实际条件高于对方期望(要求)条件时,则对方对他(她)的好感(相对于要求条件)就会增加,超过得越多,好感增加得越多(以倍数递增);而当一方实际条件低于对方期望(要求)条件时,对方对他(她)的不满意度(相对于要求条件)就会增加,同样以倍数增长。
5.3模型的建立
将和处理成10*10矩阵,
然后进行计算,从而得到男女双方的满意度矩阵R=()
建立0-1规划模型
利用matlab编程,采用 0-1整数规划的函数bintprog,具体 如下
X= bintprog(f,A,b,Aeq,beq),其中f为目标函数的系数矩阵,A为不等约束中的系数矩阵,b为不等约束中的右端值向量,Aeq为等式约束中的系数矩阵,beq为等式约束中右端值向量。
结合本题,A,b都没有,取空矩阵,即A=[];b=[];而f则取Rij矩阵的相反数,因为是求最大值,也即f为100*1的矩阵,由Rij的各元素的相反数构成,而且原来Rij的10*10变成新的100*1矩阵。本题的规划模型的实质就是:每行每列仅仅有一个1,求男女满意度最大的这个xij(10*10)矩阵!故此,约束条件中的Aeq为0-1矩阵,约束条件20个,全部为(前10个)
x11+x21+x31+x41+…+x10,1=1
x12+x22+x32+x42+…+x10,2=1
x13+x23+x33+………+x10,3=1
…
x1,10+x2,10+……....+x10,10=1
后10个为:
x11+x12+x13+……..+x1,10=1
x21+x22+x23+……..+x2,10=1
…
x10,1+x10,2+……...+x10,10=1
经计算,目标函数的系数的Rij矩阵为:
最终的xij矩阵:
故此男青年与女青年的最佳匹配为:
男1
男2
男3
男4
男5
女7
女8
女10
女5
女4
男6
男7
男8
男9
男10
女9
女2
女3
女1
女6
- 基于0-1整数规划的“玫瑰有约”模型--进一步利用matlab深入研究
- matlab求解整数规划、0-1规划
- Oracle数据库中临时表的进一步深入研究
- 结束语 进一步的研究
- 外包的进一步研究
- Git的进一步研究
- MATLAB求解线性规划(含整数规划和0-1规划)问题
- MATLAB求解线性规划(含整数规划和0-1规划)问题
- 数学规划模型的matlab求解
- 基于STKConnect的卫星任务规划研究
- 0-1整数规划的LINGO求解
- 基于工作流技术的构件模型研究
- 基于隐马尔科夫模型的中文分词研究
- 基于隐马尔科夫模型的中文分词研究
- 隐马尔科夫链模型对于沪深300指数建模的进一步研究
- 利用Python的turtle库绘制玫瑰
- 基于AO 的风向标和风玫瑰扩展
- 基于Xen的IO模型进一步分析“黑色0.1秒”问题
- Collected Quotes from Albert Einstein
- 非模态对话框
- lex&yacc安装配置
- 我的高考之“最”——献给广大考生的一首"歌"
- MFC多文档和单文档视结构
- 基于0-1整数规划的“玫瑰有约”模型--进一步利用matlab深入研究
- 陈皓:Git显示漂亮日志的小技巧
- storyboard 跳转
- hdu 1028
- (14)-abstract class 和 interface
- style theme
- Oracle多表关联更新的方式选择
- 交叉表查询
- windows 平台下修改oracle SGA造成数据库无法启动