2014-05-11 70 views
2

與某些包裝問題有關,出現以下問題:單位圈內10點 - 通過D3力佈局找到最佳分佈?

在邊1的正方形內分佈10個點,以使它們之間的最小距離達到最大。

在D3力佈局模擬或任何其他方法的幫助下,請提供此類分佈的示例,包括正方形和點的圖形表示以及此類分佈的點之間的最小距離值。

最小距離分佈的答案贏得「答案徽章」! :)

(這個問題到目前爲止,據我所知,不能由純數學來解決,所以我來這裏就模擬寶貴和急需幫助等)

回答

1

TL; DR一個最佳的解決方案如下:

[{x: 0,  y: 0}, 
{x: 0,  y: 0.22222}, 
{x: 0,  y: 0.44444}, 
{x: 0,  y: 0.66667}, 
{x: 0,  y: 0.88889}, 
{x: 0.11111, y: 1}, 
{x: 0.33333, y: 1}, 
{x: 0.55556, y: 1}, 
{x: 0.77778, y: 1}, 
{x: 1,  y: 1}] 

朗解釋:(因爲不存在整數雖然名字在這種情況下,有些誤導),就可以解決這個問題作爲一個mixed integer program。其基本模式是非常簡單的:

其中P是點的集合。個別點需要被約束在單位面積內:

sq

的目標則是:

obj

有此問題的許多等同方案,比如,你可以通過旋轉方塊從一個解決方案中獲得另一個解爲了使其更容易解決,我們可以通過對點進行排序來打破一些對稱性:每個點的座標必須至少與其前一個點的座標一樣高。

symm

這意味着我們現在可以使用曼哈頓距離而不是歐氏並沒有計算座標之間的差異,從而消除討厭的廣場時,擔心負數:

dists

將模型輸入到您最喜歡的MIP系統中,然後出現類似上述的解決方案,曼哈頓距離點之間的最小距離爲0.22222。請注意,正如我所提到的,您可以旋轉方塊以獲得不同但等效的解決方案。