周长最短面积最大_均分田地,田埂最短问题

# 绪论

在均分田地问题中,gxqcn提出了如下问题

有一块田地需要分给n户家庭,要求各户分得面积都相等。田地内部不同家庭分得的区域将建田埂以分隔(原待分地已有田埂圈定)。现为实现耕地面积最大化,要求新建田埂总长度最小。请问如何规划?

<!--more-->

关于这个问题的三维问题,存在Plateau's laws。

在这块田地是单位正方形,对于n=3,4,5, KeyTo9_Fans分别给出了很不错的结果:

n=3时, 田埂总长度可以仅为

=1.623278144157(我们可以搜索到法语论坛相关讨论得出了相同的结果)

c00299d584543e8c1bf9141e9e9c4d29.png

n=4时,田埂总长度可以仅为

=1.975592884782 (我们可以搜索到意大利语相关讨论得出了相同的结果)

e858064d69580e8d84f5a0e343277293.png

n=5时, 田埂总长度可以为

=2.502112930427(可以网络找到Martin Gardner包含相同的结果)

df4ec1d226f4f52898bc5e26b7a3c6c5.png

对于单位圆形田地,在n=3时,从圆心发出三条两两夹角互为120°的半径就可以等分面积,总长度为3。

在n=4时,我们给出了田埂总长为3.945702967267的方案

ff56f8add24f239ce3527264bd9bcc80.png

在n=5的圆形田地,我们找出了田埂总长为4.833846643527的方案

faa3538d4505468fadcaadedc13f456f.png

在n=6的圆形田地,我们找出了田埂总长为5.406796929952的对称方案。

5caed9691717c05a33341bd7cc052575.png

在n=7的圆形田地zgg__和数学星空指出在田地正中心使用正六边形,每个顶点向圆周引垂线可得田埂总长为6的方案。

在帖子中,很早就有人发现每段田埂应该是直线段或者圆弧;在区域内部,三条田埂相交于一点时,交点处切向量两两夹角为120°;而且田埂和田地边界相遇时在相遇点的切线要和田地边界在相遇点的切线垂直。后文中,我们会直接用俩田埂的夹角为120°来表示俩田埂相遇于一个交点,而且在交点处的切向量夹角为120°;同样我们会直接用田埂和田地边界垂直代表田埂和田地边界相遇并且在相遇点两者切线相互垂直。

KeyTo9_Fans最早指出田埂两两夹角为120°。他的思路是如下图,在仅考虑三条田埂相交于点P的情况,分别在三条田埂上各自选择充分接近P点的A、B、C三点。为了达到田埂总长最小值,P点应该移动到三角形ABC的费马点才会让AP+BP+CP取到最小值,由此得出AP、BP、CP两两夹角应该为120°。但是这里稍微有点不严密,因为图中这种移动P到P’的方式会改变周围三个区域的面积,而我们的问题中要求所有区域的面积要求是相等的。

232a90acd79612921f938f138653b2a0.png

zgg__最早指出,本问题等价于二维肥皂泡稳态问题],由此得出每段田埂都必须是圆弧或直线段,而且两两夹角为120°;hujunhua进一步指出利用肥皂泡模型可以说明和田地边界相遇的田埂必然垂直于田地边界;gxqcn紧接着指出在区域数目n充分大时,内部区域应该出现“蜂窝”状。

我们对上面情况进行总结,并且尝试用数学方法进行证明:

i)田埂每一段必然是圆弧或直线段(可以看成圆弧的退化情况)。

ii)在内部,最多三个不同的田埂共点,这时田埂之间必然两两夹角相等

iii)田埂和边界接触的地方必然同边界垂直

其中性质i)可以直接用初等方法证明。我们可以利用一个大家所熟知的结论:面积一定的简单平面图形中,圆的周长最短。利用这个结论可以得出一侧为固定线段,另一侧为任意简单曲线围成的面积一定的图形中,在另一侧任意简单曲线为圆弧时,这条简单曲线长度达到最短。

648b8eb88c72bcd17fd68e26e936b9b0.png

如上图所示,对于围住的面积固定的曲线BAC和固定直线段BC,我们先以线段BC为弦作出和这个图形等面积的弓形BA’C并且补充弓形BA”C形成一个完整的圆BA’CA”。于是图形BACA”和图形BA’CA”等面积,于是我们根据等面积图形中圆的周长最小可以得出(BA"C) ̂+(BA'C) ̂≤(BA"C) ̂+(BAC),所以我们可以得出(BA'C) ̂≤(BAC),得出结论i)。 于是我们得出极值条件所有田埂都是圆弧或直线段(直线段是圆弧的退化情况)。

后面我们均只需要考虑所有田埂都是直线段或圆弧的情况。

对于其中任意一个三条田埂汇聚于一点的

的情况,假设这三段田埂另一个端点分别为
, 而三段圆弧和对应端点连线的有向夹角分别为
(对应三段圆弧的弧度分别为
)。 其中圆弧关于P点向顺时针方向凸出(也就是对应圆心落在对应直线段的逆时针位置时)对应的
看成是正角度;而圆弧逆顺时针凸出时,对应的
看成是负角度,比如图中所示
为负角度,
为正角度。另外需要注意的是,一段田埂在一个端点处的角度为
,那么在另外一个端点处的角度必然是

ffebe95093f61f2ab3c383bd22dc5eee.png

使用拉格朗日乘数法,选择A、B、C三点固定不动,仅让P点保持运动并且让P点周围三个区域的面积保持不变,要求三条田埂长度之和最小,可以得出一些约束方程,

最后可以把极值约束条件化为

(I)

其中

上面约束条件(I)中第一条方程代表三段圆弧(或直线段)有向曲率之和为0。而后面两条方程代表三段圆弧在P点处单位切线向量之和为零向量,所以它们两两夹角都相等,均为120°(P点同时为三个单位切线向量末端构成三角形的外心和重心,所以这是一个正三角形)。

对于边界为直线段构成的凸田地,可以想象如果某个田埂的一个端点落在田地边界上,那么将整个田地和所有田埂关于这个边界线做对称图形,然后把原图形和对称图形合并在一起并且将仅被这条分界直线段分隔的区域相互合并,于是变成一个关于更大的田地更多区域的固定面积最优化问题,结果同样需要满足类似的约束条件。于是我们可以看出在原问题中,这个田埂必须垂直于田地边界才符合要求。

另外我们推导了田地边界是圆弧构成的情况,同样得出了和边界相遇的田埂必须垂直于圆弧田地边界的条件。

34e39adc29f32aa20ee2e383324b3e5f.png

如图,不妨设田地边界这一段圆弧为单位圆的圆弧,设田埂在边界上点为

,田埂另外一个端点为点
,圆弧和俩端点连线夹角为
。并且设P点极坐标为
, 得出的约束条件为

(II)

这个条件正好就是要求田埂(UP) ̂垂直单位圆田地边界于U点。

利用上面分析结论我们使用计算机将正方形田地均分到最多14个区域并且将圆形田地均分到最多19个区域.

但是很快我们发现英国数学家Simon Cox已经计算到42个区域以内的非常不错的结果。

后来我们利用pari/gp计算出了圆形情况不超过43个区域下的50位精度的高精度结果。

另外我们还继续计算得出将圆形划分44~52个区域时的不错结果,如下面是将圆形田地划分为44个区域的划分方案图:

439d76113bd174157fb34fbc69ac7a9b.png
更多内容查看...​emathgroup.github.io
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值