戈德堡在现实生活中的机器。对于复杂的机制,动作算法是否复杂?

注意!本文涉及机械/电气Goldberg机器及其操作算法。



我开始以笔记的形式写这篇文章,以期简化长时间但断断续续的“头脑风暴”的过程,因此,本文将在某种程度上以一致的方式介绍在算法构建过程中发明的思想和改进。而且,这只是Goldberg机器本身(一种以非平凡的方式执行简单动作的设备)的总体开发周期的第一个(可以说是“理论上的”)部分,因此将在后续文章中继续进行。
我希望本文会很有趣,并且可能对所有人有用。让我们开始吧。

参赛作品


我想首先简要介绍一下这个想法是如何产生的,以及为什么必须使用Goldberg机器,以及实际上是其作用算法的原因。这只是一个抒情的题外话,因此可以在随后的过渡过程中直接跳过“发展的开始”部分。

十一月的冬季,在国立大学物理系。我和朋友塔拉斯·舍甫琴科(Taras Shevchenko)决定:“我们为什么不做一些有用的事情?我们是物理学家,想出一些很棒的东西并做到这一点对我们来说不是问题。仅两天,您就完成了。”这对小组理论的其余部分都花在试图弄清楚我们将做什么。

我们可以说:“报价巨人”,“显然,从这里开始……”即使定义了我们想做的事情,一切也不是那么简单。最后,找到了答案。我们要开灯。但不仅要打开它,还要仅在开始变暗时才打开它。这似乎是一项简单的任务-无需思考。只需用谷歌浏览两页的“如何去”。但这对我们来说并不有趣。我们想机械地打开灯。也就是说,像霍华德·沃洛维茨(Howard Wolowitz)一样,我们需要国际空间站的帮助。

逐渐地,任务扩展并改变了,慢慢地变成了“ 314种开灯方式”。由于实施的复杂性以及彼此之间根本不可能达成协议,我们逐渐认为这些选择已被放弃。

突然回忆起我的童年时光,他玩了《超人机器》的各种变体,所以我决定这样做很不错。制定有效的机制,不仅有用而且复杂。因此,欢迎来到Goldberg机器的世界!

PS:在下文中,我将创建的机器人称为机器人,而不是Goldberg机器,以保存Shift键的资源。

戈德堡机器和实施选项


Goldberg机器是一种使用复杂且完全不简单的方法执行简单动作的设备。有关此类机制的更多信息可以在Wikipedia上找到,因此,我将不再关注历史信息。

这种机器可以分为两个主要类别:一次性和永久性。在第一种情况下,顾名思义,一个动作只能执行一次,并且该机制的进一步工作需要外部干预。在第二种情况下,只有机械磨损是可能的,这对动作的性能影响不大,并且只会在将来出现。后一种选择显然在生活中特别有用,特别是在有规律的工作周期的情况下,并且由于每天在窗外和房间里天黑,所以最好不要经常“打开”开关。

照明任务


假设光源通过伪装成窗户的一个面中的一个开口照亮一个小实验室大小的封闭的平行六面体形状的空间。考虑到时间被周期性照明确定平均照明对时间依赖性

为了解决这个问题,我们构建一个算法A. 图。 1.确定光照的简单算法 因此,我们仅需2个步骤即可继续进行下一步: 1.获取信息 2.检查它 但是,如果一切都如此简单,为什么还要打扰自己呢?因此,该算法很容易变得复杂。首先,我们将使用一个非常有用的并发症。例如,准确性提高(算法B)。












图2.用于确定照明的复杂算法

1.获取信息
2.验证
3.如果完成2,则请求其他数据
4.获取其他数据
5.验证其他数据
6.继续工作

由于算法的复杂性和获取其他数据的原因,我们可以提高准确性。例如,由于我们打开灯,照明会增加,所以必须关闭灯吗?恐怕我们会如此挂断,路人将茫然不知从窗口来的莫尔斯电码。

现在剩下的只是弄清楚如何使一切机械地复杂化。当我们考虑光时,首先想到的是什么?不是关于白光,而是关于生活中有用的部分,它使生活变得更加美好。

我不知道您的情况如何,但是在我的脑海中立即出现了一个非常复杂的镜,透镜,滤光片和偏光镜方案,因此我们需要它。但是不,我们不会燃烧任何东西。还是我们?这个问题仍在考虑中,因为我们的机器人应该是非常自治的。

