Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 直线上距离平方和的极小化_Algorithm - Fatal编程技术网

Algorithm 直线上距离平方和的极小化

Algorithm 直线上距离平方和的极小化,algorithm,Algorithm,一条新街道上总共有n栋公寓楼。邮政部门想在街上放一个邮箱。他们的目标是将居民每天收集邮件所需步行距离的总平方减至最小 一号楼有r[i]居民,距离一号楼的起点距离为d[i] 街道。设计一种算法,计算邮箱距离街道起点m,使居民前往邮箱的总距离平方最小 我的计划是根据与街道起点的距离对建筑物进行分类。然后,找出居民总数并计算中位数。然后将邮箱放置在与居民中间带相对应的建筑物上。这是解决问题的正确方法吗?您希望最小化: sum(r[i](m-d[i])^2) 要解决此问题,请区分m: sum( 2.r

一条新街道上总共有n栋公寓楼。邮政部门想在街上放一个邮箱。他们的目标是将居民每天收集邮件所需步行距离的总平方减至最小

一号楼有r[i]居民,距离一号楼的起点距离为d[i] 街道。设计一种算法,计算邮箱距离街道起点m,使居民前往邮箱的总距离平方最小

我的计划是根据与街道起点的距离对建筑物进行分类。然后,找出居民总数并计算中位数。然后将邮箱放置在与居民中间带相对应的建筑物上。这是解决问题的正确方法吗?

您希望最小化:

sum(r[i](m-d[i])^2)
要解决此问题,请区分m:

sum( 2.r[i].(m-d[i]) )
要查找最小值,请将导数设置为0:

0 = sum( 2.r[i].(m-d[i]) )
m.sum(r[i]) = sum(r[i].d[i])
m = sum(r[i].d[i]) / sum(r[i])
i、 e.m是距离的加权平均值


(如果你想最小化绝对距离之和,那么答案将由中位数给出。)

否。拿一张图表纸,在x轴和y轴上贴上标签。把邮箱放在街道的一端。计算居民必须步行到邮箱的总(加权)距离平方和。在图纸上的
(0,y(0))
处标记一个点。将邮箱移动到街道另一端距离的十分之一。在图形上的
(0.1,y(0.1))
处标记一个点。一直重复到街道的另一端。你刚刚画了一条有点像抛物线的曲线。您的任务是找到将
y
最小化的
x
的值。如何基于
r[i]^2*d[i]^2
的值进行排序,因为这是最小值,然后选择该值的中值?简而言之,您希望最小化加权平方距离。