(57)【要約】  最適化の装置、システムおよび方法。この装置、システムおよび方法は、一最適化モデルの一設計許容差内のすべてのモデルがシミュレートされたときに最適化を終了させる機構を含む。【特許請求の範囲】
【請求項１】
最適モデルを見つけ出す方法であって、
ａ．値を持つ変数を含む基準モデルを指定するステップと、
ｂ．最適化される各モデルの特性を識別する目標を指定するステップであり、その最良のモデルは前記特性での最良の結果を生み出す前記モデルであるステップと、
ｃ．前記変数を変更できる最小量である許容差を指定するステップと、
ｄ．前記変数を変更できる最大量に初期設定されるデルタを指定するステップと、
ｅ．前記基準モデルでの結果を得るために前記基準モデルを実行するステップと、
ｆ．前記現在の最良モデルを前記基準モデルであると識別するステップと、
ｇ．前記変数値を前記現在の最良モデルに前記デルタを足した値に設定することによりプラスモデルを作成するステップと、
ｈ．前記プラスモデルでの結果を得るために前記プラスモデルを実行するステップと、
ｉ．前記変数値を前記現在の最良モデルから前記デルタを引いた値に設定することによりマイナスモデルを作成するステップと、
ｊ．前記マイナスモデルでの結果を得るために前記マイナスモデルを実行するステップと、
ｋ．以前の最良モデルを前記現在の最良モデルに設定し、前記現在の最良モデルを、前記特性での前記最良の結果を有する前記現在の最良モデル、前記プラスモデルおよび前記マイナスモデルのうちの１つに設定するステップと、
ｌ．前記現在の最良モデルが前記以前の最良モデルと異なる場合はステップ（ｇ）から（ｌ）を繰り返すステップと、
ｍ．前記デルタを減じるステップと、
ｎ．前記デルタが前記許容差以上である場合はステップ（ｇ）から（ｎ）を繰り返すステップと、
ｏ．前記現在の最良モデルを前記最適モデルとして識別するステップと
を含む方法。
【請求項２】
最適モデルを見つけ出す方法であって、
ａ．２つの変数、第１の値を持つ第１の変数および第２の値を持つ第２の変数を含む基準モデルを指定するステップと、
ｂ．最適化される前記基準モデルの特性を識別する目標を指定するステップと、
ｃ．前記第１の変数を変更できる最小量である第１の許容差、および前記第２の変数を変更できる最小量である第２の許容差を指定するステップと、
ｄ．前記第１の変数を変更できる最大量に初期設定される第１のデルタ、および前記第２の変数を変更できる最大量に初期設定される第２のデルタを指定するステップと、
ｅ．前記基準モデルを実行するステップと、
ｆ．前記現在の最良モデルを前記基準モデルであると識別するステップと、
ｇ．前記第１の変数値を前記現在の最良モデルの第１の値に前記第１のデルタを足した値に設定することにより第１のプラスモデルを作成するステップと、
ｈ．前記第１のプラスモデルを実行するステップと、
ｉ．前記第１の変数値を前記現在の最良モデルの第１の値から前記第１のデルタを引いた値に設定することにより第１のマイナスモデルを作成するステップと、
ｊ．前記第１のマイナスモデルを実行するステップと、
ｋ．前記第２の変数値を前記現在の最良モデルの第２の値に前記第２のデルタを足した値に設定することにより第２のプラスモデルを作成するステップと、
ｌ．前記第２のプラスモデルを実行するステップと、
ｍ．前記第２の変数値を前記現在の最良モデルの第２の値から前記第２のデルタを引いた値に設定することにより第２のマイナスモデルを作成するステップと、
ｎ．前記第２のマイナスモデルを実行するステップと、
ｏ．以前の最良モデルを前記現在の最良モデルに設定し、前記現在の最良モデルを前記現在の最良モデル、前記第１のプラスモデル、前記第１のマイナスモデル、前記第２のプラスモデルおよび前記第２のマイナスモデルのうち最良のものに設定するステップと、
ｐ．前記現在の最良モデルが前記以前の最良モデルと異なる場合はステップ（ｇ）から（ｐ）を繰り返すステップと、
ｑ．前記第１のデルタおよび前記第２のデルタを減じるステップと、
ｒ．前記第１のデルタが前記第１の許容差以上である場合または前記第２のデルタが前記第２の許容差以上である場合はステップ（ｇ）から（ｒ）を繰り返すステップと、
ｓ．前記現在の最良モデルを前記最適モデルであると識別するステップと
を含む方法。
【請求項３】
最適モデルを見つけ出す方法であって、
ａ．２つの変数、第１の値を持つ第１の変数および第２の値を持つ第２の変数を含む基準モデルを指定するステップと、
ｂ．最適化される前記基準モデルの特性を識別する目標を指定するステップと、
ｃ．前記第１の変数を変更できる最小量である第１の許容差、および前記第２の変数を変更できる最小量である第２の許容差を指定するステップと、
ｄ．前記第１の変数を変更できる最大量に初期設定される第１のデルタ、および前記第２の変数を変更できる最大量に初期設定される第２のデルタを指定するステップと、
ｅ．前記基準モデルを実行するステップと、
ｆ．前記現在の最良モデルを前記基準モデルであると識別するステップと、
ｇ．前記第１の変数値を前記現在の最良モデルの第１の値に前記第１のデルタを足した値に設定することにより第１のプラスモデルを作成するステップと、
ｈ．前記第１のプラスモデルを実行するステップと
ｉ．前記第１の変数値を前記現在の最良モデルの第１の値から前記第１のデルタを引いた値に設定することにより第１のマイナスモデルを作成するステップと、
ｊ．前記第１のマイナスモデルを実行するステップと、
ｋ．前記第２の変数値を前記現在の最良モデルの第２の値に前記第２のデルタを足した値に設定することにより第２のプラスモデルを作成するステップと、
ｌ．前記第２のプラスモデルを実行するステップと、
ｍ．前記第２の変数値を前記現在の最良モデルの第２の値から前記第２のデルタを引いた値に設定することにより第２のマイナスモデルを作成するステップと、
ｎ．前記第２のマイナスモデルを実行するステップと、
ｏ．前記第１の変数値を前記現在の最良モデルの第１の値に前記第１のデルタを足した値に設定すると共に前記第２の変数値を前記現在の最良モデルの第２の値から前記第２のデルタを引いた値に設定することによりプラス−マイナスモデルを作成するステップと、
ｐ．前記プラス−マイナスモデルを実行するステップと、
ｑ．前記第１の変数値を前記現在の最良モデルの第１の値から前記第１のデルタを引いた値に設定すると共に前記第２の変数値を前記現在の最良モデルの第２の値に前記第２のデルタを足した値に設定することによりマイナス−プラスモデルを作成するステップと、
ｒ．前記マイナス−プラスモデルを実行するステップと、
ｓ．前記第１の変数値を前記現在の最良モデルの第１の値に前記第１のデルタを足した値に設定すると共に前記第２の変数値を前記現在の最良モデルの第２の値に前記第２のデルタを足した値に設定することによりプラス−プラスモデルを作成するステップと、
ｔ．前記プラス−プラスモデルを実行するステップと、
ｕ．前記第１の変数値を前記現在の最良モデルの第１の値から前記第１のデルタを引いた値に設定すると共に前記第２の変数値を前記現在の最良モデルの第２の値から前記第２のデルタを引いた値に設定することによりマイナス−マイナスモデルを作成するステップと、
ｖ．前記マイナス−マイナスモデルを実行するステップと、
ｗ．以前の最良モデルを前記現在の最良モデルに設定し、前記現在の最良モデルを、前記現在の最良モデル、前記第１のプラスモデル、前記第１のマイナスモデル、前記第２のプラスモデル、前記第２のマイナスモデル、前記プラス−マイナスモデル、前記マイナス−プラスモデル、前記プラス−プラスモデルおよび前記マイナス−マイナスモデルのうち最良のものに設定するステップと、
ｘ．前記現在の最良モデルが前記以前の最良モデルと異なる場合はステップ（ｇ）から（ｗ）を繰り返すステップと、
ｙ．前記第１のデルタおよび前記第２のデルタを減じるステップと、
ｚ．前記第１のデルタが前記第１の許容差以上である場合または前記第２のデルタが前記第２の許容差以上である場合はステップ（ｇ）から（ｚ）を繰り返すステップと、
ａａ．前記現在の最良モデルを前記最適モデルであると識別するステップと
を含む方法。
【請求項４】
少なくとも１つの局所的最適モデルを見つけ出す方法であって、
ａ．値を持つ変数を含む基準モデルを指定するステップと、
ｂ．最適化される前記基準モデルの特性を識別する目標を指定するステップと、
ｃ．実施される最適化の最大回数を指定するステップと、
ｄ．前記変数の最大値および最小値を指定するステップと、
ｅ．前記変数の前記最大値と最小値の間にある前記変数の異なる値のリストを指定するステップと、
ｆ．前記リストに含まれる前記変数のあらゆる値のモデルを作成するステップと、
ｇ．各モデルの前記特性の値を決定するために作成された各モデルを実行するステップと、
ｈ．実行された各モデルをそれに隣接する１つまたは複数のモデルと比較するステップと、
ｉ．各モデルがそれに隣接する１つまたは複数のモデルより良い前記特性の値を持つ場合は前記モデルを局所的モデルであると識別するステップと、
ｊ．識別されたすべての局所的モデルを順位付けするステップと、
ｋ．各局所的モデルでの局所的最適を見つけ出すために、指定された最適化の最大回数まで各局所的モデルを最適化するステップと
を含む方法。
【請求項５】
少なくとも１つの局所的最適モデルを見つけ出す方法であって、
ａ．それぞれが値を持つ２つ以上の変数を含む基準モデルを指定するステップと、
ｂ．最適化される前記基準モデルの特性を識別する目標を指定するステップと、
ｃ．実施される最適化の最大回数を指定するステップと、
ｄ．各変数ごとに最大値および最小値を指定するステップと、
ｅ．各変数の最大値と最小値の間にある各変数ごとの異なる値のリストを指定するステップと、
ｆ．前記リストに含まれる前記変数の前記値の組合せでのモデルを作成するステップと、
ｇ．各モデルでの前記特性の値を決定するために、作成された各モデルを実行するステップと、
ｈ．実行された各モデルをそれに隣接する１つまたは複数のモデルと比較するステップと、
ｉ．各モデルがそれに隣接する１つまたは複数のモデルより良い前記特性の値を持つ場合は、前記モデルを局所的モデルであると識別するステップと、
ｊ．識別されたすべての局所的モデルを順位付けするステップと、
ｋ．その局所的最適モデルを見つけ出すために、最高位に順位付けされた局所的モデルを指定された最適化の最大回数まで最適化するステップと
を含む方法。
【請求項６】
ａ．最適化される特性および前記特性での所望の値を指定するステップと、
ｂ．前記最適化中に変化させる変数を指定するステップと、
ｃ．設計許容差を、前記変数を変化させるための最小増分に等しく設定するステップと、
ｄ．前記変数の値、およびその設計構成を基準設計構成としてシミュレートするのに必要な他のすべての値を含む設計構成を選択するステップと、
ｅ．前記特性の値に到達するために前記設計構成をシミュレートするステップと、
ｆ．前記基準設計構成変数値に隣接する変数値を持つ設計構成を選択するステップと、
ｇ．前記選択された設計構成をシミュレートするステップと、
ｈ．隣接する設計構成が前記基準設計構成より前記所望の特性に近い特性値をもつ場合は、前記基準設計構成変数値を、前記所望の特性値に最も近い特性値を持つ隣接設計構成の前記設計構成値に設定するステップと、
ｉ．前記基準設計構成より前記所望の特性値に近い特性値を持つ隣接設計構成がない場合は、前記基準設計構成変数値のより近くに隣接する変数値を持つ設計構成を選択するステップと、
ｊ．１つの設計許容差による前記基準設計構成に隣接する変数値を持つすべての設計構成がシミュレートされ、前記基準設計構成の前記特性値が、シミュレートされた他のどの設計構成よりも前記所望の特性値に近くなるまでステップｇ、ｈおよびｉを繰り返すステップと
を含む最適化方法。
【請求項７】
前記目標の前記所望の値が複数の値である請求項６に記載の方法。
【請求項８】
最適化中に第２の変数を変化させる請求項６に記載の方法。
【請求項９】
隣接する変数値が、前記基準設計構成変数値より大きい変数値および前記基準設計構成変数値より小さい変数値を含む、請求項６に記載の方法。
【請求項１０】
前記基準設計構成変数値より大きい前記変数値が、前記基準設計構成変数値に増分を足した値に等しく、前記基準設計構成変数値より小さい前記変数値が、前記基準設計構成値から前記増分を引いた値に等しい、請求項９に記載の方法。
【請求項１１】
ステップｉを実施するたびに前記増分を減じる請求項１０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、その全体が本明細書に組み込まれる現在係属中の、２００１年８月３１日出願の米国特許仮出願第６０／３１６，４６３号の優先権を主張するものである。また、本願は、その全体が本明細書に組み込まれる現在係属中の、２００２年３月２日出願の米国特許仮出願第６０／３６１，２６２号の優先権も主張するものである。
【０００２】
連邦後援研究に関する記述
適用不可能
本発明は、１つまたは複数の最適解または設計を作成する装置、システム、および方法を対象とする。詳細には、本発明は、図表化したときに、適切な解が様々な解領域に存在することを示す複数の山または谷を有する関数に適用可能である。その関数は、エンジンなど、シミュレート可能な装置の性能を表すことができる。本発明は、設計許容差を用いて計算時間を短縮し、最適化プロセスを終了させることができる。
【背景技術】
【０００３】
エンジン性能シミュレーションソフトウェアは、エンジン設計者のツールキットに不可欠なものとなっている。しかし、そうしたソフトウェアを使用した個々の設計の最適化は、しばしば、困難で時間を要することがある。その原因は主として、エンジンを適切に特徴付けるのに必要なパラメータ数、およびそれらのパラメータの相互依存性にある。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、指定された達成目標を満たすためにエンジン設計プロセスを自動化し開発時間を短縮するのに役立つ装置、システム、および方法を記述する。
【課題を解決するための手段】
【０００５】
本発明は、設計を最適化するシステム、方法および装置を対象とする。本発明の一形態によれば、（ｉ）値を持つ変数を含む基準モデルを指定するステップと、（ｉｉ）最適化される基準モデルの特徴を識別する目標を指定するステップと、（ｉｉｉ）変数を変更できる最小量である許容差を指定するステップと、（ｉｖ）変数を変更できる最大量に初期設定されるデルタを指定するステップと、（ｖ）基準モデルを実行するステップと、（ｖｉ）現在の最良モデルを基準モデルであると識別するステップと、（ｖｉｉ）変数値を現在の最良モデル値にデルタを足した値に設定することによりプラスモデルを作成するステップと、（ｖｉｉｉ）プラスモデルを実行するステップと、（ｉｘ）変数値を現在の最良モデル値からデルタを引いた値に設定することによってマイナスモデルを作成するステップと、（ｘ）マイナスモデルを実行するステップと、（ｘｉ）以前の最良モデルを現在の最良モデルに設定し、現在の最良モデルを、現在の最良モデル、プラスモデルおよびマイナスモデルの最良のものに設定するステップと、（ｘｉｉ）現在の最良モデルが以前の最良モデルと異なる場合はステップ（ｖｉｉ）から（ｘｉｉ）を繰り返すステップと、（ｘｉｉｉ）デルタを減じるステップと、（ｘｉｖ）デルタが許容差以上である場合はステップ（ｖｉｉ）から（ｘｉｖ）を繰り返すステップと、（ｘｖ）現在の最良モデルを最適モデルであると識別するステップとを含む最適モデルを見つけ出す方法が提供される。
【０００６】
本発明はまた、最適化を終了させるシステム、方法および装置も対象とする。
したがって、本発明は、従来の最適化装置、システムおよび方法の短所に対する解決法を提供する。したがって、本発明の上記その他の詳細、特徴、および利点は、以下の本発明の好ましい実施形態の詳細な説明においてさらに明らかになるであろうことを、当技術分野の技術者は容易に理解するであろう。
【０００７】
本明細書に組み込まれ本明細書の一部を構成する添付の図面は、本発明の１つまたは複数の実施形態を含み、前述した全体的説明および後述する詳細な説明と共に、本発明を実施するために企図される最良の形態による本発明の原理を開示する役割を果たす。
【発明を実施するための最良の形態】
【０００８】
以下で、好ましい実施形態を詳細に参照し、その例を添付の図面に示す。本明細書に含まれる実施形態の図および説明は、個別関連の要素を図示し説明するものであり、明確にするために、通常のコンピュータおよびコンピュータネットワークで見られる他の要素は除外されていることを理解すべきである。
【０００９】
本設計最適化は、ある種の以前の設計方法およびシステムの短所に対する解決法を提供する。本発明の実施形態をエンジン設計との関連で説明するが、本発明の各態様はエンジン設計以外にも適用可能であることを、当分野の技術者は容易に理解するであろう。例えば、本明細書で開示し特許請求する最適化の技法は、一般に様々な目的および統計的解析のための最適化に適用可能である。本明細書で開示し特許請求する計算の技法は、そうした分散処理が有益な用途に適用可能である。本明細書で開示し特許請求する最適化の技法は、エンジン最適化以外の目的にも利用することもできる。また、本明細書で説明するユーザインターフェイスも、様々な有用な用途に適用可能である。したがって、本発明のある種の実施形態はエンジン設計を対象とするが、本発明およびその態様は、様々な用途において有益であると理解されるものである。この設計最適化の他の詳細、特徴、および利点は、以下の実施形態の詳細な説明においてさらに明らかになるであろう。
【００１０】
本明細書中での「一実施形態」、「ある種の実施形態」へのどんな言及、あるいは一実施形態への同様の言及も、その実施形態との関連で述べる個々の特徴、構造または特性が、本発明の少なくとも１つの実施形態に含まれることを示すためのものである。本明細書中の様々な箇所でそうした語句が見られる場合、必ずしもすべてが同一の実施形態を指すとは限らない。さらに、「または」と述べる場合は、「または」が、またはでつながれた一方または他方の語句、あるいはまたはでつながれた２つ以上の語句を指示できることを含むものである。
【００１１】
本発明を利用して様々な複雑な装置およびプロセスを最適化することができるが、以下の実施形態は、内燃機関の最適化での本発明の使用を対象とする。そうしたエンジンには、そのエンジンの動作に寄与する多くの属性、および多くの望ましい目標がある。内燃機関の属性には、例えば、弁の数量およびサイズ、ピストンの直径および行程、点火タイミング、燃料の送出、量およびタイミング、および排気管の直径および長さなどが含まれる。内燃機関の動作目標には、例えば、燃料消費、排気、トルク、および出力などが含まれる。
【００１２】
以下の説明では、「変数セット」という語を用いて、単一のシミュレーションを実行する際に使用できる１組の変数値を示す。「実行」または「シミュレーション」とは、所与の試験条件の下で１変数セットについてシミュレーションを実行する行為である。「試験手順」とは、その下で１つの「実行」が行われる１組の試験条件である。「結果」とは、試験条件に基づく１組の変数のシミュレーションからの特性または従属変数の値である。「解」という語は、目標を評価するために使用される１つまたは複数の実行のグループを指す。「パス」という語は、１つまたは複数の最良変数セットを見つけ出すために順位付けされる解の集合体を示す。「最適」という語は、１つのパスの順位付けされた解セットからの最良変数セットである、局所的最適を示すために用いる。「モデル」とは、シミュレートすることのできる１組の変数であり、「設計構成」とは１つの設計を実施するモデルである。本発明が、そうした複数の多様な最適解が存在する複数の多様な局所的最適を提供できることは、本発明の利点である。
【００１３】
基準モデルまたは基準設計構成とは、最適化設計を作成するための規則によって変更される属性または構成要素の開始定義である。「最良モデル」とは、目標の指示が１つまたは複数の指定された値に合致することであるときはそれらの値に最も近似したモデルであり、目標が最大の結果値を最大化することであるときはその値を提供するモデルであり、目標が最小の結果値を最小化することであるときはその値を提供するモデルである。基準設計は、その設計をシミュレートするのに必要なすべての属性を含む。設計属性は、設計属性データベースに記憶することができる。本明細書の例で使用する設計はエンジン設計であり、そのため、それらのエンジン例での基準設計構成を「基準エンジン」と呼ぶ。したがって、それらの属性には、例えば、吸気プレナム寸法、吸気管の長さおよび直径、排気管の長さおよび直径、吸気弁直径、排気弁直径、およびシリンダの長さおよび直径などの寸法データが含まれ得る。また、それらの属性には、例えば、吸気圧、排気圧、およびスロットル位置を含む感知データなど、他のデータも含まれ得る。属性はさらに、一般に組合せとして使用される排気管長さおよび排気管直径をグループ化して排気管構成部品を定義できるように、例えば構成部品ごとに論理的にグループ化することもできる。次いで、一構成部品のすべての属性が一意のエンジン構成部品名の下にグループ化されるように、それらの構成部品に名前を割り当てることができる。次いで、本最適化は、１つまたは複数の目標を達成するために、選択された属性を変化させ、そうした可変の属性を有するエンジンの動作をシミュレートすることができる。
【００１４】
図１に本発明の設計最適化１００を示す。図１に示す実施形態では、設計最適化１００は、２段階の動作、設計および実行を含む。設計は、目標を指定するステップ１０２、変数を指定するステップ１０４、制約条件を指定するステップ１０６、実験設計を指定するステップ１０８および最適化を指定するステップ１１０を含む。実行段階は、探究１１２および解決１１４を含む。
【００１５】
１０２で、最適化の１つまたは複数の目標を含む目的を指定する。この目的は所望の最適化結果の定義である。目標は少なくとも３つの構成部分、特性、指示、および値を含むことができる。各特性は、例えばエンジンの性能特性など、最適化される実体である。指示は、その特性に関して何を達成したいかを指示する。指示は、例えば、その特性の値を最大化せよという命令、その特性の値を最小化せよという命令、あるいはその特性の１つまたは複数の所望の値に合致させよという命令とすることができる。値は、各設計構成が所望の結果に接近する程度を比較するための目的基準を提供する。一定の状況では、最小化または最大化される目標は関連する値を持たないことがあり、合致させる目標は、通常は、少なくとも１つの関連する値を持つはずである。
【００１６】
本例の目標は、試験手順で指定されたエンジン動作領域を通じて最大出力を達成するという特異な目標である。したがって、その特性は出力であり、その指示はその出力を最大化することである。
【００１７】
試験手順は、例えば、動作領域、その領域を通じての順次の増分、各回転数刻みでシミュレートするエンジンサイクル数、エンジンが使用する燃料、スロットル位置、および周囲条件を指定することができる。領域は、例えば、５０００回転／分（ｒｐｍ）から１０，０００ｒｐｍとすることができ、増分は、その領域全体を通じて１０００ｒｐｍ刻みとすることができる。燃料は、例えば、ガソリンまたはディーゼルとすることができる。周囲条件は、吸気点および排気点における気温、気圧、および湿度を含む。
【００１８】
前述したように、目標は、最小化し、最大化し、あるいは所望の値または値のセットに合致させることができる。合致が求められる場合、目標に関連する値は、例えば、曲線または曲線を定義する値のセットに合致させることができる。また、目標をその設計に関する限界として利用することもできる。例えば、上限、下限、または上限と下限両方のある帯域を用いて目標を設定することができる。さらに、１つのシミュレーションに対して２つ以上の目標を設定することもできる。したがって、ユーザは、例えば、エンジンの排気中の一酸化炭素に特定の上限を設定して、所望の出力曲線に合致させようと試みることができる。この例では、その上限より大きい一酸化炭素レベルをもたらすすべての結果は無視され、その上限を下回る一酸化炭素レベルの、その出力曲線に最も適合するものが結果として提供されることになる。
【００１９】
上限は、設計構成が受け入れられないあるパラメータより大きいパラ−タに対する値または値セットである。上限は、例えば、燃料消費などのパラメータに設定され、燃料消費について過度に非効率なる設計を防止する。この上限をいずれかの点で超過した場合は、その変数セットでのシミュレーションは失敗したと見なすことができる。
【００２０】
下限は、それを下回ると設計構成が受け入れられないあるパラメータに対する値または値セットである。下限は、例えば、出力などのパラメータに設定され、出力が低くなりすぎる設計を防止する。ある変数セットが、シミュレーション中に任意の点で下限を下回る値を生み出した場合、その変数セットでのシミュレーションは失敗したと見なすことができる。
【００２１】
制限帯域は上限と下限を含み、それによって、シミュレーション中に任意の点で、ある変数セットで上限を超過した場合、あるいはその変数セットがシミュレーション中に任意の点で下限を下回る値を生み出した場合は、その変数セットでのシミュレーションは失敗したと見なすことができる。
【００２２】
失敗した変数セットは、通常は、最良結果を決定するための変数セットの順位付けには使用されない。
戦略とは、目的を得るために使用されるプロセスである。戦略は１つまたは複数の変数を含み、１つまたは複数の制約条件を含むことも含まないこともある。
【００２３】
１０４で、最適化される変数を指定する。「最適化される」変数とは、目標を達成するために最適化シミュレーションにおいて変化させる変数である。本明細書で例として説明する実施形態では２つの変数、排気管長さおよび排気管直径が最適化される。最適化される各変数の初期値を割り当てることができる。次いで、それについてシミュレーションを実行する値の境界を設定する。本願では、そのエンジンで運転する車両に適合するように、長さ１００ｍｍから１０００ｍｍの間の排気管が好ましいと決定された。また、本願では、その車両に適合するように直径１００ｍｍから２００ｍｍの間の排気管が好ましいと決定された。長さ１００ｍｍから１０００ｍｍの間の排気管だけを考察するので、排気管長さの境界は１００ｍｍと１０００ｍｍである。同様に排気管直径の境界は、１００ｍｍと２００ｍｍである。各変数がグリッドの軸を表すとすれば、これらの境界で囲まれた区域を図として見ることができ、それを「設計空間」と呼ぶ。
【００２４】
シミュレートされるエンジンの数は、実際上は、最適化中に変化させることが可能な変数または属性と共に許容差を使用することによって制限することができる。許容差は、シミュレートされる変数値が許容差点にある値だけに限られるように、一変数に求められる最小増分に設定することができる。許容差を使用しないと、どんな設計空間にもシミュレートすべき設計数が無限に存在するはずである。許容差を使用することによって、設計空間中の無限小の段階がなくなり、一設計空間に有限数のシミュレーションだけしか存在し得なくなる。許容差を使用するときは、シミュレートされる変数値を最も近い許容差点にまで丸め、許容差点の間にある値はシミュレートしない。設計許容差は製造許容差と同等にすることもできるが、単に、設計者がその最適化を考察したいと望む段階ごとの量とすることもできる。例えば、長さが１０ｍｍ刻み、直径が１ｍｍ刻みの排気管を考察しようとすることができる。したがって、排気管長さの許容差を１０ｍｍに、排気管直径の許容差を１ｍｍに設定することができる。図式的には、ここでは境界を定められた設計空間を、各許容差の倍数ごとに位置する点を有するグリッドとして見ることができる。許容差に関しては、変数の大きさなど、その変数の関数に基づく大域的許容差を設定することができる。ただし、必要な場合は、一変数の許容差を任意の値に設定することもできる。また、許容差点をゼロ以外、またはその許容差の別の倍数で開始できるように、許容差を偏移させることもできる。したがって、例えば排気管を、２５ｍｍから開始して１０ｍｍ刻みで考察し、それによって許容差オフセットを実現することができる。その場合、考察される排気管長さは、２５ｍｍから１０ｍｍ刻み（例えば、２５ｍｍ、３５ｍｍ、４５ｍｍなど）になるはずである。
【００２５】
また、許容差ごとに設定された変数を有する最適化は、その最適化プログラムでの自然終了も提供する。最適化がそこから実施される点の周囲にあるすべての許容差点がシミュレートされ、それがより良い特性値をもたらさないと、その最適化を終了することができる。さらに有益なことに、許容差に基づくシミュレーションを使用すれば、シミュレーション実行回数が低減される。というのは、相互に近くにある変数値が同じ許容差点に丸められ、同じ点のシミュレーションを２回実施する必要がないからである。むしろ、本発明は、シミュレートされる変数セットが以前にシミュレートされた変数セットと同じであると認識することができ、したがって、その同じ変数セットを２回目にシミュレートすることはない。
【００２６】
１０６で、助変数方程式を含めて、制約条件を指定する。初期設計属性は、定数値として定義することも助変数方程式によって定義することもできる。本明細書では、助変数方程式を一種の制約条件と呼ぶ。助変数方程式は、１つまたは複数の他の属性の観点から１つの属性を定義する。助変数方程式で定義される属性は、通常は最適化されない。ただし属性は、最適化される変数が変化するに従って変化することがある。例えば、管の入口直径は、それが接続されるポートの直径に等しいと定義することができる。あるいは、助変数方程式は、出口直径を入口直径と等しくすることによって、並列管などの構成部品の形状を定義することもできる。したがって、管の入口と出口が等しい構成だけを考察することが保証される。助変数方程式の別の例としては、エンジンの行程を、そのエンジンの排気量および内径行程比に基づくものとすることもできる。
【００２７】
本発明の一実施形態では、設計空間中の設計構成での変数セットは２段階でシミュレートされる。第１の段階は、本明細書では探究と呼ばれ、設計空間の様々な領域にある変数セットをシミュレートし、第２の段階は、本明細書では最適化と呼ばれ、設計空間の最も有望な領域にある設計構成をシミュレートする。探究では、設計空間中のどの１つまたは複数の領域が最も有望であるか決定するために、少数の変数セットを選択する。したがって例えば、各変数ごとに考察される値の範囲全体に均一に分散されるように、各変数ごとに３つの値を選択することができる。最適化では、それらの領域で最適解を見つけ出すために、探究で探究された最も有望な設計構成に隣接する設計構成をシミュレートする。
【００２８】
１０８で、実験設計の属性を指定する。実験設計属性は、探究１１２および最適化１１４でいくつの設計構成をシミュレートするかを決定する。実験設計属性は、各変数ごとに探究されるレベル数、さらなる考察に必要な最良実行数、さらなる考察に必要な他の領域数、および実行回数限度を含む。レベルとは、探究中に考察される、各変数ごとの値の数である。各変数が考察すべき最小値で始まり考察すべき最大値で終わるグラフ上の軸を定義するものとして図式的に見ると、レベルは、探究１１２において各軸についてシミュレートされる点の数である。したがって、探究１１２でシミュレートされる解の数は、各変数ごとのレベル数の積である。
【００２９】
実験設計を指定するステップ１０８のときには、その変数の大域的（ｇｌｏｂａｌ）レベルまたは局所的（ｌｏｃａｌ）レベルを設定することができる。すべての変数に大域的レベルを割り当てたときは、各変数ごとに同数の値が考察される。例えば、デフォルトで３という大域的レベルを提供することができる。各値ごとに３つの値が選択された場合、探究で考察される設計構成数は３nであり、ここでｎは、その設計構成中の変数の数に等しい。
【００３０】
各変数ごとに局所的レベルを設定したときには、探究時に考察される値の数は、各変数ごとに個々に選択される。さらに、デフォルトとして大域的レベルを提供し、かつ探究される変数の１つまたは複数に対して指定変更の局所的レベルを指定することもできる。また、ある変数についての探究１１２が無効になるように、レベルをゼロに指定することもできる。あるいは、ユーザが探究１１２での考察のために値を指定することもでき、別の技法を用いて探究１１２で使用される値を選択することもできる。
【００３１】
設計構成をいくつ保持すべきかを最適化１１４に指示するために、最良実行数を指定することができる。というのはそれらが目標に最もよく近似するからである。それらの最良設計構成は、しばしば、単一領域中で相互に近接して存在する。ただし、最良設計構成は、設計空間のまったく異なる部分に存在することもあり、探究１１２で見つかった複数の設計構成を最適化することによって生じることもある。
【００３２】
設計空間の１つまたは複数の局所的最適領域（最良設計構成を含まない領域）にある最適設計構成を提供するように求められることもある。例えば、ある局所的最適領域中にある解が設計者を満足させるに十分なほど目標に近接しており、実装する際の費用効果が実質上より大きいことがある。したがって、最適化１１４によって局所的最適領域内の設計構成も提供されるように、提供すべき他の領域の数を指定することもできる。
【００３３】
また、シミュレートされる設計構成数に限度を設定するように、実行数限度を指定することもできる。この実行数限度は、シミュレート可能な設計構成の総数からシミュレートされる設計構成をランダムに選択することによって実施することができる。さらに、コンピュータシステムで乱数発生のシードを指定し、それによって、同じシードを選択することにより同じ設計構成がシミュレートされ、異なるシードを選択することにより異なる設計構成がシミュレートされるようにすることができる。
【００３４】
１１０では最適化を指定する。最適化では、探究１１２で選択された各領域中の最適解を見つけ出すために、基準設計シミュレーションから隣接する各設計構成へと進むことによって隣接する設計構成をシミュレートする。この最適化指定段階では、最適化１１４で変数を組み合わせるかどうか、およびどのように変数を組み合わせるかを決定する。前述したように、変数は、個別に最適化することも、組合せとして最適化することもできる。最適化１１４中には各ステップを、隣接する設計構成をシミュレートするときに１つの変数だけしか変更しない場合は「個々」として、隣接する設計構成をシミュレートするときに少なくとも２つの変数の組合せを変更する場合は「組合せ」として適用することができる。図７ａに、変数を個々に変更し、シミュレートされる４つの新規設計構成を作成する例を示し、図７ｂに、変数を組合せとして変更し、シミュレートされる８つの新規設計構成を作成する例を示す。この例に見られるように、パラメータを組合せとして考察するときは、個々に考察するときよりもはるかに多くの設計構成が、最適化システムによって考察のために提示される。
【００３５】
すべての変数を組み合わせても組み合わせなくてもよく、変数の下位セットを１つまたは複数の組合せとして組み合わせてもよいと考えられる。
さらに、ステップおよびステップデルタ開始および終了係数を指定することもでき、閾値を指定することもでき、最適化方法を指定することもでき、最適化の各パスごとの実行数の限度を指定することもできる。各変数ごとにステップサイズを定義する。ステップは、最適化で考察される、基点から見て正または負の側にあるグリッド上の区域を順に定義する。１つの有用なステップサイズは、探究点間の距離であり、これは、基点から周囲の各探究点までの最適化をもたらす。ステップデルタ開始および終了係数は、ステップまたはステップの一部の百分率として定義することができる。ステップデルタ開始係数は、第１の最適化パスがそこで発生する基点からの距離を、ステップの一部として定義する。ステップデルタ終了係数は、その最適化が他の手段によって終了されない場合は最後の最適化パスがそこで発生する基点からの距離を、ステップの一部として定義する。さらに、１つまたは複数の変数を最適化１１４から除くこともできる。というのは、それらの変数は探究１１２のためだけにしか必要とされないからである。
【００３６】
ステップデルタ係数は、最適化で、探究グリッド上の２つの隣接点間の距離の一部に基づいて変数セットに新規の値を決定するために使用される。閾値は、最適化が完了したかどうか判定するために各パスごとに評価される。したがって、最適化は、閾値に達したときに終了することもあり、あるいは他の理由で閾値に達する前に終了することもある。例えば、最適化が終了し得る別の理由とは、基点を取り囲む設計空間中のすべての許容差での設計構成がシミュレートされたがより良い結果が見つからなかったためなどである。
【００３７】
本実施形態での最適化方法は、最急降下法（ｓｔｅｅｐｅｓｔ  ｄｅｓｃｅｎｔ  ａｎａｌｙｓｉｓ）に基づくものである。あるいは、ダウンヒルシンプレックス法（ｄｏｗｎｈｉｌｌ  ｓｉｍｐｌｅｘ）や他の形式の分析法を用いることもできる。ダウンヒルシンプレックス法は、徐々に進行し続けるために小変化に依存するので、一切の組合せが不可能であり、許容差との組合せでは理想的に機能しないことがある。
【００３８】
各パスでシミュレートされる実行数の限度は、そうした限度が必要な場合に指定することができ、その限度を超える場合には乱数発生のシードを指定することができる。
探究１１２中に設計空間は、各変数のレベルまたは他の指定値に基づきすべての変数を組み合わせて探究される。最初に基準シミュレーションを実行することができる。基準シミュレーションは、他のシミュレートされる構成との比較のために実行することもできる。したがって例えば、車両用エンジンは、排気管の長さおよび直径を変化させることによって出力を最適化することができる。このシミュレーションは、すべての設計構成での完全なエンジンを定義する基準シミュレーションからの値を利用し、排気管の長さおよび直径だけを変化させることができる。したがって、最適化されるエンジンが現在長さ７００ｍｍ直径１５０ｍｍの排気管を使用している場合、基準シミュレーションでのエンジン速度の所望の範囲にわたって、その構成での出力を決定することができる。この例でのエンジン速度の範囲は、５０００から１０，０００ｒｐｍである。次いで、基準シミュレーションの結果を、最適化中に検討された排気管の長さおよび直径のそれぞれの変動値と比較することができる。
【００３９】
ただし、基準シミュレーションを実行することが必要であるとは限らない。どの変数構成が最良であるか判定するために、単にシミュレーション結果を順位付けすることもできる。探究１１２では、変数に設定された境界内の（本例では排気管の長さ１００ｍｍから１０００ｍｍおよび直径１００ｍｍから２００ｍｍでの）様々な定義点における結果（本例ではエンジン出力）を計算することができる。次いで、それらの結果を順位付けしてどの変数構成が最良の結果を提供するか判定することができる。
【００４０】
図２に、排気管の長さおよび直径の１組のシミュレーションを図で示す。出力性能を、最小排気管長さ１００ｍｍを左側境界として設定し、最大排気管長さ１０００ｍｍを右側境界として設定し、最小排気管直径１００ｍｍを下側境界として設定し、最大排気管直径２００ｍｍを上側境界として設定した横長平面上に地形図で示す。図２では、設計空間中の出力コンターの値の一例を明示するために、高分解能で探究を実施した。
【００４１】
図３に、本発明の探究１１２の組合せ値を決定する方法２３０を示す。この方法２３０は、２つの変数に対応する２次元グリッドを作成するように視覚的に動作する。ただし、本発明を用いていくつの変数でも最適化できることが理解されるはずである。各変数の範囲は、その変数の最大境界値からその変数の最小境界値を引いた値に等しい。２３２で、カウンタ「Ｎ」を１に設定する。２５２および２５４に見られるように、そのカウンタを、図示の実施形態では排気管長さ（「Ｌｅｎ」）である、第１の変数に設定されたレベルに達するまで増分する。２３４で、長さの範囲を等分する一ステップを計算する。２３６を最初に実行するときには第１の長さ部分の変数値を計算する。したがって２３６では、図で示せば、Ｘ軸上の最小長さから第１の実験設計点での長さ範囲に至る距離を求める。次に、第１の実験設計点の位置を正確に示すためにＹ軸上の最小直径からその第１の実験設計点までの距離を求める必要がある。したがって、２３８で排気管直径のネスト状（ｎｅｓｔｅｄ）ループに入る。２３８で、カウンタ「Ｍ」を１に設定する。２４８および２５０で見られるように、そのカウンタを、図示の実施形態では排気管直径（「Ｄｉａ」）である、第２の変数に設定されたレベルに達するまで増分する。２４０で、直径の範囲を等分する一ステップを計算する。２４２を最初に実行するときには第１の直径部分の変数値を計算する。したがって、２つの変数だけを考察する本実施形態では、シミュレートされる第１の実験設計点の排気管長さおよび排気管直径は、ステップ２３６の結果の長さとステップ２４２の結果の直径の交点である。
【００４２】
図３に示す方法によって重複した変数値が生じる可能性のある、ある種の実施形態では、シミュレートされる変数値をデータベースまたはテーブルに記憶する。各反復でシミュレーションの実行に使用する新規の変数セットが作成される都度、その変数セットをデータベースに記憶された変数セットと比較する。したがって、ある変数セットがデータベースにすでに存在している場合は、シミュレーションリソースを浪費しないようにその複製の変数セットを廃棄することができる。したがって、２４４では、２３６および２４２で求めた長さおよび直径を、以前に計算しデータベースに記憶した値と比較する。長さおよび直径の値が以前の値に合致した場合は、現在の値を記憶せず、２４８に戻って次の実験設計点を計算する。しかし、長さおよび直径の値がデータベースに保存された値に全く合致しなかった場合は、２４６でその後のシミュレーションのために現在の実験設計値をデータベースに保存する。
【００４３】
２４８で、カウンタ「Ｍ」が第２の変数「直径」に選択されたレベルより小さい場合は、２５０でカウンタ「Ｍ」を増分し、２４２に戻って次のステップでの所望の直径値を計算する。カウンタ「Ｍ」が第２の変数「直径」に選択されたレベルと等しい場合は、プロセスは２５２に進む。２５２で、カウンタ「Ｎ」が第１の変数「長さ」に選択されたレベルより小さい場合は、２５４でカウンタ「Ｎ」を増分し、プロセスは２３６に戻って次のステップでの所望の長さを計算する。カウンタ「Ｎ」が第１の変数「長さ」に選択されたレベルに等しい場合は、２５６でプロセスを終了する。
【００４４】
図３の実験設計値の決定方法２３０で計算された値をデータベースに保存する必要はないが、例えば、計算した直後にそれらをシミュレートすることもできることが理解されるはずである。しかし、図３との関連で説明した方法は、有益には重複シミュレーションをなくす。また、第１の変数のループを増分するときには、直径値は第１のパスで計算された値と合致することになるので直径点を再計算する必要はないことにも留意すべきである。したがって、再帰的アルゴリズムを有益に用いて、シミュレートされる実験設計点を効率良く決定することができる。
【００４５】
図４に、個々の実行で使用される変数の値が所望の範囲内に含まれ、許容差点上にある所望の大きさのものであることを保証する許容差方法１３０を示す。本実施形態のように、各解で考察される複数の変数がある場合は、一変数のパラメータを選択する方法１３０を、考察される各変数ごとに一回実施する必要がある。１３２で、許容差方法に所望の開始値を入力する。１３４〜１４２では、許容差方法１３０は、入力開始値がその変数に設定された最大境界以下であることを保証し、１４４〜１５２では、許容差方法１３０は、入力開始値がその変数に設定された最小境界以上であることを保証する。
【００４６】
１３４で、開始値をチェックしてその変数の最大境界より大きいかどうか判定する。開始値がその変数に設定された最大境界より大きかった場合は、１３６で、開始値に最大境界の値を与える。１３８で、開始値を、開始値を許容差で割った値の整数に許容差を掛けた値に設定する。あるいは１３８で整数以外の値を指定することもできる。したがって、１３８では開始値は必ず、許容差の倍数に設定される。一例を挙げると、１００５ｍｍの排気管長さが入力され、考察される最大長さが１０００ｍｍであり、許容差が１０ｍｍである場合は、開始値は１３６で１０００ｍｍの最大長さに設定されることになる。（１０００ｍｍ／１０ｍｍ）の整数×１０ｍｍは１０００ｍｍである。したがって、１０００ｍｍは１０ｍｍの許容差の倍数であることが確認される。
【００４７】
１３８で整数丸め関数が使用され、かつ境界が許容差の倍数に設定されなかった場合は、１３８の式の結果が境界の範囲外になる可能もある。したがって、１４０および１４２で、開始値が最大境界設定より大きかった場合は、本方法では開始値から一許容差を差し引く。
【００４８】
１４４で、開始値をチェックして、その変数の最小境界より小さいかどうか判定する。開始値がその変数に設定された最小境界より小さい場合は、１４６で開始値に最小境界の値を与える。１４８で、開始値を、開始値を許容差で割った値の整数に許容差を掛けた値に設定する。したがって、１４８では開始値は必ず許容差の倍数に設定される。１５０および１５２で、開始値が最小境界設定未満であった場合は、本方法では開始値に一許容差を足し、１５４で許容差方法を終了する。
【００４９】
探究１１２中には、境界内に均一に分散した変数の値のセットを生成することができ、それらの各セットごとにシミュレーションを実行する。本実施形態では、まず探究されるすべての値のセットを計算し、次いで各シミュレーションを実行する。この順序の利点は、複数のシミュレーションを同時に実行できることである。この順序は、シミュレーションを同時に実行するために複数のプロセッサが使用可能なコンピュータネットワーク上でシミュレーションを実施する場合は特に有利である。しかし、変数値が決定される際に交互にシミュレーションを実行することもできる。
【００５０】
図５に、本発明の探究１１２実施の方法を示す。２０２で、境界内の様々な実験設計点における変数の値を決定する。それらの点は、考察される値の範囲全体にわたる解のサンプリングを行えるように、通常は、各変数ごとに設定された各境界の間にグリッドの様に位置する。２０４で、各実験設計点に対して解を実行し、それら実験設計点ごとに目標に対する結果を決定する。２０６で、目標に最も近接する解を先頭にし目標から最も遠い解を最後尾として解を順位付けする。２１０で、所望の最良解の数を収集する。２１２で、例えば、最急上昇法を使って、最良局所的解を求める。最急上昇法は、（ｉ）各点での最急上昇を決定すること、および（ｉｉ）どの隣接点に向かっても上昇しなかったすべての点の集合体を作成することを含む。上昇は、隣接点がより望ましい結果を持つ場合に発生する。最急上昇は、すべての隣接点のうち最も望ましい結果を有する点に向かって発生する。２１８で、２１０で最良解であると判定された点があればそれを除き、最良局所解を順位付けする。次に２１８では、他の所望の局所解の数に等しい数の局所的最良解を選択する。
【００５１】
探究１１２で作成された実行数が実行回数限度を超過した場合は、実行されるシミュレーション数が実行回数限度に等しくなるまで、変数セットを選択し、あるいは選択解除する。選択または選択解除は確率化に基づくものとすることができる。さらに、この確率化は、結果が反復可能または所望どおりに変更可能であるようにシードに基づくものとすることができる。
【００５２】
図６に最適化１１４を示す。「基点」という語を用いて、解パスがそこから発生する点を表す。最適化では基点に隣接する設計構成をシミュレートし、最良設計構成を選択する。そのパスの最良設計構成は、所望の１つまたは複数の目標値を最もよく近似する１つまたは複数の値を生じる設計構成である。次いで、１つのパスからの最良設計構成は、次の最適化パスの基準設計になる。一パス中のどの生成済み設計構成もその基準設計構成を改善しなかった場合は、その基準設計により近い設計空間中の設計構成が次のパスでシミュレートされることになる。次のパスに新規の基準エンジンを選択するとき、そのプロセスを「移行」と呼ぶ。次のパスに同じ基準エンジンを保持し、その基準設計により近い設計構成のシミュレーションを実施するとき、そのプロセスを「縮小（ｓｈｅｉｎｋ）」と呼ぶ。したがって、移行では、基準エンジンをグリッド上の１つの位置から別の位置に移動して、その改善されたエンジンの周囲に他のエンジンを生成できるようにする。縮小では、基準エンジンをその現在の位置に維持し、その基準エンジンにより近い代替エンジンを生成する。
【００５３】
ステップサイズは、最適化の指定１１０中に指定されたステップデルタに基づくものである。最適化は、ステップデルタ終了係数に達し、あるいは基点に隣接するすべての許容差での設計構成をシミュレートしたがより良い特性結果が見つからなかったことが判明するまで、移行および縮小のプロセスを続行することができる。したがって例えば、ステップデルタ開始係数はステップデルタの６４％とすることができ、ステップデルタ終了係数はステップデルタの１％とすることができる。それによって、縮小パスが発生するに従って、最初は基点からそのステップの６４％、次いで基点からそのステップの３２％、基点からそのステップの１６％、基点からそのステップの８％、基点からそのステップの４％、基点からそのステップの２％、基点からのステップの１％と、設計をシミュレートすることができる。前述したように、移行中には、現在のパスとオーバーラップする以前のパスからのエンジン設計は、以前に生成されているために、再生成用には選択できない。
【００５４】
最適化は、３０２で、縮小係数を以前に指定されたステップデルタ開始係数に設定することによって開始される。探究点間のステップサイズの６４％である縮小係数を有する第１のパスが有益であることが実験を通じて確認されており、したがって、以下の例では６４％の縮小係数を使用し、各変数ごとの探究点間の距離を各変数ごとのステップサイズとして使用する。
【００５５】
３０４で、現在の基点から伝播するシミュレーションの値を決定する。図７ａおよび図７ｂに見られるように、各解パスは個々に実施することも組合せとして実施することもできる。図７ａに長さおよび直径変数について個々に発生する解パスを示し、図７ｂに長さおよび直径変数について同時に発生する解パスを示す。この２変数の例では、図７ａに図示するように、変数に対して個々に解パスを実施した場合、（ｉ）直径のプラスモデルと呼ぶことのできる、基点の長さ値および基点の直径に直径方向に探究ステップの６４％を足した値、（ｉｉ）直径のマイナスモデルと呼ぶことのできる、基点の長さ値および基点の直径から直径方向に探究ステップの６４％を引いた値、（ｉｉｉ）長さのプラスモデルと呼ぶことのできる、基点の長さに長さ方向に探究ステップの６４％を足した値および基点の直径値、および（ｉｖ）長さのマイナスモデルと呼ぶことのできる、基点の長さから長さ方向に探究ステップの６４％を引いた値および基点の直径値で、基点に隣接する、シミュレートされる別の値をシミュレータに選択させることになるはずである。本例では、図７ｂに図示するように、変数を組合せとしてこの解パスを実施した場合は、個々の解パスで選択された別の値と共に、（ｉ）プラス−プラスモデルと呼ばれる、基点の長さに該基点の長さ方向に探究ステップの６４％を足した値および基点の直径に直径方向に探究ステップの６４％を足した値、（ｉｉ）プラス−マイナスモデルと呼ばれる、基点の長さに該基点の長さ方向に探究ステップの６４％を足した値および基点の直径から直径方向に探究ステップの６４％を引いた値、（ｉｉｉ）マイナス−プラスモデルと呼ばれる、基点の長さから該基点の長さ方向に探究ステップの６４％を引いた値および基点の直径に直径方向に探究ステップの６４％を足した値、および（ｉｖ）マイナス−マイナスモデルと呼ばれる、基点の長さから該基点の長さ方向に探究ステップの６４％を引いた値および基点の直径から該基点の直径方向に探究ステップの６４％を引いた値のところにある別の値をシミュレータに選択させることになるはずである。
【００５６】
１回のシミュレーションで２つ以上の変数を考察する場合は、任意の２つ以上の変数を組み合わせ、他の変数は個々に、または別の組合せとして考察できることに留意されたい。さらに、本発明では、以前のパスの最良解からの結果における改善の度合いに基づく動的な変数の組合せが企図される。この動的組合せには、例えば、以前のパスの最良結果で変更された任意の変数と他の未変更の変数との組合せが含まれ得るであろう。あるいは、以前のパスの最良結果で変更された変数のいずれかまたはすべてを組み合わせることもできる。さらに、最後のパスで変更された変数のいずれかまたはすべてを、未変更の変数のいずれかまたはすべてと組み合わせることもできる。例えば、各未変更の変数を、以前のパスで変更された変数のいずれかまたはすべての組合せと組み合わせることもできる。
【００５７】
３０６で、図４に示す許容差方法をすべての変数に適用する。
前述したように、シミュレートされた変数セットをデータベースに記憶し、新規に決定された変数セットをその以前にシミュレートされた変数セットと比較して、重複する変数セットを廃棄しそれが２回目にシミュレートされることのないようにすることができる。したがって、３０８では、３０４および３０６で決定された変数セットをすでにシミュレートされた変数セットと比較し、３１０では、非重複変数セットをデータベースに保存する。
【００５８】
３１１で、１つの最適化パスで作成された実行数が実行回数限度を超えた場合は、実行されるシミュレーション回数が実行回数限度と等しくなるまで、変数セットを選択または選択解除する。選択または選択解除は、確率化に基づくものとすることができる。さらに、確率化は、結果が反復可能または所望どおりに変更可能なように、シードに基づくものとすることができる。
【００５９】
３１２で、現在の基点の周囲でシミュレートすべき他のシミュレーションが存在するかどうか判定する。本実施形態は許容差に基づくものであるため、解パスを実施する際に、基点の周囲にある許容差のすべての倍数を探究し終える時刻が生じ得る。基点の周囲にあるすべての許容差の倍数を探究し終えると、その解プロセスは３２２に進む。基点の周囲にあるすべての倍数を探究し終えていない場合は、解プロセスは３１４に進む。
【００６０】
３１４で、一パス中の各変数値に対してシミュレーションを実行し、３１６で、最新のシミュレーション結果を以前のシミュレーション結果と比較して、その時点までの最良シミュレーション結果を見つけ出す。
【００６１】
３１８で、最後の解パスでの結果の１つが以前の最良結果より良く、それが以前の最良結果より閾値を上回るだけ大きいかどうか判定する。最後の解パスでの結果の１つが最良の結果であった場合は、３２０で最良結果を有する新規の点に基点をリセットし、３０４に戻る。最後の解パスでの結果がどれも最良結果でなかった場合は、解プロセスは３２２に進む。３２２で、現在の百分率を２または何らかの他の因数で割り、３２４で現在の百分率がステップデルタ終了係数より小さいかどうか判定する。現在の百分率がステップデルタ終了係数以上であった場合は、プロセスは３０４に戻って、例えば、基点からの距離の半分のところで、別の解パスを作成する。現在の百分率がステップデルタ終了係数より小さかった場合は、３２６で最適化が終了する。もちろん、ステップデルタ終了係数の百分率で終了することが必要とは限らないが、これによって、それ以上のシミュレーションから導出されるメリットが極めて少ない点を過ぎてもシミュレーションが続行されることを防ぐことができる。
【００６２】
最適化の結果は、正規化することができる。例えば、各目標の大きさの差を説明するように結果を正規化することができる。したがって、正規化された結果は、平均結果の百分率に基づくものとすることもできる。また、各目標が様々な重要度を有するものである場合は、１つの目標に別の目標よりも大きい重み付けを与えるように、結果を重み付けすることもできる。
【００６３】
目標との関連で使用できる一技法を、本明細書では「合致設計（ｍａｔｃｈ  ｄｅｓｉｇｎ）と呼ぶ。合致設計は、出力や燃料消費などのような、誤差値を生み出すように適合された最小二乗を計算することによってシミュレーションの結果を評価するための１組の値の仕様である。誤差値は、例えば、各目標の結果の大きさでの差を説明するようにさらに正規化することができる。したがって、正規化された誤差値は、平均結果が所望の合致と異なる割合に基づくものとすることもできる。また、各目標が様々な重要度を有するものである場合は、１つの誤差値に別の誤差値より大きい重み付けを与えるように、誤差値を重み付けすることもできる。
【００６４】
図８に、シミュレーション中に非同期に発生し得るプロセスを示すシミュレーション探究プログラムのポップアップメニュー３５０を示す。このシミュレーション探究プログラムポップアップメニュー３５０から選択できる機能には、保留３５２、優先度３５４、完了とマーク３５６、および状況を最適化３５８が含まれる。
【００６５】
保留３５２は、ユーザが最適化を一時休止する方法である。現在最適化を保留にしているときは、探究プログラムのポップアップメニュー３５０に「保留」の代わりに「解除」が表示される。優先度３５４は、処理するための複数の最適化が使用可能である場合にどの最適化を実行するかを変更する方法である。
【００６６】
動的優先度は、最適化が、同時に実行することのできる他の最適化との関連でそれ自体の優先度を決定するために使用する自動プロセスである。動的優先度は、例えば、１つのパスで作成された実行数の否定とすることができ、したがって、より少ない実行数を有するパスにより高い優先度が与えられる。完了とマークする３５６はユーザが最適化を打ち切る方法を提供する。
【００６７】
状況を最適化３５８は、選択されると監視情報を作成する。例えば、状況を最適化３５８を選択すると、図９の表示を表示させることができる。
コンピュータシステムまたはコンピュータシステムのネットワークでは、ユーザアクティビティを妨げないように、シミュレーションをバックグラウンドタスクとして実行することができる。最適化が行われている間には監視情報４００を呼び出すことができる。図９に示すように、そうした監視には、例えば、パス番号ごとの目標進捗のグラフ表示４０２、パス番号ごとの依頼済み実行数４０４、初期最良実行および各パスごとのより良い実行の結果のグラフ４０６が含まれる。また、監視には、その実行での変数セットを含む、初期最良実行および各パスごとのより良い実行の総括表４０８、およびその最適化で実施されたあらゆる実行およびそれぞれの変数セットの明細表４１０も含まれ得る。
【００６８】
完了した最適化または進行中の最適化の履歴を表示することもできる。総括表４０８および明細表４１０は、提供できる履歴のサンプルである。この履歴は、エクスポートし、印刷し、あるいはグラフで示すこともできる。
【００６９】
本発明は、例えば、手動または汎用コンピュータなどを含めて、様々な方法で実施することができる。分散ネットワーク上で最適化を実施するコンピュータシステム４２０を図１０に示す。図示のネットワークは、任意の数のプロセッサ、メモリ、記憶装置を含むことができる。プロセッサは、例えば、インテル社製のペンティアム（登録商標）（Ｐｅｎｔｉｕｍ（登録商標））プロセッサとすることができる。プロセッサは、さらに、ネットワークに結合された通信装置を介して相互にやりとりすることができ、そのネットワークは、例えばピアツーピアネットワークとすることができる。ネットワークによって実施される作業は、マイクロソフト社製のＳＱＬサーバデータベースなどのデータベースによって配布することもできる。また本発明は、コンピュータ可読媒体上で実施することもできる。
【００７０】
ネットワークを利用すると、一群のシミュレーションが実施可能なときに、１組の変数の各シミュレーションを、ネットワークに接続されたプロセッサ上で実行することができる。各シミュレーションは、例えば、どのプロセッサがそのシミュレーションを実施するか、そのシミュレーションが何時に表に記入されたか、そのシミュレーションが完了したかどうかなどの属性と共に表に記入することができる。次いで、ネットワーク上のプロセッサはその表にアクセスし、それらのプロセッサが使用可能なときにシミュレーションを実施することができる。シミュレーション自体は、シミュレーションがその下で実施される１組の規則の定義（個々の市販のエンジンなど）、最適化される変数（排気管長さおよび排気管直径など）、および目標（２０００〜１０，０００回転の範囲での出力の最大化など）で表すことができる。一実施形態では、プロセッサは、各デスクトップでユーザが必要とするタスクを実行するための、デスクトップ上で使用可能なワークステーションである。ただし、各ワークステーションは、デスクトップでユーザによってより優先度の高いタスクに使用されない場合には、１つまたは複数のシミュレーションを実施するために使用可能である。したがって、既存の個々のコンピュータのネットワークは、その通常のタスクを実施することができると共に、より優先度の高いタスクで使用されないときには、バックグラウンドでシミュレーションを実施することができる。
【００７１】
図１１から１７に、設計を指定するシステムの一実施形態を示す。図１１に、目標設定画面５００を示す。目標設定画面は、１つまたは複数の性能特性をそこから選択できる目標リストウィンドウ５０２、およびそれぞれの指示と共に性能特性を記載する選択された目標ウィンドウ５０４を含む。
【００７２】
図１２に、変数設定画面５１０を示す。変数設定画面は、使用可能な変数のツリー表示を含む変数選択ウィンドウ５１２、および各選択された変数およびその関連する属性を記載する選択された変数リストウィンドウ５１４を含む。
【００７３】
図１３に、設定された制約条件ウィンドウ５２２中に制約条件を記載する制約条件設定画面５２０を示す。
図１４に解画面５３０を示す。解画面５３０は、最良解（図示の例ではエンジン）の数を入力する最良解ダイアログボックス５３２と、所望の局所的最適の数を入力する局所的最適ダイアログボックス５３４と、確率化のシードを入力できるシードダイアログボックス５３６と、その探究パスでの設計構成の最大数を入力する探究パスダイアログボックス５３８と、１つの解パスでの設計構成の最大数を入力する解パスダイアログボックス５４０とを含む。
【００７４】
図１５に大域画面５５０を示す。大域画面５５０は、所望のデフォルトレベル数を入力できるデフォルトレベルダイアログボックス５５２を含む。また、大域画面５５０は、デフォルトのデルタ係数、およびデフォルトデルタの計算に使用される式のテキスト記述を入力できる、一対のデフォルトデルタダイアログボックス５５４を含む。デフォルトデルタ係数および式は、デフォルトデルタを決定する。デフォルトデルタは、現在の値に対してデフォルトデルタの加減を行うことによって、あらゆる変数の最小値および最大値のデフォルトを決定する。この例でのデフォルトデルタは０．５×現在の変数値である。したがって、現在の変数値が２００である場合は、最小値が２００からデフォルトデルタ１００を引いた値、すなわち１００であり、最大値は２００にデフォルトデルタ１００を足した値、すなわち３００である。
【００７５】
大域画面５５０には、一対のデフォルト許容差ダイアログボックス５５６も含まれる。デフォルト許容差ダイアログボックス５５６は、デフォルト許容差係数の計算に使用される係数、およびデフォルト許容差の計算に使用される式のテキスト記述を入力することのできる空欄を提供する。デフォルト許容差係数および式は、あらゆる変数のデフォルト許容差を決定する。５５８には、レベルのテキスト記述が含まれる。レベルテキスト記述の箇所での「標準」は、デフォルトレベル３を示す。したがって、デフォルトレベルダイアログボックス５５２およびレベルのテキスト記述５５８は、一方を変更すると他方も変更されるように連携している。
【００７６】
図１６に最適化画面５６０を示す。最適化画面は、所望の最適化のタイプを入力する最適化プロセスダイアログボックス５６２を含む。５６４でステップデルタ開始係数を入力し、５６６でステップデルタ終了係数を入力する。
【００７７】
図１７に拡張属性画面５７０を示す。この拡張属性画面５７０は、その探究が設計空間の縁部を含む「密行列（ｆｕｌｌ  ｍａｔｒｉｘ）」であるか、設計空間の縁部上に点を持たない「内側行列（ｉｎｓｉｄｅ  ｍａｔｒｉｘ）」であるか、それとも探究が実施されないことを指定する「行列なし」であることを可能にする探究プロセスダイアログボックス５７２を含む。拡張属性画面５７０には、行列幅ダイアログボックス５７４も含まれる。行列幅ダイアログボックス５７４には最適化中に使用される行列の幅を入力することができる。行列幅の通常の値としては、各変数ごとに３つの変数値とすることが可能であろう。また、拡張属性画面５７０には、閾値改善率ダイアログボックス５７６も含まれる。この閾値を使用すれば、許容差によって発生するはずの正常な終了の前に最適化を終了させることができる。
【００７８】
以上、本発明を特定の実施形態を参照して開示してきたが、添付の特許請求の範囲で定義されるように、本発明の範囲を逸脱することなく、説明した実施形態への多数の修正、改変、および変更が可能である。したがって本発明は、説明した実施形態だけに限らず、添付の特許請求の範囲の文言で定義される全範囲、およびその等価物を含むものである。
【図面の簡単な説明】
【００７９】
【図１】本発明の一実施形態の最適化方法を示す流れ図である。
【図２】排気管の長さおよび直径が最適化される変数であるシミュレーションによって作成された面コンター図である。
【図３】本発明の一実施形態での値の組合せを決定する方法を示す流れ図である。
【図４】本発明の一実施形態での許容差方法を示す流れ図である。
【図５】本発明の一実施形態での探究実施の方法を示す流れ図である。
【図６】本発明の一実施形態における最適化実施の方法を示す流れ図である。
【図７】図７ａは、本発明の一実施形態における、２つの変数で独立に生じる１つの解パスでシミュレートされた設計構成を示す図である。            図７ｂは、本発明の一実施形態における、２つの変数の組合せで生じる１つの解パスでシミュレートされた設計構成を示す図である。
【図８】本発明の一実施形態でのシミュレーション探究プログラムのポップアップメニューを示す図である。
【図９】本発明の一実施形態における、最適化中の情報監視を提供する画面を示す図である。
【図１０】本発明の一実施形態で利用される分散ネットワークを示す図である。
【図１１】本発明の一実施形態での目標設定画面を示す図である。
【図１２】本発明の一実施形態での変数設定画面を示す図である。
【図１３】本発明の一実施形態での制約条件設定画面を示す図である。
【図１４】本発明の一実施形態での解画面を示す図である。
【図１５】本発明の一実施形態での大域画面を示す図である。
【図１６】本発明の一実施形態での最適化画面を示す図である。
【図１７】本発明の一実施形態における拡張属性画面を示す図である。
【図１】
2005512168.tif 000002
【図２】
2005512168.tif 000003
【図３】
2005512168.tif 000004
【図４】
2005512168.tif 000005
【図５】
2005512168.tif 000006
【図６】
2005512168.tif 000007
【図７】
2005512168.tif 000008
【図８】
2005512168.tif 000009
【図９】
2005512168.tif 000010
【図１０】
2005512168.tif 000011
【図１１】
2005512168.tif 000012
【図１２】
2005512168.tif 000013
【図１３】
2005512168.tif 000014
【図１４】
2005512168.tif 000015
【図１５】
2005512168.tif 000016
【図１６】
2005512168.tif 000017
【図１７】
2005512168.tif 000018