专栏内容(赛前预售价99,比赛期间299): 2024数学建模国赛期间会发布思路、代码和优秀论文。(本专栏达不到国一的水平,适用于有一点点基础冲击省奖的同学,近两年有二十几个国二,但是达不到国一,普遍获得省奖,请勿盲目订阅)
python全套教程(一百篇博客):从新手到掌握使用python,可以对数学建模问题进行建模分析。
35套模型算法(优秀论文示例):马尔科夫模型、遗传算法、逻辑回归、逐步回归、蚁群算法、蒙特卡洛模拟、聚类模型、线性规划、粒子群算法、神经网络、相关系数、灰色预测、灰色关联分析、模糊综合评价、模拟退火、时间序列ARMA、方差分析支持向量机、插值、排队论、拟合模型、微分方程、层次分析法、小波分析、多元回归、图论floyd算法、图论Dijkstra模型、因子分析、动态规划、博弈论、决策树、典型相关分析、元胞自动机、主成分分析、TOPSIS法。
目录
摘要
“拍照赚钱”APP 是基于移动互联网的自助式劳务众包平台,使得企业可利用大众力量,低成本、高效率地完成各种商品检查与信息搜集的任务。本文通过建立数学模型,就 APP 中的任务定价问题进行分析,给出最优的任务定价方案。
针对问题一,对项目的任务定价规律进行定性与定量研究。利用 Matlab 的cftool 工具箱绘制出任务的经纬度坐标与定价数据的三维拟合图,观察到任务分布密集的地区任务定价较低。对任务的位置数据进行空间离散化处理和K-Means 分析,将任务分布的区域等划分为若干网格区域,定义影响任务定价的四个因子,即网格内任务数量、会员人数、会员平均完成能力、任务与中心点的距离。运用灰色关联矩阵定量分析四个影响因子与定价的相关度,分别为0.9710,0.9671,0.9633,0.9390。得出所定义的指标对定价相关性很高,能较好描述定价规律。最后通过比较未完成任务与已完成任务的相关度矩阵得出距离对任务的完成的影响是最显著的。
针对问题二,设计新的任务定价方案实际上是一个优化问题,以总成本最小化,完成率最大化作为两个优化目标。通过问题一中任务未完成的原因分析引入吸引度矩阵,计算吸引力阈值。考虑到每个会员有各自的信誉值,预定开始时间与预定配额,设定最大吸引准则、竞争准则、信誉优先分配准则、时间列准则,约束条件即为会员在预定任务时必须遵循以上准则,建立双目标定价优化模型。利用 Matlab 的深度多重搜索算法对决策变量进行遍历,用 matlab 得到最优定价方案。此定价方案的完成率为 84.55%,与原方案比较,总成本节约了 5.58%,任务完成率提高了 32.25%。
针对问题三,在位置较为集中的任务被联合打包发布的情况下修改双目标定价优化模型。首先,根据任务的位置信息,利用聚类分析将任务分为 150 类,提取出包含的任务数量大于 15 个的任务类别,进行二次嵌套聚类分析,由此得到的任务打包方案满足每一个任务包中的任务位置集中且任务数量不超过 15 个。然后,修改吸引力矩阵,重新计算得到每个任务的阈值,基于任务打包结果,在满足双目标优化模型的约束条件的情况下,利用 Matlab 的深度多重搜索算法对决策变量进行遍历,得到最优定价方案,在此定价方案下,任务完成率为 0.9091%,与问题二中的方案相比,总成本节约了 5.7%,任务完成度提高了 7.52%。
针对问题四,新项目的任务定价方案设计应当基于之前建立的双目标优化定价模型。首先,根据任务的位置信息进行聚类分析,得到新任务的打包方案。将模型三中的相关任务数据以及最优定价方案作为 BP 神经网络的训练样本,建立BP 神经网络预测模型,新任务的定价依旧满足问题二中的约束条件,通过预测得到新任务定价方案以及相应完成情况,最终定价总额为 54603.58 元,150 包中完成 141 包,任务完成率为 94%。都优于问题二和问题三的最优定价方案。
最后,给出每个模型的优缺点及评价。
关键词:K-Means 聚类分析 双目标优化模型 多重搜索算法 BP神经网络
一、问题重述
1.1 问题背景
在互联网技术发展迅猛的当下,高昂的技术、人才、设备等成本在一定程度上限制了一批企业的生产和扩大,这也促使企业重新寻找突破点。2015 年 9 月,国务院印发的《关于加速构建大众创业万众创新支撑平台的指导意见》中提出,积极发展众包,即汇众力增就业,借助互联网等手段,将传统由特定企业和机构完成的任务向自愿参与的所有企业和个人进行分工,最大限度利用大众力量,以更高的效率、更低的成本满足生产及生活服务需求。
“拍照赚钱”是移动互联网下的一种自助式服务模式。用户下载 APP,注册成为 APP 的会员,然后从 APP 上领取需要拍照的任务,赚取 APP 对任务所标定的酬金。这种基于移动互联网的自助式劳务众包平台,为企业提供各种商业检查和信息搜集,相比传统的市场调查方式节省了调查成本,保证了调查数据真实性,缩短了调查的周期。因此 APP 成为该平台运行的核心,同时,APP 中的任务定价是其核心要素。如果定价不合理,该项商品调查任务就会无人领取,从而失败。
1.2 问题提出
根据以上背景,以及给出的三个附件,需要解决以下问题:
1.研究附件一中项目的任务定价规律,分析任务未完成的原因。
2.为附件一中的项目设计新的任务定价方案,并和原方案进行比较。
3.实际情况中,用户可能会争相选择位置比较集中的多个任务,因此,考虑将这些任务联合在一起打包发布。基于这种考虑,修改前面的定价模型,并分析对最终的任务完成情况的影响。
4.对附件三中的新项目给出任务定价方案,并评价该方案的实施效果。其中,附件一给出了已结束项目任务数据,包含每个任务的位置、定价和完成情况;附件二给出了会员信息数据,包含会员的位置、信誉值以及对应的任务开始预订时间和预定限额;附件三给出了新项目任务数据,仅包含任务的位置信息。
二、问题分析
2.1 问题一的分析
问题一首先要求我们根据一项已完成项目的任务数据中的每个任务的位置、定价和完成情况来分析任务定价规律。在经济学中,一个竞争性市场上的商品价格规律受到供求关系影响而上下波动,因此,要分析定价规律,便需要找到影响定价的因素,对于每一个任务而言,它的定价与完成情况会受到其它任务与会员的影响,我们将从这两大方面考虑任务定价的影响因子,定义影响任务定价的四大影响因子。
首先,我们将利用任务数据的经纬度与定价信息来进行图像分析,观察出定价的定性规律,在此基础上,将标定任务位置的空间数据进行离散化处理,并根据任务的位置分布进行 K-Means 聚类分析,结合附件一给出的数据将影响因子量化。最后,利用灰色关联度矩阵计算各影响影响因子与价之间的相关度定量分析任务的定价规律。通过比较未完成任务与已完成任务的相关度矩阵之间的差
异找出任务未完成的原因。
2.2 问题二的分析
问题二的新的定价方案设计问题实际上是一个优化问题。由于附件一中任务
定价存在某种不合理性导致了任务完成率低下,从企业定价的角度考虑,一个较
优的定价方案应当让企业花费尽可能少的成本去得到更多的市场调查信息。因此,
我们将设计新的定价方案看做一个双目标优化问题,即在各种约束条件下设计出
一个可以使得成本最小化、任务完成率最大化的定价方案。
在考虑最优定价方案时,不能完全从发布任务的企业角度来考虑,应当考虑
到现实中任务被会员预定的过程中存在的规则。当企业发布任务数据后,不是任
务挑选会员,而是会员挑选任务。该问题的难点便在于同时从企业和会员的两个
角度进行考虑,将复杂的任务预定规则一一转化为约束条件。由于每个会员都有
对应的信誉值以及任务开始预定时间和预定限额,并且信誉值越高,越优先挑选
任务。我们按照时间顺序,依次对任务预定的时间点进行分析。建立每个任务对
每位会员的吸引度矩阵,设立每个任务的吸引度阈值,设定约束条件,求解双目
标优化模型。
2.3 问题三的分析
问题三考虑到将位置比较集中的任务联合打包分布,因此,首先应当基于任
务的经纬度信息,给出一个合理的打包方案,即如何判断哪些任务应当被打包发
布。我们利用聚类分析法的思想,依据任务的地理坐标对任务进行分类,确定一
个合理的打包方案。
依据打包方案将任务进行联合打包后,问题三实质上就可以转化为大致等同
于问题二的双目标优化定价模型,要想对前面的定价模型进行修改,首先要明确
将任务打包处理后会对哪些因素产生影响从而影响到定价。经分析可知打包处理
后的任务与之前的任务相比,任务与会员之间的距离矩阵、任务对会员的吸引度
矩阵、任务吸引度阈值均会发生改变,从而影响到优化定价模型的约束条件,最
终将影响目标函数的求解,即定价方案。我们基于双重聚类分析给出的打包方案
求解出新的距离矩阵、吸引度矩阵以及阈值,对前面的定价方案进行修改,给出
任务联合打包发布情况下的优化定价方案。
2.4 问题四的分析
问题四要求给出附件三中的新项目的任务定价方案,任务数据只有位置信息。
考虑任务定价方案基于模型三的定价模型。模型三的结果与决策变量之间存在潜
在机制,找到模型三影响定价与完成情况的因子之后,把影响因子的数值与定价、
完成情况作为 BP 神经网络的训练样本,从而建立 BP 神经网络预测模型,仿照
模型一和模型三,对新任务分别进行聚类分析,得到影响因素的值,并作为神经
网络预测样本。然后通过预测就能够得到新任务打包下的定价以及相应完成情况。
三、基本假设
1.假设会员在预定任务时,优先预定对其吸引度最大的任务;
2.假设当多个会员同时想预定同一任务时,信誉值最高的会员优先获得该任务;3. 假设题目给出的数据真实可靠。
四、符号说明
五、问题一的模型建立与求解
5.1 问题的分析
问题一首先要求我们根据一项已完成项目的任务数据中的每个任务的位置、
定价和完成情况来分析任务定价规律,首先,为了清晰直观地观察每个任务的位
置与定价信息,将每个任务的经纬度信息导入百度地图,做出每个任务的经纬度与定价的三维拟合图,通过观察得到直观的定性规律。
每个任务的定价受到其周围任务的数量、会员的人数分布及其信誉属性的影
响,为了定量分析这种影响,首先将每个任务的位置信息,即空间数据,进行离
散化处理。找出任务所在的经纬度范围作为总区域,将总区域划分为若干单位网
格,以便统计每个网格内的任务数据与会员数据。由于任务分布范围较广,定价
规律可能存在分布区域间的差异,因此,根据任务的经纬度坐标对这些散布的位
置点进行 K-Means 聚类分析,得到位置分布相近的任务簇与中心点。接着,确定
对任务定价产生影响的四大因子,根据空间数据离散化处理与 K-Means 分析的结
果将影响因子量化。得到影响因子的数值后,结合任务的定价数据,利用灰色关
联度矩阵来分析每个影响因子与任务定价之间的相关度,得到任务定价规律的量
化结果。
最后,由于未完成任务与已完成任务的相关度矩阵之间一定存在某种差异,
通过比较它们之间的差异找出任务未完成的原因。具体的思路流程图如下:
5.2 模型的建立
5.2.1 基于地图拟合的定性分析
首先,将附件一中提供的已结束的每个任务的经纬度数据导入 EXCEL 表格中,
并进行相应的数据处理,检验并排除掉异常数据之后,将得到的任务经纬度数据
通过地图无忧”网页建立图层,并导入百度地图中,任务的经纬度数据和地图
拟合图如图 1 所示:
根据该项目各个任务在地图上的分布状况,我们可以清晰直观地观察到各个
任务的位置信息,直观的结果显示在城市中心任务数据拟合点密集程度高,因此
为了进一步观察每项任务的地理位置与其定价的信息,利用 Matlab 的曲线拟合
工具箱 CFTOOL 做出每项任务的经度、纬度以及定价状况的三维曲线拟合图,如
图 3 所示:
中心点时,只有当任务定价足够高时才会有人来完成,所以最终原因是由于任务
定价偏低造成的,因为任务的定价低于会员能接受的最低价格,所以该定价不合
理,导致这个任务无人问津。
六、问题二的模型建立与求解
6.1 问题的分析
问题二要求我们为附件一中的项目设计新的定价方案,首先新的定价方案应
当满足两个优化目标,即成本最小化,任务完成率最大化。从而将这个问题转化
为双目标优化问题。
考虑到任务发布与被预定和完成的现实过程有着较为复杂的约束条件,我们
以会员开始预定任务的时间点作为划分,附件二中会员开始预定任务的时间区间
为[6:30,8:00],时间间隔为 3 分钟,因此会员开始预定任务一共有 31 个时间点。
下面,我们将根据题目所给条件模拟每个时间点任务被预定的情况进行全面而充
分的分类讨论。
为了使得问题的分析适当简化以及保证模型的合理性,模型的建立基于以下
规则:
ⅰ).每项任务对于每一位会员都有特定的吸引力值,任务的定价越高、与会员的
距离越近,其对会员的吸引力就越大。
ⅱ).当会员在某时间点开始预定任务时,假设一次只能预定一个任务,不能同时
预定多个任务,并且每次预定时都选择对自己吸引力最大的任务。
ⅲ).当多个会员在同一时间点选取同一任务时,信誉最高者优先获得该任务。
ⅳ).如果会员的预定次数多于一次,在一次任务预订成功后,可以继续预定任务。
ⅴ).根据附件一中已完成项目的任务数据,可以求出任务吸引度的阈值,只有一
项任务对会员的吸引度不小于阈值时,会员才愿意预定任务并完成。具体思路流程图如下:
6.3 双目标优化模型的求解
6.3.1 模型求解分析
新的任务定价方案模型是在全面考虑约束条件下,建立的大型双目标优化模
型。模型的的解即长度为 835 的一维定价矩阵,是通过竞争、分配、时间列准则
等个各个约束的限定,得到的满足目标函数的全局最优解。
但是模型的最优解的长度较长,约束条件复杂,如吸引度阈值、吸引度等各
个约束变量都是维度较大的矩阵,一方面即使在约束条件下对两个目标分别求解
是比较困难的,很大程度的原因在于模型中变量太多,尤其是模型的约束条件中
包含了时间列的动态变化准则,这种限制使得模型的变成非线性而且不易求解的
复杂数学模型;另一方面,从算法角度考虑, 为了得到最优的任务定价方案,
需要对任务的定价在一定范围内进行遍历并作为最外层循环,同时在内部也有吸
引度、阈值等大型数据矩阵以及内层循环遍历,进而使得算法的复杂度程指数上
升,这对算法运行时所需要的时间资源和内存资源存在很大要求。
因此综合考虑算法复杂度以及程序的运行实现,采用分布逐级优化的策略,
在算法中对模型中的约束进行一定简化,并做出适当假设,在存在一定误差之下,
得到全局最优解的近似解作为模型最优解,即任务定价方案。
6.3.2 模型求解步骤
Step1:预先设置任务定价
将任务的定价直接进行设定,并进行分组对比,通过得到的任务成本和任务完成率两项指标,从而确定一种局部最优解,作为最终近似解。
Step2:吸引度矩阵确定
通过计算会员与每个任务之间的距离,根据模型二和问题一,由吸引度计算
公式得到每个任务对于每个会员的吸引度矩阵。
Step3:时间刻准则
满足不同时刻不同情况的约束条件,通过建立 for 循环,将 6:30 时刻转换
为编号 1,依次递推,至 8:00 编号 31,通过循环遍历,满足不同时间可选择预
定人数不同的约束。
Step4:目标任务确定
从时刻编号 1 开始,通过对释放能够预定任务的会员,相应的在该时刻能够
预定的任务中,通过遍历吸引度矩阵,找到最大吸引的任务,并记录位置。
Step5:冲突判断
判断位置记录矩阵中,是否存在数值相等的情况,即判断是否存在冲突。若
发生冲突,则对会员的信誉值进行比较,从而确定一个优先选择,即信誉高的会
员得到此次任务预定权。
Step5:方案及完成度结果
通过对时间和任务预定数的遍历,得到最终任务完成度矩阵,并输出任务完
成度数值,同时输出预先设定的任务定价矩阵。考虑到对复杂度和运行时间降低,
不采用对定价进行遍历的方式,而通过对任务定价矩阵的不同设置得到几组不同
结果,从而对比分析得到近似最优解。
6.4 模型求解结果
在对模型求解时,设定几组不同的价格调整比例,得到 835 个任务的定价以及任务完成度,由于结果数据庞大,此处只展示部分结果:
在模型二给出的定价方案下,四组的成本及完成率情况如柱状图所示,其中
蓝色的值表示成本的万分之一,黄色的值表示任务完成率。综合考虑目标函数的
优化结果,选择第 3 组的任务定价方案作为最优定价方案。
此时总成本为 54488 元,任务完成率为 0.8455,与原定价方案相比,成本节
省了 5.58%,任务完成度提高了 35.25%。
七、问题三的模型建立与求解
7.1 聚类分析确定打包方案
问题三考虑到将位置较为集中的任务联合打包发布,从而提高了任务完成的
效率。因此,我们首先需要根据任务的位置信息判断哪些任务的位置分布较为集
中,从而确定打包方案。附件一给出的任务位置信息即为经纬度数据,首先,将
经纬度的数据作为地理位置的定量分析数据,利用聚类分析的方法,从位置分布
上对任务进行准确、细致的分类。此时,位置分布比较集中的任务会被自动归为
一类。我们将分析聚类结果的合理性,对于合理的分类,直接将此类中的任务联
合打包。对于不合理的分类,我们将对分类结果进一步调整后再打包。
Step 1:第一层聚类分析
首先,我们对聚类分析的分类数进行大致估算,由于任务总数为 845 个,将
任务按照位置信息分为 150 类时,平均每一类大约有 5—6 个任务,这个数值比
较合理。因此,初次聚类时,将任务的位置分布分为 150 类,利用 Matlab 的
K-Means 命令得到的聚类分析图:
任务打包方案应当考虑两方面的问题:一是联合打包的任务应该在位置分布
上较为集中;二是一个任务包内的任务数量应当合理。我们假设一个任务包内的
任务数量取值范围为[2,15]。该聚类结果保证了一类中的任务在位置分布上较为
集中,下面来分析每个任务包中的任务数量是否符合假设。下图为每一类中任务数量的统计图:
八、问题四的模型建立与求解
8.1 问题四的分析
问题四要求给出附件三中的新项目的任务定价方案,任务数据只有位置信息。
首先考虑,新项目的任务定价方案基于之前建立的定价模型。根据模型三的得到
的结果,是在同时满足打包和多目标优化情况下的结果,因此客观反映了定价及
完成情况与决策变量的规律,所以考虑基于模型三的结果,建立神经网络预测模
型四的结果。
在问题二的双目标优化定价模型中,任务的位置信息决定了任务与会员之间
的距离矩阵,从而影响到任务对会员的吸引度矩阵及其阈值,对应着一个最优定
价模型。在问题三中,通过将位置较为集中的任务打包,产生了许多任务包,每
个任务包对应着一个中心点,将中心点的地理坐标看做是这个任务包的位置信息,
从而改变了任务的原有位置信息,通过修改距离矩阵、任务对会员的吸引度矩阵
以及任务的阈值,可以进一步优化双目标定价优化模型。
通过分析问题二与问题三中定价方案的决定因素可知,在前面建立的双目标
优化定价模型中,只需要利用任务的位置信息与会员的位置与信誉值信息,就可以得到最优定价方案。因此,在给出附件三中新项目的定价方案时,可以利用与问题三类似的定价机制与打包方案,但附件三中新项目的部分任务经纬度坐标与
附件一中的差别较大,为了消除这种地理坐标差异的影响,将任务的位置信息在
地理坐标上的绝对差异转化为不受其影响的相对量。
在问题一中,曾依据附件一中的任务经纬度坐标将其分为四类,同样地,根
据新任务的经纬度坐标,对其进行聚类分析,将新任务分为四类。然后,利用问
题三中设计打包方案的聚类分析法对新任务也进行联合打包发布。新任务中每一
项任务都位于四类区域之一,计算每一项任务到其所属区域中心点的距离。
8.2 基于多层聚类的神经网络模型建立
仿照模型一确定任务的四类基本聚类中心,然后参照模型三对所有任务进行聚类,即把
任务进行打包。根据模型三,知道结果满足与决策变量的可观规律,因此取任务的经纬度和
到基本聚类中心的距离最小值作为决策变量。把模型三中的决策变量和被解释变量作为训练
数据,根据附录三聚类打包得到的新任务集合,得到神经网络的预测自变量,从而根据已经
训练好的神经网络,预测出最终定价方案和任务完成情况。
8.2.1 根据任务位置分布进行 K-Means 聚类分析
根据在百度中标出的任务的位置分布可以看出任务大致分布在广东省的南
部,呈现出部分集中,相对分散的特点。位置的地理位置分布在很大程度上会影
响其定价,在城市中心地带,交通便利,人口密集,商业繁华,因而分布着大量
的任务,并且任务定价相对较低。据此可以推断,任务的位置距离其所处区域的
密集分布中心点的距离会影响其定价。
仿照模型一确定任务的四类基本聚类中心,然后参照模型三对所有任务进行聚类,即把任务进行打包。
九、模型的评价
9.1 模型一
优点:
1.从定性与定量的两个角度分析任务的定价规律,通过图像直观清晰地观察定价
的定性规律,再定量给出影响因子对定价规律的影响程度。
2.利用空间数据离散化的思想,将任务分布的经纬度区间划分为等面积的网格区
域,便于统计每一个网格区间内的任务与会员的相关数据,计算影响因子的数值。
3.对任务的位置信息进行 K-Means 分析,将其划分为四类,得到每一个任务到相
应中心点的距离,相当准确、细致地定量分析了任务与中心点之间的距离这个影
响因子对定价规律的影响。
4.灰色关联分析很好地避免了多元回归分析中拟合度较低的问题,系统地定量分
析了四大影响因子对任务定价规律的影响。
缺点:
1.各影响因子之间不可避免地存在相关性,未能充分考虑到影响因子之间的交互
作用。
2.考虑每个网格区域内的任务与会员数据时,对于分布在网格区域边界周围的任
务而言,会影响定价影响模型的精度。
9.2 模型二
优点:
5.建立任务对用户的吸引度矩阵,通过计算与比较得到每一个任务的吸引度阈值,
提供了每一个任务能否被完成的判断准则。
6.在设立模型约束条件时,不仅从企业的目标优化角度考虑,同时考虑到每位会
员不同的信誉值以及与之对应的预定开始时间和预定限额,模型的建立十分符合
任务被预定的实际情形。
7.以 6:30 作为开始时间点,以 3 分钟作为间隔,以时间为顺序考虑每个时间点
的情形,思考深入而全面。
缺点:
3.考虑的情况太过庞杂,需要获取的数据量十分巨大,给模型的求解与算法的实
现带来了相当大的困难。
4.吸引度矩阵中元素的计算公式以及吸引度阈值的确定存在一定的主观性。
9.3 模型三
优点:
8.在考虑任务的位置分布时,利用位置的经纬度坐标进行聚类分析,使任务的打
包方案设计准确又全面。
9.对于第一次聚类分析打包的任务过多的情况,将这一类里的任务提取出来做二次聚类分析。运用二重嵌套聚类分析的方法,想法大胆又合理,保证打包方案的全面性与可行性。
10.将设计的打包方案与问题二中的优化定价模型相结合来求解问题三,使得每
一问之间环环相扣、层层递进。
缺点:
5.在任务分布稀疏的地区,聚类分析得到的一类任务包中的任务位置并非那么集
中,对定价方案的设计存在一定影响。
9.4 模型四
优点:
1.问题四中新项目的定价利用问题二、三中的定价模型与打包机制,利用问题三
中的定价方案数据,通过 BP 神经网络预测法给出新项目的定价方案,想法新颖
大胆,又具有合理性。
2.新项目的任务定价方案确定是基于问题一、二、三的分析与结论的,很好地检
验了前面模型的合理性与正确性。
缺点:
1.利用 BP 神经网络预测出新的任务定价时,会忽略其他一些因素对定价的影响。
十、参考文献
[1]杜剑平,韩中庚,“互联网+”时代的出租车资源配置模型[J],数学建模及
其应用,2015,4(04):40-49+85. [2017-09-17].
[2]姜启源,谢金星,叶俊,数学模型(第四版),北京:高等教育出版社,2011.1
[3]卓金武,李必文,魏永生,秦健.MATLAB 在数学建模中的应用,北京:北京航空航天大学出版社,2014.9
附录
%每一个任务所在网格内任务总数求解
function [Num ] = wangge( )
data=xlsread('D:\附件\附件一:已结束项目任务数据.xls');
x1=data(1:length(data(:,2)),1); %取任务的经度
y1=data(1:length(data(:,2)),2); %取任务的纬度
scatter(x1,y1,'.')
max1=max(x1);
min1=min(x1);
max2=max(y1);
min2=min(y1);
d1=(max1-min1)/50;
d2=(max2-min2)/50;
grid on
hold on
[x,y]=meshgrid(min1:d1:max1,min2:d2:max2);
plot(x,y,'k',x',y','k'); %将地区按照 50×50 网格化
axis tight
Num=[];
number=0;
for m=1:length(x1) %对每一个任务遍历
for i=0:50
for j=0:50
%找到每一个任务,对应的网格区域
if (x1(m)>=(min1+i*d1)) && (x1(m)<(min1+(i+1)*d1)) && (y1(m)>=(min2+j*d2))
&& (y1(m)<(min2+(j+1)*d2))
%在满足某一个任务所在区域内,遍历寻找该任务所在的网格内的任
务总数
for t=1:length(x1)
if (x1(t)>=(min1+i*d1)) && (x1(t)<(min1+(i+1)*d1)) &&
(y1(t)>=(min2+j*d2)) && (y1(t)<(min2+(j+1)*d2))
number=number+1;
end
end
Num=[Num,number]; %记录每一个任务所在的网格内的任务总数
number=0;
end
endend
endend
function [ r] = huiserelation(x )
n1=size(x,1);
for i=1:n1
x(i,:)=x(i,:)/x(i,1);
end
data=x;
consult=data(5:n1,:);
m1=size(consult,1);
compare=data(1:4,:);
m2=size(compare,1);
for i=1:m1
for J=1:m2
t(J,:)=compare(J,:)-consult(i,:);
end
min_min=min(min(abs(t')));
max_max=max(max(abs(t')));
resolution=0.5;
coefficient=(min_min+resolution*max_max)./(abs(t)+resolution*max_max);
corr_degree=sum(coefficient')/size(coefficient,2);
r(i,:)=corr_degree;
endend