前ポストからなんとなく磯部さん用のtipですが、敷地内の周回トラックの中心線を探す、という問題で
- 敷地内の建設saftyエリアをランダム点群、もしくはグリッド点群で離散化する
- 指定した数の点を点群からランダムに選ぶ
- 選んだ点でトラックを生成する
- そのトラックを評価
という流れを考えていましたが、3. が一意に決まらない(どの順番で辿るか、という組み合わせが爆発する上に、辿る順番の問題は辿った距離総長を短くする、という評価で考えられることが多く、今回の問題設定と相性が悪い)ので、問題に対する解が得られにくいと思いました。そこで、3. の改良として このポストのfeatured imageのように、
- 敷地内の建設saftyエリアをランダム点群、もしくはグリッド点群で離散化する
- 指定した数の点を点群からランダムに選ぶ
- あらかじめsaftyエリアの各コーナーに点を打っておく
- その点を使って敷地バウンダリーから作られるプレーンなトラックを作る
- 選んだ点、各点がプレーンなトラックに最寄の位置にプレーンなトラックのコントロールポイントとして挿入しトラックを曲げる
- そのトラックを評価
としたほうが、目的に近づけるのではないかと思いました。
dropbox/AdaptiveMorphology_studio/20160614/tip_isobe20160616.gh
dropbox/AdaptiveMorphology_studio/20160614/tip_isobe20160616.3dm
をおいておきます。とりあえず簡素にできたトラックの長さの最大化でfitness、になっていますが、部屋数とトラック総長を短く、などの評価で実際的なアプライを試してみてください。
トラックのカーヴの自己交差をどのよに排除するか、は悩ましいようにも思いますが、セルを生成させて部屋の広さに条件付けした部屋数で評価すると、交差したカーヴは自動的に評価が低くなるのではないかと想像しています。
トラックの中心線をどのようにレイアウトするか、という問題はかなりこの計画の根幹だと思います。この中心線の良し悪しによって、上部構造や部屋数、周遊性、ネットワークコンパクトネスなどすべてを左右するので、かなり徹底的に「中心線探し」をやるべきだと思います。
Comments are closed.