我手邊有一個分配問題,我想知道應用本地搜索技術以達到理想的解決方案(搜索空間相當大)是多麼合適。繪製圖形的遺傳算法?位置分配問題
我有一個有向圖(流程圖),我想以一種非常清晰,易於理解且易於通過人眼來閱讀的方式在2D平面上進行可視化。因此;我將爲每個頂點分配(x,y)位置。我想使用模擬退火,遺傳算法解決這個問題的,或者任何這樣的方法,則可以建議
輸入:圖G =(V,E)
輸出:一組分配, {(xi, yi) for each vi in V}
。換句話說,每個頂點將被分配一個位置(x,y),其中座標是所有整數,並且> = 0.
這些是我將用來判斷解決方案的標準(我歡迎任何建議):
- 編號相交邊緣應該是最小的,
- 在一個方向上所有的邊緣流動(即,從左至右),
- 高角分辨率(由兩個邊緣上相同的形成 入射到最小角度頂點),
- 小a至少重要。
此外;我有一個初始配置(指定頂點的位置),由手工完成。這是非常混亂,這就是爲什麼我試圖自動化過程。
我的問題是,
將如何明智的是去當地的搜索技術? 它會產生預期結果的可能性有多大?
我應該從什麼開始?模擬退火,遺傳算法 還是別的?
我應該在開始時隨機播種或使用最初的 配置開始?或者,如果你已經知道類似的實現/僞代碼/東西,請指向我。
任何幫助將不勝感激。謝謝。
編輯:它不需要很快 - 而不是實時。此外; | V | =〜200,每個頂點平均有大約1.5個出邊。該圖沒有斷開連接的組件。它確實涉及週期。
繪圖圖表的主要任務是什麼?在圖形繪圖上已經有很多研究,您應該閱讀首先...如果這不是你的主要任務,那麼只需使用一些現有的庫來完成繪圖部分。 – Szabolcs
有你發現了一個解決方案,如何在基因中存儲座標和邊緣以創建不那麼複雜的遺傳算法?我的意思是你決定把它作爲一個字符串存儲爲1,0值,或者你已經找到了一個解決方案如何存儲座標和邊緣? – kuldarim