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=1N
    dist(i,)=norm(trainData(i,)-testData);
end
[Y,I]=sort(dist,1);   
trainClass=trainClass(I);
classNum=length(unique(trainClass));
labels=zeros(1,classNum);
for i=1K
    j=trainClass(i);
    labels(j)=labels(j)+1;
end
[~,idx]=max(labels);
fprintf('0 %dn',idx);

Test
KNN.m

function [ 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=1N
    dist(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=1K
    j=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_test
    idx=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.0000
    0.3333    1.0000    2.0000    1.0000    0.2000    2.0000    1.0000    1.0000
    1.0000    2.0000    1.0000    0.3333    1.0000    0.1429    1.0000    2.0000
    1.0000    1.0000    0.3333    1.0000    0.3333    1.0000    0.2000    1.0000
    0.2000    0.2000    1.0000    0.3333    1.0000    1.0000    1.0000    0.2000
    1.0000    2.0000    0.1429    1.0000    1.0000    1.0000    1.0000    1.0000
    0.3333    1.0000    1.0000    0.2000    1.0000    1.0000    1.0000    0.3333
    4.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.6532
    0.0344
    0.1961
    0.0045
    0.0380
    0.0155
    0.0438
    0.7281
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/256506.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Web前端-HTML(简介)

文章目录 1. HTML1.1概述1.2 HTML骨架标签1.3 HTML元素标签及分类1.4 HTML标签关系 2. 代码开发工具&#xff08;书写代码&#xff09;3. 文档类型<!DOCTYPE>4. 页面语言lang5. 字符集 1. HTML 1.1概述 HTML 指的是超文本标记语言 (Hyper Text Markup Language)&#x…

STM32 CAN多节点组网项目实操 挖坑与填坑记录2

系列文章&#xff0c;持续探索CAN多节点通讯&#xff0c; 上一篇文章链接&#xff1a; STM32 CAN多节点组网项目实操 挖坑与填坑记录-CSDN博客文章浏览阅读120次。CAN线性组网项目开发过程中遇到的数据丢包问题&#xff0c;并尝试解决的记录和推测分析。开发了一个多节点线性…

掌握 RPC 接口测试:一篇详尽的接口测试手册

RPC 是什么&#xff1f; 远程过程调用协议&#xff08;RPC&#xff09;是一种技术&#xff0c;它允许在不同的机器上执行函数&#xff0c;就好像这些函数是本地调用一样。简单地说&#xff0c;客户端系统透明地从网络上的远程服务器软件请求服务&#xff0c;而无需理解复杂的网…

光敏材料研究和测试太阳光模拟器

概述 太阳光模拟器通常采用强光源和光学系统来产生和调节光线&#xff0c;以模拟太阳光的强度、光谱和方向&#xff0c;能提供24H不间断光源。模拟器可根据不同时间、地点和季节的太阳光照射条件来进行调整。广泛应用于整车全光谱阳光模拟测试、气体VOC&#xff08;挥发性有机…

Unix进程间通信之简介-总体概述和引子

目录标题 0. 前言1. 概述2. 进程、线程与信息共享3. IPC对象的持续性4. 名字空间5. fork、exec和exit对IPC对象的影响6. 出错处理&#xff1a; 包裹函数7. Unix标准8. 小结 0. 前言 进程间通信这块是学习linux-c编程的关键&#xff0c; 这篇为后续进程间通信技术的引子篇&#…

【 USRP安装教程】MATLAB 2023B

步骤 matlabdocusrp驱动包 doc 安装包内容列表 双击“R2023b_Doc_Windows.iso” 打开cmd 查看盘符 切换盘符 因为是F盘&#xff0c;所以cmd输入&#xff1a;“F:” F:进入可安装界面 cd F:\bin\win64安装离线文档库 .\mpm install-doc --matlabroot"C:\MATLAB\R202…

普冉(PUYA)单片机开发笔记(11): I2C通信-配置主从收发

概述 在上一篇《普冉&#xff08;PUYA&#xff09;单片机开发笔记(10): I2C通信-配置从机-CSDN博客》配置了 PY32F003 的 I2C 从机一侧&#xff0c;今天配置主机&#xff0c;并实现主-从机之间的报文收发。 为了完成这个实验&#xff0c;需要两块 PY32F003F18P 的开发板&…

git 删除仓库中多余的文件或者文件夹

问题 在项目开发测试阶段&#xff0c;将无意间将本地敏感的、或无用的文件或目录不小心提交到远程仓库了的问题。 解决方案 第一步&#xff1a;同步代码 先pull远程代码&#xff0c;保持同步。 git pull 第二步&#xff1a;删除文件 // 删除单个文件git rm 文件名 --cached/…

opencv 入门一(显示一张图片)

头文件添加如下&#xff1a; 库目录添加如下&#xff1a; 依赖的库如下&#xff1a; #include <iostream> #include "opencv2/opencv.hpp" int main(int argc,char ** argv) { cv::Mat img cv::imread(argv[1], -1); if (img.empty()) return -1; …

[C++从入门到精通] 14.虚函数、纯虚函数和虚析构(virtual)

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/weixin_43197380&#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;本文由 Loewen丶原创&#xff0c;首发于 CSDN&#xff0c;转载注明出处&#x1f649;&…

APS54085 高辉度调光降压恒流芯片 PWM 线性调光 车灯IC

产品描述 APS54085 是一款 PWM 工作模式,简单、内置功率 MOS 管&#xff0c;适用于 5-100V输入的高精度降压 LED 恒流驱动芯片。电流2.0A。APS54085 可实现线性调光和 PWM 调光&#xff0c;线性调光有效电压范围 0.52-2.55V.PWM 调光频率范围 100HZ-30KHZ。APS54085 工作频率可…

MATLAB - Gazebo 仿真环境

系列文章目录 前言 机器人系统工具箱&#xff08;Robotics System Toolbox™&#xff09;为使用 Gazebo 模拟器可视化的模拟环境提供了一个界面。通过 Gazebo&#xff0c;您可以在真实模拟的物理场景中使用机器人进行测试和实验&#xff0c;并获得高质量的图形。 Gazebo 可在…

鸿蒙4.0核心技术-WebGL开发

场景介绍 WebGL主要帮助开发者在前端开发中完成图形图像的相关处理&#xff0c;比如绘制彩色图形等。 接口说明 表1 WebGL主要接口列表 接口名描述canvas.getContext获取canvas对象上下文。webgl.createBuffer(): WebGLBuffernullwebgl.bindBuffer(target: GLenum, buffer: …

打开VScode时不打开上次使用的文件夹

是不是很烦VScode 打开新的文件夹&#xff0c;每次都打开上次使用过的文件夹&#xff0c;只需在设置里面改一个设置就可以避免了。 Ctrl &#xff0c;打开设置&#xff0c;搜索 window.restoreWindows 通过这种设置就可以让VScode 每次打开新的文件夹而不打开上次的文件夹。

Apache RocketMQ 5.0 腾讯云落地实践

Apache RocketMQ 发展历程回顾 RocketMQ 最早诞生于淘宝的在线电商交易场景&#xff0c;经过了历年双十一大促流量洪峰的打磨&#xff0c;2016年捐献给 Apache 社区&#xff0c;成为 Apache 社区的顶级项目&#xff0c;并在国内外电商&#xff0c;金融&#xff0c;互联网等各行…

ST股票预测模型(机器学习_人工智能)

知己知彼&#xff0c;百战不殆&#xff1b;不知彼而知己&#xff0c;一胜一负&#xff1b;不知彼&#xff0c;不知己&#xff0c;每战必贻。--《孙子兵法》谋攻篇 ST股票 ST股票是指因连续两年净利润为负而被暂停上市的股票&#xff0c;其风险较高&#xff0c;投资者需要谨慎…

OpenCV4工业缺陷检测的六种方法

【文末送书】今天推荐一本机器视觉领域优质书籍 机器视觉 机器视觉是使用各种工业相机&#xff0c;结合传感器跟电气信号实现替代传统人工&#xff0c;完成对象识别、计数、测量、缺陷检测、引导定位与抓取等任务。其中工业品的缺陷检测极大的依赖人工完成&#xff0c;特别是…

微信Windows版-无效的WeChatWin.dll文件,错误码126

更新的微信Windows最新版本&#xff0c;突然有一天打开微信提示“无效的WeChatWin.dll文件 错误码 ErrorCode:126,点击“确定”下载最新版本”。 卸载重新安装跟到windows目录下替换WeChatWin.dll皆无效 该解决方案适用于Windows系统&#xff1a;Windows7、Windows10、Windows…

【HarmonyOS开发】ArkUI中的自定义弹窗

弹窗是一种模态窗口&#xff0c;通常用来展示用户当前需要的或用户必须关注的信息或操作。在弹出框消失之前&#xff0c;用户无法操作其他界面内容。ArkUI 为我们提供了丰富的弹窗功能&#xff0c;弹窗按照功能可以分为以下两类&#xff1a; 确认类&#xff1a;例如警告弹窗 Al…

t-SNE高维数据可视化实例

t-SNE&#xff1a;高维数据分布可视化 实例1&#xff1a;自动生成一个S形状的三维曲线 实例1结果&#xff1a; 实例1完整代码&#xff1a; import matplotlib.pyplot as plt from sklearn import manifold, datasets """对S型曲线数据的降维和可视化"&q…