私は部屋のコレクションを持っています。それぞれの部屋は北西部、南部、東部、西部の主要な方向から1つ以上の別の部屋に接続されています。客室は、AがBの西、BがAの東にあるように接続されています。したがって無向グラフ。今私は部屋のコレクションを取って、それらを座標平面上にグラフ表示する必要があります。すべてのエッジは、XまたはY軸に平行でなければなりません。次のようにこれまでのところ、私はいくつかの異なるアプローチを試してみたが、私が最も効果的だと思いプロジェクトを間違った方向に循環的に表示する
は次のとおりです。
- は、「センター」を見つけて、それを割り当てます(0,0)(和のための部屋他のすべての部屋への最短経路の長さは最小です)。これが本当に必要なのかどうかはわかりませんが、出力をより簡単にすることができます。
- 中心Cおよび各部屋Rについて、座標(X、Y)を割り当てます。ここで、Pは座標平面上の最大変位をもたらすC => Rを結ぶパス、Xはネット水平Pに沿って移動し、Y P.
に沿って正味の垂直移動が指示するための以下のベクター想定される: 北= [0,1] サウス= [0、-1] イースト= [1、 0] ウエスト= [-1,0]
まず、お返事いただきありがとうございます。私は研究の前にトポロジカルソートに踏み込んでいましたが、それはDAGにしか適用されないと考えました。アルゴリズムの目的のためにグラフがDAGであることを「ふりをする」と言っていますか? – Taylor
@Taylorはい、南北のリンクは北を指す有向リンクであり、東西リンクは西を指す指向リンクであると言っています。 – mcdowella