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/512700

相关文章

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

uva 10014 Simple calculations(数学推导)

直接按照题意来推导最后的结果就行了。 开始的时候只做到了第一个推导,第二次没有继续下去。 代码: #include<stdio.h>int main(){int T, n, i;double a, aa, sum, temp, ans;scanf("%d", &T);while(T--){scanf("%d", &n);scanf("%lf", &first);scanf

uva 10025 The ? 1 ? 2 ? ... ? n = k problem(数学)

题意是    ?  1  ?  2  ?  ...  ?  n = k 式子中给k,? 处可以填 + 也可以填 - ,问最小满足条件的n。 e.g k = 12  - 1 + 2 + 3 + 4 + 5 + 6 - 7 = 12 with n = 7。 先给证明,令 S(n) = 1 + 2 + 3 + 4 + 5 + .... + n 暴搜n,搜出当 S(n) >=

uva 11044 Searching for Nessy(小学数学)

题意是给出一个n*m的格子,求出里面有多少个不重合的九宫格。 (rows / 3) * (columns / 3) K.o 代码: #include <stdio.h>int main(){int ncase;scanf("%d", &ncase);while (ncase--){int rows, columns;scanf("%d%d", &rows, &col

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

EMLOG程序单页友链和标签增加美化

单页友联效果图: 标签页面效果图: 源码介绍 EMLOG单页友情链接和TAG标签,友链单页文件代码main{width: 58%;是设置宽度 自己把设置成与您的网站宽度一样,如果自适应就填写100%,TAG文件不用修改 安装方法:把Links.php和tag.php上传到网站根目录即可,访问 域名/Links.php、域名/tag.php 所有模板适用,代码就不粘贴出来,已经打