(57)【要約】【課題】効率的であってかつ再現が容易な最適化計算を実現することを可能とする最適化計算方法、最適化計算装置及び最適化計算プログラムを提供する。【解決手段】前世代において選択された個体を親個体として当世代の個体を生成し、当世代の各個体を評価し、前世代の制約条件値と、当世代の個体の半数以上が達成する制約条件暫定値とに基づいて、当世代の制約条件値を算出し、当世代の各個体についての評価の結果が当世代の制約条件値を満たすか否かを判定し、評価の結果が当世代の制約条件値を満たす個体のうち、突然変異を発生させる処理によって生成された各個体の属性に基づいて所定のオフセットを決定し、突然変異を発生させる処理によって次世代の各個体を生成する際に用いる乱数に対して所定のオフセットを付加する。【選択図】図２２
2020106957.tif 000002
【特許請求の範囲】
【請求項１】
複数の個体を世代ごとに進化させながら最適解を求めるアルゴリズムを用いることにより、前世代において選択された個体を親個体として当世代の個体を生成し、
所定の評価関数を用いることにより、前記当世代の各個体を評価し、
前記前世代の制約条件値と、前記当世代の個体の半数以上が達成する制約条件暫定値とに基づいて、前記当世代の制約条件値を算出し、
前記当世代の各個体についての前記評価の結果が前記当世代の制約条件値を満たすか否かを判定し、
前記評価の結果が前記当世代の制約条件値を満たす個体のうち、突然変異を発生させる処理によって生成された各個体の属性に基づいて所定のオフセットを決定し、
前記突然変異を発生させる処理によって次世代の各個体を生成する際に用いる乱数に対して前記所定のオフセットを付加する、
処理をコンピュータに実行させることを特徴とする最適化計算方法。
【請求項２】
請求項１において、
前記属性は、前記突然変異を発生させる処理において各個体に対して付加された前記乱数の符号である、
ことを特徴とする最適化計算方法。
【請求項３】
請求項２において、さらに、
前記当世代の個体のうち、前記突然変異を発生させる処理によって生成された各個体に対応する前記乱数の符号を記憶部に記憶する、
処理をコンピュータに実行させ、
前記決定する処理では、前記記憶部に記憶された前記符号を参照し、前記所定のオフセットの決定を行う、
ことを特徴とする最適化計算方法。
【請求項４】
請求項３において、
前記決定する処理では、
前記記憶部に記憶された前記符号が正である個体のうち、前記当世代の制約条件値を満たす個体の割合である第１割合と、前記記憶部に記憶された前記符号が負である個体のうち、前記当世代の制約条件値を満たす個体の割合である第２割合とを算出し、
前記第１割合が前記第２割合よりも大きい場合、前記所定のオフセットを正のオフセット量からなるオフセットに決定し、前記第２割合が前記第１割合よりも大きい場合、前記所定のオフセットを負のオフセット量からなるオフセットに決定する、
ことを特徴とする最適化計算方法。
【請求項５】
請求項４において、
前記決定する処理では、前記第１割合と前記第２割合との差に応じて、前記所定のオフセットのオフセット量を決定する、
ことを特徴とする最適化計算方法。
【請求項６】
複数の個体を世代ごとに進化させながら最適解を求めるアルゴリズムを用いることにより、前世代において選択された個体を親個体として当世代の個体を生成する個体生成部と、
所定の評価関数を用いることにより、前記当世代の各個体を評価する個体評価部と、
前記前世代の制約条件値と、前記当世代の個体の半数以上が達成する制約条件暫定値とに基づいて、前記当世代の制約条件値を算出する制約条件算出部と、
前記当世代の各個体についての前記評価の結果が前記当世代の制約条件値を満たすか否かを判定する結果判定部と、
前記評価の結果が前記当世代の制約条件値を満たす個体のうち、突然変異を発生させる処理によって生成された各個体の属性に基づいて所定のオフセットを決定するオフセット決定部と、
前記突然変異を発生させる処理によって次世代の各個体を生成する際に用いる乱数に対して前記所定のオフセットを付加するオフセット付加部と、を有する、
ことを特徴とする最適化計算装置。
【請求項７】
複数の個体を世代ごとに進化させながら最適解を求めるアルゴリズムを用いることにより、前世代において選択された個体を親個体として当世代の個体を生成し、
所定の評価関数を用いることにより、前記当世代の各個体を評価し、
前記前世代の制約条件値と、前記当世代の個体の半数以上が達成する制約条件暫定値とに基づいて、前記当世代の制約条件値を算出し、
前記当世代の各個体についての前記評価の結果が前記当世代の制約条件値を満たすか否かを判定し、
前記評価の結果が前記当世代の制約条件値を満たす個体のうち、突然変異を発生させる処理によって生成された各個体の属性に基づいて所定のオフセットを決定し、
前記突然変異を発生させる処理によって次世代の各個体を生成する際に用いる乱数に対して前記所定のオフセットを付加する、
処理をコンピュータに実行させることを特徴とする最適化計算プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、最適化計算方法、最適化計算装置及び最適化計算プログラムに関する。
【背景技術】
【０００２】
従来、遺伝子アルゴリズムのように、複数の解候補（以下、個体とも呼ぶ）を進化させながら最適解を求めるアルゴリズムが提案されている。このようなアルゴリズムでは、各設計変数に制約条件が与えられ、その制約条件に基づいて個体のシミュレーション（以下、評価とも呼ぶ）を行うことにより、目的関数の算出を行うことが一般的である。
【０００３】
これに対し、各個体の制約条件に対する不適合が評価後に判明する問題の場合、評価によって得られる目的関数には、必然的に不適合なものが含まれることになる。そのため、設計者は、この場合、例えば、予め多数の子個体の生成及び評価を行うことによって目的関数をそれぞれ算出し、その中から制約条件（評価後に判明する制約条件）を満たすものを抽出する方法を採用する（例えば、特許文献１及び２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−０８５７２０号公報
【特許文献２】特開２００３−２４８８１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の方法を採用する場合、初期値に対する依存が大きくなる場合や、過剰な数の個体の評価が行われる場合が発生する。また、上記の方法では、トライアンドエラーによる反復作業や設計者の経験に依存する面が多くなる。そのため、設計者は、作業効率や再現性の観点から上記の方法を採用することができない場合がある。
【０００６】
そこで、一つの側面では、本発明は、効率的であってかつ再現が容易な最適化計算を実現することを可能とする最適化計算方法、最適化計算装置及び最適化計算プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
実施の形態の一態様では、複数の個体を世代ごとに進化させながら最適解を求めるアルゴリズムを用いることにより、前世代において選択された個体を親個体として当世代の個体を生成し、所定の評価関数を用いることにより、前記当世代の各個体を評価し、前記前世代の制約条件値と、前記当世代の個体の半数以上が達成する制約条件暫定値とに基づいて、前記当世代の制約条件値を算出し、前記当世代の各個体についての前記評価の結果が前記当世代の制約条件値を満たすか否かを判定し、前記評価の結果が前記当世代の制約条件値を満たす個体のうち、突然変異を発生させる処理によって生成された各個体の属性に基づいて所定のオフセットを決定し、前記突然変異を発生させる処理によって次世代の各個体を生成する際に用いる乱数に対して前記所定のオフセットを付加する、処理をコンピュータに実行させる。
【発明の効果】
【０００８】
一つの側面によれば、効率的であってかつ再現が容易な最適化計算を実現することを可能とする。
【図面の簡単な説明】
【０００９】
【図１】図１は、情報処理システム１０の構成について説明する図である。
【図２】図２は、最適化計算処理によって解の算出が行われる問題の具体例について説明する図である。
【図３】図３は、最適化計算処理によって解の算出が行われる問題の具体例について説明する図である。
【図４】図４は、最適化計算処理によって解の算出が行われる問題の具体例について説明する図である。
【図５】図５は、最適化計算処理によって解の算出が行われる問題の具体例について説明する図である。
【図６】図６は、最適化計算処理によって解の算出が行われる問題の具体例について説明する図である。
【図７】図７は、情報処理装置１のハードウエア構成を説明する図である。
【図８】図８は、情報処理装置１の機能のブロック図である。
【図９】図９は、第１の実施の形態における最適化計算処理の概略を説明するフローチャート図である。
【図１０】図１０は、第１の実施の形態における最適化計算処理の詳細を説明するフローチャート図である。
【図１１】図１１は、第１の実施の形態における最適化計算処理の詳細を説明するフローチャート図である。
【図１２】図１２は、第１の実施の形態における最適化計算処理の詳細を説明するフローチャート図である。
【図１３】図１３は、第１の実施の形態における最適化計算処理の詳細を説明するフローチャート図である。
【図１４】図１４は、第１の実施の形態における最適化計算処理の詳細を説明するフローチャート図である。
【図１５】図１５は、符号情報１３２の具体例を説明する図である。
【図１６】図１６は、符号情報１３２の具体例を説明する図である。
【図１７】図１７は、Ｓ３１の処理の具体例を説明する図である。
【図１８】図１８は、Ｓ３２の処理の具体例を説明する図である。
【図１９】図１９は、Ｓ３４の処理の具体例を説明する図である。
【図２０】図２０は、設計変数Ａに対応するオフセットηＡのオフセット量の決定方法の具体例について説明する図である。
【図２１】図２１は、Ｓ５３の処理の詳細について説明する図である。
【図２２】図２２は、本実施の形態における最適化計算処理をインダクタコアの形状最適化に適用した場合の結果を説明する図である。
【発明を実施するための形態】
【００１０】
［情報処理システムの構成］
初めに、情報処理システム１０の構成について説明を行う。図１は、情報処理システム１０の構成について説明する図である。
【００１１】
図１に示す情報処理システム１０は、情報処理装置１（以下、最適化計算装置１とも呼ぶ）と、操作端末２とを有する。操作端末２は、ネットワークＮＷを介することによって情報処理装置１とアクセスが可能である。
【００１２】
操作端末２は、例えば、１台以上のＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）であり、設計者が情報処理装置１に対して操作を行う端末である。
【００１３】
情報処理装置１は、例えば、１台以上の物理マシンから構成され、遺伝子アルゴリズムを用いることによって所定の問題の解を算出する処理（以下、最適化計算処理とも呼ぶ）を行う装置である。具体的に、情報処理装置１は、例えば、各個体の制約条件に対する不適合が評価後に判明する問題の解（最適解）を、制約条件を世代ごとに動的に変化させていくことによって取得する。
【００１４】
［問題の具体例］
次に、最適化計算処理によって解の算出が行われる問題の具体例について説明を行う。図２から図６は、最適化計算処理によって解の算出が行われる問題の具体例について説明する図である。具体的に、図２から図６は、磁気デバイスの一つであるインダクタコアの形状を最適化する問題の具体例について説明を行う。
【００１５】
初めに、インダクタコアの一例について説明を行う。図２から図５は、インダクタコアの一例について説明する図である。具体的に、図２は、インダクタコアの斜視図であり、図３は、インダクタコアの正面図である。また、図４は、図２及び図３に示すＥ型コアの平面図及び正面図であり、図５は、図２及び図３に示すＩ型コアの平面図及び正面図である。
【００１６】
図２から図５に示すように、インダクタコア２０は、Ｅ型コア２２及びＩ型コア２３がフェライト系の磁性材料で形成され、中央脚の周りに巻かれたコイル２１に電流を流すことによって磁束が発生し、電気回路で必要とされるインダクタンス（Ｌ値）を生み出す。
【００１７】
インダクタコア２０は、回路の一部品として用いられる。そのため、インダクタコア２０には、所望のインダクタンス値を満たすことが要求される他、所定の寸法内に収まることや、磁性体内部での損失及び体積（重量）がなるべく小さいことが要求される。情報処理装置１は、例えば、インダクタコア２０の設計最適化問題を解き、Ｅ型コア２２及びＩ型コア２３の寸法（図４及び図５に示すＡからＪ）の上下限値とインダクタンスの下限値とを制約条件としながら、損失と体積との最小値を求める。そのため、この例では、損失と体積とが目的関数となる。
【００１８】
次に、インダクタコアの最適化計算処理（寸法最適化処理）について説明を行う。図６は、インダクタコアの寸法最適化処理について説明する図である。具体的に、図６は、第ｉ世代において行われる処理を説明する図である。なお、情報処理装置１は、例えば、３次元モデルをベースにした磁界シミュレーションを活用して最適設計を行う。
【００１９】
情報処理装置１は、図６に示すように、第ｉ世代の個体を生成し（図６の（１））、設計変数として各個体の寸法であるＡからＪを与える（図６の（２））。そして、情報処理装置１は、各個体の寸法が制約条件から外れている場合、寸法の上下限値でリミットをかけることによって、制約条件による寸法パラメータの修正を行う（図６の（３））。この結果、設計変数は、Ａ´からＪ´に変更される（図６の（４））。なお、この時点で、目的関数の一つである体積（Ｖ）については算出が可能となる（図６の（５））。
【００２０】
続いて、情報処理装置１は、磁界シミュレーションを行うことによって、制約条件の一つであるインダクタンス（Ｌ）と、目的関数である損失（Ｐ）とを算出する（図６の（６）及び（７））。
【００２１】
その後、情報処理装置１は、目的関数の一つである損失（Ｐ）について、磁界シミュレーションを実行することによって判明した制約条件の一つであるインダクタンス（Ｌ）による適用判定を行う（図６の（８））。具体的に、情報処理装置１は、第ｉ世代の各個体について、シミュレーションによって算出されたインダクタンス値が、予め設定された制約条件値Ｌｉ以上であるか否かを判定する。
【００２２】
その結果、情報処理装置１は、シミュレーションによって算出されたインダクタンス値が制約条件値Ｌｉ以上であると判定した場合、その個体を適用と判定する。一方、情報処理装置１は、シミュレーションによって算出されたインダクタンス値が制約条件値Ｌｉ未満であると判定した場合、その個体を不適用と判定する。
【００２３】
ここで、図２から図６で説明した方法の場合、設計者は、制約条件を満たす個体の数を必要数に到達させる必要性から、予め多数の子個体の生成及び評価を行う必要がある。そのため、設計者は、結果として、過剰な数の個体の評価が行う場合が発生する。また、この方法では、トライアンドエラーによる反復作業や設計者の経験に依存する面が多くなる。したがって、設計者は、作業効率や再現性の観点からこの方法を採用することができない場合がある。
【００２４】
そこで、本実施の形態における情報処理装置１は、複数の個体を世代ごとに進化させながら最適解を求める遺伝的アルゴリズム等のアルゴリズムを用いることにより、前世代において選択された個体を親個体として当世代の個体を生成する。そして、情報処理装置１は、所定の評価関数を用いることにより、当世代の各個体を評価する。その後、前世代の制約条件値と、当世代の個体の半数以上が達成する制約条件暫定値とに基づいて、当世代の制約条件値を算出する。
【００２５】
すなわち、遺伝的アルゴリズムでは、個体群（例えば、数十〜数百個の個体で構成された個体群）を各世代で生成し、比較的優れたものの中から交叉や突然変異を施すことで、次世代の個体を生成する。そのため、遺伝的アルゴリズムでは、必ずしも全個体が制約条件を満たす必要はない。しかしながら、遺伝的アルゴリズムでは、少なくとも個体群の半数以上が制約条件を満たすような条件で世代交代を進めていかなければ、確率的に、制約条件のクリアと目的関数の最小化を両立させることが難しくなる。言い換えれば、遺伝的アルゴリズムでは、不適合の割合が大きい場合、制約条件を満たしつつ最適解を得ることが困難となる。そこで、情報処理装置１は、ある世代の過半数の個体が制約条件を満たしている場合、突然変異が完全な乱数発生によるものであれば、確率的に制約条件を満たす方向へ次世代の個体群が進化していくことを利用し、制約条件を動的に変化させながら世代ごとに設定する。
【００２６】
さらに、本実施の形態における情報処理装置１は、当世代の各個体についての評価の結果が当世代の制約条件値を満たすか否かを判定し、評価の結果が当世代の制約条件値を満たす個体のうち、突然変異（以下、突現変異処理と呼ぶ）によって生成された各個体の属性に基づいてオフセット（以下、所定のオフセットとも呼ぶ）を決定する。そして、情報処理装置１は、突然変異によって次世代の各個体を生成する際に用いる乱数に対して所定のオフセットを付加する。
【００２７】
すなわち、情報処理装置１は、突然変異を施すことによって子個体を生成する際に、制約条件を満たす確率がより高くなる分布を作り出す乱数を用いる。
【００２８】
これにより、情報処理装置１は、各個体の制約条件に対する不適合が評価後に判明する問題に対しても、効率的であってかつ再現が容易な最適化計算を行うことが可能になる。
【００２９】
［情報処理システムのハードウエア構成］
次に、情報処理システム１０のハードウエア構成について説明する。図７は、情報処理装置１のハードウエア構成を説明する図である。
【００３０】
情報処理装置１は、図７に示すように、プロセッサであるＣＰＵ１０１と、メモリ１０２と、外部インターフェース（Ｉ／Ｏユニット）１０３と、記憶媒体１０４とを有する。各部は、バス１０５を介して互いに接続される。
【００３１】
記憶媒体１０４は、例えば、最適化計算処理を行うためのプログラム１１０を記憶するプログラム格納領域（図示しない）を有する。また、記憶媒体１０４は、例えば、最適化計算処理を行う際に用いられる情報を記憶する記憶部１３０（以下、情報格納領域１３０とも呼ぶ）を有する。なお、記憶媒体１０４は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｋｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）であってよい。
【００３２】
ＣＰＵ１０１は、記憶媒体１０４からメモリ１０２にロードされたプログラム１１０を実行して最適化計算処理を行う。
【００３３】
外部インターフェース１０３は、例えば、ネットワークＮＷを介して操作端末２と通信を行う。
【００３４】
［情報処理システムの機能］
次に、情報処理システム１０の機能について説明を行う。図８は、情報処理装置１の機能のブロック図である。
【００３５】
情報処理装置１は、図７に示すように、例えば、ＣＰＵ１０１やメモリ１０２等のハードウエアとプログラム１１０とが有機的に協働することにより、情報受付部１１１と、情報管理部１１２と、個体生成部１１３と、事前処理部１１４と、個体評価部１１５と、制約条件算出部１１６と、結果判定部１１７と、評価変更部１１８と、解選択部１１９と、オフセット決定部１２０と、オフセット付加部１２１と、終了判定部１２２とを含む各種機能を実現する。
【００３６】
また、情報処理装置１は、例えば、図８に示すように、集団データ１３１と、符号情報１３２とを情報格納領域１３０に記憶する。
【００３７】
情報受付部１１１は、例えば、設計者が操作端末２を介して入力した最適化計算処理の開始指示を受け付ける。また、情報受付部１１１は、例えば、設計者が操作端末２を介して入力した集団データ１３１を受け付ける。さらに、情報受付部１１１は、例えば、設計者が操作端末２を介して入力した各種情報（最適化計算に用いられる制約条件やパラメータ等）を受け付ける。そして、情報管理部１１２は、例えば、情報受付部１１１が受け付けた集団データ１３１や各種パラメータ（図示しない）を情報格納領域１３０に記憶する。
【００３８】
個体生成部１１３は、遺伝的アルゴリズムを用いることにより、前世代において選択された個体を親個体として当世代の個体を生成する。すなわち、個体生成部１１３は、世代ごとに、遺伝的アルゴリズムにおける遺伝子操作によって新たな個体を生成する。なお、遺伝的操作は、例えば、比較的優れた個体に対して交叉や突然変異を施す操作である。
【００３９】
具体的に、個体生成部１１３は、情報格納領域１３０に記憶された集団データ１３１の中からランダムに個体（初期個体）を選択し、選択した個体に対して遺伝的操作を行うことにより、所定数の第１世代の個体を生成する。
【００４０】
また、個体生成部１１３は、第２世代以降において、遺伝的操作対象となる親個体を、前世代において選択された個体の中から選択する。個体生成部１１３は、例えば、バイナリトーナメント選択を行うことにより、前世代において選択された個体から親個体を選択する。バイナリトーナメントは、前世代において選択された個体から一定数の個体をランダムに取り、その中で最も適用度の高いものを親個体として選択する処理である。そして、個体生成部１１３は、選択した親個体に対して、遺伝的操作である交叉や突然変異を施して子個体を生成する。その後、情報管理部１１２は、個体生成部１１３が生成した子個体のうち、突然変異を施して生成した子個体を生成する際に用いた乱数の符号を示す情報（以下、符号情報１３２とも呼ぶ）を情報格納領域１３０に記憶する。符号情報１３２の具体例については後述する。
【００４１】
事前処理部１１４は、制約条件のうちの予め設定されている制約条件（以下、事前制約条件とも呼ぶ）に適合するように、当世代の各個体（例えば、各個体の設計変数）を修正する。
【００４２】
個体評価部１１５は、所定の関数を用いることによって、当世代の各個体を評価する。具体的に、個体評価部１１５は、シミュレーション等を行うことによって、当世代の各個体の特性を評価する。各個体の特性は、例えば、最適化計算処理における目的関数に対応する特性値や制約条件に対応する特性値である。
【００４３】
制約条件算出部１１６は、当世代の一つ前の世代の制約条件値と、当世代の個体の半数以上が達成する制約条件暫定値とに基づいて、当世代の制約条件値を設定する。
【００４４】
また、制約条件算出部１１６は、当世代が第１世代である場合、第１世代の制約条件値として、制約条件暫定値よりも小さい値を設定する。すなわち、制約条件算出部１１６は、この場合、制約条件を満たす個体の割合がより増えるように制約条件値を設定する。
【００４５】
結果判定部１１７は、当世代の各個体について、評価結果が当世代の制約条件値を満たすか否かを判定する。
【００４６】
評価変更部１１８は、当世代の制約条件値を満たさない個体の評価結果を低下させる変更を行う。すなわち、評価変更部１１８は、結果判定部１１７が当世代の制約条件値を満たさないと判定した個体の淘汰を促進するために、この個体の評価結果が低下させる。具体的に、評価変更部１１８は、例えば、制約条件を満たさないと判定された個体のランキングまたは評価値を低下させる。なお、評価変更部１１８は、制約条件値を満たさないと判定された個体を削除するものであってもよい。
【００４７】
解選択部１１９は、例えば、結果判定部１１７による処理が実行された個体（評価変更部１１８による処理がさらに実行された個体を含む）の中から、解候補となる個体を選択する。具体的に、解選択部１１９は、例えば、結果判定部１１７による処理が実行された個体と、当世代の一つ前世代でパレート解候補とされた個体との中からパレート解を選択し、端切り処理による解候補選択またはランキングによる解候補選択を行う。
【００４８】
オフセット決定部１２０は、評価結果が当世代の制約条件値を満たすと結果判定部１１７が判定した個体のうち、個体生成部１１３が突然変異によって生成した各個体の属性に基づいて所定のオフセットを決定する。各個体の属性は、例えば、突然変異において各個体に対して付加された乱数の符号である。オフセット決定部１２０による処理の詳細については後述する。
【００４９】
オフセット付加部１２１は、突然変異によって次世代の各個体を生成する際に用いる乱数に対して所定のオフセットを付加する。オフセット決定部１２０による処理の詳細については後述する。
【００５０】
終了判定部１２２は、最適化計算処理の終了条件を満たすか否かを判定する。具体的に、終了判定部１２２は、処理を行った当世代が世代数の上限に達したか否かを判定する。
【００５１】
［第１の実施の形態の概略］
次に、第１の実施の形態の概略について説明する。図９は、第１の実施の形態における最適化計算処理の概略を説明するフローチャート図である。具体的に、図９は、第ｉ世代において行われる処理を説明する図である。
【００５２】
情報処理装置１は、図９に示すように、第ｉ世代についての最適化計算処理を実行するタイミングになるまで待機する（Ｓ１のＮＯ）。具体的に、情報処理装置１は、例えば、設計者が操作端末２を介して最適化計算処理の実行を開始する旨を入力するまで待機する。また、情報処理装置１は、例えば、第ｉ−１世代についての最適化計算処理の実行が完了するまで待機する。
【００５３】
そして、第ｉ世代についての最適化計算処理を実行するタイミングになった場合（Ｓ１のＹＥＳ）、情報処理装置１は、前世代において選択された個体を親個体として当世代の個体を生成する（Ｓ２）。
【００５４】
続いて、情報処理装置１は、所定の評価関数を用いることにより、当世代の各個体を評価する（Ｓ３）。
【００５５】
次に、情報処理装置１は、前世代の制約条件値と、当世代の個体の半数以上が達成する制約条件暫定値とに基づいて、当世代の制約条件値を算出する（Ｓ４）。
【００５６】
そして、情報処理装置１は、当世代の各個体についての評価の結果が当世代の制約条件値を満たすか否かを判定し、評価の結果が当世代の制約条件値を満たす個体のうち、突然変異によって生成された各個体の属性に基づいて所定のオフセットを決定する（Ｓ５）。
【００５７】
その後、情報処理装置１は、突然変異によって次世代の各個体を生成する際に用いる乱数に対して所定のオフセットを付加する（Ｓ６）。
【００５８】
これにより、情報処理装置１は、各個体の制約条件に対する不適合が評価後に判明する問題に対しても、効率的であってかつ再現が容易な最適化計算を行うことが可能になる。
【００５９】
［第１の実施の形態の詳細］
次に、第１の実施の形態の詳細について説明する。図１０から図１４は、第１の実施の形態における最適化計算処理の詳細を説明するフローチャート図である。また、図１５から図２２は、第１の実施の形態における最適化計算処理の詳細を説明する図である。なお、以下、処理が行われている世代を示す変数をｉとし、ｉの初期値が１であるものとして説明を行う。
【００６０】
情報処理装置１の情報受付部１１１は、図１０に示すように、最適化計算処理実行タイミングになるまで待機する（Ｓ１１のＮＯ）。最適化計算処理実行タイミングは、例えば、設計者が操作端末２を介して最適化計算処理の実行を開始する旨の入力を行ったタイミングであってよい。
【００６１】
そして、最適化計算処理実行タイミングになった場合（Ｓ１１のＹＥＳ）、情報処理装置１の個体生成部１１３は、情報格納領域１３０に記憶された集団データ１３１に含まれる初期個体から第１世代の評価個体を生成する（Ｓ１２）。
【００６２】
具体的に、個体生成部１１３は、情報格納領域１３０に記憶された集団データ１３１の中からランダムに個体を選択し、選択した個体に対して遺伝的操作を行うことにより、所定数の第１世代の個体を生成する。さらに具体的に、個体生成部１１３は、例えば、集団データ１３１の中から選択した１つの個体に対して遺伝的操作を行うことにより、第１世代の個体として１００個の個体を生成する。なお、ここでの乱数発生は０中心であり、確率的に正値と負値とが同数になるように実施される。
【００６３】
その後、情報管理部１１２は、Ｓ１２の処理で第１世代の個体を生成する際に用いた乱数の符号情報１３２を設計変数ごとにソートして情報格納領域１３０に記憶する（Ｓ１３）。
【００６４】
具体的に、情報管理部１１２は、Ｓ１２の処理で生成された第１世代の個体のうち、突然変異を施すことによって生成された個体を特定する。そして、情報管理部１１２は、特定した個体の生成に用いられた乱数の符号情報１３２を情報格納領域１３０に記憶する。
【００６５】
また、情報管理部１１２は、Ｓ１２の処理で生成した第１世代の個体を解候補（図示しない）として情報格納領域１３０に記憶する（Ｓ１３）。以下、符号情報１３２の具体例について説明を行う。
【００６６】
［符号情報の具体例］
図１５及び図１６は、符号情報１３２の具体例を説明する図である。具体的に、図１５は、設計変数ごとにソートする前の符号情報１３２（個体ごとに集計された状態の符号情報１３２）の具体例を説明する図である。また、図１６は、設計変数ごとにソートした後の符号情報１３２（Ｓ１３の処理で情報格納領域１３０に記憶される状態の符号情報１３２）の具体例を説明する図である。
【００６７】
初めに、設計変数ごとにソートする前の符号情報１３２の具体例について説明を行う。
【００６８】
図１５に示す符号情報１３２は、各個体を識別する情報が記憶される「個体」と、各個体の設計変数を識別する情報が記憶される「設計変数」と、各設計変数に対応する乱数符号が記憶される「乱数符号」とを項目として有する。
【００６９】
具体的に、図１５に示す符号情報１３２において、例えば、「個体」が「Ａ１」であって「設計変数」が「Ｘ１（Ａ）」である情報（１行目の情報）には、「乱数符号」として「＋」が記憶されている。すなわち、この情報は、個体Ａ１の設計変数Ａに与えられた乱数の符号が正であることを示している。
【００７０】
また、図１５に示す符号情報１３２において、例えば、「個体」が「Ａ１」であって「設計変数」が「Ｘ１（Ｂ）」である情報（２行目の情報）には、「乱数符号」として「−」が記憶されている。すなわち、この情報は、個体Ａ１の設計変数Ｂに与えられた乱数の符号が負であることを示している。
【００７１】
さらに、図１５に示す符号情報１３２において、例えば、「個体」が「Ａ２」であって「設計変数」が「Ｘ２（Ａ）」である情報（５行目の情報）には、「乱数符号」として「−」が記憶されている。すなわち、この情報は、個体Ａ２の設計変数Ａに与えられた乱数の符号が負であることを示している。図１５に含まれる他の情報についての説明は省略する。
【００７２】
次に、設計変数ごとにソートした後の符号情報１３２の具体例について説明を行う。
【００７３】
図１６に示す符号情報１３２は、各個体の設計変数を識別する情報が記憶される「設計変数」と、各設計変数に対応する乱数符号が記憶される「乱数符号」とを項目として有する。
【００７４】
具体的に、図１６に示す符号情報１３２において、例えば、「設計変数」が「Ｘ１（Ａ）」である情報（１行目の情報）には、「乱数符号」として「＋」が記憶されている。すなわち、この情報は、個体Ａ１の設計変数Ａに与えられた乱数の符号が正であることを示している。
【００７５】
また、図１６に示す符号情報１３２において、例えば、「設計変数」が「Ｘ２（Ａ）」である情報（２行目の情報）には、「乱数符号」として「−」が記憶されている。すなわち、この情報は、個体Ａ２の設計変数Ａに与えられた乱数の符号が負であることを示している。
【００７６】
さらに、図１６に示す符号情報１３２において、例えば、「設計変数」が「Ｘ１（Ｂ）」である情報（５行目の情報）には、「乱数符号」として「−」が記憶されている。すなわち、この情報は、個体Ａ１の設計変数Ｂに与えられた乱数の符号が負であることを示している。図１６に含まれる他の情報についての説明は省略する。
【００７７】
図１０に戻り、情報処理装置１の事前処理部１１４は、Ｓ１２の処理または後述するＳ５４の処理で生成した第ｉ世代の個体に対して事前処理を行う（Ｓ１４）。具体的に、事前処理部１１４は、寸法制約等が予め設定されている事前制約条件に適合するように、第ｉ世代の各個体の設計変数を修正する。
【００７８】
そして、情報処理装置１の個体評価部１１５は、Ｓ１４の処理で事前処理を行った第ｉ世代の個体に対して評価処理を行う（Ｓ１５）。具体的に、個体評価部１１５は、例えば、シミュレーションを行うことによって第ｉ世代の各個体の特性を評価する。
【００７９】
続いて、情報処理装置１の制約条件算出部１１６は、Ｓ１５の処理で評価処理を行った第ｉ世代の個体の半数以上が達成する制約条件暫定値Ｌｉ´を特定する（Ｓ１６）。
【００８０】
次に、制約条件算出部１１６は、図１１に示すように、最適化計算処理において実行されている処理が第１世代についての処理であるか否かを判定する（Ｓ２１）。
【００８１】
その結果、最適化計算処理において実行されている処理が第１世代についての処理でないと判定した場合（Ｓ２１のＹＥＳ）、制約条件算出部１１６は、下記の式（１）を用いて第ｉ世代の制約条件値Ｌｉを特定する（Ｓ２２）。
【００８２】
Ｌｉ＝（１−Ｋ）×Ｌｉ−１＋Ｋ×Ｌｉ´      ・・・（式１）
【００８３】
上記の以下の式（１）において、Ｌｉは、当世代（第ｉ世代）の制約条件値を示し、Ｌｉ−１は、一つ前の世代（第ｉ−１世代）の制約条件値を示し、Ｌｉ´は、当世代（第ｉ世代）の個体の半数以上が達成する制約条件暫定値を示し、Ｋは、進化の進度に関する任意の係数（０＜Ｋ≦１）を示している。
【００８４】
すなわち、制約条件算出部１１６は、次世代の個体生成に用いる個体の半数以上が達する値を用いることにより、制約条件を世代ごとに動的に変更する。
【００８５】
ここで、半数以上の個体が制約条件に適合している場合、次世代の個体は、確率的に制約条件を満たす方向に進化していく。そのため、制約条件算出部１１６は、計算量とのトレードオフを取って、例えば、当世代の個体の６０（％）以上が達成する値や当世代の個体の７０（％）以上が達成する値を制約条件暫定値Ｌｉ´としてもよい。
【００８６】
また、係数Ｋは、例えば、情報処理装置１のリソースや計算時間との関係に基づいて決定されるものであってよい。また、係数Ｋは、全ての世代で同一に設定されるものであってもよいし、世代ごとに更新されるものであってもよい。
【００８７】
なお、係数Ｋが大きい場合、個体の進化は速く進み、この値が小さい場合、個体の進化は緩やかに進む。具体的に、例えば、係数Ｋを０．３程度に抑えた場合には、安定した進化、すなわち、より制約条件を満たす個体の割合を増やすように進化を進めることが見込める。一方、例えば、係数Ｋを０．７程度まで上げた場合には、進化が早く進むようになり、計算時間を短縮することが見込める。
【００８８】
図１１に戻り、最適化計算処理において実行されている処理が第１世代についての処理であると判定した場合（Ｓ２１のＮＯ）、制約条件算出部１１６は、Ｓ１６の処理で特定した制約条件暫定値Ｌｉ´よりも小さい値を第１世代の制約条件値Ｌｉとして特定する（Ｓ２３）。
【００８９】
続いて、制約条件算出部１１６は、Ｓ２２の処理またはＳ２３の処理で特定された第ｉ世代の制約条件値Ｌｉが最終目標とする制約条件値Ｌｔｇｔ（以下、目標制約値Ｌｔｇｔとも呼ぶ）よりも大きいか否かを判定する（Ｓ２４）。
【００９０】
その結果、第ｉ世代の制約条件値Ｌｉが目標制約値Ｌｔｇｔよりも大きいと判定した場合（Ｓ２４のＹＥＳ）、制約条件算出部１１６は、目標制約値Ｌｔｇｔを第ｉ世代の制約条件値Ｌｉとして特定する（Ｓ２５）。
【００９１】
一方、第ｉ世代の制約条件値Ｌｉが目標制約値Ｌｔｇｔよりも大きくないと判定した場合（Ｓ２４のＮＯ）、または、Ｓ２５の処理の後、情報処理装置１の結果判定部１１７は、図１２に示すように、Ｓ１５の処理で評価処理を行った第ｉ世代の個体のそれぞれについて、Ｓ２２の処理等で特定した制約条件値Ｌｉを満たすか否かを判定する（Ｓ３１）。以下、Ｓ３１の処理の具体例について説明を行う。
【００９２】
［Ｓ３１の処理の具体例］
図１７は、Ｓ３１の処理の具体例を説明する図である。図１７に示す例は、図１６で説明した符号情報１３２に、Ｓ３１の処理の結果を示す情報が記憶される項目である「結果」が付加された情報である。なお、「結果」には、制約条件値Ｌｉを満たす個体であることを示す「〇」、または、制約条件値Ｌｉを満たさない個体であることを示す「×」が設定される。
【００９３】
具体的に、図１７に示す例において、「設計変数」に「Ｘ２（Ａ）」が記憶されている情報（２行目の情報）や「設計変数」に「Ｘ２（Ｂ）」が記憶されている情報（６行目の情報）には、「結果」として「×」がそれぞれ記憶されている。すなわち、図１７に示す例は、第ｉ世代の個体のうち、個体Ａ２が制約条件を満たさない個体であったことを示している。
【００９４】
図１２に戻り、情報処理装置１の評価変更部１１８は、Ｓ１５の処理で評価処理を行った第ｉ世代の個体のうち、Ｓ３１の処理で制約条件値Ｌｉを満たさないと判定した個体の評価について評価変更処理を行う。（Ｓ３２）。
【００９５】
具体的に、評価変更部１１８は、Ｓ３１の処理で制約条件値Ｌｉを満たさないと判定した個体の評価結果を低下させる変更を行う。以下、Ｓ３２の処理の具体例について説明を行う。
【００９６】
［Ｓ３２の処理の具体例］
図１８は、Ｓ３２の処理の具体例を説明する図である。以下、２目的最適化のアルゴリズムとしてＳＰＥＡ２（Ｓｔｒｅｎｇｔｈ  Ｐａｒｅｔｏ  Ｅｖｏｌｕｔｉｏｎａｒｙ  Ａｌｇｏｒｉｔｈｍ−２）を用いた場合について説明を行う。多目的最適化アルゴリズムでは、一般的に、解にランキングを付与することによって適合度判定を行う。この場合、数字が小さいほうが高ランクとなり、０がパレート最適解となる。
【００９７】
図１８（Ａ）は、磁界シミュレーションの直後に、目的関数をｘ軸（損失）、ｙ軸（体積）として個体のプロットを行った場合の結果を説明する図である。図１８（Ａ）に示す例において、網掛けのプロットは、Ｓ３１の処理で制約条件値Ｌｉを満たさないと判定した個体を示しており、白抜きのプロットは、Ｓ３１の処理で制約条件値Ｌｉを満たすと判定した個体を示している。また、図１８（Ａ）に示す例において、各プロットの右肩には、評価値のランキングを示す数字が記載されている。
【００９８】
図１８（Ａ）に示すように、ＳＰＥＡ２では、左下に他の解が存在しない（少ない）個体（例えば、個体Ｉ１やＩ２）ほど、高評価となりランキングと呼ばれる指標が小さい値となる。しかしながら、例えば、個体Ｉ１やＩ２は、制約条件値Ｌｉを満たしていないにもかかわらず、ランキングが高位になってしまう。これに対し、例えば、個体Ｉ４は、制約条件値Ｌｉを満たしているにもかかわらず過小評価となる。
【００９９】
そこで、評価変更部１１８は、図１８（Ｂ）に示すように、例えば、制約条件を満たさなかった個体を対象外にする。具体的には、情報処理装置１は、制約条件値Ｌｉを下回る個体を除外した後に、残った個体に対してランキングの付与を行う。具体的に、評価変更部１１８は、図１８（Ｂ）に示すように、インダクタンスが制約条件値Ｌｉ未満である個体Ｉ１，Ｉ２，Ｉ３を除外する。この結果、図１８（Ｂ）に示す例では、インダクタンスが制約条件値Ｌｉ以上である個体Ｉ４，Ｉ６，Ｉ７がパレート最適解となる。
【０１００】
このように、評価変更部１１８は、制約条件を満たさなかった個体に対して意図的に大きな（悪い評価）を与えることで、個体の淘汰を促進させる。
【０１０１】
図１２に戻り、情報処理装置１のオフセット決定部１２０は、情報格納領域１３０に記憶された符号情報１３２を参照し、Ｓ１５の処理で評価処理を行った個体のうち、Ｓ２２の処理等で特定した制約条件値Ｌｉを満たすと判定した個体についての符号を設計変数ごとに特定する（Ｓ３３）。
【０１０２】
そして、オフセット決定部１２０は、Ｓ３３の処理で特定した符号の割合から設計変数ごとのオフセットを決定する（Ｓ３４）。以下、Ｓ３４の処理の具体例について説明を行う。
【０１０３】
［Ｓ３４の処理の具体例］
図１９は、Ｓ３４の処理の具体例を説明する図である。図１９に示す例は、図１７で説明した情報に、Ｓ３１の処理で制約条件値Ｌｉを満たすと判定した個体の設計変数であって、Ｓ３３の処理で特定された符号が正である設計変数の個数を設計変数ごとに記憶する「正値数」と、Ｓ３１の処理で制約条件値Ｌｉを満たすと判定した個体の設計変数であって、Ｓ３３の処理で特定された符号が負である設計変数の個数を設計変数ごとに記憶する「負値数」とが付加された情報である。
【０１０４】
なお、以下、突然変異によって生成される子個体の数がＮ（個）であるものとし、設計変数Ａから設計変数Ｊにそれぞれ与えた乱数の正値の割合がαＡ〜Ｊであるものとして説明を行う。すなわち、以下、例えば、設計変数Ａに与えた正値の乱数の個数がαＡＮ（個）であり、設計変数Ａに与えた負値の乱数の個数が（１−αＡ）Ｎ（個）であるものとして説明を行う。
【０１０５】
具体的に、図１９に示す情報において、設計変数Ａに対応する情報（例えば、Ｘ１（Ａ）やＸ２（Ａ））が「設計変数」に記憶された情報の「正値数」及び「負値数」には、それぞれ「ＰＡ」及び「ＱＡ」が記憶されている。
【０１０６】
また、図１９に示す情報において、設計変数Ｂに対応する情報（例えば、Ｘ１（Ｂ）やＸ２（Ｂ））が「設計変数」に記憶された情報の「正値数」及び「負値数」には、それぞれ「ＰＢ」及び「ＱＢ」が記憶されている。図１９に含まれる他の情報についての説明は省略する。
【０１０７】
そして、オフセット決定部１２０は、Ｓ３４の処理において、例えば、図１９で説明した情報を参照し、設計変数ごとに、Ｓ３３の処理で特定された符号が正である設計変数のうち、Ｓ３１の処理で制約条件値Ｌｉを満たすと判定した個体の設計変数の割合（以下、第１割合とも呼ぶ）を算出する。
【０１０８】
具体的に、例えば、図１９に示すように、設計変数ＡからＪのそれぞれに対応する「正値数」の欄に記憶された個数がＰＡ〜Ｊである場合、オフセット決定部１２０は、設計変数Ａから設計変数Ｊのそれぞれに対応する第１割合として、ＰＡ〜Ｊ／αＡ〜ＪＮ（以下、これをＳＡ〜Ｊとも表記する）を算出する。
【０１０９】
また、オフセット決定部１２０は、Ｓ３４の処理において、例えば、図１９で説明した情報を参照し、設計変数ごとに、Ｓ３３の処理で特定された符号が負である設計変数のうち、Ｓ３１の処理で制約条件値Ｌｉを満たすと判定した評価個体の設計変数の割合（以下、第２割合とも呼ぶ）を算出する。
【０１１０】
具体的に、例えば、図１９に示すように、設計変数ＡからＪのそれぞれに対応する「負値数」の欄に記憶された個数がＱＡ〜Ｊである場合、オフセット決定部１２０は、設計変数Ａから設計変数Ｊのそれぞれに対応する第２割合として、ＱＡ〜Ｊ／（１−αＡ〜Ｊ）Ｎ（以下、これをＴＡ〜Ｊとも表記する）を算出する。
【０１１１】
その後、オフセット決定部１２０は、設計変数Ａから設計変数Ｊのそれぞれに対応するオフセットηＡ〜Ｊのうち、第１割合が第２割合よりも大きい設計変数に対応するオフセットを、正のオフセット量からなるオフセットに決定する。また、オフセット決定部１２０は、設計変数Ａから設計変数Ｊのそれぞれに対応するオフセットηＡ〜Ｊのうち、第２割合が第１割合よりも大きい設計変数に対応するオフセットを、負のオフセット量からなるオフセットに決定する。
【０１１２】
具体的に、例えば、ＳＡがＴＡよりも大きい場合、オフセット決定部１２０は、設計変数Ａに対応するオフセットηＡを、正のオフセット量からなるオフセットに決定する。また、例えば、ＳＡがＴＡよりも小さい場合、オフセット決定部１２０は、設計変数Ａに対応するオフセットηＡを、負のオフセット量からなるオフセットに決定する。
【０１１３】
同様に、例えば、ＳＢがＴＢよりも大きい場合、オフセット決定部１２０は、設計変数Ｂに対応するオフセットηＢを、正のオフセット量からなるオフセットに決定する。また、例えば、ＳＢがＴＢよりも小さい場合、オフセット決定部１２０は、設計変数Ｂに対応するオフセットηＢを、負のオフセット量からなるオフセットに決定する。
【０１１４】
なお、オフセット決定部１２０は、Ｓ３４の処理において、例えば、第１割合と第２割合との差に応じて、各設計変数に対応するオフセットηＡ〜Ｊのオフセット量を決定するものであってよい。以下、各設計変数に対応するオフセットηＡ〜Ｊのオフセット量の決定方法の具体例について説明する。
【０１１５】
［オフセット量の決定方法の具体例］
図２０は、設計変数Ａに対応するオフセットηＡのオフセット量の決定方法の具体例について説明する図である。
【０１１６】
具体的に、オフセット決定部１２０は、例えば、図２０（Ａ）に示すように、オフセットηＡのオフセット量がＳＡとＴＡとの差に比例するように、オフセット量を決定するものであってよい。
【０１１７】
また、オフセット決定部１２０は、例えば、図２０（Ｂ）に示すように、オフセットηＡのオフセット量に上下限を設けるものであってもよい。
【０１１８】
さらに、オフセット決定部１２０は、例えば、図２０（Ｃ）及び１９（Ｄ）に示すように、ＳＡとＴＡとの差の絶対値が所定値を上回るまでの間、オフセットηＡのオフセット量を０にする（すなわち、不感帯を設ける）ものであってもよい。
【０１１９】
図１２に戻り、情報処理装置１の解選択部１１９は、Ｓ１５の処理で評価処理を行った個体と、情報格納領域１３０に記憶された解候補（一つ前の世代でパレート解候補とされた個体）との中からパレート解選択を行う（Ｓ３５）。
【０１２０】
そして、解選択部１１９は、図１３に示すように、Ｓ３５の処理において選択されたパレート解の個数が予め定められた解候補数（以下、アーカイブ数とも呼ぶ）以上であるか否かを判定する（Ｓ４１）。
【０１２１】
その結果、Ｓ３５の処理において選択されたパレート解の個数が解候補数以上である場合（Ｓ４１のＹＥＳ）、解選択部１１９は、ランキングによる解候補選択を行う（Ｓ４２）。
【０１２２】
一方、Ｓ３５の処理において選択されたパレート解の個数が解候補数未満である場合（Ｓ４１のＹＥＳ）、解選択部１１９は、端切り処理による解候補選択を行う（Ｓ４３）。
【０１２３】
その後、情報処理装置１の終了判定部１２２は、最適化計算処理を行った世代数が予め定められた上限に到達したか否かを判定する（Ｓ４４）。
【０１２４】
その結果、最適化計算処理を行った世代数が上限に到達したと判定した場合(Ｓ４４のＹＥＳ)、情報処理装置１は、最適化計算処理を終了する。なお、情報処理装置１は、この場合、最後の世代で選択された解候補を最適解として操作端末２等に出力するものであってもよい。
【０１２５】
一方、最適化計算処理を行った世代数が上限に到達していないと判定した場合(Ｓ４４のＮＯ)、終了判定部１２２は、図１４に示すように、ｉに１を加算する（Ｓ５１）。
【０１２６】
その後、情報管理部１１２は、Ｓ４２の処理等で選択した解候補を情報格納領域１３０に記憶する（Ｓ５２）。すなわち、情報管理部１１２は、Ｓ４２の処理等で選択した解候補をアーカイブする。
【０１２７】
そして、情報処理装置１のオフセット付加部１２１は、第ｉ世代（次世代）の個体を生成する際に用いる乱数に対し、Ｓ３４の処理で決定したオフセットを付加する（Ｓ５３）。以下、Ｓ５３の処理の詳細について説明を行う。
【０１２８】
［Ｓ５３の処理の詳細］
図２１は、Ｓ５３の処理の詳細について説明する図である。具体的に、図２１は、目標制約値Ｌｔｇｔに達するまで第３２世代の計算を要した最適化計算処理における設計変数Ｃの分布状態をプロットしたものである。なお、図２１に示す例では、各世代の個体数が１００（個）であるものとして説明を行う。
【０１２９】
図２１に示すように、制約条件の更新が行われている間（第１世代から第３２世代までの間）については、設計変数Ｃの値が大局的に大きくなる方向（すなわち、一方向）に変化している。このことから、情報処理装置１は、個体に対して突然変異を施す場合に、一様乱数よりも制約条件を満たす方向に推移させることが可能な乱数を用いることで、さらに少ない世代数で制約条件を満たすことが可能になると判断できる。
【０１３０】
そのため、オフセット付加部１２１は、Ｓ５３の処理において、次世代の個体を生成する際に用いる乱数に対し、Ｓ３４の処理で決定したオフセットを付加することにより、より制約条件を満たす方向に推移させることが可能な乱数を生成することが可能になる。
【０１３１】
図１４に戻り、個体生成部１１３は、Ｓ５２の処理でオフセットを付加した乱数を用いた突然変異を含む遺伝子操作を行うことによって、第ｉ世代（次世代）の個体を生成する（Ｓ５４）。
【０１３２】
具体的に、個体生成部１１３は、例えば、バイナリトーナメント選択を行うことによって親個体を選択する。そして、個体生成部１１３は、選択した親個体に対して交叉や突然変異を施すことによって次世代の個体を生成する。
【０１３３】
さらに、情報管理部１１２は、Ｓ５４の処理で個体を生成する際に用いた乱数の符号情報１３２を情報格納領域１３０に記憶する（Ｓ５５）。その後、情報処理装置１は、Ｓ１４以降の処理を再度行う。
【０１３４】
なお、情報処理装置１は、制約条件値Ｌｉの更新区間が終了した場合（第ｉ世代の制約条件値Ｌｉが目標制約値Ｌｔｇｔに到達した場合）、オフセットηＡ〜Ｊを付加した乱数の使用を停止し、０中心の一様分布の乱数の使用を開始するものであってよい。また、情報処理装置は、第ｉ世代の制約条件値Ｌｉが目標制約値Ｌｔｇｔにある程度近付いた場合に、オフセットηＡ〜Ｊを付加した乱数の使用を停止し、０中心の一様分布の乱数の使用を開始するものであってよい。
【０１３５】
［適用結果］
次に、本実施の形態における最適化計算処理をインダクタコアの形状最適化に適用した場合の結果について説明を行う。図２２は、本実施の形態における最適化計算処理をインダクタコアの形状最適化に適用した場合の結果を説明する図である。具体的に、図２２は、最適化計算処理を行った場合の更新プロファイルを説明する図である。
【０１３６】
図２２に示す例では、各世代の個体数が１００（個）であり、次世代の個体生成に用いる個体数（アーカイブ数）が５０（個）であるものとして説明を行う。また、図２２に示す例では、目標制約値Ｌｔｇｔが４５（μＨ）であるものとして説明を行う。なお、図２２に示す例では、実線が本実施の形態における最適化計算処理を行った場合の更新プロファイルを示しており、破線が従来の最適化計算処理（特開２０１４−１６０３９９号公報に記載された処理）を行った場合の更新プロファイルを示している。
【０１３７】
具体的に、図２２の破線で示す例は、従来の最適化計算処理が行われた場合、制約条件値Ｌｉが目標制約値Ｌｔｇｔに達するまでに第６０世代以上の計算を要することを示している。一方、図２２の実線で示す例は、本実施の形態における最適化計算処理が行われた場合、第３０世代未満の計算で制約条件値Ｌｉが目標制約値Ｌｔｇｔに達することを示している。
【０１３８】
すなわち、図２２に示す例は、本実施の形態における最適化計算処理を用いた場合、制約条件値Ｌｉが従来よりも速く目標制約値Ｌｔｇｔに達することを示している。そのため、情報処理装置１は、本実施の形態における最適化計算処理を用いることで、従来よりも計算回数を削減することが可能になる。
【０１３９】
このように、本実施の形態における情報処理装置１は、複数の個体を世代ごとに進化させながら最適解を求める遺伝的アルゴリズム等のアルゴリズムを用いることにより、前世代において選択された個体を親個体として当世代の個体を生成する。そして、情報処理装置１は、所定の評価関数を用いることにより、当世代の各個体を評価する。その後、前世代の制約条件値と、当世代の個体の半数以上が達成する制約条件暫定値とに基づいて、当世代の制約条件値を算出する。
【０１４０】
さらに、本実施の形態における情報処理装置１は、当世代の各個体についての評価の結果が当世代の制約条件値を満たすか否かを判定し、評価の結果が当世代の制約条件値を満たす個体のうち、突然変異によって生成された各個体の属性に基づいて所定のオフセットを決定する。そして、情報処理装置１は、突然変異によって次世代の各個体を生成する際に用いる乱数に対して所定のオフセットを付加する。
【０１４１】
これにより、情報処理装置１は、各個体の制約条件に対する不適合が評価後に判明する問題に対しても、効率的であってかつ再現が容易な最適化計算を行うことが可能になる。
【０１４２】
以上の実施の形態をまとめると、以下の付記のとおりである。
【０１４３】
（付記１）
複数の個体を世代ごとに進化させながら最適解を求めるアルゴリズムを用いることにより、前世代において選択された個体を親個体として当世代の個体を生成し、
所定の評価関数を用いることにより、前記当世代の各個体を評価し、
前記前世代の制約条件値と、前記当世代の個体の半数以上が達成する制約条件暫定値とに基づいて、前記当世代の制約条件値を算出し、
前記当世代の各個体についての前記評価の結果が前記当世代の制約条件値を満たすか否かを判定し、
前記評価の結果が前記当世代の制約条件値を満たす個体のうち、突然変異を発生させる処理によって生成された各個体の属性に基づいて所定のオフセットを決定し、
前記突然変異を発生させる処理によって次世代の各個体を生成する際に用いる乱数に対して前記所定のオフセットを付加する、
処理をコンピュータに実行させることを特徴とする最適化計算方法。
【０１４４】
（付記２）
付記１において、
前記属性は、前記突然変異を発生させる処理において各個体に対して付加された前記乱数の符号である、
ことを特徴とする最適化計算方法。
【０１４５】
（付記３）
付記２において、さらに、
前記当世代の個体のうち、前記突然変異を発生させる処理によって生成された各個体に対応する前記乱数の符号を記憶部に記憶する、
処理をコンピュータに実行させ、
前記決定する処理では、前記記憶部に記憶された前記符号を参照し、前記所定のオフセットの決定を行う、
ことを特徴とする最適化計算方法。
【０１４６】
（付記４）
付記３において、
前記決定する処理では、
前記記憶部に記憶された前記符号が正である個体のうち、前記当世代の制約条件値を満たす個体の割合である第１割合と、前記記憶部に記憶された前記符号が負である個体のうち、前記当世代の制約条件値を満たす個体の割合である第２割合とを算出し、
前記第１割合が前記第２割合よりも大きい場合、前記所定のオフセットを正のオフセット量からなるオフセットに決定し、前記第２割合が前記第１割合よりも大きい場合、前記所定のオフセットを負のオフセット量からなるオフセットに決定する、
ことを特徴とする最適化計算方法。
【０１４７】
（付記５）
付記４において、
前記決定する処理では、前記第１割合と前記第２割合との差に応じて、前記所定のオフセットのオフセット量を決定する、
ことを特徴とする最適化計算方法。
【０１４８】
（付記６）
複数の個体を世代ごとに進化させながら最適解を求めるアルゴリズムを用いることにより、前世代において選択された個体を親個体として当世代の個体を生成する個体生成部と、
所定の評価関数を用いることにより、前記当世代の各個体を評価する個体評価部と、
前記前世代の制約条件値と、前記当世代の個体の半数以上が達成する制約条件暫定値とに基づいて、前記当世代の制約条件値を算出する制約条件算出部と、
前記当世代の各個体についての前記評価の結果が前記当世代の制約条件値を満たすか否かを判定する結果判定部と、
前記評価の結果が前記当世代の制約条件値を満たす個体のうち、突然変異を発生させる処理によって生成された各個体の属性に基づいて所定のオフセットを決定するオフセット決定部と、
前記突然変異を発生させる処理によって次世代の各個体を生成する際に用いる乱数に対して前記所定のオフセットを付加するオフセット付加部と、を有する、
ことを特徴とする最適化計算装置。
【０１４９】
（付記７）
付記６において、
前記属性は、前記突然変異を発生させる処理において各個体に対して付加された前記乱数の符号である、
ことを特徴とする最適化計算装置。
【０１５０】
（付記８）
付記７において、さらに、
前記当世代の個体のうち、前記突然変異を発生させる処理によって生成された各個体に対応する前記乱数の符号を記憶する記憶部を有し、
前記オフセット決定部は、前記記憶部に記憶された前記符号を参照し、前記所定のオフセットの決定を行う、
ことを特徴とする最適化計算装置。
【０１５１】
（付記９）
付記８において、
前記オフセット決定部は、
前記記憶部に記憶された前記符号が正である個体のうち、前記当世代の制約条件値を満たす個体の割合である第１割合と、前記記憶部に記憶された前記符号が負である個体のうち、前記当世代の制約条件値を満たす個体の割合である第２割合とを算出し、
前記第１割合が前記第２割合よりも大きい場合、前記所定のオフセットを正のオフセット量からなるオフセットに決定し、前記第２割合が前記第１割合よりも大きい場合、前記所定のオフセットを負のオフセット量からなるオフセットに決定する、
ことを特徴とする最適化計算装置。
【０１５２】
（付記１０）
複数の個体を世代ごとに進化させながら最適解を求めるアルゴリズムを用いることにより、前世代において選択された個体を親個体として当世代の個体を生成し、
所定の評価関数を用いることにより、前記当世代の各個体を評価し、
前記前世代の制約条件値と、前記当世代の個体の半数以上が達成する制約条件暫定値とに基づいて、前記当世代の制約条件値を算出し、
前記当世代の各個体についての前記評価の結果が前記当世代の制約条件値を満たすか否かを判定し、
前記評価の結果が前記当世代の制約条件値を満たす個体のうち、突然変異を発生させる処理によって生成された各個体の属性に基づいて所定のオフセットを決定し、
前記突然変異を発生させる処理によって次世代の各個体を生成する際に用いる乱数に対して前記所定のオフセットを付加する、
処理をコンピュータに実行させることを特徴とする最適化計算プログラム。
【０１５３】
（付記１１）
付記１０において、
前記属性は、前記突然変異を発生させる処理において各個体に対して付加された前記乱数の符号である、
ことを特徴とする最適化計算プログラム。
【０１５４】
（付記１２）
付記１１において、さらに、
前記当世代の個体のうち、前記突然変異を発生させる処理によって生成された各個体に対応する前記乱数の符号を記憶部に記憶する、
処理をコンピュータに実行させ、
前記決定する処理では、前記記憶部に記憶された前記符号を参照し、前記所定のオフセットの決定を行う、
ことを特徴とする最適化計算プログラム。
【０１５５】
（付記１３）
付記１２において、
前記決定する処理では、
前記記憶部に記憶された前記符号が正である個体のうち、前記当世代の制約条件値を満たす個体の割合である第１割合と、前記記憶部に記憶された前記符号が負である個体のうち、前記当世代の制約条件値を満たす個体の割合である第２割合とを算出し、
前記第１割合が前記第２割合よりも大きい場合、前記所定のオフセットを正のオフセット量からなるオフセットに決定し、前記第２割合が前記第１割合よりも大きい場合、前記所定のオフセットを負のオフセット量からなるオフセットに決定する、
ことを特徴とする最適化計算プログラム。
【符号の説明】
【０１５６】
１：情報処理装置            ２：操作端末
ＮＷ：ネットワーク          １０：情報処理システム
２０：インダクタコア        ２１：コイル
２２：Ｅ型コア              ２３：Ｉ型コア
【図１】
2020106957.tif 000003
【図２】
2020106957.tif 000004
【図３】
2020106957.tif 000005
【図４】
2020106957.tif 000006
【図５】
2020106957.tif 000007
【図６】
2020106957.tif 000008
【図７】
2020106957.tif 000009
【図８】
2020106957.tif 000010
【図９】
2020106957.tif 000011
【図１０】
2020106957.tif 000012
【図１１】
2020106957.tif 000013
【図１２】
2020106957.tif 000014
【図１３】
2020106957.tif 000015
【図１４】
2020106957.tif 000016
【図１５】
2020106957.tif 000017
【図１６】
2020106957.tif 000018
【図１７】
2020106957.tif 000019
【図１８】
2020106957.tif 000020
【図１９】
2020106957.tif 000021
【図２０】
2020106957.tif 000022
【図２１】
2020106957.tif 000023
【図２２】
2020106957.tif 000024