您的位置:首页 > 编程语言 > MATLAB

曼尔顿假设之MATLAB实现

2016-01-06 10:21 344 查看
by WC 1.6.2016


1.起源

曼尔顿是美国纽约市5个行政区之中人口最稠密的一个,城镇街道类似于正南正北、正东正西方向规则布局的方格子,如下图所示:



所以从A点到B点只能沿着红线或者类似于黄线,蓝线的路径走,而不能沿着绿色走,这里的红线就是曼尔顿距离,绿色代表欧氏距离,也就是直线距离,而蓝色和黄色代表等价的曼哈顿距离。曼哈顿距离——两点在南北方向上的距离加上在东西方向上的距离,即d(i,j)=|xi-xj|+|yi-yj|,同时,曼哈顿距离也称为城市街区距离(City Block distance)。

2.应用

2010年的MCM竞赛中有一道题,要求参赛小组根据以往的作案地点预测连环犯罪的位置。解答这道题的重点是分析犯罪的活动方式,题目的一条假是“犯罪的活动不受限制”,但犯罪在市区的活动,实际上会收到街道布局及街道两旁建筑物的限制。由于街道的布局通常类似于网络,所以我们将用“曼哈顿假设”来描述犯罪的活动方式。

3.MATLAB实现

X= [0 0 ; 1 0 ; 0 2;0 3]          【1】
D= pdist(X,'cityblock')           【2】


【1】:构造 4行2列数组,每一行相当于一个坐标,即有四个坐标A(0,0),B(1,0),C(0,2),D(0,3)。

【2】:pdist(X,distance),X为点坐标的数组,用来获得两个点之间的距离。distance也可以用来表示其他距离,默认的是欧式距离,如果要计算曼尔顿距离,即使用cityblock。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  matlab 数学建模