(57)【要約】【課題】進化的計算を用いる際に、適切な計算結果を短時間で得る。【解決手段】生成部１２は、変数を表す個体に対する目的関数の値を進化的計算によって求める際に、前世代の複数の個体に基づいて、現世代の複数の個体を生成する。第１計算部１４は、現世代の複数の個体のうちの一部の個体について、個体に対する目的関数の値を所定の方式で計算する。第２計算部１６は、現世代の複数の個体の各々について、個体に対する目的関数の値を所定の方式よりも低い精度で近似計算する。精度差算出部１８は、所定の方式で計算された目的関数の値と近似計算された目的関数の値との間の差異を表す精度差を算出する。適合度差算出部２０は、目的関数の値に基づいて、目的関数の値の間の差異を表す適合度差を算出する。精度制御部２２は、適合度差が大きいほど精度差が大きくなるように、かつ適合度差が小さいほど精度差が小さくなるように、近似計算の精度を制御する。【選択図】図１
2020184268.tif 000002
【特許請求の範囲】
【請求項１】
変数を表す個体に対する目的関数の値を進化的計算によって求める際に、前世代の複数の個体に基づいて、現世代の複数の個体を生成する生成部と、
前記生成部によって生成された現世代の複数の個体のうちの一部の個体の各々について、個体に対する前記目的関数の値を所定の方式で計算する第１計算部と、
前記生成部によって生成された現世代の複数の個体の各々について、個体に対する前記目的関数の値を前記所定の方式よりも低い精度で近似計算する第２計算部と、
前記第１計算部の前記所定の方式又は前記第２計算部の前記近似計算により計算された前記目的関数の値に基づいて、前記目的関数の値の間の差異を表す適合度差を算出する適合度差算出部と、
前記第１計算部により前記所定の方式で計算された前記目的関数の値と、前記第２計算部により前記近似計算された前記目的関数の値との間の差異を表す精度差と、前記適合度差算出部によって算出された前記適合度差とに基づいて、前記適合度差が大きいほど前記精度差が大きくなるように、かつ前記適合度差が小さいほど前記精度差が小さくなるように、前記第２計算部の前記近似計算の精度を制御する精度制御部と、
を含む演算処理装置。
【請求項２】
前記精度差を算出する精度差算出部を更に備える、
請求項１に記載の演算処理装置。
【請求項３】
前記精度制御部は、前記近似計算の精度を制御する際に、前記精度差が前記適合度差以下であるという関係が保たれるように、前記適合度差が大きいほど前記精度差が大きくなるように、かつ前記適合度差が小さいほど前記精度差が小さくなるように、前記近似計算の精度を制御する、
請求項１又は請求項２に記載の演算処理装置。
【請求項４】
前記精度制御部は、前記近似計算の精度を制御する際に、前記精度差の２倍の値が前記適合度差以下であるという関係が保たれるように、前記適合度差が大きいほど前記精度差が大きくなるように、かつ前記適合度差が小さいほど前記精度差が小さくなるように、前記近似計算の精度を制御する、
請求項１又は請求項２に記載の演算処理装置。
【請求項５】
前記精度差算出部は、前記第１計算部により前記所定の方式で計算された前記目的関数の値と、前記第２計算部により前記近似計算された前記目的関数の値との間の差分のうちの最大値を前記精度差として算出し、
前記適合度差算出部は、現世代の複数の前記個体の各々の前記目的関数の値のうちの最大値と、現世代の複数の前記個体の各々の前記目的関数の値のうちの最小値との間の差分を、前記適合度差として算出する、
請求項２に記載の演算処理装置。
【請求項６】
前記第２計算部は、前記個体の値と前記個体の値に対応する前記目的関数の値とが予め対応付けられたテーブルを参照して前記目的関数の値を求めることにより、現世代の前記個体に対する前記目的関数の値を近似計算する、
請求項１〜請求項５の何れか１項に記載の演算処理装置。
【請求項７】
繰り返し計算によって前記目的関数の値が求められる場合、前記第２計算部は、前記第１計算部による前記所定の方式の計算における繰り返し回数よりも少ない繰り返し回数で前記目的関数の値を求めることにより、現世代の前記個体に対する前記目的関数の値を近似計算し、
前記精度制御部は、前記近似計算の精度を制御する際に、前記第２計算部による前記近似計算で用いられる前記繰り返し回数を調整することにより、前記近似計算の精度を制御する、
請求項１〜請求項５の何れか１項に記載の演算処理装置。
【請求項８】
前記第２計算部は、前記第１計算部による前記所定の方式の計算で用いられるビット数よりも少ないビット数で表現された数値を用いて前記目的関数の値を求めることにより、現世代の前記個体に対する前記目的関数の値を近似計算し、
前記精度制御部は、前記近似計算の精度を制御する際に、前記第２計算部による前記近似計算で用いられるビット数を調整することにより、前記近似計算の精度を制御する、
請求項１〜請求項５の何れか１項に記載の演算処理装置。
【請求項９】
前記第２計算部は、前記個体の値から前記目的関数の値を求めるための学習済みモデルを用いて、前記個体の値に対する前記目的関数の値を求めることにより、現世代の前記個体に対する前記目的関数の値を近似計算し、
前記精度制御部は、前記近似計算の精度を制御する際に、前記第２計算部による前記近似計算で用いられる、前記学習済みモデルのパラメータ数又は前記学習済みモデルの学習に用いられる学習用データの数を調整することにより、前記近似計算の精度を制御する、
請求項１〜請求項５の何れか１項に記載の演算処理装置。
【請求項１０】
前記精度制御部は、世代毎に、前記第２計算部の前記近似計算の精度を制御する、
請求項１〜請求項９の何れか１項に記載の演算処理装置。
【請求項１１】
前記精度制御部は、現世代の前記個体を繰り返し生成する毎に前記精度を変更するように制御し、変更した前記精度で近似計算を行う、
請求項１〜請求項１０の何れか１項に記載の演算処理装置。
【請求項１２】
変数を表す個体に対する目的関数の値を進化的計算によって求める際に、前世代の複数の個体に基づいて、現世代の複数の個体を生成し、
生成された現世代の複数の個体のうちの一部の個体の各々について、個体に対する前記目的関数の値を所定の方式で計算し、
生成された現世代の複数の個体の各々について、個体に対する前記目的関数の値を前記所定の方式よりも低い精度で近似計算し、
前記所定の方式又は前記近似計算により計算された前記目的関数の値に基づいて、前記目的関数の値の間の差異を表す適合度差を算出し、
前記所定の方式で計算された前記目的関数の値と、前記近似計算された前記目的関数の値との間の差異を表す精度差と、算出された前記適合度差とに基づいて、前記適合度差が大きいほど前記精度差が大きくなるように、かつ前記適合度差が小さいほど前記精度差が小さくなるように、前記近似計算の精度を制御する
処理をコンピュータに実行させるための演算処理プログラム。
【請求項１３】
変数を表す個体に対する目的関数の値を進化的計算によって求める際に、前世代の複数の個体に基づいて、現世代の複数の個体を生成し、
生成された現世代の複数の個体のうちの一部の個体の各々について、個体に対する前記目的関数の値を所定の方式で計算し、
生成された現世代の複数の個体の各々について、個体に対する前記目的関数の値を前記所定の方式よりも低い精度で近似計算し、
前記所定の方式又は前記近似計算により計算された前記目的関数の値に基づいて、前記目的関数の値の間の差異を表す適合度差を算出し、
前記所定の方式で計算された前記目的関数の値と、前記近似計算された前記目的関数の値との間の差異を表す精度差と、算出された前記適合度差とに基づいて、前記適合度差が大きいほど前記精度差が大きくなるように、かつ前記適合度差が小さいほど前記精度差が小さくなるように、前記近似計算の精度を制御する
処理をコンピュータに実行させる情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、演算処理装置、演算処理プログラム、及び演算処理方法に関する。
【背景技術】
【０００２】
従来、入力されたデータの組合せで決まる真値に近似する値を出力する近似値出力装置が知られている。この近似値出力装置は、各種類のデータがとり得る範囲を複数に分割した区画の組合せ毎に顆粒細胞値を有する層モデルを複数層備えた小脳モデル部を有している。また、この近似値出力装置は、入力された複数種のデータから対応する区画の組合せの顆粒細胞値を特定し、各層毎の顆粒細胞値を加算して近似値を計算する計算部を有している。そして、この近似値出力装置の小脳モデル部の分割位置は、指定された分割数の範囲内で、進化的アルゴリズムで適切化されている。
【０００３】
また、遺伝的探索法を用いた最適化設計装置において、設計変数データの数が膨大となる実設計問題において、自動計算を実施し、最適解を得ることを可能にする最適化設計装置が知られている。この最適化設計装置は、骨組部材断面寸法などの離散設計変数データの近似式を使用する近似最適化計算装置と該設計変数データを使用する詳細最適化計算装置を設け、これら二つの計算装置を結合して骨組構造の最適化設計装置を構成する。そして、この最適化設計装置は、上記設計変数データの近似式を用いた近似最適化計算装置及び詳細最適化計算装置により、２段階の最適化計算を連続して自動的に実施する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2001-109732号公報
【特許文献２】特開2001-134628号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
進化的計算を用いて所定の目的関数を最適化しようとする場合には、目的関数の変数を表す個体の生成が繰り返される。進化的計算においては、各世代において複数の個体が新たに生成されるため、それらの個体に対応した目的関数の値を計算する必要がある。このため、進化的計算において生成される個体の数は膨大であり、目的関数の計算に膨大な時間がかかる。
【０００６】
そのため、進化的計算に近似計算を適用させることが考えられる。進化的計算に近似計算が適用されることにより、進化的計算の計算処理が高速化される。しかし、近似計算は計算精度が低いため、適切な計算結果を得られない場合がある、という課題がある。
【０００７】
一つの側面では、開示の技術は、進化的計算を用いる際に、適切な計算結果を短時間で得ることが目的である。
【課題を解決するための手段】
【０００８】
一つの実施態様では、開示の技術に係る演算処理装置の生成部は、変数を表す個体に対する目的関数の値を進化的計算によって求める際に、前世代の複数の個体に基づいて、現世代の複数の個体を生成する。そして、第１計算部は、前記生成部によって生成された現世代の複数の個体のうちの一部の個体の各々について、個体に対する前記目的関数の値を所定の方式で計算する。そして、第２計算部は、前記生成部によって生成された現世代の複数の個体の各々について、個体に対する前記目的関数の値を前記所定の方式よりも低い精度で近似計算する。そして、精度差算出部は、前記第１計算部により前記所定の方式で計算された前記目的関数の値と、前記第２計算部により前記近似計算された前記目的関数の値との間の差異を表す精度差を算出する。そして、適合度差算出部は、前記第１計算部の前記所定の方式又は前記第２計算部の前記近似計算により計算された前記目的関数の値に基づいて、前記目的関数の値の間の差異を表す適合度差を算出する。そして、精度制御部は、前記精度差算出部によって算出された前記精度差と、前記適合度差算出部によって算出された前記適合度差とに基づいて、前記第２計算部の前記近似計算の精度を制御する。精度制御部は、前記適合度差が大きいほど前記精度差が大きくなるように、かつ前記適合度差が小さいほど前記精度差が小さくなるように、前記第２計算部の前記近似計算の精度を制御する。
【発明の効果】
【０００９】
一つの側面として、開示の技術は、進化的計算を用いる際に、適切な計算結果を短時間で得ることができる、という効果を有する。
【図面の簡単な説明】
【００１０】
【図１】第１実施形態に係る演算処理装置の概略ブロック図である。
【図２】進化的計算を説明するための説明図である。
【図３】進化的計算を説明するための説明図である。
【図４】第１計算部により高精度計算される目的関数の値と第２計算部によって近似計算される目的関数の値との間の関係を説明するための説明図である。
【図５】記憶部に格納されるテーブルを説明するための説明図である。
【図６】テーブルを用いた近似計算を説明するための説明図である。
【図７】近似計算結果を説明するための説明図である。
【図８】進化的計算に近似計算を適用し、かつ近似計算の精度を制御した場合の計算結果の一例を示す図である。
【図９】本実施形態を適用した場合の進化的計算における計算時間を説明するための説明図である。
【図１０】実施形態に係る演算処理装置として機能するコンピュータの概略構成を示すブロック図である。
【図１１】本実施形態の演算処理ルーチンの一例を示すフローチャートである。
【図１２】第４実施形態で用いられる学習済みモデルの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。
【００１２】
＜第１実施形態の演算処理装置＞
【００１３】
図１に示すように、第１実施形態に係る演算処理装置１０は、生成部１２と、第１計算部１４と、記憶部１５と、第２計算部１６と、精度差算出部１８と、適合度差算出部２０と、精度制御部２２とを備えている。本実施形態の演算処理装置１０は、進化的計算を用いて所定の目的関数の最適値を算出する。
【００１４】
生成部１２は、変数を表す個体に対する目的関数の値を進化的計算によって求める際に、前世代の複数の個体の各々に基づいて、現世代の複数の個体を生成する。進化的計算の一例としては、遺伝的アルゴリズムが知られている。遺伝的アルゴリズムは、様々な目的関数に適用可能である。
【００１５】
図２に、進化的計算を説明するための説明図を示す。図２の例では、個体に対応する数値が２進数のビット列によって表現されている。なお、図２では、０〜１の数値ｘが２進数によって表記されている。
【００１６】
進化的計算では、各世代において複数の個体が生成される。そして、それらの個体に対する目的関数の値が計算される。この場合、図２に示されるように、前世代の複数の個体の選択、交配、及び変異によって、現世代の複数の個体が生成される。なお、現世代の個体の生成の際には、前世代の複数の個体に対する目的関数の値（以下、「適合度」とも称する。）に応じて、複数の個体の順位付けがなされる。
【００１７】
例えば、図２に示されるように、進化的計算における選択においては、目的関数の値が最小（図２では「Ｗｏｒｓｔ」と表記。）である個体「1100001111b」（この個体ｘは、ｘ＝0.7654相当）が除去される。一方、目的関数の値が最大（図２では「Ｂｅｓｔ」と表記。）である個体「0100111101b」（この個体ｘは、ｘ＝0.3099相当）は、交配及び変異等が行われることなく、現世代である第１世代の個体として複製される。
【００１８】
また、図２に示されるように、進化的計算における交配においては、個体「0100111101b」と個体「1001100001b」との間において上位３ビットを交換する交配１が行われ、個体「1000111101b」と個体「0101100001b」とが生成される。また、個体「0111000011b」と個体「0100001111b」との間において上位４ビットを交換する交配２が行われ、個体「0100000011b」と個体「0111001111b」とが生成される。
【００１９】
また、図２に示されるように、進化的計算における変異においては、個体「0101100001b」が「0111100001b」へ変異する。
【００２０】
このようにして、前世代である第０世代の個体から、現世代である第１世代の個体が生成される。これら複数の個体の生成が繰り返され世代が進むことにより、図３に示されるように、複数の個体は目的関数の最適値に近づき、最終的に（例えば、第１０世代目）目的関数の最適値が得られる。
【００２１】
第１計算部１４は、生成部１２によって生成された現世代の複数の個体の各々のうちの一部の個体の各々について、当該一部の個体に対する目的関数の値を所定の方式で計算する。第１計算部１４によって計算される所定の方式は、後述する第２計算部１６における計算方式とは異なる。具体的には、第１計算部１４による計算の精密さの度合いを表す計算の精度は、第２計算部１６による計算の精度よりも高い。
【００２２】
このため、生成部１２によって生成された現世代の複数の個体の全てについて、計算の精度が高い第１計算部１４による計算が行われる場合には、膨大な計算時間がかかる。そこで、本実施形態の演算処理装置１０においては、高精度な計算（以下、単に「高精度計算」と称する。）を行う第１計算部１４は、生成部１２によって生成された現世代の複数の個体のうちの一部に対する目的関数の値を計算する。一方、後述するように、第１計算部１４に比べ低精度な近似計算を行う第２計算部１６は、生成部１２によって生成された現世代の複数の個体の全てについて、当該個体の目的関数の値を計算する。
【００２３】
図４に、第１計算部１４により高精度計算される目的関数の値と、第２計算部１６によって近似計算される目的関数の値との間の関係を説明するための説明図を示す。図４に示される三角印は、第１計算部１４により高精度計算される、現世代の複数の個体のうちの一部の個体の各々の目的関数の値を示す。また、図４に示される黒丸印は、第２計算部１６により低精度計算される、現世代の全ての個体に対する目的関数の値を示す。現世代の複数の個体のうちの一部の個体の各々（ｘ１，ｘ２，ｘ３，ｘ４，ｘ５・・・）の目的関数の値は、後述する精度差を算出する際に用いられる。
【００２４】
なお、第２計算部１６による近似計算は、第１計算部１４による高精度計算よりも精度が低いため、計算時間が短い。このため、複数の個体に対する目的関数の値が近似計算によって計算されることにより、高精度計算のみによって目的関数の値を計算する場合に比べて、進化的計算の計算時間が低減される。これにより、進化的計算を用いる際の計算処理が高速化される。
【００２５】
記憶部１５には、個体の値と当該個体の値に対応する目的関数の値とが予め対応付けられたテーブルが複数格納されている。記憶部１５に格納されている複数のテーブルは、後述する第２計算部１６における近似計算で用いられる。
【００２６】
図５に、記憶部１５に格納されるテーブルを説明するための説明図を示す。図５に示されるように、テーブルには、個体に対応する変数の値と当該個体に対する目的関数の値とが対応付けられて格納される。図５には、個体を表す変数が２次元ベクトルである場合の例が示されている。個体を表す変数はｘ＝（ｖｉ，ｗｊ）の２次元ベクトルで表され、その個体ｘに対応する目的関数の値はｆ（ｘ）（例えば、図５中のｆ００等）によって表される。そのため、テーブルには、各個体ｘ＝（ｖｉ，ｗｊ）に対する目的関数ｆ（ｘ）の値が対応付けられている。ただし、ｉ＝０，１，２，・・・，ｋであり、ｊ＝０，１，２，・・・，ｍである。
【００２７】
図５には、複数のテーブルの一例である、テーブルＴ１とテーブルＴ２とが示されている。テーブルＴ１とテーブルＴ２とを比較すると、個体と目的関数の値との組み合わせの数が異なる。テーブルＴ１とテーブルＴ２とを比較した場合、テーブルＴ２には、新たなデータであるＮ１の列データとＮ２の行データとが追加されている。テーブルＴ１とテーブルＴ２とを含む複数のテーブルの各々は、登録されるデータの数が異なり、登録されるデータの数が多いほど高精度な近似計算を実行する際に用いられる。
【００２８】
記憶部１５のテーブルに格納される各値は、第１計算部１４によって計算された目的関数ｆ（ｘ）の値である。そのため、第１計算部１４は、前処理として、複数の変数の各々について、当該変数に対する目的関数ｆ（ｘ）の値を所定の方式で計算し、それらの目的関数ｆ（ｘ）の値を複数のテーブルに格納する。テーブルに格納された変数とその変数に対する目的関数の値を用いて、個体に対する目的関数の値が計算される。なお、複数のテーブルの各々は、個体を表す変数とその変数に対する目的関数の値との組み合わせの数が異なるため、登録されるデータの数が多いテーブルほど高精度な近似計算を実行する際に用いられる。
【００２９】
第２計算部１６は、第１計算部１４によって所定の方式で計算された一部の個体の各々を含む現世代の個体の各々について、個体に対する目的関数の値を第１計算部１４による所定の方式よりも低い精度で近似計算する。
【００３０】
近似計算の手法としては様々な手法が存在するが、第１実施形態の第２計算部１６は、記憶部１５に格納されたテーブルを参照して目的関数の値を求めることにより、現世代の個体に対する目的関数の値を近似計算する。
【００３１】
例えば、第２計算部１６は、生成部１２によって現世代の個体ｘ＝（ｖ’，ｗ’）が生成された場合、記憶部１５のテーブルに格納された各値からの内挿によって、現世代の個体ｘ＝（ｖ’，ｗ’）に対する目的関数の値を近似計算する。
【００３２】
例えば、現世代の個体を表すベクトルの要素ｖ’が図５に示すテーブルＴ１に格納されたｖ１とｖ２との間に位置し、かつ個体を表すベクトルの要素ｗ’がテーブルＴ１に格納されたｗ０とｗ１との間に位置しているとする。
【００３３】
この場合、要素ｖ’，ｗ’は以下の式で表される。なお、ｄ１はｖ’とｖ１との間の距離を表し、ｄ２はｖ’とｖ２との間の距離を表す。また、ｄ３はｗ’とｗ１との間の距離を表し、ｄ４はｗ’とｗ２との間の距離を表す。
【００３４】
ｖ’＝（ｄ２＊ｖ１＋ｄ１＊ｖ２）／（ｄ１＋ｄ２）
ｗ’＝（ｄ４＊ｖ１＋ｄ３＊ｖ２）／（ｄ３＋ｄ４）
【００３５】
具体的には、図６に示されるように、要素ｖ’は、ｖ１とｖ２との中間に位置しているとする。一方、図６に示されるように、要素ｗ’とｗ０との間の距離と、要素ｗ’とｗ１との間の距離との比は、２：１の関係となっているとする。
【００３６】
この場合、要素ｖ’，ｗ’は以下の式で表される。
【００３７】
ｖ’＝（ｖ１＋ｖ２）／２
ｗ’＝（ｗ０＋２*ｗ１）／３
【００３８】
この場合、第２計算部１６は、記憶部１５のテーブルＴ１を参照し、以下の式に従って、個体ｘ＝（ｖ’，ｗ’）に対する目的関数の値ｇ（ｖ’，ｗ’）を算出する。
【００３９】
ｇ（ｖ’，ｗ’）＝（（ｆ０１＋ｆ０２）／２＋２*（ｆ１１＋ｆ１２）／２）／３
【００４０】
このように、本実施形態においては、第２計算部１６による近似計算の計算結果が利用されることにより、進化的計算の計算処理が高速化される。しかし、近似計算が進化的計算に適用される場合、近似計算の精度は低いため、生成部１２によって生成される複数の個体の順位付けを適切に行うことができない場合がある。また、近似計算が進化的計算に適用される場合には、個体が最適値に辿り着けない場合がある。
【００４１】
図７に、近似計算結果を説明するための説明図を示す。図７に示される各グラフは、進化的計算に近似計算が用いられた場合のシミュレーション結果の一例である。図７に示される実線は、高精度計算によって計算された目的関数ｆ（ｘ）である。また、破線は、近似計算によって計算された目的関数ｇ（ｘ）である。高精度計算による目的関数ｆ（ｘ）の値に対し、近似計算による目的関数ｇ（ｘ）の値は精度差がある。また、図７に示される白丸印は、近似計算によって得られる、個体に対する目的関数の値を表す。
【００４２】
生成部１２によって現世代の個体が生成される際には、前世代の個体に対して適合度に応じた順位付けがなされ、その順位付け結果に応じて現世代の個体の生成が行われる。しかし、近似計算の精度は低いため、近似計算による計算結果からは、複数の個体の順位付けを適切に行うことができない場合がある。例えば、近似計算によって、個体ｘ１に対する目的関数の値ｇ（ｘ１）と個体ｘ２に対する目的関数の値ｇ（ｘ２）とが同一の値となってしまう場合には、目的関数の値を表す適合度に応じた順位付けを行うことができない。
【００４３】
この点、図７に示される第０世代の個体のように、近似計算での各個体の目的関数の値のばらつきが大きく、各個体の目的関数の値の間の差が大きい場合には、近似計算の計算精度が低くとも個体の順位付けは可能である。一方、図７に示される第５世代の個体のように、近似計算での各個体の目的関数の値のばらつきが小さく、各個体の目的関数の値の間の差が小さい場合には、異なる個体の目的関数の値が同一の値となってしまう場合がある。このため、各個体の目的関数の値の間の差が小さい場合には、複数の個体の順位付けを適切に行うことができないときがある。
【００４４】
更に、図７に示される第９世代のように、各個体に対する近似計算結果の目的関数ｇ（ｘ）の値を用いて進化的計算を行う場合には、近似計算の計算結果の粗さのため、生成された個体が局所解に陥り、最適値に辿り着けないときがある。
【００４５】
そこで、本実施形態では、第１計算部１４による高精度計算と第２計算部１６による近似計算との間の差異と、現世代の複数の個体の目的関数の値の間の差異とに応じて、第２計算部１６における近似計算の精度を制御する。具体的には、本実施形態の演算処理装置１０は、進化的計算を行う際に、新たに生成された複数の個体に対する目的関数の値の順位付けが可能となるように、近似計算の精度を制御する。
【００４６】
以下、具体的に説明する。
【００４７】
精度差算出部１８は、第１計算部１４により所定の方式で計算された目的関数の値と、第２計算部１６により近似計算された目的関数の値との間の差異を表す精度差ａを算出する。本実施形態の精度差算出部１８は、第１計算部１４により所定の方式で計算された目的関数の値と、第２計算部１６により近似計算された目的関数の値との間の差分のうちの最大値を、精度差ａとして算出する。
【００４８】
具体的には、精度差算出部１８は、同一の個体ｘに対する、第１計算部１４によって得られる目的関数ｆ（ｘ）の値と、第２計算部１６によって得られる目的関数ｇ（ｘ）の値との間の差分のうちの最大値を、精度差ａとして算出する。
【００４９】
例えば、現世代の複数の個体（ｘ０，ｘ１，・・・，ｘｎ）のうちの一部の個体の各々(ｘ０，ｘ１，ｘ２，・・・，ｘｋ）（但し、ｋ＜ｎ）について、第１計算部１４と第２計算部１６との両方によって目的関数の値が計算される場合を例に説明する。
【００５０】
この場合には、目的関数の値ｆ（ｘ）と目的関数の値ｇ（ｘ）との間の差分の絶対値である、｜ｆ（ｘ０）−ｇ（ｘ０）｜，｜ｆ（ｘ１）−ｇ（ｘ１）｜，｜ｆ（ｘ２）−ｇ（ｘ２）｜，・・・，｜ｆ（ｘｋ）−ｇ（ｘｋ）｜のうち、最大値が精度差ａとして算出される。
【００５１】
適合度差算出部２０は、現世代の複数の個体の各々の目的関数の値に基づいて、目的関数の値の間の差異を表す適合度差ｂを算出する。なお、本実施形態の適合度差算出部２０は、第１計算部１４によって計算された、一部の個体の各々の目的関数の値のうちの最大値と、一部の個体の各々の目的関数の値のうちの最小値との間の差分を適合度差ｂとして算出する。具体的には、第１計算部１４により計算される目的関数ｆ（ｘ）の値のうちの最大値と最小値との差分が適合度差ｂとして算出される。適合度差は、第１計算部１４により高精度に計算された目的関数の値のばらつき度合いを示す値であり、適合度差が大きいほど、複数の個体に対する目的関数の値が広い範囲に亘って分布していることを表している。
【００５２】
精度制御部２２は、精度差算出部１８により算出された精度差ａと、適合度差算出部２０により算出された適合度差ｂとに基づいて、第２計算部１６の近似計算の精密さの度合い（以下、単に「近似計算の精度」と称する。）を制御する。具体的には、精度制御部２２は、適合度差ｂが大きいほど精度差ａが大きくなるように、かつ適合度差ｂが小さいほど精度差ａが小さくなるように、第２計算部１６の近似計算の精度を制御する。
【００５３】
適合度差ｂが大きいほど精度差ａが大きくなるように、かつ適合度差ｂが小さいほど精度差ａが小さくなるように近似計算の精度を制御することにより、新たに生成された現世代の複数の個体の順位付けが可能となり、進化的計算を適切に実行することができる。
【００５４】
進化的計算において、適合度差ｂが大きい場合には、各個体の適合度のばらつきが大きく、近似計算の精度が低くとも、各個体の順位付けをすることは容易である。なお、近似計算の精度が低いことは、精度差ａが大きいことに対応する。一方、適合度差ｂが小さい場合には、各個体の適合度が同じような値をとることとなり、近似計算の精度が低いと、個体の適合度を精密に区分け出来ず、各個体の順位付けをすることは難しくなる。このため、精度差ａと適合度差ｂとの関係を適切に制御すれば、各個体の順位付けを適切に行うことが可能となり、結果として、進化的計算の計算結果の精度が保たれる。
【００５５】
そこで、本実施形態の精度制御部２２は、適合度差ｂが大きいほど精度差ａを大きくし、適合度差ｂが小さいほど精度差ａを小さくする。これにより、複数の個体の順位付けを適切に行うことが可能となる。また、上記図７にも示されるように、第２計算部１６により近似計算される目的関数ｇ（ｘ）は、第１計算部１４により高精度計算される目的関数ｆ（ｘ）を中心として、上下に分布していることがわかる。このため、精度差ａの２倍程度の値が適合度差ｂの値内に収まると、各個体の順位付けが可能となる場合が多い。
【００５６】
そこで、本実施形態の精度制御部２２は、精度差の２倍の値２ａが適合度差ｂ以下であるという関係（２ａ≦ｂ）が保たれるように、近似計算の精度を制御する。精度差の２倍の値２ａが適合度差ｂ以下であるという関係（２ａ≦ｂ）が保たれることにより、各個体の順位付けが可能となり、進化的計算の計算結果の精度が十分に保たれる。
【００５７】
また、適合度差ｂが大きい場合には、各個体の適合度のばらつきが大きく、近似計算の精度が低くとも、各個体の順位付けをすることは容易である。このため、本実施形態の精度制御部２２は、適合度差ｂが大きい場合は、高精度計算と近似計算との間の精度差ａを大きくし、近似計算の精度を低下させる。これにより、計算時間の短縮が図られる。
【００５８】
具体的には、精度制御部２２は、精度差の２倍の値２ａが適合度差ｂ以下であるという関係（２ａ≦ｂ）が保たれている場合には、第２計算部１６による近似計算の精度をそのままとする。一方、精度制御部２２は、精度差の２倍の値２ａが適合度差ｂ以下であるという関係（２ａ≦ｂ）が保たれていない場合には、近似計算の精度を向上させる旨の精度制御信号を、第２計算部１６へ出力する。
【００５９】
第２計算部１６は、精度制御部２２から精度制御信号を取得した場合、前回までの近似計算よりも精度の高い近似計算を行う。具体的には、第２計算部１６は、前回までの近似計算で用いられたテーブルよりも、登録されたデータの数が多いテーブルを用いて、現世代の複数の個体に対する目的関数の値を再計算する。これにより、前回までの近似計算よりも精度の高い近似計算が行われ、精度差ａが小さくなる。このため、精度差ａの２倍の値２ａが適合度差ｂ以下であるという関係（２ａ≦ｂ）が保たれるようになる。
【００６０】
また、精度制御部２２は、精度差ａが予め設定された閾値以下となった場合には、近似計算を停止する旨の停止制御信号を、第１計算部１４及び第２計算部１６へ出力する。
【００６１】
第１計算部１４は、精度制御部２２から停止制御信号を取得した場合、次回以降に生成部１２によって生成された現世代の複数の個体の全てについて、当該個体に対する目的関数の値を所定の方式で計算する。また、第２計算部１６は、精度制御部２２から停止制御信号を取得した場合、次回以降に生成された現世代の個体に対する近似計算を停止する。これにより、現世代の複数の個体に対する目的関数の値は、第１計算部１４による高精度計算のみによって計算される。
【００６２】
図８に、進化的計算に近似計算を適用し、かつ近似計算の精度を制御した場合の計算結果の一例を示す。図８に示される各グラフは、進化的計算に近似計算を適用し、かつ近似計算の精度を制御した場合のシミュレーション結果の一例である。
【００６３】
図８に示される第０世代においては、第２計算部１６による低精度計算から得られる目的関数ｇ（ｘ）は、第１計算部１４による高精度計算から得られる目的関数ｆ（ｘ）に対し精度差を有している。この場合、精度差ａの２倍の値２ａが適合度差ｂ以下であるという関係（２ａ≦ｂ）が保たれるように、第２計算部１６の近似計算の精度が制御され、第５世代においては精度差が小さくなる。そして、第６世代以降においては精度差が０となり、近似計算ではなく第１計算部１４による高精度計算のみが行われる。このように、精度差ａの２倍の値２ａが適合度差ｂ以下であるという関係（２ａ≦ｂ）が保たれることにより、近似計算を進化的計算に適用させた場合であっても、複数の個体の順位付けが適切に行われる。
【００６４】
次に、図９に、本実施形態を適用した場合の進化的計算における計算時間を説明するための説明図を示す。図９の実線は高精度計算のみによる目的関数の計算時間を表し、破線は本実施形態を適用した場合の計算時間を表す。図９に示される例では、近似計算を用いる場合、第５世代までは第２計算部１６によって近似計算が行われ、第５世代よりも後の世代においては第１計算部１４によってのみ目的関数の値の計算が行われている。なお、第５世代までは、第２計算部１６による近似計算の精度は適宜制御される。
【００６５】
図９に示される実線と破線とを比較すると、第５世代までは、第２計算部１６による近似計算が行われるため、計算処理が高速化される。そして、第５世代より後の世代においては、第１計算部１４による高精度計算が行われるため、実線と破線とは同程度の傾きとなる。第５世代までは、第２計算部１６による近似計算が行われるため、進化的計算における計算時間を大幅に低減することができる。
【００６６】
演算処理装置１０は、例えば、図１０に示すコンピュータ５０で実現することができる。コンピュータ５０はＣＰＵ５１、一時記憶領域としてのメモリ５２、及び不揮発性の記憶部５３を備える。また、コンピュータ５０は、入出力装置が接続される入出力interface（Ｉ／Ｆ）５４、及び記録媒体５９に対するデータの読み込み及び書き込みを制御するread/write（Ｒ／Ｗ）部５５を備える。また、コンピュータ５０は、インターネット等のネットワークに接続されるネットワークＩ／Ｆ５６を備える。ＣＰＵ５１、メモリ５２、記憶部５３、入出力Ｉ／Ｆ５４、Ｒ／Ｗ部５５、及びネットワークＩ／Ｆ５６は、バス５７を介して互いに接続される。
【００６７】
記憶部５３は、Hard Disk Drive（ＨＤＤ）、Solid State Drive（ＳＳＤ）、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部５３には、コンピュータ５０を演算処理装置１０として機能させるための演算処理プログラム６０が記憶されている。演算処理プログラム６０は、生成プロセス６１と、第１計算プロセス６２と、第２計算プロセス６３と、精度差算出プロセス６４と、適合度差算出プロセス６５と、精度制御プロセス６６とを有する。記憶領域６７には、記憶部１５を構成する情報が記憶される。
【００６８】
ＣＰＵ５１は、演算処理プログラム６０を記憶部５３から読み出してメモリ５２に展開し、演算処理プログラム６０が有するプロセスを順次実行する。ＣＰＵ５１は、生成プロセス６１を実行することで、図１に示す生成部１２として動作する。また、ＣＰＵ５１は、第１計算プロセス６２を実行することで、図１に示す第１計算部１４として動作する。また、ＣＰＵ５１は、第２計算プロセス６３を実行することで、図１に示す第２計算部１６として動作する。また、ＣＰＵ５１は、精度差算出プロセス６４を実行することで、図１に示す精度差算出部１８として動作する。また、ＣＰＵ５１は、適合度差算出プロセス６５を実行することで、図１に示す適合度差算出部２０として動作する。また、ＣＰＵ５１は、精度制御プロセス６６を実行することで、図１に示す精度制御部２２として動作する。また、ＣＰＵ５１は、記憶領域６７から情報を読み出して、記憶部１５をメモリ５２に展開する。これにより、演算処理プログラム６０を実行したコンピュータ５０が、演算処理装置１０として機能することになる。ソフトウェアである演算処理プログラム６０を実行するＣＰＵ５１はハードウェアである。
【００６９】
なお、演算処理プログラム６０により実現される機能は、例えば半導体集積回路、より詳しくはApplication Specific Integrated Circuit（ＡＳＩＣ）等で実現することも可能である。
【００７０】
次に、本実施形態に係る演算処理装置１０の作用について説明する。まず、演算処理装置１０の第１計算部１４は、複数の変数の各々について、当該変数に対する目的関数の値を計算し、記憶部１５の複数のテーブルに登録する。そして、演算処理装置１０は、進化的計算の開始を表す指示信号を受け付けると、図１１に示す演算処理ルーチンを実行する。
【００７１】
ステップＳ１００において、生成部１２は、前回の本ステップＳ１００で生成された前世代の複数の個体の各々に基づいて、現世代の複数の個体を生成する。
【００７２】
ステップＳ１０２において、第１計算部１４は、上記ステップＳ１００で生成された現世代の複数の個体の各々のうちの一部の個体の各々について、当該個体に対する目的関数の値を所定の方式で高精度計算する。
【００７３】
ステップＳ１０４において、第１実施形態の第２計算部１６は、記憶部１５に格納されたテーブルを参照して目的関数の値を求めることにより、上記ステップＳ１００で生成された現世代の全部の個体に対する目的関数の値を近似計算する。
【００７４】
ステップＳ１０６において、精度差算出部１８は、上記ステップＳ１０２において所定の方式で計算された目的関数の値と、上記ステップＳ１０４において近似計算された目的関数の値との間の差分のうちの最大値である精度差ａを算出する。
【００７５】
ステップＳ１０８において、適合度差算出部２０は、上記ステップＳ１０２で得られた、一部の個体の各々の目的関数の値のうちの最大値と、一部の個体の各々の目的関数の値のうちの最小値との間の差分である適合度差ｂを算出する。
【００７６】
ステップＳ１０９において、精度制御部２２は、精度差ａが予め設定された閾値ｃ以下となったか否かを判定する。精度差ａが予め設定された閾値ｃ以下となった場合には、演算処理ルーチンは終了する。そして、精度制御部２２は、近似計算を停止する旨の停止制御信号を、第１計算部１４及び第２計算部１６へ出力し、第１計算部１４のみによる高精度計算を用いた進化的計算が実行される。一方、精度差ａが予め設定された閾値ｃ以下でない場合には、ステップＳ１１０へ移行する。
【００７７】
ステップＳ１１０において、精度制御部２２は、上記ステップＳ１０６で算出された精度差ａの２倍の値２ａが、上記ステップＳ１０８で算出された適合度差ｂ以下であるという関係（２ａ≦ｂ）が保たれているか否かを判定する。２ａが適合度差ｂ以下であるという関係が保たれている場合には、ステップＳ１００へ移行する。一方、２ａが適合度差ｂ以下であるという関係が保たれていない場合には、ステップＳ１１２へ移行する。
【００７８】
ステップＳ１１２において、精度制御部２２は、近似計算の精度を向上させるように、第２計算部１６へ制御信号を出力する。次回のステップＳ１０４における近似計算では、今回のステップＳ１０４における近似計算の精度よりも精度が向上した状態で、近似計算が実行される。そして、２ａが適合度差ｂ以下であるという関係になるまで、上記ステップＳ１０４〜上記ステップＳ１１２の処理が繰り返される。
【００７９】
以上説明したように、第１実施形態に係る演算処理装置は、現世代の複数の個体の各々のうちの一部の個体の各々について、当該個体に対する目的関数の値を所定の方式で計算する。また、演算処理装置は、所定の方式で計算された一部の個体の各々を含む現世代の複数の個体の各々について、当該個体に対する目的関数の値を所定の方式よりも低い精度で近似計算する。また、演算処理装置は、所定の方式で計算された目的関数の値と、近似計算された目的関数の値との間の差異を表す精度差を算出する。また、演算処理装置は、現世代の複数の個体の各々の目的関数の値に基づいて、目的関数の値の間の差異を表す適合度差を算出する。そして、演算処理装置は、精度差と適合度差とに基づいて、適合度差が大きいほど精度差が大きくなるように、かつ適合度差が小さいほど精度差が小さくなるように、近似計算の精度を制御する。これにより、進化的計算を用いる際に、適切な計算結果を短時間で得ることができる。具体的には、近似計算により、進化的計算を用いて目的関数を最適化する際の計算時間を低減させることができる。また、進化的計算を用いて目的関数を最適化する際に、複数の個体の順位付けが可能となり、精度の良い計算結果を短時間で取得することができる。
【００８０】
＜第２実施形態の演算処理装置＞
【００８１】
次に、第２実施形態について説明する。第２実施形態の演算処理装置は、繰り返し計算によって目的関数の値が求められる場合、その繰り返し回数を高精度計算よりも少なくすることによって近似計算を行う点が、第１実施形態と異なる。
【００８２】
目的関数の値を求める際に、繰り返し計算が用いられる場合がある。例えば、航空機の主翼の性能値を求める際には、主翼に関する設計値を表す個体に対し、当該主翼の性能値が目的関数の値として計算される。この場合、主翼に関する設計値から当該主翼の性能値を求める際には、流体力学計算を実施する必要がある。流体力学計算を実施する際には、有限要素法等を用いての繰り返し計算が必要となる。
【００８３】
そこで、第２実施形態の第２計算部１６は、繰り返し計算によって目的関数の値が求められる場合、第１計算部１４による繰り返し回数よりも少ない繰り返し回数で目的関数の値を求めることにより、現世代の個体に対する目的関数の値を近似計算する。
【００８４】
また、第２実施形態の精度制御部２２は、近似計算の精度を制御する際に、第２計算部１６による計算で用いられる繰り返し回数を調整することにより、近似計算の精度を制御する。具体的には、精度制御部２２は、繰り返し回数を調整するための精度制御信号を第２計算部１６へ出力することにより、第２計算部１６の近似計算の精度を制御する。
【００８５】
これにより、目的関数の値の計算に繰り返し計算が用いられる場合であっても、進化的計算を用いて目的関数を最適化する際の計算時間を低減させることができる。
【００８６】
以上説明したように、第２実施形態の演算処理装置は、繰り返し計算によって目的関数の値が求められる場合、第１計算部１４による繰り返し回数よりも少ない繰り返し回数で目的関数の値を求めることにより、現世代の個体に対する目的関数の値を近似計算する。また、演算処理装置は、近似計算の精度を制御する際に、第２計算部１６による計算で用いられる繰り返し回数を調整するための精度制御信号を第２計算部１６へ出力することにより、近似計算の精度を制御する。これにより、目的関数の値の計算に繰り返し計算が用いられる場合であっても、進化的計算を用いて目的関数を最適化する際の計算時間を低減させることができる。
【００８７】
＜第３実施形態の演算処理装置＞
【００８８】
次に、第３実施形態について説明する。第３実施形態の演算処理装置は、高精度計算で用いられるビット数よりも少ないビット数で目的関数の値を求めることにより、目的関数の値を近似計算する点が、第１実施形態及び第２実施形態と異なる。
【００８９】
第３実施形態の第２計算部１６は、第１計算部１４による計算で用いられるビット数よりも少ないビット数で表現された数値を用いて目的関数の値を求めることにより、現世代の個体に対する目的関数の値を近似計算する。
【００９０】
例えば、第１計算部１４は、個体に対する目的関数の値を計算する際に、読み込み対象の数値のビット数を３２ビットとする。これに対し、例えば、第２計算部１６は、読み込み対象の数値のビット数を８ビットとする。これにより、第１計算部１４の高精度計算で用いられる数値のビット数に対し、第２計算部１６の近似計算で用いられる数値のビット数は、１／４となり、進化的計算の計算処理が高速化される。また、第２計算部１６の近似計算で用いられる数値のビット数を少なくすることにより、近似計算の計算結果が記憶されるデータ記憶部（図示省略）における記憶の領域を低減させることができる。これにより、データ記憶部（図示省略）により多くの計算結果を格納することができる。
【００９１】
また、第３実施形態の精度制御部２２は、近似計算の精度を制御する際に、第２計算部１６による計算で用いられるビット数を調整することにより、近似計算の精度を制御する。具体的には、精度制御部２２は、第２計算部１６の近似計算に用いられる数値のビット数を調整するための精度制御信号を第２計算部１６へ出力することにより、第２計算部１６の近似計算の精度を制御する。
【００９２】
以上説明したように、第３実施形態に係る演算処理装置は、第１計算部１４による計算で用いられるビット数よりも少ないビット数で表現された数値を用いて目的関数の値を求めることにより、現世代の個体に対する目的関数の値を近似計算する。また、演算処理装置は、近似計算の精度を制御する際に、第２計算部１６による近似計算で用いられるビット数を調整することにより、近似計算の精度を制御する。これにより、進化的計算を用いて目的関数を最適化する際の計算時間を低減させることができ、かつ計算結果を記憶させる記憶の領域を低減させることができる。
【００９３】
＜第４実施形態の演算処理装置＞
【００９４】
次に、第４実施形態について説明する。第４実施形態の演算処理装置は、個体の値から目的関数の値を求めるための学習済みモデルを用いて、個体の値に対する目的関数の値を求めることにより、目的関数の値を近似計算する点が、第１〜第３実施形態と異なる。
【００９５】
第４実施形態においては、個体の値から目的関数の値を求めるための学習済みモデルとして、図１２に示されるようなニューラルネットワークを用いる。第４実施形態の記憶部１５には、個体の値から目的関数の値を求めるための学習済みモデルが格納される。
【００９６】
本実施形態の学習済みモデルは、個体の値から目的関数の値を出力する。なお、図１２に示される学習済みモデルの例は、個体の値が３次元ベクトルによって表され、目的関数の値がスカラー値で表される場合の学習済みモデルの例である。
【００９７】
なお、本実施形態の学習済みモデルは、第１計算部１４によって得られる高精度計算の計算結果を学習用データとして、予め学習されている。なお、学習済みモデルを学習させる際には、既存の学習アルゴリズムが用いられる。
【００９８】
具体的には、第１計算部１４による高精度計算によって、個体の値とその個体に対する目的関数の値との組み合わせを表すデータが得られるため、本実施形態においてはそのデータを学習用データとして設定する。
【００９９】
第４実施形態の精度制御部２２は、近似計算の精度を制御する際に、第２計算部１６による近似計算で用いられる、学習済みモデルの学習に用いられる学習用データの数を増加させることにより、近似計算の精度を制御する。具体的には、精度制御部２２は、学習用データの数を増加させる旨の精度制御信号を第２計算部１６へ出力することにより、第２計算部１６の近似計算の精度を制御する。
【０１００】
第４実施形態の第２計算部１６は、精度制御部２２から精度制御信号を取得した場合、第１計算部１４の高精度計算によって得られた学習用データを用いて、学習済みモデルを再学習させる。学習済みモデルを再学習させることにより、目的関数の値をより高精度に出力する学習済みモデルが得られる。
【０１０１】
第１計算部１４による高精度計算の計算回数が増加すると、より多くの学習用データが得られるため、その学習用データを用いて学習済みモデルを再学習させることにより、学習済みモデルから出力される目的関数の値の精度が向上する。また、高精度計算の計算結果が学習済みモデルへ反映される。
【０１０２】
そして、第２計算部１６は、再学習が行われた学習済みモデルを用いて、個体の値から目的関数の値を近似計算する。これにより、前回までの近似計算よりも精度の高い近似計算が行われる。
【０１０３】
以上説明したように、第４実施形態に係る演算処理装置は、個体の値から目的関数の値を求めるための学習済みモデルを用いて、個体の値に対する目的関数の値を求めることにより、現世代の個体に対する目的関数の値を近似計算する。そして、演算処理装置は、近似計算の精度を制御する際に、第２計算部１６による近似計算で用いられる、学習済みモデルの学習に用いられる学習用データの数を調整することにより、近似計算の精度を制御する。これにより、高精度計算の計算結果が反映された学習済みモデルを利用して、進化的計算を用いて目的関数を最適化する際の計算時間を低減させることができる。
【０１０４】
なお、上記では、各プログラムが記憶部に予め記憶（インストール）されている態様を説明したが、これに限定されない。開示の技術に係るプログラムは、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＵＳＢメモリ等の記録媒体に記録された形態で提供することも可能である。
【０１０５】
本明細書に記載された全ての文献、特許出願及び技術規格は、個々の文献、特許出願及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。
【０１０６】
次に、各実施形態の変形例を説明する。
【０１０７】
上記第１実施形態の第２計算部１６は、記憶部１５のテーブルに格納された各値からの内挿によって、現世代の個体に対する目的関数の値を近似計算する場合を例に説明したが、これに限定されるものではない。例えば、第１実施形態の第２計算部１６は、現世代の個体の値に最も近い値に対応する目的関数の値を用いるようにしてもよい。具体的には、現世代の個体ｘ＝（ｖ’，ｗ’）が生成された場合、要素ｖ’が図５に示されるｖ２に最も近く、かつ要素ｗ’が図５に示されるｗ１に最も近い場合、第２計算部１６は、ｆ（ｘ）＝ｆ１２とするようにしてもよい。また、第１実施形態の第２計算部１６は、特開2001-109732号公報に記載の方法を用いて、近似計算を行うようにしてもよい。
【０１０８】
また、上記第４実施形態では、学習用データの数を増加させ、その学習用データを用いて学習済みモデルを再学習させることにより、近似計算の精度を制御する場合を例に説明したが、これに限定されるものではない。例えば、学習済みモデルのパラメータ数を増加させることにより、近似計算の精度を制御するようにしてもよい。この場合には、例えば、ニューラルネットワークの層数又はニューロン数を増加させることにより、パラメータ数が増加し、より精度の高い近似計算を行うことが可能となる。なお、パラメータ数を増加させた際には、学習用データを用いて学習済みモデルを再度学習させる必要がある。
【０１０９】
また、上記各実施形態の適合度差算出部２０は、第１計算部１４による高精度計算の計算結果に基づき、適合度差ｂを算出する場合を例に説明したが、これに限定されるものではない。適合度差算出部２０は、第２計算部１６による近似計算の計算結果に基づき、適合度差ｂを算出するようにしてもよい。
【０１１０】
また、上記各実施形態の精度制御部２２は、精度差ａの２倍の値２ａが適合度差ｂ以下であるという関係（２ａ≦ｂ）が保たれるように、第２計算部１６の近似計算の精度が制御する場合を例に説明したが、これに限定されるものではない。適合度差ｂが大きいほど精度差ａが大きくなるように、かつ適合度差ｂが小さいほど精度差ａが小さくなるように近似計算の精度を制御するものであれば、どのように近似計算の精度を制御してもよい。例えば、精度制御部２２は、精度差ａが適合度差ｂ以下であるという関係（ａ≦ｂ）が保たれるように、第２計算部１６の近似計算の精度を制御するようにしてもよい。また、精度制御部２２は、精度差ａと適合度差ｂとの間の差が予め設定した閾値以下であるという関係が保たれるように、第２計算部１６の近似計算の精度を制御するようにしてもよい。
【０１１１】
また、上記各実施形態の第２計算部１６は１つである場合を例に説明したが、これに限定されるものではない。例えば、演算処理装置１０は、第２計算部１６を複数備え、近似計算を複数の第２計算部１６によって分担するようにしてもよい。
【０１１２】
また、上記各実施形態においては、世代毎に、適合度差ｂが大きいほど精度差ａが大きくなるように、かつ適合度差ｂが小さいほど精度差ａが小さくなるように、近似計算の精度を制御する場合を例に説明したが、これに限定されるものではない。例えば、予め設定された世代（例えば、第５世代及び第１０世代等）のみ、適合度差ｂが大きいほど精度差ａが大きくなるように、かつ適合度差ｂが小さいほど精度差ａが小さくなるように、近似計算の精度を制御するようにしてもよい。
【０１１３】
以上の各実施形態に関し、更に以下の付記を開示する。
【０１１４】
（付記１）
変数を表す個体に対する目的関数の値を進化的計算によって求める際に、前世代の複数の個体に基づいて、現世代の複数の個体を生成する生成部と、
前記生成部によって生成された現世代の複数の個体のうちの一部の個体の各々について、個体に対する前記目的関数の値を所定の方式で計算する第１計算部と、
前記生成部によって生成された現世代の複数の個体の各々について、個体に対する前記目的関数の値を前記所定の方式よりも低い精度で近似計算する第２計算部と、
前記第１計算部の前記所定の方式又は前記第２計算部の前記近似計算により計算された前記目的関数の値に基づいて、前記目的関数の値の間の差異を表す適合度差を算出する適合度差算出部と、
前記第１計算部により前記所定の方式で計算された前記目的関数の値と、前記第２計算部により前記近似計算された前記目的関数の値との間の差異を表す精度差と、前記適合度差算出部によって算出された前記適合度差とに基づいて、前記適合度差が大きいほど前記精度差が大きくなるように、かつ前記適合度差が小さいほど前記精度差が小さくなるように、前記第２計算部の前記近似計算の精度を制御する精度制御部と、
を含む演算処理装置。
【０１１５】
（付記２）
前記精度差を算出する精度差算出部を更に備える、
付記１に記載の演算処理装置。
【０１１６】
（付記３）
前記精度制御部は、前記近似計算の精度を制御する際に、前記精度差が前記適合度差以下であるという関係が保たれるように、前記適合度差が大きいほど前記精度差が大きくなるように、かつ前記適合度差が小さいほど前記精度差が小さくなるように、前記近似計算の精度を制御する、
付記１又は付記２に記載の演算処理装置。
【０１１７】
（付記４）
前記精度制御部は、前記近似計算の精度を制御する際に、前記精度差の２倍の値が前記適合度差以下であるという関係が保たれるように、前記適合度差が大きいほど前記精度差が大きくなるように、かつ前記適合度差が小さいほど前記精度差が小さくなるように、前記近似計算の精度を制御する、
付記１又は付記２に記載の演算処理装置。
【０１１８】
（付記５）
前記精度差算出部は、前記第１計算部により前記所定の方式で計算された前記目的関数の値と、前記第２計算部により前記近似計算された前記目的関数の値との間の差分のうちの最大値を前記精度差として算出し、
前記適合度差算出部は、現世代の複数の前記個体の各々の前記目的関数の値のうちの最大値と、現世代の複数の前記個体の各々の前記目的関数の値のうちの最小値との間の差分を、前記適合度差として算出する、
付記２に記載の演算処理装置。
【０１１９】
（付記６）
前記第２計算部は、前記個体の値と前記個体の値に対応する前記目的関数の値とが予め対応付けられたテーブルを参照して前記目的関数の値を求めることにより、現世代の前記個体に対する前記目的関数の値を近似計算する、
付記１〜付記５の何れか１項に記載の演算処理装置。
【０１２０】
（付記７）
繰り返し計算によって前記目的関数の値が求められる場合、前記第２計算部は、前記第１計算部による前記所定の方式の計算における繰り返し回数よりも少ない繰り返し回数で前記目的関数の値を求めることにより、現世代の前記個体に対する前記目的関数の値を近似計算し、
前記精度制御部は、前記近似計算の精度を制御する際に、前記第２計算部による前記近似計算で用いられる前記繰り返し回数を調整することにより、前記近似計算の精度を制御する、
付記１〜付記５の何れか１項に記載の演算処理装置。
【０１２１】
（付記８）
前記第２計算部は、前記第１計算部による前記所定の方式の計算で用いられるビット数よりも少ないビット数で表現された数値を用いて前記目的関数の値を求めることにより、現世代の前記個体に対する前記目的関数の値を近似計算し、
前記精度制御部は、前記近似計算の精度を制御する際に、前記第２計算部による前記近似計算で用いられるビット数を調整することにより、前記近似計算の精度を制御する、
付記１〜付記５の何れか１項に記載の演算処理装置。
【０１２２】
（付記９）
前記第２計算部は、前記個体の値から前記目的関数の値を求めるための学習済みモデルを用いて、前記個体の値に対する前記目的関数の値を求めることにより、現世代の前記個体に対する前記目的関数の値を近似計算し、
前記精度制御部は、前記近似計算の精度を制御する際に、前記第２計算部による前記近似計算で用いられる、前記学習済みモデルのパラメータ数又は前記学習済みモデルの学習に用いられる学習用データの数を調整することにより、前記近似計算の精度を制御する、
付記１〜付記５の何れか１項に記載の演算処理装置。
【０１２３】
（付記１０）
前記精度制御部は、世代毎に、前記第２計算部の前記近似計算の精度を制御する、
付記１〜付記９の何れか１項に記載の演算処理装置。
【０１２４】
（付記１１）
前記精度制御部は、現世代の前記個体を繰り返し生成する毎に前記精度を変更するように制御し、変更した前記精度で近似計算を行う、
付記１〜付記１０の何れか１項に記載の演算処理装置。
【０１２５】
（付記１２）
変数を表す個体に対する目的関数の値を進化的計算によって求める際に、前世代の複数の個体に基づいて、現世代の複数の個体を生成し、
生成された現世代の複数の個体のうちの一部の個体の各々について、個体に対する前記目的関数の値を所定の方式で計算し、
生成された現世代の複数の個体の各々について、個体に対する前記目的関数の値を前記所定の方式よりも低い精度で近似計算し、
前記所定の方式又は前記近似計算により計算された前記目的関数の値に基づいて、前記目的関数の値の間の差異を表す適合度差を算出し、
前記所定の方式で計算された前記目的関数の値と、前記近似計算された前記目的関数の値との間の差異を表す精度差と、算出された前記適合度差とに基づいて、前記適合度差が大きいほど前記精度差が大きくなるように、かつ前記適合度差が小さいほど前記精度差が小さくなるように、前記近似計算の精度を制御する
処理をコンピュータに実行させるための演算処理プログラム。
【０１２６】
（付記１３）
前記精度差を算出する処理を更に備える、
付記１２に記載の演算処理プログラム。
【０１２７】
（付記１４）
前記近似計算の精度を制御する際に、前記精度差が前記適合度差以下であるという関係が保たれるように、前記適合度差が大きいほど前記精度差が大きくなるように、かつ前記適合度差が小さいほど前記精度差が小さくなるように、前記近似計算の精度を制御する、
付記１２又は付記１３に記載の演算処理プログラム。
【０１２８】
（付記１５）
前記近似計算の精度を制御する際に、前記精度差の２倍の値が前記適合度差以下であるという関係が保たれるように、前記適合度差が大きいほど前記精度差が大きくなるように、かつ前記適合度差が小さいほど前記精度差が小さくなるように、前記近似計算の精度を制御する、
付記１２又は付記１３に記載の演算処理プログラム。
【０１２９】
（付記１６）
前記所定の方式で計算された前記目的関数の値と、前記近似計算された前記目的関数の値との間の差分のうちの最大値を前記精度差として算出し、
現世代の複数の前記個体の各々の前記目的関数の値のうちの最大値と、現世代の複数の前記個体の各々の前記目的関数の値のうちの最小値との間の差分を、前記適合度差として算出する、
付記１３に記載の演算処理プログラム。
【０１３０】
（付記１７）
前記個体の値と前記個体の値に対応する前記目的関数の値とが予め対応付けられたテーブルを参照して前記目的関数の値を求めることにより、現世代の前記個体に対する前記目的関数の値を近似計算する、
付記１２〜付記１６の何れか１項に記載の演算処理プログラム。
【０１３１】
（付記１８）
繰り返し計算によって前記目的関数の値が求められる場合、前記所定の方式の計算における繰り返し回数よりも少ない繰り返し回数で前記目的関数の値を求めることにより、現世代の前記個体に対する前記目的関数の値を近似計算し、
前記近似計算の精度を制御する際に、前記近似計算で用いられる前記繰り返し回数を調整することにより、前記近似計算の精度を制御する、
付記１２〜付記１６の何れか１項に記載の演算処理プログラム。
【０１３２】
（付記１９）
変数を表す個体に対する目的関数の値を進化的計算によって求める際に、前世代の複数の個体に基づいて、現世代の複数の個体を生成し、
生成された現世代の複数の個体のうちの一部の個体の各々について、個体に対する前記目的関数の値を所定の方式で計算し、
生成された現世代の複数の個体の各々について、個体に対する前記目的関数の値を前記所定の方式よりも低い精度で近似計算し、
前記所定の方式又は前記近似計算により計算された前記目的関数の値に基づいて、前記目的関数の値の間の差異を表す適合度差を算出し、
前記所定の方式で計算された前記目的関数の値と、前記近似計算された前記目的関数の値との間の差異を表す精度差と、算出された前記適合度差とに基づいて、前記適合度差が大きいほど前記精度差が大きくなるように、かつ前記適合度差が小さいほど前記精度差が小さくなるように、前記近似計算の精度を制御する
処理をコンピュータに実行させる情報処理方法。
【０１３３】
（付記２０）
変数を表す個体に対する目的関数の値を進化的計算によって求める際に、前世代の複数の個体に基づいて、現世代の複数の個体を生成し、
生成された現世代の複数の個体のうちの一部の個体の各々について、個体に対する前記目的関数の値を所定の方式で計算し、
生成された現世代の複数の個体の各々について、個体に対する前記目的関数の値を前記所定の方式よりも低い精度で近似計算し、
前記所定の方式又は前記近似計算により計算された前記目的関数の値に基づいて、前記目的関数の値の間の差異を表す適合度差を算出し、
前記所定の方式で計算された前記目的関数の値と、前記近似計算された前記目的関数の値との間の差異を表す精度差と、算出された前記適合度差とに基づいて、前記適合度差が大きいほど前記精度差が大きくなるように、かつ前記適合度差が小さいほど前記精度差が小さくなるように、前記近似計算の精度を制御する
処理をコンピュータに実行させるための演算処理プログラムを記憶した記憶媒体。
【符号の説明】
【０１３４】
１０   演算処理装置
１２   生成部
１４   第１計算部
１５   記憶部
１６   第２計算部
１８   精度差算出部
２０   適合度差算出部
２２   精度制御部
５０   コンピュータ
５１   ＣＰＵ
５２   メモリ
５３   記憶部
５９   記録媒体
６０   演算処理プログラム
６１   生成プロセス
６２   第１計算プロセス
６３   第２計算プロセス
６４   精度差算出プロセス
６５   適合度差算出プロセス
６６   精度制御プロセス
６７   記憶領域
【図１】
2020184268.tif 000003
【図２】
2020184268.tif 000004
【図３】
2020184268.tif 000005
【図４】
2020184268.tif 000006
【図５】
2020184268.tif 000007
【図６】
2020184268.tif 000008
【図７】
2020184268.tif 000009
【図８】
2020184268.tif 000010
【図９】
2020184268.tif 000011
【図１０】
2020184268.tif 000012
【図１１】
2020184268.tif 000013
【図１２】
2020184268.tif 000014