2018年第七届数学建模国际赛小美赛D题速度扼杀爱情解题全过程文档及程序

本文主要是介绍2018年第七届数学建模国际赛小美赛D题速度扼杀爱情解题全过程文档及程序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2018年第七届数学建模国际赛小美赛

D题 速度扼杀爱情

原题再现:

  在网上约会的时代,有比鱼更多的浪漫选择,好吧,你知道的。例如,在命名恰当的网站Plenty of Fish上,你可以仔细查看数百或数千名潜在伴侣的档案,然后再决定联系哪一个。这种不受约束的选择意味着更容易找到真爱——或者说很多约会者都相信这一点。假设你的选择越多,你就越有可能找到真正适合你的人。然而,许多约会者发现,不那么浪漫的选择会带来一流的结果,而不会带来所有的焦虑。EHarmony是美国最大的交友网站之一,它让客户填写一份详细的兼容性调查,然后向他们发送数量有限的匹配信息,通常一次发送几到十几条左右。婚姻的成功率相对较高。研究发现,速配者通常根据外表来选择伴侣。当有更少的选择时,约会者可能会花时间反思一个人更深层次的品质。

  斯沃斯莫尔学院多温·卡特赖特社会理论和社会行动教授巴里·施瓦茨多年来一直认为,不断限制我们的选择会带来更好的结果。他认为过多的选择压倒了我们,让我们不快乐——他称之为选择悖论。施瓦茨说,无尽的选择与其说是令人满意,不如说是令人乏味。在一项被称为“果酱研究”的经典实验中,杂货店购物者扫描24种不同的美食果酱的可能性比只看6种果酱的购物者低。从更广泛的选择中选择的购物者也对他们购买的果酱感到不满意。施瓦茨解释说,问题是,当你有更多的选择时,你往往会给自己施加更大的压力,让自己做出完美的选择——毕竟,当选择并不完美时,你会感到更失望。施瓦茨说:“即使你选择得很好,你最终也会被否定。”。“你确信,即使你做得很好,你也应该做得更好。”根据心理学家Daniel Kahneman和Amos Tversky的研究,Schwartz认为,当你面临无数选择时,做出错误选择的预期损失抵消了你对更多选择前景的喜悦。

  如果你坚持从一大堆人中挑选一个人,你不仅会不那么满意,而且可能会做出更糟糕的选择。在台湾大学的一项研究中,当在线约会者有更多的搜索选项时,他们花在考虑每种可能性上的时间更少,而且发现更难区分好的前景和坏的前景。研究人员解释说,过于稀疏地拉伸你的认知能力,往往会在无关的细节上束缚你,并分散你对你认为最重要的标准的注意力。这表明,为了评估重要的品质——对大多数人来说,这些品质包括伴侣的诚实、可靠性和幽默感——你需要更深入地寻找,而不是更广泛地寻找。

  这是否意味着你应该选择由eHarmony等供应商提供的专家指导的定制飞行方式?相当多的约会者非常欣赏精心策划的选择,愿意为此支付额外费用。假设你是一个在线约会网站的伴侣。您应该完成以下任务:

  1.创建一个客观的定量算法或一组算法,通过几个选项完成在线约会匹配。

  2.使用您的算法来制定您的“前20名推荐约会者”列表。在约会时,对一个理想大小的选择集做出更合适的估计——一个足够大的选择集,包括多样性和深度,但又足够小,你可以公平地衡量每个潜在客户的潜力,而不会绊倒你大脑的过载开关。

  3.给出用户需要为您的网站填写的信息表格的设计。研究网上约会的形式设计与成功率之间的关系。

  4.写一页非技术性的新闻稿,描述你的新算法、结果和网站。

