以下に、本発明に係る構造安定な流れパターン(「流線パターン」とも称する)の正規表現作成方法、正規表現作成装置、および、コンピュータが実行可能なプログラムの実施形態を図面に基づいて詳細に説明する。本発明の構成要素は、本明細書の図面に一般に示してあるが、様々な構成で広く多様に配置し設計してもよいことは容易に理解できる。したがって、本発明の装置、方法、及びプログラムの実施の形態についての以下のより詳細な説明は、特許請求の範囲に示す本発明の範囲を限定するものではなく、単に本発明の選択した実施形態の一例を示すものであって、特許請求の範囲に示す本発明と矛盾無く装置、方法、及びプログラムについての選択した実施形態を単に示すものである。当業者は、特定の細目の1つ以上が無くても、又は他の方法、部品、材料でも本発明を実現できることが理解できる。また、フローチャートの各ステップを実行する順番はフローチャートに示す順番に限定されるものではなく、本発明の趣旨を逸脱しない範囲で順番を変更してもよい。なお、この実施の形態によりこの発明が限定されるものではない。また、下記実施の形態における構成要素には、当業者が容易に想定できるもの又は実質的に同一のものが含まれる。本願出願人が既に出願した国際公開第2014/041917号(PCT/JP2013/070939号)及び特願2013−230678号の明細書及び図面の内容は援用により本明細書に組み込まれる。
特に以下の実施形態においては、本発明を二次元流体のシミュレーションに適用した例について説明することがあるが、この場合に限られず、三次元流体のシミュレーションにおける任意の断面(構造物の断面等)についても、同様に本発明を適用することができる。
[本発明の概略]
図1は、本発明の概略を説明するための説明図である。本願出願人が既に出願した特許文献1(国際公開第2014/041917号、特願2012−203601号、PCT/JP2013/070939号)の「流れパターンの語表現方法、語表現装置、および、プログラム」では、数値計算や実験で得られた流れパターンに対して,この文字列を付与し,そこに現れる流れの定量的な特徴(例えば揚抗比)を定性的な部分文字列として表現する語表現理論を提案した。
また、本願出願人が既に出願した特願2013−230678(本願出願時未公開)の「流体遷移経路取得装置、流体遷移経路取得方法、及びプログラム」では、語表現から流体遷移経路を取得しているが、語表現を使って遷移の可能性をすべて網羅した上で,あとは文字列ではなく流れのパターンのパターンマッチングを行う必要があった。
図1において、上述したように、特許文献1では、流れパターンから語表現を作成する(P1)方法について既に出願している。また、特願2013−230678において、語表現から流体遷移経路を作成する(P2)方法を出願している。語表現では、流れパターンに対して固有な語表現を与えることができるが、語表現で与えられた文字列に対しては複数の異なる流れパターンが対応している。そこで、本実施の形態の流れパターンの正規表現作成方法では、流れパターンに1対1に対応するグラフ表現を作成し(T1)、グラフ表現から正規表現を作成する(T2)。また、本実施の形態の流れパターンの正規表現作成方法では、正規表現から語表現を作成する(T3)。正規表現から作成される語表現は、流れパターンと1対1に対応したものとなるので、語表現から直接、流体遷移経路を作成することが可能となる。さらに、本実施の形態の流れパターンの正規表現作成方法では、正規表現から直接、流体遷移経路を作成することもできる(T4)。
[流れパターンの正規表現作成方法]
図2−A〜図22を参照し、本実施の形態に係る流れパターンの正規表現作成方法について説明する。本実施の形態に係る流れパターンの正規表現作成方法はコンピュータ等の装置により実行可能である。図2−Aは、本実施の形態に係る流れパターンの正規表現作成方法の概略を説明するためのフローチャートである。
図2−Aに示すように、本実施の形態に係る流れパターンの正規表現作成方法は、位相幾何学的にN(但し、Nは1以上の整数)個の穴を有する多重連結外部領域における流れパターンの正規表現を作成ものであり、大別すると、流れパターンに1対1に対応するグラフ表現を作成するグラフ表現作成工程(ステップS1)と、ステップS1のグラフ表現作成工程で作成されたグラフ表現から正規表現を作成する正規表現作成工程(ステップS2)と、ステップS2の正規表現作成工程で作成された正規表現を語表現に変換する語表現変換工程(ステップS3)と、を備えている。
グラフ表現は、流れパターンで規定される構造安定なハミルトンベクトル場Hに対して、固有のルート付き、ラベル付き、向き有りツリーTH=(V,E)を割り当て(但し、Vは頂点と呼ばれる点の集合、Eは、頂点の間を結ぶエッジの集合である)、平面グラフとして可視化したものであってもよい。
また、グラフ表現は、親の頂点をv、その子の頂点をw,親の頂点vに割り当てられたラベルをl(v)、子の頂点wに割り当てられたラベルをl(w),vの子頂点集合Γ(v)とした場合、vの子頂点集合Γ(v)を所定の順序関係のルールに従って並び替え、w∈Γ(v)について、l(v)からl(w)への矢印を左から右に並べて描画されたものを含むことにしてもよい。
また、流れパターンは、(1)一つの穴を有する単連結外部領域において位相幾何学的に採り得る2種類の流れパターンのうちの、吸い込み湧き出し対をもち、二つのss−∂−saddle connectionをもつパターンI、(2)前記一つの穴を有する単連結外部領域において位相幾何学的に採り得る2種類の流れパターンのうちの、吸い込み湧き出し対をもち、一つのsaddle point、それを結ぶhomoclinic saddle connectionと二つのss−saddle connectionをもつパターンII、(3)二つの穴を有する二重連結外部領域において吸い込み湧き出し対を持たないパターンO、からなるパターン語の1又は複数であることにしてもよい。
また、語表現は、一つの穴を有する単連結外部領域において位相幾何学的に採り得る2種類の流れパターンに加えて、二つの穴を有する二重連結外部領域において吸い込み湧き出し対を持たないパターンを追加した、合計3種類の流れパターンを規定するパターン語に対して、前記流れパターンに一つの穴を加える場合に位相幾何学的に採り得る5種類の操作を規定した操作語のうちのいずれか一語を、追加された穴の数だけ付与することにより形成された記号語であることとしてもよい。
図2−Bは、図2−Aのグラフ表現作成工程の一例を説明するためのフローチャートである。図2−Bにおいて、グラフ表現作成工程では、まず、流れパターンが吸い込み湧き出し対を持つ場合は、流れパターンをその吸い込み湧き出し対に最も近い反時計回りのss−orbitを含む領域が一番外側領域になるように変換する(ステップS31)。流れパターンは、例えば、上述のパターン語の1又は複数から開始し、流れパターンに一つの穴を加える場合に位相幾何学的に採り得る5種類の操作を規定した操作語のうちのいずれか一語を付与する操作を、穴の数がN個となるまで繰り返して作成された穴の数がN個の流れパターン図としてもよい。具体的には、後述するように、I−word,II−wordのss−saddle connection diagram(流れパターン図)のルートが、図11に示すようになるように変換する。次に、変換した流れパターンの(ss−)saddle connection diagramに現れる軌道を領域全体から抽出する(ステップS32)。領域全体から(ss−)saddle connection diagramに現れる軌道をすべて除外して得られる連結成分に頂点を設定し、一番外側にある連結成分をルートとする(ステップS33)。続いて、カレント成分をルートに設定する(ステップS34)。カレント成分と互いに境界を接するような連結成分をカレント成分の子とし、境界にあたる軌道に応じてラベルを割り当て,それらを所定のラベルの順序関係に従って並べる(ステップS35)。カレント成分の子をカレント成分に設定して、子がなくなるまでステップS35を繰り返し実行する(ステップS36)。
また、本実施の形態の流れパターンの正規表現作成方法は、流体中の物体に対して設計パラメータの候補を選択する設計パラメータ選択工程を実行してもよい。設計パラメータ選択工程では、例えば、流体中の物体に対して設計パラメータの候補を選択する場合に、前記設計パラメータの上限及び下限を設定し、当該設計パラメータの上限と下限で規定されるパラメータ領域から複数のパラメータを選択し、選択した複数のパラメータに対して、それぞれ流れの実験及び/又は数値計算を行い、実験及び/又は数値計算の結果に対して、前記語表現及び/又は前記正規表現を割り当て、割り当てた前記語表現及び/又は前記正規表現のうち、最適状態を示す前記語表現及び/又は前記正規表現を有する設計パラメータを、前記設計パラメータの候補として選択してもよい。
また、設計パラメータ選択工程は、さらに、選択した設計パラメータを使用して最適化設計を行う工程を含むことにしてもよい。
また、本実施の形態の流れパターンの正規表現作成方法は、流体中の物体に対して設計パラメータを選択する第2の設計パラメータ選択工程を実行してもよい。例えば、第2の設計パラメータ選択工程は、例えば、流体中の物体に対して最適な設計パラメータを選択する場合に、現在の流れパターンの正規表現から目的とする流れパターンの正規表現へ遷移するように設計パラメータを変更し、当該目的とする流れパターンの正規表現となる設計パラメータを選択することにしてもよい。
また、第2の設計パラメータ選択工程では、正規表現に加えて語表現を使用して、現在の流れパターンの正規表現及び語表現から目的とする流れパターンの正規表現及び語表現へ遷移するように設計パラメータを変更し、当該目的とする流れパターンの正規表現及び語表現となる設計パラメータを選択することにしてもよい。
また、第2の設計パラメータ選択工程では、現在の流れパターンの正規表現及び語表現から目的とする流れパターンの正規表現及び語表現へ遷移するための1又は複数の経路を取得し、取得した1又は複数の経路のうち、設計パラメータを変更して現在の流れパターンから遷移可能な経路を選択し、選択した経路に対して、変更した設計パラメータを中心にして設計パラメータを変更し、目的とする流れパターンの正規表現及び語表現となる設計パラメータを選択することにしてもよい。
以下、本実施の形態の流れパターンの正規表現作成方法をその原理と共に、詳細に説明する。
(1.語表現理論)
まず、本実施の形態の流れパターンの正規表現作成方法では、上述の語表現理論の一部を使用しているので、語表現理論について簡単に説明する。
(1−1.語表現アルゴリズム)
ここで、上述した語表現を形成させる語変換アルゴリズムの概要について以下に説明する。ここで、図3は、語表現アルゴリズムの概要を示すフローチャートである。
図3に示すように、まず、位相幾何学的にN個の穴を有する連結外部領域における流れパターンの語表現を形成させるために、一つの穴を有する単連結外部領域において位相幾何学的に採り得る2種類の流れパターンに加えて、二つの穴を有する二重連結外部領域において吸い込み湧き出し対を持たないパターンを追加した、合計3種類の流れパターンを規定するパターン語(例えば、I,II,O)のうちのいずれか一語を付与する(ステップSA−1)。
そして、本実施の形態は、ステップSA−1にて付与された語に対して、流れパターンに一つの穴を加える場合に位相幾何学的に採り得る5種類の操作を規定した操作語(例えば、A0,A2,B0,B2,C)のうちのいずれか一語を付与し(ステップSA−2)、当該ステップSA−2の処理を穴の数がN個となるまで繰り返し行うことにより(ステップSA−3)、N個の穴を有する連結外部領域に対応する語表現を形成させる。なお、この例では、パターン語の付与(ステップSA−1)が先に行われ、操作語の付与(ステップSA−2)が後に行われるが、これに限られず、操作語の付与を先に行い、後にパターン語の付与を行ってもよいものである。
ここで、本実施の形態において、「連結外部領域」とは、単連結外部領域と多重連結外部領域を含む表現であり、「単連結外部領域」とは、二次元(平面)の中にある領域で、一つの穴があいたものをいい、「多重連結外部領域」とは、二次元(平面)の中にある領域で、複数の穴があいたものをいう。ここでいう「穴」という表現は、数学的な抽象表現であるが、応用上はさまざまな表現形態であってもよい。例えば、乗り物が移動した際に相対的に発生する一様な流れに注目した場合、一様流に沿った乗り物の断面に構造物が一つ又は複数あった状況があれば、その領域は単連結外部領域または多重連結外部領域として扱える。例えば、空気中を進む航空機等の飛行物体や、空気中を進む電車や自動車等の地上走行車両、海上または海中を進む船等の乗り物についても、一または複数の穴と、単連結または多重連結の連結外部領域として扱える。換言すれば、「流れの中に一または複数の障害物がある」ような流れを、本実施形態では、連結外部領域における流れとして扱う。また、孤立した渦構造や周囲に周期軌道を持つような流れ構造(楕円型の停留点など)も「穴」とみなすことができる。
上述のように、流れパターンに対して語表現を割り当てることによって、連結外部領域における流れの位相的分類が可能となる。位相的というのは数学の専門用語であり、トポロジー(位相幾何学)とも呼ばれる幾何学の一分野を指す。古典的な幾何学では、三角形や四角形はその角の数の違いにより異なる図形と見なすが、位相幾何学の立場ではそういった細かい情報を見ず、三角形と四角形を例えば輪ゴムを変形させて互いに移りあえるという立場にたって同じ図形と見なす。すなわちすべての多角形は、円と同じと見なす。一方で、円の中にもう一つ円がくりぬかれているような円環領域があったときに円と円環領域は一つの輪ゴムの変形では互いに変形できないので、異なる図形と見なす。連結外部領域では、空いている穴の数が異なれば、それらの図形は位相的に異なると見なす一方で、穴の形さえ同じであれば、その穴の形が円であろうが三角形であろうが線分であろうが同じものとみなす。このような理由から流れの領域を特徴づけるのは穴の数のみであるため、本実施形態では、穴の数M+1に対して連結外部領域をDζ(M)と表現する。例えば、穴が1つのみの場合は、単連結外部領域Dζ(0)であり、穴が2つ在る場合は、二重連結外部領域Dζ(1)となる。
流れの位相的分類を扱うときは、流れを特徴づけるある特定の構造(「位相構造」と呼ぶ。)を捕まえて、その特定の構造をもった流れが二つあったときに、その双方を特定の構造の連続的な(すなわち切ったり貼ったりしない)変形によって互いに変形できないものは異なる流れと見なす。
ここで、本実施の形態において扱う流れの構成要素について図4〜図6を参照して説明する。本実施の形態における「流れ」として非圧縮流れを扱ってもよい。流体の非圧縮性とは、力を加えてもほとんどその体積を変えないような性質をいう。通常の水や大気の流れは、日常生活のスケールで考える場合は、こうした流れの枠組みで考えても概ね差し支えはない。なお、本発明は、これに限られず、圧縮性のある流れを計算上取り扱ってもよい。
また、本実施の形態における流体は、非粘性流体として扱ってもよい。非粘性流体は、境界条件を「すべり条件」として扱うことができる。なお、粘性流体では、境界条件が「ゼロ境界条件」となるが、粘性流体でも、粘性が大きくないとき、境界付近は渦が層状の流れとなっており、その流れの外側境界を、仮想的に拡張することで「すべり条件」として扱うことができる。したがって、本実施形態では、特に、非粘性流体における語変換アルゴリズムにおいて説明することがあるが、適切な境界の拡張により、粘性流体についても本実施形態を適用することができる。
本実施の形態で扱う流れの構成要素は、以下の3つである。一つは障害物、一つは渦(vortex)、一つは一様流(uniform flow)である。障害物は連結外部領域における穴のことであり、この形状は位相的分類を考えている上で円としておいても数学的に与える結果に影響はないことが一般的な流体の数学理論から導くことができる。ここで、図4は、流れのパターンを模式的に示した図である。なお、図4(c)は、4つの∂−saddle点(定義は後述)を持つ境界を模式的に示している。
図4(a)に示すように、渦はそのまわりで回転する流れを作る要素である。一様流とは、川の流れでいえば基本的な流れのことであり、領域全体を横切るような流れである。また、乗り物等の移動物体の場合、一様流とは、その乗り物に乗っている観察者から見た、相対的な気流や水流等の流れである。すなわち、移動物体の座標系においては、実際には空気や水が静止していても、無限遠点から流れてくる相対的な流れを観念することができる。
一様流を構成する要素は、吸い込み湧き出し対(1−source−sink point)と呼び、そのルールの正しさは数学的に証明可能である。
ここで、一様流ではなく吸い込み湧き出し対と呼ぶことには理由がある。その理由の説明のため、いくつかの数学的な解説を以下に行う。一様流が存在するとき、考えている流れの領域は無限に拡がる平面であり、その中に一つまたは複数の穴(障害物)が埋め込まれているような連結外部領域であるが、このような流れを模式的(Schematic)に表現する上では扱いにくい。そのため、数学におけるstereographic projection(ステレオ射影・立体射影)と呼ばれる射影法によって、平面を球面の上に投影して扱ってもよい。この場合、平面における無限遠点は球面の北極に、平面の原点は南極に対応させることができる。
このようにしておくと、一様流は球面の北極における流れの湧き出しと吸い込み対といった流れ構造となり、図4(b)のような流れ場に対応していることが数学的に示せる。さらに模式的に流れ場を表現するためには、球面は対称性の高い形状であるということを利用して、北極と南極の位置を適当にずらすことができるので、無限遠点を南極に、ある円形の穴(障害物)の中心を北極にあわせてから、再びstereographic projectionを使って平面に投影すると、南極に対応する原点付近の近くでは図4(b)のような流れができる。さらに無限遠点に中心を持つ円境界は平面の外側円境界に投影されるので、結果として平面全体の流れ場が、例えば図5のような形の有界な領域として表現できる。なお、連結外部領域Dζ(M)をこの変換方法により,無限遠点の吸い込み湧き出し対を原点に、また、M+1個の境界の1つを選んで、それを単位円外部領域に移したときに得られる、M個の境界をその内部に含む単位円内部の連結領域をDz(M)と書く。以後の記載はすべてこのDz(M)を用いて行う。したがって、図4(b)のような表現は適切な射影法を通じて、平面全体の中に一様流が入っている流れと等価なものである。本実施形態の説明では、流れを模式的に示すために便利であることから、このような射影法を用いて図に表現する場合がある。
図5は、このような連結領域Dz(M)における構造安定な流れの位相的分類を行う特徴的な軌道(流線)を全て記述した図である。図5(a)に示すように、まず吸い込み湧き出し対から出て自分自身に戻ってくる軌道をss−orbitと呼ぶ。この線一本一本が連結外部領域での一様流の流線を表す。次に、図5(b)に示すように、吸い込み湧き出し対から出て境界の上につながる軌道をss−∂−saddle connectionと呼び、図5(c)に示すように、その軌道がつながっている境界上の点をss−∂−saddleと呼ぶ。
また、図5(e)に示すように、吸い込み湧き出し対からではなく、ある境界の上の点から出て同じ境界上の点につながる軌道を∂−saddle connectionと呼び、図5(d)に示すように、これによってつながれている境界上の点を∂−saddleと呼ぶ。また、図5(h)に示すような、境界上にない双曲型の停留点をsaddle point(サドル点)と呼ぶが、図5(f)に示すように、吸い込み湧き出し対から出る軌道で、このsaddle pointにつながる軌道をss−saddle connectionと呼ぶ。また、図5(g)に示すように、境界や渦の回りを作る閉曲線軌道をclosed orbitと呼び、図5(i)に示すように、saddle pointから出てそれ自身に戻るような軌道をhomoclinic saddle connectionと呼ぶ。対象とする構造安定な流れは、これらの軌道の組み合わせによってしか表現されないことが数学的に証明できる。
本実施形態では、上述したステップSA−2において、穴の数がM個ある連結外部領域Dz(M−1)の流れに、一つの穴とそれに伴う流れの構造を付け足すことで、一つ穴の多い多重連結外部領域Dz(M)の流れ場を帰納的に構成していく。そのため、もっとも簡単な穴が一つの単連結外部領域Dz(0)や、二重連結外部領域Dz(1)で、これらの帰納的構成の初期構造になるものをステップSA−1で与えている。
具体的には、上述した基本となる流れパターンは、3種類あり、
1)吸い込み湧き出し対をもち、二つのss−∂−saddle connectionをもつパターンI、
2)吸い込み湧き出し対をもち、一つのsaddle point、それを結ぶhomoclinic saddle connectionと二つのss−saddle connectionをもつパターンII、および
3)吸い込み湧き出し対をもたないパターンO、
である。ここで、図6は、初期構造となる3種類の構造安定な流れパターンを模式的に示す図である。
すなわち、図6(a)と(b)に示すように、穴が一個の単連結外部領域Dz(0)にある流れは、パターンIとパターンIIの2種類存在する。これらのパターンは、ともに吸い込み湧き出し対を持ち、数学的にはこれら2種類しかないことが証明できる。一様流を仮定した吸い込み湧き出し対を持つような流れに対して、原則的には二重連結外部領域Dz(1)は、これらから構成されるが、吸い込み湧き出し対を持たない流れはここから構成されないので、その流れを構成するために必要な初期流れが図6(c)に模式的に示されるパターンOである。なお、これらの位相構造は表現の簡便さのため、吸い込み湧き出し対を丸囲みSと図示し、ss−orbitやclosed orbitは、無限に存在するので表現せず、以後、模式的に図6(d)や(e)のように簡略的に表す。また、図6(c)に示すように、吸い込み湧き出し対を持たない二重連結外部Dζ(1)における流れのパターンclosed orbitも、すべて書かないで図6(f)のように簡略に記す。
(1−2.操作語の説明)
帰納的に流れを構成していくために、穴を一つとそれに伴う流れの構造を追加するという「操作」について、図7および図8を参照して説明する。すなわち、穴の数がM個ある連結外部領域Dz(M−1)の流れに、一つの穴を加えて多重連結外部領域Dz(M)の流れを求める操作について説明する。
上述したステップSA−2において、位相幾何学的に採り得る5種類の操作は、
1)一本のss−orbitを、一つのsaddle point、それを結び内部に穴をもつhomoclinic saddle connectionと二つのss−saddle connectionに置き換えるA0操作、
2)一本のss−orbitを、二つのss−∂−saddle connectionと新たに追加した境界上の二つの∂−saddleに置き換えるA2操作、
3)一本のclosed orbitを、一つの穴とsaddle pointを追加して8の字をした2本のhomoclinic軌道に置き換えるB0操作、
4)一本のclosed orbitを、新たに追加した穴の境界上に二つ∂−saddleをつけて一本の∂−saddle connectionでつなぐような軌道に置き換えるB2操作、および、
5)既に2k個(k>0)の∂−saddleをもつ境界に、新たに二つの∂−saddleを付け加えて一本の∂−saddle connectionでつなぎ内部に新たに付け加えた穴を置くC操作、
である。ここで、図7は、穴を一つ付け加えて構造安定な流れを構成する5種類の操作を模式的に示した図である。
図7(a)に示すように、操作A0とA2は一本のss−orbitに対して行われる。また、図7(b)に示すように、操作B0とB2は、一本のclosed orbitに対して行われる。また、図7(c)に示すように、操作Cは、既に∂−saddleを持つ境界に対して行われる。なお、構造安定性を維持しながらそのようなことを可能にする操作が、上記の5種類しかないことが数学的に証明可能である。このステップを繰り返してできる流れパターン図を、パターンI,IIから始めたときはss−saddle connection diagramと呼び、パターンOから始めたときは、saddle connection diagramと呼ぶ。
ステップSA−1で与えた初期構造の3種類の流れパターンI,II,Oから、これらの操作を行って一つずつ穴を増やす(M→M+1)ことで、多くの穴を持つ領域における流れが帰納的に構成されるので、本実施形態では、その操作を表す操作語の列を文字列と見なして列挙することで、流れ場の語表現(Word representation)を得ることができる。ここで、図8は、二つの構造物と一様流がある場合の構造安定な流れパターンの全分類を示す図である。図8に示すように、単連結外部領域Dz(0)における初期構造のパターンI,IIに対して、操作語を付与することで、二重連結領域Dz(1)における全ての流れパターンを記述することができる。ただし、図8に示す全ての流れパターンは、2種類(I,II)×5種類(A0,A2,B0,B2,C)の計10種類とはなっていない。すなわち、操作語は、5種類の操作語を任意に並べてできるわけではなく、数学的な理由から様々な制約がつく。
ここで、制約について説明すれば以下のようになる。すなわち、図7を用いて上述したように、操作A0とA2は、一本のss−orbitに対して行われるので、この操作を行う前提として、一本のss−orbitの存在が不可欠となる。また、操作B0とB2は、一本のclosed orbitに対して行われるので、この操作を行う前提として、一本のclosed orbitの存在が不可欠である。また、操作Cは、2個以上の∂−saddleを持つ境界に対して行われるので、この操作を行う前提として、∂−saddleを持つ境界の存在が不可欠となる。そのため、パターン語をI,II,Oのどこからはじめるかによって並べ方のルールは異なる。上記の制約条件に基づいて導出される、各パターン語I,II,Oからはじまる文字列の並べ方のルールについて、以下に説明する。
まず、湧き出し吸い込み対を持たないOのパターン語からはじめる場合には、次のようなルールがある。Oから始まる語表現に対して、それが構造安定な流れを表すために以下が必要十分である。
O−1)実際に施すことができる操作は、B0,B2,Cのみであり、その結果、Oから始まる語表現はこれら三つの語を列挙したものとなる。
O−2)操作列の語表現においてCの語が含まれるためには、それ以前に必ずB2が存在しなければならない。
このような文字列をO系列の語(O−word)と呼び、そのルールの正しさは数学的に証明可能である。
次に、パターン語Iから始まる語表現については、以下のルールが成り立つ必要がある。
I−1)実施可能な操作はA0,A2,B0,B2,Cの全てであり、その結果、Iから始まる語表現はこれら5種類の操作語を列挙したものである。
I−2)操作列の語表現において、B0あるいはB2の語が含まれるためには、それ以前に必ずCかA0が存在しなければならない。
このような文字列をI系列の語(I−word)と呼び、そのルールの正しさは数学的に証明可能である。
最後にパターン語IIから始まる語表現については、以下のルールが成り立つ必要がある。
II−1)実施可能な操作はA0,B0,B2,Cであり、その結果、IIから始まる語表現はこれら四つの語を列挙したものである。
II−2)操作列の語表現においてCの語が含まれるために
は、それ以前に必ずB2が存在しなければならない。
このような文字列をII系列の語(II−word)と呼び、そのルールの正しさは数学的に証明可能である。
(2.グラフ表現作成工程)
上記図2のグラフ表現作成工程(ステップS1)について詳細に説明する。まず、本実施の形態で使用しているグラフ理論について説明する。
(2−1.グラフ理論)
グラフT=(V,E)とは、「vertex(頂点)」と呼ばれる点の集合(頂点集合)Vとその頂点の間を結ぶ「edge(エッジ)」と呼ばれる集合Eのペアとして与えられる集合である。一般にグラフは多様な構造を持ちうるが、本実施の形態のグラフ表現理論では、グラフ全体の集合におけるある特定の構造をもった以下のグラフの集合を考える。
1)ツリー,木(Tree)とは、任意の二つ頂点が一本のedgeによってのみ結合されているようなグラフを指す。
2)ルート付き(Rooted)グラフとは、ある特定の頂点(以下、ルート(root)と呼ぶ)が存在しているグラフを指す。ルート付きグラフに対しては、このルートから各頂点v∈Vへのエッジの連結による最短経路を考えることができるので、これをvの高さ(height)と呼び、記号をht(v)と書く。これによりルート付きツリーTに対してはht(T):=maxv∈Vht(v)によって、ツリーT自体の高さを考えることができる。
3)グラフが向き有り(directed)であるとは、すべてのエッジに親子の順序が入っているようなものを指す。向き有りグラフにおける、頂点v∈Vからw∈Vへのエッジは、v⇒w∈Eと表わす。このとき、vはwの親、wはvの子と呼ぶ。Г(v)と書いて、頂点v∈Vの子供全体の集合を表す。すなわち、Г(v):={w∈V│v⇒w∈E}。また、その集合に含まれる子供頂点の数#Г(v)を持って,vのout−degreeとよび、逆にvに入ってくるエッジの数をvのin−degreeと呼ぶ。
4)グラフがラベル付き(labelled)であるとは、全ての頂点に特定のラベルが割り当てられているようなものを指す。
本実施の形態においては、ルート付き、ラベル付き、向き有りのツリーを考える。またそのルートはin−degreeがゼロ、すなわちそこに入ってくるエッジが存在しないような頂点を考える。頂点のラベルとしては、{oφ,o0,o2,+φ,+0,+2,−φ,−0,−2}のいずれかを割り当てるものとする。このとき,ラベルがoφ(o0,o2,+φ,+0,+2,−φ,−0,あるいは−2)となっている頂点集合の部分集合をVoφ(Vo0、Vo2、V+φ、V+0、V+2、V−φ,V−0,あるいはV−2)と表す。頂点vに対して、l(v)と書けばそれは頂点に割り当てられたラベルを表すことにする。以後の便宜のため、以下のような集合を定義しておく。Vo=Voφ∪Vo0∪Vo2、V+=V+φ∪V+0∪V+2、V-=V-φ∪V-0∪V-2、V0=Vo0∪V+0∪V-0、V2=Vo2∪V+2∪V-2、ただし、∪の記号は、disjoint unionを表している。加えて、頂点vの子頂点集合は、Г(v)は以下のように分割することができる。
Гo0(v)=Г(v)∩Vo0,Гo2(v)=Г(v)∩Vo2,Г+0(v)=Г(v)∩V+0,Г-0(v)=Г(v)∩V-0,Г+2(v)=Г(v)∩V+2,Г-2(v)=Г(v)∩V-2,Г−(v)=Г(v)∩V−,Г+(v)=Г(v)∩V+,Г2(v)=Г(v)∩V2である。
さらに、頂点v∈Vに対して「符合」をsgn(v)と書けば、v∈V+∪V0ならばsgn(v)=+、v∈V−ならばsgn(v)=−を与えるものとする。以後ラベルを並べて流れの表現を与えるので、これらのラベルの出現順序には以下のような順序関係のルール(1)を定めておく。
o0>o2>+0>-0>+2>-2・・・(1)
(2−2.二次元構造安定なハミルトンベクトル場のツリー表現)
本実施の形態のグラフ表現作成工程に係る二次元構造安定なハミルトンベクトル場のツリー表現について説明する。以下、O−wordで表現される流れパターンのグラフ表現と、I,II−wordで表現される流れパターンのグラフ表現について説明する。
(2−2−1.O−wordで表現される流れパターンのグラフ表現)
Hを二次元領域Dz(M)上のO−wordで表現される構造安定なハミルトンベクトル場とし、Dをそのsaddle connection diagramとする。このハミルトンベクトル場Hに対して固有のルート付き、ラベル付き、及び向き有りのツリーTH=(V,E)を割り当てる方法とその平面グラフとしての可視化アルゴリズムを以下に説明する。
まず、領域全体Dz(M)からDをすべて取り除くと、いくつかの(無限の周期軌道を含む)円環開集合である連結成分からなる集合CH=Dz(M)\Dが構成できる。この各連結成分を頂点集合Vとする。ルートの頂点はこれらの連結成分のうちもっとも外側にある連結成分とし、そのラベルとして含まれている周期軌道が反時計回りであるときは+φ、時計回りであるときは-φを割り当てる。
次にエッジは以下のように作成する。二つの頂点v、w∈Vに対して、これらの頂点に対応する連結成分の閉包の共通部分(つまり成分の共通境界)が1次元dim(cl(v)∩cl(w))=1、かつ、vがwの外側の成分となっている場合に、その二つの間に向き有りエッジv⇒w∈Eを構成する。さらに、この共通部分(境界)集合cl(v)∩cl(w)がsaddle connectionであり、子連結成分wが反時計回り(あるいは、時計回り)の周期軌道を持つとき、wのラベルとして+0(あるいは-0)を割り当てるものとする。同様に、その共通部分(境界)集合cl(v)∩cl(w)が∂−saddle connectionであり、w内の周期軌道の向きが反時計回り(あるいは時計回り)であれば、wのラベルを+2(あるいは-2)とする。
CHの内部にはss−orbitは一つも存在しないので、連結成分vの子頂点集合Г(v)は、Г(v)=Г+0(v)∪Г-0(v)∪Г+2(v)∪Г-2(v)となることに注意する。Vo0=Vo2=φでもあるので、頂点集合Vの部分集合V0=V+0∪V-0およびV2=V+2∪V-2となっている。これらの部分頂点集合に入っている元の数は全ての構造安定な流れパターンが操作B0,B2,Cによって構成されていることから見積もることができる。
図9は、操作B0,B2,Cによって生成されるすべての流線パターンとそれに対応して連結部分集合(頂点集合)に励起される親子関係を示している。(a)はB0、(b)はB0、(c)はB0B0、(d)はB2Ck-1,k≧1、(e)はB2C1,l≧1、(f)は、B2 2Ck+l-1,k,l≧1、(g)はB0B2Ck,k≧1、(h)はB0B2Cl,l≧1を示している。図9において、vは親連結部分集合を表し、その子連結部分集合はw,y,zなどのように表現されている。破線は親連結部分の集合を表すため、そこに含まれている周期軌道を一本だけ向きとともに描いている。
図9(a)に示すように、操作B0によって作られた外向き8の字パターンが構成できる。vとhomoclinic saddle connectionを境界として共有する二つの連結成分w1∈V0およびw2∈V0で、その符合が同じ、つまりsgn(v)=sgn(w1)=sgn(w2)となるものが存在する。他方、B0で作られたパターンが図9(b)に示すように内向き8の字パターンであったとき、親成分vをどの連結成分にとるかによって、二種類のvとw∈V0の二つのエッジ(一つはsgn(v)=sgn(w)、もう一つはsgn(v)≠sgn(w)となっている)が構成できる。
図9(c)に示すように、操作B0B0によっては二種類の親子エッジ関係が形成される。左側のパターンでは、親連結成分vから、sgn(v)=sgn(w1)=sgn(w2)かつsgn(v)≠sgn(w3)となる三つの子連結成分w1,w2,w3∈V0へのエッジが構成できる。
右側のパターンでは、親連結成分vからsgn(v)=sgn(w1)≠sgn(w2)となる二つの子連結成分w1,w2∈V0へのエッジが構成できる。以下同様に、図9(d)〜(f)に示すように、各操作B2Ck-1,B2Cl,B2 2Ck+l-1(k≧1,l≧1)によってk個のvと同じ向きの周期軌道を含む連結成分と逆向きの周期軌道を含むl個の連結成分間の親子関係のエッジが順次構成される。
図9(g)は、操作B0B2Ckによって構成された流線パターンであり、これによりvからw1,w2∈V0、あるいは、vからw∈V0への同じ符合を持つ領域へのエッジと、k個の反対の符合を持つ子連結成分zj∈V0(j=1,...,k)へのエッジが構成される。
最後に、操作B0B2Cl(l≧1)によって作られる図9(h)の流線パターンに対応しては、sgn(v)≠sgn(w)となるw∈V0への一本のエッジと、同じ符合を持つl本のyj∈V0(j=1,...,l)へのエッジができる。
これ以外に、操作B0,B2,Cによって新しい親子関係を生成するものは存在しないので、以上から、子連結成分の集合に含まれる元の数は#Γ+0(v),#Γ-0(v)≦2であり、子頂点集合#Γ+2(v)、#Γ-2(v)については任意の非負整数を選ぶことができる。
次に、与えられたsaddle connection diagramから得られるグラフ表現をどのように平面グラフとして描画するかを説明する。まず、全ての連結部分v∈Vに対して、その子連結部分集合Γ(v)に含まれる元をラベルに関する順序関係のルール(1)に応じて並び替えておく。ただし、複数の同じラベル+0(あるいは-0)が含まれているときはサイクリックな順序で並べる(このことは、#Γ+0(v)、#Γ-0(v)≦2ということから一義的に実現できる。)。一方、ラベル+2および-0に対応する子連結部分集合Γ+2(v)およびΓ-2(v)については、その並べ方は以下のようなルールに従うものとする。
図9にあるyjと書かれた連結部分に対してその順序をサイクリックに並べる。すなわち、この中から特定の連結部分をy1として選んで、後は反時計回りに連結成分を並べる。同じ図中zjと書かれた子連結成分については単に反時計回りに並べることができる。
以下で説明する(2−2−1−1.O系列におけるsaddle connection diagramのツリーへの変換処理)及び(2−2−2−1.I,II系列におけるss−saddle connection diagramのツリーへの変換処理)について、以下のように定義する。Nで非負整数のなす集合とし、N∞で非負整数のなす有限列の集合とする(すなわち、N∞=N∪N2∪N3・・・)。N∞上に以下のように半順序<を定義する。N∞の元s=s1・・・sn,t=t1・・・tmに対して、「n<m」または「n=mかつs1=t1,...,sk−1=tk−1かつsk<tkとなる自然数k>0が存在する事である」が成り立つ時、s<tと定義する。以下では、頂点集合VからN∞への単射関数S:V→N∞を与える。このとき、頂点vに対して、S(v)を頂点idと呼ぶ。ここで、単射性から、頂点とその頂点idを同一視する。さらに、rootの頂点idは0と置く(頂点とidを同一視するため)。また、以下の構成から、頂点idは、ツリーの高さ優先探索の順番に対応していることが分かる。以下、σ∈{+,−}を表し、μ=−σとし、Gでツリー、s,s’,t,uで頂点id、Tで頂点idの部分集合を表す。また、以下で、図9,12を参照するが、流れの向きは無視するものとする。
(2−2−1−1.O系列におけるsaddle connection diagramのツリーへの変換処理)
図10−A〜図10−Eは、O系列におけるsaddle connection diagramのツリーへの変換処理を説明するためのフローチャートである。コンピュータ等の装置により、図10−A〜図10−Eに示す、O系列におけるsaddle connection diagramのツリーへの変換処理を実行可能である。
図10−A〜図10−Eにおいて、inputをsaddle connection diagram Dとし、saddle connection diagram Dをoutermostにrootがあるよう変換し(ステップS101)、s=0,T={0}と置く(ステップS102)。root 0の外側境界が反時計回りであるか否かを判断する(ステップS103)、root 0の外側境界が反時計回りである場合は(ステップS103の「Yes」)、σ=+,ツリーG=(0,+φ)とし(ステップS104)、root 0の外側境界が反時計回りでない場合、すなわち、時計回りである場合は(ステップS103の「No」)、σ=−,ツリーG=(0,−φ)として(ステップ105)、ステップS106に移行する。
ステップS106では、root 0が図9(a)の形(パターン)をしているか否かを判断する。root 0が図9(a)の形をしている場合は(ステップ106の「Yes」)、w1,w2の頂点idを00,01と定め、ツリーGを、図9(a)のツリーのラベルをidとラベルの組に置き換えたツリーG(すなわち、Gを(00,σ0)←(0,σφ)→(01,σ0))と定め、集合Tに{00,01}を追加する(ステップS107)。すなわち、T={0,00,01}と置き換える。この置換操作を、T←TU{00,01}と表す。この後、処理はステップS114に移行する。
他方、ステップS106において、root 0が図9(a)の形をしていない場合は(ステップ106の「No」)、ステップS108に移行する。
ステップS108では、root 0が図9(b)の左の形をしているか否かを判断する。root 0が図9(b)の左の形をしている場合には(ステップ108の「Yes」)、wの頂点idを00と定め、ツリーGを、図9(b)のツリーのラベルをidとラベルの組に置き換えたツリー(すなわち、Gを((0,σφ)→(00,σ0)))と定め、集合Tに{00}を追加する(ステップS109)。すなわち、T←TU{00}とする。この後、処理はステップS114に移行する。
他方、ステップS108において、root 0が図9(b)の左の形をしていない場合は(ステップS108の「No」)、ステップS110に移行する。
ステップS110において、root 0が図9(d)の形をしているか否かを判断する。root 0が図9(d)の形をしている場合は(ステップS110の「Yes」)、y1,...,ykの頂点idを00,...,0k−1と定め、ツリーGを、図9(d)のツリーのラベルをidとラベルの組に置き換えたツリーと定め、集合Tに{00,...,0k−1}を追加する(ステップS111)。すなわち、T←TU{00,...,0k−1}とする。この後、処理はステップS114に移行する。
他方、ステップS110において、root 0が図9(d)の形をしていない場合は(ステップS110の「No」)、ツリーGをσφと定め(ステップS112)、このツリーGをoutputして(ステップS113)、処理を終了する。
ステップS114において、Tの中にsより大きい元tが存在するか否かを判断する。sがTの中で最大元の場合は(ステップS114の「No」)、ツリーGの頂点idを全て取り除いて、残りのツリーをGとし(ステップS115)、ツリーGをoutputして(ステップS113)、処理を終了する。
他方、ステップS114において、sがTの中で最大元でない場合は(ステップS114の「Yes」)、s’=min{t∈T|s<t}(すなわち、s’をTの中でsの次に大きい元)として、sをs’と置換して、(s,σ*)←(s’,σ*’)とする(ステップS116)。この後、処理はステップS117に移行する。
ステップS117において、頂点sの外側境界が1つのhomoclinic saddle connectionとsaddleからなり、頂点sの内部境界が図9(a)の形をしているか否かを判断する。頂点sの外側境界が1つのhomoclinic saddle connectionとsaddleからなり、頂点sがの内部境界が図9(a)の形をしている場合は(ステップ117の「Yes」)、w1,w2の頂点idをs0,s1と定め、ツリーGを、図9(a)のツリーのラベルをidとラベルの組に置き換えたツリーと定め、Tに{s0,s1}を追加する(ステップS118)。この後、処理はステップS114に戻る。
他方、ステップS117において、頂点sの外側境界が1つのhomoclinic saddle connectionとsaddleでない、もしくは、頂点sの内部境界が図9(a)の形をしていない場合は(ステップS117の「No」)、ステップS119に移行する。
ステップS119において、頂点sの外側境界が1つのhomoclinic saddle connectionとsaddleからなり、頂点sの内部境界が図9(b)の左の形をしているか否かを判断する。頂点sの外側境界が1つのhomoclinic saddle connectionとsaddleからなり、頂点sの内部境界が図9(b)の左の形をしている場合は(ステップS119の「Yes」)、wの頂点idをs0と定め、ツリーGを、図9(b)の左のツリーのラベルをidとラベルの組に置き換えたツリーと定め、Tに{s0}を追加する(ステップS120)。この後、処理はステップS114に戻る。
他方、ステップS119において、頂点sの外側境界が1つのhomoclinic saddle connectionとsaddleでない、もしくは、頂点sの内部境界が図9(b)の左の形をしていない場合は(ステップS119の「No」)、ステップS121に移行する。
ステップS121において、頂点sの外側境界が1つのhomoclinic saddle connectionとsaddleからなり、頂点sの内部境界が図9(d)の形をしているか否かを判断する。頂点sの外側境界が1つのhomoclinic saddle connectionとsaddleからなり、頂点sの内部境界が図9(d)の形をしている場合は(ステップ121の「Yes」)、y1,...,ykの頂点idを{s0,...,sk−1}と定め、ツリーGを、図9(d)のツリーのラベルをidとラベルの組に置き換えたツリーと定め、Tに{s0,...,sk−1}を追加する(ステップS122)。この後、処理はステップS114に戻る。
他方、ステップS121において、頂点sの外側境界が1つのhomoclinic saddle connectionとsaddleでない、もしくは、頂点sの内部境界が図9(d)の形をしていない場合は(ステップS121の「No」)、ステップS123に移行する。
ステップS123において、頂点sが図9(c)の左の形をしているか否かを判断する。頂点sが図9(c)の左の形をしている場合は(ステップS123の「Yes」)、ステップS124に移行する。
ステップS124において、頂点sのラベルσ0のσが+であるか(すなわち、sの中の流れは反時計回りであるか)否かを判断する。頂点sのラベルσ0のσが+である(すなわち、sの中の流れは反時計回りである)場合は(ステップS124の「Yes」)、w1,w2,w3の頂点idをs0,s1,s2と定め、ツリーGを、図9(c)の左のツリーのラベルをidとラベルの組に置き換えたツリーと定め、Tに{s0,s1,s2}を追加する(ステップS125)。この後、処理は、ステップS114に戻る。
他方、ステップS124において、頂点sのラベルσ0のσが+でない場合、すなわち、頂点sのラベルσ0のσが−である(すなわち、sの中の流れは時計回りである)場合は(ステップS124の「No」)、w1,w2,w3の頂点idをs1,s2,s0と定め、ツリーGを、図9(c)の左のツリーのラベルをidとラベルの組に置き換えたツリーと定め、Tに{s0,s1,s2}を追加する(ステップS126)。この後、処理は、ステップS114に戻る。
他方、ステップS123において、頂点sが図9(c)の左の形をしていない場合は(ステップS123の「No」)、ステップS127に移行する。
ステップS127において、頂点sが図9(c)の右の形をしているか否かを判断する。頂点sが図9(c)の右の形をしている場合は(ステップS127の「Yes」)、ステップS128に移行する。
ステップS128において、頂点sのラベルσ0のσが+である(すなわち、sの中の流れは反時計回りである)か否かを判断する。頂点sのラベルσ0のσが+である(すなわち、sの中の流れは反時計回りである)場合は(ステップS128の「Yes」)、w1,w2の頂点idをs0,s1と定め、ツリーGを、図9(c)の右のツリーのラベルをidとラベルの組に置き換えたツリーと定め、Tに{s0,s1}を追加する(ステップS129)。この後、処理はステップS114に戻る。
他方、ステップS128において、頂点sのラベルσ0のσが+でない場合、すなわち、頂点sのラベルσ0のσが−である(すなわち、sの中の流れは時計回りである)場合は(ステップS128の「No」)、w1,w2の頂点idをs1,s0と定め、ツリーGを、図9(c)の右のツリーのラベルをidとラベルの組に置き換えたツリーと定め、Tに{s0,s1}を追加する(ステップS130)。この後、処理はステップS114に戻る。
他方、ステップS127において、頂点sが図9(c)の右の形をしていない場合は(ステップS127の「No」)、ステップS131に移行する。
ステップS131において、頂点sが図9(h)の形をしているか否かを判断する。頂点sが図9(h)の形をしている場合は(ステップS131の「Yes」)、y1,...,yl,wの頂点idをs1,...,sl,s0と定め、ツリーGを、図9(h)のツリーのラベルをidとラベルの組に置き換えたツリーと定め、Tに{s0,...,sl}を追加する(ステップS132)。この後、処理はステップS114に戻る。
他方、ステップS131において、頂点sが図9(h)の形をしていない場合は(ステップS131の「No」)、ステップS133に移行する。
ステップS133において、頂点sが図9(g)の左の形をしているか否かを判断する。頂点sが図9(g)の左の形をしている場合(ただし、k=0の場合も含む)は(ステップ133の「Yes」)、w1,w2,z1,...,zkの頂点idをs0,s1,s2,...,sk+1と定め、ツリーGを、図9(g)の左のツリーのラベルをidとラベルの組に置き換えたツリーと定め、Tに{s0,...,sk+1}を追加する(ステップS134)。この後、処理はステップS114に戻る。
他方、ステップS133において、頂点sが図9(g)の左の形をしていない場合は(ステップS133の「No」)、ステップS135に移行する。
ステップS135において、頂点sが図9(g)の右の形をしているか否かを判断する。頂点sが図9(g)の右の形をしている場合(ただし、k=0の場合も含む)は(ステップS135の「Yes」)、w,z1,...,zkの頂点idをs0,s1,...,skと定め、ツリーGを、図9(g)の右のツリーのラベルをidとラベルの組に置き換えたツリーと定め、Tに{s0,...,sk}を追加する(ステップS136)。この後、処理はステップS114に戻る。
他方、ステップS135において、頂点sが図9(g)の右の形をしていない場合は(ステップS135の「No」)、ステップS138に移行する(この場合、ステップS137に示すように、頂点sは図9(f)の形をしている)。
ステップS138において、頂点sのラベルσ0のσが+である(すなわち、sの中の流れは反時計回りである)か否かを判断する。頂点sのラベルσ0のσが+である(すなわち、sの中の流れは反時計回りである)場合は(ステップS138の「Yes」)、y1,...,yk,z1,...,zlの頂点idをs0,...,sk−1,sk,...,sl+k−1と定め、ツリーGを、図9(f)のツリーのラベルをidとラベルの組に置き換えたツリーと定め、Tに{s0,...,sl+k−1}を追加する(ステップS139)。この後、処理はステップS114に戻る。
ステップS138において、頂点sのラベルσ0のσが+でない場合、すなわち、頂点sのラベルσ0のσが−である(すなわち、sの中の流れは時計回りである)場合は(ステップS138の「No」)、y1,...,yk,z1,...,zlの頂点idをsl,...,sl+k−1,s0,...,sl−1と定め、ツリーGを、図9(f)のツリーのラベルをidとラベルの組に置き換えたツリーと定め、Tに{s0,...,sl+k−1}を追加する(ステップS140)。この後、処理はステップS114に戻る。
以上の操作が、O系列におけるsaddle connection diagramのツリーへの変換処理である。
(2−2−2.I−wordおよびII−wordによって表現される流れのグラフ表現)
HをDz(M)内に1−source−sink pointを持つ構造安定なハミルトンベクトル場、Dをそのss−saddle connection diagramとする。このとき、CH=Dz(M)\Dは、closed orbitを含む円環開領域またはss−orbitを含む開円板領域となる連結成分からなる。これに対して、ルート付き、ラベル付き向き有りツリーを以下のように構成する。O−wordの時と同様に、各CHの連結成分を頂点集合に対応づける。ルートとなる連結成分はCHの中で1−source−sink pointに最も近い開円板領域で、その閉包は1−source−sink pointを含みかつ内部に時計回りのss−orbitを含むものを選ぶ。この連結成分にラベルoφを割り当てる。このような決め方によりルートは一義的に決定することができる。
図11は、ルートとなる連結成分をCH=Dz(M)\Dから選ぶ方法を説明するための図である。ここで、DはI−wordあるいはII−wordで表現できるss−saddle connection diagramとする。破線はルートとなる連結成分に含まれるss−orbitを一本、その向きとともに書いたものである。
図11において、(a)は、語表現IA0A0で表現されたss−saddle connection diagramであり、ss−∂−saddle connectionの流れの向きは右から左である。(b)は、語表現IA0A0を持つss−saddle connection diagramで、ss−∂−saddle connectionの向きは左から右である。(c)は、語表現IIA0A0を持つss−saddle connection diagramで、その最も外側にある連結成分に含まれた周期軌道の向きが時計回り。(d)は、語表現IIA0A0は(c)と同じであるが周期軌道の向きが反対である。各ss−saddle connection diagramの下には、ルートとなっている連結成分内にある点を無限大に写すような等角写像によってできるss−saddle connection diagramの像を示している。この写像による像では、ルートに含まれるss−orbitはすべて反時計回りになっている。
例えば、図11(a)に示すような、IA0A0なる語表現を持つss−saddle connection diagramを考えると、1−source−sink pointの真上にある連結成分(破線で書いた曲線が含まれる領域)がルートになる。もし、同じss−saddle connection diagramが同じ形でもその流れの向きが、図11(b)のように反対になれば、その定義からルートは1−source−sink pointの真下にある連結成分となる。図11(c)の語表現IIA0A0を持つss−saddle connection diagramに対しては、1−source−sink pointの真上の連結成分が、向きを逆転すると(図11(d))、その真下の連結成分がルートとなる。このルートとなっている連結成分にある点を一つ選び、それを無限遠点に写すような等角写像でss−saddle connection diagramを写すと、その像において、ルートの連結成分は最も外側の連結成分となり、さらにその中でss−orbitは常に反時計回りになることに注意する(図11の各図の下の部分参照)。
こうして得られ連結成分からなる頂点集合に対して、頂点間の向き付けエッジを、ルート連結成分が最も外側になるよう等角写像で写したものを使って図11に示したように定義する。二つの連結成分v,w∈Vの閉包の共通部分の次元が1、すなわちdim(cl(v)∩cl(w))=1かつvがwの外側にあるとき、vからwへの向き付けエッジを構成する。ss−orbitを持つ連結成分w∈Vに対して、もしcl(v)∩cl(w)がss−saddle connection(あるいはss−∂−saddle connection)を含む場合、その子頂点wにはo0(あるいはo2)のラベルを割り当てる。内部に反時計回りのclosed orbitを持つ連結成分w∈Vに対して、もしcl(v)∩cl(w)がsaddle connection(あるいは∂−saddle connection)となっている場合、子の連結成分wにはラベル+0(あるいは+2)を付与する。同様にして、ラベル-0および-2を時計回りのclosed orbitを持つ連結成分に付与する。
この結果、ハミルトンベクトル場Hのss−saddle connection diagramに対して固有のルート付き、ラベル付き、向き有りツリーTH=(V,E)を対応させることができる。I−wordあるいはII−wordの語表現を持つ構造安定なハミルトンベクトル場Wのグラフ表現TH=(V,E)を平面グラフとして可視化する方法は以下の通りである。
まず、子連結成分の集合に関して、Г(v)=ГO(v)∪Г+(v)∪Г−(v)となっていることに注意する。いま、Г(v)に入っている元は予め順序関係のルール(1)に従って並びかえられており、また同じラベルを持つГ+2(v)∪およびГ-2(v)の元については、O−wordの可視化の時と同様にサイクリックに反時計回りに並べられているとしておく。V+やV−に入っているclosed orbitを持つ連結成分vに対する平面グラフへの可視化は、フローチャート(図10−Aから図10−E)を用いればよいので、後はVoに入っている連結成分に対するグラフの描画について考えればよい。
図12は、操作A0,A2,Cによって生成されるss−saddle connection diagramの局所構造とそれに対応して得られるグラフ表現の可視化を示したものである。図12において、親連結成分vはoφ(o0またはo2)と表現されている。
図12において、(a)はA0、(b)はA0、(c)はA0A0、(d)はA2Ck(k≧0)、(e)はA2Cl(l≧1)、(f)はA2 2Ck+l(k,l≧1)、(g)は、A0A2Ck(k≧0)、(h)はA0A2Cl(l≧1)によって構成される局所的なss−saddle connection diagramとそれに対応して生成される連結成分の親子関係、親連結成分vに含まれる反時計回りのss−orbitは破線で示している。親連結成分のラベルはo*(ただし、*はφ、0あるいは2のいずれか)と表現されている。ss−orbitの方向は常に反時計回りになるようにルートを定めているので、その子になる連結成分に含まれる軌道の流れる方向は自動的に決まる。
より具体的に説明すると、図12(a)にある外向きhomoclinic saddle connectionに対して、親連結成分vは二つの子連結成分w∈Vo0とy∈V+0を持つので、o*からo0と+0への二本の矢印を描画する。図12(b)にあるような内向きhomoclinic saddle connectionに対しては、親をどの連結成分に選ぶかに応じて、o0あるいは-0への矢印を描くことができる。操作A0A0で作られる構造に対しては、図12(c)に示すように二種類のパターンが作られるので、それに応じてo0、+0、-0への三本の矢印を描くかo0と-0への二本のエッジを描くことができる。
操作A2Ck(k≧0)で作られる図12(d)のようなk個のclosed orbitを含む連結成分{z1,...,zk}を持つ局所的なss−saddle connection diagramの局所構造に対応して、o2およびk個の+2の矢印を描く。操作A2Cl(l≧1)で作られるl個の時計回りのclosed orbitを含む子連結成分{y1,...,yl}を持つ局所流線構造(図12(e))に対しては、l個の矢印を-2へ描けばよい。図3(f)には、A2 2Ck+l(k,l≧1)で作られる一個の子連結成分w∈Vo2とl個の子の連結成分{y1,...,yl}とk個の子連結成分{z1,...,zk}を持つ局所構造と、それに対応してk個の+2とl個の-2への矢印が描けることが示されている。最後に、操作A0A2Ck(k≧0)で与えられる図12(g)(あるいは図12(h)のようなA0A2Cl(l≧1))の構造に対しては、o2,-0(あるいはo0,+0)の矢印を描いてその右側にk個の+2(あるいはl個の-2)への矢印を描く。
(2−2−2−1.I,II系列におけるss−saddle connection diagramのツリーへの変換処理)
図13−A〜図13−Dは、I,II系列におけるss−saddle connection diagramのツリーへの変換処理を説明するためのフローチャートである。図13−A〜図13−Dに示す、I,II系列におけるss−saddle connection diagramのツリーへの変換処理は、コンピュータ等の装置によって実行可能である。
図13−A〜図13−Dにおいて、inputをss−saddle connection diagram Dとして、所定の座標変換をして、図11に示すような、outermostにrootがあるよう変換し(ステップS141)、u=0,T={0},ツリーG=(0,oφ)と置く(ステップS142)。
ステップS143において、root 0が図12(a)の形をしているか否かを判断する。root 0が図12(a)の形をしている場合は(ステップS143の「Yes」)、w、yの頂点idを1,00と定め、ツリーGを、図12(a)のツリーのラベルをidとラベルの組に置き換えたツリー(すなわち、Gを(1,o0)←(0,oφ)→(00,+0))と定め、Tに{1,00}を追加する(すなわち、T={0}をT={0,1,00}と置換する)(ステップS144)。この後、処理はステップS149に移行する。
他方、ステップS143において、root 0が図12(a)の形をしていない場合は(ステップS143の「No」)、ステップS145に移行する。
ステップS145において、root 0が図12(b)の左の形をしているか否かを判断する。root 0が図12(b)の左の形をしている場合は(ステップS145の「Yes」)、wの頂点idを1と定め、ツリーGを、図12(b)のツリーのラベルをidとラベルの組に置き換えたツリー(すなわち、Gを((0,oφ)→(1,o0))と定め、Tに{1}を追加する(ステップS146)。この後、処理はステップS149に移行する。
他方、ステップS145において、root 0が図12(b)の左の形をしていない場合は(ステップS145の「No」)、ステップS148に移行する(この場合、ステップS147に示すように、root 0が図12(d)の形をしている)。
ステップS148において、w,z1,...,zkの頂点idを1,00,...,0k−1と定め、ツリーGを、図12(d)のツリーのラベルをidとラベルの組に置き換えたツリーと定め、Tに{1,00,...,0k−1}を追加し、ステップS149に移行する。
ステップS149において、Tの中にuより大きい元tが存在するか否かを判断する。uがTの中で最大元の場合は(ステップS149の「No」)、ツリーGの頂点idを全て取り除いて、残りのツリーをGとおき(ステップS150)、ツリーGをoutputして(ステップS151)、処理を終了する。
他方、ステップS149において、uがTの中で最大元でない場合には(ステップS149の「Yes」)、u’=min{t∈T|u<t}(すなわち、u’をTの中でuの次に大きい元)として、(u,σ*)を(u’,σ’*)と置換する(ステップS152)。この後、処理はステップS153に移行する。
ステップS153において、uが自然数であるか(すなわち、oφ,o0,o2のidに対応するか)否かを判断する。uが自然数でない場合は(ステップS153の「No」)、O−wordの処理である図10−BのS114に移行する。
他方、ステップS153において、uが自然数の場合は(ステップS153の「Yes」)、ステップS155に移行する。
ステップS155において、頂点uの外側境界が外向きhomoclinic ss−saddle connectionと、丸囲みS(吸い込み湧き出し対:図6参照)からなり、uの内側境界が図12(a)の形をしているか否かを判断する。頂点uの外側境界が1つのhomoclinic ss−saddle connectionと丸囲みSからなり、uの内側境界が図12(a)の形をしている場合は(ステップS155の「Yes」)、w、yの頂点idをu+1,u0と定め、ツリーGを図12(a)のツリーのラベルをidとラベルの組に置き換えたツリー(すなわち、Gを(u+1,o0)←(u,o0)→(u0,+0))と定め、TをTU{u+1,u0}と置換する(ステップS156)。この後、処理はステップS149に戻る。
他方、ステップS155において、頂点uの外側境界が外向きhomoclinic ss−saddle connectionと丸囲みSからなっていない、または,uの内側境界が図12(a)の形をしていない場合は(ステップS155の「No」)、ステップS157に移行する。
ステップS157において、頂点uの外側境界が外向きhomoclinic ss−saddle connectionと丸囲みSからなり、uの内側境界が図12(b)の左の形をしているか否かを判断する。頂点uの外側境界が1つのhomoclinic ss−saddle connectionと丸囲みSからなり、uの内側境界が図12(b)の左の形をしている場合は(ステップS157の「Yes」)、wの頂点idをu+1と定め、ツリーGを、図12(b)の左のツリーのラベルをidとラベルの組に置き換えたツリーと定め、Tに{u+1}を追加する(ステップS158)。この後、処理はステップS149に戻る。
他方、ステップS157において、頂点uの外側境界が外向きhomoclinic ss−saddle connectionと丸囲みSからなっていない、または,uの内側境界が図12(b)の左の形をしていない場合は(ステップS157の「No」)、ステップS159に移行する。
ステップS159において、頂点uの外側境界が外向きhomoclinic ss−saddle connectionと丸囲みSからなり、uの内側境界が図12(d)の形をしているか否かを判断する。頂点uの外側境界が1つのhomoclinic ss−saddle connectionと丸囲みSからなり、uが図12(d)の形をしている場合は(ステップS159の「Yes」)、w,z1,...,zkの頂点idをu+1,u0,...,uk−1と定め、ツリーGを、図12(d)のツリーのラベルをidとラベルの組に置き換えたツリーと定め、Tに{u+1,u0,...,uk−1}を追加する(ステップS160)。この後、処理はステップS149に戻る。
他方、ステップS159において、頂点uの外側境界が外向きhomoclinic ss−saddle connectionと丸囲みSからなっていない、または,uの内側境界が図12(d)の形をしていない場合は(ステップS159の「No」)、ステップS161に移行する。
ステップS161において、頂点uが図12(c)の左の形をしているか否かを判断する。頂点uが図12(c)の左の形をしている場合は(ステップS161の「Yes」),w,y1,y2の頂点idをu+1,u0,u1と定め、ツリーGを、図12(c)の左のツリーのラベルをidとラベルの組に置き換えたツリーと定め、Tに{u+1,u0,u1}を追加する(ステップS162)。この後、処理はステップS149に戻る。
ステップS161において、頂点uが図12(c)の左の形をしていない場合は(ステップS161の「No」)、ステップS163に移行する。
ステップS163において、頂点uが図12(c)の右の形をしているか否かを判断する。頂点uが図12(c)の右の形をしている場合は(ステップS163の「Yes」),w1,w2の頂点idをu+1,u0と定め、ツリーGを、図12(c)の右のツリーのラベルをidとラベルの組に置き換えたツリーと定め、Tに{u+1,u0}を追加する(ステップS164)。この後、処理はステップS149に移行する。
他方、ステップS163において、頂点uが図12(c)の右の形をしていない場合は(ステップS163の「No」)、ステップS165に移行する。
ステップS165において、頂点uが図12(g)の形をしているか否かを判断する。頂点uが図12(g)の形をしている場合は(ステップS165の「Yes」)、w、y、z1,...,zkの頂点idをu+1,u0,u1,...,ukと定め、ツリーGを、図12(g)のツリーのラベルをidとラベルの組に置き換えたツリーと定め、Tに{u+1,u0,...,uk}を追加する(ステップS166)。この後、処理はステップS149に戻る。
他方、ステップS165において、頂点uが図12(g)の形をしていない場合は(ステップS165の「No」)、ステップS167に移行する。
ステップS167において、頂点uが図12(h)の左の形をしているか否かを判断する。頂点uが図12(h)の左の形をしている場合は(ステップS167の「Yes」)、w,z,y1,...,ylの頂点idをu+1,u0,u1,...,ulと定め、ツリーGを、図12(h)の左のツリーのラベルをidとラベルの組に置き換えたツリーと定め、Tに{u+1,u0,u1,...,ul}を追加する(ステップS168)。ステップS149に戻る。
ステップS167において、頂点uが図12(h)の左の形をしていない場合は(ステップS167の「No」)、ステップS169に移行する。
ステップS169において、頂点uが図12(h)の右の形をしているか否かを判断する。頂点uが図12(h)の右の形をしている場合は(ステップS169の「Yes」)、w,y1,...,ylの頂点idをu+1,u0,...,ul−1と定め、ツリーGを、図12(h)の右のツリーのラベルをidとラベルの組に置き換えたツリーと定め、Tに{u+1,u0,...,ul−1}を追加する(ステップS170)。この後、処理はステップS149に戻る。
他方、ステップS169において、頂点uが図12(h)の右の形をしていない場合は(ステップS169の「No」)、ステップS171に移行する。
ステップS171において、頂点uが図12(f)の形をしているか否かを判断する。頂点uが図12(f)の形をしている場合は(ステップS171の「Yes」)、w,z1,...,zk,y1,...,yl,の頂点idをu+1,u0,...,uk−1,uk,...,ul+k−1と定め、ツリーGを、図12(f)のツリーのラベルをidとラベルの組に置き換えたツリーと定め、Tに{u+1,u0,...,ul+k−1}を追加する(ステップS172)。この後、処理はステップS149に戻る。
ステップS171において、頂点uが図12(f)の形をしていない場合は(ステップS171の「No」)、ステップS173に移行する。
ステップS173において、頂点uが図12(b)の右の形をしているか否かを判断する。頂点uが図12(b)の右の形をしている場合は(ステップS173の「Yes」)、yの頂点idをu0と定め、ツリーGを、図12(b)の右のツリーのラベルをidとラベルの組に置き換えたツリーと定め、Tに{u0}を追加する(ステップS174)。この後、処理はステップS149に戻る。
他方、ステップS173において、頂点uが図12(b)の右の形をしていない場合は(ステップS173の「No」)、ステップS175に移行する。
ステップS175において、頂点uが図12(e)の形をしているか否かを判断する。頂点uが図12(e)の形をしている場合は(ステップS175の「Yes」)、y1,...,ylの頂点idをu0,...,ul−1,と定め、ツリーGを、図12(e)のツリーのラベルをidとラベルの組に置き換えたツリーと定め、Tに{u0,...,ul−1}を追加する(ステップ176)。この後、処理はステップS149に戻る。
他方、ステップS175において、頂点uが図12(e)の形をしていない場合は(ステップS175の「No」)、ステップS149に戻る(この場合、ステップS177に示すように、頂点uは、図12(a)の形をしている)。
以上の操作が、I,II系列におけるss−saddle connection diagramからのツリーへの変換処理である。
(2−2−3.グラフ表現とその正規表現)
以上のことから、1−source−sink pointを持つss−saddle connection diagramに対して、そのルートを一義的に決定でき、また、そこから操作A0,A2,B0,B2,Cによって構成されるss−saddle connection diagramの局所構造と、そこから導入される連結成分の間の親子関係は図9と図12の中で全て表現されているので、以下のことが示されたことになる。
Proposition 3.1:各1−source−sink pointを持つ構造安定なハミルトンベクトル場の流線位相構造には固有のルート付き、ラベル付き、向き有りツリー表現が対応する。
1−source−sink pointを持たない構造安定なハミルトンベクトル場については、ルートの選び方は一義的ではない。なぜなら、内部に∂−saddleをもたない円境界を含む任意の連結成分に対して、ある連続写像が存在して、それによってその連結成分を常に最も外側の連結成分にすることができるからである。したがって、saddle connection diagramについては、その連結成分の数だけ異なるグラフ表現が存在することになる。このような曖昧さを取り除くために、こうした連続写像によって移りあってできるグラフ表現はそれぞれ別ということにする。すなわち、二つの構造安定なハミルトンベクトル場V1とV2に対して、V1〜V2なる同値関係を、ある同相写像Dz(M)上の同相写像が存在してV1とV2の各軌道が向きを変えることなく互いに写りあいV1とV2の外側境界が対応していることによって定義する。このとき、〜は同値関係を定め、この同値類に対して固有のルート付き、ラベル付き、向き有りツリーを与えることができる。
Proposition 3.2:構造安定なハミルトニアンベクトル場の〜による同値類の流線位相構造には固有のルート付き、ラベル付き、向き有りツリー表現が対応する。
(3.正規表現作成工程)
上記図2の正規表現作成工程(ステップS2)について詳細に説明する。さて、グラフ理論でよく知られた事実として、任意のルート付き、ラベル付き、向き有りツリーには固有の「正規表現(regular expression)」なるものを考えることができる。TH=(V,E)を上記方法で与えられた構造安定なハミルトンベクトル場Hに対して与えられたグラフ表現とする。このグラフ表現に対して、その正規表現は以下のようにして帰納的に与えられる。まず、ルート以外のすべての頂点のin−degreeはすべて1であることに注意する。もし、ht(TH)=0ならグラフはルートのみ、すなわちV={v0}であり、その正規表現はl(v0)である。いま、高さht(TH)=n-1の正規表現Nがあった時に、そこにある頂点集合Tn-1={v1,v2,...,vm}とすると、各頂点viの子頂点集合Г(vi)={vi1,vi2,...,vimi}とそれに対応するラベルli=l(vi)(i=1,...,m)を使うと、Nに対してliをli(li1,li2,...,limi)に置き換えることによって新しい正規表現が構成できる。ただし、lik=l(vik)(k=1,...,mi)である。このようにして構成されたTHの正規表現をNTHとすると、その構成手法から以下の命題を得る。
Proposition 3.3:ルート付き、ラベル付き、向き有りツリーTから正規表現NTへの写像NT=fN(T)は全単射である。
Proposition 3.1とProposition 3.2の主張していることは、言い換えれば、(ss−)saddle connection diagram Hからそのグラフ表現THへの写像TH=fT(H)は単射(1対1対応)となるので、上のProposition 3.3と合わせれば、合成写像NT=fN(fT(H))も単射になることがわかる。すなわち、同じ語表現を持つ構造安定なハミルトンベクトル場に対して異なる正規表現が与えられ、語表現で区別できないパターンも正規表現を使えば全て区別が可能となる。その実施例として、図14−Aに同じ語表現IA0Cで与えられる構造安定な流線パターンのグラフ表現の可視化とその正規表現を示す。(2−2−2.I−wordおよびII−wordによって表現される流れのグラフ表現)で説明したようにルートの連結成分は1−source−sink pointの真下あるいは真上にあるものを選んでいる。これからもわかるように全ての正規表現は異なっている。
図14−Aは、IA0Cなる語表現をもつ構造安定な流線パターンのグラフ表現とその正規表現を示している。ルートはその定義から1−source−sink pointの真下の連結成分に対応している。グラフ表現を得るために、ルート連結成分を最も外側の連結成分へと写したものをその右側に描いている。
(3−1.ツリーの正規表現への変換処理)
図14−Bは、ツリーの正規表現への変換処理を説明するためのフローチャートである。図14−Bに示す、ツリーの正規表現への変換処理は、コンピュータ等の装置により実行可能である。以下の処理では、前処理として,ツリーの全ての点にidが与える。ただし,異なる点のidは異なるものとする。図14−Bにおいて、inputをツリーGとする(ステップS178)。VをツリーGの頂点集合,s=0,T={0},Xを空集合φ,正規表現N=(s,σφ)()と置く(ステップS179)。
ステップS180において、sの子を左から読んだ結果を(s(1),σ(1)),...,(s(h),σ(h))とする。このとき、正規表現Nの中の(s,σ*)()をσ*(s(1),σ(1))(),...,(s(h),σ(h))())と置換し、Tに{s(1),...,s(h)}、Xに{s}を追加する。
ステップS181において、♯V=♯Xであるか否かを判断する。♯V=♯Xである場合は(ステップS181の「Yes」)、正規表現Nをoutputして、処理を終了する。
他方、ステップS181において、♯V=♯Xでない場合には(ステップS181の「No」)、s’∈T−Xを一つ選び(注:選び方に依らない)、(s,σ*)を(s’,σ’*)と置換して(ステップS182)、ステップS180に戻る。
以上の操作が、ツリーの正規表現への変換処理である。
(4.語表現変換工程)
上記図2の語表現変換工程(ステップS3)について詳細に説明する。
(4−1.正規表現から語表現への変換アルゴリズム)
(4−1−1.許容正規表現(admissible regular expression))
以上説明したように、正規表現とss−saddle connection digramは1対1に対応する(単射)ことがわかるので、正規表現からその語表現へのアルゴリズムを与えることができる。ただし、ss−saddle connection diagramから正規表現を与える合成写像fN(fT(H))は全射ではないので、すべての正規表現にこのアルゴリズムを適用することはできず、可能なのは合成写像fN(fT(H))の像となっている正規表現のみである。このような正規表現を許容正規表現(admissible regular expression)と称する。許容正規表現を特徴づけるために、以下のような正規表現のfundamental type(基本形)とforward replacement(前方置換)を定義する。すなわち、許容正規表現とは、ルートつき,ラベル付き,および方向つきのツリーに対応する正規表現のうち,fundamental typeの正規表現に対して,正規表現のforward replacementを施してできる全ての正規表現をいう。
まず、fundamental typeは、+φ、-φ、oφを含む正規表現である。図15は、5つのfundamental type TNとそれに対応する正規表現Nを示している。これらの正規表現はグラフ表現におけるルートを含む(ss−)saddle connection diagramに対応している。すなわち、+φ(+0、+0)や、oφ(o2、+2,....,+2)といった正規表現はOB0やICkなる語表現を持つss−saddle connection diagramの正規表現となっている。
次に、正規表現の形式的な文字列の変換ルールを定め、これらをforward replacement(前方置換)と呼ぶことにする。これらはラベル列b1,...,bnを正規表現中とラベルlの下に付け加える変換規則であり、以後、l→l(b1,...,bn)のような形で表現する。図16は、14個のforward replacementのリストである。例えば、A0+なる前方置換は、o0→o0(o0,+0)のように与えられる。
各前方置換の内容を説明するために、その内部に流線の位相構造を持たないような連結成分を単純連結成分(simple connected component)と呼ぶことにする。単純連結成分はグラフ表現においては子連結成分を持たないような頂点に対応している。このとき、図16にあるforward replacementは操作A0,A2,B0,B2,Cを単純連結成分の中にあるss−orbitやclosed orbitに施したときにss−saddle connection diagramの局所流線構造とその正規表現がどのように変化するかを記述したものである。
図17は、操作A0,A2,Cを施したときのforward replacementと流線構造の変化を表したものである。より詳細には、図17は、ss−saddle connection diagramにおける単純連結成分o0あるいはo2にあるss−orbitに操作A0,A2,Cを適用して得られる流線の局所構造の変化に対応する正規表現のforward replacementである。
操作A0を単純連結成分o0にあるss−orbitに施したとき、図17(a)に示すような、外向きhomoclinic saddle connectionと、図17(b)に示すような、内向きhomoclinic saddle connectionが得られる。この変化にともなって派生する正規表現のforward replacementを、それぞれA0+:o0→o0(o0,+0)およびA0−:o0→o0(o0(-0))のように与える。Forward replacement A2Ckは、図17(c)に示すような操作A2Ckを単純連結成分o0にあるss−orbitに施したときに得られる正規表現の変換規則である。操作ClA0,Cl,ClA2Ck(k,l≧0)を単純連結成分o2のss−orbitに施したときに得られる4つのforward replacement ClA0+,ClA0-,Cl ○,ClA2Ckである(図17(d)−(g)参照)。
さらに、操作B0,B2,Cを単純連結成分に含まれるclosed orbitに適用したときに図18に示すようなforward replacementが定義できる。図18は、(ss−)saddle connection diagramにおける単純連結成分σ0とσ2に含まれるclosed orbitに操作B0,B2,Cを適用したときに得られる流線構造の変化に伴って励起する正規表現のforward replacementを説明するための図である。
操作B0を適用して、図18(a)と図18(b)に示すような、外向きおよび内向きhomoclinic saddle connectionが得られたときのforward replacementは、それぞれB0+:σ0→σ0(σ0,σ0)およびB0−:σ0→σ0(σ0(μ0))である。操作B2Ck,ClB0,ClB0,Cl,ClB2Ckによって誘導されるforward replacementは、それぞれ図18(c)〜図18(g)に示すようなB2Ck,ClB0+,ClB0-,Cσ l,ClB2Ckである。最後に、forward replacement ClB2Ckについては、sgn(σ2)の符合に応じて、ラベル間の順序関係のルール(1)を考慮すると、二種類のforward replacementが得られることに注意する。
このfundamental typeに対して帰納的にforward replacmentを適用して得られる正規表現の集合を以下のように定義する。
正規表現がO−type(あるいはI,II−type)であるとは、その正規表現が基本形O,OB0,OB2Ck(あるいはICk or II)から上のルールで構成されるときをいう。操作によって得られる全ての局所流線構造が図17及び図18で網羅されているので、その構成方法から以下のことがわかる。
すべての構造安定なハミルトンベクトル場は、5個の操作A0,A2,B0,B2,Cをfundamental pattern 3個のO,I,IIに施して作られることに留意すれば以下を得る。このことは、数学的に正しいことが証明されている。この事実から次に与える語表現変換アルゴリズムに入力可能な許容正規表現は上の帰納的な方法によって定義されたものであることが示された。
(4−1−2.語表現への変換アルゴリズム)
以上から分かるように、これから与える語表現への変換アルゴリズムはfundamental typeに各操作A0,A2,B0,B2,Cを施した時に得られるforward replacementを順次繰り返して得られる正規表現だけを入力として受け取るこができる。
したがって、与えられた許容正規表現について、各操作の作る特徴的流線構造を抽出したときにおこる正規表現の変化であるbackward replacement(後方置換)を定義することができれば、そのbackward replacementを使って正規表現を簡単にすると同時に抜き出された構造に対応する語表現の文字列を割り当てることによって語表現への変換が可能になる。
すなわち、一つのss−saddle connectionを持つhomoclinic saddle point(あるいはss−∂−saddle connectionを持つ円境界)を消去する操作A0(あるいはA2)の逆操作であり、操作B0(あるいはB2)の逆はhomoclinic saddle connectionのペア(あるいは、ちょうど二つの∂−saddleを持つ円境界)を円境界に置き換える操作である。二つ以上の∂−saddleを持つ円境界についている∂−saddle connectionによって囲まれた単純連結成分を消去することが操作Cの逆操作である。ここで、backward replacementは、許容正規表現の消去されるべき構造に対応した文字列の並びの変化として表現できることに注意する。
まずは、B2の逆操作によって定義されるbackward replacementのリストを与える。これらはfundamental type OB2Ck(k=0)およびforward replacement B2Ck,ClB2Ck(k=0,l≧0)の逆操作に対応する。Fundamental type OB2:σφ→σφ(σ2)に対するbackward replaementは単純にσφ(σ2)→σφと書ける。見やすさのため、backward replaementによって消去される正規表現の文字列に、[数4],[数5],[数11],図19,及び図20では下線を付し、文章中では、[[ ]]を付す。図18(c)のforward replacement B2に対するbackward replacementは、その親連結成分σ0のまわりの構造に応じて異なっている。
図19は、(ss−)saddle connection diagramにおける局所流線構造の変化に対応する正規表現のbackward replacementの一例を示す図である。
もし、連結成分σ0が外向きhomoclinic saddle connectionで、図19(a)のように囲まれているとき、∂−saddle connectionに囲まれた単純連結成分を(ss−)saddle connection diagramから消去すれば、backward replacement σ0([[σ2]])→σ0を得る。一方、親連結成分σ0が内向きhomoclinic saddle connectionに囲まれているとき(図19(b))、そのbackward replacement σ0(μ0,[[σ2]])→σ0(μ0)である。Forward replacement ClB2のbackward replacementは、ラベルに対する順序関係のルール(1)からσ2の符合に応じて以下のいずれかで与えられる。
Fundamental type OB0とforward replacement B0+,B0-,ClB0+,ClB0-の逆操作は、(ss−)saddle connection diagramからhomoclinic saddle connectionのペアを円境界に置き換えることに対応する。Fundamental type OB0に対するbackward replacementは、外向きhomoclinic saddle connectionに囲まれているときはσφ([[σ0,σ0]])→σφ、内向きhomoclinic saddle connectionに囲まれているときには、σφ([[σ0(μ0)]])→σφで与えられる。図18(a)のforward replacement B0+の中にある連結成分σ0が外向きhomoclinic saddle connectionに囲まれているとき(図19(c)),そのbackward replacementは、σ0([[σ0,σ0]])→σ0で定義される。連結成分σ0が内向きhomoclinic saddle connectionに囲まれているときのbackward replacementは順序関係のルール(1)より図19(d)に示すように、+0([[+0,+0]],-0)→+0(-0)あるいは-0(+0,[[-0,-0]])→-0(+0)のいずれかである。
同様の議論から、forward replacement B0-に対して三つのbackward replacement σ0([[σ0(μ0)]])→σ0,+0([[+0(-0)]],-0)→+0(-0),-0(+0,[[-0(+0)]])→-0(+0)が得られる。図18(d)と図18(e)のforward replacement ClB0+,ClB0-(l≧0)は以下のbackward replacementを誘導する。
∂−saddle connectionに囲まれた単純連結成分を消去することに対応するbackward replacementはfundamental type ICk(k≠0)およびforward replacement A2Ck,B2Ck(k≠0),ClA0+,ClA0-,ClB0+,ClB0-(l≠0),CO l,Cσ l,ClA2Ck,(l+k≠0),ClB2Ckの逆操作に対応している。操作Cは円境界にいくつでも適用できることから、そのbackward replacementは、円境界についている∂−saddle connectionに囲まれた単純連結成分を含む列(+2,...,+2)や(-2,...,-2)から、単純連結成分のどれか一つを消去することを表現する。Fundamental type ICk(k≧1)のbackward replacementは以下のとおりである。
図17(c)に示したforward replacement A2Ck(k≠0)に対して、連結成分o0が図19(e)や図19(f)のように外向きあるいは内向きhomoclinic saddle connectionに囲まれている場合、∂−saddle connectionに囲まれた単純連結成分+2を消去して得られるbackward replacementはそれぞれ以下のようになる。
同様に、図18(c)のforward replacement B2Ck(k≧0)において、連結成分σ0が外向き、内向きのhomoclinic saddle connectionに囲まれているとき、そのbackward replacementは以下のようになる。
図17(d)〜図17(f)及び図18(d)〜図18(f)に示すforward replacement CO l,Cσ l,ClA0+,ClA0-,ClB0+,ClB0-(l≧0)はすべて、∂−saddle connectionに囲まれた連結成分o2やσ2に対して定義されているので、それに対するbackward replacementは自然に以下のように定義できる。
図17(g)と図18(g)のforward replacement ClA2Ck,ClB2Ck(l+k≠0)については、単純連結成分+2,-2のいずれを消去するかに応じて、また順序関係のルール(1)から、それぞれ二つの異なるbackward replacementが得られる。
図20は、操作B0,B2,Cの逆操作により誘導される正規表現のbackward replacement [B2],[B0]および[C]のリストを示している。最後に与えられた許容正規表現に対して、図20中のbackward replacementを可能な限り施していった場合に最終的に得られる正規表現の語表現は以下のようになる。このことは、数学的に正しいことが証明されている。
Lemma 4.2:与えられた許容正規表現Nが[B0],[B2],[C]に含まれるすべてのbackward replacementがもはや施せなくなったとき、その正規表現に対する語表現は以下のいずれかである。
1)Nの語表現はO
2)Nの語表現はIA0 p+mA2 c-2-p-mかIIA0 c−2のいずれかである。ただし、c,p,mは、Nに含まれるo*,+0,-0のいずれかである。
最後に、この変換アルゴリズムの実施例を示す。図21は、正規表現oφ(o2(o2(o0(-0(-0,-0)))),+2(+2))を持つ構造安定なハミルトンベクトル場のss−saddle connection diagramである。これにbackward replacement ClB2(l=0),B0,ICを順次適用すれば、正規表現は以下のようになる。
この結果、取り出した構造に応じて部分語列CB0B2を得る。残った正規表現oφ(o2(o2(o0(-0))))の中にあるo*,+0,-0の数を数えると、c=4,p=0,m=1を得るので、o2が存在することと、p+m=1,c-2-p-m=1から、結果として語表現IA0A2CB0B2を得ることができる。
(4−1−3.正規表現の語表現への変換処理)
図22−A〜図22−Cは、正規表現の語表現への変換処理を説明するためのフローチャートである。図22−A〜図22−Cに示す正規表現の語表現への変換処理は、コンピュータ等の装置で実行可能である。以下、σ∈{+,−}を表し、μ=−σとする。図22−A〜図22−Cにおいて、まず、inputを正規表現Nとする(ステップS184)。語Wを空集合φと置く(ステップS185)。
ステップS186において、innermostなσ2を含むσφ(σ2)またはinnermostなσ2を含むσ0(σ2)が正規表現Nに含まれるか否かを判断する。innermostなσ2を含むσφ(σ2)またはinnermostなσ2を含むσ0(σ2)が正規表現Nに含まれる場合は(ステップS186の「Yes」)、ステップS187に移行する。
ステップS187において、σφ(σ2)またはσ0(σ2)に含まれるinnermostなσ2を正規表現Nから抜き、WをB2Wと置換して(ステップS188)、ステップS186に戻る。
他方、ステップS186において、innermostなσ2を含むσφ(σ2)またはinnermostなσ2を含むσ0(σ2)が正規表現Nに含まれない場合は(ステップS186の「No」)、ステップS189に移行する。
ステップS189において、正規表現Nの中にinnermostな+2を含む+2(+2,−2,...,−2)が存在するか否かを判断する。正規表現Nの中にinnermostな+2を含む+2(+2,−2,...,−2)が存在する場合は(ステップS189の「Yes」)、このinnermostな+2を正規表現Nから抜き出し(ステップS190)、WをB2Wと置換して(ステップS188)、ステップS186に戻る。
他方、ステップS189において、正規表現Nの中にinnermostな+2を含む+2(+2,−2,...,−2)が存在しない場合は(ステップS189の「No」)、ステップS191に移行する。
ステップS191において、正規表現Nの中にinnermostな−2を含む−2(+2,...,+2,−2)が存在するか否かを判断する。正規表現Nの中にinnermostな−2を含む−2(+2,...,+2,−2)が存在する場合は(ステップS191の「Yes」)、このinnermostな−2を正規表現Nから抜き出し(ステップS192)、WをB2Wと置換し(ステップS188)、ステップS186に戻る。
他方、ステップS191において、正規表現Nの中にinnermostな−2を含む−2(+2,...,+2,−2)が存在しない場合は(ステップS191の「No」)、ステップS193に移行する。
ステップS193において、連続する2つのinnermostなσ0,σ0が正規表現Nに含まれるか否かを判断する。連続する2つのinnermostなσ0,σ0が正規表現Nに含まれる場合は(ステップS193の「Yes」)、このようなσ0,σ0を正規表現Nから抜き出し(ステップS194)、WをB0Wと置換し(ステップS195)、ステップS193に戻る。
他方、ステップS193において、連続する2つのinnermostなσ0,σ0が正規表現Nに含まれない場合は(ステップS193の「No」)、ステップS196に移行する。
ステップS196において、innermostなσ0(μ0)が正規表現Nに含まれるか否かを判断する。innermostなσ0(μ0)が正規表現Nに含まれる場合は(ステップS196の「Yes」)、このようなσ0(μ0)を正規表現Nから抜き(ステップS197)、WをB0Wと置換し(ステップS195)、ステップS193に移行する。
ステップS196において、innermostなσ0(μ0)が正規表現Nに含まない場合は(ステップS196の「No」)、ステップS198に移行する。
ステップS198において、正規表現Nに、連続する2つ以上のσ2,...,σ2の中にinnermostなσ2が含まれているか否かを判断する。正規表現Nに、連続する2つ以上のσ2,...,σ2の中にinnermostなσ2が含まれている場合は(ステップS198の「Yes」)、このようなσ2を正規表現Nから抜き(ステップS199)、WをCWと置換して(ステップS200)、ステップS198に戻る。
他方、ステップS198において、正規表現Nに、連続する2つ以上のσ2,...,σ2の中にinnermostなσ2が含まない場合は(ステップS198の「No」)、ステップS201に移行する。
ステップS201において、o*の子でinnermostなσ2が正規表現Nに存在するか否かを判断する。o*の子でinnermostなσ2が正規表現Nに存在する場合は(ステップS201の「Yes」)、このようなσ2を正規表現Nから抜き(ステップS199)、WをCWと置換して(ステップS200)、ステップS198に戻る。
他方、ステップS201において、o*の子でinnermostなσ2が正規表現Nに存在しない場合は(ステップS201の「No」)、ステップS202に移行する。
ステップS202において、σ2の子でinnermostなμ2が正規表現Nに存在するか否かを判断する。σ2の子でinnermostなμ2が正規表現Nに存在する場合は(ステップS202の「Yes」)、このようなμ2を正規表現Nから抜き(ステップS203)、WをCWと置換し(ステップS200)、ステップS198に戻る。
他方、ステップS202において、σ2の子でinnermostなμ2が存在しない場合は(ステップS202の「No)、ステップS204に移行する。
ステップS204において、正規表現Nの中にσ2が存在するか否かを判断する。正規表現Nの中にσ2が存在する場合は(ステップS204の「Yes」)、ステップS186に戻る。
他方、ステップS204において、正規表現Nの中にσ2が存在しない場合は(ステップS204の「No」)、ステップS205に移行する。
ステップS205において、正規表現Nの中にσ0(μ0)が存在するか否かを判断する。正規表現Nの中にσ0(μ0)が存在する場合は(ステップS205の「Yes」)、ステップS186に戻る。
他方、ステップS205において、正規表現Nの中にσ0(μ0)が存在しない場合は(ステップS205の「No」)、ステップS206に移行する。
ステップS206において、正規表現Nに連続する2つのσ0,σ0が存在するか否かを判断する。正規表現Nに連続する2つのσ0,σ0が存在する場合は(ステップS206の「Yes」)、ステップS186に戻る。
他方、ステップS206において、正規表現Nに連続する2つのσ0,σ0が存在しない場合は(ステップS206の「No」)、ステップS207に移行する。
ステップS207において、正規表現Nがσφであるか否かを判断する。正規表現Nがσφの場合は(ステップS207の「Yes」)、WをOWと置換し(ステップS208)、語Wをoutputして(ステップS212)、処理を終了する。
他方、ステップS207において、正規表現Nがσφでない場合は(ステップS207の「No」)、ステップS209に移行する。
ステップS209において、正規表現Nがo2を含むか否かを判断する。正規表現Nがo2を含む場合は(ステップS209の「Yes」)、WをIA0 p+mA0 c−2−p−mWと置換し(ステップS210)、語Wをoutputして(ステップS212)、処理を終了する。ただし,c,p,mはNに含まれるo*,+0,−0の数とする。
他方、ステップS208において、正規表現Nがo2を含まない場合は(ステップS208の「No」)、WをIIA0 c−2Wと置換し(ステップS211)、語Wをoutputして(ステップS212)、処理を終了する。
以上の処理が、正規表現の語表現への変換処理である。
つづいて、上述した本実施の形態の流れパターンの正規表現作成方法をコンピュータにより実施するための装置構成について説明する。なお、以上の本実施の形態による方法を、人またはコンピュータにより実施してもよく、以下の実施形態による処理等を人により実施する場合に用いてもよいものである。
[正規表現作成装置の構成]
次に、本実施の形態に係る正規表現作成装置の構成について図23を参照して説明する。図23は、本実施の形態が適用される正規表現作成装置100の一例を示すブロック図であり、該構成のうち本実施形態に関係する部分のみを概念的に示している。
図23に示すように、本実施形態における正規表現作成装置100は、概略的に、制御部102と記憶部106を少なくとも備え、本実施形態において、更に、入出力制御インターフェース部108と通信制御インターフェース部104を備える。ここで、制御部102は、正規表現作成装置100の全体を統括的に制御するCPU等である。また、通信制御インターフェース部104は、通信回線等に接続されるルータ等の通信装置(図示せず)に接続されるインターフェースであり、入出力制御インターフェース部108は、入力装置112や出力装置114に接続されるインターフェースである。また、記憶部106は、正規表現作成装置100で上述の正規表現作成方法を実行するために必要な各種のデータ(例えば、図4〜図9、図11〜図12,図14−A,図15〜図21に示すものをデータ化したもの等)、データベース、およびテーブル等を格納する装置である。これらのデータ、データベース、およびテーブル等は、制御部102が正規表現作成方法を実行する際に必要により参照される。これら正規表現作成装置100の各部は任意の通信路を介して通信可能に接続されている。更に、この正規表現作成装置100は、ルータ等の通信装置および専用線等の有線または無線の通信回線を介して、ネットワーク130に通信可能に接続されている。
記憶部106に格納される各種のデータ、データベース、およびテーブル(シミュレーション結果ファイル106a、流線図ファイル106b、および、正規表現ファイル106c等)等は、固定ディスク装置等のストレージ手段である。例えば、記憶部106は、各種処理に用いる各種のプログラム、テーブル、ファイル、データベース、および、ウェブページ等を格納する。
これら記憶部106の各構成要素のうち、シミュレーション結果ファイル106aは、シミュレーション部102aにより数理的にシミュレーションされた、シミュレーション結果を示すデータを記憶するシミュレーション結果記憶手段である。例えば、シミュレーション結果ファイル106aは、構造物の形状を示す設計変数の値や、その構造物に対する所定の流体(海流や気流等)の流体力学的シミュレーション結果(各空間座標における流体の圧力や流れの向き等)を示すデータであってもよい。なお、シミュレーション結果ファイル106aは、風洞実験等の実験室内でのモデル計測などを通じて事前に入力装置112を介して入力されたデータをシミュレーション結果として記憶してもよい。
また、流線図ファイル106bは、流線図等の流線を示すデータを記憶する流線データ記憶手段である。例えば、流線図ファイル106bに記憶される流線データは、シミュレーション結果を示すデータに基づいて流線解析部102bにより解析された流線を示すデータであってもよい。
また、正規表現ファイル106cは、正規表現データを記憶する正規表現記憶手段である。例えば、正規表現ファイル106cに記憶される正規表現データは、文字列等である。
図23に戻り、入出力制御インターフェース部108は、入力装置112や出力装置114の制御を行う。ここで、出力装置114としては、モニタ(家庭用テレビを含む。)の他、スピーカを用いることができる(なお、以下においては出力装置114をモニタとして記載する場合がある)。また、入力装置112としては、キーボード、マウス、およびマイク等を用いることができる。
また、図23において、制御部102は、OS(Operating System)等の制御プログラムや、各種の処理手順等を規定したプログラム、および、所要データを格納するための内部メモリを有する。そして、制御部102は、これらのプログラム等により、種々の処理を実行するための情報処理を行う。制御部102は、機能概念的に、シミュレーション部102a、流線解析部102b、グラフ表現作成部102c、正規表現作成部102d、および、語表現変換部102eを備える。
このうち、シミュレーション部102aは、構造物に対する流体のシミュレーションを行うシミュレーション手段であり、例えば、上述の設計パラメータ選択工程(図24参照)および第2の設計パラメータ選択工程(図29等参照)等を実行する。ここで、シミュレーション部102aは、2次元平面におけるシミュレーションに限られず、3次元空間における流体のシミュレーションを行ってもよいものである。また、シミュレーション部102aは、公知の最適化手法を用いて、構造物の最適化を行ってもよい。例えば、シミュレーション部102aは、構造物の形状を決定する設計変数を、焼きなまし法や遺伝的アルゴリズム法等を用いて繰り返し変化させながら、当該構造物に対する流体シミュレーションを行って、適切な構造物の形状(例えば、水流に対する抵抗の少ない橋脚の形状等)を求めてもよい。なお、本実施形態において、シミュレーション部102aは、シミュレーション結果を示すデータをシミュレーション結果ファイル106aに格納する。例えば、シミュレーション部102aは、構造物の形状を示す設計変数の値や、その構造物に対する所定の流体(海流や気流等)の流体力学的シミュレーション結果(各空間座標における流体の圧力や流れの向きや抵抗等)を示すデータを格納してもよい。
また、流線解析部102bは、流線解析を行う流線解析手段である。ここで、流線解析部102bは、シミュレーション部102aによるシミュレーション結果に対し流線解析を行って流線図を導出してもよい。例えば、流線解析部102bは、シミュレーション結果ファイル106aに記憶された、数値シミュレーションや実験のデータから、公知の手法を用いて流線図を作成する。具体的には、流線解析部102bは、数値シミュレーション結果から、saddle pointや1−source−sink pointなどをすべて計算した後、その点における流れ関数の値と同じ値を持つ流れ関数の等高線をすべて描画し、また、境界(boundary)上の流れ関数の値と同じ値を持つ流れ関数の等高線をすべて描画することにより流線図の作成が可能となる。なお、3次元のシミュレーション結果の場合、流線解析部102bは、構造物における断面における2次元のデータに変換してから、流線解析を行ってもよい。断面とする平面は任意であるが好適には、流線解析部102bは、流体の流れ方向(一様流)の方向に沿った断面で2次元データに変換してもよい。例えば、列車や自動車や航空機等の乗り物においては、進行方向に沿って断面を生成してもよい。また、流線解析部102bは、Computational Homology(非特許文献1)に記載の技術等を用いて、流れ場から条件を満たす特徴的な構造を抽出してもよい。なお、本実施形態において、流線解析部102bは、作成した流線図データを流線図ファイル106bに格納する。
また、グラフ表現作成部102cは、上述のグラフ表現作成工程(ステップS1)を実行するためのグラフ表現作成手段であり、例えば、図10−A〜図10−Eに示す、O系列におけるsaddle connection diagramのツリーへの変換処理、および図13−A〜図13−Dに示す、I,II系列におけるss−saddle connection diagramのツリーへの変換処理等を実行することにより、位相幾何学的にN(但し、Nは1以上の整数)個の穴を有する多重連結外部領域における流れパターンに1対1に対応するグラフ表現を作成する。ここで、グラフ表現は、流れパターンで規定される構造安定なハミルトンベクトル場Hに対して、固有のルート付き、ラベル付き、向き有りツリーTH=(V,E)を割り当て(但し、Vは頂点と呼ばれる点の集合、Eは、頂点の間を結ぶエッジの集合である)、平面グラフとして可視化したものであってもよい。また、グラフ表現は、親の頂点をv、その子の頂点をw,親の頂点vに割り当てられたラベルをl(v)、子の頂点wに割り当てられたラベルをl(w),vの子頂点集合Γ(v)とした場合、vの子頂点集合Γ(v)を所定の順序関係のルールに従って並び替え、w∈Γ(v)について、l(v)からl(w)への矢印を左から右に並べて描画されたものを含んでいてもよい。また、流れパターンは、(1)一つの穴を有する単連結外部領域において位相幾何学的に採り得る2種類の流れパターンのうちの、吸い込み湧き出し対をもち、二つのss−∂−saddle connectionをもつパターンI、(2)前記一つの穴を有する単連結外部領域において位相幾何学的に採り得る2種類の流れパターンのうちの、吸い込み湧き出し対をもち、一つのsaddle point、それを結ぶhomoclinic saddle connectionと二つのss−saddle connectionをもつパターンII、(3)二つの穴を有する二重連結外部領域において吸い込み湧き出し対を持たないパターンO、の1又は複数であってもよい。また、流れパターンが吸い込み湧き出し対を持つ場合は、流れパターンをその吸い込み湧き出し対に最も近い反時計回りのss−orbitを含む領域が一番外側領域になるように変換し、変換した流れパターンの(ss−)saddle connection diagramに現れる軌道を領域全体から抽出し、領域全体から(ss−)saddle connection diagramに現れる軌道をすべて除外して得られる連結成分に頂点を設定し、一番外側にある連結成分をルートとし、カレント成分をルートに設定し、カレント成分と互いに境界を接するような連結成分をカレント成分の子として、境界にあたる軌道に応じてラベルを割り当て,当該ラベルを所定の順序関係に従って並べ、カレント成分の子をカレント成分に設定して、子がなくなるまで繰り返すことにしてもよい。また、かかる流れパターンは、パターン語の1又は複数から開始し、流れパターンに一つの穴を加える場合に位相幾何学的に採り得る5種類の操作を規定した操作語のうちのいずれか一語を付与する操作を、穴の数がN個となるまで繰り返して作成された流れパターン図であることにしてもよい。
また、正規表現作成部102dは、上述の正規表現作成工程(ステップS2)を実現するための正規表現作成手段であり、例えば、図14−Bに示す、ツリーの正規表現への変換処理等を実行することにより、グラフ表現作成部102cで作成されたグラフ表現から正規表現を作成する。
また、語表現変換部102eは、上述の語表現変換工程(ステップS3)を実現するための語表現作成手段であり、例えば、図22−A〜図22−Cに示す正規表現の語表現への変換処理等を実行して、正規表現作成部102dで作成された正規表現を語表現に変換する。語表現は、一つの穴を有する単連結外部領域において位相幾何学的に採り得る2種類の流れパターンに加えて、二つの穴を有する二重連結外部領域において吸い込み湧き出し対を持たないパターンを追加した、合計3種類の流れパターンを規定するパターン語に対して、上記流れパターンに一つの穴を加える場合に位相幾何学的に採り得る5種類の操作を規定した操作語のうちのいずれか一語を、追加された穴の数だけ付与することにより形成された記号語であることにしてもよい。
以上が、本実施形態における正規表現作成装置100の構成の一例である。なお、正規表現作成装置100は、ネットワーク130を介して外部システム120に接続されてもよい。この場合、通信制御インターフェース部104は、正規表現作成装置100とネットワーク300(またはルータ等の通信装置)との間における通信制御を行う。すなわち、通信制御インターフェース部104は、他の端末と通信回線を介してデータを通信する機能を有する。また、ネットワーク130は、正規表現作成装置100と外部システム200とを相互に接続する機能を有し、例えば、インターネット等である。
また、外部システム120は、ネットワーク130を介して、正規表現作成装置100と相互に接続され、シミュレーション結果データや流線図データ等の各種データに関する外部データベースや、接続された情報処理装置に語表現方法を実行させるためのプログラム等を提供する機能を有する。
ここで、外部システム120は、WEBサーバやASPサーバ等として構成していてもよい。また、外部システム120のハードウェア構成は、一般に市販されるワークステーション、パーソナルコンピュータ等の情報処理装置およびその付属装置により構成していてもよい。また、外部システム120の各機能は、外部システム120のハードウェア構成中のCPU、ディスク装置、メモリ装置、入力装置、出力装置、通信制御装置等およびそれらを制御するプログラム等により実現される。
[語表現と正規表現を使った流体中の物体の設計方法]
例えば、橋や橋脚など流体中におかれた物体(以下設計対象と呼ぶ)の形状や配置、またその周囲の流れの制御などを通じて設計の対象にとって最適なパラメータを定めるような設計手法について,語表現と正規表現を使ってどのように設計を行うかを説明する。
前提1:設計対象には変更可能な設計パラメータがある(形状・配置・流れの制御装置など)。
前提2:設計対象を設計する上で、問題に応じた「最適な状態」が設定されており、その最適状態が流線構造の特徴として記述できているものとする。例えば、剥離渦を閉じこめる状態を最適状態とすると、翼であれば揚力の最大化,橋脚であれば抗力の最小化などが期待できる。
前提3:これらの設計において、設計パラメータを変えて実験および数値計算(そしてそれにおいて得られる流線パターンの語表現・正規表現)ができるものとする。以下、二次元の流れに限定する。三次元の場合は断面をとって考えたりして二次元化することなどで設計が可能になる場合もある(三次元の場合はすべての場合でできるとは限らないことに注意する)。
従来の最適化設計においては,初期状態から始めて、設計パラメータを経験や試行錯誤、あるいは既知の最適化手法などによる最適化が行われている。ある種の最適化が実現できても、それは局所的な最適化であったり物理的に不安定であったりして実際の設計に耐えうるかどうか分からないところがある。
本実施の形態による設計パラメータの探索では、かかる状況に対して、最初から理想的な状況を流線パターンの語表現や正規表現として設定しておいて、それが実現されるようパラメータ領域を探索することができるようになる。こうして最適な設定を実現する設計パラメータの「候補」をできるだけ多くかつ速やかに探すことができるようになる。それらの候補から始めて、既知の最適化手法を行うことで多くのかつ実現性の高い設計パラメータが得られる可能性が高くなる。
図24は、語表現と正規表現を使用した流体中の物体の設計方法、すなわち、上述の設計パラメータ選択工程を説明するためのフローチャートである。図24に示すフローチャートは、シミュレーション部102aにより実行される。
図24において、まず、とりうる設計パラメータの上限と下限を定める(ステップS311)。次に、上記ステップS311で定めたパラメータ領域(設計パラメータの上限と下限で規定される領域を「パラメータ領域」と称する)を分割して、パラメータ領域からN個のパラメータの組み合わせサンプル(設計パラメータPi(i=1,・・・,N))を選択する(ステップS312)。なお、サンプルの選択は、これまでの経験や計算結果などを踏まえて適当に選んでも良いし、先験的な情報がないときは、パラメータ領域を等分してサンプリングしてもよい。
以下では、渦閉じこめ状態を表す語表現として「C」が語表現に含まれることを設計の目的とする例を説明する。各設計パラメータPi(i=1,・・・,N)に対してそれぞれ流れの実験や数値計算を行う(ステップS313)。得られた各結果に語表現と正規表現の割り当てを行う(ステップS314)。その語表現が最適状態を表すICの部分語を持つ、あるいはそれに対応する正規表現を持つ構造表現か否かを判断する(ステップS315)。その語表現が最適状態を表すICの部分語を持つ,あるいはそれに対応する正規表現を持つ構造表現の場合は(ステップS315の「Yes」)、設計パラメータの候補として採用する(ステップS316)。他方、その語表現が最適状態を表すICの部分語を持つ、あるいはそれに対応する正規表現を持つ構造表現でない場合は(ステップS315の「No」)、設計パラメータの候補には採用しない。
なお、ICなる部分語表現を持たなくても,正規表現と語表現を用いて流体遷移経路(遷移パターン)を取得する方法を使って、一回の遷移でICやそれに対応する正規表現を持つ構造に移るパターンであれば、これも設計パラメータの候補として採用することにしてもよい。
ステップS317では、設計パラメータの候補があるか否かを判断し(ステップS317)、設計候補のパラメータがある場合には(ステップS317の「Yes」)、設計パラメータの候補に対して既存の最適化手法を適用する(ステップS319)。なお、既存の最適化手法を適用するだけでなく,最適化過程の各段階において、常に語表現や正規表現を計算してモニタリングすることで、定量的な流れの最適化に加えて、理想的な流線構造の最適化も同時に行うような最適化設計も可能である。
他方、設計パラメータの候補がない場合には(ステップS317の「No」)、パラメータ領域を更に細かく分割して(ステップS318)、ステップS313〜S317の処理を実行する。
図25及び図26は、上記の語表現と正規表現を使用した流体中の物体の設計方法を説明するための具体例の一例を説明するための図である。図25において、一様流中におかれた物体200の背後に渦構造が二つ(渦1,渦2)存在するような状況があったとする。一様流の速さ(あるいは物体の進行速度)をUとし、物体200は角速度Gで回転できるものとする。渦の強さと位置は流れにおいて既に与えられているとして、このうち渦1を「閉じこめて」、物体200にかかる揚力を最大化し、渦2は流れに沿って物体から遠ざかることができるような装置を、「UやGのパラメータ」を探索して最適化することを考える。渦閉じこめ状態の語表現は「C」によって遠ざかる渦は「A0」によって表現できるので、ターゲットとなる状況の語表現としてはIA0Cを達成するものを本設計手法の適用によりパラメータ領域を絞り込む。
本設計パラメータについて,Uは0から1.1まで変化でき,Gは-1.6×2πから1.6×2πまで変化できるものとする(上記ステップS311で設計パラメータの上限、下限を定める)。これらのパラメータ区間を5等分して設計パラメータ領域を分割し(上記ステップS312)する。そして、上記ステップS313〜S319を実行した結果が、図26の(a)〜(f)である。このパラメータ領域のうち、この設計手法によって最適化設計は「0.5≦U≦0.9,G=-0.8×2π」(図26の(a)〜(c)に対応)および「0.3≦U≦0.7,G=0」(図26の(d)〜(f)に対応)の間で達成されている。これらのパラメータ候補の絞り込みにより、さらにこれらのパラメータ領域の分割を繰り返して、揚力などの定量的な量の最大化をするような最良パラメータ領域を探すことで、渦閉じ込めをして揚力を最大化するための物体200の速度と各回転速度を知ることができる。
[語表現と正規表現を使った流体中の物体の設計方法2]
語表現と正規表現を使用して、流体中に置かれた物体(以下、「設計対象」と呼ぶ)のまわりの流れを最適化する設計手法について説明する。以下では、語表現と正規表現を使用して、一様流中に置かれた物体のまわりにできる流線パターン(現在のパターン)が、所望の流線パターン(目的のパターン)となるように、物体の設計パラメータ(物理パラメータ)を設計する手法(上述の第2の設計パラメータ選択工程)の一例について説明する。以下の例では、一様流中に平板翼を置いた場合の流線パターンについて説明する。なお、第2の設計パラメータ選択工程は、正規表現のみを使用しても原理上実行可能であるが、正規表現と語表現を使用することで、より好適な設計パラメータを設計することが可能となる。
図27及び図28、語表現と正規表現を使用した流体中の物体まわりの流れの最適化手法を説明するための説明図である。図29は、語表現と正規表現を使用した流体中の物体のまわりの流れの最適化手法、すなわち、上述の第2の設計パラメータ選択工程を説明するためのフローチャートである。図29に示すフローチャートは、シミュレーション部102aにより実行される。
図27は、一様流Uに対して、一定の角度で平板翼300を置いた場合を示している。図28は、図27において、平板翼300のまわりに形成される流線パターンとその流線パターンの語表現及び正規表現を示している。図28(a)は一様流U中におかれた平板翼300のまわりにできた流れ(「流れ」は、流体実験又は数値計算で算出することができる)から流線パターンを抽出したもの(「パターンA」と称する)である。図28(c)は、回転流れ構造を平板翼300の上に閉じ込めるパターン(「パターンB」と称する)である。本手法では、平板翼300の設計パラメータを好適に変更して、パターンA(現在のパターン)からパターンB(目的のパターン)を実現するような設計パラメータを見つけ出し、平板翼300にかかる揚力を増加させる手法について説明する。
図29において、まず、ステップA(ステップS400〜S402)において、パターンAとパターンBに対して、語表現(特願2012−203601号(PCT/JP2013/070939号))と本実施の形態のアルゴリズムを用いて正規表現を与える。具体的には、パターンAには、IA0CCB0という語表現と、oφ(o0(o2,−0(−0,−0),+2,+2))という正規表現NAを付与し、パターンBには、語表現IA0CCB0とoφ(o2(o0,+0,−2(−0,−0,+2)))という正規表現N Bを付与する(ステップS400、図28(a)、(c)参照)。なお、パターンAとパターンBの語表現は全く同じなので、従来技術では区別ができないが、正規表現は異なるためこれを用いることにより2つの流れは区別が可能となり,これらを用いることによって、流れの最適設計の目的形状を特定することが可能となる。
次に、パターンAの正規表現NAとパターンBの正規表現NBが同じであるか否かを判断する(ステップS401)。パターンAの正規表現NAとパターンBの正規表現NBが同じである場合には(ステップS401の「Yes」)、パスP=φを出力する(ステップS402)。パターンAの正規表現NAとパターンBの正規表現N Bが異なる場合には(ステップS401の「No」)、ステップS403に移行する。
ステップBでは、パターンAとパターンBの遷移の経路の決定する(ステップS403)。具体的には、流れパターンの遷移同定プログラム(特願2013−230678号(PCT/JP2014/079512))を用いて,図28(a)と図28(c)の間の同じ正規表現を高々1つしか持たない経路を決定する(ステップS403)。より具体的には、同じ頂点を高々一度しか通らない、パターンAの正規表現NAからパターンBの正規表現NBへのパスを全てリストアップし、N個の経路Ri(i=1,2,…,N)を得る。ただし,R1,…,RNは,経路の長さが短い順に並べてあるものとする(length(Ri)≦length(Ri+1))。各経路Ri(i=1,2,…,N)には中間流線パターンPij(j=1,2,…,M)があるものとする。但し、便宜上、Pi0=NA,PiMi=NBであるとする。
ステップCでは、経路Riに沿って遷移するように設計パラメータを変更する(ステップS404〜S415)。以下、N個の経路Ri(i=1,2,…,N)に対して、i=1,…,Nの順に(経路の長さが短い順に)、経路に沿って遷移するように設計パラメータを変更して、最適な設計パラメータを求める。すなわち、パターンAからパターンBに至るN個の経路Ri(i=1,2,…,N)のうち、設計パラメータを変更して、パターンBの正規表現と一致することになるいずれかの経路を決定し、当該パターンBの正規表現と一致することになる変更した設計パラメータを最適な設計パラメータとして出力する。
経路Ri上にあるパターンPij(但し、j=1,2,…,Mi)の設計パラメータを中心にして、変更可能な設計パラメータの範囲を指定し、それをK分割して、それぞれのパラメータ値をSk(k=1,….K)とする。さらに、パターンPijの設計パラメータのパラメータ値をSkに変更して、実験又は数値計算により得られるパターンの正規表現をPij(Sk)と表す。
最終的に、Pij(Sk)がパターンBの語表現と正規表現NB(=PiMi)に一致した場合に、このパラメータ値を最適設計を達成する設計パラメータとして出力して、当該フローを終了する。
Skを変更して、Pij(Sk)が経路Ri上の正規表現Pi(j+1)に一致した場合に、この設計パラメータを選択して、さらに、jを「1」インクリメントして、当該選択した設計パラメータを中心にして、変更可能な設計パラメータの範囲を指定し、それをK分割して、それぞれのパラメータ値をSk(k=1,….K)として、Pij(Sk)がパターンBの語表現と正規表現NB(=PiMi)に一致するまで処理を繰り返す。
Skを変更しても、Pij(Sk)が経路Ri上の正規表現Pi(j+1)に一致しない場合は、この経路上での遷移は不可能として、次の経路についてSkを変更する。
まず、i=1、j=1、k=1とする(ステップS404〜S406)。次に、Pij(Sk)=Pi(j+1)であるか否かを判断する(ステップS407)。Pij(Sk)=Pi(j+1)である場合には(ステップS407の「Yes」)、j←j+1とし(ステップS413)、j=Miであるか否かを判断する(ステップS414)。j=Miである場合(ステップS414の「Yes」)、すなわち、Pij(Sk)=PiMi(=NB)となる場合は、この設計パラメータが最適な設計パラメータであるので、パスP=Ri及びこの設計パラメータを出力して(ステップS415)、当該フローを終了する。j=Miでない場合は(ステップS414の「No」)、この設計パラメータを選択して、ステップS406に戻り、選択した設計パラメータを中心にして、変更可能な設計パラメータの範囲を指定し、それをK分割して、それぞれのパラメータ値をSk(k=1,….K)として、Pij(Sk)がパターンBの語表現と正規表現NB(=PiMi)に一致するまで処理を繰り返す。
Pij(Sk)=Pi(j+1)でない場合には(ステップS407の「No」)、k←k+1とし(ステップS408)、k≦Kであるか否かを判断する(ステップS409)。k≦Kである場合には(ステップS409の「Yes」)、ステップS407に戻る。他方、k≦Kでない場合には(ステップS409の「No」)、i←i+1として(ステップS410)、i≦Nであるか否かを判断する(ステップS411)。i≦Nである場合には(ステップS411の「Yes」)、ステップS405に戻り、次の経路に対して探索を行う一方、i≦Nでない場合には(ステップS411の「No」)、全ての経路について最適化が不可能であるので、「不可能」を出力する(ステップS412)。
一例として、ステップBで得られた経路の1つとして、最短経路である図28(b)のパターン(語表現ICCCB0,正規表現oφ(o2(−2(−0,−0,+2,+2))))を介した場合(経路の長さM=1の場合))について説明する。ステップCにおいて,図28(a)のパターンAから設計パラメータを変更して、図28(b)の語表現と正規表現になるものを探索する。変更可能な設計パラメータを全て探索しても図28(b)となるパターンが見つからない場合は,この経路に沿った最適設計が不可能と判断して,ステップBで取得した、図28(b)の最短経路以外の経路で同じことを繰り返す。
もし、いきなり目的とする図28(c)のパターンBを達成する設計パラメータが見つかった場合は、これが最適な設計パラメータであるので、この設計パラメータを出力してフローを終了する(上記ステップS415)。一方、図28(b)のパターンを達成する設計パラメータが見つかった場合は、この設計パラメータを選択して、さらに、この設計パラメータまわりで変更可能な設計パラメータの範囲を指定し、それを分割して、それぞれに対して実験又は数値計算を行って図28(c)のパターンBになるものがあるかどうかを探索する。図28(c)のパターンBになる設計パラメータが見つかった場合は、これが最適な設計パラメータであるので、この設計パラメータを出力してフローを終了する(上記ステップS415)。
変更可能な設計パラメータの範囲を全て探索しても見つからない場合は、この経路での最適化は不可能と判断し、ステップBで得られた別経路を探索する。ステップBで取得した全ての経路を探索しても、図28(c)のパターンBになる設計パラメータが見つからない場合は、最適化不可能と判断する(上記ステップS412)。
[他の実施形態]
さて、これまで本発明の実施形態について説明したが、本発明は、上述した実施形態以外にも、請求の範囲に記載した技術的思想の範囲内において種々の異なる実施形態にて実施されてよいものである。
例えば、正規表現作成装置100がスタンドアローンの形態で処理を行う場合を一例に説明したが、正規表現作成装置100は、クライアント端末からの要求に応じて処理を行い、その処理結果を当該クライアント端末に返却するようにしてもよい。
また、実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
このほか、上記文献中や図面中で示した処理手順、制御手順、具体的名称、各処理の登録データや検索条件等のパラメータを含む情報、画面例、データベース構成については、特記する場合を除いて任意に変更することができる。
また、正規表現作成装置100に関して、図示の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。
例えば、正規表現作成装置100の各装置が備える処理機能、特に制御部102にて行われる各処理機能については、その全部または任意の一部を、CPU(Central Processing Unit)および当該CPUにて解釈実行されるプログラムにて実現してもよく、また、ワイヤードロジックによるハードウェアとして実現してもよい。尚、プログラムは、後述する記録媒体に記録されており、必要に応じて正規表現作成装置100に機械的に読み取られる。すなわち、ROMまたはHDなどの記憶部106などには、OS(Operating System)として協働してCPUに命令を与え、各種処理を行うためのコンピュータプログラムが記録されている。このコンピュータプログラムは、RAMにロードされることによって実行され、CPUと協働して制御部102を構成する。
また、このコンピュータプログラムは、正規表現作成装置100に対して任意のネットワーク300を介して接続されたアプリケーションプログラムサーバに記憶されていてもよく、必要に応じてその全部または一部をダウンロードすることも可能である。
また、本発明に係るプログラムを、コンピュータ読み取り可能な記録媒体に格納してもよく、また、プログラム製品として構成することもできる。ここで、この「記録媒体」とは、メモリーカード、USBメモリ、SDカード、フレキシブルディスク、光磁気ディスク、ROM、EPROM、EEPROM、CD−ROM、MO、DVD、および、Blu−ray(登録商標)Disc等の任意の「可搬用の物理媒体」を含むものとする。
また、「プログラム」とは、任意の言語や記述方法にて記述されたデータ処理方法であり、ソースコードやバイナリコード等の形式を問わない。なお、「プログラム」は必ずしも単一的に構成されるものに限られず、複数のモジュールやライブラリとして分散構成されるものや、OS(Operating System)に代表される別個のプログラムと協働してその機能を達成するものをも含む。なお、実施形態に示した各装置において記録媒体を読み取るための具体的な構成、読み取り手順、あるいは、読み取り後のインストール手順等については、周知の構成や手順を用いることができる。
記憶部106に格納される各種のデータベース等(シミュレーション結果ファイル106a、流線図ファイル106b、語表現ファイル106c等)は、RAM、ROM等のメモリ装置、ハードディスク等の固定ディスク装置、フレキシブルディスク、および、光ディスク等のストレージ手段であり、各種処理やウェブサイト提供に用いる各種のプログラム、テーブル、データベース、および、ウェブページ用ファイル等を格納する。
また、正規表現作成装置100は、既知のパーソナルコンピュータ、ワークステーション等の情報処理装置として構成してもよく、また、該情報処理装置に任意の周辺装置を接続して構成してもよい。また、語表現作成装置100は、該情報処理装置に本発明の方法を実現させるソフトウェア(プログラム、データ等を含む)を実装することにより実現してもよい。
更に、装置の分散・統合の具体的形態は図示するものに限られず、その全部または一部を、各種の付加等に応じて、または、機能負荷に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。すなわち、上述した実施形態を任意に組み合わせて実施してもよく、実施形態を選択的に実施してもよい。
以上説明したように、本実施の形態によれば、位相幾何学的にN(但し、Nは1以上の整数)個の穴を有する多重連結外部領域における流れパターンの正規表現を作成する正規表現作成方法であって、前記流れパターンに1対1に対応するグラフ表現を作成するグラフ表現作成工程と、前記グラフ表現作成工程で作成されたグラフ表現から正規表現を作成する正規表現作成工程と、を含むこととしたので、流れパターンと1対1に対応させることが可能な新たな表現方法を提供することが可能となるという効果を奏する。
また、グラフ表現は、流れパターンで規定される構造安定なハミルトンベクトル場Hに対して、固有のルート付き、ラベル付き、及び向き有りのツリーTH=(V,E)を割り当て(但し、Vは頂点と呼ばれる点の集合、Eは、頂点の間を結ぶエッジの集合である)、平面グラフとして可視化したものであるので、構造安定なハミルトンベクトル場に対して、固有のルート付き、ラベル付き、及び向き有りのツリーを平面グラフとして可視化したものをグラフ表現として提供することが可能となるという効果を奏する。
また、本実施の形態によれば、グラフ表現は、親の頂点をv、その子の頂点をw,親の頂点vに割り当てられたラベルをl(v)、子の頂点wに割り当てられたラベルをl(w),vの子頂点集合Γ(v)とした場合、vの子頂点集合Γ(v)を所定の順序関係のルールに従って並び替え、w∈Γ(v)について、l(v)からl(w)への矢印を左から右に並べて描画することとしたので、親子の連結関係が視認しやすいグラフ表現を提供することが可能となるという効果を奏する。
また、本実施の形態によれば、前記流れパターンは、(1)一つの穴を有する単連結外部領域において位相幾何学的に採り得る2種類の流れパターンのうちの、吸い込み湧き出し対をもち、二つのss−∂−saddle connectionをもつパターンI、(2)前記一つの穴を有する単連結外部領域において位相幾何学的に採り得る2種類の流れパターンのうちの、吸い込み湧き出し対をもち、一つのsaddle point、それを結ぶhomoclinic saddle connectionと二つのss−saddle connectionをもつパターンII、(3)二つの穴を有する二重連結外部領域において吸い込み湧き出し対を持たないパターンOの1又は複数であることとしたので、基本となる全ての流れパターンに対して正規表現を付与することができ、具体的な流れパターンの正規表現を扱えるようになるという効果を奏する。
また、本実施の形態によれば、正規表現作成工程で作成された正規表現を語表現に変換する語表現変換工程を備えているので、正規表現を語表現に変換することが可能となるという効果を奏する。
また、本実施の形態の形態によれば、語表現は、一つの穴を有する単連結外部領域において位相幾何学的に採り得る2種類の流れパターンに加えて、二つの穴を有する二重連結外部領域において吸い込み湧き出し対を持たないパターンを追加した、合計3種類の流れパターンを規定するパターン語に対して、位相幾何学的に採り得る5種類の操作を規定した操作語のうちのいずれか一語を、追加された穴の数だけ付与することにより形成された記号語であることとしたので、正規表現を、基本となる全ての流れパターンと位相幾何学的に採り得る5種類の操作を規定した語表現に変換することが可能となるという効果を奏する。
本実施の形態によれば、語表現と同様に、流れ場における構造物設計を行うにあたって、構造物に対して採り得る流れパターンを経験や直感に頼ることなく容易に扱うことができる、流れパターンの正規表現作成方法、正規表現作成装置、および、プログラムを提供することができる。また、語表現と正規表現の両方を使用することで、語表現だけでは特定の流れを限定できないものを限定することができ、流れの最適制御の理論をより発展させることができる。
なお、語表現と正規表現は、例えば、橋脚の設計、防波堤の配置、港湾の汚染物の除去、風力発電のブレードの設計、列車のパンタグラフの構造、オイルフェンスの最適配置などのように、構造物設計や配置を伴う様々な分野において極めて有用である。また、スポーツ用品の構造設計などのようにスポーツ力学等の分野に応用することも可能である。