IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特許7318736並列計算用進化計算プログラム、情報処理装置および並列計算用進化計算方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-24
(45)【発行日】2023-08-01
(54)【発明の名称】並列計算用進化計算プログラム、情報処理装置および並列計算用進化計算方法
(51)【国際特許分類】
   G06N 3/12 20230101AFI20230725BHJP
【FI】
G06N3/12
【請求項の数】 6
(21)【出願番号】P 2021563502
(86)(22)【出願日】2019-12-11
(86)【国際出願番号】 JP2019048388
(87)【国際公開番号】W WO2021117150
(87)【国際公開日】2021-06-17
【審査請求日】2022-03-23
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】森 俊彦
(72)【発明者】
【氏名】▲角▼田 有紀人
【審査官】金沢 史明
(56)【参考文献】
【文献】TSUNODA, Yukito, et al.,Neural-Network Assistance to Calculate Precise Eigenvalue for Fitness Evaluation of Real Product Design,Proceedings of the 2019 Genetic and Evolutionary Computation Conference Companion (GECCO'19 Companion),2019年07月17日,Pages 405-406,ISBN: 978-1-4503-6748-6, <DOI: 10.1145/3319619.3321884>.
【文献】ZHENG, Long, et al.,Architecture-based Performance Evaluation of Genetic Algorithms on Multi/Many-core Systems,Proceedings of the 2011 14th IEEE International Conference on Computational Science and Engineering,2011年08月26日,Pages 321-334,ISBN: 978-1-4577-0974-6, <DOI: 10.1109/CSE.2011.65>.
【文献】武藤敦子(外3名),出生前淘汰による遺伝的アルゴリズムの効率化,情報処理学会研究報告,社団法人情報処理学会,2002年09月20日,Vol.2002, No.89,Pages 13-16,ISSN: 0919-6072.
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/12
(57)【特許請求の範囲】
【請求項1】
複数の入力に基づく複数の個体の適合度を並列処理で計算する進化計算において、
1つの世代において複数の個体を並列に適合度計算し、
各個体の適合度をそれぞれ算出するために用いられる固有解の探索の終了における基準値であって前記固有解の探索の探索回数または探索時間を示す基準値が閾値を超える場合、前記基準値が閾値を超えた個体の計算を打ち切り、
該計算を打ち切った個体に、推測された適合度の値を与える
ことをコンピュータに実行させる並列計算用進化計算プログラム。
【請求項2】
第1入力に基づく個体に対する第1固有解を計算し、前記第1固有解に基づいて算出される適合度関数から第1適合度の値を計算し、
前記第1入力および計算した前記第1適合度の値に基づいて適合度を推測するモデルを生成し、
前記適合度の値を与える処理は、第2入力に基づく個体に対する固有解の探索の終了における前記基準値が前記閾値を超える場合に、前記第2入力に基づく個体の計算を打ち切り、該生成したモデルを用いて、該計算を打ち切った個体に対する適合度の値を推測して、該個体に推測された適合度の値を与える
ことを特徴とする請求項1に記載の並列計算用進化計算プログラム。
【請求項3】
前記個体の計算を打ち切る処理は、前記固有解の探索の探索回数または探索時間を示す基準値に代えて1つの世代における全個体に対する探索が終了した個体の割合を示す基準値が閾値を超える場合、前記固有解の探索が終了していない個体の計算を打ち切る
ことを特徴とする請求項1に記載の並列計算用進化計算プログラム。
【請求項4】
個体の適合度を求める際に、ニューラルネットに代表される予測器を用いて前記固有解の予測を行い、予測結果から前記固有解の探索の計算を開始することで正確な固有解を求める手法を用いる
ことを特徴とする請求項1に記載の並列計算用進化計算プログラム。
【請求項5】
複数の入力に基づく複数の個体の適合度を並列で処理する進化計算を実行するプロセッサを有する情報処理装置において、
前記プロセッサが、
1つの世代において複数の個体を並列に適合度計算し、
各個体の適合度をそれぞれ算出するために用いられる固有解の探索の終了における基準値であって前記固有解の探索の探索回数または探索時間を示す基準値が閾値を超える場合、前記基準値が閾値を超えた個体の計算を打ち切り、
該計算を打ち切った個体に、推測された適合度の値を与える
ことを特徴とする情報処理装置。
【請求項6】
複数の入力に基づく複数の個体の適合度を並列処理で計算する進化計算において、
1つの世代において複数の個体を並列に適合度計算し、
各個体の適合度をそれぞれ算出するために用いられる固有解の探索の終了における基準値であって前記固有解の探索の探索回数または探索時間を示す基準値が閾値を超える場合、前記基準値が閾値を超えた個体の計算を打ち切り、
該計算を打ち切った個体に、推測された適合度の値を与える
処理をコンピュータが実行する並列計算用進化計算方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、並列計算用進化計算プログラムなどに関する。
【背景技術】
【0002】
進化計算(EC:Evolutionary Computation)の1つとして、遺伝的アルゴリズム(GA:Genetic Algorithm)が知られている(例えば、特許文献1等参照)。遺伝的アルゴリズムでは、例えば、入力値をビット列などに変換しランダムに生成し、入力値を選択(特性の良いものを残す)、交配や変異を繰り返し、最適な入力値を見つける。
【0003】
また、最適構造の設計にGAを用いる手法が知られている。最適構造を求める場合には、適合度の評価(性能評価)を行う必要がある。適合度の評価を行うには、設計構造に対応した強度分布を求める必要がある。強度分布を求めるには、固有解条件を満足する固有解を算出することが必須である。
【0004】
例えば、光SAW(surface acoustic wave)フィルタのSiO層の構造を最適に設計するために用いられるSAW強度分布は、式(1)に基づいて求められる。SAW強度分布を求めるには、式(2)で示す固有解条件を満足する固有解を算出することが必須である。かかる例では、正しいSAW強度分布となるためには、両無限遠でゼロ(B=0,A=0)に収束する固有解を算出する必要がある。
【0005】
【数1】
【0006】
【数2】
【0007】
また、光SAW(surface acoustic wave)フィルタのSiO層の構造を最適に設計するために、GAが用いられる。図10は、SiO層配置の最適構造の設計の参考例を示す図である。図10に示すように、光SAWフィルタは、光波長多重通信の信号から特定の波長の信号を取り出す。光SAWフィルタの最適化目的は、光信号路上のSAW強度Aを最大化し、波長に対するSAW強度のずれ量比率(SAW移動距離La/Lb)を最大化することである。これらの最適化目的は、SiO層の配置によって実現される。
【0008】
図11は、GAによるSiO層の構造設計のフローチャートの参考例を示す図である。図11に示すように、演算処理装置は、第1世代の遺伝子を生成する(ステップS110)。ここでは、演算処理装置は、光SAWフィルタの表面を所定の長さの領域に分割し、SiO層には「1」、SiO層以外には「0」を用いて各領域を符号化する。
【0009】
演算処理装置は、遺伝子に対応する構造を入力値xkmとして取得する(S120)。ここでいうkは、世代を示し、mは、世代内の入力値の番号を示す。
【0010】
そして、演算処理装置は、各入力値xkm固有の動作モードを有限要素法(FEM:Finite Element Method)等を用いて計算する(S130)。ここでは、h(z)がゼロになる方程式を解いた条件が固有解g(z)となる。h(z)は、構造に依存するため、入力値xkmごとに異なる。固有解になり得る範囲は、zが取り得る1000点であるとすると、演算処理装置は、1000点全てについて、固有解・固有動作モードを探索する。この結果、演算処理装置は、固有解・固有動作モードを決定する。すなわち、h(z)がゼロになる点zが固有解g(z)として決定される。固有動作モードとしてのSAW強度分布は、固有解に基づいて決定される。
【0011】
そして、演算処理装置は、対象の入力値について、固有の動作モードに基づいた性能を算出する(S140)。例えば、演算処理装置は、各構造である入力値に対するSAW強度分布から、各構造の光信号路の配置位置に対応するSAW強度を適合度として算出する。ここでは、入力値がxである場合には、適合度としてf(x)が算出される。加えて、演算処理装置は、図示しないが、各構造である入力値に対するSAW移動距離(La/Lb)を適合度として算出する。
【0012】
そして、演算処理装置は、各入力値に対応する適合度を評価する(S150)。ここでは、例えば、SAW強度における適合度の評価は、以下のようになる。入力値xである場合には、適合度が1.0である。入力値xである場合には、適合度が1.2である。入力値xである場合には、適合度が1.4である。入力値xである場合には、適合度が0.8である。そこで、この場合には、xが示す幅が「10」付近が最も適合度f(x)が良いと評価される。なお、実際には、演算処理装置は、SAW移動距離を含めて適合度を評価する。
【0013】
そして、演算処理装置は、終了条件が満たされない場合には、評価結果に基づいて、入力値を選別する(S160)。ここでは、例えば、演算処理装置は、適合度が良かった入力値x(=10)、入力値x(=6)および入力値x(=8)を残し、最も適合度が悪かった入力値x(=12)を除去する。
【0014】
そして、演算処理装置は、次の世代の入力値xk+1mを生成する(S170)。例えば、演算処理装置は、選別された入力値を交配し、交配した入力値を変異して、次の世代の入力値を生成する。そして、演算処理装置は、次の世代の入力値に対する適合度を評価する。
【0015】
そして、演算処理装置は、終了条件が満たされる場合には、評価結果に基づいて、最適な入力値を選定する(ステップS180)。
【0016】
上記では、演算処理装置が、固有解を求めるために、固有解になり得る範囲の全点について収束計算を行う場合である。固有解を求めるための収束計算は、計算コストがかかる。そこで、固有解を求めるための計算コストを削減するために、ニューラルネットワーク(Neural-Network:NN)を用いて近似固有解を予測し、近似固有解から正確な固有解を得るための収束計算を開始して、計算範囲を絞り込む手法が開示されている(例えば、非特許文献1等参照)。
【0017】
図12は、NN予測を用いたGAによるSiO層の構造設計のフローチャートの参考例を示す図である。図12に示すように、演算処理装置は、第1世代の遺伝子を生成する(ステップS210)。ここでは、演算処理装置は、光SAWフィルタの表面を所定の長さの領域に分割し、SiO層には「1」、SiO層以外には「0」を用いて各領域を符号化する。
【0018】
演算処理装置は、遺伝子に対応する構造を入力値xkmとして取得する(S220)。ここでいうkは、世代を示し、mは、世代内の入力値の番号を示す。
【0019】
そして、演算処理装置は、入力値xkmごとに、NNによる近似固有解を予測する(ステップS230)。すなわち、演算処理装置は、NNを用いて入力値xkmから固有解を推定し、推定された固有解をそれぞれ例えば20種類の数値化された近似固有解の1つに丸める。NNは、例えば1~25世代の初期の遺伝子(入力値)分、固有解になり得る範囲の全点について収束計算を行うことによって探索(全範囲探索)された、それぞれの入力値および固有解を学習したモデルであり、入力値に対する近似固有解を出力する。
【0020】
そして、演算処理装置は、各入力値xkm固有の動作モードを、FEM等を用いて計算する(S240)。つまり、演算処理装置は、NNにより予測された近似固有解から正確な固有解を得るための収束計算を開始して、計算範囲を絞り込む。すなわち、演算処理装置は、近似固有解の範囲内のzの値を順番に方程式h(z)に代入して、ゼロになるzの値を固有解として取得する。なお、演算処理装置は、NN予測による固有解の取得に失敗した場合には、固有解になり得る範囲の全点について収束計算を行うことによって探索(全範囲探索)して固有解を取得する。固有動作モードとしてのSAW強度分布は、固有解に基づいて決定される。
【0021】
そして、演算処理装置は、対象の入力値について、固有の動作モードに基づいた性能を算出する(S250)。例えば、演算処理装置は、各構造である入力値に対するSAW強度分布から、各構造の光信号路の配置位置に対応するSAW強度を適合度として算出する。ここでは、入力値がxである場合には、適合度としてf(x)が算出される。加えて、演算処理装置は、図示しないが、各構造である入力値に対するSAW移動距離(La/Lb)を適合度として算出する。
【0022】
そして、演算処理装置は、各入力値に対応する適合度を評価する(S260)。
【0023】
そして、演算処理装置は、終了条件が満たされない場合には、評価結果に基づいて、入力値を選別する(S270)。
【0024】
そして、演算処理装置は、次の世代の入力値xk+1mを生成する(S280)。例えば、演算処理装置は、選別された入力値を交配し、交配した入力値を変異して、次の世代の入力値を生成する。そして、演算処理装置は、次の世代の入力値に対する適合度を評価する。
【0025】
そして、演算処理装置は、終了条件が満たされる場合には、評価結果に基づいて、最適な入力値を選定する(ステップS290)。
【0026】
図13は、GAによる到達解を示す参考例である。図13に示すように、X軸は、1つの適合度としての光信号路上のSAW強度Aを示し、Y軸は、1つの適合度としてのSAW移動距離の波長依存(La/Lb)を示す。ここでは、NN予測を用いた手法では、固有解の品質はNN予測を用いない手法と同等のため、進化によって得られる構造は、同等である。すなわち、2種類の適合度を持つパレート解(固有解)は、NN予測を用いた手法であってもNN予測を用いない手法であっても変わりがない。
【0027】
図14は、GA実施の総計算回数を示す参考例である。図14では、左の棒グラフが、NN予測を用いない手法により固有解を算出するために必要な総計算回数である。右の棒グラフが、NN予測を用いた手法により固有解を算出するために必要な総計算回数である。NN予測を用いた手法では、26世代以降は、固有解算出に要する計算量を1/3に減らすことができる。
【先行技術文献】
【特許文献】
【0028】
【文献】特開2017-162069号公報
【非特許文献】
【0029】
【文献】Yukito Tsunoda et al “Neural-Network Assistance to Calculate Precise Eigenvalue for Fitness Evaluation of Real Product Design”
【発明の概要】
【発明が解決しようとする課題】
【0030】
ところで、GAの各世代における遺伝子ごとの適合度計算は、独立に処理されるので、並列計算をすることが可能である。NN予測を用いたGAの各世代における遺伝子ごとの適合度計算に並列化を適用した場合、遺伝子によって計算終了までの時間が異なる。
【0031】
このため、各世代における適合度の評価が、高速化できないという問題がある。すなわち、各世代における個体ごとの適合度計算を並列化した場合、全ての個体の適合度計算が終わるまで、次の世代の計算に移行できない。つまり、各世代における適合度の評価の計算時間は、世代の中の最も遅い個体の処理に左右される。
【0032】
特に、NN予測を用いたGAでは、NN予測が的中した場合と、予測が外れた場合とで、個体ごとの適合度計算の計算回数や計算時間がばらつく。このため、予測が外れた個体があると、並列化時の待機時間が大きくなる場合があり、この世代の適合度の評価の計算時間が、高速化できない。NN予測による高速化の効果が低下するともいえる。
【0033】
本発明は、1つの側面では、進化計算の個体ごとの適合度計算を並列処理する際に、適合度計算に必須な固有解の多様性を保ちつつ、適合度の評価の計算を高速化することを目的とする。
【課題を解決するための手段】
【0034】
1つの態様では、並列計算用進化計算プログラムは、複数の入力に基づく複数の個体の適合度を並列処理で計算する進化計算において、1つの世代において複数の個体を並列に適合度計算し、各個体の適合度を算出するために用いられる固有解の探索の終了における所定の基準値が閾値を超える場合、該個体の計算を打ち切り、該計算を打ち切った個体に、推測された適合度の値を与える、ことをコンピュータに実行させる。
【発明の効果】
【0035】
1実施態様によれば、進化計算の個体ごとの適合度計算を並列処理する際に、適合度計算に必須な固有解の多様性を保ちつつ、適合度の評価の計算を高速化することができる。
【図面の簡単な説明】
【0036】
図1図1は、実施例に係る演算処理装置の構成を示す機能ブロック図である。
図2A図2Aは、固有解探索の打切りタイミング制御を説明する図である。
図2B図2Bは、固有解探索の打切りタイミング制御の評価結果を示す図である。
図3図3は、実施例に係る固有解探索の打切りタイミング制御の一例を示す図である。
図4A図4Aは、実施例に係るモデル生成を説明する図(1)である。
図4B図4Bは、実施例に係るモデル生成を説明する図(2)である。
図4C図4Cは、実施例に係るモデル生成を説明する図(3)である。
図5図5は、実施例に係る固有解予測を説明する図である。
図6図6は、実施例に係る打切りタイミング制御の評価結果を示す図である。
図7図7は、実施例に係るモデル生成のフローチャートの一例を示す図である。
図8図8は、実施例に係るGAによる構造設計のフローチャートの一例を示す図である。
図9図9は、演算処理プログラムを実行するコンピュータの一例を示す図である。
図10図10は、SiO層配置の最適構造の設計の参考例を示す図である。
図11図11は、GAによるSiO層の構造設計のフローチャートの参考例を示す図である。
図12図12は、NN予測を用いたGAによるSiO層の構造設計のフローチャートの参考例を示す図である。
図13図13は、GAによる到達解を示す参考例を示す図である。
図14図14は、GA実施の総計算回数を示す参考例を示す図である。
図15図15は、NN予測を用いない場合のGA実施の待機時間を示す参考例を示す図である。
図16図16は、NN予測を用いる場合のGA実施の待機時間を示す参考例を示す図である。
【発明を実施するための形態】
【0037】
以下に、本願の開示する並列計算用進化計算プログラム、情報処理装置および並列計算用進化計算方法の実施例を図面に基づいて詳細に説明する。なお、本発明の実施例では、光SAWフィルタの光信号路上のSAW強度が最大化し、波長に対するSAW強度のずれ量比率(SAW移動距離)が最大化する光信号路の最適な配置(構造設計)を進化計算により求める場合について説明する。また、本発明の実施例では、進化計算を遺伝的アルゴリズム(GA:Genetic Algorithm)として説明する。しかしながら、本発明は、実施例により限定されるものではない。
【0038】
まず、NN(Neural-Network)予測を用いない場合とNN予測を用いる場合のGAの個体ごとの適合度計算を並列処理する際の待機時間について、図15および図16を参照して説明する。ここでいうNN予測とは、NNを用いて近似固有解を予測し、近似固有解から正確な固有解を得るための収束計算を開始する、固有解の探索手法である。NN予測では、近似固有解の範囲で固有解の取得に失敗した場合には、固有解になり得る範囲の全点について収束計算を行って固有解を取得する。固有解の探索を固有解になり得る範囲の全点について行うことを、以降、「全範囲探索」という。固有解の探索を近似固有解の範囲について行うことを、以降、「部分範囲探索」という。
【0039】
適合度計算に並列化を適用した場合、個体によって計算終了までの時間が異なる。このため、各世代における個体ごとの適合度計算を並列化した場合、全ての個体の適合度計算が終わるまで、次の世代の計算に移行できない。つまり、各世代における適合度の評価の計算時間は、最も遅い個体の処理に左右される。
【0040】
図15は、NN予測を用いない場合のGA実施の待機時間を示す参考例を示す図である。図15下図に示すように、複数の個体ごとの固有解取得までの探索回数が表わされている。なお、図15に示すWorkは、演算処理を行う装置のことをいう。例えば、マルチコアのCPUであれば、Workはコア数分存在する。マルチCPUの演算処理装置であれば、Workは、コア数×CPU数分存在する。マルチノードの演算処理装置であれば、Workは、コア数×CPU数×ノード数分存在する。
【0041】
これによると、個体によって計算終了までの探索回数が異なることがわかる。そして、適合度計算を並列化した場合、全ての個体の適合度計算が終わるまで、次の世代の計算に移行できないので、Work2の最も早く終わった時点からWork1の最も遅く終わった時点まで待機時間が発生する。また、NN予測を用いない場合であるので、図15上図に示すように、探索回数が800から1200の間に集中している。したがって、個体ごとの適合度算出までの探索回数のばらつきが小さく、並列化時の待機時間が短くなる。
【0042】
図16は、NN予測を用いる場合のGA実施の待機時間を示す参考例を示す図である。図16下図に示すように、複数の個体ごとの固有解取得までの探索回数が表わされている。これによると、個体によって計算終了までの探索回数が異なることがわかる。すなわち、NN予測が的中した場合には、部分範囲探索の試行で終わるので、探索回数が少なく、予測が外れた場合には、全範囲を探索するので、探索回数が多くなる。そして、適合度計算を並列化した場合、全ての個体の適合度計算が終わるまで、次の世代の計算に移行できないので、Work2の最も早く終わった時点からWork1の最も遅く終わった時点まで待機時間が発生する。NN予測では、NN予測が的中した場合と、予測が外れた場合とで、適合度算出までの探索回数がばらつくため、並列化時の待機時間が長くなる。図16上図に示すように、探索回数が300近辺をピークにして、200から1200の間にばらついている。したがって、個体ごとの適合度算出までの探索回数のばらつきが大さく、並列化時の待機時間が長くなる。言い換えれば、NN予測による高速化の効果が低下するともいえる。
【0043】
したがって、GAの個体ごとの適合度計算を並列処理する際に、各世代における適合度の評価が、高速化できない。
【0044】
そこで、以降の実施例では、GAの個体ごとの適合度計算を並列処理する際に、適合度計算に必須な固有解の多様性を保ちつつ、適合度の評価の計算を高速化することが可能な演算処理装置について説明する。
【実施例
【0045】
[情報処理装置の構成]
図1は、実施例に係る演算処理装置の構成を示す機能ブロック図である。図1に示す演算処理装置1は、複数の入力に基づく複数の個体の適合度を並列処理で計算する進化計算において、計算時間のばらつきによる待機時間を低減させるために、以下の処理を行う。演算処理装置1は、現に施行中の世代の中で計算時間の長い個体にNNで学習した適合度を与える。
【0046】
ここで、計算時間のばらつきによる待機時間を低減させるために、現に施行中の世代の中で計算時間の長い個体の固有解探索を打ち切ることも考えられる。そこで、固有解探索の打切りタイミング制御について、図2Aおよび図2Bを参照して説明する。図2Aは、固有解探索の打切りタイミング制御を説明する図である。図2Bは、固有解探索の打切りタイミング制御の評価結果を示す図である。
【0047】
図2A左図には、固有解探索の打切りなしの場合の、NN予測を用いた場合の個体ごとの固有解探索の探索回数および待機時間が表わされている。ここでは、第1世代では、Work3の探索回数が800であり最も遅く、第2世代では、Work4の探索回数が1050であり最も遅い。NN予測を用いるGAの場合、探索回数が例えば500を超える個体は、全体の1割以下であることが実験によりわかっている。
【0048】
そこで、図2A右図に示すように、固有解探索の打切る基準を例えば500として、500を超える個体の固有解探索を打切り、次の世代に移行すれば、並列化の待機時間を低減させることが可能となる。演算処理装置は、打ち切られた個体について、適合度を最下位として適合度の評価を実施すれば良い。
【0049】
図2Bは、打切る基準とする探索回数と、GAにより到達した固有解(到達解)の品質の関係性を評価した結果である。図2B左図には、X軸を固有解探索の打切り回数として、Y軸を到達解のハイパーボリュームとしたグラフが表わされている。図2B右図には、X軸を1つの適合度としての光信号路上のSAW強度A、Y軸を1つの適合度としてのSAW移動距離の波長依存(La/Lb)とした場合の進化計算により到達した固有解(到達解)の品質の関係性を示す解分布が表わされている。図2B右上図は、固有解探索の打切りなしの場合の解分布である。図2B右下図は、固有解探索の打切り回数が400である場合の解分布である。ここでいう到達解のハイパーボリュームとは、解分布から計算される面積のことをいう。
【0050】
図2B右下図に示すように、固有解探索の打切り回数が400である場合では、到達解の多様性が低下する。すなわち、解分布の右方向(Aが大きくなる方向)の進化は、固有解の打切りなしの場合とほぼ同等であるが、解分布の上方向(La/Lbが大きくなる方向)の進化は、固有解の打切りなしと比べて小さい。つまり、固有解の多様性が低下している。そして、図2B左図に示すように、固有解探索の打切り回数が400である場合では、固有解探索の打切りなしの場合と比べて、品質(ハイパーボリューム)が低下している。これは、NN予測が打ち切られた範囲の進化が抑制されたことが原因と推測される。
【0051】
そこで、演算処理装置1は、固有解の多様性を維持するとともに、計算時間のばらつきによる待機時間を低減させ、適合度の評価の計算を高速化するために、現に施行中の世代の中で計算時間の長い個体にNNで学習した適合度を与えるようにする。
【0052】
図3は、実施例に係る固有解探索の打切りタイミング制御の一例を示す図である。図3に示すように、演算処理装置1は、複数世代分、個体に対する固有解を計算し、固有解に基づいて算出される適合度関数(SAW強度分布)から適合度の値を計算する。そして、演算処理装置1は、個体および計算した適合度の値をNNに入力して適合度を学習する。
【0053】
そして、演算処理装置1は、施行中の世代の中で固有解探索の探索回数が閾値を超える個体を当該世代で探索することを打切り、打ち切った個体に、NNにより推測される適合度の値を与えるようにする。例えば、閾値が500である場合には、演算処理装置1は、探索回数が500を超えた個体に対して探索を打切り、既に学習したNNにより推測される適合度の値を与える。この後、演算処理装置1は、施行中の世代の各個体に対応する適合度を評価する。
【0054】
図1に戻って、演算処理装置1は、制御部10と、記憶部20とを有する。
【0055】
制御部10は、CPU(Central Processing Unit)などの電子回路に対応する。そして、制御部10は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部10は、入力部11、HPC(High-Performance Computing)計算部群12、性能評価部13、進化計算部14、出力部15および進化制御部16を有する。
【0056】
記憶部20は、例えば、RAM、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。記憶部20は、入出力記憶部21、第1の学習モデル22、第2の学習モデル23および第3の学習モデル24を有する。
【0057】
入出力記憶部21は、過去の入力値と出力値(適合度)と固有解とを対応付けて記憶する。なお、入出力記憶部21は、後述する入出力保持部161によって記憶される。ここでいう入力値とは、遺伝子に対応する構造のことをいう。ここでいう遺伝子とは、光SAWフィルタの表面を所定の長さに分割した各領域に対して、SiO層には「1」、SiO層以外には「0」を符号化したものである。ここでいう適合度とは、入力値に対する光信号路上のSAW強度およびSAW移動距離の波長依存(La/Lb)の値のことをいう。
【0058】
第1の学習モデル22は、過去の入力値と当該入力値に対応する固有解を用いて新たな入力値に対応する固有解の値域を求めるように学習した結果のモデルである。第1の学習モデル22は、例えば、ニューラルネットワーク(NN)を用いた手法により学習される。なお、第1の学習モデル22は、後述するモデル生成部162によって生成される。
【0059】
第2の学習モデル23は、過去の入力値と当該入力値に対応する光信号路上のSAW強度を用いて新たな入力値に対応するSAW強度を求めるように学習した結果のモデルである。第2の学習モデル23は、例えば、ニューラルネットワーク(NN)を用いた手法により学習される。なお、第2の学習モデル23は、後述するモデル生成部162によって生成される。
【0060】
第3の学習モデル24は、過去の入力値と当該入力値に対応するSAW移動距離の波長依存(La/Lb)の値を用いて新たな入力値に対応するSAW移動距離の波長依存(La/Lb)の値を求めるように学習した結果のモデルである。第3の学習モデル24は、例えば、ニューラルネットワーク(NN)を用いた手法により学習される。なお、第3の学習モデル24は、後述するモデル生成部162によって生成される。
【0061】
入力部11は、第1の学習モデル22,第2の学習モデル23および第3の学習モデル24を生成するために用いられる設計対象の入力値を、後述するHPC計算部121および後述する入出力保持部161へ出力する。また、入力部11は、第1の学習モデル22を用いて固有解を予測するために用いられる設計対象の入力値を、後述する固有解予測部163へ出力する。
【0062】
HPC計算部群12は、複数のHPC計算部121を有する。以降では、1つのHPC計算部121について説明する。
【0063】
HPC計算部121は、所定の世代の設計対象の入力値を入力し、入力値に対する固有解条件を満たす固有解を求める。すなわち、HPC計算部121は、入力値に対する固有解条件を満たす固有解を、固有解になり得る全範囲から探索する。例えば、HPC計算部121は、式(2)の固有解条件のA=1、B=0を入力した場合に、Aを求める関数をh(z)と表すとすると、A=0の条件から、Aすなわちh(z)がゼロになる方程式を解く。ゼロになる方程式を解いた条件が固有解g(z)となる。固有解になり得る範囲は、zが取り得る全ての点であるので、HPC計算部121は、zが取り得る全ての点について、h(z)がゼロになる固有解を探索する。すなわち、HPC計算部121は、zが取り得る全ての点について探索する全範囲探索を行う。そして、HPC計算部121は、全範囲探索によって探索された、入力値に対する固有解を後述する出力部15に出力する。
【0064】
加えて、HPC計算部121は、固有解に基づいて目的関数としてSAW強度分布(固有動作)を算出する。例えば、HPC計算部121は、式(1)に基づいて、固有解に対応するSAW強度分布を算出する。ここでは、HPC計算部121は、式(1)のNeffに固有解を代入して、固有解に対応するSAW強度分布を算出する。HPC計算部121は、入力値に対するSAW強度分布を用いて、入力値に対するSAW強度を1つの適合度として算出する。加えて、HPC計算部121は、入力値に対するAW移動距離の波長依存(La/Lb)の値を1つの適合度として算出する。そして、HPC計算部121は、入力値に対する適合度を後述する性能評価部13および出力部15に出力する。
【0065】
ここで、HPC計算部121は、固有解の探索の計算が終了していない場合に、後述する打切りタイミング制御部164から打切りタイミングの通知を受け付けると、固有解の探索を打ち切る。そして、HPC計算部121は、後述する適合度予測部165に対して、適合度の予測を依頼する。すなわち、HPC計算部121は、施行中の世代の中で打切りタイミングになった個体の探索を打切り、打ち切る個体の適合度の予測を適合度予測部165に依頼する。
【0066】
性能評価部13は、入力値ごとの適合度に基づいて、各入力値の性能を評価する。例えば、性能評価部13は、後述する打切りタイミング制御部164から打切りタイミングの通知を受け付けると、HPC計算部121から出力された入力値ごとの適合度および後述する適合度予測部165によって予測された入力値ごとの適合度を用いて、各入力値の性能を評価する。すなわち、性能評価部13は、固有解探索が終了している入力値と、固有解探索が終了していないが適合度が予測された入力値とを用いて、性能結果を評価する。そして、性能評価部13は、各入力値の性能の評価結果に基づいて、複数の入力値から適合している入力値、すなわち残す入力値を選別する。
【0067】
進化計算部14は、選別した入力値を交配し、交配した入力値を変異して、次の世代の入力値を生成する。そして、進化計算部14は、次の世代の入力値を入力部11に出力する。
【0068】
出力部15は、HPC計算部121から出力された、全範囲探索によって探索された、入力値に対する固有解および適合度を後述する入出力保持部161に出力する。
【0069】
進化制御部16は、入出力保持部161と、モデル生成部162と、固有解予測部163、打切りタイミング制御部164および適合度予測部165を有する。
【0070】
入出力保持部161は、全範囲探索によって探索された、それぞれの入力値に対する固有解および適合度を入出力記憶部21に保持する。
【0071】
モデル生成部162は、全範囲探索によって探索された、入力値に対する固有解に基づいて、新たな入力値に対する固有解条件を満たす固有解がどの値域にあるかを予測する第1の学習モデル22を生成する。例えば、モデル生成部162は、入出力記憶部21に記憶された、全範囲探索によって探索された、それぞれの入力値および固有解をNN(ニューラルネットワーク)に学習させて、新たな入力値に対する固有解の値域を予測する第1の学習モデル22を生成する。なお、モデル生成部162は、1世代からm世代までの入力値に対する固有解を用いて、第1の学習モデル22を生成すれば良い。m世代とは、例えば25世代である。
【0072】
また、モデル生成部162は、入力値に対する1つの適合度としてのSAW強度に基づいて、新たな入力値に対するSAW強度を予測する第2の学習モデル23を生成する。例えば、モデル生成部162は、入出力記憶部21に記憶された、それぞれの入力値およびSAW強度をNNに学習させて、新たな入力値に対するSAW強度を予測する第2の学習モデル23を生成する。なお、モデル生成部162は、1世代からm世代までの入力値に対する1つの適合度としてのSAW強度を用いて、第2の学習モデル23を生成すれば良い。m世代とは、例えば25世代である。
【0073】
また、モデル生成部162は、入力値に対する1つの適合度としてのSAW移動距離の波長依存(La/Lb)の値に基づいて、新たな入力値に対するSAW移動距離の波長依存(La/Lb)の値を予測する第3の学習モデル24を生成する。例えば、モデル生成部162は、入出力記憶部21に記憶された、それぞれの入力値およびSAW移動距離の波長依存(La/Lb)の値をNNに学習させて、新たな入力値に対するSAW移動距離の波長依存(La/Lb)の値を予測する第3の学習モデル24を生成する。なお、モデル生成部162は、1世代からm世代までの入力値に対する1つの適合度としてのSAW移動距離の波長依存(La/Lb)の値を用いて、第3の学習モデル24を生成すれば良い。m世代とは、例えば25世代である。
【0074】
ここで、モデル生成部162によるモデル生成を、図4A図4B図4Cを参照して説明する。図4A図4Cは、実施例に係るモデル生成を説明する図である。図4Aで示すモデル生成の対象モデルは、固有解を予測する学習モデルである。図4Bで示すモデル生成の対象モデルは、1つの適合度としてのSAW強度を予測する学習モデルである。図4Cで示すモデル生成の対象モデルは、1つの適合度としてのSAW移動距離の波長依存(La/Lb)を予測する学習モデルである。
【0075】
図4Aに示すように、モデル生成部162は、入力値xkmと固有解g(xkm)とをNNに学習させて、入力値に対する推定g(xkm)を予測する第1の学習モデル22を生成する。ここでいう推定g(xkm)は、固有解の値域を示す。また、kは、世代を示し、mは、世代内の入力値の番号を示す。
【0076】
図4Bに示すように、モデル生成部162は、入力値xkmと1つの適合度としてのSAW強度とをNNに学習させて、入力値に対するSAW強度を予測する第2の学習モデル23を生成する。
【0077】
図4Cに示すように、モデル生成部162は、入力値xkmと1つの適合度としてのSAW移動距離La/LbとをNNに学習させて、入力値に対するSAW移動距離La/Lbを予測する第3の学習モデル24を生成する。
【0078】
図1に戻って、固有解予測部163は、第1の学習モデル22を用いて、入力値に対する固有解がどの値域(解候補値域)にあるかを予測する。そして、固有解予測部163は、予測した固有解の値域の範囲で、入力値に対する固有解条件を満たす、当該入力値に対する固有解を探索する。
【0079】
例えば、固有解予測部163は、式(2)の固有解条件のA=1、B=0を入力した場合に、Aを求める関数をh(z)と表すとすると、A=0の条件から、Aすなわちh(z)がゼロになる方程式を解く。ゼロになる方程式を解いた条件が固有解g(z)となる。ここで、ゼロになる方程式を解くzの範囲は、予測した固有解の値域の範囲(部分範囲)となる。固有解予測部163は、予測した固有解の値域の範囲内の点について、固有解を探索して、固有解を予測する。すなわち、固有解予測部163は、予測した固有解の値域の範囲内の点について探索する部分範囲探索を行う。つまり、固有解予測部163は、固有解の値域の範囲内のzの値を順番に方程式h(z)に代入して、ゼロになるzの値を固有解として予測する。
【0080】
そして、固有解予測部163は、固有解の予測に成功した場合には、当該固有解を入力値とともにHPC計算部121に出力する。これは、HPC計算部121に、入力値に対する固有解のSAW強度分布(固有動作)を算出させ、入力値に対する適合度を算出させるためである。一方、固有解予測部163は、固有解の予測に失敗した場合には、予測に失敗した固有解に対する入力値をHPC計算部121に出力する。これは、HPC計算部121に、全範囲探索で入力値に対する固有解を求めさせるためである。
【0081】
[固有解予測の説明]
ここで、固有解予測部163による固有解予測を、図5を参照して説明する。図5は、実施例1に係る固有解予測を説明する図である。なお、図5では、解候補値域が、予め、1000点を20分割した50点ずつの20値域に区切られている。
【0082】
まず、図5左図に示す第1の学習モデル22を用いて、固有解予測部163は、入力値xkmに対する解候補値域を予測する。
【0083】
次に、図5右図に示すように、固有解予測部163は、予測した解候補値域の範囲で、入力値に対する固有解条件を満たす、当該入力値に対する固有解を探索する。ここでは、予測された解候補値域は、「5」であったとする。すると、固有解予測部163は、式(2)の固有解条件のA1=1、B1=0を入力した場合のAnを求める関数h(z)がAn=0の条件からゼロになる方程式を、解候補値域が「5」を示す範囲内で解く。すなわち、固有解予測部163は、解候補値域が「5」を示す範囲内のzの値を方程式h(z)に代入する。固有解予測部163は、解候補値域の範囲内のいずれかのzの値で関数h(z)がゼロになる場合には、すなわち、固有解の予測に成功した場合には、関数h(z)がゼロになるzの値を固有解として予測する。これにより、固有解予測部163は、解となる可能性のある範囲内の全点を探索する全範囲探索の場合と比べて、1/20の範囲のみ探索すれば良いので、計算量が1/20と軽減できるとともに、高速化することができる。
【0084】
なお、固有解予測部163は、解候補値域の範囲内のzの値で関数h(z)がゼロにならない場合には、すなわち、固有解の予測に失敗した場合には、HPC計算部121に全範囲探索で固有解を求めさせれば良い。
【0085】
打切りタイミング制御部164は、複数のHPC計算部121によって計算される複数の入力値の固有解探索を打ち切るタイミングを制御する。例えば、打切りタイミング制御部164は、世代における複数の入力値ごとの固有解探索の探索回数を監視し、複数の入力値の中のいずれかの入力値の探索回数が閾値を超える場合、探索回数の閾値を超えた入力値の固有解探索を打ち切る。そして、打切りタイミング制御部164は、打ち切った入力値の固有解探索を行っているHPC計算部121に打切りタイミングである旨を通知する。また、打切りタイミング制御部164は、性能評価部13に打切りタイミングである旨を通知する。つまり、打切りタイミング制御部164は、進化させるタイミングを制御しているともいえる。
【0086】
なお、打切りタイミング制御部164は、固有解探索の探索回数に基づいて、固有解探索を打ち切るタイミングを制御すると説明したが、これに限定されない。打切りタイミング制御部164は、固有解探索の探索回数に代えて固有解探索の計算時間に基づいて、固有解探索を打ち切るタイミングを制御しても良い。また、打切りタイミング制御部164は、固有解探索が終了した個体数(入力値の数)に基づいて、固有解探索を打ち切るタイミングを制御しても良い。また、打切りタイミング制御部164は、実行中のHPC計算部121の数の固有解探索が終了した割合に基づいて、固有解探索を打ち切るタイミングを制御しても良い。
【0087】
適合度予測部165は、固有解探索を打ち切られた個体の適合度を予測する。例えば、適合度予測部165は、HPC計算部121から適合度の予測依頼を受け付けると、予測依頼を受け付けたHPC計算部121が計算を担当していた入力値に対する適合度を予測する。一例として、適合度予測部165は、該当する入力値に対するSAW強度を、第2の学習モデル23を用いて予測する。加えて、適合度予測部165は、該当する入力値に対するSAW移動距離La/Lbを、第3の学習モデル24を用いて予測する。そして、適合度予測部165は、該当する入力値に対する、予測した適合度を性能評価部13に出力する。
【0088】
図6は、実施例に係る打切りタイミング制御の評価結果を示す図である。
【0089】
図6左図には、X軸を固有解探索の打切り回数として、Y軸を進化計算により到達した固有解(到達解)のハイパーボリュームとした場合に、系列を替えて10回実施した場合の平均値を示したグラフが表わされている。図6左図の系列とは、進化計算において交配、変異、選択を施すときの乱数のパターンのことをいう。ここでは、系列1~系列10の10個の乱数のパターンで実施された場合である。
【0090】
図6右図には、X軸を1つの適合度としての光信号路上のSAW強度A、Y軸を1つの適合度としてのSAW移動距離の波長依存(La/Lb)とした場合の、進化計算により到達した固有解(到達解)の品質の関係性を示す解分布が表わされている。図6右上図は、固有解探索の打切りなしの場合の解分布である。図6右下図は、固有解探索の打切り回数が400である場合の解分布である。ここでいう到達解のハイパーボリュームとは、解分布の評価尺度のことをいい、解分布から計算される面積のことをいう。
【0091】
図6左図に示すように、固有解探索の打切り回数が400である場合であっても、固有解探索の打切り回数が1200である場合とほぼ同様の到達度のハイパーボリュームを示している。さらに、図6右図に示すように、固有解探索の打切り回数が400であっても、固有解探索の打切り回数がなしの場合と比べて、到達解の多様性は、維持しているといえる。すなわち、実施例に係る打切りタイミング制御を行った場合では、図2B右下図に示したような解分布の上方向(La/Lbが大きくなる方向)の進化が、固有解の打切りなしと比べて、なしとならず、維持できている。これは、探索回数が多い個体も除去されず、誤差を含んだ予測値とはいえ、高い確率で進化に用いられるからであると推測される。この結果、品質(ハイパーボリューム)が維持できると推測される。
【0092】
[モデル生成のフローチャート]
図7は、実施例に係るモデル生成のフローチャートの一例を示す図である。なお、世代kは、初期値を「1」とするものとする。
【0093】
図7に示すように、入力部11は、第1世代の遺伝子を生成する(ステップS11)。ここでは、入力部11は、光SAWフィルタの表面を所定の長さの領域に分割し、SiO層には「1」、SiO層以外には「0」を用いて各領域を符号化する。
【0094】
入力部11は、遺伝子に対応する構造・設計値を入力値xkmとして複数入力する(ステップS12)。ここでいうkは、世代を示し、mは、世代内の入力値の番号を示す。
【0095】
HPC計算部121は、各入力値“xkm”固有の動作条件を計算する(ステップS13)。例えば、HPC計算部121は、入力値ごとに、式(2)の固有解条件のA=1、B=0を入力した場合に、Aを求める関数h(z)を計算する。そして、HPC計算部121は、入力値ごとに、式(2)の固有解条件のA=0の条件から、zが取り得る全ての点について、Aすなわちh(z)がゼロになる方程式を解く。
【0096】
HPC計算部121は、各入力値に対する固有解および固有動作を決定する(ステップS14)。例えば、HPC計算部121は、入力値ごとに、方程式h(z)を解いた結果、ゼロになるzの値を固有解として決定する。そして、HPC計算部121は、式(1)に基づいて、決定した固有解に対応するSAW強度分布を固有動作として算出する。ここでは、HPC計算部121は、式(1)のNeffに固有解を代入して、固有解に対応するSAW強度分布を算出する。
【0097】
そして、入出力保持部161は、入力値に対する固有解を入出力記憶部21に累積保存する(ステップS15)。
【0098】
そして、HPC計算部121は、各入力値の性能を算出する(ステップS16)。例えば、HPC計算部121は、入力値に対するSAW強度分布から、入力値が示す各構造の光信号路の配置位置に対応するSAW強度を1つの適合度として算出する。加えて、HPC計算部121は、入力値に対するSAW移動距離の波長依存(La/Lb)の値を1つの適合度として算出する。
【0099】
そして、性能評価部13は、入力値に対する適合度を累積保存する(ステップS17)。
【0100】
そして、性能評価部13は、入力値ごとの適合度に基づいて、各入力値の性能を評価する(ステップS18)。
【0101】
そして、性能評価部13は、現世代が閾値を超えるか否かを判定する(ステップS19)。現世代が閾値を超えていないと判定した場合には(ステップS19;No)、進化計算部14は、評価結果に基づいて、現入力値“xkm”から入力値を選別する(ステップS20)。
【0102】
そして、進化計算部14は、次の世代の入力値“xk+1m”を生成する(ステップS21)。例えば、進化計算部14は、選別された入力値を交配し、交配した入力値を変異して、次の世代の入力値を生成する。そして、進化計算部14は、次の世代の処理をすべく、ステップS12に移行する。
【0103】
一方、現世代が閾値を超えたと判定した場合には(ステップS19;Yes)、モデル生成部162は、保存した入力値に対する固有解から、新たな入力値に対する固有解がどの値域にあるかを予測する第1の学習モデル22を生成する(ステップS22)。
【0104】
そして、モデル生成部162は、保存した入力値に対する適合度から、新たな入力値に対する適合度を予測する第2の学習モデル23および第3の学習モデル24を生成する(ステップS23)。例えば、モデル生成部162は、保存した入力値に対するSAW強度から、新たな入力値に対するSAW強度を予測する第2の学習モデル23を生成する。加えて、モデル生成部162は、保存した入力値に対するSAW移動距離の波長依存(La/Lb)の値から、新たな入力値に対するSAW移動距離の波長依存(La/Lb)の値を予測する第3の学習モデル24を生成する。そして、モデル生成処理は、終了する。
【0105】
[GAによる構造設計のフローチャート]
図8は、実施例に係るGAによる構造設計のフローチャートの一例を示す図である。なお、世代kは、初期値を、モデル生成で用いた閾値+1とするものとする。
【0106】
図8に示すように、入力部11は、第1世代の遺伝子を生成する(ステップS31)。ここでは、入力部11は、光SAWフィルタの表面を所定の長さの領域に分割し、SiO層には「1」、SiO層以外には「0」を用いて各領域を符号化する。そして、入力部11は、設計対象の入力値“xkm”(構造・設計値)を複数入力する(ステップS32)。
【0107】
固有解予測部163は、第1の学習モデル22による近似固有解を予測する(ステップS33)。すなわち、固有解予測部163は、第1の学習モデル22を用いて、入力値に対する固有解がどの値域(解候補値域)にあるかを予測する。
【0108】
固有解予測部163は、各入力値xkm固有の動作モードを有限要素法(FEM:Finite Element Method)等を用いて計算する(ステップS34)。例えば、固有解予測部163は、式(2)の固有解条件のA=1、B=0を入力した場合に、Aを求める関数をh(z)と表すとすると、A=0の条件から、Aすなわちh(z)がゼロになる方程式を解く。ゼロになる方程式を解くzの範囲は、予測した固有解の値域の範囲(部分範囲)となる。固有解予測部163は、予測した固有解の値域の範囲内の点について、固有解を探索する。
【0109】
そして、固有解予測部163は、固有解を探索できたか否かを判定する(ステップS35)。固有解を探索できないと判定した場合には(ステップS35;No)、打切りタイミング制御部164は、探索回数を打切りタイミングとして用いて、探索回数がn回より小さいか否かを判定する(ステップS36)。なお、打切りタイミング制御部164は、打切りタイミングとして、探索回数の代わりに、1世代の計算時間を用いても良い。また、打切りタイミング制御部164は、打切りタイミングとして、探索回数の代わりに、固有解探索が終了した個体数(入力値の数)を用いても良い。また、打切りタイミング制御部164は、打切りタイミングとして、探索回数の代わりに、HPC計算部121の数の探索終了した割合を用いても良い。
【0110】
探索回数がn回より小さいと判定した場合には(ステップS36;Yes)、HPC計算部121は、固有解候補を示すzを修正する(ステップS37)。そして、HPC計算部121は、固有解候補を示すzについて、h(z)がゼロになる方程式を解くべく、ステップS34に移行する。
【0111】
一方、探索回数がn回以上と判定した場合には(ステップS36;No)、打切りタイミング制御部164は、入力値の固有解探索を打ち切る。そして、適合度予測部165は、第2の学習モデル23および第3の学習モデル24による適合度を予測する(ステップS38)。すなわち、適合度予測部165は、第2の学習モデル23を用いて、入力値に対するSAW強度を予測する。加えて、適合度予測部165は、第3の学習モデル24を用いて、入力値に対するSAW移動距離La/Lbの値を予測する。そして、適合度予測部165は、適合度を評価させるべく、ステップS40に移行する。
【0112】
一方、固有解を探索できたと判定した場合には(ステップS35;Yes)、HPC計算部121は、固有動作モードに基づいた性能を算出する(ステップS39)。例えば、HPC計算部121は、式(1)に基づいて、固有解に対応するSAW強度分布を算出する。HPC計算部121は、入力値に対するSAW強度分布を用いて、入力値に対するSAW強度を1つの適合度として算出する。加えて、HPC計算部121は、入力値に対するAW移動距離の波長依存(La/Lb)の値を1つの適合度として算出する。そして、HPC計算部121は、適合度を評価させるべく、ステップS40に移行する。
【0113】
ステップS40において、性能評価部13は、入力値ごとの適合度に基づいて、各入力値の性能を評価する(ステップS40)。
【0114】
そして、性能評価部13は、終了条件を満たすか否かを判定する(ステップS41)。終了条件を満たしていないと判定した場合には(ステップS41;No)、進化計算部14は、評価結果に基づいて、現入力値“xkm”から入力値を選別する(ステップS42)。
【0115】
そして、進化計算部14は、次の世代の入力値“xk+1m”を生成する(ステップS43)。例えば、進化計算部14は、選別された入力値を交配し、交配した入力値を変異して、次の世代の入力値を生成する。そして、進化計算部14は、次の世代の処理をすべく、ステップS32に移行する。
【0116】
一方、終了条件を満たしたと判定した場合には(ステップS41;Yes)、性能評価部13は、各入力値の性能評価の結果に基づいて、最適な入力値を選定する(ステップS44)。そして、GAの処理は、終了する。
【0117】
[実施例の効果]
上記実施例によれば、演算処理装置1は、複数の入力に基づく複数の個体の適合度を並列処理で計算する進化計算において、1つの世代において複数の個体を並列に適合度計算する。演算処理装置1は、各個体の適合度を算出するために用いられる固有解の探索の終了における所定の基準値が閾値を超える場合、該個体の計算を打ち切る。演算処理装置1は、該計算を打ち切った個体に、推測された適合度の値を与える。かかる構成によれば、演算処理装置1は、進化計算の個体ごとの適合度計算を並列処理する際に、適合度計算に用いられる固有解の多様性を保ちつつ、適合度の評価の計算を高速化することが可能となる。言い換えれば、演算処理装置1は、各個体の適合度を算出するために用いられる固有解の探索の計算時間のばらつきによる待機時間を低減させることが可能となる。
【0118】
また、演算処理装置1は、第1入力に基づく個体に対する第1固有解を計算し、第1固有解に基づいて算出される適合度関数から第1適合度の値を計算する。演算処理装置1は、第1入力および計算した第1適合度の値に基づいて適合度を推測する第2の学習モデル23および第3の学習モデル24を生成する。演算処理装置1は、第2入力に基づく個体に対する固有解の探索の終了における所定の基準値が閾値を超える場合に、第2入力に基づく個体の計算を打ち切る。そして、演算処理装置1は、生成した第2の学習モデル23および第3の学習モデル24を用いて、計算を打ち切った個体に対する適合度の値を推測して、該個体に推測された適合度の値を与える。かかる構成によれば、演算処理装置1は、固有解の探索が終了しない個体について、固有解の探索の計算を打ち切り、第2の学習モデル23および第3の学習モデル24を用いて適合度の値を推測する。この結果、演算処理装置1は、適合度から示される固有解の多様性を保ちつつ、適合度の評価の計算を高速化することが可能となる。
【0119】
また、演算処理装置1は、各個体の適合度を算出するために用いられる固有解の探索の探索時間が閾値を超える場合、該個体の計算を打ち切るようにする。かかる構成によれば、演算処理装置1は、固有解探索の終了の基準に探索時間を用いることで、固有解の探索の計算時間のばらつきによる待機時間を低減させることが可能となる。
【0120】
また、演算処理装置1は、各個体の適合度を算出するために用いられる固有解の探索の回数が閾値を超える場合、該個体の計算を打ち切るようにする。かかる構成によれば、演算処理装置1は、固有解探索の終了の基準に探索回数を用いることで、固有解の探索の計算時間のばらつきによる待機時間を低減させることが可能となる。
【0121】
また、演算処理装置1は、各個体の適合度を算出するために用いられる固有解の探索が終了した個体の割合が閾値を超える場合、固有解の探索が終了していない個体の計算を打ち切るようにする。かかる構成によれば、演算処理装置1は、固有解探索の終了の基準に固有解の探索が終了した個体の割合を用いることで、固有解の探索の計算時間のばらつきによる待機時間を低減させることが可能となる。
【0122】
[その他]
なお、演算処理装置1は、1世代からm世代までの入力値に対する1つの適合度としてのSAW強度に基づいて、第2の学習モデル23を生成すると説明した。そして、演算処理装置1は、m+1世代の入力値から、生成した第2の学習モデル23を用いて、入力値に対するSAW強度を予測する。しかしながら、演算処理装置1は、これに限定されず、m世代以降も学習を継続して、第2の学習モデル23を更新しても良い。また、演算処理装置1は、現に施行中の世代の直前の数個の世代を用いた第2の学習モデル23となるように、第2の学習モデル23を更新しても良い。
【0123】
また、演算処理装置1は、入力値に対する固有解がどの値域にあるかを学習モデルを用いて予測しながら固有解を求める手法を例に説明した。しかしながら、これに限定されず、固有解を求める手法は、従来の全範囲探索する手法の進化計算にも、同様に適用可能である。
【0124】
また、演算処理装置1は、1世代からm世代までの入力値に対する1つの適合度としてのSAW移動距離の波長依存(La/Lb)の値に基づいて、第3の学習モデル24を生成すると説明した。そして、演算処理装置1は、m+1世代の入力値から、生成した第3の学習モデル24を用いて、入力値に対するSAW移動距離の波長依存(La/Lb)の値を予測する。しかしながら、演算処理装置1は、これに限定されず、m世代以降も学習を継続して、第3の学習モデル24を更新しても良い。また、演算処理装置1は、現に施行中の世代の直前の数個の世代を用いた第3の学習モデル24となるように、第3の学習モデル24を更新しても良い。
【0125】
また、演算処理装置1は、全範囲探索によって探索された、1世代からm世代までの入力値に対する固有解に基づいて、入力値に対する固有解がどの値域にあるかを予測する第1の学習モデル22を生成すると説明した。そして、演算処理装置1は、第m+1世代の入力値から、生成した第1の学習モデル22を用いて、入力値に対する固有解の解候補値域を予測し、解候補値域の範囲から固有解を探索する部分範囲探索を行う。しかしながら、演算処理装置1は、これに限定されず、m世代以降も学習を継続して、第1の学習モデル22を更新しても良い。また、演算処理装置1は、第1の学習モデル22を、部分範囲探索を行う世代に合わせて更新するようにしても良い。例えば、演算処理装置1は、部分範囲探索を行う世代の直前の数個の世代を用いたモデルとなるように、第1の学習モデル22を更新しても良い。
【0126】
また、図示した演算処理装置1の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、演算処理装置1の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、出力部15と入出力保持部161とを1つの部として統合しても良い。また、HPC計算部121を、全範囲探索により固有解を探索する計算部と、固有解に基づいて目的関数を計算する部と、目的関数により入力値に対する適合度を計算する計算部とに分離しても良い。また、記憶部20を演算処理装置1の外部装置としてネットワーク経由で接続するようにしても良い。
【0127】
また、上記実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図1に示した演算処理装置1と同様の機能を実現する演算処理プログラム(並列計算用進化計算プログラム)を実行するコンピュータの一例を説明する。図9は、演算処理プログラムを実行するコンピュータの一例を示す図である。
【0128】
図9に示すように、コンピュータ200は、各種演算処理を実行するCPU203と、ユーザからのデータの入力を受け付ける入力装置215と、表示装置209を制御する表示制御部207とを有する。また、コンピュータ200は、記憶媒体からプログラムなどを読取るドライブ装置213と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部217とを有する。また、コンピュータ200は、各種情報を一時記憶するメモリ201と、HDD(Hard Disk Drive)205を有する。そして、メモリ201、CPU203、HDD205、表示制御部207、ドライブ装置213、入力装置215、通信制御部217は、バス219で接続されている。
【0129】
ドライブ装置213は、例えばリムーバブルディスク210用の装置である。HDD205は、演算処理プログラム205aおよび演算処理関連情報205bを記憶する。
【0130】
CPU203は、演算処理プログラム205aを読み出して、メモリ201に展開し、プロセスとして実行する。かかるプロセスは、演算処理装置1の各機能部に対応する。演算処理関連情報205bは、入出力記憶部21、第1の学習モデル22、第2の学習モデル23および第3の学習モデル24に対応する。そして、例えばリムーバブルディスク210が、演算処理プログラム205aなどの各情報を記憶する。
【0131】
なお、演算処理プログラム205aについては、必ずしも最初からHDD205に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD-ROM(Compact Disk Read Only Memory)、DVD(Digital Versatile Disk)、光磁気ディスク、IC(Integrated Circuit)カードなどの「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ200がこれらから演算処理プログラム205aを読み出して実行するようにしても良い。
【符号の説明】
【0132】
1 演算処理装置
10 制御部
11 入力部
12 HPC計算部群
121 HPC計算部
13 性能評価部
14 進化計算部
15 出力部
16 進化制御部
161 入出力保持部
162 モデル生成部
163 固有解予測部
164 打切りタイミング制御部
165 適合度予測部
20 記憶部
21 入出力記憶部
22 第1の学習モデル
23 第2の学習モデル
24 第3の学習モデル
図1
図2A
図2B
図3
図4A
図4B
図4C
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16