整体求解过程概述(摘要)

  随着社会经济的快速发展,“剩男剩女”现象越来越普遍。出现了各种各样的社交网站,比如《鱼儿丰收》。这是对大量鱼类的研究。

  对于问题一,对各类用户自身属性的数据进行标准化,然后采用改进的KNN算法对选项进行统计分析,得到相对距离。使用属性值相关距离公式计算距离的最小值。距离的最小项是满足条件的匹配选项。利用满意度矩阵比较两个匹配方的满意度,得到匹配的候选对象。

  对于问题二,利用层次分析法建立层次结构,构造一对比较矩阵。然后,进行分层单排序、总体分层排序和一致性检查。然后采用基于用户相似度的协同过滤推荐算法。对用户属性相似度和交互相似度进行拟合。确定不同权重,分值越高,推荐前20名最佳日期。

  对于问题三,建立了成功率的数学模型,利用欧氏距离定义了用户自身条件与配偶要求之间的相似度。然后将每个用户视为一个点,转化为最小权二分法问题。男女约会者配对,根据欧氏距离计算男女约会者之间的相似度。

  对于问题4,根据问题1、2和3中使用的KNN算法、AHP和推荐算法,我们编写了一份非技术性新闻稿。

  改进的KNN算法,考虑了属性值对类别判断的重要性以及不同属性值之间的相关性,提高了分类的准确性。分别采用层次分析法和协同推荐算法,减少了主观判断带来的误差,提高了结果的准确性。

模型假设:

  假设获得的数据真实可靠;
  假设双方根据自己的情况决定配偶的要求。;
  用“年龄”、“身高”、“婚姻状况”、“受教育程度”、“单位类型”、“收入”、“住房状况”、“面积”、“外貌”表示男女的优秀程度;

假设所有用户都是异性恋者。

问题分析:

  问题1分析

  对于问题一,完成网上交友匹配多个选项,首先设置合适的选项,如年龄、身高、收入、婚姻状况、住房状况等,利用改进的KNN算法对用户选择的选项进行分析,得到相同选项之间的相对距离。距离的最小值是匹配选项。然后利用满意度矩阵比较匹配各方的满意度,得到匹配的候选对象。

  问题二分析

  为了找出满足某一用户需求的前20名最佳约会者,利用层次分析法(AHP)建立层次结构,构造成对比较矩阵,检验层次单序及其一致性,并进行总层次排序及其一致性检验。然后从100名女性用户中随机抽取1名,采用层次分析法(AHP)对前20名最佳数据进行求解。然后,利用基于用户相似度的协同过滤推荐算法,介绍了用户相似度和用户交互相似度的概念和用途。最后,从100名女性用户中随机抽取一名用户。使用推荐算法推荐排名前20%的优秀男性用户。

  问题三分析

  首先,分析用户应填写哪些基本信息,使网络背景能够最大限度地了解用户,并能够达到其前20名的合适日期候选人。因此,主要问题是选择合适的信息选项,使信息的填充和配对成功率达到最大。将一些数据进行量化,将一些变量之间的值差别很大的相应变量进行标准化处理,结合男女用户的情况,利用欧氏距离确定两者之间的相互满意度。对应度越大,匹配越大,成功率越高。越是成功的日期,越是成功的时候,两者之间的差异不大。因此,我们可以将满意度定义为男性约会者对女性条件的要求程度,女性约会者与男性自我之间的相似程度,如果两者之间的相似性越大,满意度越高。那么成功的几率就越高。

  问题四分析

  根据前三个问题中使用的KNN算法和满意度矩阵,利用分析结果和算法的实用性和通用性编写新闻稿。

模型的建立与求解整体论文缩略图

在这里插入图片描述
在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

部分程序代码:(代码和文档not free)