然而,您需要从简单开始,否则复杂将永远无法成功实现您想要的方式并过上自己的生活。因此,这是一个用于确定照明的简单算法的3个示例。图3.简单算法的不同实现方案I.电和光电池





最简单的实现之一。以光敏电阻(二极管,晶体管等)为例,该光敏电阻根据光照改变其电特性并将其连接到电路。由于照明的变化,该电阻两端的电压降将发生变化。

二。秤,压力,镜头和水(不可能的算法)
已经是不那么简单的实现,这也需要很高的准确性。少量水以准确的比例倒入水箱中。收集透镜的位置应使水的表面处于焦点位置。在有足够的光通量的情况下,水的蒸发要比没有水的情况下要快一些,这应该可以衡量平衡。不幸的是,从理论上讲,这一切都是好的,但实际上却不可行。此外,将需要使用其他机制或手动定期补充水。

三,镜头,线,重量和计时器(难以重复)
该方案比以前的方案有效得多。随着光通量的增加,位于镜头焦点处的螺纹将被更快地燃烧,这将由计时器固定。不幸的是,该算法需要一种额外的机制来完成有用的工作-减轻负载并拉出新线程(一天多次,每天多次)。

显然,可以发明很多这样的算法,但是以下每一种算法的准确性都不太可能提高,这是我们绝对不需要的。现在,我们的任务是使最准确的算法与验证系统复杂化,以使该机制更接近“理想复杂”的机器人。对于我自己,我个人选择了算法I。尽管如此,我并不声称它是所有可能中最好的。让我们继续进行修改。

我们复杂的算法涉及检查结果的使用。而且由于我们正在开发Goldberg机器,因此以与通常的信息收集相同的方式进行检查既不合逻辑,也不有趣。让我们尝试一些机械修改。

I.1。滑轨和运动标记传感器
。为了简化运动方案,我们假设运动总是在重力的作用下发生,而在外力的帮助下(相反,火车,在童年时代谁没有梦想过铁路?)发生运动。

每次成功检查之后,我们将传感器移至另一点并检查那里的照明。自然,执行后,传感器必须返回到其原始位置。

I.2。滑轨和玻璃球
轨道的第二种用途。第一次检查后,玻璃球会朝传感器滚动,从而由于光的散射或聚焦(取决于传感器和球的相对位置)而改变传感器的照度

I.3。偏光滤光片或频率滤光片(彩色滤光片)
通过用滤光片关闭传感器,可以确定光源(太阳散射或已经打开的灯发出的光)。需要适当了解光源(灯)的光谱或偏振特性。过滤器可以通过各种方法关闭。例如,通过绕垂直于过滤器的某个轴旋转过滤器,或将过滤器降低到更靠近传感器的位置。

“这里的复杂机制在哪里?” -你问。我可以轻松回答这个问题。我们的算法并不从物理上或哲学上限制电路,也就是说,它根本没有限制电路。因此,是什么使我们无法考虑框图中的每个元素都是一个完整的独立电路?

因此,我们继续下一个任务。

机械按钮消失的任务


假设您有一个在一维空间中不断移动的按钮(通常在给定的行上沿任意方向移动)。如何点击呢?

我们为什么需要这个?什么会更有效。如果照明按钮不停滞怎么办?例如,它可以沿圆形路径移动。让我们考虑使用特殊操纵杆按下按钮的方案。图4.杠杆图5.围绕手柄移动按钮的方案 或者我们不能使用一个,而是几个按钮。然后,我们需要单击所需的一个。相反的变化-杠杆移动,我们必须设法在正确的时间按下必要的按钮。图6.带有移动按钮和移动杆的方案












但是,后面的选项也可以用于简单实现该机制的各种功能。

在简单情况下执行的算法与用于确定照明的简单算法相同。复杂度;情况:7.执行机械任务的复杂算法 应当指出,在这种情况下,不可能使机器人的这种“肌肉”算法复杂化。我们只能增加步骤数。 我们需要在算法中分支吗?实施Goldberg机器是否有用?如果我知道的话。但是,机械实现大大限制了算法可能分支的数量,同时将这种效率引入了该算法的执行中。








结论


显然,不需要复杂的算法来实现Goldberg机械。但是,这不会影响性能本身。因此,Goldberg机器是线性的理想代表,因此是最简单的算法逻辑。

PS:我将非常感谢所有知道算法复杂的Goldberg机器的实现选项的人。

感谢您的关注!

Source: https://habr.com/ru/post/zh-CN387805/


All Articles