2013-10-05 28 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