Annex Ⅰ KNN algorithm based on attribute value transformation
clear;
clc;
K=3;
trainData = [1.0,2.0;1.2,0.1;0.1,1.4;0.3,3.5];
trainClass = [1,1,2,2];
testData = [0.5,2.3];[N,M]=size(trainData);
dist=zeros(N,1);
for i=1Ndist(i,)=norm(trainData(i,)-testData);
end
[Y,I]=sort(dist,1);   
trainClass=trainClass(I);
classNum=length(unique(trainClass));
labels=zeros(1,classNum);
for i=1Kj=trainClass(i);labels(j)=labels(j)+1;
end
[~,idx]=max(labels);
fprintf('0 %dn',idx);Test
KNN.mfunction [ idx ] = KNN( trainData,trainClass,testData,K )
%UNTITLED Summary of this function goes here
%   Detailed explanation goes here[N,M]=size(trainData);
dist=zeros(N,1);
for i=1Ndist(i,)=norm(trainData(i,)-testData);
end
[Y,I]=sort(dist,1);   
K=min(K,length(Y));
labels=trainClass(I);
%{
classNum=length(unique(trainClass));
labels=zeros(1,classNum);
for i=1Kj=trainClass(i);labels(j)=labels(j)+1;
end
[~,idx]=max(labels);
%}
idx=mode(labels(1K));
fprintf('该测试数据属于类 %d  ',idx);
end
KnnDataTest.m
clear;
clc;
X=load('datingTestSet2.txt');
ratio=0.1;
[N,M]=size(X);
K=4;
trainData=X(,13);
trainClass=X(,4);
num_test=Nratio;
newData=(oldData-minValue)(maxValue-minValue);
minValue=min(trainData);
maxValue=max(trainData);
trainData=(trainData-repmat(minValue,N,1)).(repmat(maxValue-minValue,N,1));
error=0;
for i=1num_testidx=KNN(trainData(num_test+1N,),trainClass(num_test+1N,),trainData(i,),K);fprintf('该测试数据的真实类为:%dn',trainClass(i,));if idx~=trainClass(i,);error=error+1;end
end
Annex II: program for finding the maximum eigenvalue of the discriminant matrix:
A =1.0000    0.3333    1.0000    1.0000    0.2000    1.0000    0.3333    4.00000.3333    1.0000    2.0000    1.0000    0.2000    2.0000    1.0000    1.00001.0000    2.0000    1.0000    0.3333    1.0000    0.1429    1.0000    2.00001.0000    1.0000    0.3333    1.0000    0.3333    1.0000    0.2000    1.00000.2000    0.2000    1.0000    0.3333    1.0000    1.0000    1.0000    0.20001.0000    2.0000    0.1429    1.0000    1.0000    1.0000    1.0000    1.00000.3333    1.0000    1.0000    0.2000    1.0000    1.0000    1.0000    0.33334.0000    1.0000    2.0000    1.0000    0.2000    1.0000    0.3333    1.0000>>  [x,y]=eig(A);
eigenvalue=diag(y);
lamda=max(eigenvalue)lamda =8.1841
y_lamda = x(:, 1) >> y_lamda =0.65320.03440.19610.00450.03800.01550.04380.7281
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

这篇关于2018年第七届数学建模国际赛小美赛D题速度扼杀爱情解题全过程文档及程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/512701

相关文章

使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)

《使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)》PPT是一种高效的信息展示工具,广泛应用于教育、商务和设计等多个领域,PPT文档中常常包含丰富的图片内容,这些图片不仅提升了... 目录一、引言二、环境与工具三、python 提取PPT背景图片3.1 提取幻灯片背景图片3.2 提取

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl

将Java程序打包成EXE文件的实现方式

《将Java程序打包成EXE文件的实现方式》:本文主要介绍将Java程序打包成EXE文件的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录如何将Java程序编程打包成EXE文件1.准备Java程序2.生成JAR包3.选择并安装打包工具4.配置Launch4

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

Python实现word文档内容智能提取以及合成

《Python实现word文档内容智能提取以及合成》这篇文章主要为大家详细介绍了如何使用Python实现从10个左右的docx文档中抽取内容,再调整语言风格后生成新的文档,感兴趣的小伙伴可以了解一下... 目录核心思路技术路径实现步骤阶段一:准备工作阶段二:内容提取 (python 脚本)阶段三:语言风格调

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

SpringBoot实现微信小程序支付功能

《SpringBoot实现微信小程序支付功能》小程序支付功能已成为众多应用的核心需求之一,本文主要介绍了SpringBoot实现微信小程序支付功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录一、引言二、准备工作(一)微信支付商户平台配置(二)Spring Boot项目搭建(三)配置文件

Java利用docx4j+Freemarker生成word文档

《Java利用docx4j+Freemarker生成word文档》这篇文章主要为大家详细介绍了Java如何利用docx4j+Freemarker生成word文档,文中的示例代码讲解详细,感兴趣的小伙伴... 目录技术方案maven依赖创建模板文件实现代码技术方案Java 1.8 + docx4j + Fr

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

详解C#如何提取PDF文档中的图片

《详解C#如何提取PDF文档中的图片》提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,下面我们就来看看如何使用C#通过代码从PDF文档中提取图片吧... 当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使