敷地内トラック

前ポストからなんとなく磯部さん用のtipですが、敷地内の周回トラックの中心線を探す、という問題で

  1. 敷地内の建設saftyエリアをランダム点群、もしくはグリッド点群で離散化する
  2. 指定した数の点を点群からランダムに選ぶ
  3. 選んだ点でトラックを生成する
  4. そのトラックを評価

という流れを考えていましたが、3. が一意に決まらない(どの順番で辿るか、という組み合わせが爆発する上に、辿る順番の問題は辿った距離総長を短くする、という評価で考えられることが多く、今回の問題設定と相性が悪い)ので、問題に対する解が得られにくいと思いました。そこで、3. の改良として このポストのfeatured imageのように、

  1. 敷地内の建設saftyエリアをランダム点群、もしくはグリッド点群で離散化する
  2. 指定した数の点を点群からランダムに選ぶ
  3. あらかじめsaftyエリアの各コーナーに点を打っておく
  4. その点を使って敷地バウンダリーから作られるプレーンなトラックを作る
  5. 選んだ点、各点がプレーンなトラックに最寄の位置にプレーンなトラックのコントロールポイントとして挿入しトラックを曲げる
  6. そのトラックを評価

としたほうが、目的に近づけるのではないかと思いました。

dropbox/AdaptiveMorphology_studio/20160614/tip_isobe20160616.gh
dropbox/AdaptiveMorphology_studio/20160614/tip_isobe20160616.3dm

をおいておきます。とりあえず簡素にできたトラックの長さの最大化でfitness、になっていますが、部屋数とトラック総長を短く、などの評価で実際的なアプライを試してみてください。
トラックのカーヴの自己交差をどのよに排除するか、は悩ましいようにも思いますが、セルを生成させて部屋の広さに条件付けした部屋数で評価すると、交差したカーヴは自動的に評価が低くなるのではないかと想像しています。
トラックの中心線をどのようにレイアウトするか、という問題はかなりこの計画の根幹だと思います。この中心線の良し悪しによって、上部構造や部屋数、周遊性、ネットワークコンパクトネスなどすべてを左右するので、かなり徹底的に「中心線探し」をやるべきだと思います。

 

Comments are closed.