2013-10-05 27 views
5

我需要一些帮助,以解决以下问题:
给定一组电阻,需要构建给定电阻的电路(即我们选择一些电阻和构造电路)。只允许并行和顺序连接。所以,这样的电路的正式定义如下:找到给定电阻的电路

Circuit = Resistance | (Sequential (Circuit) (Circuit a)) | 
(Parallel (Circuit) (Circuit)) 

电路与N-未标记的电阻器的总数量(其中,所有的电阻器被使用)是A000084(感谢阿克塞尔肯珀)。但在我的情况下,电阻被标记,我不知道如何有效地检查所有电路。

电阻的数量约为15,是否可以解决这个问题?

UPD。电阻器可能有不同的电阻。当然,一些阻力是无法实现的,在这种情况下,我们只是说没有解决方案。

+0

你可以看看你是否可以修改A *算法。 – Appleshell

+0

尝试蛮力“回溯”。虽然速度很慢,效率很低,但可以报告是否存在解决方案或不存在 – 2013-10-05 21:25:00

+0

@ us2012:oops,没有看到标题。身体说“计划”,出于某种原因听起来错了。 –

回答

2

整数序列A000084列出了具有n个未标记边的串并联网络的数量。也称为Cayley和MacMahon的轭链。麦克马洪的论文是online

所述序列的第一个15个元件: 1,2,4,10,24,66,180,522,1532,4624,14136,43930,137908,437502,1399068

如果电阻器具有不同的阻力值,它们不是“未标记的”。

不同总体阻力的数量少于网络数量。看看数字,蛮力枚举可能适用于n的中等数值。

不可能完全匹配所有可能的总阻力。如评论中所述:15个电阻的数量可能太小而不能达到所需的值。其他示例:如果所有15个恢复器都有1欧姆,则总电阻不能小于1/15欧姆。

看70页的Analytic Combinatorics找到等价的一棵树,一个括号表达和串并联曲线之间的一个例证:

enter image description here

就像一个评论,搜索提到如A*等程序可用于搜索可能的树木的空间。串并联网络的树形表示对于用简单的递归函数确定信源到接收电阻也很有用。

+0

谢谢你的论文! 在我的情况下,电阻被标记,因为它们可能有不同的电阻。这更具挑战性,因为每个带有N个无标签电阻的电路会产生几个带有无标签电阻的电路(以N!为界)。我不清楚如何生成和检查所有这样的电路。 – pfedotovsky