JP2019159952A - 分割領域生成プログラム、分割領域生成装置、および分割領域生成方法 - Google Patents

分割領域生成プログラム、分割領域生成装置、および分割領域生成方法 Download PDF

Info

Publication number
JP2019159952A
JP2019159952A JP2018047217A JP2018047217A JP2019159952A JP 2019159952 A JP2019159952 A JP 2019159952A JP 2018047217 A JP2018047217 A JP 2018047217A JP 2018047217 A JP2018047217 A JP 2018047217A JP 2019159952 A JP2019159952 A JP 2019159952A
Authority
JP
Japan
Prior art keywords
genetic information
information point
rectangular
rectangular area
boundary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018047217A
Other languages
English (en)
Other versions
JP7029056B2 (ja
Inventor
裕介 大石
Yusuke Oishi
裕介 大石
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018047217A priority Critical patent/JP7029056B2/ja
Priority to US16/291,043 priority patent/US20190286770A1/en
Publication of JP2019159952A publication Critical patent/JP2019159952A/ja
Application granted granted Critical
Publication of JP7029056B2 publication Critical patent/JP7029056B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/23Design optimisation, verification or simulation using finite element methods [FEM] or finite difference methods [FDM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/15Vehicle, aircraft or watercraft design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/10Numerical modelling

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Automation & Control Theory (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Physiology (AREA)
  • Genetics & Genomics (AREA)
  • Artificial Intelligence (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】適切な階層構造格子を自動で生成する。【解決手段】分割領域生成装置10の処理部12は、複数の第1遺伝情報点セットを生成する。次に処理部12は、複数の第1遺伝情報点セットそれぞれについて、境界線1上の複数の第1基準点の決定と、複数の第1矩形領域5a〜5dの生成とを行う。次に処理部12は、遺伝的アルゴリズムにより複数の第2遺伝情報点セットを生成する。次に処理部12は、複数の第2遺伝情報点セットそれぞれについて、境界線1上の複数の第2基準点の決定と、複数の第2矩形領域の生成とを行う。次に処理部12は、複数の第1遺伝情報点セットおよび複数の第2遺伝情報点セットのうちの1つを特定する。そして処理部12は、特定した第1遺伝情報点セットまたは第2遺伝情報点セットに応じて生成された複数の第1矩形領域または複数の第2矩形領域に基づいて、対象領域を分割する。【選択図】図1

Description

本発明は、分割領域生成プログラム、分割領域生成装置、および分割領域生成方法に関する。
数値流体力学(CFD:computational fluid dynamics)の分野では、流体の状態の時間変化をコンピュータで解析することが行われている。例えば、自動車の走行時における、自動車の周囲の流体の動きを、コンピュータでシミュレーションすることができる。例えば流体計算には、スーパーコンピュータのような高性能計算機が使用される。
コンピュータにより流体計算を行う場合、解析対象の空間内にメッシュ(格子)を生成する。そして、コンピュータにより、例えば、メッシュの格子点における流体の物理量(速度や圧力)を計算する。
流体計算を行う場合、メッシュのサイズが小さい方が、計算精度が上がるその一方、メッシュのサイズが小さいと、計算量が増大し、計算に時間がかかる。そこで、解析空間内に配置された物体(自動車、飛行機などの3次元オブジェクト)と流体との境界付近では、詳細な計算を行うためにメッシュの大きさを小さくし、物体から離れた位置では、メッシュの大きさを大きくすることが考えられる。
流体計算に用いるメッシュには、非構造格子と構造格子とがある。非構造格子は、多面体で構成される要素が不規則に並んでいる格子である。構造格子は、6面体の要素が各軸方向に規則的に並んでいる格子である。
非構造格子は、幾何学的自由度が高く、領域ごとに異なるサイズにすることも容易である。ただし、非構造格子は、計算性能が出にくいという欠点がある。また非構造格子を採用する場合、メッシュ生成にも多大な時間を要する。
それに対して、構造格子は、メッシュの生成が容易であり、データをメモリ上に規則的に配置することができるため、計算性能も出しやすい。例えば計算機では、データアクセスが連続な構造格子の処理に適したSIMD(Single Instruction/Multiple Data)演算器の有効活用が重要となる。SIMD演算器は、一つの命令を同時に複数のデータに適用し、並列に演算する処理(SIMD演算)が可能な演算器である。SIMD演算を効率的に行うには、並列で処理する複数のデータが、メモリ内の連続の記憶領域に格納されていることが求められる。構造格子であれば、並列処理させる複数のデータをメモリ内の連続領域に配置することが容易であり、SIMD演算による処理の効率化が図りやすい。
また構造格子は、メッシュの幾何学的な自由度が低いものの、階層構造格子とすることで、領域ごとにメッシュサイズを変えることが可能である。階層構造格子は、入れ子状の矩形領域からなる構造格子である。すなわち階層構造格子では、低解像度格子の内側に高解像度格子が設定される。これにより、限られた領域だけを高解像度で解析することができる。
なお、メッシュを用いた解析手法の1つに、解適合格子法(AMR:Adaptive Mesh Refinement)という手法もある。解適合格子法は、解析によって得られる物理量の勾配に基づいて、メッシュを再構築する解析手法である。解適合格子法では、物理量が急激に変化する領域の解像度を適確に高めることができる。ただし、解適合格子法では、計算機上のデータ構造が複雑になったり、隣り合う格子点のメモリ番地が連続しなかったりするなどの要因により、連続して処理するデータのメモリ上での配列が連続になりにくく、SIMD演算器を用いた計算性能が出にくい。
このように階層構造格子を用いた解析手法は、他の手法に比べてコンピュータの計算性能を引き出しやすく、次世代の解析方法と考えられている。
なお、数値シミュレーションは、様々な分野に利用されている。例えば、時間的に変化する実測値を与え、この実測値を考慮することによって正確な室内の温度変化を推定するシステムがある。また数値解析の効率化に関する様々な手法が考えられている。例えば、解析対象領域の一部で空間分解能が高い解析を行う場合でも、全領域において計算格子を細かくすることなく、全体の計算量が増加を防ぎ、計算の高速性を実現でき、高精度解析にかかる計算コストを低減させることができる電磁場解析装置がある。また、有限要素法での要素分割の数を大幅に減らすことができる情報処理装置もある。さらに、品質の高い格子データの生成が可能になる格子データ生成装置もある。
特開2016−099104号公報 特開2003−330977号公報 特開2005−258812号公報 特開2011−134279号公報
階層構造格子を用いた高精度の解析を効率的に行うには、品質のよい階層構造格子を生成することが重要となる。従来、解析空間内への階層構造格子は、ユーザの手入力によって生成されている。階層構造格子を生成する場合、ユーザは、境界点をすべて包含し、計算精度の向上と計算の効率化との両立を図るための多数の条件を同時に満たすように、矩形領域を設定することとなる。様々な条件を満たした階層構造格子を、ユーザの手入力によって生成するには、非常に時間がかかり、生成された階層構造格子の品質も不十分なものになりやすい。
適切な階層構造格子を自動で生成することができれば、流体解析などの様々な解析を効率的に実施することができる。しかし、様々な制約を満たす適切な階層構造格子を自動で生成する技術がない。例えば、特許文献4に示されているように格子データを生成可能な格子データ生成装置はあるが、この格子データ生成装置は非構造格子を生成するものであり、適切な階層構造格子を生成することはできない。
なお、適切な階層構造格子を自動生成するには、各階層のメッシュが十分に最適化されていることが重要である。各階層のメッシュを自動で最適化することができれば、それらの階層を重ね合わせることで、品質のよい階層構造格子を生成できる。
1つの側面では、本発明は、階層構造格子の各階層のメッシュを自動で生成できるようにすることを目的とする。
1つの案では、コンピュータに、以下の処理を実行させる分割領域生成プログラムが提供される。
分割領域生成プログラムに基づいて、コンピュータは、対象領域内の一平面上での、対象領域に配置される物体が占める領域と他の領域との境界線を示す境界情報を参照し、対象領域の分割度合いに関連する第1設定値に応じた数の複数の第1遺伝情報点をそれぞれが含む、複数の第1遺伝情報点セットを生成する。次にコンピュータは、複数の第1遺伝情報点セットそれぞれについて、第1遺伝情報点セットに含まれる複数の第1遺伝情報点に基づいて、境界線上の複数の第1基準点を決定する。次にコンピュータは、複数の第1遺伝情報点セットそれぞれについて、複数の第1基準点のうちの1つを含む辺と、複数の第1基準点のいずれも含まない辺とで形状が示されており、複数の第1基準点のいずれも含まない辺と境界線とが、境界線との距離を示す第2設定値だけ離れた、複数の第1矩形領域を生成する。次にコンピュータは、複数の第1遺伝情報点セットから選択した被選択第1遺伝情報点セットに基づいて、遺伝的アルゴリズムにより、第1設定値に応じた数の複数の第2遺伝情報点をそれぞれが含む、複数の第2遺伝情報点セットを生成する。次にコンピュータは、複数の第2遺伝情報点セットそれぞれについて、第2遺伝情報点セットに含まれる複数の第2遺伝情報点に基づいて、境界線上の複数の第2基準点を決定する。次にコンピュータは、複数の第2遺伝情報点セットそれぞれについて、複数の第2基準点のうちの1つを含む辺と、複数の第2基準点のいずれも含まない辺とで形状が示されており、複数の第2基準点のいずれも含まない辺と境界線とが、第2設定値だけ離れた、複数の第2矩形領域を生成する。次にコンピュータは、複数の第1遺伝情報点セットそれぞれについての、第1遺伝情報点セットに基づいて生成された複数の第1矩形領域の評価と、複数の第2遺伝情報点セットそれぞれについての、第2遺伝情報点セットに基づいて生成された複数の第2矩形領域の評価に基づいて、複数の第1遺伝情報点セットおよび複数の第2遺伝情報点セットのうちの1つを特定する。次にコンピュータは、特定した第1遺伝情報点セットまたは第2遺伝情報点セットに応じて生成された複数の第1矩形領域または複数の第2矩形領域に基づいて、対象領域を分割する。
1態様によれば、階層構造格子の各階層のメッシュを自動で生成することができる。
第1の実施の形態に係る分割領域生成装置の一例を示す図である。 第2の実施の形態のシステム構成の一例を示す図である。 メッシュ生成装置のハードウェアの一構成例を示す図である。 メッシュ生成装置の機能の一例を示すブロック図である。 境界点リスト記憶部に格納されている情報の一例を示す図である。 個体情報記憶部に格納されている情報の一例を示す図である。 パラメタ記憶部に格納されている情報の一例を示す図である。 矩形領域記憶部に格納されている情報の一例を示す図である。 階層構造格子記憶部に格納されている情報の一例を示す図である。 矩形領域生成処理の手順の一例を示すフローチャートである。 個体評価の概略手順の一例を示す図である。 メッシュ基準点の選択例を示す図である。 矩形領域の生成例を示す図である。 JBの矩形領域の生成例を示す図である。 RSBおよびLSBの矩形領域の生成例を示す図である。 RCBの矩形領域の生成例を示す図である。 メッシュ基準点の追加例を示す図である。 矩形領域の統合例を示す図である。 多目的GAによる最適解探索の一例を示す図である。 個体評価処理の手順の一例を示すフローチャートである。 矩形領域生成処理の手順の一例を示すフローチャートである。 個体群の進化処理の手順の一例を示す図である。 子の個体の生成手順の一例を示す図である。 GAによる個体群進化処理の手順の一例を示すフローチャートである。 階層的に生成された矩形領域の一例を示す図である。 解析空間内の物体の回転の一例を示す図である。 物体を回転させる場合の個体の生成例を示す図である。 第3の実施の形態における個体群の情報の一例を示す図である。 境界の回転を伴う場合の矩形領域生成処理の一例を示すフローチャートである。 他の回転角度での最適解を流用したGAによる個体群の進化処理の手順の一例を示すフローチャートである。 他の回転角度の最適解の流用の有無による矩形領域の総面積の違いを示す図である。 GAで最適化することによる矩形領域の総面積の縮小例を示す図である。 他の回転角度の最適解の流用の有無による収束性の違いを示す図である。 他の回転角度の最適解の流用の有無による同じ回転角度で得られる矩形領域の総面積の違いを示す図である。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
第1の実施の形態は、流体計算などで用いられる階層構造格子を遺伝的アルゴリズム(GA:Genetic Algorithm)で最適化するものである。第1の実施の形態に係る分割領域生成方法では、GAを適用可能とするため、空間上の任意の点の分布から、階層構造格子を一意に決定できるようにしている。これにより、GAにより、空間上の任意の点の分布を最適化することで、適切な階層構造格子の自動生成が可能となる。
図1は、第1の実施の形態に係る分割領域生成装置の一例を示す図である。分割領域生成装置10は、記憶部11と処理部12とを有する。記憶部11は、例えば分割領域生成装置10が有するメモリ、またはストレージ装置である。処理部12は、例えば分割領域生成装置10が有するプロセッサ、または演算回路である。例えば、分割領域生成プログラムを、分割領域生成装置10内のプロセッサが実行することで、第1の実施の形態に係る分割領域生成方法が実現される。
記憶部11は、境界情報11aと個体群11bとを記憶する。境界情報11aは、対象領域内の一平面上での、対象領域に配置される物体が占める領域と他の領域との境界線1を示す情報である。個体群11bは、GAによる進化対象となる複数の個体の情報である。各個体は、遺伝情報点セットで表される。遺伝情報点セットは、遺伝情報点3a〜3cの集合である。
処理部12は、境界情報11aに基づいて、以下の手順で階層構造格子を生成する。
処理部12は、まず境界情報11aを参照し、対象領域の分割度合いに関連する第1設定値に応じた数の複数の遺伝情報点(第1遺伝情報点)をそれぞれが含む、GAにおける第1世代の複数の遺伝情報点セット(第1遺伝情報点セット)を生成する。例えば処理部12は、対象領域内の一平面上に、第1設定値に応じた数の点をランダムに生成し、生成した点を遺伝情報点として含む遺伝情報点セットを生成する。処理部12は、生成した第1世代の複数の遺伝情報点セットを、個体群11bとして記憶部11に格納する。
次に処理部12は、記憶部11から、個体群11bに含まれる、未評価の遺伝情報点セットを抽出する。GAによる次世代の個体が生成される前は、個体群11bに第1世代の遺伝情報点セットのみが含まれるため、第1世代の遺伝情報点セットが抽出される。
処理部12は、抽出した第1世代の遺伝情報点セットそれぞれについて、遺伝情報点セットに含まれる複数の遺伝情報点3a〜3cに基づいて、境界線1上の複数の基準点4a〜4c(第1基準点)を決定する。例えば処理部12は、境界線1上に予め設定された複数の境界点2a,2b,・・・のうち、第1遺伝情報点に距離が最も近い境界点を、第1遺伝情報点に対応する基準点4a〜4cに決定する。複数の境界点2a,2b,・・・は、境界線1上にばつ印で示されている。
次に処理部12は、第1世代の複数の遺伝情報点セットそれぞれについて、矩形領域5a〜5d(第1矩形領域)を生成する。矩形領域5a〜5dは、複数の基準点のうちの1つを含む辺と、複数の基準点のいずれも含まない辺とで、矩形の形状が示されている。矩形領域5a〜5dの複数の基準点のいずれも含まない辺と境界線1とは、境界線1との距離を示す第2設定値だけ離れている。
次に処理部12は、第1世代の複数の遺伝情報点セットそれぞれについて、その遺伝情報点セットに基づいて生成された複数の矩形領域5a〜5dを評価する。処理部12は、例えば、矩形領域5a〜5dの数や矩形領域5a〜5dの面積などを変数とする処理の評価式により、遺伝情報点セットの評価値を計算する。
以上で、第1世代の複数の遺伝情報点セットに関する処理が終了する。
次に処理部12は、個体群11bに含まれる複数の遺伝情報点セットに基づいて、GAにより第2世代の遺伝情報点セット(第2遺伝情報点セット)を生成する。例えば、処理部12は、個体群11bに含まれる第1世代の複数の遺伝情報点セットから、所定数の遺伝情報点セット(被選択第1遺伝情報点セット)を選択する。例えば処理部12は、第1世代の複数の遺伝情報点セットから、無作為に2つの遺伝情報点セットを選択する。また処理部12は、第1世代の複数の遺伝情報点セットのうち、評価が高い遺伝情報点セットの選択確率を高くして、確率的に2つの遺伝情報点セットを選択してもよい。
そして処理部12は、選択した遺伝情報点セットに基づいて、遺伝的アルゴリズムにより、第1設定値に応じた数の複数の遺伝情報点(第2遺伝情報点)をそれぞれが含む、第2世代の複数の遺伝情報点セットを生成する。第2世代の複数の遺伝情報点セットの生成時の遺伝的アルゴリズムでは、遺伝情報点セットに対する交叉や突然変異の処理が行われる。
次に処理部12は、第2世代の複数の遺伝情報点セットそれぞれについて、遺伝情報点セットに含まれる複数の遺伝情報点に基づいて、境界線1上の複数の基準点(第2基準点)を決定する。次に処理部12は、第2世代の複数の遺伝情報点セットそれぞれについて、複数の矩形領域5a〜5d(第2矩形領域)を生成する。次に処理部12は、第2世代の複数の遺伝情報点セットそれぞれについて、その遺伝情報点セットに基づいて生成された複数の矩形領域5a〜5dを評価する。
処理部12は、第2世代の複数の遺伝情報点セットの一部を、評価結果に基づいて選択する。例えば処理部12は、最も高い評価の遺伝情報点セットを選択する。また処理部12は、評価が高いほど選択確率を高くして、確率的に1または複数の遺伝情報点セットを選択する。処理部12は、選択した遺伝情報点セットを個体群11bに含める。
以上で、第2世代の複数の遺伝情報点セットに関する処理が終了する。以後、第2世代と同様に、個体群11bに含まれる遺伝情報点セットに基づいて、第3世代の以降の各世代の複数の遺伝情報点セットが生成され、その中の選択された一部の遺伝情報点セットが個体群11bに追加される。例えば処理部12は、予め指定された世代数分だけ、GAによる次世代の遺伝情報点セットの生成処理を繰り返す。
処理部12は、GAによる遺伝情報点セットの生成が終了すると、個体群11bに含まれる遺伝情報点セットそれぞれについての評価に基づいて、複数の遺伝情報点セットのうちの1つを、最適解として特定する。そして処理部12は、最適解である遺伝情報点セットに応じて生成された複数の矩形領域5a〜5dに基づいて、対象領域を分割する。
このようにして、GAを用いて、適切な複数の矩形領域5a〜5dを自動生成することができる。すなわち、複数の遺伝情報点セットから、複数の矩形領域5a〜5dを一意に決定することができるため、GAによって交叉などの操作を行う対象は遺伝情報点セットだけで済む。しかも、複数の矩形領域5a〜5dを生成するための条件については、GAの遺伝情報の操作に含まれない。その結果、GAによる次世代の生成が容易となる。GAを有効に利用することができれば、評価の高い遺伝情報点セットを効率的に見つけ出すことが容易となり、適切な複数の矩形領域5a〜5dの自動生成を確実に実行できる。
複数の矩形領域5a〜5dは、階層構造格子の1階層のメッシュとして利用できる。同様の複数の矩形領域5a〜5dの生成を、解像度の異なる複数の階層について実行することで、階層構造格子における各階層のメッシュが生成できる。このようにして、高品質の階層構造格子が生成される。
なお処理部12は、複数の矩形領域5a〜5dの生成において、例えば次の2つの条件が満たされる場合、対向する2辺に基準点を含む矩形領域5b,5cを生成する。第1の条件は、一平面の第1軸(例えばx軸)の座標値で複数の基準点を並べたときに隣り合う2つの基準点について、第1軸に垂直な第2軸(例えばy軸)の座標値の差が所定値以下であることである。第2の条件は、境界線1における2つの基準点に挟まれる部分に設定されているすべての境界点について、隣接する他の境界点との第2軸の座標値の差が所定値以下であることである。2つの条件が満たされた場合、処理部12は、2つの第1基準点、および境界線1上の2つの基準点に挟まれる部分に設定されているすべての境界点を含む矩形領域5b,5cを生成する。
また処理部12は、複数の矩形領域5a〜5dの生成において、1辺のみに基準点を含む矩形領域5a,5dを生成する場合もある。例えば処理部12は、複数の基準点のうちの1つを起点とする。そして処理部12は、起点の基準点から、第1軸の正または負の方向に、第1軸の座標値が起点の基準点に近い順に境界点を探索対象として探索を行う。次に処理部12は、起点の基準点の第2軸の座標値、および起点の基準点と探索対象の境界点との間の他の境界点の第2軸の座標値のすべてと、探索対象の境界点の第2軸の座標値とを比較する。処理部12は、探索対象の境界点の第2軸の座標値が、比較した座標値すべてと所定値より大きな差を有する場合、起点の基準点、および起点の基準点と探索対象の境界点との間の他の境界点を含む矩形領域5a,5dを生成する。この矩形領域5a,5dには、最後に探索対象となった境界点は含まれない。
なお、遺伝情報点に対応する基準点に基づく矩形領域5a〜5dの生成を完了しても、矩形領域5a〜5dのいずれにも含まれない境界点が存在する場合がある。その場合、処理部12は、いずれの矩形領域5a〜5dにも含まれない境界点のうちの1つを追加基準点とし、追加基準点に基づいて、新たな矩形領域を生成する。これにより、境界点のすべてが、いずれかの矩形領域に含まれるように、複数の矩形領域を生成できる。すなわち、第1設定値の値が小さすぎたり、遺伝情報点の位置に偏りがあったりした場合でも、基準点を補い、矩形領域の生成条件(すべての基準点がいずれかの矩形領域に含まれること)に適合した、適切な矩形領域を生成できる。
さらに処理部12は、1つの第1基準点を共有する2つの矩形領域における、共有する基準点を含むそれぞれの辺と並行方向のずれが、所定値以下の場合、2つの矩形領域を1つの矩形領域に統合することもできる。例えば処理部12は、2つの矩形領域における、共有する基準点を含むそれぞれの辺の端部の差(距離)が、両端で所定値以下であれば、ずれが所定値以下であると判断する。このように、ずれの少ない隣接する矩形領域を統合することで、矩形領域の数を減らすことができる。矩形領域の数が少なければ、矩形領域に基づいて生成される階層構造格子のメッシュ数も少なくなり、階層構造格子を用いた解析処理を効率的に行うことができる。
なお階層構造格子を作成する場合、処理部12は、例えば矩形領域を階層的に生成する。すなわち処理部12は、図1に示した方法により最も内側の矩形領域を作成後、その外側の矩形領域を、同様の方法で作成することができる。例えば処理部12は、最適解として特定した遺伝情報点セットに応じて生成された複数の矩形領域(内側矩形領域)のうちの、1または複数の矩形領域を包含する外側矩形領域を生成する。その際、処理部12は、例えば内側矩形領域の辺を境界線1とし、内側矩形領域の角を境界点として、図1に示した方法で外側矩形領域を生成する。
生成した矩形領域に基づく階層構造格子を用いた解析によっては、境界線1を回転させてもよい場合がある。境界線1が回転可能であれば、様々な角度の境界線1の配置ごとに、矩形領域の生成を行えば、より評価の高い遺伝情報点セットが得られる可能性がある。
そこで、処理部12は、例えば、境界線1の回転が許容される場合、一平面内で、境界線1を所定の角度ずつ回転させる。そして処理部12は、図1に示した処理を、境界線1を回転させるごとに実行する。これにより、より評価の高い矩形領域が生成できる。
なお境界線1を、微小な角度ずつ複数回回転させるとき、前の回転角度における最適解を、次の回転角度におけるGAで流用することもできる。例えば第1回転角度から第2回転角度へ境界線1を回転させた後の第2遺伝情報点セットの生成処理において、第1回転角度における最適解を第2回転角度のGAに流用できる。この場合、処理部12は、第1回転角度において生成した複数の遺伝情報点セットから、評価値に基づいて選択した遺伝情報点セットを、第2回転角度へ回転させた後の遺伝情報点セット(例えば、第2世代として生成する遺伝情報点セット)に含める。このように、他の回転角度での最適解を流用することで、各回転角度において生成される矩形領域の評価が向上するとともに、良好な評価の矩形領域を効率的に生成できる。
〔第2の実施の形態〕
次に、第2の実施の形態について説明する。第2の実施の形態は、3次元モデルの周囲の流体の動きを、自動生成した階層構造格子を用いて解析するシステムである。
図2は、第2の実施の形態のシステム構成の一例を示す図である。図2に示すシステムでは、ネットワーク20を介して、3次元モデル生成装置31、メッシュ生成装置100、および流体解析装置32が接続されている。3次元モデル生成装置31は、解析空間内に配置される自動車や飛行機などを表す3次元モデルを生成する。メッシュ生成装置100は、3次元モデル生成装置31から、3次元モデルの表面形状を示す境界点リストを取得し、境界点リストに基づいて、階層構造格子を生成する。流体解析装置32は、3次元モデル生成装置31が生成した3次元モデルと、メッシュ生成装置100が生成した階層構造格子とに基づいて、流体シミュレーションを実行し、3次元モデルの周囲の流体の物理量の時間変化を解析する。
図3は、メッシュ生成装置のハードウェアの一構成例を示す図である。メッシュ生成装置100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
メモリ102は、メッシュ生成装置100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に必要な各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
バス109に接続されている周辺機器としては、ストレージ装置103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース107は、メッシュ生成装置100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した分割領域生成装置10も、図3に示したメッシュ生成装置100と同様のハードウェアにより実現することができる。
メッシュ生成装置100は、例えばコンピュータ読み取り可能な記録媒体に記録された分割領域生成プログラムを実行することにより、第2の実施の形態の処理機能を実現する。メッシュ生成装置100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、メッシュ生成装置100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。またメッシュ生成装置100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
次に、階層構造格子を生成するためにメッシュ生成装置100が有する機能について説明する。
図4は、メッシュ生成装置の機能の一例を示すブロック図である。メッシュ生成装置100は、境界点リスト記憶部110、個体情報記憶部120、パラメタ記憶部130、矩形領域生成部140、矩形領域記憶部150、3次元格子生成部160、および階層構造格子記憶部170を有する。
境界点リスト記憶部110は、境界点リスト111を記憶する。境界点リスト111は、3次元モデル生成装置31で生成された3次元モデルが占める領域と、3次元モデル周囲の流体が占める領域との境界面上の複数の境界点のリストである。例えば、メモリ102またはストレージ装置103の記憶領域の一部が、境界点リスト記憶部110として使用される。
個体情報記憶部120は、矩形領域生成部140が生成した個体群121を記憶する。個体群121は、複数の個体の情報である。各個体は、複数の遺伝情報点(遺伝情報点セット)を含んでいる。遺伝情報点セットに基づいて、複数の矩形領域が一意に決定される。例えば、メモリ102またはストレージ装置103の記憶領域の一部が、個体情報記憶部120として使用される。
パラメタ記憶部130は、階層構造格子の生成時に使用するパラメタ群131を記憶する。パラメタ群131は、例えばユーザにより、キーボード22などを用いて入力される。例えば、メモリ102またはストレージ装置103の記憶領域の一部が、パラメタ記憶部130として使用される。
矩形領域生成部140は、境界点リスト記憶部110、個体情報記憶部120、パラメタ記憶部130に格納された情報を用いて、2次元の矩形領域を生成する。矩形領域生成部140は、生成した矩形領域の情報を、矩形領域記憶部150に格納する。また矩形領域生成部140は、最終的に評価が最も高く判定された個体を示す情報を、最適解として3次元格子生成部160に出力する。
3次元格子生成部160は、最適解である個体の矩形領域に基づいて、3次元の階層構造格子171を生成する。例えば3次元格子生成部160は、2次元の平面上に設定された矩形領域を、その平面に垂直方向に引き延ばして3次元化する。3次元化により、矩形が6面体に変化する。そして3次元格子生成部160は、引き延ばした方向の軸に垂直な複数の平面を境界とする複数の要素に、6面体を分割する。3次元格子生成部160は、例えば、等間隔の複数の平面により6面体を分割する。そして3次元格子生成部160は、生成した階層構造格子171を、階層構造格子記憶部170に格納する。
矩形領域記憶部150は、矩形領域情報151を記憶する。矩形領域情報151は、個体群121に含まれる各個体に対応して生成された矩形領域の情報である。例えば、メモリ102またはストレージ装置103の記憶領域の一部が、矩形領域記憶部150として使用される。
階層構造格子記憶部170は、階層構造格子171を記憶する。階層構造格子171は、最も評価の高い個体に対する矩形領域を、3次元に拡張したものである。例えば、メモリ102またはストレージ装置103の記憶領域の一部が、階層構造格子記憶部170として使用される。
なお、図4に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
次に、各記憶部に格納される情報について詳細に説明する。
図5は、境界点リスト記憶部に格納されている情報の一例を示す図である。境界点リスト記憶部110に格納されている境界点リスト111には、解析空間内の所定の平面上での、3次元モデル内と流体との境界線40上の複数の境界点41それぞれの座標が設定されている。境界線40は、例えば重力方向に垂直な平面(水平面)上の線である。
図6は、個体情報記憶部に格納されている情報の一例を示す図である。個体情報記憶部120に格納されている個体群121は、例えば各個体の情報が1つのレコードに示されている。各レコードには、例えば個体番号、遺伝情報点セット、および評価値が含まれる。個体番号は、個体の識別番号である。遺伝情報点セットは、個体の特徴を示す複数の遺伝情報点それぞれの座標である。評価値は、個体に基づいて生成した矩形領域の評価値である。
図7は、パラメタ記憶部に格納されている情報の一例を示す図である。パラメタ記憶部130に格納されているパラメタ群131に含まれるパラメタは、メッシュ特性パラメタとGA関連パラメタとに分類される。メッシュ特性パラメタには、「Lb」と「L_merge」とがある。「Lb」は、境界点から矩形領域の端までの距離である。「L_merge」は、隣接する矩形領域をマージするか否かの判断基準となる閾値である。GA関連パラメタには、「N_population」、「N_child」、「N_gene」、および「N_evolution」がある。「N_population」は、最初に生成する個体群に含まれる個体の数である。「N_child」は、交叉で作られる子の数である。「N_gene」は、個体に含まれる遺伝情報点の数である。「N_evolution」は、最適化のためのループ処理の最大繰り返し回数である。
図8は、矩形領域記憶部に格納されている情報の一例を示す図である。矩形領域記憶部150に格納されている矩形領域情報151は、例えば各個体に応じて生成された複数の矩形領域の情報が、1つのレコードに示されている。各レコードには、個体番号と矩形領域リストが含まれる。矩形領域リストには、例えば、複数の矩形領域それぞれの、4つの頂点の座標が示されている。
図9は、階層構造格子記憶部に格納されている情報の一例を示す図である。階層構造格子記憶部170に格納されている階層構造格子171には、例えば階層構造格子の格子点の位置を示す格子点情報171aと、階層構造格子の6面体の要素を示す要素情報171bとが含まれる。格子点情報171aには、各格子点を示す格子点番号に対応付けて、その格子点の3次元空間内での座標が設定されている。要素情報171bには、各要素を示す要素番号に対応付けて、その要素の頂点にある複数の格子点を示す格子点リストが設定されている。格子点リストには、複数の格子点番号が含まれる。
次に、矩形領域生成部140における、矩形領域の生成処理について詳細に説明する。
図10は、矩形領域生成処理の手順の一例を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
[ステップS101]矩形領域生成部140は、初期の個体群121を生成する。例えば矩形領域生成部140は、パラメタ記憶部130を参照し、「N_population」に示される個数の個体を生成する。矩形領域生成部140は、各個体を生成する際には、個体の特徴を示す「N_gene」個の遺伝情報点を生成する。矩形領域生成部140は、生成した遺伝情報点の位置をランダムに設定する。矩形領域生成部140は、生成した複数の個体を、個体群121として個体情報記憶部120に格納する。この時点では、個体情報記憶部120に格納された個体群121の各個体の評価値は、いずれも未設定(空欄)である。
[ステップS102]矩形領域生成部140は、個体群121の中から、未評価の個体を1つ選択する。未評価の個体とは、個体情報記憶部120において評価値が未設定の個体である。
[ステップS103]矩形領域生成部140は、選択した個体に対する個体評価処理を行う。個体評価処理の詳細は後述する(図20参照)。なお、第2の実施の形態では、個体評価処理で算出される個体値は、値が小さいほど評価が高いものとする。
[ステップS104]矩形領域生成部140は、すべての個体を評価したか否かを判断する。例えば矩形領域生成部140は、個体情報記憶部120内のすべての個体に評価値が設定されている場合、すべての個体が評価済みであると判断する。矩形領域生成部140は、すべての個体が評価済みとなった場合、処理をステップS105に進める。また矩形領域生成部140は、未評価の個体がある場合、処理をステップS102に進める。
[ステップS105]矩形領域生成部140は、矩形領域生成の終了条件を満たしたか否かを判断する。終了条件は、例えば評価値が閾値より小さい個体が出現したか、あるいはGAによる進化回数が限界値「N_evolution」を超えたことである。矩形領域生成部140は、終了条件が満たされた場合、処理をステップS107に進める。また矩形領域生成部140は、終了条件が満たされていなければ、処理をステップS106に進める。
[ステップS106]矩形領域生成部140は、GAによる個体群121の進化処理を実行する。この処理の詳細は後述する(図24参照)。個体群の進化処理により、選択、交叉、突然変異などのGAの操作で生成された個体が個体群121に追加される。そこで矩形領域生成部140は、新たな個体を評価するため、処理をステップS102に進める。
なお個体群121を進化させる過程で、生成した子の個体の評価を行っている場合、その評価値を記憶しておけば、ステップS103で再度評価せずに済む。その場合、矩形領域生成部140は、ステップS106の終了後、処理をステップS105に進める。
[ステップS107]矩形領域生成部140は、個体群121に含まれる個体のうち、評価値が最小の個体を、最適解として出力する。例えば矩形領域生成部140は、評価値が最小の個体の個体番号を、3次元格子生成部160に送信する。
このようにして、最適解の個体が特定される。そして最適解の個体に対応する矩形領域に基づいて、3次元格子生成部160により、3次元の階層構造格子が生成される。
以下、個体の評価手順について詳細に説明する。
図11は、個体評価の概略手順の一例を示す図である。図11の例では、個体の遺伝情報点セットには、4つの遺伝情報点51〜54の座標が示されている。矩形領域生成部140は、遺伝情報点51〜54それぞれについて、複数の境界点41のうち、最も距離が近い境界点を抽出する。そして、矩形領域生成部140は、抽出した境界点を、メッシュ基準点61〜64とする。
矩形領域生成部140は、メッシュ基準点が、矩形領域の右端または左端になるように、複数の矩形領域71〜76を生成する。そして矩形領域生成部140は、生成した矩形領域を評価関数により評価し、評価値を得る。評価関数として、複数の指標を用いた評価関数を用いることができる。指標としては、矩形領域の面積、矩形領域の数、矩形領域のサイズに応じたシミュレーションを行ったときの時間ステップの刻み幅などが用いられる。例えば、各指標の値に重みを乗算し、それらを加算した結果を、評価値(score)とすることができる。このような評価値で各個体を評価し、評価値の小さい(評価が高い)個体を抽出することで、多目的最適化が実現できる。
以下、図12〜図19を参照して、個体値評価矩形領域生成手順について説明する。
図12は、メッシュ基準点の選択例を示す図である。図12の例では、「N_gene」が「2」であるものとする。この場合、1つの個体に対応付けて、ランダムな位置に2個の遺伝情報点56,57が生成される。そして、2個の遺伝情報点56,57それぞれに対して距離が最も近い境界点が、メッシュ基準点66,67として選択される。
なお、図12の例では、横軸がx軸、縦軸がy軸である。また境界点を丸印で示しており、境界点を中心とする上下「Lb」の幅を、その境界点を通る線分で表している。
選択されたメッシュ基準点66,67を基準にして、矩形領域が生成される。
図13は、矩形領域の生成例を示す図である。図13の例では、3つの矩形領域81〜83が生成されている。
図13に示した矩形領域81〜83のうち、矩形領域81は、左右の両側に隣接する他の矩形領域82,83が存在する。このような矩形領域81を、特にJB(Joint Box)と呼ぶこととする。矩形領域82は、左側にのみ隣接する他の矩形領域81が存在する(隣接する矩形領域の並びの右端である)。このような矩形領域82を、特にRSB(Right-Side Box)と呼ぶこととする。矩形領域83は、右側にのみ隣接する他の矩形領域81が存在する(隣接する矩形領域の並びの左端である)。このような矩形領域83を、特にLSB(Left-Side Box)と呼ぶこととする。
図14は、JBの矩形領域の生成例を示す図である。JBの矩形領域81の場合、メッシュ基準点66から右に向かって、隣のメッシュ基準点67が探索される。そしてメッシュ基準点66とメッシュ基準点67の上下方向の差が「Lb×2」以下であり、かつメッシュ基準点66とメッシュ基準点67との間にある全境界点が、隣の境界点との上下方向の差が「Lb×2」以下であるかという条件が判定される。図14の例では、この条件が満たされている。条件が満たされた場合、メッシュ基準点66からメッシュ基準点67までのすべての境界点を含む矩形領域81が生成される。すなわち、メッシュ基準点66を左端、メッシュ基準点67を右端とする矩形領域81が生成される。矩形領域81の上端は、メッシュ基準点66,67、および矩形領域81内の境界点のうち、最も上にある点のy座標値に「Lb」を加えた位置となる。矩形領域81の下端は、メッシュ基準点66,67、および矩形領域81内の境界点のうち、最も下にある点のy座標値から「Lb」を減算した位置となる。
図15は、RSBおよびLSBの矩形領域の生成例を示す図である。RSBの矩形領域82の場合、メッシュ基準点67から右に向かって境界点が順番に探索される。この探索では、探索対象の境界点について、すでに探索された他の境界点のいずれか1つとの上下方向の差が「Lb×2」以下という条件を満たすか否かが判断される。図15の例では、他のメッシュ基準点より先に、条件を満たさない境界点が検出されたため、条件を満たす各境界点を含む矩形領域82が生成されている。矩形領域82の左端は、メッシュ基準点67である。矩形領域82の右端は、矩形領域82内の最も右にある境界点のx座標値に「Lb」を加えた位置となる。矩形領域82の上端は、メッシュ基準点67、および矩形領域82内の境界点のうち、最も上にある点のy座標値に「Lb」を加えた位置となる。矩形領域82の下端は、メッシュ基準点67、および矩形領域82内の境界点のうち、最も下にある点のy座標値から「Lb」を減算した位置となる。
LSBの矩形領域83の場合、メッシュ基準点66から左に向かって境界点が順番に探索される。この探索では、探索対象の境界点について、すでに探索された他の境界点のいずれか1つとの上下方向の差が「Lb×2」以下という条件を満たすか否かが判断される。図15の例では、探索方向のすべての境界点が条件を満たしているため、探索されたすべての境界点を含む矩形領域83が生成される。矩形領域83の右端は、メッシュ基準点66である。矩形領域83の左端は、探索により検出された境界点のうちの最も左にある境界点のx座標値から「Lb」を減算した位置となる。矩形領域83の上端は、メッシュ基準点66、および矩形領域83内の境界点のうち、最も上にある点のy座標値に「Lb」を加えた位置となる。矩形領域83の下端は、メッシュ基準点66および矩形領域83内の境界点のうち、最も下にある点のy座標値から「Lb」を減算した位置となる。
なお、RSBの中には、左右の両端のメッシュ基準点の上下方向の差が「Lb×2」を超えるものがある。このようなRSBを、特にRCB(Right-Side Connected Box)と呼ぶ。同様に、左右の両端のメッシュ基準点の上下方向の差が「Lb×2」を超えているLSBを、特にLCB(Left-Side Connected Box)と呼ぶ。
図16は、RCBの矩形領域の生成例を示す図である。図16の例では、メッシュ基準点67から右に向かって境界点を順番に探索したとき、すでに探索された他の境界点のいずれか1つとの上下方向の差が「Lb×2」以下という条件を満たさない境界点より先に、別のメッシュ基準点68が探索対象となっている。この場合、メッシュ基準点67からメッシュ基準点68までのすべての境界点を含む矩形領域84が生成される。すなわち、メッシュ基準点67を左端、メッシュ基準点68を右端とする矩形領域84が生成される。矩形領域84の上端は、メッシュ基準点67,68、および矩形領域84内の境界点のうち、最も上にある点のy座標値に「Lb」を加えた位置となる。矩形領域84の下端は、メッシュ基準点67,68、および矩形領域84内の境界点のうち、最も下にある点のy座標値から「Lb」を減算した位置となる。
このようにして右の両端のメッシュ基準点67,68の上下方向の差が「Lb×2」を超えている場合でも、1つの矩形領域84が生成される。
なお、遺伝情報点に対応するメッシュ基準点から矩形領域を生成しても、いずれの矩形領域にも含まれない境界点が存在する場合がある。この場合、遺伝情報点とは関係のないメッシュ基準点が追加される。
図17は、メッシュ基準点の追加例を示す図である。図17の例では、矩形領域81〜83のいずれにも含まれない境界点のうち、最も左側にある境界点が、メッシュ基準点91として追加設定されている。そして新たに設定したメッシュ基準点91に基づいて、矩形領域85が生成されている。
矩形領域85には、メッシュ基準点91から右に境界点を探索したとき、すでに探索された他の境界点のいずれか1つとの上下方向の差が「Lb×2」以下という条件を満たす境界点が含まれる。矩形領域85に含まれる点のうち、メッシュ基準点91が最も左側にある。そこで矩形領域85の左端は、メッシュ基準点91のx座標値から「Lb」を減算した位置となる。矩形領域85の右端は、矩形領域85内の最も右にある境界点のx座標値に「Lb」を加えた位置となる。矩形領域85の上端は、メッシュ基準点91、および矩形領域85内の境界点のうち、最も上にある点のy座標値に「Lb」を加えた位置となる。矩形領域85の下端は、メッシュ基準点91、および矩形領域85内の境界点のうち、最も下にある点のy座標値から「Lb」を減算した位置となる。
図17の例では、矩形領域85生成後も、矩形領域81〜83,85のいずれにも含まれない境界点が存在する。そこで、矩形領域81〜83,85のいずれにも含まれない境界点のうち、最も左側にある境界点が、メッシュ基準点92として追加設定されている。そして、メッシュ基準点92に基づいて、矩形領域86が生成されている。矩形領域86の上下・左右の範囲の決定方法は、矩形領域85の場合と同様である。
このように、いずれの矩形領域にも含まれない境界点が存在する限り、メッシュ基準点の追加、および矩形領域の生成処理が繰り返される。その結果、すべての境界点がいずれかの矩形領域に含まれるように、矩形領域が生成される。
すべての境界点がいずれかの矩形領域に含まれるようになった後、y軸方向の差が所定の閾値以下の隣接する2つの矩形領域は、1つの矩形領域に統合される。統合された後の矩形領域を、特にMB(Merged Box)と呼ぶ。
図18は、矩形領域の統合例を示す図である。図18の例では、図17に示した矩形領域83と矩形領域81とが、1つの矩形領域87に統合されている。例えば、隣接する2つの矩形領域の上端の差と下端の差とが、共に閾値以下であれば、それらの矩形領域が1つのMBに統合される。
矩形領域を統合することで、矩形領域の数を減らすことができる。矩形領域の数が、少ないほど、生成された階層構造格子に基づく流体解析の処理量が少なくて済む。すなわち、矩形領域の統合により、流体解析の効率化が図れる。
以上のようにして、個体ごとに矩形領域が生成される。各個体の矩形領域は、個体に含まれる遺伝情報点の位置に応じて、一意に確定する。
最終的に各個体に応じて生成された矩形領域は、評価式によって評価される。評価は、例えば多目的GAによって行われる。多目的GAは、GAを多目的最適化に拡張したものである。多目的GAは、複数の目的関数を同時に最適化する多目的最適化問題を解くのに適している多目的GAの手法としては、VEGA(Vector Evaluated Genetic Algorithms)、パレートランキング法、NSGA-II(Non-dominated Sorting Genetic Algorithm-II)、SPEA2(Strength Pareto Evolutionary Algorithm-II)などがある。
図19は、多目的GAによる最適解探索の一例を示す図である。例えば2つの目的関数f1(x)、f2(x)を同時に改善することが困難な場合、両方の目的関数の値ができるだけ小さくなる解が、パレート最適解となる。パレート最適解は複数存在し、パレート最適解の中から、ユーザが適切なものを選択する。
複数の目的関数を同時に改善する方法として、パレート最適解以外の方法を用いてもよい。例えば、目的関数に重みを乗算した以下の式によって、評価値(score)を計算してもよい。
score=w11+w22+w33+w44+w55
1、f2、f3、f4、f5は、それぞれ目的関数である。w1、w2、w3、w4、w5は、目的関数ごとの重みである。
次に、個体値評価処理の手順を、フローチャートを参照して詳細に説明する。
図20は、個体評価処理の手順の一例を示すフローチャートである。以下、図20に示す処理をステップ番号に沿って説明する。
[ステップS111]矩形領域生成部140は、各遺伝情報点に対応するメッシュ基準点を選択する。例えば矩形領域生成部140は、遺伝情報点と各メッシュ基準点との距離を計算し、最も距離が短いメッシュ基準点を選択する。
[ステップS112]矩形領域生成部140は、遺伝情報点に対応する各メッシュ基準点に基づいて、矩形領域を生成する。矩形領域生成処理の詳細は後述する(図21参照)。
[ステップS113]矩形領域生成部140は、y軸方向のずれが閾値「L_merge」以下の隣接する矩形領域を、1つの矩形領域に統合する。矩形領域生成部140は、例えば隣接する2つの矩形領域それぞれの、上端(y軸の最大値)の差と下端(y軸の最小値)の差とを計算する。そして矩形領域生成部140は、上端の差と下端の差との両方が「L_merge」以下であれば、それらの矩形領域を1つの矩形領域に統合する。統合後の矩形領域は、統合された2つの矩形領域を包含する最小の領域である。
[ステップS114]矩形領域生成部140は、個体の評価値を算出する。そして矩形領域生成部140は、算出した評価値を、個体群121内の評価した個体のレコードに設定する。
次に、矩形領域生成処理の手順について説明する。
図21は、矩形領域生成処理の手順の一例を示すフローチャートである。以下、図21に示す処理をステップ番号に沿って説明する。
[ステップS121]矩形領域生成部140は、パラメタ記憶部130からパラメタ群131を取得する。
[ステップS122]矩形領域生成部140は、未選択のメッシュ基準点を1つ選択する。例えば矩形領域生成部140は、「N_gene」個のメッシュ基準点に、x座標値が小さい方から順に番号を付与する。そして矩形領域生成部140は、番号の小さい方から順にメッシュ基準点を選択する。ここで、i番目のメッシュ基準点を選択したものとする。
[ステップS123]矩形領域生成部140は、選択したi番目のメッシュ基準点と、i+1番目のメッシュ基準点(次のメッシュ基準点)とy軸方向の差が、2Lb以下か否かを判断する。矩形領域生成部140は、y軸方向の差が2Lb以下であれば、処理をステップS124に進める。矩形領域生成部140は、y軸方向の差が2Lbを超えていれば、処理をステップS126に進める。
[ステップS124]矩形領域生成部140は、x軸の座標値がi番目のメッシュ基準点とi+1番目のメッシュ基準点との間の境界点のうち、隣の境界点(メッシュ基準点を含む)とのy軸方向の差が2Lbを超える境界点があるか否かを判断する。矩形領域生成部140は、該当する境界点があれば、処理をステップS126に進める。また矩形領域生成部140は、該当する境界点がなければ、処理をステップS125に進める。
[ステップS125]矩形領域生成部140は、i番目のメッシュ基準点とi+1番目のメッシュ基準点とを両端とする矩形領域を生成する。生成される矩形領域には、x軸の座標値がi番目のメッシュ基準点とi+1番目のメッシュ基準点との間のすべての境界点が含まれる。生成された矩形領域の境界線は、矩形領域に含まれるいずれの点からも、Lb以上の距離を有する。生成された矩形領域は、図14に示したようなJBである。その後、処理がステップS128に進められる。
[ステップS126]矩形領域生成部140は、i番目のメッシュ基準点からx軸の正の方向へ、探索済みの境界点(i番目のメッシュ基準点を含む)のいずれかとのy軸方向の差が2Lb以下の境界点を、i+1番目のメッシュ基準点まで探索する。矩形領域生成部140は、探索済みの境界点のすべてとy軸方向の差が2Lbを超える境界点が見つかった場合、その境界点の直前に探索した境界点までを、生成する矩形領域に含める。また矩形領域生成部140は、探索済みの境界点のすべてとy軸方向の差が2Lbを超える境界点が見つかる前に、i+1番目のメッシュ基準点に達した場合、i+1番目のメッシュ基準点までを、生成する矩形領域に含める。さらに矩形領域生成部140は、探索済みの境界点のすべてとy軸方向の差が2Lbを超える境界点が見つかる前に、すべての境界点の探索が完了した場合、i番目のメッシュ基準点より右側のすべての基準点を、生成する矩形領域に含める。
[ステップS127]矩形領域生成部140は、ステップS126の探索で矩形領域に含めるものと判断した境界点を含む矩形領域を生成する。生成された矩形領域の境界線は、矩形領域に含まれるいずれの点からも、Lb以上の距離を有する。生成された矩形領域は、図15に示したようなRSB、または図16に示したようなRCBである。
[ステップS128]矩形領域生成部140は、すべてのメッシュ基準点を選択したか否かを判断する。矩形領域生成部140は、すべてのメッシュ基準点が選択済みとなった場合、処理をステップS129に進める。また矩形領域生成部140は、未選択のメッシュ基準点がある場合、処理をステップS122に進める。
[ステップS129]矩形領域生成部140は、左側に矩形領域が生成されていないメッシュ基準点があるか否かを判断する。矩形領域生成部140は、該当するメッシュ基準点がある場合、処理をステップS130に進める。また、矩形領域生成部140は、該当するメッシュ基準点がない場合、処理をステップS133に進める。
[ステップS130]矩形領域生成部140は、左側に矩形領域がないメッシュ基準点の1つを選択する。
[ステップS131]矩形領域生成部140は、ステップS130で選択したメッシュ基準点からx軸負の方向へ、探索済みの境界点(選択したメッシュ基準点を含む)のいずれかとのy軸方向の差が2Lb以下の境界点を、i−1番目のメッシュ基準点まで探索する。矩形領域生成部140は、探索済みの境界点のすべてとy軸方向の差が2Lbを超える境界点が見つかった場合、その境界点の直前に探索した境界点までを、生成する矩形領域に含める。また矩形領域生成部140は、探索済みの境界点のすべてとy軸方向の差が2Lbを超える境界点が見つかる前に、他のメッシュ基準点に達した場合、そのメッシュ基準点までを、生成する矩形領域に含める。さらに矩形領域生成部140は、探索済みの境界点のすべてとy軸方向の差が2Lbを超える境界点が見つかる前に、すべての境界点の探索が完了した場合、選択したメッシュ基準点より左側のすべての基準点を、生成する矩形領域に含める。
[ステップS132]矩形領域生成部140は、ステップS131の探索で矩形領域に含めるものと判断した境界点を含む矩形領域を生成する。生成された矩形領域の境界線は、矩形領域に含まれるいずれの点からも、Lb以上の距離を有する。生成された矩形領域は、図15に示したようなLSB、または図示していないLCBである。その後、矩形領域生成部140は、処理をステップS129に進める。
[ステップS133]矩形領域生成部140は、いずれの矩形領域にも含まれていない境界点が存在するか否かを判断する。矩形領域生成部140は、該当する境界点が存在する場合、処理をステップS134に進める。また矩形領域生成部140は、該当する境界点が存在しない場合、矩形領域生成処理を終了する。
[ステップS134]矩形領域生成部140は、矩形領域に含まれない最も左側(x座標値が最小)の境界点を、新たにメッシュ基準点とする。その後、矩形領域生成部140は、処理をステップS126に進める。
このようにして、個体に応じた矩形領域が生成される。そして個体の評価が行われた後、GAにより個体群の進化処理が行われる。
次に、個体群の進化処理について詳細に説明する。
図22は、個体群の進化処理の手順の一例を示す図である。まず矩形領域生成部140は、個体群121から、2つの個体121a,121bをランダムに抽出する。矩形領域生成部140は、抽出した個体121a,121bそれぞれを、「親#1」、「親#2」とする。そして矩形領域生成部140は、2つの親の遺伝情報点セットについて、交叉、突然変異などの操作を行い、複数の子の個体201,202,・・・を生成する。矩形領域生成部140は、2つの親の個体121a,121bと、複数の子の個体201,202,・・・の中から、次世代に残す個体を選択する。例えば矩形領域生成部140は、親の個体121a,121bと、複数の子の個体201,202,・・・のうち、最も評価の高い(評価値の値が小さい)1個体を選択する。また、矩形領域生成部140は、ルーレット選択により、1個体を選択する。ルーレット選択では、評価の高い個体ほど選択される確率が高く設定される。
矩形領域生成部140は、選択した2つの個体200a,200bを、個体群121に追加する。これにより、個体群121の1世代の進化が完了する。なお、個体群121から、2つの個体121a,121bを抽出する際にも、例えばルーレット選択により抽出する個体を選択することで、評価の高い個体ほど抽出されやすくしてもよい。
次に、2つの親の個体121a,121bからの複数の子の個体201,202,・・・の生成手順について、具体的に説明する。
図23は、子の個体の生成手順の一例を示す図である。矩形領域生成部140は、親の個体121a,121bそれぞれから1つずつ選択した遺伝情報点を含む、遺伝情報点ペア211,212,213,・・・,21nを生成する。例えば親の個体121a,121b内の遺伝情報点は、x座標値が小さい点から順に並んでいるものとする。このとき矩形領域生成部140は、個体121a,121b内での順番が同じ遺伝情報点同士を、同じ遺伝情報点ペアに含める。例えば遺伝情報点ペア211には、個体121a内の先頭の遺伝情報点(x11,y11)と個体121b内の先頭の遺伝情報点(x21,y21)とが含まれる。また遺伝情報点ペア212には、個体121a内の2番目の遺伝情報点(x12,y12)と個体121b内の2番目の遺伝情報点(x22,y22)とが含まれる。各個体に含まれる遺伝情報点の数は「N_gene」個であるため、遺伝情報点ペア212,213,・・・,21nも「N_gene」個生成される。
矩形領域生成部140は、遺伝情報点ペア211,212,213,・・・,21nごとに、子の個体の生成処理を行う。例えば遺伝情報点ペア211に基づいて子の個体を生成する場合、矩形領域生成部140は、遺伝情報点ペア211に対して交叉処理を行う。交叉は、例えばblend crossover operator(BLX−α)と呼ばれる手法を用いることができる。
例えば矩形領域生成部140は、遺伝情報点ペア211に含まれる2つの遺伝情報点に基づいて、次世代発生範囲221を定める。次世代発生範囲221は、遺伝情報点ペア211に含まれる2つの遺伝情報点を含む矩形領域である。次世代発生範囲221の上端のy座標は、2つの遺伝情報点のy座標値のうちの大きい方の値に、所定値αを加算した値となる。次世代発生範囲221の下端のy座標は、2つの遺伝情報点のy座標値のうちの小さい方の値から、所定値αを減算した値となる。次世代発生範囲221の右端のx座標は、2つの遺伝情報点のx座標値のうちの大きい方の値に、所定値αを加算した値となる。次世代発生範囲221の左端のx座標は、2つの遺伝情報点のx座標値のうちの小さい方の値から、所定値αを減算した値となる。
矩形領域生成部140は、次世代発生範囲221内に、ランダムに「N_child」個の子の遺伝情報点を生成する。そして矩形領域生成部140は、子の遺伝情報点ごとに、「親#1」である個体121aのうち、遺伝情報点ペア211に含まれない遺伝情報点は固定し、遺伝情報点ペア211に含まれている遺伝情報点(x11,y11)を、子の遺伝情報点に置き換える。遺伝情報点の置き換え後の個体が、子の個体である。これにより、遺伝情報点ペア211から、「N_child」個の子の個体が生成される。
矩形領域生成部140は、同様の処理を、遺伝情報点ペア211以外の遺伝情報点ペア212,213,・・・,21nに対しても実行する。「N_gene」個の遺伝情報点ペア211,212,213,・・・,21nそれぞれに対して、「N_child」個の子の個体が生成されるため、最終的に、「N_child×N_gene」個の子の個体が生成される。
このようにして生成された個の個体を用いて、図22に示した処理によって個体群121の進化処理が行われる。
図24は、GAによる個体群進化処理の手順の一例を示すフローチャートである。以下、図24に示す処理をステップ番号に沿って説明する。
[ステップS141]矩形領域生成部140は、個体群121から、GAにおける親となる個体を2つ、ランダムに抽出する。
[ステップS142]矩形領域生成部140は、親の2つの個体から、BLXαにより、「N_child×N_gene」個の子の個体を生成する。
[ステップS143]矩形領域生成部140は、未評価の子の個体を1つ選択する。
[ステップS144]矩形領域生成部140は、選択した個体を評価する。個体評価処理の詳細は、図20に示した通りである。
[ステップS145]矩形領域生成部140は、すべての子の個体の評価が完了したか否かを判断する。矩形領域生成部140は、すべての子の個体の評価が完了していれば、処理をステップS146に進める。また矩形領域生成部140は、未評価の子の個体があれば、処理をステップS143に進める。
[ステップS146]矩形領域生成部140は、親の2つの個体と「N_child×N_gene」個の子の個体との中から、評価値が最良の個体Aを選択する。
[ステップS147]矩形領域生成部140は、親の2つの個体と「N_child×N_gene」個の子の個体との中から、ルーレット選択により、1つの個体Bを選択する。
[ステップS148]矩形領域生成部140は、ステップS146,S147で選択した2つの個体A,Bを、個体群121に追加する。
このような個体群の進化が、図10のステップS105における終了条件を満たすまで、繰り返し実行される。そして、図10のステップS107において、評価が最良(評価値が最小)の個体が、最適解として出力されることとなる。
なお、階層構造格子を生成する場合、矩形領域生成部140は、最初に最も内側の矩形領域を生成し、その矩形領域に基づいて、1段階外側の矩形領域を生成する。
図25は、階層的に生成された矩形領域の一例を示す図である。矩形領域生成部140は、例えば内側矩形領域231の4端の点を境界点として、外側矩形領域232を生成する。ただし、同じ内側矩形領域に属する4端の点は、同じ外側矩形領域232に属するものとする。矩形領域生成部140は、並列処理の観点から、外側矩形領域232それぞれに含まれる、内側矩形領域231の数はなるべく均等にする。これにより、内側と外側の接続処理のCPU間の負荷を均等化できる。
外側矩形領域232は、内側矩形領域231と同様の処理で生成できる。ただし、内側矩形領域231より大きなサイズの矩形領域とするため、矩形領域生成部140は、パラメタの取り扱い、またはパラメタの値を変更する。
例えば矩形領域生成部140は、「Lb」(境界点から矩形領域端までの距離)は、外側の矩形領域生成時には、内側の矩形領域端からの距離として扱う。なお各パラメタの値は、内側の矩形領域生成用と、外側の矩形領域生成用とで別々に設定しておくことができる。その場合、ユーザは、例えば外側の矩形領域生成用の「N_gene」については、最内側の矩形領域生成用の「N_gene」と同じ値か、より小さい値を設定する。生成する矩形領域が外側になるほど「N_gene」の値を小さくすれば、矩形領域の数は外側の矩形領域ほど少なくなる。ただし、「N_gene」を調整しなくても、生成する矩形領域が外側になるほど「L_merge」を大きく調整すれば、隣接した矩形領域同士がマージされやすくなり、矩形領域の数を減らすことができる。
階層的に矩形領域を生成することで、階層ごとの最適解の個体が得られる。階層ごとに最適解として出力された個体に基づいて、多階層の矩形領域が一意に確定する。そして、最適解の個体に対応する矩形領域に基づいて、3次元の階層構造格子が生成できる。すなわち、適切な階層構造格子を自動で生成することができる。そして生成した3次元の階層構造格子を用いて流体シミュレーションなどの解析を実行することで、十分な解析精度による解析を、効率的に実行することが可能となる。
〔第3の実施の形態〕
次に、第3の実施の形態について説明する。第3の実施の形態は、矩形領域を生成する平面の物体を回転させることで、より評価の高い矩形領域を生成できるようにしたものである。
図26は、解析空間内の物体の回転の一例を示す図である。CFDにおいては、重力と垂直な水平座標内であれば、解析空間内の物体を回転させても解析計算に支障が出ないことが多い。図26には、水平面に置かれた物体301を、重力に垂直な方向から見たときの、物体301周囲の流体の流れと、流体の動きを解析するための矩形領域302とが示されている。
例えば、物体301の周りの流体の動きを解析する場合を考える。流体は、物体301に近いほど速度が低速であり、離れるほど高速になる。流体の速度が低速な場所では、細かな矩形領域302を生成し、詳細に解析することが求められる。
図26に示すような場合、例えば物体301の重心を軸にして、物体301を水平面内で回転させることができる。物体301を回転させることで、物体301の領域と流体の領域との境界も回転する。境界の回転に伴い、境界上に設定された境界点の座標も、回転に伴う変換が行われる。なお、物体301を回転させても、矩形領域は、x軸に並行な辺とy軸に並行な辺とで構成する。
そこで、第3の実施の形態では、矩形領域生成部140は、物体を様々な角度で回転させ、回転角の異なる物体それぞれの境界に基づいて矩形領域を生成する。このようにして生成した矩形領域の中から、評価の高い矩形領域を特定することで、より評価の高い矩形領域が生成可能となる。
図27は、物体を回転させる場合の個体の生成例を示す図である。例えば矩形領域生成部140は、最初の個体311,312,・・・を、遺伝情報点をランダムに生成することで生成する。そして矩形領域生成部140は、回転させていない(回転角0度)の境界線40に基づいて、個体311,312,・・・それぞれに対応する矩形領域を生成する。矩形領域生成部140は、生成した矩形領域を評価し、個体311,312,・・・の中から、生成される矩形領域の評価が最も高い個体31x(最適個体)を抽出する。
矩形領域生成部140は、抽出した個体31xを、境界線40回転後の矩形領域生成処理に流用する。このとき、矩形領域生成部140は、個体31x内の遺伝情報点の座標に対して、Δa度だけ回転させる座標変換を行ってもよい。
例えば矩形領域生成部140は、新たな個体321,322,・・・を、遺伝情報点をランダムに生成することで生成する。そして矩形領域生成部140は、所定の角度(Δa度)回転させた境界線40(回転角Δa度)に基づいて、個体321,322,・・・を生成する。次に矩形領域生成部140は、生成した個体321,322,・・・と、直前の回転角における最適個体である個体31xとの、それぞれに対応する矩形領域を生成する。そして、矩形領域生成部140は、生成した矩形領域を評価し、個体321,322,・・・と、直前の回転角における最適個体である個体31xとの中から、生成される矩形領域の評価が最も高い個体32x(最適個体)を抽出する。
矩形領域生成部140は、抽出した個体32xを、境界線40回転後の矩形領域生成処理に流用する。このとき矩形領域生成部140は、個体32x内の遺伝情報点の座標に対して、Δa度だけ回転させる座標変換を行ってもよい。
その後、矩形領域生成部140は、個体331,332,・・・を生成し、個体32x,331,332,・・・それぞれに対応する、所定の角度(Δa度)だけさらに回転させた境界線40(回転角2Δa度)に基づく矩形領域を生成する。矩形領域生成部140は、生成した矩形領域を評価し、個体32x,331,332,・・・の中から、生成される矩形領域の評価が最も高い個体33x(最適個体)を抽出し、回転の座標変換を行う。
次に、矩形領域生成部140は、新たな個体341,342,・・・を生成し、個体33x,341,342,・・・それぞれに対応する、所定の角度(Δa度)だけさらに回転させた境界線40(回転角3Δa度)に基づく矩形領域を生成する。矩形領域生成部140は、生成した矩形領域を評価し、個体33x,341,342,・・・の中から、生成される矩形領域の評価が最も高い個体(最適個体)を抽出する。
以後、矩形領域生成部140は、所定の回転角度になるまで、境界線40の回転と矩形領域の生成を繰り返す。なお回転の中心は、例えば、境界線40を包含する矩形領域の重心(2つの対角線の交点)である。
第3の実施の形態では、各個体からどのような矩形領域が生成されるかは、遺伝情報点セットと、境界線40の回転角度とによって決まる。従って矩形領域生成部140は、各個体の情報として、その個体を評価したときの回転角度についても記録しておく。
図28は、第3の実施の形態における個体群の情報の一例を示す図である。第3の実施の形態では、個体群350における各個体を示すレコードには、回転角度が含まれる。回転角度は、その個体を評価したときの境界線40の回転角度である。
次に、境界線40の回転を伴う場合の矩形領域生成処理の手順について詳細に説明する。
図29は、境界の回転を伴う場合の矩形領域生成処理の一例を示すフローチャートである。なお、図29に示す処理のうち、ステップS201〜S204,S207については、図10に示した第2の実施の形態におけるステップS101〜S104,S106と同様の処理である。以下、図29に示す第2の実施の形態と異なる処理をステップ番号に沿って説明する。
[ステップS205]矩形領域生成部140は、1つの回転角度における繰り返し処理の終了条件が満たされたか否かを判断する。例えば矩形領域生成部140は、現在の回転角度におけるGAによる進化回数が限界値「N_evolution」を超えたか、あるいは評価値が所定値以上の個体が検出された場合、終了条件を満たしたと判断する。矩形領域生成部140は、終了条件を満たした場合、処理をステップS209に進める。また矩形領域生成部140は、終了条件が満たされていない場合、処理をステップS206に進める。
[ステップS206]矩形領域生成部140は、次に行う進化が、回転後の最初の進化か否かを判断する。ステップS210における回転を実行してから、まだステップS208を実行していない場合、最初の進化であると判断する。矩形領域生成部140は、次に行うのが最初の進化であれば、処理をステップS208に進める。また、矩形領域生成部140は、次に行うのが、回転後の2回目以降の進化であれば、処理をステップS207に進める。
[ステップS208]矩形領域生成部140は、他の回転角度での最適解を流用した、GAによる個体群350の進化処理を行う。例えば矩形領域生成部140は、現在の回転角度より、Δaだけ少ない回転角度における最適解を流用する。この処理の詳細は後述する(図30参照)。矩形領域生成部140は、その後、処理をステップS202に進める。
[ステップS209]矩形領域生成部140は、すべての回転角度での探索が終了したか否かを判断する。矩形領域生成部140は、すべての回転角度での探索が終了した場合、処理をステップS211に進める。未探索の回転角度があれば、処理をステップS210に進める。
[ステップS210]矩形領域生成部140は、境界線40をΔa度だけ回転させる。例えば矩形領域生成部140は、境界点の座標に対して、Δa度だけ回転させる座標変換処理を行う。矩形領域生成部140は、その後、処理をステップS201に進める。
[ステップS211]矩形領域生成部140は、個体群350の中で、評価値が最小の個体を、最適解として出力する。
次に、他の回転角度での最適解を流用した、GAによる個体群350の進化処理について詳細に説明する。
図30は、他の回転角度での最適解を流用したGAによる個体群の進化処理の手順の一例を示すフローチャートである。図30に示した処理のうち、ステップS221、S222、S224〜S229については、それぞれ図24に示した第2の実施の形態の処理のステップS141〜S148と同じである。すなわち、第2の実施の形態と異なるステップS223の処理は、以下の通りである。
[ステップS223]矩形領域生成部140は、現在の回転角度にΔaを減算(−Δa)した回転角度における最適解を、子の個体として追加する。この際、矩形領域生成部140は、最適解の個体に含まれる遺伝情報点の座標については、現在の境界線40の回転角度に合わせて、Δa度だけ回転させる座標変換を行ってもよい。
このように、ステップS223が追加されることで、他の回転角度における最適解を流用した個体群350の進化処理が行われる。他の回転角度における最適解を流用することで、評価の高い個体を、効率的に求めることができる。
図31は、他の回転角度の最適解の流用の有無による矩形領域の総面積の違いを示す図である。図31の例では、回転角度を−10度から+10度の範囲で、1度ずつ(Δa=1度)回転させた場合の例である。実線の折れ線が、他の回転角度の最適解を流用した場合であり、破線の折れ線が、他の回転角度の最適解を流用しない場合である。他の回転角度の最適解を流用しない場合、矩形領域の総面積は、最大で4.27に達する。それに対して、他の回転角度の最適解を流用することで、矩形領域を2.37まで縮小することができる。
また、他の回転角度の最適解を流用した場合の折れ線から、境界の回転を行わず、例えば回転角度が0度の場合のみで矩形領域を生成した場合より、回転させた場合の方が、より面積の小さい矩形領域が生成できることが分かる。
図32は、GAで最適化することによる矩形領域の総面積の縮小例を示す図である。GAを有効に利用できない場合(GAによる繰り返しを行わない場合、悪くすれば矩形領域の総面積が4.27になってしまうが、GA有効に利用して最適化することで、総面積が2.37の矩形領域を生成可能である。
図33は、他の回転角度の最適解の流用の有無による収束性の違いを示す図である。図33では、上段に他の回転角度の最適解を流用しない場合のグラフを示しており、下段に他の回転角度の最適解を流用した場合のグラフを示している。
例えば、43世代目は、回転角度が8度のときの最初の世代である。前の回転角度における最適解を流用しない場合、何世代も繰り返すことで、段階的に、総面積の小さい矩形領域を生成する個体が得られている。それに対して、前の回転角度における最適解を流用した場合、43世代目の次の世代においても、非常に総面積の小さい矩形領域を生成する個体が得られる。
このように、他の回転角度の最適解の流用によって、解が収束するまでの繰り返し回数が少なくなる。すなわち、1つの回転角度におけるGAの世代数を少なくしても、良好な解が得られる。その結果、矩形領域の生成効率が向上する。
図34は、他の回転角度の最適解の流用の有無による同じ回転角度で得られる矩形領域の総面積の違いを示す図である。図34では、他の回転角度の最適解を流用した場合における、角度ごとの最良の矩形領域の総面積を黒丸で示している。また他の回転角度の最適解を流用しない場合における、角度ごとの最良の矩形領域の総面積を白丸で示している。図34に示した例では、近傍回転角での最適解の流用によって、20の回転角度のうち、16の回転角度で結果が改善している。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1 境界線
2a,2b,・・・ 境界点
3a〜3c 遺伝情報点
4a〜4c 基準点
5a〜5d 矩形領域
10 分割領域生成装置
11 記憶部
11a 境界情報
11b 個体群
12 処理部


Claims (11)

  1. コンピュータに、
    対象領域内の一平面上での、前記対象領域に配置される物体が占める領域と他の領域との境界線を示す境界情報を参照し、前記対象領域の分割度合いに関連する第1設定値に応じた数の複数の第1遺伝情報点をそれぞれが含む、複数の第1遺伝情報点セットを生成し、
    前記複数の第1遺伝情報点セットそれぞれについて、第1遺伝情報点セットに含まれる前記複数の第1遺伝情報点に基づいて、前記境界線上の複数の第1基準点を決定し、
    前記複数の第1遺伝情報点セットそれぞれについて、前記複数の第1基準点のうちの1つを含む辺と、前記複数の第1基準点のいずれも含まない辺とで形状が示されており、前記複数の第1基準点のいずれも含まない辺と前記境界線とが、前記境界線との距離を示す第2設定値だけ離れた、複数の第1矩形領域を生成し、
    前記複数の第1遺伝情報点セットから選択した被選択第1遺伝情報点セットに基づいて、遺伝的アルゴリズムにより、前記第1設定値に応じた数の複数の第2遺伝情報点をそれぞれが含む、複数の第2遺伝情報点セットを生成し、
    前記複数の第2遺伝情報点セットそれぞれについて、前記第2遺伝情報点セットに含まれる前記複数の第2遺伝情報点に基づいて、前記境界線上の複数の第2基準点を決定し、
    前記複数の第2遺伝情報点セットそれぞれについて、前記複数の第2基準点のうちの1つを含む辺と、前記複数の第2基準点のいずれも含まない辺とで形状が示されており、前記複数の第2基準点のいずれも含まない辺と前記境界線とが、前記第2設定値だけ離れた、複数の第2矩形領域を生成し、
    前記複数の第1遺伝情報点セットそれぞれについての、前記第1遺伝情報点セットに基づいて生成された前記複数の第1矩形領域の評価と、前記複数の第2遺伝情報点セットそれぞれについての、前記第2遺伝情報点セットに基づいて生成された前記複数の第2矩形領域の評価に基づいて、前記複数の第1遺伝情報点セットおよび前記複数の第2遺伝情報点セットのうちの1つを特定し、
    特定した前記第1遺伝情報点セットまたは前記第2遺伝情報点セットに応じて生成された前記複数の第1矩形領域または前記複数の第2矩形領域に基づいて、前記対象領域を分割する、
    処理を実行させる分割領域生成プログラム。
  2. 前記複数の第1基準点の決定では、前記境界線上に予め設定された複数の境界点のうち、第1遺伝情報点に距離が最も近い境界点を、前記第1遺伝情報点に対応する第1基準点に決定する、
    請求項1記載の分割領域生成プログラム。
  3. 前記複数の第1矩形領域の生成では、前記一平面の第1軸の座標値で前記複数の第1基準点を並べたときに隣り合う2つの第1基準点について、前記第1軸に垂直な第2軸の座標値の差が所定値以下であり、前記境界線における前記2つの第1基準点に挟まれる部分に設定されている第1境界点のすべてについて、隣接する他の境界点との前記第2軸の座標値の差が前記所定値以下の場合、前記2つの第1基準点、および前記境界線上の前記2つの第1基準点に挟まれる部分に設定されているすべての前記第1境界点を含む第1矩形領域を生成する、
    請求項2記載の分割領域生成プログラム。
  4. 前記複数の第1矩形領域の生成では、起点の第1基準点から、前記第1軸の正または負の方向に、前記第1軸の座標値が前記起点の第1基準点に近い順に境界点を探索対象として探索を行い、前記起点の第1基準点の前記第2軸の座標値、および前記起点の第1基準点と探索対象の境界点との間にある第2境界点の前記第2軸の座標値のすべてと、前記探索対象の境界点の前記第2軸の座標値との差が前記所定値を超えた場合、前記起点の第1基準点、および前記第2境界点を含む第1矩形領域を生成する、
    請求項3記載の分割領域生成プログラム。
  5. 前記複数の第1矩形領域の生成では、前記複数の第1基準点に基づく第1矩形領域の生成後、生成された前記第1矩形領域のいずれにも含まれない境界点が存在する場合、前記第1矩形領域にも含まれない境界点のうちの1つを追加基準点とし、前記追加基準点に基づいて新たな第1矩形領域を生成する、
    請求項2ないし4のいずれかに記載の分割領域生成プログラム。
  6. 前記複数の第1矩形領域の生成では、特定の第1基準点を共有する隣接する第1矩形領域において、隣接する第1矩形領域それぞれの前記特定の第1基準点を含む辺のずれが、所定値以下の場合、前記2つの第1矩形領域を1つの矩形領域に統合する、
    請求項1ないし5のいずれかに記載の分割領域生成プログラム。
  7. 前記コンピュータに、さらに、
    特定した前記第1遺伝情報点セットまたは前記第2遺伝情報点セットに応じて生成された前記複数の第1矩形領域または前記複数の第2矩形領域のうちの、1または複数の矩形領域を包含する外側矩形領域を生成する、
    処理を実行させる請求項1ないし6のいずれかに記載の分割領域生成プログラム。
  8. 前記コンピュータに、さらに、
    前記一平面内で、前記境界線を所定の角度ずつ回転させ、
    前記複数の第1遺伝情報点セットの生成、前記複数の第1基準点の決定、前記複数の第1矩形領域の生成、前記複数の第2遺伝情報点セットの生成、前記複数の第2基準点の決定、前記複数の第2矩形領域の生成を、前記境界線を回転させるごとに実行する、
    処理を実行させる請求項1ないし7のいずれかに記載の分割領域生成プログラム。
  9. 第1回転角度から第2回転角度へ前記境界線を回転させた後の前記複数の第2遺伝情報点セットの生成では、前記第1回転角度において生成した前記複数の第1遺伝情報点セットまたは前記複数の第2遺伝情報点セットから、評価値に基づいて選択した第1遺伝情報点セットまたは第2遺伝情報点セットを、前記第2回転角度へ回転させた後の前記第2遺伝情報点セットに含める、
    処理を実行させる請求項8記載の分割領域生成プログラム。
  10. 対象領域内の一平面上での、前記対象領域に配置される物体が占める領域と他の領域との境界線を示す境界情報を記憶する記憶部と、
    前記境界情報を参照し、前記対象領域の分割度合いに関連する第1設定値に応じた数の複数の第1遺伝情報点をそれぞれが含む、複数の第1遺伝情報点セットを生成し、前記複数の第1遺伝情報点セットそれぞれについて、第1遺伝情報点セットに含まれる前記複数の第1遺伝情報点に基づいて、前記境界線上の複数の第1基準点を決定し、前記複数の第1遺伝情報点セットそれぞれについて、前記複数の第1基準点のうちの1つを含む辺と、前記複数の第1基準点のいずれも含まない辺とで形状が示されており、前記複数の第1基準点のいずれも含まない辺と前記境界線とが、前記境界線との距離を示す第2設定値だけ離れた、複数の第1矩形領域を生成し、前記複数の第1遺伝情報点セットから選択した被選択第1遺伝情報点セットに基づいて、遺伝的アルゴリズムにより、前記第1設定値に応じた数の複数の第2遺伝情報点をそれぞれが含む、複数の第2遺伝情報点セットを生成し、前記複数の第2遺伝情報点セットそれぞれについて、前記第2遺伝情報点セットに含まれる前記複数の第2遺伝情報点に基づいて、前記境界線上の複数の第2基準点を決定し、前記複数の第2遺伝情報点セットそれぞれについて、前記複数の第2基準点のうちの1つを含む辺と、前記複数の第2基準点のいずれも含まない辺とで形状が示されており、前記複数の第2基準点のいずれも含まない辺と前記境界線とが、前記第2設定値だけ離れた、複数の第2矩形領域を生成し、前記複数の第1遺伝情報点セットそれぞれについての、前記第1遺伝情報点セットに基づいて生成された前記複数の第1矩形領域の評価と、前記複数の第2遺伝情報点セットそれぞれについての、前記第2遺伝情報点セットに基づいて生成された前記複数の第2矩形領域の評価に基づいて、前記複数の第1遺伝情報点セットおよび前記複数の第2遺伝情報点セットのうちの1つを特定し、特定した前記第1遺伝情報点セットまたは前記第2遺伝情報点セットに応じて生成された前記複数の第1矩形領域または前記複数の第2矩形領域に基づいて、前記対象領域を分割する、処理部と、
    を有する分割領域生成装置。
  11. コンピュータが、
    対象領域内の一平面上での、前記対象領域に配置される物体が占める領域と他の領域との境界線を示す境界情報を参照し、前記対象領域の分割度合いに関連する第1設定値に応じた数の複数の第1遺伝情報点をそれぞれが含む、複数の第1遺伝情報点セットを生成し、
    前記複数の第1遺伝情報点セットそれぞれについて、第1遺伝情報点セットに含まれる前記複数の第1遺伝情報点に基づいて、前記境界線上の複数の第1基準点を決定し、
    前記複数の第1遺伝情報点セットそれぞれについて、前記複数の第1基準点のうちの1つを含む辺と、前記複数の第1基準点のいずれも含まない辺とで形状が示されており、前記複数の第1基準点のいずれも含まない辺と前記境界線とが、前記境界線との距離を示す第2設定値だけ離れた、複数の第1矩形領域を生成し、
    前記複数の第1遺伝情報点セットから選択した被選択第1遺伝情報点セットに基づいて、遺伝的アルゴリズムにより、前記第1設定値に応じた数の複数の第2遺伝情報点をそれぞれが含む、複数の第2遺伝情報点セットを生成し、
    前記複数の第2遺伝情報点セットそれぞれについて、前記第2遺伝情報点セットに含まれる前記複数の第2遺伝情報点に基づいて、前記境界線上の複数の第2基準点を決定し、
    前記複数の第2遺伝情報点セットそれぞれについて、前記複数の第2基準点のうちの1つを含む辺と、前記複数の第2基準点のいずれも含まない辺とで形状が示されており、前記複数の第2基準点のいずれも含まない辺と前記境界線とが、前記第2設定値だけ離れた、複数の第2矩形領域を生成し、
    前記複数の第1遺伝情報点セットそれぞれについての、前記第1遺伝情報点セットに基づいて生成された前記複数の第1矩形領域の評価と、前記複数の第2遺伝情報点セットそれぞれについての、前記第2遺伝情報点セットに基づいて生成された前記複数の第2矩形領域の評価に基づいて、前記複数の第1遺伝情報点セットおよび前記複数の第2遺伝情報点セットのうちの1つを特定し、
    特定した前記第1遺伝情報点セットまたは前記第2遺伝情報点セットに応じて生成された前記複数の第1矩形領域または前記複数の第2矩形領域に基づいて、前記対象領域を分割する、
    分割領域生成方法。
JP2018047217A 2018-03-14 2018-03-14 分割領域生成プログラム、分割領域生成装置、および分割領域生成方法 Active JP7029056B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018047217A JP7029056B2 (ja) 2018-03-14 2018-03-14 分割領域生成プログラム、分割領域生成装置、および分割領域生成方法
US16/291,043 US20190286770A1 (en) 2018-03-14 2019-03-04 Computer-readable recording medium storing divided region generating program, divided region generating apparatus, and divided region generating method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018047217A JP7029056B2 (ja) 2018-03-14 2018-03-14 分割領域生成プログラム、分割領域生成装置、および分割領域生成方法

Publications (2)

Publication Number Publication Date
JP2019159952A true JP2019159952A (ja) 2019-09-19
JP7029056B2 JP7029056B2 (ja) 2022-03-03

Family

ID=67904054

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018047217A Active JP7029056B2 (ja) 2018-03-14 2018-03-14 分割領域生成プログラム、分割領域生成装置、および分割領域生成方法

Country Status (2)

Country Link
US (1) US20190286770A1 (ja)
JP (1) JP7029056B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3920072A1 (en) * 2020-06-03 2021-12-08 Ingrid Cloud AB System for providing a simulation model, system for illustrating estimated fluid movements around a structure, methods therefore and a computer program product

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1166356A (ja) * 1997-08-27 1999-03-09 Matsushita Refrig Co Ltd 流体シミュレーション装置
JP2002230054A (ja) * 2001-02-01 2002-08-16 Inst Of Physical & Chemical Res 形状と物性を統合した実体データの記憶方法
JP2002318823A (ja) * 2001-04-23 2002-10-31 Honda Motor Co Ltd 流体用構造格子の自動生成方法
US20170017741A1 (en) * 2015-07-13 2017-01-19 Rolls-Royce Plc Computational modelling for engineering analysis

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1166356A (ja) * 1997-08-27 1999-03-09 Matsushita Refrig Co Ltd 流体シミュレーション装置
JP2002230054A (ja) * 2001-02-01 2002-08-16 Inst Of Physical & Chemical Res 形状と物性を統合した実体データの記憶方法
JP2002318823A (ja) * 2001-04-23 2002-10-31 Honda Motor Co Ltd 流体用構造格子の自動生成方法
US20170017741A1 (en) * 2015-07-13 2017-01-19 Rolls-Royce Plc Computational modelling for engineering analysis

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"Optimizing Collision Detection based on OBB Trees Generated with Genetic Algorithm", IV IBEROAMERICAN SYMPOSIUM IN COMPUTER GRAPHICS - SIACG (2009), JPN6022001205, 2009, pages 1 - 7, ISSN: 0004683956 *
"Rapid B-rep model preprocessing for immersogeometric analysis using analytic surfaces", COMPUTER AIDED GEOMETRIC DESIGN, vol. Vol. 52-53, JPN6022001204, 2017, pages 1 - 23, ISSN: 0004683955 *
ORIENTED BOUNDING BOXES USING MULTIRESOLUTION CONTOURS FOR FAST INTERFERENCE DETECTION OF ARBITRARY, JPN6022001206, 2016, ISSN: 0004683957 *

Also Published As

Publication number Publication date
JP7029056B2 (ja) 2022-03-03
US20190286770A1 (en) 2019-09-19

Similar Documents

Publication Publication Date Title
Shi et al. Adaptive simplification of point cloud using k-means clustering
EP3092624B1 (en) Method for structure preserving topology optimization of lattice structures for additive manufacturing
JP6888484B2 (ja) 検索プログラム、検索方法、及び、検索プログラムが動作する情報処理装置
JP2018022476A (ja) モフォロジー基準によるデータベースの照会
US20220318591A1 (en) Inference method and information processing apparatus
Hoefer et al. Automated manufacturing process selection during conceptual design
JP2013175016A (ja) 欠陥箇所予測装置,欠陥箇所予測プログラムおよび欠陥箇所予測方法
JP2021082297A (ja) 実オブジェクト上での形状属性の3d信号の処理
TW201729960A (zh) 基於立體視覺的隨機地圖產生和貝氏更新
Yun et al. Machine learning for object recognition in manufacturing applications
JP2019185591A (ja) 実験支援装置及び実験支援方法
JP2014074994A (ja) 評価支援方法、情報処理装置、及びプログラム
JP7029056B2 (ja) 分割領域生成プログラム、分割領域生成装置、および分割領域生成方法
JP2015191617A (ja) 算出プログラム、算出装置および算出方法
US11195330B2 (en) Generation of a structured 3D model from a raw mesh
US20130076752A1 (en) Computing method and computing apparatus
JP2008059106A (ja) サンプリング生成装置、サンプリング生成プログラムが記録された媒体及びサンプリング生成方法
EP1685509B1 (en) System, method, and computer program product for determining wall thickness in a graphic model
US20240054385A1 (en) Experiment point recommendation device, experiment point recommendation method, and semiconductor device manufacturing device
CN114723051A (zh) 信息处理设备、信息处理方法和计算机可读记录介质
JP2022041425A (ja) シミュレーションプログラム、シミュレーション方法およびシミュレーションシステム
JP2022039754A (ja) 並列処理設計装置、及び並列処理設計方法
Ling et al. A phenotype-based representation that quantifies aesthetic variables
WO2012046436A1 (ja) 文書分析装置、文書分析方法および文書分析プログラム
JP2005267025A (ja) 解析モデルの領域抽出システム、方法、プログラム、およびプログラム媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201210

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20201217

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20201217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211223

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220118

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220131

R150 Certificate of patent or registration of utility model

Ref document number: 7029056

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150