MATLAB社区

MATLAB、社区和更多

圣安德鲁斯大学程序设计竞赛的结果

上个月我们与卢克·伦德尔和埃琳娜最后的圣安德鲁斯大学程序设计竞赛(主持CumulusContest.org)。这是仿照我们的老MATLAB编程比赛。

我的工作是提出了一个挑战。这里是:链,线圈的地板上一盒。例如,假设我给你这链。每个链接,或珠,是一个不同的大小来表示,它有不同的重量。


你的工作是把箱子紧链;与重位,尽可能集中在中间。即便如此,连锁店必须躺在一个平面和蛇通过盒子只使用直线段或90度转弯。

这里有一个例子用MATLAB代码。你会如何安排这个链吗?


你可以看到足够轻松,我们想把最重的重量在中间。所以最佳的重量分布是这样的。

现在假设你是鉴于这种链。重量是一样的,但在一个不同的顺序。

最佳的重量分布是相同的,但链的蜿蜒的路径是不同的。

所以你得到的基本思想。但问题就更难解决链变长。鉴于这种链,你如何写一个算法快速高效地折叠吗?

以下是比赛的获胜者。不坏!


这是一个极坏的问题。比赛的参与者无法详尽测试他们的答案。首先,组合被它们是什么,宇宙中没有足够的时间是完全详尽的。另一件事,我们给他们只有50秒解决100多家这样的问题。

我留下了深刻的印象的人编码解决方案。金宝搏官方网站不仅仅是解决方案,金宝搏官方网站但很多,很多好的。它们都可用于检查站点。这是一个阴谋的所有条目。总数有1148项,其中841过去了,收到了成绩。在这些条目89领导人。

红线运行底部穿过每一个领导人。算法一开始很小,但随着比赛的进行。这是一个阴谋的代码大小。

我将完成一个特别有趣的动画种链:一组相等的权重由长时间空的电缆。这让一些美丽的迷宫一般的结果。这是开始链。你怎么集群那些珠子中间吗?

下面是一个动画的结果通过24个不同的主要算法。我不显示所有的领袖,因为他们中的许多人都速度改进,并没有改变链的布局。

敬请期待…我明白了圣安德鲁斯的人想要运行更多的比赛!当他们这样做了,我相信他们会宣布在他们CumulusContest网站。

和往常一样,感谢每个人玩!

|
  • 打印

评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。