(57)【要約】【課題】安定かつ高速に最適化計算を実現する。【解決手段】最適化計算方法は、コンピュータが、生成する処理、評価する処理、設定する処理、判定する処理、変更を行う処理、選択する処理を実行する。生成する処理は、複数の個体を世代ごとに進化させながら最適解を求めるアルゴリズムで、前世代の個体を親個体とし当世代の個体を生成する。評価する処理は、当世代の各個体を評価する。設定する処理は、一つ前の世代の制約条件値と次世代の子個体生成に用いる個体の半数以上が達成する制約条件暫定値とに基づいて、当世代の制約条件値を設定する。判定する処理は、各個体が当世代の制約条件値を満たすか否かを判定する。変更を行う処理は、制約条件値を満たさない個体の評価結果を低下させる。選択する処理は、判定する処理または変更する処理後の個体から解候補となる個体を選択する。【選択図】図２
2019191887.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、
解候補である複数の個体を世代ごとに進化させながら最適解を求めるアルゴリズムを用いて、前世代において選択された個体を親個体とし、当世代の個体を生成し、
当世代の各個体を評価し、
当世代の一つ前の世代の制約条件値と、次世代の子個体生成に用いる個体の半数以上が達成する制約条件暫定値とに基づいて、当世代の制約条件値を設定し、
各個体について評価結果が前記当世代の制約条件値を満たすか否かを判定し、
前記当世代の制約条件値を満たさない個体の評価結果を低下させる変更を行い、
前記判定する処理または前記変更を行う処理が実行された個体の中から解候補となる個体を選択する、
処理を実行する最適化計算方法。
【請求項２】
前記設定する処理は、式（１）を用いて前記当世代の制約条件値を設定することを特徴とする請求項１に記載の最適化計算方法。
【数１】
2019191887.tif 000006
【請求項３】
前記設定する処理は、当世代が第１世代である場合には、第１世代の制約条件値を、前記制約条件暫定値よりも小さい値とすることを特徴とする請求項２に記載の最適化計算方法。
【請求項４】
前記任意の係数は、０より大きく１以下の値であることを特徴とする請求項２または３に記載の最適化計算方法。
【請求項５】
前記任意の係数は、世代ごとに更新されることを特徴とする請求項４に記載の最適化計算方法。
【請求項６】
当該最適化計算方法は、磁性材料で形成される磁性部材の各部材の寸法条件と目標となるインダクタンスとの入力を受け付け、インダクタンスを制約条件として、目標となるインダクタンスを確保しながら磁気損失と前記磁性部材の体積とが最小となるような各部材の寸法を最適解として求めることを特徴とする請求項１〜５のいずれか一つに記載の最適化計算方法。
【請求項７】
コンピュータに、
解候補である複数の個体を世代ごとに進化させながら最適解を求めるアルゴリズムを用いて、前世代において選択された個体を親個体として当世代の個体を生成し、
当世代の各個体を評価し、
当世代の一つ前の世代の制約条件値と、次世代の子個体生成に用いる個体の半数以上が達成する制約条件暫定値とに基づいて当世代の制約条件値を設定し、
各個体について評価結果が前記当世代の制約条件値を満たすか否かを判定し、
前記当世代の制約条件値を満たさない個体の評価結果を低下させる変更を行い、
前記判定する処理または前記変更を行う処理が実行された個体の中から解候補となる個体を選択する、
処理を実行させる最適化計算プログラム。
【請求項８】
解候補である複数の個体を世代ごとに進化させながら最適解を求めるアルゴリズムを用いて、前世代において選択された個体を親個体とし、当世代の個体を生成する生成部と、
当世代の各個体を評価する評価部と、
当世代の一つ前の世代の制約条件値と、次世代の子個体生成に用いる個体の半数以上が達成する制約条件暫定値とに基づいて当世代の制約条件値を設定する設定部と、
各個体について評価結果が前記当世代の制約条件値を満たすか否かを判定する判定部と
前記当世代の制約条件値を満たさない個体の評価結果を低下させる変更を行う変更部と、
前記判定部または前記変更部による処理が実行された個体の中から解候補となる個体を選択する選択部と、
を有することを特徴とする最適化計算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、最適化計算方法、最適化計算プログラム及び最適化処理装置に関する。
【背景技術】
【０００２】
従来、解候補への評価後に制約条件への適合が判明する問題に対し、複数の解候補（個体）を世代ごとに進化させながら最適解を求める遺伝的アルゴリズムを適用する手法が提案されている。
【０００３】
例えば、契約電力（上限値）が制約条件として与えられている場合の電力供給や消費に関するタイムスケジュール問題に、遺伝的アルゴリズムが適用されている（例えば、特許文献１参照）。この方法では、初期個体群を生成した時点での電力が契約電力を満足していない（上回る）場合であっても、徐々に契約電力に近づけていく方向へ個体の進化を進めることによって、制約条件を満足する最適解を探索する。ここで、この方法では、最適化計算中に制約条件を更新している。具体的に、更新ルールとして、所定の世代数で制約条件を規定するルール、或いは、各（全）個体が所定値を下回る場合に制約条件を更新するルールを採用している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１６０３９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、所定の世代数で制約条件を規定するルールを採用した場合、最適化計算前に制約条件の更新プロファイルを事前に設定する必要がある。しかしながら、制約条件の更新ペースが速すぎると、個体が制約条件を満たすことができなくなり、非適合な解集団しか得られないことがある。また、制約条件の更新ペースが遅すぎると、余分な計算時間を要してしまう。このように、最適化計算を行う前から制約条件の更新プロファイルを適切に予想することは、困難である。
【０００６】
また、各（全）個体が所定値を下回る場合に制約条件を更新するルールを採用した場合、特に突然変異によって制約条件を外れる方向に子個体が生成されると、全ての個体が制約条件を満たすまで、制約条件を次の値に更新することができない。このため、各（全）個体が所定値を下回る場合に制約条件を更新するルールを採用した場合には、多大な計算時間を要することになる。
【０００７】
開示の技術は、上記に鑑みてなされたものであって、安定かつ高速に最適化計算を実現する最適化計算方法、最適化計算プログラム及び最適化計算装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
一つの態様では、最適化計算方法は、コンピュータが、生成する処理、評価する処理、設定する処理、判定する処理、変更を行う処理、選択する処理を実行する。生成する処理は、解候補である複数の個体を世代ごとに進化させながら最適解を求めるアルゴリズムを用いて、前世代において選択された個体を親個体とし、当世代の個体を生成する。評価する処理は、当世代の各個体を評価する。設定する処理は、当世代の一つ前の世代の制約条件値と、次世代の子個体生成に用いる個体の半数以上が達成する制約条件暫定値とに基づいて、当世代の制約条件値を設定する。判定する処理は、各個体について評価結果が当世代の制約条件値を満たすか否かを判定する。変更を行う処理は、当世代の制約条件値を満たさない個体の評価結果を低下させる変更を行う。選択する処理は、判定する処理または変更する処理が実行された個体の中から解候補となる個体を選択する。
【発明の効果】
【０００９】
本願の開示する最適化計算方法の１つの態様によれば、安定かつ高速に最適化計算を実現する。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１の最適化計算装置の構成の一例を示すブロック図である。
【図２】図２は、実施例１の最適化計算処理の処理手順を示すフローチャートである。
【図３Ａ】図３Ａは、実施例１の形状最適化対象の一例であるインダクタコアの斜視図である。
【図３Ｂ】図３Ｂは、実施例１の形状最適化対象の一例であるインダクタコアの正面図である。
【図４】図４は、図１に示すＥ型コアの平面図及び正面図である。
【図５】図５は、図１に示すＩ型コアの平面図及び正面図である。
【図６】図６は、インダクタコアの寸法最適化処理の流れを説明する図である。
【図７】図７は、第ｉ世代における各個体の評価結果の一例を示す図である。
【図８】図８は、評価結果変更処理を説明する図である。
【図９】図９は、世代ごとの制約条件の更新プロファイルを示す図である。
【図１０】図１０は、各世代の損失と体積の関係を示す図である。
【図１１】図１１は、磁性材料の磁束密度と磁界との関係を示す図である。
【図１２】図１２は、最適化計算プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示する最適化計算方法、最適化計算プログラム及び最適化計算装置の実施例を図面に基づいて詳細に説明する。なお、この実施例は一例であり、構成等は限定しない。
【実施例】
【００１２】
［最適化計算装置の一例］
本実施例１の最適化計算装置として、解候補である複数の個体を世代ごとに進化させながら最適解を求める遺伝的アルゴリズムを用いて、最適解を求める最適計算処理を行う最適化計算装置を例に説明する。本実施例１の最適化計算装置は、個体評価後に制約条件への適合が判明する問題の解候補を計算する。この際、本実施例１の最適化計算装置は、個体評価後に制約条件への適合が判明する問題に対し、制約条件を、世代ごとに動的に変更することで、安定かつ高速に最適解を得る。
【００１３】
図１は、実施例１の最適化計算装置の構成の一例を示すブロック図である。図１に示すように、実施例１の最適化計算装置１０は、通信部１１、記憶部１２及び制御部１３を有する。なお、以降において、世代のカウント数をｉ（１≦ｉ≦Ｑ）とする。
【００１４】
通信部１１は、他の装置との通信を制御する処理部であり、例えば通信インタフェースなどである。通信部１１は、他の装置から、最適化計算指示、遺伝的アルゴリズムの計算に使用する集団データ、最適化計算処理に使用する事前制約条件、特性の目標値、目的関数となる特性の情報やその特性を求める演算式、最適化計算処理の終了条件等の各種情報を受信する。
【００１５】
記憶部１２は、プログラムやデータなどを記憶する記憶装置であり、例えばメモリやハードディスクなどである。記憶部１２は、パラメータ記憶部１２１、集団記憶部１２２及び解候補記憶部１２３を有する。
【００１６】
パラメータ記憶部１２１は、最適化計算処理に関する各種パラメータを記憶する。パラメータは、遺伝的アルゴリズムを用いて生成する個体数、最適化計算処理に使用する事前制約条件、最適化計算の過程で設定される各世代の制約条件、目標値、個体の評価結果、最適化計算処理の終了条件等である。
【００１７】
生成する個体数は、変異部１３１３（後述）において新たな個体をいくつ作るかを設定する情報である。終了条件は、最適化計算処理を終了する条件である。例えば、終了条件としては、計算を行った世代（ｉ）が世代数の上限（Ｑ）に達した、などである。
【００１８】
集団記憶部１２２は、遺伝的アルゴリズムに使用する集団データを記憶する。
【００１９】
解候補記憶部１２３は、各世代において、最適化問題の解の候補として選択された個体（解候補）を記憶する。解候補として選択された個体は、選択時の世代の次の世代の親個体として使用される。
【００２０】
制御部１３は、最適化計算装置１０全体を司る処理部であり、例えばプロセッサなどである。制御部１３は、例えば、受付部１３０、生成部１３１、事前処理部１３２、評価部１３３、設定部１３４、判定部１３５、変更部１３６、選択部１３７、終了判定部１３８及び出力部１３９を有する。
【００２１】
受付部１３０は、最適化計算指示、最適化計算に使用する各種パラメータ、遺伝的アルゴリズムに使用する集団データ等を受け付ける。受付部１３０は、最適化計算に使用する各種パラメータをパラメータ記憶部１２１に格納する。受付部１３０は、集団データを集団記憶部１２２に格納する。
【００２２】
生成部１３１は、遺伝的アルゴリズムを用いて、前世代において選択された個体を親個体とし、当世代の個体を生成する。生成部１３１は、世代ごとに、遺伝的アルゴリズムにおける遺伝的操作によって新たな個体を生成する。遺伝的操作は、比較的すぐれた個体の中から交叉や突然変異を施す操作である。生成部１３１は、初期生成部１３１１、個体選択部１３１２、変異部１３１３及び個体生成部１３１４を有する。
【００２３】
初期生成部１３１１は、第１世代の個体を生成する。例えば、初期生成部１３１１は、集団の中からランダムに個体を選択し、選択した個体に対して遺伝的操作を行い、所定数の初期個体を生成する。例えば、初期生成部１３１１は、集団の中から１つ個体を選択して、遺伝的操作を行って１００個の個体を、第１世代の評価個体として生成する。
【００２４】
個体選択部１３１２は、第２世代以降において、遺伝的操作対象となる親個体を、前世代において選択された個体の中から選択する。個体選択部１３１２は、バイナリトーナメント選択を行って、前世代において選択された個体から親個体を選択する。バイナリトーナメントは、前世代において選択された個体から一定数の個体をランダムに取り、その中で最も適応度の高いものを親個体として選択する処理である。
【００２５】
変異部１３１３は、個体選択部１３１２が選択した親個体に対して、遺伝的操作である交叉、突然変異を施して子個体を生成する。突然変異は、完全な乱数発生によるものである。個体生成部１３１４は、変異部１３１３が生成した個体を、当世代の評価個体として出力する。
【００２６】
事前処理部１３２は、制約条件のうち予め設定されている事前制約条件（例えば、設計条件等のパラメータ）に適合するように、当世代の各個体のパラメータを修正する。
【００２７】
評価部１３３は、当世代の各個体を評価する。評価部１３３は、シミュレーション等を行うことによって、各個体の特性を評価する。評価部１３３は、各個体に対し、最適化計算処理における目的関数に対応する特性値及び制約条件に対応する特性値を評価値として求める。
【００２８】
設定部１３４は、当世代の一つ前の世代の制約条件値と、次世代の子個体生成に用いる個体の半数以上が達成する制約条件暫定値とに基づいて、当世代の制約条件値を設定する。具体的には、設定部１３４は、当世代（第ｉ世代）の制約条件値Ｌｉを、式（１）を用いて設定する。
【００２９】
【数１】
2019191887.tif 000003
【００３０】
ここで、係数Ｋ（０＜Ｋ≦１）は、進化の進度に関する任意の係数である。係数Ｋが大きいと進化は速く進み、係数Ｋが小さいと進化は緩やかに進む。この係数Ｋは、最適化計算装置１０のリソースや計算時間との関係を基に設定される。そして、この係数Ｋは、全世代で同一に設定される他、世代ごとに更新されてもよい。すなわち、本実施例１では、係数Ｋを、世代ｉごとに対応する変数Ｋｉと設定することも可能である。
【００３１】
このように、設定部１３４は、制約条件を、次世代の個体生成に用いる個体の半数以上が達する値を用いて、世代ごとに、動的に変更している。
【００３２】
また、設定部１３４は、当世代が第１世代である場合には、第１世代の制約条件値を、制約条件暫定値よりも小さい値として、より制約条件を満たす個体の割合を増やしている。なお、設定部１３４は、式（１）を用いて得たＬｉが、最終目標とする制約条件値Ｌｔｇｔ以上である場合、第ｉ世代の制約条件値ＬｉをＬｔｇｔと設定する。
【００３３】
判定部１３５は、当世代の各個体について、評価結果が当世代の制約条件値を満たすか否かを判定する。判定部１３５は、第ｉ世代の各個体について、シミュレーションで計算された評価値が、設定部１３４が設定した制約条件値Ｌｉを満たすか否かを判定する。
【００３４】
変更部１３６は、当世代の制約条件値を満たさない個体の評価結果を低下させる変更を行う。変更部１３６は、等世代の制約条件値を満たさないと判定部１３５が判定した個体の淘汰を促進するために、この個体の評価結果を低下させる。例えば、変更部１３６は、約条件値を満たさないと判定された個体を削除する。或いは、変更部１３６は、制約条件値を満たさないと判定された個体のランキングまたは評価値を下げる。
【００３５】
選択部１３７は、判定部１３５による判定する処理または変更部１３６による変更する処理が実行された個体の中から、解候補となる個体を選択する。例えば、選択部１３７は、判定する処理または変更する処理が実行された個体と、当世代の一つ前世代でパレート解候補とされた個体との中から、パレート解を選択し、端切り処理による解候補選択またはランキングによる解候補選択を行う。
【００３６】
終了判定部１３８は、終了条件を満たす否かを判定する。終了判定部１３８は、計算を行った当世代が世代数の上限に達したか否かを判断する。最適化計算装置１０は、終了条件を満たさないと終了判定部１３８が判定した場合には、次の世代に進み、最適化計算処理を継続する。具体的には、最適化計算装置１０は、世代数をカウントアップし、生成部１３１、事前処理部１３２、評価部１３３、設定部１３４、判定部１３５、変更部１３６、選択部１３７に処理を実行させる。また、最適化計算装置１０は、終了条件を満たすと終了判定部１３８が判定した場合には、最適化計算処理を終了する。
【００３７】
出力部１３９は、最後の世代で選択された解候補を、最適解として出力して、最適化計算処理を終了する。出力部１３９は、例えば、通信部１１を介して、指示元の他の装置に最適解を出力する。
【００３８】
［最適化計算処理の処理手順］
次に、図２を参照して、実施例１の最適化計算処理の処理手順を説明する。図２は、最適化計算処理の処理手順を示すフローチャートである。
【００３９】
図２に示すように、最適化計算装置１０では、まず、初期生成部１３１１が、集団の中からランダムに個体を選択することによって初期個体を生成し（ステップＳ１）、遺伝的操作を行って第１世代の評価個体ｘ（１）を生成する（ステップＳ２）。
【００４０】
続いて、事前処理部１３２は、評価個体ｘ（ｉ）に対し、寸法制約などの事前制約条件処理を行う（ステップＳ３）。そして、評価部１３３は、シミュレーション等を行うことによって、第ｉ世代の各個体の特性を評価する評価処理を行う（ステップＳ４）。
【００４１】
そして、設定部１３４は、アーカイブする個体の半数以上がクリアする制約条件、すなわち、次世代の子個体生成に用いる個体の半数以上が達成する制約条件暫定値Ｌｉ´を抽出する（ステップＳ５）。続いて、設定部１３４は、ｉ≠１であるか否かを判定する（ステップＳ６）。設定部１３４は、ｉ≠１でないと判定した場合（ステップＳ６：Ｎｏ）、制約条件暫定値Ｌｉ´より小さい制約条件値Ｌｉを決定する（ステップＳ７）。これに対し、設定部１３４は、ｉ≠１であると判定した場合（ステップＳ６：Ｙｅｓ）、当世代における制約条件値Ｌｉを式（１）より求める（ステップＳ８）。
【００４２】
続いて、設定部１３４は、ステップＳ７またはステップＳ８において求めた制約条件値Ｌｉと最終目標とする制約条件値Ｌｔｇｔとを比較し、Ｌｔｇｔ＞Ｌｉであるか否かを判定する（ステップＳ９）。設定部１３４は、Ｌｔｇｔ＞Ｌｉでないと判定した場合（ステップＳ９：Ｎｏ）、当第ｉ世代の制約条件値をＬｔｇｔとする（ステップＳ１０）。
【００４３】
設定部１３４がＬｔｇｔ＞Ｌｉであると判定した場合（ステップＳ９：Ｙｅｓ）、または、ステップＳ１０終了後、判定部１３５は、第ｉ世代の各個体について、シミュレーションで計算された評価値が制約条件値Ｌｉを満たすか否かを判定する（ステップＳ１１）。
【００４４】
評価値が制約条件値Ｌｉを満たさないと判定部１３５が判定した（ステップＳ１１：Ｎｏ）個体に対し、変更部１３６は、評価結果変更処理を行い（ステップＳ１２）、制約条件値Ｌｉを満たさない個体の評価結果を低下させる。
【００４５】
そして、選択部１３７は、一つ前の世代でパレート解候補とされた個体を読み出し（ステップＳ１３）、判定処理または評価結果変更処理が実行された個体と、読み出した個体との中から、パレート解を選択する（ステップＳ１４）。
【００４６】
選択部１３７は、パレート数がアーカイブ数以上であるかを判定する（ステップＳ１５）。選択部１３７は、パレート数がアーカイブ数以上であると判定した場合（ステップＳ１５：Ｙｅｓ）、解候補の分布が分散するように、端切り処理による解候補選択を行う（ステップＳ１６）。一方、選択部１３７は、パレート数がアーカイブ数以上でないと判定した場合（ステップＳ１５：Ｎｏ）、ランキングによる解候補選択を行う（ステップＳ１７）。
【００４７】
続いて、終了判定部１３８は、世代数上限に達しているか否か、すなわち、ｉ＝Ｑであるか否かを判定する（ステップＳ１８）。終了判定部１３８は、ｉ＝Ｑでないと判定した場合（ステップＳ１８：Ｎｏ）、選択部１３７が選択した解候補をアーカイブした後、次の世代に処理を進めるため、ｉ＝ｉ＋１とし（ステップＳ１９）、世代数をカウントアップする。
【００４８】
そして、生成部１３１では、個体選択部１３１２が、バイナリトーナメント選択を行って（ステップＳ２０）、親個体を選択する。変異部１３１３は、個体選択部１３１２から選択された親個体に対して、交叉、突然変異処理（ステップＳ２１）を施して子個体を生成する。個体生成部１３１４は、変異部１３１３が生成した個体を、当世代の評価個体とする（ステップＳ２２）。その後、最適化計算装置１０は、ステップＳ３以降の処理を、生成された個体に対して実行する。
【００４９】
一方、ｉ＝Ｑであると終了判定部１３８が判定した場合（ステップＳ１８：Ｙｅｓ）、出力部１３９は、最後の世代で選択された解候補を、最適解として出力して、最適化計算処理を終了する。
【００５０】
［適用例］
本実施例１の最適化計算方法を、磁気デバイスの一つであるインダクタコアの形状最適化問題を解く問題に適用した場合について説明する。
【００５１】
まず、インダクタコアの一例について説明する。図３Ａは、実施例１の形状最適化対象の一例であるインダクタコアの斜視図である。図３Ｂは、実施例１の形状最適化対象の一例であるインダクタコアの正面図である。図４は、図１に示すＥ型コア２２の平面図及び正面図である。図５は、図１に示すＩ型コア２３の平面図及び正面図である。
【００５２】
図３Ａ〜図５に示すように、インダクタコア２０は、Ｅ型コア２２及びＩ型コア２３がフェライト系の磁性材料で形成され、中央脚の周りに巻かれたコイル２１に電流を流すことによって磁束を発生し、電気回路で必要とされるインダクタンス（Ｌ値）を生み出す。
【００５３】
インダクタコア２０は、回路の一部品として使用される。このため、インダクタコア２０には、所望のインダクタンス値を満たすことが要求される他、所定の寸法内に収まること、及び、磁性体内部での損失及び体積（重量）がなるべく小さいことが要求される。この例では、インダクタコア２０の設計最適化問題を解き、Ｅ型コア２２及びＩ型コア２３の寸法（Ａ〜Ｊ）（図４及び図５参照）の上下限値とインダクタンスの下限値とを制約条件としながら、損失と体積との最小化を求める。したがって、この適用例では、損失と体積とが、目的関数となる。
【００５４】
そして、この適用例では、集団データは、各個体の部材の材料名、誘電率及び透磁率、各寸法（Ａ〜Ｊ）の組み合わせである設計変数を含むものとなる。また、この適用例では、最適化計算に使用する各種情報は、インダクタコア２０の各部材の寸法条件（上下限）、目標となるインダクタンス（下限）、目的関数である磁気損失を演算する演算式の係数、インダクタコアの体積を演算する演算式の係数等である。
【００５５】
図６は、インダクタコアの寸法最適化処理の流れを説明する図である。例えば、最適化計算装置１０は、３次元モデルをベースにして磁界シミュレーションを活用して最適設計を行う。第ｉ世代においては、図６に示す流れで各処理が行なわれる。
【００５６】
まず、生成部１３１が第ｉ世代の個体を生成し（図６の（１）参照）、設計変数として各個体の寸法（Ａ，Ｂ，・・・，Ｊ）を与える（図６の（２）参照）。事前処理部１３２は、各個体の寸法が、寸法の制約条件から外れている場合は、寸法の上下限値でリミットをかけて、寸法制約条件による寸法パラメータ修正を行う（図６の（３）参照）。この結果、設計変数は、（Ａ´，Ｂ´，・・・，Ｊ´）に変更される（図６の（４）参照）。
【００５７】
この時点で、目的関数の一つである体積（Ｖ）については算出が可能となる（図６の（５）参照）。続いて、評価部１３３は、磁界シミュレーションを行う（図６の（６）参照）。
【００５８】
この磁界シミュレーションは、ＭＡＸＷＥＬＬ方程式をベースにプログラムが作成されているものが多い。このＭＡＸＷＥＬＬ方程式は、式（２）〜式（５）に示す連立偏微分方程式である。また、Ｄは式（６）に示すようにＥと線形関係を有し、Ｂは式（７）に示すようにＨと線形関係を有する。
【００５９】
【数２】
2019191887.tif 000004
【００６０】
評価部１３３は、磁界シミュレーションの実行によって、制約条件の一つであるインダクタンス（Ｌ）と、目的関数である損失（Ｐ）とを算出する（図６の（６），（７）参照）。そして、設定部１３４が、第ｉ世代の制約条件値を設定する（図６の（８）参照）。
【００６１】
ところで、遺伝的アルゴリズムでは、個体群（例えば数十〜数百個の個体で構成）を各世代で生成し、比較的優れたものの中から交叉や突然変異を施すことで、次世代の個体を生成する。このため、遺伝的アルゴリズムでは、必ずしも全個体が制約条件を満たす必要はない。しかしながら、遺伝的アルゴリズムでは、確率的には、少なくとも個体群の半数以上が制約条件を満たすような条件で世代交代を進めていかないと、制約条件のクリアと目的関数の最小化を両立させることが難しくなるといえる。すなわち、遺伝的アルゴリズムでは、不適合の割合が大きい場合、制約条件を満たしつつ最適解を得ることが困難となる（図６の（ｂ）参照）。
【００６２】
そこで、本実施例１では、ある世代の過半数の個体が制約条件を満たしている場合、突然変異が完全な乱数発生によるものであれば、確率的に制約条件を満たす方向へ次世代の個体群が進化していくことを利用し、制約条件を世代ごとに設定している。具体的には、設定部１３４は、磁界シミュレーションで得られた各個体のインダクタンスを参照し、次世代の子個体生成に用いる個体の半数以上が達成するインダクタンス値（制約条件暫定値Ｌｉ´）を求める。
【００６３】
図７は、第ｉ世代における各個体の評価結果の一例を示す図である。図７では、インダクタンスが大きい順にソート処理が施されている。この例では、５０個の個体を次世代の子個体生成に使用する。このため、設定部１３４は、５０の半数である２５番目の個体のインダクタンス「３．９３Ｅ０５［Ｈ］」を制約条件暫定値Ｌｉ´として求める。なお、半数以上の個体が制約条件に適合していれば、確率的に、制約条件を満たす方向に次世代の個体が進化していくため、設定部１３４は、計算量とのトレードオフを取って、例えば、３０番目や４０番目の個体のインダクタンスをＬｉ´としてもよい。
【００６４】
そして、設定部１３４は、制約条件暫定値Ｌｉ´と、第ｉ−１世代の制約条件値Ｌｉ−１とを式（１）に適用して、第ｉ世代の制約条件値Ｌｉを求める。
【００６５】
ここで、係数Ｋが大きいと進化は速く進み、係数Ｋが小さいと進化は緩やかに進む。例えば、係数Ｋを０．３程度に抑えた場合には、安定した進化、すなわち、より制約条件を満たす個体の割合を増やすように進化を進めることが見込める。また、係数Ｋを０．７程度まで上げた場合には、進化を速く進め、計算時間を短縮することが見込める。このように、係数Ｋは、進化の速度と安定性との整合を取る値に柔軟に設定できる。
【００６６】
そして、本実施例１では、この係数Ｋを、全世代で同一に設定してもよい。また、本実施例１では、係数Ｋを、世代ごとに更新してもよい。すなわち、係数Ｋを、世代ｉごとに対応する変数Ｋｉと設定してもよい。例えば、設定部１３４は、Ｋｉを、世代ごとに小さくなるように定義する。この場合、前半の世代は、比較的緩やかに安定して進化し、世代が進むにしたがって進化が速まるため、計算時間の短縮を図ることもできる。
【００６７】
また、設定部１３４は、第１世代については、制約条件値Ｌｉを制約条件暫定値Ｌｉ´より小さい値とすることによって、より制約条件を満たす個体の割合を増やす。例えば、設定部１３４は、第１世代については、制約条件値Ｌ１を、全個体が満たす値とする。また、設定部１３４は、式（１）を用いて得たＬｉが、最終目標とする制約条件値Ｌｔｇｔ以上である場合、第ｉ世代の制約条件値ＬｉをＬｔｇｔと設定する。
【００６８】
続いて、図６に戻り、判定部１３５は、制約条件による適合判定を行う（図６の（９）参照）。具合的には、判定部１３５は、第ｉ世代の各個体について、シミュレーションで計算されたインダクタンス値が、制約条件値Ｌｉ以上であるか否かを判定する。
【００６９】
判定部１３５は、シミュレーションで計算されたインダクタンス値が制約条件値Ｌｉ以上であると判定した場合（図６の（９）：Ｙｅｓ）、この個体は適合と判定する。これに対し、判定部１３５は、インダクタンス値が制約条件値Ｌｉ未満である判定した場合（図６の（９）：Ｎｏ）、この個体は、不適合と判定する。
【００７０】
そして、本実施例１では、変更部１３６は、制約条件値を満たさない個体に対し、この個体の淘汰を促進するために、意図的に評価結果を低下させるように評価結果を変更する（図６の（１０）参照）。
【００７１】
図８は、評価結果変更処理を説明する図である。例えば、２目的最適化のアルゴリズムとしてＳＰＥＡ２（Strength  Pareto  Evolutionary  Algorithm−II）を用いた場合を例に説明する。多目的最適化アルゴリズムでは、一般的に、解にランキングを付与して適合度判定を行う。０はパレート最適解であり、数字が小さいほうが高ランクとなる。なお、他のアルゴリズムを適用する場合でも基本的には同じ考え方である。
【００７２】
図８の（ａ）は、第ｉ世代において、磁界シミュレーションの直後に、目的関数をｘ軸（損失）、ｙ軸（体積）として個体のプロットを行った結果を示す。各プロットは、右肩に、評価値のランキングを示す数字を示す。
【００７３】
図８の（ａ）に示すように、ＳＰＥＡ２では、左下に他の解が存在しない（少ない）個体（例えば、個体Ｉ１，Ｉ２）ほど、高評価となりランキングと呼ばれる指標が小さい値となる。ただし、この状態では、個体Ｉ１，Ｉ２は、制約条件値を満たさないにもかかわらず、ランキングが高位になってしまう。これに対し、個体Ｉ４は、制約条件値を満たすが過小評価となる。
【００７４】
そこで、変更部１３６は、制約条件を満たさなかった個体についてはランキング付与の時点で対象外としている。具体的には、最適化計算装置１０は、制約条件値Ｌｉを下回る個体を除外した後に、残った個体にランキングを付与する。図８の（ａ）の例では、変更部１３６は、インダクタンスがＬｉ未満の個体Ｉ１，Ｉ２，Ｉ３を除外する。この結果、図８の（ｂ）のように、インダクタンスＬｉ以上の個体Ｉ４，Ｉ６，Ｉ７がパレート最適解となる。
【００７５】
このように、変更部１３６は、制約条件を満たさなかった個体については、意図的に大きな（悪い評価）を与えることで淘汰を促進するようにしている。なお、変更部１３６は、制約条件を満たさなかった個体については、目的関数を低下させる変更処理を行ってもよい。
【００７６】
その後、選択部１３７は、判定部１３５による判定する処理または変更部１３６による変更する処理が実行された個体の中から、第ｉ世代における解候補となる個体を選択する。
【００７７】
このように、実施例１をインダクタコア２０に適用した場合、最適化計算装置１０は、磁性材料で形成される磁性部材の各部材の寸法条件と目標となるインダクタンスとの入力を受け付ける。そして、最適化計算装置１０は、インダクタンスを制約条件として、目標となるインダクタンスを確保しながら磁気損失と前記磁性部材の体積とが最小となるような各部材の寸法を最適解として求める。
【００７８】
［適用結果］
続いて、本実施例１の最適化計算処理を、インダクタコアの形状最適化に適用した結果について説明する。今回は、各世代の個体数を１００とし、次世代の個体生成に用いる個体数（アーカイブ数）を５０とする。また、最終目標とするインダクタンスの制約条件値（下限値）Ｌｔｇｔを４５μＨとする。この条件で初期寸法（設計変数）を与え、インダクタンスを更新しながら損失と体積との最小化を行っていく。
【００７９】
図９は、世代ごとの制約条件の更新プロファイルを示す図である。図９は、本実施例１に示す最適化計算方法を用いて、任意の係数Ｋを０．３〜０．８の間で変化させたときの、各Ｋ値に対応する制約条件の更新プロファイルを示す。また、従来の最適化計算方法として、特許文献１に記載の方法を用いた。従来の方法では、アーカイブする全個体が制約条件を満たすように設定した。
【００８０】
図９に示すように、従来の最適化計算方法を用いてプロファイル更新を行った場合には、最終目標とする制約条件値Ｌｔｇｔに達するまで６０世代以上もの計算が必要となった。
【００８１】
これに対し、本実施例１の最適化計算方法を用いた場合、Ｋを０．３と緩やかな進度に設定した場合であっても、５０世代未満の計算で、制約条件値にＬｔｇｔに達することができた。さらに、本実施例１の最適化計算方法を用いた場合、Ｋを０．７に設定し進化をより速めた場合には、２０世代未満で制約条件値にＬｔｇｔに達することができた。
【００８２】
このように、本実施例１の最適化計算方法を用いた場合、従来方法と比較し、Ｋの値によっては２〜３倍以上速く、目標とする制約条件に到達できた。したがって、本実施例１の最適化計算方法によれば、従来の最適化計算方法と比して、計算回数を削減できることがわかった。
【００８３】
なお、本実施例１を適用した場合、Ｋが１に近づくほど制約条件を満たす個体の割合が少なく（５０％に近く）なり、制約条件の更新ペースは、速くなる。ただし、Ｋが１に近づくほど、個体群の進化が追い付かなくなって安定性が損なわれる方向となる。これに対し、Ｋが０に近い場合はその逆となる。
【００８４】
また、遺伝的アルゴリズムでは乱数的な要素も含まれるため、再現性を完全に特定することは難しい。これにもかかわらず、本実施例１を適用すると、概ねＫ＝０．６〜０．７あたりまで更新プロファイルのスピードに改善が確認できる。ただし、Ｋ＝０．８になると改善度合いが小さくなる。さらに、Ｋ＝０．９（非表示）では再現性が悪くなり、場合によっては制約条件値Ｌｔｇｔまで個体群をうまく誘導できないケースも散見された。
【００８５】
図１０は、各世代の損失と体積の関係を示す図である。図１０は、目的関数である損失及び体積をそれぞれｘ軸及びｙ軸に設定し、本実施例１の最適化計算方法を用いて計算した個体の損失及び体積の計算値をプロットしたものである。図１０では、世代のフェーズごとに、プロットの形状を変えている。図１０は、Ｋ＝０．５とした例を示す。なお、制約条件値Ｌｔｇｔは、４５μＨである。
【００８６】
図１０に示すように、第１世代ではインダクタンスが３２．２μＨとなり、制約条件を満たしていない。この状態から、本実施例１に示す、世代ごとに制約条件を設定する最適化計算方法を適用すると、個体群が、最終目標とする制約条件値Ｌｔｇｔ側にスムーズに移動していく傾向が認められた。そして、最終的には、第５０世代において、最終目標とする制約条件値Ｌｔｇｔ(４５μＨ)以上で、パレート最適フロント（パレート解）が得られていることが確認できる。
【００８７】
［効果］
このように、実施例１の最適化計算装置１０は、遺伝的アルゴリズムを用いて個体を生成し、生成した個体評価後に制約条件への適合が判明する問題の最適解を計算する最適化計算方法において、世代ごとに動的に制約条件を変更する。したがって、最適化計算装置１０によれば、世代ごとに動的に制約条件を変更するため、個体群を制約条件に段階的に適合させながら世代交代を進めて、安定に最適解を得ることが可能になる。
【００８８】
この際、最適化計算装置１０は、当世代の一つ前の世代の制約条件値と、次世代の子個体生成に用いる個体の半数以上が達成する制約条件暫定値とに基づいて、当世代の制約条件値を設定する。このように、最適化計算装置１０は、当世代の一つ前の世代の制約条件値及び制約条件暫定値を用いて当世代の制約条件値を設定するため、次世代において親個体として選択される可能性が高い個体を適切に残しながら、安定して世代交代を進めることができる。また、最適化計算装置１０は、進化の進度に関する任意の係数を適宜選択することによって、計算時間の短縮も可能になるため、計算の高速化も実現することができる。
【００８９】
また、最適化計算装置１０は、当世代が第１世代である場合には、第１世代の制約条件値を、制約条件暫定値よりも小さい値とすることによって、初期個体群において、確率的に、より制約条件を満たす個体の割合が増えるようにしている。このように、最適化計算装置１０は、第１世代において制約条件を満たす個体の割合を増やしているため、初期値探索の負担を設計者にかけることなく、安定した計算を進めることができる。
【００９０】
また、最適化計算装置１０では、式（１）に適用する任意の係数Ｋを、装置のリソースや最適化問題に応じて、０より大きく１以下の範囲で任意に設定することが可能である。また、最適化計算装置１０では、このＫの値を世代ごとに更新することもでき、世代ごとに進化の速度、すなわち計算速度を柔軟に調整することもできる。
【００９１】
そして、本実施例１は、磁気デバイスの設計最適化への適用も可能である。図１１は、磁性材料の磁束密度と磁界との関係を示す図である。図１１に示すように、実際の磁性材料では、透磁率は必ずしも一定の値を持たず、磁界の強さの関数となり、非線形特性（ヒステリシス）特性を示す。すなわち、この特性は、交流型の外部磁界（横軸）が材料に与えられた時に履歴曲線で囲まれた面積の部分がエネルギー損失となって発生することを意味する。
【００９２】
この磁性材料のヒステリシス特性を考慮して磁性材料やデバイスの設計を行うことは、特に近年、高周波化や省電力化を求められているパワー系の大電力回路・デバイスにおいて重要になってきている。ただし、磁界シミュレータを用いてデバイスの設計最適化の計算を行うために、予め磁性材料のヒステリシス特性を予測して初期形状を決めることが、以前よりも難しくなってきている。また、ヒステリシス特性が改良された磁性材料を従来のデバイスに適用して再設計を行う場合も、前述の理由により初期値が大きくずれてしまい、従来の知見がそのまま使えないという場合が発生する。
【００９３】
このような特性を有する磁性材料を用いるインダクタコアについても、適用結果でも示したように、本実施例１は、有用に適用が可能である。言い換えると、本実施例１は、初期値探索が困難であって磁性材料のヒステリシス特性を考慮すべき磁性材料を使用する磁気デバイスの設計最適化に対しても、目標の制約条件値まで個体群の進化を安定かつ高速に誘導できる。
【００９４】
［変形例１］
なお、最適化計算装置１０において、評価部１３３は、各個体に対応する試作品を実際に作成し、各個体の特性評価を行うことも可能である。
【００９５】
［変形例２］
また、本実施例１では、インダクタコアの形状最適化を行った場合を例に説明したが、これに限らない。最適化計算装置１０は、モータの最適化設計に適用することも可能である。
【００９６】
最適化計算装置１０は、モータの設計最適化を行う場合には、トルク（力）を最大化するように形状の最適化等を行う。さらに、実用上は回転時に（コギングが発生しないように）なめらかなトルクを得る必要がある。このため、トルクＴを最大化するとともに、その最大値Ｔｍａｘと最小値Ｔｍｉｎとの差を一定値内に収める必要がある。
【００９７】
したがって、最適化計算装置１０は、トルクの最大値Ｔｍａｘと最小値Ｔｍｉｎとの差を制約条件として、最大値Ｔｍａｘと最小値Ｔｍｉｎとの差を一定値内に収めながら、トルクが最大となるようなクライアント部材の寸法を最適化として求める。この場合には、制約条件は、例えば、式（８）のように設定される。
【００９８】
【数３】
2019191887.tif 000005
【００９９】
［各装置の各構成要素］
なお、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、最適化計算装置１０の制御部１３の各処理部が適宜統合されてもよい。また、各処理部の処理が適宜複数の処理部の処理に分離されてもよい。さらに、各処理部にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵ（Central  Processing  Unit）及び当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１００】
［最適化計算プログラム］
また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。図１２は、最適化計算プログラムを実行するコンピュータを示す図である。
【０１０１】
図１２に示すように、コンピュータ１０００は、通信インタフェース１１００、ＨＤＤ（Hard  Disk  Drive）１２００、ＣＰＵ１３００、ＲＡＭ（Random  Access  Memory）１４０を有する。これら１１００〜１４００の各部は、バス１５００を介して接続される。
【０１０２】
通信インタフェース１１００の一例としては、ネットワークインタフェースカードなどである。
【０１０３】
ＨＤＤ１２０には上記の最適化計算装置１０の制御部１３と同様の機能を発揮する最適化計算プログラム１２００ａが予め記憶される。すなわち、最適化計算プログラム１２００ａは、最適化計算装置１０と同様の機能を発揮するプログラムとを有する。なお、最適化計算プログラム１２００ａについては、適宜分離してもよい。また、最適化計算プログラム１２００ａは、最適化計算装置１０の通信部１１及び記憶部１２と同様の機能を発揮するプログラムをさらに有してもよい。
【０１０４】
また、ＨＤＤ１２００は、各種情報を記憶する。例えば、ＨＤＤ１２００は、ＯＳや範囲選択の要求分散に用いる各種データを記憶する。
【０１０５】
そして、ＣＰＵ１３００が、最適化計算プログラム１２００ａをＨＤＤ１２００から読み出して実行することで、実施例の各処理部と同様の動作を実行する。すなわち、最適化計算プログラム１２００ａは、最適化計算装置１０の制御部１３と同様の動作を実行する。
【０１０６】
なお、上記した最適化計算プログラム１２００ａについては、必ずしも最初からＨＤＤ１２００に記憶させることを要しない。
【０１０７】
例えば、コンピュータ１０００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ１０００がこれらからプログラムを読み出して実行するようにしてもよい。
【０１０８】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１０００に接続される「他のコンピュータ（またはサーバ）」などにプログラムを記憶させておく。そして、コンピュータ１０００がこれらからプログラムを読み出して実行するようにしてもよい。
【符号の説明】
【０１０９】
１０  最適化計算装置
１１  通信部
１２  記憶部
１３  制御部
１２１  パラメータ記憶部
１２２  集団記憶部
１２３  解候補記憶部
１３０  受付部
１３１  生成部
１３２  事前処理部
１３３  評価部
１３４  設定部
１３５  判定部
１３６  変更部
１３７  選択部
１３８  終了判定部
１３９  出力部
【図１】
2019191887.tif 000007
【図２】
2019191887.tif 000008
【図３Ａ】
2019191887.tif 000009
【図３Ｂ】
2019191887.tif 000010
【図４】
2019191887.tif 000011
【図５】
2019191887.tif 000012
【図６】
2019191887.tif 000013
【図７】
2019191887.tif 000014
【図８】
2019191887.tif 000015
【図９】
2019191887.tif 000016
【図１０】
2019191887.tif 000017
【図１１】
2019191887.tif 000018
【図１２】
2019191887.tif 000019