(57)【要約】【課題】適切な階層構造格子を自動で生成する。【解決手段】分割領域生成装置１０の処理部１２は、複数の第１遺伝情報点セットを生成する。次に処理部１２は、複数の第１遺伝情報点セットそれぞれについて、境界線１上の複数の第１基準点の決定と、複数の第１矩形領域５ａ〜５ｄの生成とを行う。次に処理部１２は、遺伝的アルゴリズムにより複数の第２遺伝情報点セットを生成する。次に処理部１２は、複数の第２遺伝情報点セットそれぞれについて、境界線１上の複数の第２基準点の決定と、複数の第２矩形領域の生成とを行う。次に処理部１２は、複数の第１遺伝情報点セットおよび複数の第２遺伝情報点セットのうちの１つを特定する。そして処理部１２は、特定した第１遺伝情報点セットまたは第２遺伝情報点セットに応じて生成された複数の第１矩形領域または複数の第２矩形領域に基づいて、対象領域を分割する。【選択図】図１
2019159952.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
対象領域内の一平面上での、前記対象領域に配置される物体が占める領域と他の領域との境界線を示す境界情報を参照し、前記対象領域の分割度合いに関連する第１設定値に応じた数の複数の第１遺伝情報点をそれぞれが含む、複数の第１遺伝情報点セットを生成し、
前記複数の第１遺伝情報点セットそれぞれについて、第１遺伝情報点セットに含まれる前記複数の第１遺伝情報点に基づいて、前記境界線上の複数の第１基準点を決定し、
前記複数の第１遺伝情報点セットそれぞれについて、前記複数の第１基準点のうちの１つを含む辺と、前記複数の第１基準点のいずれも含まない辺とで形状が示されており、前記複数の第１基準点のいずれも含まない辺と前記境界線とが、前記境界線との距離を示す第２設定値だけ離れた、複数の第１矩形領域を生成し、
前記複数の第１遺伝情報点セットから選択した被選択第１遺伝情報点セットに基づいて、遺伝的アルゴリズムにより、前記第１設定値に応じた数の複数の第２遺伝情報点をそれぞれが含む、複数の第２遺伝情報点セットを生成し、
前記複数の第２遺伝情報点セットそれぞれについて、前記第２遺伝情報点セットに含まれる前記複数の第２遺伝情報点に基づいて、前記境界線上の複数の第２基準点を決定し、
前記複数の第２遺伝情報点セットそれぞれについて、前記複数の第２基準点のうちの１つを含む辺と、前記複数の第２基準点のいずれも含まない辺とで形状が示されており、前記複数の第２基準点のいずれも含まない辺と前記境界線とが、前記第２設定値だけ離れた、複数の第２矩形領域を生成し、
前記複数の第１遺伝情報点セットそれぞれについての、前記第１遺伝情報点セットに基づいて生成された前記複数の第１矩形領域の評価と、前記複数の第２遺伝情報点セットそれぞれについての、前記第２遺伝情報点セットに基づいて生成された前記複数の第２矩形領域の評価に基づいて、前記複数の第１遺伝情報点セットおよび前記複数の第２遺伝情報点セットのうちの１つを特定し、
特定した前記第１遺伝情報点セットまたは前記第２遺伝情報点セットに応じて生成された前記複数の第１矩形領域または前記複数の第２矩形領域に基づいて、前記対象領域を分割する、
処理を実行させる分割領域生成プログラム。
【請求項２】
前記複数の第１基準点の決定では、前記境界線上に予め設定された複数の境界点のうち、第１遺伝情報点に距離が最も近い境界点を、前記第１遺伝情報点に対応する第１基準点に決定する、
請求項１記載の分割領域生成プログラム。
【請求項３】
前記複数の第１矩形領域の生成では、前記一平面の第１軸の座標値で前記複数の第１基準点を並べたときに隣り合う２つの第１基準点について、前記第１軸に垂直な第２軸の座標値の差が所定値以下であり、前記境界線における前記２つの第１基準点に挟まれる部分に設定されている第１境界点のすべてについて、隣接する他の境界点との前記第２軸の座標値の差が前記所定値以下の場合、前記２つの第１基準点、および前記境界線上の前記２つの第１基準点に挟まれる部分に設定されているすべての前記第１境界点を含む第１矩形領域を生成する、
請求項２記載の分割領域生成プログラム。
【請求項４】
前記複数の第１矩形領域の生成では、起点の第１基準点から、前記第１軸の正または負の方向に、前記第１軸の座標値が前記起点の第１基準点に近い順に境界点を探索対象として探索を行い、前記起点の第１基準点の前記第２軸の座標値、および前記起点の第１基準点と探索対象の境界点との間にある第２境界点の前記第２軸の座標値のすべてと、前記探索対象の境界点の前記第２軸の座標値との差が前記所定値を超えた場合、前記起点の第１基準点、および前記第２境界点を含む第１矩形領域を生成する、
請求項３記載の分割領域生成プログラム。
【請求項５】
前記複数の第１矩形領域の生成では、前記複数の第１基準点に基づく第１矩形領域の生成後、生成された前記第１矩形領域のいずれにも含まれない境界点が存在する場合、前記第１矩形領域にも含まれない境界点のうちの１つを追加基準点とし、前記追加基準点に基づいて新たな第１矩形領域を生成する、
請求項２ないし４のいずれかに記載の分割領域生成プログラム。
【請求項６】
前記複数の第１矩形領域の生成では、特定の第１基準点を共有する隣接する第１矩形領域において、隣接する第１矩形領域それぞれの前記特定の第１基準点を含む辺のずれが、所定値以下の場合、前記２つの第１矩形領域を１つの矩形領域に統合する、
請求項１ないし５のいずれかに記載の分割領域生成プログラム。
【請求項７】
前記コンピュータに、さらに、
特定した前記第１遺伝情報点セットまたは前記第２遺伝情報点セットに応じて生成された前記複数の第１矩形領域または前記複数の第２矩形領域のうちの、１または複数の矩形領域を包含する外側矩形領域を生成する、
処理を実行させる請求項１ないし６のいずれかに記載の分割領域生成プログラム。
【請求項８】
前記コンピュータに、さらに、
前記一平面内で、前記境界線を所定の角度ずつ回転させ、
前記複数の第１遺伝情報点セットの生成、前記複数の第１基準点の決定、前記複数の第１矩形領域の生成、前記複数の第２遺伝情報点セットの生成、前記複数の第２基準点の決定、前記複数の第２矩形領域の生成を、前記境界線を回転させるごとに実行する、
処理を実行させる請求項１ないし７のいずれかに記載の分割領域生成プログラム。
【請求項９】
第１回転角度から第２回転角度へ前記境界線を回転させた後の前記複数の第２遺伝情報点セットの生成では、前記第１回転角度において生成した前記複数の第１遺伝情報点セットまたは前記複数の第２遺伝情報点セットから、評価値に基づいて選択した第１遺伝情報点セットまたは第２遺伝情報点セットを、前記第２回転角度へ回転させた後の前記第２遺伝情報点セットに含める、
処理を実行させる請求項８記載の分割領域生成プログラム。
【請求項１０】
対象領域内の一平面上での、前記対象領域に配置される物体が占める領域と他の領域との境界線を示す境界情報を記憶する記憶部と、
前記境界情報を参照し、前記対象領域の分割度合いに関連する第１設定値に応じた数の複数の第１遺伝情報点をそれぞれが含む、複数の第１遺伝情報点セットを生成し、前記複数の第１遺伝情報点セットそれぞれについて、第１遺伝情報点セットに含まれる前記複数の第１遺伝情報点に基づいて、前記境界線上の複数の第１基準点を決定し、前記複数の第１遺伝情報点セットそれぞれについて、前記複数の第１基準点のうちの１つを含む辺と、前記複数の第１基準点のいずれも含まない辺とで形状が示されており、前記複数の第１基準点のいずれも含まない辺と前記境界線とが、前記境界線との距離を示す第２設定値だけ離れた、複数の第１矩形領域を生成し、前記複数の第１遺伝情報点セットから選択した被選択第１遺伝情報点セットに基づいて、遺伝的アルゴリズムにより、前記第１設定値に応じた数の複数の第２遺伝情報点をそれぞれが含む、複数の第２遺伝情報点セットを生成し、前記複数の第２遺伝情報点セットそれぞれについて、前記第２遺伝情報点セットに含まれる前記複数の第２遺伝情報点に基づいて、前記境界線上の複数の第２基準点を決定し、前記複数の第２遺伝情報点セットそれぞれについて、前記複数の第２基準点のうちの１つを含む辺と、前記複数の第２基準点のいずれも含まない辺とで形状が示されており、前記複数の第２基準点のいずれも含まない辺と前記境界線とが、前記第２設定値だけ離れた、複数の第２矩形領域を生成し、前記複数の第１遺伝情報点セットそれぞれについての、前記第１遺伝情報点セットに基づいて生成された前記複数の第１矩形領域の評価と、前記複数の第２遺伝情報点セットそれぞれについての、前記第２遺伝情報点セットに基づいて生成された前記複数の第２矩形領域の評価に基づいて、前記複数の第１遺伝情報点セットおよび前記複数の第２遺伝情報点セットのうちの１つを特定し、特定した前記第１遺伝情報点セットまたは前記第２遺伝情報点セットに応じて生成された前記複数の第１矩形領域または前記複数の第２矩形領域に基づいて、前記対象領域を分割する、処理部と、
を有する分割領域生成装置。
【請求項１１】
コンピュータが、
対象領域内の一平面上での、前記対象領域に配置される物体が占める領域と他の領域との境界線を示す境界情報を参照し、前記対象領域の分割度合いに関連する第１設定値に応じた数の複数の第１遺伝情報点をそれぞれが含む、複数の第１遺伝情報点セットを生成し、
前記複数の第１遺伝情報点セットそれぞれについて、第１遺伝情報点セットに含まれる前記複数の第１遺伝情報点に基づいて、前記境界線上の複数の第１基準点を決定し、
前記複数の第１遺伝情報点セットそれぞれについて、前記複数の第１基準点のうちの１つを含む辺と、前記複数の第１基準点のいずれも含まない辺とで形状が示されており、前記複数の第１基準点のいずれも含まない辺と前記境界線とが、前記境界線との距離を示す第２設定値だけ離れた、複数の第１矩形領域を生成し、
前記複数の第１遺伝情報点セットから選択した被選択第１遺伝情報点セットに基づいて、遺伝的アルゴリズムにより、前記第１設定値に応じた数の複数の第２遺伝情報点をそれぞれが含む、複数の第２遺伝情報点セットを生成し、
前記複数の第２遺伝情報点セットそれぞれについて、前記第２遺伝情報点セットに含まれる前記複数の第２遺伝情報点に基づいて、前記境界線上の複数の第２基準点を決定し、
前記複数の第２遺伝情報点セットそれぞれについて、前記複数の第２基準点のうちの１つを含む辺と、前記複数の第２基準点のいずれも含まない辺とで形状が示されており、前記複数の第２基準点のいずれも含まない辺と前記境界線とが、前記第２設定値だけ離れた、複数の第２矩形領域を生成し、
前記複数の第１遺伝情報点セットそれぞれについての、前記第１遺伝情報点セットに基づいて生成された前記複数の第１矩形領域の評価と、前記複数の第２遺伝情報点セットそれぞれについての、前記第２遺伝情報点セットに基づいて生成された前記複数の第２矩形領域の評価に基づいて、前記複数の第１遺伝情報点セットおよび前記複数の第２遺伝情報点セットのうちの１つを特定し、
特定した前記第１遺伝情報点セットまたは前記第２遺伝情報点セットに応じて生成された前記複数の第１矩形領域または前記複数の第２矩形領域に基づいて、前記対象領域を分割する、
分割領域生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分割領域生成プログラム、分割領域生成装置、および分割領域生成方法に関する。
【背景技術】
【０００２】
数値流体力学（ＣＦＤ：computational fluid dynamics）の分野では、流体の状態の時間変化をコンピュータで解析することが行われている。例えば、自動車の走行時における、自動車の周囲の流体の動きを、コンピュータでシミュレーションすることができる。例えば流体計算には、スーパーコンピュータのような高性能計算機が使用される。
【０００３】
コンピュータにより流体計算を行う場合、解析対象の空間内にメッシュ（格子）を生成する。そして、コンピュータにより、例えば、メッシュの格子点における流体の物理量（速度や圧力）を計算する。
【０００４】
流体計算を行う場合、メッシュのサイズが小さい方が、計算精度が上がるその一方、メッシュのサイズが小さいと、計算量が増大し、計算に時間がかかる。そこで、解析空間内に配置された物体（自動車、飛行機などの３次元オブジェクト）と流体との境界付近では、詳細な計算を行うためにメッシュの大きさを小さくし、物体から離れた位置では、メッシュの大きさを大きくすることが考えられる。
【０００５】
流体計算に用いるメッシュには、非構造格子と構造格子とがある。非構造格子は、多面体で構成される要素が不規則に並んでいる格子である。構造格子は、６面体の要素が各軸方向に規則的に並んでいる格子である。
【０００６】
非構造格子は、幾何学的自由度が高く、領域ごとに異なるサイズにすることも容易である。ただし、非構造格子は、計算性能が出にくいという欠点がある。また非構造格子を採用する場合、メッシュ生成にも多大な時間を要する。
【０００７】
それに対して、構造格子は、メッシュの生成が容易であり、データをメモリ上に規則的に配置することができるため、計算性能も出しやすい。例えば計算機では、データアクセスが連続な構造格子の処理に適したＳＩＭＤ（Single Instruction/Multiple Data）演算器の有効活用が重要となる。ＳＩＭＤ演算器は、一つの命令を同時に複数のデータに適用し、並列に演算する処理（ＳＩＭＤ演算）が可能な演算器である。ＳＩＭＤ演算を効率的に行うには、並列で処理する複数のデータが、メモリ内の連続の記憶領域に格納されていることが求められる。構造格子であれば、並列処理させる複数のデータをメモリ内の連続領域に配置することが容易であり、ＳＩＭＤ演算による処理の効率化が図りやすい。
【０００８】
また構造格子は、メッシュの幾何学的な自由度が低いものの、階層構造格子とすることで、領域ごとにメッシュサイズを変えることが可能である。階層構造格子は、入れ子状の矩形領域からなる構造格子である。すなわち階層構造格子では、低解像度格子の内側に高解像度格子が設定される。これにより、限られた領域だけを高解像度で解析することができる。
【０００９】
なお、メッシュを用いた解析手法の１つに、解適合格子法（ＡＭＲ：Adaptive Mesh Refinement）という手法もある。解適合格子法は、解析によって得られる物理量の勾配に基づいて、メッシュを再構築する解析手法である。解適合格子法では、物理量が急激に変化する領域の解像度を適確に高めることができる。ただし、解適合格子法では、計算機上のデータ構造が複雑になったり、隣り合う格子点のメモリ番地が連続しなかったりするなどの要因により、連続して処理するデータのメモリ上での配列が連続になりにくく、ＳＩＭＤ演算器を用いた計算性能が出にくい。
【００１０】
このように階層構造格子を用いた解析手法は、他の手法に比べてコンピュータの計算性能を引き出しやすく、次世代の解析方法と考えられている。
なお、数値シミュレーションは、様々な分野に利用されている。例えば、時間的に変化する実測値を与え、この実測値を考慮することによって正確な室内の温度変化を推定するシステムがある。また数値解析の効率化に関する様々な手法が考えられている。例えば、解析対象領域の一部で空間分解能が高い解析を行う場合でも、全領域において計算格子を細かくすることなく、全体の計算量が増加を防ぎ、計算の高速性を実現でき、高精度解析にかかる計算コストを低減させることができる電磁場解析装置がある。また、有限要素法での要素分割の数を大幅に減らすことができる情報処理装置もある。さらに、品質の高い格子データの生成が可能になる格子データ生成装置もある。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０１６−０９９１０４号公報
【特許文献２】特開２００３−３３０９７７号公報
【特許文献３】特開２００５−２５８８１２号公報
【特許文献４】特開２０１１−１３４２７９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
階層構造格子を用いた高精度の解析を効率的に行うには、品質のよい階層構造格子を生成することが重要となる。従来、解析空間内への階層構造格子は、ユーザの手入力によって生成されている。階層構造格子を生成する場合、ユーザは、境界点をすべて包含し、計算精度の向上と計算の効率化との両立を図るための多数の条件を同時に満たすように、矩形領域を設定することとなる。様々な条件を満たした階層構造格子を、ユーザの手入力によって生成するには、非常に時間がかかり、生成された階層構造格子の品質も不十分なものになりやすい。
【００１３】
適切な階層構造格子を自動で生成することができれば、流体解析などの様々な解析を効率的に実施することができる。しかし、様々な制約を満たす適切な階層構造格子を自動で生成する技術がない。例えば、特許文献４に示されているように格子データを生成可能な格子データ生成装置はあるが、この格子データ生成装置は非構造格子を生成するものであり、適切な階層構造格子を生成することはできない。
【００１４】
なお、適切な階層構造格子を自動生成するには、各階層のメッシュが十分に最適化されていることが重要である。各階層のメッシュを自動で最適化することができれば、それらの階層を重ね合わせることで、品質のよい階層構造格子を生成できる。
【００１５】
１つの側面では、本発明は、階層構造格子の各階層のメッシュを自動で生成できるようにすることを目的とする。
【課題を解決するための手段】
【００１６】
１つの案では、コンピュータに、以下の処理を実行させる分割領域生成プログラムが提供される。
分割領域生成プログラムに基づいて、コンピュータは、対象領域内の一平面上での、対象領域に配置される物体が占める領域と他の領域との境界線を示す境界情報を参照し、対象領域の分割度合いに関連する第１設定値に応じた数の複数の第１遺伝情報点をそれぞれが含む、複数の第１遺伝情報点セットを生成する。次にコンピュータは、複数の第１遺伝情報点セットそれぞれについて、第１遺伝情報点セットに含まれる複数の第１遺伝情報点に基づいて、境界線上の複数の第１基準点を決定する。次にコンピュータは、複数の第１遺伝情報点セットそれぞれについて、複数の第１基準点のうちの１つを含む辺と、複数の第１基準点のいずれも含まない辺とで形状が示されており、複数の第１基準点のいずれも含まない辺と境界線とが、境界線との距離を示す第２設定値だけ離れた、複数の第１矩形領域を生成する。次にコンピュータは、複数の第１遺伝情報点セットから選択した被選択第１遺伝情報点セットに基づいて、遺伝的アルゴリズムにより、第１設定値に応じた数の複数の第２遺伝情報点をそれぞれが含む、複数の第２遺伝情報点セットを生成する。次にコンピュータは、複数の第２遺伝情報点セットそれぞれについて、第２遺伝情報点セットに含まれる複数の第２遺伝情報点に基づいて、境界線上の複数の第２基準点を決定する。次にコンピュータは、複数の第２遺伝情報点セットそれぞれについて、複数の第２基準点のうちの１つを含む辺と、複数の第２基準点のいずれも含まない辺とで形状が示されており、複数の第２基準点のいずれも含まない辺と境界線とが、第２設定値だけ離れた、複数の第２矩形領域を生成する。次にコンピュータは、複数の第１遺伝情報点セットそれぞれについての、第１遺伝情報点セットに基づいて生成された複数の第１矩形領域の評価と、複数の第２遺伝情報点セットそれぞれについての、第２遺伝情報点セットに基づいて生成された複数の第２矩形領域の評価に基づいて、複数の第１遺伝情報点セットおよび複数の第２遺伝情報点セットのうちの１つを特定する。次にコンピュータは、特定した第１遺伝情報点セットまたは第２遺伝情報点セットに応じて生成された複数の第１矩形領域または複数の第２矩形領域に基づいて、対象領域を分割する。
【発明の効果】
【００１７】
１態様によれば、階層構造格子の各階層のメッシュを自動で生成することができる。
【図面の簡単な説明】
【００１８】
【図１】第１の実施の形態に係る分割領域生成装置の一例を示す図である。
【図２】第２の実施の形態のシステム構成の一例を示す図である。
【図３】メッシュ生成装置のハードウェアの一構成例を示す図である。
【図４】メッシュ生成装置の機能の一例を示すブロック図である。
【図５】境界点リスト記憶部に格納されている情報の一例を示す図である。
【図６】個体情報記憶部に格納されている情報の一例を示す図である。
【図７】パラメタ記憶部に格納されている情報の一例を示す図である。
【図８】矩形領域記憶部に格納されている情報の一例を示す図である。
【図９】階層構造格子記憶部に格納されている情報の一例を示す図である。
【図１０】矩形領域生成処理の手順の一例を示すフローチャートである。
【図１１】個体評価の概略手順の一例を示す図である。
【図１２】メッシュ基準点の選択例を示す図である。
【図１３】矩形領域の生成例を示す図である。
【図１４】ＪＢの矩形領域の生成例を示す図である。
【図１５】ＲＳＢおよびＬＳＢの矩形領域の生成例を示す図である。
【図１６】ＲＣＢの矩形領域の生成例を示す図である。
【図１７】メッシュ基準点の追加例を示す図である。
【図１８】矩形領域の統合例を示す図である。
【図１９】多目的ＧＡによる最適解探索の一例を示す図である。
【図２０】個体評価処理の手順の一例を示すフローチャートである。
【図２１】矩形領域生成処理の手順の一例を示すフローチャートである。
【図２２】個体群の進化処理の手順の一例を示す図である。
【図２３】子の個体の生成手順の一例を示す図である。
【図２４】ＧＡによる個体群進化処理の手順の一例を示すフローチャートである。
【図２５】階層的に生成された矩形領域の一例を示す図である。
【図２６】解析空間内の物体の回転の一例を示す図である。
【図２７】物体を回転させる場合の個体の生成例を示す図である。
【図２８】第３の実施の形態における個体群の情報の一例を示す図である。
【図２９】境界の回転を伴う場合の矩形領域生成処理の一例を示すフローチャートである。
【図３０】他の回転角度での最適解を流用したＧＡによる個体群の進化処理の手順の一例を示すフローチャートである。
【図３１】他の回転角度の最適解の流用の有無による矩形領域の総面積の違いを示す図である。
【図３２】ＧＡで最適化することによる矩形領域の総面積の縮小例を示す図である。
【図３３】他の回転角度の最適解の流用の有無による収束性の違いを示す図である。
【図３４】他の回転角度の最適解の流用の有無による同じ回転角度で得られる矩形領域の総面積の違いを示す図である。
【発明を実施するための形態】
【００１９】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第１の実施の形態〕
第１の実施の形態は、流体計算などで用いられる階層構造格子を遺伝的アルゴリズム（ＧＡ：Genetic Algorithm）で最適化するものである。第１の実施の形態に係る分割領域生成方法では、ＧＡを適用可能とするため、空間上の任意の点の分布から、階層構造格子を一意に決定できるようにしている。これにより、ＧＡにより、空間上の任意の点の分布を最適化することで、適切な階層構造格子の自動生成が可能となる。
【００２０】
図１は、第１の実施の形態に係る分割領域生成装置の一例を示す図である。分割領域生成装置１０は、記憶部１１と処理部１２とを有する。記憶部１１は、例えば分割領域生成装置１０が有するメモリ、またはストレージ装置である。処理部１２は、例えば分割領域生成装置１０が有するプロセッサ、または演算回路である。例えば、分割領域生成プログラムを、分割領域生成装置１０内のプロセッサが実行することで、第１の実施の形態に係る分割領域生成方法が実現される。
【００２１】
記憶部１１は、境界情報１１ａと個体群１１ｂとを記憶する。境界情報１１ａは、対象領域内の一平面上での、対象領域に配置される物体が占める領域と他の領域との境界線１を示す情報である。個体群１１ｂは、ＧＡによる進化対象となる複数の個体の情報である。各個体は、遺伝情報点セットで表される。遺伝情報点セットは、遺伝情報点３ａ〜３ｃの集合である。
【００２２】
処理部１２は、境界情報１１ａに基づいて、以下の手順で階層構造格子を生成する。
処理部１２は、まず境界情報１１ａを参照し、対象領域の分割度合いに関連する第１設定値に応じた数の複数の遺伝情報点（第１遺伝情報点）をそれぞれが含む、ＧＡにおける第１世代の複数の遺伝情報点セット（第１遺伝情報点セット）を生成する。例えば処理部１２は、対象領域内の一平面上に、第１設定値に応じた数の点をランダムに生成し、生成した点を遺伝情報点として含む遺伝情報点セットを生成する。処理部１２は、生成した第１世代の複数の遺伝情報点セットを、個体群１１ｂとして記憶部１１に格納する。
【００２３】
次に処理部１２は、記憶部１１から、個体群１１ｂに含まれる、未評価の遺伝情報点セットを抽出する。ＧＡによる次世代の個体が生成される前は、個体群１１ｂに第１世代の遺伝情報点セットのみが含まれるため、第１世代の遺伝情報点セットが抽出される。
【００２４】
処理部１２は、抽出した第１世代の遺伝情報点セットそれぞれについて、遺伝情報点セットに含まれる複数の遺伝情報点３ａ〜３ｃに基づいて、境界線１上の複数の基準点４ａ〜４ｃ（第１基準点）を決定する。例えば処理部１２は、境界線１上に予め設定された複数の境界点２ａ，２ｂ，・・・のうち、第１遺伝情報点に距離が最も近い境界点を、第１遺伝情報点に対応する基準点４ａ〜４ｃに決定する。複数の境界点２ａ，２ｂ，・・・は、境界線１上にばつ印で示されている。
【００２５】
次に処理部１２は、第１世代の複数の遺伝情報点セットそれぞれについて、矩形領域５ａ〜５ｄ（第１矩形領域）を生成する。矩形領域５ａ〜５ｄは、複数の基準点のうちの１つを含む辺と、複数の基準点のいずれも含まない辺とで、矩形の形状が示されている。矩形領域５ａ〜５ｄの複数の基準点のいずれも含まない辺と境界線１とは、境界線１との距離を示す第２設定値だけ離れている。
【００２６】
次に処理部１２は、第１世代の複数の遺伝情報点セットそれぞれについて、その遺伝情報点セットに基づいて生成された複数の矩形領域５ａ〜５ｄを評価する。処理部１２は、例えば、矩形領域５ａ〜５ｄの数や矩形領域５ａ〜５ｄの面積などを変数とする処理の評価式により、遺伝情報点セットの評価値を計算する。
【００２７】
以上で、第１世代の複数の遺伝情報点セットに関する処理が終了する。
次に処理部１２は、個体群１１ｂに含まれる複数の遺伝情報点セットに基づいて、ＧＡにより第２世代の遺伝情報点セット（第２遺伝情報点セット）を生成する。例えば、処理部１２は、個体群１１ｂに含まれる第１世代の複数の遺伝情報点セットから、所定数の遺伝情報点セット（被選択第１遺伝情報点セット）を選択する。例えば処理部１２は、第１世代の複数の遺伝情報点セットから、無作為に２つの遺伝情報点セットを選択する。また処理部１２は、第１世代の複数の遺伝情報点セットのうち、評価が高い遺伝情報点セットの選択確率を高くして、確率的に２つの遺伝情報点セットを選択してもよい。
【００２８】
そして処理部１２は、選択した遺伝情報点セットに基づいて、遺伝的アルゴリズムにより、第１設定値に応じた数の複数の遺伝情報点（第２遺伝情報点）をそれぞれが含む、第２世代の複数の遺伝情報点セットを生成する。第２世代の複数の遺伝情報点セットの生成時の遺伝的アルゴリズムでは、遺伝情報点セットに対する交叉や突然変異の処理が行われる。
【００２９】
次に処理部１２は、第２世代の複数の遺伝情報点セットそれぞれについて、遺伝情報点セットに含まれる複数の遺伝情報点に基づいて、境界線１上の複数の基準点（第２基準点）を決定する。次に処理部１２は、第２世代の複数の遺伝情報点セットそれぞれについて、複数の矩形領域５ａ〜５ｄ（第２矩形領域）を生成する。次に処理部１２は、第２世代の複数の遺伝情報点セットそれぞれについて、その遺伝情報点セットに基づいて生成された複数の矩形領域５ａ〜５ｄを評価する。
【００３０】
処理部１２は、第２世代の複数の遺伝情報点セットの一部を、評価結果に基づいて選択する。例えば処理部１２は、最も高い評価の遺伝情報点セットを選択する。また処理部１２は、評価が高いほど選択確率を高くして、確率的に１または複数の遺伝情報点セットを選択する。処理部１２は、選択した遺伝情報点セットを個体群１１ｂに含める。
【００３１】
以上で、第２世代の複数の遺伝情報点セットに関する処理が終了する。以後、第２世代と同様に、個体群１１ｂに含まれる遺伝情報点セットに基づいて、第３世代の以降の各世代の複数の遺伝情報点セットが生成され、その中の選択された一部の遺伝情報点セットが個体群１１ｂに追加される。例えば処理部１２は、予め指定された世代数分だけ、ＧＡによる次世代の遺伝情報点セットの生成処理を繰り返す。
【００３２】
処理部１２は、ＧＡによる遺伝情報点セットの生成が終了すると、個体群１１ｂに含まれる遺伝情報点セットそれぞれについての評価に基づいて、複数の遺伝情報点セットのうちの１つを、最適解として特定する。そして処理部１２は、最適解である遺伝情報点セットに応じて生成された複数の矩形領域５ａ〜５ｄに基づいて、対象領域を分割する。
【００３３】
このようにして、ＧＡを用いて、適切な複数の矩形領域５ａ〜５ｄを自動生成することができる。すなわち、複数の遺伝情報点セットから、複数の矩形領域５ａ〜５ｄを一意に決定することができるため、ＧＡによって交叉などの操作を行う対象は遺伝情報点セットだけで済む。しかも、複数の矩形領域５ａ〜５ｄを生成するための条件については、ＧＡの遺伝情報の操作に含まれない。その結果、ＧＡによる次世代の生成が容易となる。ＧＡを有効に利用することができれば、評価の高い遺伝情報点セットを効率的に見つけ出すことが容易となり、適切な複数の矩形領域５ａ〜５ｄの自動生成を確実に実行できる。
【００３４】
複数の矩形領域５ａ〜５ｄは、階層構造格子の１階層のメッシュとして利用できる。同様の複数の矩形領域５ａ〜５ｄの生成を、解像度の異なる複数の階層について実行することで、階層構造格子における各階層のメッシュが生成できる。このようにして、高品質の階層構造格子が生成される。
【００３５】
なお処理部１２は、複数の矩形領域５ａ〜５ｄの生成において、例えば次の２つの条件が満たされる場合、対向する２辺に基準点を含む矩形領域５ｂ，５ｃを生成する。第１の条件は、一平面の第１軸（例えばｘ軸）の座標値で複数の基準点を並べたときに隣り合う２つの基準点について、第１軸に垂直な第２軸（例えばｙ軸）の座標値の差が所定値以下であることである。第２の条件は、境界線１における２つの基準点に挟まれる部分に設定されているすべての境界点について、隣接する他の境界点との第２軸の座標値の差が所定値以下であることである。２つの条件が満たされた場合、処理部１２は、２つの第１基準点、および境界線１上の２つの基準点に挟まれる部分に設定されているすべての境界点を含む矩形領域５ｂ，５ｃを生成する。
【００３６】
また処理部１２は、複数の矩形領域５ａ〜５ｄの生成において、１辺のみに基準点を含む矩形領域５ａ，５ｄを生成する場合もある。例えば処理部１２は、複数の基準点のうちの１つを起点とする。そして処理部１２は、起点の基準点から、第１軸の正または負の方向に、第１軸の座標値が起点の基準点に近い順に境界点を探索対象として探索を行う。次に処理部１２は、起点の基準点の第２軸の座標値、および起点の基準点と探索対象の境界点との間の他の境界点の第２軸の座標値のすべてと、探索対象の境界点の第２軸の座標値とを比較する。処理部１２は、探索対象の境界点の第２軸の座標値が、比較した座標値すべてと所定値より大きな差を有する場合、起点の基準点、および起点の基準点と探索対象の境界点との間の他の境界点を含む矩形領域５ａ，５ｄを生成する。この矩形領域５ａ，５ｄには、最後に探索対象となった境界点は含まれない。
【００３７】
なお、遺伝情報点に対応する基準点に基づく矩形領域５ａ〜５ｄの生成を完了しても、矩形領域５ａ〜５ｄのいずれにも含まれない境界点が存在する場合がある。その場合、処理部１２は、いずれの矩形領域５ａ〜５ｄにも含まれない境界点のうちの１つを追加基準点とし、追加基準点に基づいて、新たな矩形領域を生成する。これにより、境界点のすべてが、いずれかの矩形領域に含まれるように、複数の矩形領域を生成できる。すなわち、第１設定値の値が小さすぎたり、遺伝情報点の位置に偏りがあったりした場合でも、基準点を補い、矩形領域の生成条件（すべての基準点がいずれかの矩形領域に含まれること）に適合した、適切な矩形領域を生成できる。
【００３８】
さらに処理部１２は、１つの第１基準点を共有する２つの矩形領域における、共有する基準点を含むそれぞれの辺と並行方向のずれが、所定値以下の場合、２つの矩形領域を１つの矩形領域に統合することもできる。例えば処理部１２は、２つの矩形領域における、共有する基準点を含むそれぞれの辺の端部の差（距離）が、両端で所定値以下であれば、ずれが所定値以下であると判断する。このように、ずれの少ない隣接する矩形領域を統合することで、矩形領域の数を減らすことができる。矩形領域の数が少なければ、矩形領域に基づいて生成される階層構造格子のメッシュ数も少なくなり、階層構造格子を用いた解析処理を効率的に行うことができる。
【００３９】
なお階層構造格子を作成する場合、処理部１２は、例えば矩形領域を階層的に生成する。すなわち処理部１２は、図１に示した方法により最も内側の矩形領域を作成後、その外側の矩形領域を、同様の方法で作成することができる。例えば処理部１２は、最適解として特定した遺伝情報点セットに応じて生成された複数の矩形領域（内側矩形領域）のうちの、１または複数の矩形領域を包含する外側矩形領域を生成する。その際、処理部１２は、例えば内側矩形領域の辺を境界線１とし、内側矩形領域の角を境界点として、図１に示した方法で外側矩形領域を生成する。
【００４０】
生成した矩形領域に基づく階層構造格子を用いた解析によっては、境界線１を回転させてもよい場合がある。境界線１が回転可能であれば、様々な角度の境界線１の配置ごとに、矩形領域の生成を行えば、より評価の高い遺伝情報点セットが得られる可能性がある。
【００４１】
そこで、処理部１２は、例えば、境界線１の回転が許容される場合、一平面内で、境界線１を所定の角度ずつ回転させる。そして処理部１２は、図１に示した処理を、境界線１を回転させるごとに実行する。これにより、より評価の高い矩形領域が生成できる。
【００４２】
なお境界線１を、微小な角度ずつ複数回回転させるとき、前の回転角度における最適解を、次の回転角度におけるＧＡで流用することもできる。例えば第１回転角度から第２回転角度へ境界線１を回転させた後の第２遺伝情報点セットの生成処理において、第１回転角度における最適解を第２回転角度のＧＡに流用できる。この場合、処理部１２は、第１回転角度において生成した複数の遺伝情報点セットから、評価値に基づいて選択した遺伝情報点セットを、第２回転角度へ回転させた後の遺伝情報点セット（例えば、第２世代として生成する遺伝情報点セット）に含める。このように、他の回転角度での最適解を流用することで、各回転角度において生成される矩形領域の評価が向上するとともに、良好な評価の矩形領域を効率的に生成できる。
【００４３】
〔第２の実施の形態〕
次に、第２の実施の形態について説明する。第２の実施の形態は、３次元モデルの周囲の流体の動きを、自動生成した階層構造格子を用いて解析するシステムである。
【００４４】
図２は、第２の実施の形態のシステム構成の一例を示す図である。図２に示すシステムでは、ネットワーク２０を介して、３次元モデル生成装置３１、メッシュ生成装置１００、および流体解析装置３２が接続されている。３次元モデル生成装置３１は、解析空間内に配置される自動車や飛行機などを表す３次元モデルを生成する。メッシュ生成装置１００は、３次元モデル生成装置３１から、３次元モデルの表面形状を示す境界点リストを取得し、境界点リストに基づいて、階層構造格子を生成する。流体解析装置３２は、３次元モデル生成装置３１が生成した３次元モデルと、メッシュ生成装置１００が生成した階層構造格子とに基づいて、流体シミュレーションを実行し、３次元モデルの周囲の流体の物理量の時間変化を解析する。
【００４５】
図３は、メッシュ生成装置のハードウェアの一構成例を示す図である。メッシュ生成装置１００は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１には、バス１０９を介してメモリ１０２と複数の周辺機器が接続されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、またはＤＳＰ（Digital Signal Processor）である。プロセッサ１０１がプログラムを実行することで実現する機能の少なくとも一部を、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現してもよい。
【００４６】
メモリ１０２は、メッシュ生成装置１００の主記憶装置として使用される。メモリ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ１０２には、プロセッサ１０１による処理に必要な各種データが格納される。メモリ１０２としては、例えばＲＡＭ（Random Access Memory）などの揮発性の半導体記憶装置が使用される。
【００４７】
バス１０９に接続されている周辺機器としては、ストレージ装置１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、機器接続インタフェース１０７およびネットワークインタフェース１０８がある。
【００４８】
ストレージ装置１０３は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置１０３は、コンピュータの補助記憶装置として使用される。ストレージ装置１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置１０３としては、例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）を使用することができる。
【００４９】
グラフィック処理装置１０４には、モニタ２１が接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令に従って、画像をモニタ２１の画面に表示させる。モニタ２１としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００５０】
入力インタフェース１０５には、キーボード２２とマウス２３とが接続されている。入力インタフェース１０５は、キーボード２２やマウス２３から送られてくる信号をプロセッサ１０１に送信する。なお、マウス２３は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００５１】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク２４に記録されたデータの読み取りを行う。光ディスク２４は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２４には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００５２】
機器接続インタフェース１０７は、メッシュ生成装置１００に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース１０７には、メモリ装置２５やメモリリーダライタ２６を接続することができる。メモリ装置２５は、機器接続インタフェース１０７との通信機能を搭載した記録媒体である。メモリリーダライタ２６は、メモリカード２７へのデータの書き込み、またはメモリカード２７からのデータの読み出しを行う装置である。メモリカード２７は、カード型の記録媒体である。
【００５３】
ネットワークインタフェース１０８は、ネットワーク２０に接続されている。ネットワークインタフェース１０８は、ネットワーク２０を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００５４】
以上のようなハードウェア構成によって、第２の実施の形態の処理機能を実現することができる。なお、第１の実施の形態に示した分割領域生成装置１０も、図３に示したメッシュ生成装置１００と同様のハードウェアにより実現することができる。
【００５５】
メッシュ生成装置１００は、例えばコンピュータ読み取り可能な記録媒体に記録された分割領域生成プログラムを実行することにより、第２の実施の形態の処理機能を実現する。メッシュ生成装置１００に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、メッシュ生成装置１００に実行させるプログラムをストレージ装置１０３に格納しておくことができる。プロセッサ１０１は、ストレージ装置１０３内のプログラムの少なくとも一部をメモリ１０２にロードし、プログラムを実行する。またメッシュ生成装置１００に実行させるプログラムを、光ディスク２４、メモリ装置２５、メモリカード２７などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ１０１からの制御により、ストレージ装置１０３にインストールされた後、実行可能となる。またプロセッサ１０１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００５６】
次に、階層構造格子を生成するためにメッシュ生成装置１００が有する機能について説明する。
図４は、メッシュ生成装置の機能の一例を示すブロック図である。メッシュ生成装置１００は、境界点リスト記憶部１１０、個体情報記憶部１２０、パラメタ記憶部１３０、矩形領域生成部１４０、矩形領域記憶部１５０、３次元格子生成部１６０、および階層構造格子記憶部１７０を有する。
【００５７】
境界点リスト記憶部１１０は、境界点リスト１１１を記憶する。境界点リスト１１１は、３次元モデル生成装置３１で生成された３次元モデルが占める領域と、３次元モデル周囲の流体が占める領域との境界面上の複数の境界点のリストである。例えば、メモリ１０２またはストレージ装置１０３の記憶領域の一部が、境界点リスト記憶部１１０として使用される。
【００５８】
個体情報記憶部１２０は、矩形領域生成部１４０が生成した個体群１２１を記憶する。個体群１２１は、複数の個体の情報である。各個体は、複数の遺伝情報点（遺伝情報点セット）を含んでいる。遺伝情報点セットに基づいて、複数の矩形領域が一意に決定される。例えば、メモリ１０２またはストレージ装置１０３の記憶領域の一部が、個体情報記憶部１２０として使用される。
【００５９】
パラメタ記憶部１３０は、階層構造格子の生成時に使用するパラメタ群１３１を記憶する。パラメタ群１３１は、例えばユーザにより、キーボード２２などを用いて入力される。例えば、メモリ１０２またはストレージ装置１０３の記憶領域の一部が、パラメタ記憶部１３０として使用される。
【００６０】
矩形領域生成部１４０は、境界点リスト記憶部１１０、個体情報記憶部１２０、パラメタ記憶部１３０に格納された情報を用いて、２次元の矩形領域を生成する。矩形領域生成部１４０は、生成した矩形領域の情報を、矩形領域記憶部１５０に格納する。また矩形領域生成部１４０は、最終的に評価が最も高く判定された個体を示す情報を、最適解として３次元格子生成部１６０に出力する。
【００６１】
３次元格子生成部１６０は、最適解である個体の矩形領域に基づいて、３次元の階層構造格子１７１を生成する。例えば３次元格子生成部１６０は、２次元の平面上に設定された矩形領域を、その平面に垂直方向に引き延ばして３次元化する。３次元化により、矩形が６面体に変化する。そして３次元格子生成部１６０は、引き延ばした方向の軸に垂直な複数の平面を境界とする複数の要素に、６面体を分割する。３次元格子生成部１６０は、例えば、等間隔の複数の平面により６面体を分割する。そして３次元格子生成部１６０は、生成した階層構造格子１７１を、階層構造格子記憶部１７０に格納する。
【００６２】
矩形領域記憶部１５０は、矩形領域情報１５１を記憶する。矩形領域情報１５１は、個体群１２１に含まれる各個体に対応して生成された矩形領域の情報である。例えば、メモリ１０２またはストレージ装置１０３の記憶領域の一部が、矩形領域記憶部１５０として使用される。
【００６３】
階層構造格子記憶部１７０は、階層構造格子１７１を記憶する。階層構造格子１７１は、最も評価の高い個体に対する矩形領域を、３次元に拡張したものである。例えば、メモリ１０２またはストレージ装置１０３の記憶領域の一部が、階層構造格子記憶部１７０として使用される。
【００６４】
なお、図４に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
次に、各記憶部に格納される情報について詳細に説明する。
【００６５】
図５は、境界点リスト記憶部に格納されている情報の一例を示す図である。境界点リスト記憶部１１０に格納されている境界点リスト１１１には、解析空間内の所定の平面上での、３次元モデル内と流体との境界線４０上の複数の境界点４１それぞれの座標が設定されている。境界線４０は、例えば重力方向に垂直な平面（水平面）上の線である。
【００６６】
図６は、個体情報記憶部に格納されている情報の一例を示す図である。個体情報記憶部１２０に格納されている個体群１２１は、例えば各個体の情報が１つのレコードに示されている。各レコードには、例えば個体番号、遺伝情報点セット、および評価値が含まれる。個体番号は、個体の識別番号である。遺伝情報点セットは、個体の特徴を示す複数の遺伝情報点それぞれの座標である。評価値は、個体に基づいて生成した矩形領域の評価値である。
【００６７】
図７は、パラメタ記憶部に格納されている情報の一例を示す図である。パラメタ記憶部１３０に格納されているパラメタ群１３１に含まれるパラメタは、メッシュ特性パラメタとＧＡ関連パラメタとに分類される。メッシュ特性パラメタには、「Ｌｂ」と「Ｌ＿ｍｅｒｇｅ」とがある。「Ｌｂ」は、境界点から矩形領域の端までの距離である。「Ｌ＿ｍｅｒｇｅ」は、隣接する矩形領域をマージするか否かの判断基準となる閾値である。ＧＡ関連パラメタには、「Ｎ＿ｐｏｐｕｌａｔｉｏｎ」、「Ｎ＿ｃｈｉｌｄ」、「Ｎ＿ｇｅｎｅ」、および「Ｎ＿ｅｖｏｌｕｔｉｏｎ」がある。「Ｎ＿ｐｏｐｕｌａｔｉｏｎ」は、最初に生成する個体群に含まれる個体の数である。「Ｎ＿ｃｈｉｌｄ」は、交叉で作られる子の数である。「Ｎ＿ｇｅｎｅ」は、個体に含まれる遺伝情報点の数である。「Ｎ＿ｅｖｏｌｕｔｉｏｎ」は、最適化のためのループ処理の最大繰り返し回数である。
【００６８】
図８は、矩形領域記憶部に格納されている情報の一例を示す図である。矩形領域記憶部１５０に格納されている矩形領域情報１５１は、例えば各個体に応じて生成された複数の矩形領域の情報が、１つのレコードに示されている。各レコードには、個体番号と矩形領域リストが含まれる。矩形領域リストには、例えば、複数の矩形領域それぞれの、４つの頂点の座標が示されている。
【００６９】
図９は、階層構造格子記憶部に格納されている情報の一例を示す図である。階層構造格子記憶部１７０に格納されている階層構造格子１７１には、例えば階層構造格子の格子点の位置を示す格子点情報１７１ａと、階層構造格子の６面体の要素を示す要素情報１７１ｂとが含まれる。格子点情報１７１ａには、各格子点を示す格子点番号に対応付けて、その格子点の３次元空間内での座標が設定されている。要素情報１７１ｂには、各要素を示す要素番号に対応付けて、その要素の頂点にある複数の格子点を示す格子点リストが設定されている。格子点リストには、複数の格子点番号が含まれる。
【００７０】
次に、矩形領域生成部１４０における、矩形領域の生成処理について詳細に説明する。
図１０は、矩形領域生成処理の手順の一例を示すフローチャートである。以下、図１０に示す処理をステップ番号に沿って説明する。
【００７１】
［ステップＳ１０１］矩形領域生成部１４０は、初期の個体群１２１を生成する。例えば矩形領域生成部１４０は、パラメタ記憶部１３０を参照し、「Ｎ＿ｐｏｐｕｌａｔｉｏｎ」に示される個数の個体を生成する。矩形領域生成部１４０は、各個体を生成する際には、個体の特徴を示す「Ｎ＿ｇｅｎｅ」個の遺伝情報点を生成する。矩形領域生成部１４０は、生成した遺伝情報点の位置をランダムに設定する。矩形領域生成部１４０は、生成した複数の個体を、個体群１２１として個体情報記憶部１２０に格納する。この時点では、個体情報記憶部１２０に格納された個体群１２１の各個体の評価値は、いずれも未設定（空欄）である。
【００７２】
［ステップＳ１０２］矩形領域生成部１４０は、個体群１２１の中から、未評価の個体を１つ選択する。未評価の個体とは、個体情報記憶部１２０において評価値が未設定の個体である。
【００７３】
［ステップＳ１０３］矩形領域生成部１４０は、選択した個体に対する個体評価処理を行う。個体評価処理の詳細は後述する（図２０参照）。なお、第２の実施の形態では、個体評価処理で算出される個体値は、値が小さいほど評価が高いものとする。
【００７４】
［ステップＳ１０４］矩形領域生成部１４０は、すべての個体を評価したか否かを判断する。例えば矩形領域生成部１４０は、個体情報記憶部１２０内のすべての個体に評価値が設定されている場合、すべての個体が評価済みであると判断する。矩形領域生成部１４０は、すべての個体が評価済みとなった場合、処理をステップＳ１０５に進める。また矩形領域生成部１４０は、未評価の個体がある場合、処理をステップＳ１０２に進める。
【００７５】
［ステップＳ１０５］矩形領域生成部１４０は、矩形領域生成の終了条件を満たしたか否かを判断する。終了条件は、例えば評価値が閾値より小さい個体が出現したか、あるいはＧＡによる進化回数が限界値「Ｎ＿ｅｖｏｌｕｔｉｏｎ」を超えたことである。矩形領域生成部１４０は、終了条件が満たされた場合、処理をステップＳ１０７に進める。また矩形領域生成部１４０は、終了条件が満たされていなければ、処理をステップＳ１０６に進める。
【００７６】
［ステップＳ１０６］矩形領域生成部１４０は、ＧＡによる個体群１２１の進化処理を実行する。この処理の詳細は後述する（図２４参照）。個体群の進化処理により、選択、交叉、突然変異などのＧＡの操作で生成された個体が個体群１２１に追加される。そこで矩形領域生成部１４０は、新たな個体を評価するため、処理をステップＳ１０２に進める。
【００７７】
なお個体群１２１を進化させる過程で、生成した子の個体の評価を行っている場合、その評価値を記憶しておけば、ステップＳ１０３で再度評価せずに済む。その場合、矩形領域生成部１４０は、ステップＳ１０６の終了後、処理をステップＳ１０５に進める。
【００７８】
［ステップＳ１０７］矩形領域生成部１４０は、個体群１２１に含まれる個体のうち、評価値が最小の個体を、最適解として出力する。例えば矩形領域生成部１４０は、評価値が最小の個体の個体番号を、３次元格子生成部１６０に送信する。
【００７９】
このようにして、最適解の個体が特定される。そして最適解の個体に対応する矩形領域に基づいて、３次元格子生成部１６０により、３次元の階層構造格子が生成される。
以下、個体の評価手順について詳細に説明する。
【００８０】
図１１は、個体評価の概略手順の一例を示す図である。図１１の例では、個体の遺伝情報点セットには、４つの遺伝情報点５１〜５４の座標が示されている。矩形領域生成部１４０は、遺伝情報点５１〜５４それぞれについて、複数の境界点４１のうち、最も距離が近い境界点を抽出する。そして、矩形領域生成部１４０は、抽出した境界点を、メッシュ基準点６１〜６４とする。
【００８１】
矩形領域生成部１４０は、メッシュ基準点が、矩形領域の右端または左端になるように、複数の矩形領域７１〜７６を生成する。そして矩形領域生成部１４０は、生成した矩形領域を評価関数により評価し、評価値を得る。評価関数として、複数の指標を用いた評価関数を用いることができる。指標としては、矩形領域の面積、矩形領域の数、矩形領域のサイズに応じたシミュレーションを行ったときの時間ステップの刻み幅などが用いられる。例えば、各指標の値に重みを乗算し、それらを加算した結果を、評価値（ｓｃｏｒｅ）とすることができる。このような評価値で各個体を評価し、評価値の小さい（評価が高い）個体を抽出することで、多目的最適化が実現できる。
【００８２】
以下、図１２〜図１９を参照して、個体値評価矩形領域生成手順について説明する。
図１２は、メッシュ基準点の選択例を示す図である。図１２の例では、「Ｎ＿ｇｅｎｅ」が「２」であるものとする。この場合、１つの個体に対応付けて、ランダムな位置に２個の遺伝情報点５６，５７が生成される。そして、２個の遺伝情報点５６，５７それぞれに対して距離が最も近い境界点が、メッシュ基準点６６，６７として選択される。
【００８３】
なお、図１２の例では、横軸がｘ軸、縦軸がｙ軸である。また境界点を丸印で示しており、境界点を中心とする上下「Ｌｂ」の幅を、その境界点を通る線分で表している。
選択されたメッシュ基準点６６，６７を基準にして、矩形領域が生成される。
【００８４】
図１３は、矩形領域の生成例を示す図である。図１３の例では、３つの矩形領域８１〜８３が生成されている。
図１３に示した矩形領域８１〜８３のうち、矩形領域８１は、左右の両側に隣接する他の矩形領域８２，８３が存在する。このような矩形領域８１を、特にＪＢ（Joint Box）と呼ぶこととする。矩形領域８２は、左側にのみ隣接する他の矩形領域８１が存在する（隣接する矩形領域の並びの右端である）。このような矩形領域８２を、特にＲＳＢ（Right-Side Box）と呼ぶこととする。矩形領域８３は、右側にのみ隣接する他の矩形領域８１が存在する（隣接する矩形領域の並びの左端である）。このような矩形領域８３を、特にＬＳＢ（Left-Side Box）と呼ぶこととする。
【００８５】
図１４は、ＪＢの矩形領域の生成例を示す図である。ＪＢの矩形領域８１の場合、メッシュ基準点６６から右に向かって、隣のメッシュ基準点６７が探索される。そしてメッシュ基準点６６とメッシュ基準点６７の上下方向の差が「Ｌｂ×２」以下であり、かつメッシュ基準点６６とメッシュ基準点６７との間にある全境界点が、隣の境界点との上下方向の差が「Ｌｂ×２」以下であるかという条件が判定される。図１４の例では、この条件が満たされている。条件が満たされた場合、メッシュ基準点６６からメッシュ基準点６７までのすべての境界点を含む矩形領域８１が生成される。すなわち、メッシュ基準点６６を左端、メッシュ基準点６７を右端とする矩形領域８１が生成される。矩形領域８１の上端は、メッシュ基準点６６，６７、および矩形領域８１内の境界点のうち、最も上にある点のｙ座標値に「Ｌｂ」を加えた位置となる。矩形領域８１の下端は、メッシュ基準点６６，６７、および矩形領域８１内の境界点のうち、最も下にある点のｙ座標値から「Ｌｂ」を減算した位置となる。
【００８６】
図１５は、ＲＳＢおよびＬＳＢの矩形領域の生成例を示す図である。ＲＳＢの矩形領域８２の場合、メッシュ基準点６７から右に向かって境界点が順番に探索される。この探索では、探索対象の境界点について、すでに探索された他の境界点のいずれか１つとの上下方向の差が「Ｌｂ×２」以下という条件を満たすか否かが判断される。図１５の例では、他のメッシュ基準点より先に、条件を満たさない境界点が検出されたため、条件を満たす各境界点を含む矩形領域８２が生成されている。矩形領域８２の左端は、メッシュ基準点６７である。矩形領域８２の右端は、矩形領域８２内の最も右にある境界点のｘ座標値に「Ｌｂ」を加えた位置となる。矩形領域８２の上端は、メッシュ基準点６７、および矩形領域８２内の境界点のうち、最も上にある点のｙ座標値に「Ｌｂ」を加えた位置となる。矩形領域８２の下端は、メッシュ基準点６７、および矩形領域８２内の境界点のうち、最も下にある点のｙ座標値から「Ｌｂ」を減算した位置となる。
【００８７】
ＬＳＢの矩形領域８３の場合、メッシュ基準点６６から左に向かって境界点が順番に探索される。この探索では、探索対象の境界点について、すでに探索された他の境界点のいずれか１つとの上下方向の差が「Ｌｂ×２」以下という条件を満たすか否かが判断される。図１５の例では、探索方向のすべての境界点が条件を満たしているため、探索されたすべての境界点を含む矩形領域８３が生成される。矩形領域８３の右端は、メッシュ基準点６６である。矩形領域８３の左端は、探索により検出された境界点のうちの最も左にある境界点のｘ座標値から「Ｌｂ」を減算した位置となる。矩形領域８３の上端は、メッシュ基準点６６、および矩形領域８３内の境界点のうち、最も上にある点のｙ座標値に「Ｌｂ」を加えた位置となる。矩形領域８３の下端は、メッシュ基準点６６および矩形領域８３内の境界点のうち、最も下にある点のｙ座標値から「Ｌｂ」を減算した位置となる。
【００８８】
なお、ＲＳＢの中には、左右の両端のメッシュ基準点の上下方向の差が「Ｌｂ×２」を超えるものがある。このようなＲＳＢを、特にＲＣＢ（Right-Side Connected Box）と呼ぶ。同様に、左右の両端のメッシュ基準点の上下方向の差が「Ｌｂ×２」を超えているＬＳＢを、特にＬＣＢ（Left-Side Connected Box）と呼ぶ。
【００８９】
図１６は、ＲＣＢの矩形領域の生成例を示す図である。図１６の例では、メッシュ基準点６７から右に向かって境界点を順番に探索したとき、すでに探索された他の境界点のいずれか１つとの上下方向の差が「Ｌｂ×２」以下という条件を満たさない境界点より先に、別のメッシュ基準点６８が探索対象となっている。この場合、メッシュ基準点６７からメッシュ基準点６８までのすべての境界点を含む矩形領域８４が生成される。すなわち、メッシュ基準点６７を左端、メッシュ基準点６８を右端とする矩形領域８４が生成される。矩形領域８４の上端は、メッシュ基準点６７，６８、および矩形領域８４内の境界点のうち、最も上にある点のｙ座標値に「Ｌｂ」を加えた位置となる。矩形領域８４の下端は、メッシュ基準点６７，６８、および矩形領域８４内の境界点のうち、最も下にある点のｙ座標値から「Ｌｂ」を減算した位置となる。
【００９０】
このようにして右の両端のメッシュ基準点６７，６８の上下方向の差が「Ｌｂ×２」を超えている場合でも、１つの矩形領域８４が生成される。
なお、遺伝情報点に対応するメッシュ基準点から矩形領域を生成しても、いずれの矩形領域にも含まれない境界点が存在する場合がある。この場合、遺伝情報点とは関係のないメッシュ基準点が追加される。
【００９１】
図１７は、メッシュ基準点の追加例を示す図である。図１７の例では、矩形領域８１〜８３のいずれにも含まれない境界点のうち、最も左側にある境界点が、メッシュ基準点９１として追加設定されている。そして新たに設定したメッシュ基準点９１に基づいて、矩形領域８５が生成されている。
【００９２】
矩形領域８５には、メッシュ基準点９１から右に境界点を探索したとき、すでに探索された他の境界点のいずれか１つとの上下方向の差が「Ｌｂ×２」以下という条件を満たす境界点が含まれる。矩形領域８５に含まれる点のうち、メッシュ基準点９１が最も左側にある。そこで矩形領域８５の左端は、メッシュ基準点９１のｘ座標値から「Ｌｂ」を減算した位置となる。矩形領域８５の右端は、矩形領域８５内の最も右にある境界点のｘ座標値に「Ｌｂ」を加えた位置となる。矩形領域８５の上端は、メッシュ基準点９１、および矩形領域８５内の境界点のうち、最も上にある点のｙ座標値に「Ｌｂ」を加えた位置となる。矩形領域８５の下端は、メッシュ基準点９１、および矩形領域８５内の境界点のうち、最も下にある点のｙ座標値から「Ｌｂ」を減算した位置となる。
【００９３】
図１７の例では、矩形領域８５生成後も、矩形領域８１〜８３，８５のいずれにも含まれない境界点が存在する。そこで、矩形領域８１〜８３，８５のいずれにも含まれない境界点のうち、最も左側にある境界点が、メッシュ基準点９２として追加設定されている。そして、メッシュ基準点９２に基づいて、矩形領域８６が生成されている。矩形領域８６の上下・左右の範囲の決定方法は、矩形領域８５の場合と同様である。
【００９４】
このように、いずれの矩形領域にも含まれない境界点が存在する限り、メッシュ基準点の追加、および矩形領域の生成処理が繰り返される。その結果、すべての境界点がいずれかの矩形領域に含まれるように、矩形領域が生成される。
【００９５】
すべての境界点がいずれかの矩形領域に含まれるようになった後、ｙ軸方向の差が所定の閾値以下の隣接する２つの矩形領域は、１つの矩形領域に統合される。統合された後の矩形領域を、特にＭＢ（Merged Box）と呼ぶ。
【００９６】
図１８は、矩形領域の統合例を示す図である。図１８の例では、図１７に示した矩形領域８３と矩形領域８１とが、１つの矩形領域８７に統合されている。例えば、隣接する２つの矩形領域の上端の差と下端の差とが、共に閾値以下であれば、それらの矩形領域が１つのＭＢに統合される。
【００９７】
矩形領域を統合することで、矩形領域の数を減らすことができる。矩形領域の数が、少ないほど、生成された階層構造格子に基づく流体解析の処理量が少なくて済む。すなわち、矩形領域の統合により、流体解析の効率化が図れる。
【００９８】
以上のようにして、個体ごとに矩形領域が生成される。各個体の矩形領域は、個体に含まれる遺伝情報点の位置に応じて、一意に確定する。
最終的に各個体に応じて生成された矩形領域は、評価式によって評価される。評価は、例えば多目的ＧＡによって行われる。多目的ＧＡは、ＧＡを多目的最適化に拡張したものである。多目的ＧＡは、複数の目的関数を同時に最適化する多目的最適化問題を解くのに適している多目的ＧＡの手法としては、ＶＥＧＡ（Vector Evaluated Genetic Algorithms）、パレートランキング法、ＮＳＧＡ-II（Non-dominated Sorting Genetic Algorithm-II）、ＳＰＥＡ２（Strength Pareto Evolutionary Algorithm-II）などがある。
【００９９】
図１９は、多目的ＧＡによる最適解探索の一例を示す図である。例えば２つの目的関数ｆ1（ｘ）、ｆ2（ｘ）を同時に改善することが困難な場合、両方の目的関数の値ができるだけ小さくなる解が、パレート最適解となる。パレート最適解は複数存在し、パレート最適解の中から、ユーザが適切なものを選択する。
【０１００】
複数の目的関数を同時に改善する方法として、パレート最適解以外の方法を用いてもよい。例えば、目的関数に重みを乗算した以下の式によって、評価値（ｓｃｏｒｅ）を計算してもよい。
ｓｃｏｒｅ＝ｗ1ｆ1＋ｗ2ｆ2＋ｗ3ｆ3＋ｗ4ｆ4＋ｗ5ｆ5
ｆ1、ｆ2、ｆ3、ｆ4、ｆ5は、それぞれ目的関数である。ｗ1、ｗ2、ｗ3、ｗ4、ｗ5は、目的関数ごとの重みである。
【０１０１】
次に、個体値評価処理の手順を、フローチャートを参照して詳細に説明する。
図２０は、個体評価処理の手順の一例を示すフローチャートである。以下、図２０に示す処理をステップ番号に沿って説明する。
【０１０２】
［ステップＳ１１１］矩形領域生成部１４０は、各遺伝情報点に対応するメッシュ基準点を選択する。例えば矩形領域生成部１４０は、遺伝情報点と各メッシュ基準点との距離を計算し、最も距離が短いメッシュ基準点を選択する。
【０１０３】
［ステップＳ１１２］矩形領域生成部１４０は、遺伝情報点に対応する各メッシュ基準点に基づいて、矩形領域を生成する。矩形領域生成処理の詳細は後述する（図２１参照）。
【０１０４】
［ステップＳ１１３］矩形領域生成部１４０は、ｙ軸方向のずれが閾値「Ｌ＿ｍｅｒｇｅ」以下の隣接する矩形領域を、１つの矩形領域に統合する。矩形領域生成部１４０は、例えば隣接する２つの矩形領域それぞれの、上端（ｙ軸の最大値）の差と下端（ｙ軸の最小値）の差とを計算する。そして矩形領域生成部１４０は、上端の差と下端の差との両方が「Ｌ＿ｍｅｒｇｅ」以下であれば、それらの矩形領域を１つの矩形領域に統合する。統合後の矩形領域は、統合された２つの矩形領域を包含する最小の領域である。
【０１０５】
［ステップＳ１１４］矩形領域生成部１４０は、個体の評価値を算出する。そして矩形領域生成部１４０は、算出した評価値を、個体群１２１内の評価した個体のレコードに設定する。
【０１０６】
次に、矩形領域生成処理の手順について説明する。
図２１は、矩形領域生成処理の手順の一例を示すフローチャートである。以下、図２１に示す処理をステップ番号に沿って説明する。
【０１０７】
［ステップＳ１２１］矩形領域生成部１４０は、パラメタ記憶部１３０からパラメタ群１３１を取得する。
［ステップＳ１２２］矩形領域生成部１４０は、未選択のメッシュ基準点を１つ選択する。例えば矩形領域生成部１４０は、「Ｎ＿ｇｅｎｅ」個のメッシュ基準点に、ｘ座標値が小さい方から順に番号を付与する。そして矩形領域生成部１４０は、番号の小さい方から順にメッシュ基準点を選択する。ここで、ｉ番目のメッシュ基準点を選択したものとする。
【０１０８】
［ステップＳ１２３］矩形領域生成部１４０は、選択したｉ番目のメッシュ基準点と、ｉ＋１番目のメッシュ基準点（次のメッシュ基準点）とｙ軸方向の差が、２Ｌｂ以下か否かを判断する。矩形領域生成部１４０は、ｙ軸方向の差が２Ｌｂ以下であれば、処理をステップＳ１２４に進める。矩形領域生成部１４０は、ｙ軸方向の差が２Ｌｂを超えていれば、処理をステップＳ１２６に進める。
【０１０９】
［ステップＳ１２４］矩形領域生成部１４０は、ｘ軸の座標値がｉ番目のメッシュ基準点とｉ＋１番目のメッシュ基準点との間の境界点のうち、隣の境界点（メッシュ基準点を含む）とのｙ軸方向の差が２Ｌｂを超える境界点があるか否かを判断する。矩形領域生成部１４０は、該当する境界点があれば、処理をステップＳ１２６に進める。また矩形領域生成部１４０は、該当する境界点がなければ、処理をステップＳ１２５に進める。
【０１１０】
［ステップＳ１２５］矩形領域生成部１４０は、ｉ番目のメッシュ基準点とｉ＋１番目のメッシュ基準点とを両端とする矩形領域を生成する。生成される矩形領域には、ｘ軸の座標値がｉ番目のメッシュ基準点とｉ＋１番目のメッシュ基準点との間のすべての境界点が含まれる。生成された矩形領域の境界線は、矩形領域に含まれるいずれの点からも、Ｌｂ以上の距離を有する。生成された矩形領域は、図１４に示したようなＪＢである。その後、処理がステップＳ１２８に進められる。
【０１１１】
［ステップＳ１２６］矩形領域生成部１４０は、ｉ番目のメッシュ基準点からｘ軸の正の方向へ、探索済みの境界点（ｉ番目のメッシュ基準点を含む）のいずれかとのｙ軸方向の差が２Ｌｂ以下の境界点を、ｉ＋１番目のメッシュ基準点まで探索する。矩形領域生成部１４０は、探索済みの境界点のすべてとｙ軸方向の差が２Ｌｂを超える境界点が見つかった場合、その境界点の直前に探索した境界点までを、生成する矩形領域に含める。また矩形領域生成部１４０は、探索済みの境界点のすべてとｙ軸方向の差が２Ｌｂを超える境界点が見つかる前に、ｉ＋１番目のメッシュ基準点に達した場合、ｉ＋１番目のメッシュ基準点までを、生成する矩形領域に含める。さらに矩形領域生成部１４０は、探索済みの境界点のすべてとｙ軸方向の差が２Ｌｂを超える境界点が見つかる前に、すべての境界点の探索が完了した場合、ｉ番目のメッシュ基準点より右側のすべての基準点を、生成する矩形領域に含める。
【０１１２】
［ステップＳ１２７］矩形領域生成部１４０は、ステップＳ１２６の探索で矩形領域に含めるものと判断した境界点を含む矩形領域を生成する。生成された矩形領域の境界線は、矩形領域に含まれるいずれの点からも、Ｌｂ以上の距離を有する。生成された矩形領域は、図１５に示したようなＲＳＢ、または図１６に示したようなＲＣＢである。
【０１１３】
［ステップＳ１２８］矩形領域生成部１４０は、すべてのメッシュ基準点を選択したか否かを判断する。矩形領域生成部１４０は、すべてのメッシュ基準点が選択済みとなった場合、処理をステップＳ１２９に進める。また矩形領域生成部１４０は、未選択のメッシュ基準点がある場合、処理をステップＳ１２２に進める。
【０１１４】
［ステップＳ１２９］矩形領域生成部１４０は、左側に矩形領域が生成されていないメッシュ基準点があるか否かを判断する。矩形領域生成部１４０は、該当するメッシュ基準点がある場合、処理をステップＳ１３０に進める。また、矩形領域生成部１４０は、該当するメッシュ基準点がない場合、処理をステップＳ１３３に進める。
【０１１５】
［ステップＳ１３０］矩形領域生成部１４０は、左側に矩形領域がないメッシュ基準点の１つを選択する。
［ステップＳ１３１］矩形領域生成部１４０は、ステップＳ１３０で選択したメッシュ基準点からｘ軸負の方向へ、探索済みの境界点（選択したメッシュ基準点を含む）のいずれかとのｙ軸方向の差が２Ｌｂ以下の境界点を、ｉ−１番目のメッシュ基準点まで探索する。矩形領域生成部１４０は、探索済みの境界点のすべてとｙ軸方向の差が２Ｌｂを超える境界点が見つかった場合、その境界点の直前に探索した境界点までを、生成する矩形領域に含める。また矩形領域生成部１４０は、探索済みの境界点のすべてとｙ軸方向の差が２Ｌｂを超える境界点が見つかる前に、他のメッシュ基準点に達した場合、そのメッシュ基準点までを、生成する矩形領域に含める。さらに矩形領域生成部１４０は、探索済みの境界点のすべてとｙ軸方向の差が２Ｌｂを超える境界点が見つかる前に、すべての境界点の探索が完了した場合、選択したメッシュ基準点より左側のすべての基準点を、生成する矩形領域に含める。
【０１１６】
［ステップＳ１３２］矩形領域生成部１４０は、ステップＳ１３１の探索で矩形領域に含めるものと判断した境界点を含む矩形領域を生成する。生成された矩形領域の境界線は、矩形領域に含まれるいずれの点からも、Ｌｂ以上の距離を有する。生成された矩形領域は、図１５に示したようなＬＳＢ、または図示していないＬＣＢである。その後、矩形領域生成部１４０は、処理をステップＳ１２９に進める。
【０１１７】
［ステップＳ１３３］矩形領域生成部１４０は、いずれの矩形領域にも含まれていない境界点が存在するか否かを判断する。矩形領域生成部１４０は、該当する境界点が存在する場合、処理をステップＳ１３４に進める。また矩形領域生成部１４０は、該当する境界点が存在しない場合、矩形領域生成処理を終了する。
【０１１８】
［ステップＳ１３４］矩形領域生成部１４０は、矩形領域に含まれない最も左側（ｘ座標値が最小）の境界点を、新たにメッシュ基準点とする。その後、矩形領域生成部１４０は、処理をステップＳ１２６に進める。
【０１１９】
このようにして、個体に応じた矩形領域が生成される。そして個体の評価が行われた後、ＧＡにより個体群の進化処理が行われる。
次に、個体群の進化処理について詳細に説明する。
【０１２０】
図２２は、個体群の進化処理の手順の一例を示す図である。まず矩形領域生成部１４０は、個体群１２１から、２つの個体１２１ａ，１２１ｂをランダムに抽出する。矩形領域生成部１４０は、抽出した個体１２１ａ，１２１ｂそれぞれを、「親＃１」、「親＃２」とする。そして矩形領域生成部１４０は、２つの親の遺伝情報点セットについて、交叉、突然変異などの操作を行い、複数の子の個体２０１，２０２，・・・を生成する。矩形領域生成部１４０は、２つの親の個体１２１ａ，１２１ｂと、複数の子の個体２０１，２０２，・・・の中から、次世代に残す個体を選択する。例えば矩形領域生成部１４０は、親の個体１２１ａ，１２１ｂと、複数の子の個体２０１，２０２，・・・のうち、最も評価の高い（評価値の値が小さい）１個体を選択する。また、矩形領域生成部１４０は、ルーレット選択により、１個体を選択する。ルーレット選択では、評価の高い個体ほど選択される確率が高く設定される。
【０１２１】
矩形領域生成部１４０は、選択した２つの個体２００ａ，２００ｂを、個体群１２１に追加する。これにより、個体群１２１の１世代の進化が完了する。なお、個体群１２１から、２つの個体１２１ａ，１２１ｂを抽出する際にも、例えばルーレット選択により抽出する個体を選択することで、評価の高い個体ほど抽出されやすくしてもよい。
【０１２２】
次に、２つの親の個体１２１ａ，１２１ｂからの複数の子の個体２０１，２０２，・・・の生成手順について、具体的に説明する。
図２３は、子の個体の生成手順の一例を示す図である。矩形領域生成部１４０は、親の個体１２１ａ，１２１ｂそれぞれから１つずつ選択した遺伝情報点を含む、遺伝情報点ペア２１１，２１２，２１３，・・・，２１ｎを生成する。例えば親の個体１２１ａ，１２１ｂ内の遺伝情報点は、ｘ座標値が小さい点から順に並んでいるものとする。このとき矩形領域生成部１４０は、個体１２１ａ，１２１ｂ内での順番が同じ遺伝情報点同士を、同じ遺伝情報点ペアに含める。例えば遺伝情報点ペア２１１には、個体１２１ａ内の先頭の遺伝情報点（ｘ１１，ｙ１１）と個体１２１ｂ内の先頭の遺伝情報点（ｘ２１，ｙ２１）とが含まれる。また遺伝情報点ペア２１２には、個体１２１ａ内の２番目の遺伝情報点（ｘ１２，ｙ１２）と個体１２１ｂ内の２番目の遺伝情報点（ｘ２２，ｙ２２）とが含まれる。各個体に含まれる遺伝情報点の数は「Ｎ＿ｇｅｎｅ」個であるため、遺伝情報点ペア２１２，２１３，・・・，２１ｎも「Ｎ＿ｇｅｎｅ」個生成される。
【０１２３】
矩形領域生成部１４０は、遺伝情報点ペア２１１，２１２，２１３，・・・，２１ｎごとに、子の個体の生成処理を行う。例えば遺伝情報点ペア２１１に基づいて子の個体を生成する場合、矩形領域生成部１４０は、遺伝情報点ペア２１１に対して交叉処理を行う。交叉は、例えばblend crossover operator（ＢＬＸ−α）と呼ばれる手法を用いることができる。
【０１２４】
例えば矩形領域生成部１４０は、遺伝情報点ペア２１１に含まれる２つの遺伝情報点に基づいて、次世代発生範囲２２１を定める。次世代発生範囲２２１は、遺伝情報点ペア２１１に含まれる２つの遺伝情報点を含む矩形領域である。次世代発生範囲２２１の上端のｙ座標は、２つの遺伝情報点のｙ座標値のうちの大きい方の値に、所定値αを加算した値となる。次世代発生範囲２２１の下端のｙ座標は、２つの遺伝情報点のｙ座標値のうちの小さい方の値から、所定値αを減算した値となる。次世代発生範囲２２１の右端のｘ座標は、２つの遺伝情報点のｘ座標値のうちの大きい方の値に、所定値αを加算した値となる。次世代発生範囲２２１の左端のｘ座標は、２つの遺伝情報点のｘ座標値のうちの小さい方の値から、所定値αを減算した値となる。
【０１２５】
矩形領域生成部１４０は、次世代発生範囲２２１内に、ランダムに「Ｎ＿ｃｈｉｌｄ」個の子の遺伝情報点を生成する。そして矩形領域生成部１４０は、子の遺伝情報点ごとに、「親＃１」である個体１２１ａのうち、遺伝情報点ペア２１１に含まれない遺伝情報点は固定し、遺伝情報点ペア２１１に含まれている遺伝情報点（ｘ１１，ｙ１１）を、子の遺伝情報点に置き換える。遺伝情報点の置き換え後の個体が、子の個体である。これにより、遺伝情報点ペア２１１から、「Ｎ＿ｃｈｉｌｄ」個の子の個体が生成される。
【０１２６】
矩形領域生成部１４０は、同様の処理を、遺伝情報点ペア２１１以外の遺伝情報点ペア２１２，２１３，・・・，２１ｎに対しても実行する。「Ｎ＿ｇｅｎｅ」個の遺伝情報点ペア２１１，２１２，２１３，・・・，２１ｎそれぞれに対して、「Ｎ＿ｃｈｉｌｄ」個の子の個体が生成されるため、最終的に、「Ｎ＿ｃｈｉｌｄ×Ｎ＿ｇｅｎｅ」個の子の個体が生成される。
【０１２７】
このようにして生成された個の個体を用いて、図２２に示した処理によって個体群１２１の進化処理が行われる。
図２４は、ＧＡによる個体群進化処理の手順の一例を示すフローチャートである。以下、図２４に示す処理をステップ番号に沿って説明する。
【０１２８】
［ステップＳ１４１］矩形領域生成部１４０は、個体群１２１から、ＧＡにおける親となる個体を２つ、ランダムに抽出する。
［ステップＳ１４２］矩形領域生成部１４０は、親の２つの個体から、ＢＬＸαにより、「Ｎ＿ｃｈｉｌｄ×Ｎ＿ｇｅｎｅ」個の子の個体を生成する。
【０１２９】
［ステップＳ１４３］矩形領域生成部１４０は、未評価の子の個体を１つ選択する。
［ステップＳ１４４］矩形領域生成部１４０は、選択した個体を評価する。個体評価処理の詳細は、図２０に示した通りである。
【０１３０】
［ステップＳ１４５］矩形領域生成部１４０は、すべての子の個体の評価が完了したか否かを判断する。矩形領域生成部１４０は、すべての子の個体の評価が完了していれば、処理をステップＳ１４６に進める。また矩形領域生成部１４０は、未評価の子の個体があれば、処理をステップＳ１４３に進める。
【０１３１】
［ステップＳ１４６］矩形領域生成部１４０は、親の２つの個体と「Ｎ＿ｃｈｉｌｄ×Ｎ＿ｇｅｎｅ」個の子の個体との中から、評価値が最良の個体Ａを選択する。
［ステップＳ１４７］矩形領域生成部１４０は、親の２つの個体と「Ｎ＿ｃｈｉｌｄ×Ｎ＿ｇｅｎｅ」個の子の個体との中から、ルーレット選択により、１つの個体Ｂを選択する。
【０１３２】
［ステップＳ１４８］矩形領域生成部１４０は、ステップＳ１４６，Ｓ１４７で選択した２つの個体Ａ，Ｂを、個体群１２１に追加する。
このような個体群の進化が、図１０のステップＳ１０５における終了条件を満たすまで、繰り返し実行される。そして、図１０のステップＳ１０７において、評価が最良（評価値が最小）の個体が、最適解として出力されることとなる。
【０１３３】
なお、階層構造格子を生成する場合、矩形領域生成部１４０は、最初に最も内側の矩形領域を生成し、その矩形領域に基づいて、１段階外側の矩形領域を生成する。
図２５は、階層的に生成された矩形領域の一例を示す図である。矩形領域生成部１４０は、例えば内側矩形領域２３１の４端の点を境界点として、外側矩形領域２３２を生成する。ただし、同じ内側矩形領域に属する４端の点は、同じ外側矩形領域２３２に属するものとする。矩形領域生成部１４０は、並列処理の観点から、外側矩形領域２３２それぞれに含まれる、内側矩形領域２３１の数はなるべく均等にする。これにより、内側と外側の接続処理のＣＰＵ間の負荷を均等化できる。
【０１３４】
外側矩形領域２３２は、内側矩形領域２３１と同様の処理で生成できる。ただし、内側矩形領域２３１より大きなサイズの矩形領域とするため、矩形領域生成部１４０は、パラメタの取り扱い、またはパラメタの値を変更する。
【０１３５】
例えば矩形領域生成部１４０は、「Ｌｂ」（境界点から矩形領域端までの距離）は、外側の矩形領域生成時には、内側の矩形領域端からの距離として扱う。なお各パラメタの値は、内側の矩形領域生成用と、外側の矩形領域生成用とで別々に設定しておくことができる。その場合、ユーザは、例えば外側の矩形領域生成用の「Ｎ＿ｇｅｎｅ」については、最内側の矩形領域生成用の「Ｎ＿ｇｅｎｅ」と同じ値か、より小さい値を設定する。生成する矩形領域が外側になるほど「Ｎ＿ｇｅｎｅ」の値を小さくすれば、矩形領域の数は外側の矩形領域ほど少なくなる。ただし、「Ｎ＿ｇｅｎｅ」を調整しなくても、生成する矩形領域が外側になるほど「Ｌ＿ｍｅｒｇｅ」を大きく調整すれば、隣接した矩形領域同士がマージされやすくなり、矩形領域の数を減らすことができる。
【０１３６】
階層的に矩形領域を生成することで、階層ごとの最適解の個体が得られる。階層ごとに最適解として出力された個体に基づいて、多階層の矩形領域が一意に確定する。そして、最適解の個体に対応する矩形領域に基づいて、３次元の階層構造格子が生成できる。すなわち、適切な階層構造格子を自動で生成することができる。そして生成した３次元の階層構造格子を用いて流体シミュレーションなどの解析を実行することで、十分な解析精度による解析を、効率的に実行することが可能となる。
【０１３７】
〔第３の実施の形態〕
次に、第３の実施の形態について説明する。第３の実施の形態は、矩形領域を生成する平面の物体を回転させることで、より評価の高い矩形領域を生成できるようにしたものである。
【０１３８】
図２６は、解析空間内の物体の回転の一例を示す図である。ＣＦＤにおいては、重力と垂直な水平座標内であれば、解析空間内の物体を回転させても解析計算に支障が出ないことが多い。図２６には、水平面に置かれた物体３０１を、重力に垂直な方向から見たときの、物体３０１周囲の流体の流れと、流体の動きを解析するための矩形領域３０２とが示されている。
【０１３９】
例えば、物体３０１の周りの流体の動きを解析する場合を考える。流体は、物体３０１に近いほど速度が低速であり、離れるほど高速になる。流体の速度が低速な場所では、細かな矩形領域３０２を生成し、詳細に解析することが求められる。
【０１４０】
図２６に示すような場合、例えば物体３０１の重心を軸にして、物体３０１を水平面内で回転させることができる。物体３０１を回転させることで、物体３０１の領域と流体の領域との境界も回転する。境界の回転に伴い、境界上に設定された境界点の座標も、回転に伴う変換が行われる。なお、物体３０１を回転させても、矩形領域は、ｘ軸に並行な辺とｙ軸に並行な辺とで構成する。
【０１４１】
そこで、第３の実施の形態では、矩形領域生成部１４０は、物体を様々な角度で回転させ、回転角の異なる物体それぞれの境界に基づいて矩形領域を生成する。このようにして生成した矩形領域の中から、評価の高い矩形領域を特定することで、より評価の高い矩形領域が生成可能となる。
【０１４２】
図２７は、物体を回転させる場合の個体の生成例を示す図である。例えば矩形領域生成部１４０は、最初の個体３１１，３１２，・・・を、遺伝情報点をランダムに生成することで生成する。そして矩形領域生成部１４０は、回転させていない（回転角０度）の境界線４０に基づいて、個体３１１，３１２，・・・それぞれに対応する矩形領域を生成する。矩形領域生成部１４０は、生成した矩形領域を評価し、個体３１１，３１２，・・・の中から、生成される矩形領域の評価が最も高い個体３１ｘ（最適個体）を抽出する。
【０１４３】
矩形領域生成部１４０は、抽出した個体３１ｘを、境界線４０回転後の矩形領域生成処理に流用する。このとき、矩形領域生成部１４０は、個体３１ｘ内の遺伝情報点の座標に対して、Δａ度だけ回転させる座標変換を行ってもよい。
【０１４４】
例えば矩形領域生成部１４０は、新たな個体３２１，３２２，・・・を、遺伝情報点をランダムに生成することで生成する。そして矩形領域生成部１４０は、所定の角度（Δａ度）回転させた境界線４０（回転角Δａ度）に基づいて、個体３２１，３２２，・・・を生成する。次に矩形領域生成部１４０は、生成した個体３２１，３２２，・・・と、直前の回転角における最適個体である個体３１ｘとの、それぞれに対応する矩形領域を生成する。そして、矩形領域生成部１４０は、生成した矩形領域を評価し、個体３２１，３２２，・・・と、直前の回転角における最適個体である個体３１ｘとの中から、生成される矩形領域の評価が最も高い個体３２ｘ（最適個体）を抽出する。
【０１４５】
矩形領域生成部１４０は、抽出した個体３２ｘを、境界線４０回転後の矩形領域生成処理に流用する。このとき矩形領域生成部１４０は、個体３２ｘ内の遺伝情報点の座標に対して、Δａ度だけ回転させる座標変換を行ってもよい。
【０１４６】
その後、矩形領域生成部１４０は、個体３３１，３３２，・・・を生成し、個体３２ｘ，３３１，３３２，・・・それぞれに対応する、所定の角度（Δａ度）だけさらに回転させた境界線４０（回転角２Δａ度）に基づく矩形領域を生成する。矩形領域生成部１４０は、生成した矩形領域を評価し、個体３２ｘ，３３１，３３２，・・・の中から、生成される矩形領域の評価が最も高い個体３３ｘ（最適個体）を抽出し、回転の座標変換を行う。
【０１４７】
次に、矩形領域生成部１４０は、新たな個体３４１，３４２，・・・を生成し、個体３３ｘ，３４１，３４２，・・・それぞれに対応する、所定の角度（Δａ度）だけさらに回転させた境界線４０（回転角３Δａ度）に基づく矩形領域を生成する。矩形領域生成部１４０は、生成した矩形領域を評価し、個体３３ｘ，３４１，３４２，・・・の中から、生成される矩形領域の評価が最も高い個体（最適個体）を抽出する。
【０１４８】
以後、矩形領域生成部１４０は、所定の回転角度になるまで、境界線４０の回転と矩形領域の生成を繰り返す。なお回転の中心は、例えば、境界線４０を包含する矩形領域の重心（２つの対角線の交点）である。
【０１４９】
第３の実施の形態では、各個体からどのような矩形領域が生成されるかは、遺伝情報点セットと、境界線４０の回転角度とによって決まる。従って矩形領域生成部１４０は、各個体の情報として、その個体を評価したときの回転角度についても記録しておく。
【０１５０】
図２８は、第３の実施の形態における個体群の情報の一例を示す図である。第３の実施の形態では、個体群３５０における各個体を示すレコードには、回転角度が含まれる。回転角度は、その個体を評価したときの境界線４０の回転角度である。
【０１５１】
次に、境界線４０の回転を伴う場合の矩形領域生成処理の手順について詳細に説明する。
図２９は、境界の回転を伴う場合の矩形領域生成処理の一例を示すフローチャートである。なお、図２９に示す処理のうち、ステップＳ２０１〜Ｓ２０４，Ｓ２０７については、図１０に示した第２の実施の形態におけるステップＳ１０１〜Ｓ１０４，Ｓ１０６と同様の処理である。以下、図２９に示す第２の実施の形態と異なる処理をステップ番号に沿って説明する。
【０１５２】
［ステップＳ２０５］矩形領域生成部１４０は、１つの回転角度における繰り返し処理の終了条件が満たされたか否かを判断する。例えば矩形領域生成部１４０は、現在の回転角度におけるＧＡによる進化回数が限界値「Ｎ＿ｅｖｏｌｕｔｉｏｎ」を超えたか、あるいは評価値が所定値以上の個体が検出された場合、終了条件を満たしたと判断する。矩形領域生成部１４０は、終了条件を満たした場合、処理をステップＳ２０９に進める。また矩形領域生成部１４０は、終了条件が満たされていない場合、処理をステップＳ２０６に進める。
【０１５３】
［ステップＳ２０６］矩形領域生成部１４０は、次に行う進化が、回転後の最初の進化か否かを判断する。ステップＳ２１０における回転を実行してから、まだステップＳ２０８を実行していない場合、最初の進化であると判断する。矩形領域生成部１４０は、次に行うのが最初の進化であれば、処理をステップＳ２０８に進める。また、矩形領域生成部１４０は、次に行うのが、回転後の２回目以降の進化であれば、処理をステップＳ２０７に進める。
【０１５４】
［ステップＳ２０８］矩形領域生成部１４０は、他の回転角度での最適解を流用した、ＧＡによる個体群３５０の進化処理を行う。例えば矩形領域生成部１４０は、現在の回転角度より、Δａだけ少ない回転角度における最適解を流用する。この処理の詳細は後述する（図３０参照）。矩形領域生成部１４０は、その後、処理をステップＳ２０２に進める。
【０１５５】
［ステップＳ２０９］矩形領域生成部１４０は、すべての回転角度での探索が終了したか否かを判断する。矩形領域生成部１４０は、すべての回転角度での探索が終了した場合、処理をステップＳ２１１に進める。未探索の回転角度があれば、処理をステップＳ２１０に進める。
【０１５６】
［ステップＳ２１０］矩形領域生成部１４０は、境界線４０をΔａ度だけ回転させる。例えば矩形領域生成部１４０は、境界点の座標に対して、Δａ度だけ回転させる座標変換処理を行う。矩形領域生成部１４０は、その後、処理をステップＳ２０１に進める。
【０１５７】
［ステップＳ２１１］矩形領域生成部１４０は、個体群３５０の中で、評価値が最小の個体を、最適解として出力する。
次に、他の回転角度での最適解を流用した、ＧＡによる個体群３５０の進化処理について詳細に説明する。
【０１５８】
図３０は、他の回転角度での最適解を流用したＧＡによる個体群の進化処理の手順の一例を示すフローチャートである。図３０に示した処理のうち、ステップＳ２２１、Ｓ２２２、Ｓ２２４〜Ｓ２２９については、それぞれ図２４に示した第２の実施の形態の処理のステップＳ１４１〜Ｓ１４８と同じである。すなわち、第２の実施の形態と異なるステップＳ２２３の処理は、以下の通りである。
【０１５９】
［ステップＳ２２３］矩形領域生成部１４０は、現在の回転角度にΔａを減算（−Δａ）した回転角度における最適解を、子の個体として追加する。この際、矩形領域生成部１４０は、最適解の個体に含まれる遺伝情報点の座標については、現在の境界線４０の回転角度に合わせて、Δａ度だけ回転させる座標変換を行ってもよい。
【０１６０】
このように、ステップＳ２２３が追加されることで、他の回転角度における最適解を流用した個体群３５０の進化処理が行われる。他の回転角度における最適解を流用することで、評価の高い個体を、効率的に求めることができる。
【０１６１】
図３１は、他の回転角度の最適解の流用の有無による矩形領域の総面積の違いを示す図である。図３１の例では、回転角度を−１０度から＋１０度の範囲で、１度ずつ（Δａ＝１度）回転させた場合の例である。実線の折れ線が、他の回転角度の最適解を流用した場合であり、破線の折れ線が、他の回転角度の最適解を流用しない場合である。他の回転角度の最適解を流用しない場合、矩形領域の総面積は、最大で４．２７に達する。それに対して、他の回転角度の最適解を流用することで、矩形領域を２．３７まで縮小することができる。
【０１６２】
また、他の回転角度の最適解を流用した場合の折れ線から、境界の回転を行わず、例えば回転角度が０度の場合のみで矩形領域を生成した場合より、回転させた場合の方が、より面積の小さい矩形領域が生成できることが分かる。
【０１６３】
図３２は、ＧＡで最適化することによる矩形領域の総面積の縮小例を示す図である。ＧＡを有効に利用できない場合（ＧＡによる繰り返しを行わない場合、悪くすれば矩形領域の総面積が４．２７になってしまうが、ＧＡ有効に利用して最適化することで、総面積が２．３７の矩形領域を生成可能である。
【０１６４】
図３３は、他の回転角度の最適解の流用の有無による収束性の違いを示す図である。図３３では、上段に他の回転角度の最適解を流用しない場合のグラフを示しており、下段に他の回転角度の最適解を流用した場合のグラフを示している。
【０１６５】
例えば、４３世代目は、回転角度が８度のときの最初の世代である。前の回転角度における最適解を流用しない場合、何世代も繰り返すことで、段階的に、総面積の小さい矩形領域を生成する個体が得られている。それに対して、前の回転角度における最適解を流用した場合、４３世代目の次の世代においても、非常に総面積の小さい矩形領域を生成する個体が得られる。
【０１６６】
このように、他の回転角度の最適解の流用によって、解が収束するまでの繰り返し回数が少なくなる。すなわち、１つの回転角度におけるＧＡの世代数を少なくしても、良好な解が得られる。その結果、矩形領域の生成効率が向上する。
【０１６７】
図３４は、他の回転角度の最適解の流用の有無による同じ回転角度で得られる矩形領域の総面積の違いを示す図である。図３４では、他の回転角度の最適解を流用した場合における、角度ごとの最良の矩形領域の総面積を黒丸で示している。また他の回転角度の最適解を流用しない場合における、角度ごとの最良の矩形領域の総面積を白丸で示している。図３４に示した例では、近傍回転角での最適解の流用によって、２０の回転角度のうち、１６の回転角度で結果が改善している。
【０１６８】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０１６９】
１  境界線
２ａ，２ｂ，・・・  境界点
３ａ〜３ｃ  遺伝情報点
４ａ〜４ｃ  基準点
５ａ〜５ｄ  矩形領域
１０  分割領域生成装置
１１  記憶部
１１ａ  境界情報
１１ｂ  個体群
１２  処理部
【図１】
2019159952.tif 000003
【図２】
2019159952.tif 000004
【図３】
2019159952.tif 000005
【図４】
2019159952.tif 000006
【図５】
2019159952.tif 000007
【図６】
2019159952.tif 000008
【図７】
2019159952.tif 000009
【図８】
2019159952.tif 000010
【図９】
2019159952.tif 000011
【図１０】
2019159952.tif 000012
【図１１】
2019159952.tif 000013
【図１２】
2019159952.tif 000014
【図１３】
2019159952.tif 000015
【図１４】
2019159952.tif 000016
【図１５】
2019159952.tif 000017
【図１６】
2019159952.tif 000018
【図１７】
2019159952.tif 000019
【図１８】
2019159952.tif 000020
【図１９】
2019159952.tif 000021
【図２０】
2019159952.tif 000022
【図２１】
2019159952.tif 000023
【図２２】
2019159952.tif 000024
【図２３】
2019159952.tif 000025
【図２４】
2019159952.tif 000026
【図２５】
2019159952.tif 000027
【図２６】
2019159952.tif 000028
【図２７】
2019159952.tif 000029
【図２８】
2019159952.tif 000030
【図２９】
2019159952.tif 000031
【図３０】
2019159952.tif 000032
【図３１】
2019159952.tif 000033
【図３２】
2019159952.tif 000034
【図３３】
2019159952.tif 000035
【図３４】
2019159952.tif 000036