(57)【要約】【課題】  人工知能を使用したシステムの設計について、改良された技法を提供する。【解決手段】  設計に組み込まれるシステムコンポーネントが、遺伝的アルゴリズムを使用して、より大きな１組の利用可能なコンポーネントから選択される。設計の属性に（例えば、ユーザによって）割り当てられた値を適応度関数に組み込むことができる。したがって、適応度関数は、１組の所望の属性値が異なるごとに異なる点で適合的である。個々の設計は、適応度関数を適用することによって決定されるそれら設計の適応度に応じて母集団から選択される。遺伝的アルゴリズムの複数の世代を実行することができ、それによって、可能性がある設計の母集団が洗練される。個々の設計は、所定の個数の世代が形成された時、かつ／または、世代間の適応度値の改善が小さくなった時の母集団から選択することができる。
2006510115.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータによって実施されるシステム設計方法であって、
１組の質的基準による設計対象のシステムの１組の所望の属性値を取得することと、
１組のコンポーネントであって、各コンポーネントが前記複数の質的基準のそれぞれに対応した該コンポーネントの属性値を有する１組のコンポーネントの仕様を取得することと、
各可能性がある設計が前記コンポーネントの組み合わせを指定する可能性がある設計の母集団を生成することを含む遺伝的アルゴリズムを適用することと、
前記可能性がある設計の１つ以上に適応度関数を適用することであって、前記可能性がある設計の適応度値を決定し、前記適応度関数が前記１組の所望の属性値に基づくことと、
前記生成することと、前記適応度関数を適用することとを繰り返し、前記可能性がある設計を洗練することと
を含む可能性がある設計と
を含むシステム設計方法。
【請求項２】
前記１組の所望の属性値を前記取得することは、
ユーザが前記システムの前記設計用の複数の質的基準のそれぞれについての値を選択するユーザインターフェースを提供すること
を含む請求項１に記載のシステム設計方法。
【請求項３】
前記設計対象のシステムは、コンピュータシステムである
請求項１に記載のシステム設計方法。
【請求項４】
前記コンピュータシステムは、ストレージサーバである
請求項３に記載のシステム設計方法。
【請求項５】
母集団を前記生成することと、前記適応度関数を前記母集団に前記適用することとを繰り返すことは、所定の回数だけ実行される
請求項１に記載のシステム設計方法。
【請求項６】
母集団を前記生成することと、前記適応度関数を前記母集団に前記適用することとが所定の回数だけ実行された後に、前記設計について前記可能性がある設計の１つを選択すること
をさらに含む請求項５に記載のシステム設計方法。
【請求項７】
世代間の改善が小さくなるまで、母集団を前記生成することと、前記適応度関数を前記母集団に前記適用することとを繰り返すことと、
前記設計について高い適応度値を有する可能性がある設計を選択することと
をさらに含む請求項１に記載のシステム設計方法。
【請求項８】
適応度値の改善を表す統計値を所定のしきい値と比較することによって、前記世代間の改善が小さくなったかどうかを判断すること
をさらに含む請求項７に記載のシステム設計方法。
【請求項９】
前記選択した設計に含まれる各コンポーネントの識別子およびタイプを表示すること
をさらに含む請求項７に記載のシステム設計方法。
【請求項１０】
前記設計に含まれる各コンポーネントのコストの合計を表示すること
をさらに含む請求項９に記載のシステム設計方法。
【請求項１１】
前記質的基準は、性能、コスト、互換性、複雑度、拡張性、可用性、信頼性、サポートのしやすさ、所要電力および物理サイズの１つ以上を含む
請求項１に記載のシステム設計方法。
【請求項１２】
前記適応度関数を可能性がある設計に前記適用することは、
前記設計対象のシステムの前記対応する属性値に従って、前記１組の質的基準のそれぞれについての乗率を決定することと、
前記可能性がある設計の各コンポーネントについて、前記設計対象のシステムについて決定された前記対応する乗率を、各属性値に乗算することと、
前記属性値と前記乗率との積を合計すること
を含む請求項１に記載のシステム設計方法。
【請求項１３】
前記可能性がある設計の前記コンポーネントの積極的な各属性値に正の値を割り当て、前記可能性がある設計の前記コンポーネントの消極的な各属性値に負の値を割り当てること
をさらに含む請求項１２に記載のシステム設計方法。
【請求項１４】
コンピュータによって実施されるシステム設計方法であって、
１組のコンポーネントであって、各コンポーネントが複数の質的基準のそれぞれに対応した該コンポーネントの属性値を有する１組のコンポーネントの仕様を取得することと、
可能性がある設計であって、各可能性がある設計が前記コンポーネントの組み合わせを指定する可能性がある設計の母集団を生成することを含む遺伝的アルゴリズムを適用することと、
前記可能性がある設計の１つ以上に適応度関数を適用することであって、前記可能性がある設計の適応度値を決定することと、
前記可能性がある設計の高い適応度値の世代間の改善が小さくなるまで、前記生成することおよび前記適応度関数を適用することを繰り返し、前記可能性がある設計を洗練することと、
前記設計について高い適応度値を有する可能性がある設計を選択することと
を含むシステム設計方法。
【請求項１５】
前記質的基準による設計対象のシステムの１組の所望の属性値を取得すること、
をさらに含み、
前記適応度関数は、前記１組の所望の属性値に基づく
請求項１４に記載のシステム設計方法。
【請求項１６】
前記１組の所望の属性値を前記取得することは、
ユーザが前記システムの前記設計用の複数の質的基準のそれぞれについての値を選択するユーザインターフェースを提供すること
を含む請求項１４に記載のシステム設計方法。
【請求項１７】
前記設計対象のシステムは、コンピュータシステムである
請求項１４に記載のシステム設計方法。
【請求項１８】
前記コンピュータシステムは、ストレージサーバである
請求項１７に記載のシステム設計方法。
【請求項１９】
前記設計を選択する前に所定の回数だけ、母集団を前記生成することと、
前記適応度関数を前記母集団に前記適用することを繰り返すことと
をさらに含む請求項１４に記載のシステム設計方法。
【請求項２０】
前記選択した設計に含まれる各コンポーネントの識別子およびタイプを表示すること
をさらに含む請求項１４に記載のシステム設計方法。
【請求項２１】
前記設計に含まれる各コンポーネントのコストの合計を表示すること
をさらに含む請求項２０に記載のシステム設計方法。
【請求項２２】
前記質的基準は、性能、コスト、互換性、複雑度、拡張性、可用性、信頼性、サポートのしやすさ、所要電力および物理サイズの１つ以上を含む
請求項１４に記載のシステム設計方法。
【請求項２３】
前記適応度関数を可能性がある設計に前記適用することは、
前記設計対象のシステムの前記対応する属性値に従って、前記１組の質的基準のそれぞれについての乗率を決定することと、
前記可能性がある設計の各コンポーネントについて、前記設計対象のシステムについて決定された前記対応する乗率を、各属性値に乗算することと、
前記属性値と前記乗率との積を合計することと
を含む請求項１４に記載のシステム設計方法。
【請求項２４】
前記可能性がある設計の前記コンポーネントの積極的な各属性値に正の値を割り当て、前記可能性がある設計の前記コンポーネントの消極的な各属性値に負の値を割り当てること
をさらに含む請求項２３に記載のシステム設計方法。
【請求項２５】
適応度値の改善を表す統計値を所定のしきい値と比較することによって、前記世代間の改善が小さくなったかどうかを判断すること
をさらに含む請求項１４に記載のシステム設計方法。
【請求項２６】
マシンによって実行可能な命令のプログラムを有形に実施し、遺伝的アルゴリズムを使用してシステム設計の方法ステップを実行する、前記マシンによって可読なプログラム記憶デバイスであって、
前記方法ステップは、
１組の質的基準による設計対象の前記システムの１組の所望の属性値を取得することと、
１組のコンポーネントであって、各コンポーネントが前記複数の質的基準のそれぞれに対応した前記コンポーネントの属性値を有する１組のコンポーネントの仕様を取得することと、
可能性がある設計であって、各可能性がある設計が前記コンポーネントの組み合わせを指定する可能性がある設計の母集団を生成することを含む前記遺伝的アルゴリズムを適用することと、
前記可能性がある設計の１つ以上に適応度関数を適用することであって、前記可能性がある設計の適応度値を決定し、前記適応度関数が前記１組の所望の属性値に基づくことと、
前記生成することおよび前記適応度関数を前記適用することを繰り返し、前記可能性がある設計を洗練することと
を含む
マシンによって可読なプログラム記憶デバイス。
【請求項２７】
マシンによって実行可能な命令のプログラムを有形に実施し、遺伝的アルゴリズムを使用してシステム設計の方法ステップを実行する、前記マシンによって可読なプログラム記憶デバイスであって、
前記方法ステップは、
１組のコンポーネントであって、各コンポーネントが複数の質的基準のそれぞれに対応した前記コンポーネントの属性値を有する１組のコンポーネントの仕様を取得することと、
可能性がある設計であって、各可能性がある設計が前記コンポーネントの組み合わせを指定する可能性がある設計の母集団を生成することを含む遺伝的アルゴリズムを適用することと、
前記可能性がある設計の１つ以上に適応度関数を適用することであって、前記可能性がある設計の適応度値を決定することと、
前記生成することと前記適応度関数を適用することとを繰り返し、前記可能性がある設計の高い適応度値の世代間の改善が小さくなるまで前記可能性がある設計を洗練することとと、
前記設計について高い適応度値を有する可能性がある設計を選択することと
を含む
マシンによって可読なプログラム記憶デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
［発明の背景］
本発明は、人工知能の分野に関し、より詳細には、人工知能を使用したシステムの設計に関する。
【背景技術】
【０００２】
時間の経過と共に、コンピュータシステムは、ますます複雑になってきており、特に、大企業の基盤となるコンピュータシステムは、ますます複雑になってきている。
多数のさらに増え続けるコンポーネントが、現代のコンピュータシステムに組み込むのに利用可能である。
このようなシステムの一例は現代のストレージサーバである。
このストレージサーバは、１つまたは２つ以上の中央処理装置、揮発性メモリ、およびディスクドライブやディスクアレイ等のデータストレージコンポーネントを含むことができる。
このような各コンポーネントについて、さまざまな形式、モデル、および構成が利用可能であり、それぞれは、とりわけ、容量、スループット、コスト等の各属性を有する。
【０００３】
システム設計者に利用可能な多くの選択肢があるため、マニュアル設計技法は、経験およびさまざまな経験則に基づく傾向がある。
したがって、これらの技法は、多くの時間を要し、エラーを起こしやすくなる傾向があり、常に状況に最適な設計になるとは限らない。
【０００４】
システム設計のいくつかの態様を人工知能の使用を通じて自動化する技法が開発されている。
例えば、ルールベース設計システムは、設計プロセスで行われる決定ごとにルールのコード化を必要とする。
エキスパートシステムは、人間のエキスパート設計者の知識をエミュレーションする試みが行われるルールベース設計の一形態である。
その結果、これらの技法は、実施するのが複雑で多くの時間を要する傾向がある。
ルールは、正確な設計問題に特有のものであり、相互依存する傾向があるので、このようなシステムは、状況の変化に応じて変更することが難しく、一般に、システムが最初に目的としていた設計上の問題以外の設計上の問題を解決するのに適用することができない。
【０００５】
遺伝的アルゴリズムの使用は、人工知能を設計問題に適用する別の手法とされてきた。
遺伝的アルゴリズムの使用を通じて、可能性がある設計ソリューションが生成され、選択プロセスが、そのソリューションを反復して洗練する試みに適用される。
しかしながら、このような技法も、一度実施されると、変更するのが難しくなる傾向があり、常に最適なソリューションになるとは限らない。
【特許文献１】国際公開第００／６７２０１号
【特許文献２】国際公開第０２／０７５６５０号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
したがって、人工知能を使用したシステムの設計について、改良された技法が必要とされている。
さらに、現代のコンピュータシステムの設計に適用可能なこのような技法が必要とされている。
本発明はこれらの目的を対象としている。
【課題を解決するための手段】
【０００７】
［発明の概要］
本発明は、人工知能を使用したシステム設計の技法である。
一態様では、１組の所望の属性値が、１組の質的基準に従って設計対象のシステム用に取得される。
設計用の１組の利用可能なコンポーネントの仕様も取得される。
各コンポーネントは、複数の質的基準のそれぞれに対応した属性値を有する。
可能性がある設計の母集団を生成することを含む遺伝的アルゴリズム（ＧＡ）が実行される。
各可能性がある設計は、コンポーネントの組み合わせを指定する。
適応度関数が、可能性がある設計の１つまたは２つ以上に適用されて、可能性がある設計の適応度値が決定される。
この適応度関数は、１組の所望の属性値に基づくことができるという点で適合的である。
この適応度関数は、一連の母集団の世代（generation）のそれぞれに適用され、それによって、可能性がある設計ソリューションが洗練される。
【０００８】
より詳細には、適応度関数は、設計対象のシステムの対応する所望の属性値に従って１組の質的基準のそれぞれについての乗率を決定することによって適用することができる。
可能性がある設計の各コンポーネントについて、各属性値は、設計対象のシステムについて決定された対応する乗率と乗算される。
次に、属性値と乗率との積が合計される。
積極的な各属性には正の値が割り当てられ、消極的な各属性には負の値が割り当てられる。
【０００９】
別の態様では、可能性のある設計の高い適応度値の世代間の改善が所定のしきい値未満になるまで、連続した母集団が生成され、適応度関数が各世代に適用され、高い適応度値を有する設計が、連続した世代を作成するのに使用される。
それによって、可能性のある設計が洗練される。
これが行われると、最大の適応度値がそれ以上増加するとは予想されない。
したがって、得られた適応度値の中から、可能性のある設計が選択される。
この設計は、所定の個数の世代が完了した後にのみ選択することができる。
【００１０】
本発明のこれらの態様および他の態様は、以下の説明、図面、および添付の特許請求の範囲から明らかになろう。
【発明を実施するための最良の形態】
【００１１】
［好ましい実施の形態の詳細な説明］
本発明は、人工知能を使用したシステム設計の技法である。
設計に組み込まれるシステムコンポーネントをより大きな１組の利用可能なコンポーネントから選択する新規な遺伝的アルゴリズム（ＧＡ）が提示される。
設計の属性に（例えば、ユーザによって）割り当てられた値を適応度関数に組み込むことができる。
したがって、適応度関数は、１組の所望の属性値が異なるごとに異なる点で適合的である。
個々の設計は、適応度関数を適用することによって決定されるそれら設計の適応度に応じて母集団から選択される。
遺伝的アルゴリズムの複数の世代を実行することができ、それによって、可能性がある設計の母集団が洗練される。
個々の設計は、事前に選択された適応度値が達成された時の母集団、または、世代間の適応度値の改善が小さくなるか、もしくは、完全に停止した時の母集団から選択することができる。
【００１２】
本明細書の教示による人工知能を使用することにより、複雑なシステムに対して、他の方法を使用して達成できる設計よりも優れた設計を達成することができる。
図面および本明細書の説明は、主としてコンピュータシステムの設計を対象とし、より詳細にはストレージサーバの設計を対象とするが、本発明は、計算システム、機械システム、またはコンポーネントの組み合わせが設計用に選択される他のタイプのシステムを含めて、あらゆるタイプのシステムの設計に適用できることが理解されよう。
【００１３】
図１は、本発明の一態様による設計方法１００のフロー図を示している。
図２は、図１の方法１００の一部を含めて本発明を実施することができるコンピュータシステム２００の概略ブロック図を示している。
コンピュータシステム２００は、汎用プロセッサ２０２、記憶媒体２０４（例えば、ＲＡＭおよび／またはハードディスク）、通信バス２０６、および入出力デバイス２０８を含むことができる。
入出力デバイス２０８は、キーボード、モニタ、マウス、ネットワークインターフェース等である。
コンピュータシステム２００は従来からのものである。
したがって、システム２００は、図２に示すものよりも多くの要素を含むこともできるし、少ない要素を含むこともでき、図２に示す要素の代わりに他の要素を用いることができることは明らかであろう。
【００１４】
図１を参照して、ステップ１０２において、設計対象のシステムの所望の属性の値が取得される。
例えば、ユーザは、グラフィカルユーザインターフェースを通じて値を入力することができる。
図３は、所望の属性値を取得するためにステップ１０２で使用できる例示のグラフィカルユーザインターフェース３００を示している。
例えば、グラフィカルユーザインターフェース３００は、図２のシステム２００の表示モニタ２０８に表示することができる。
図３に示すように、設計対象のシステムは、ストレージサーバであり、より詳細には、ＨＰ−ＵＸストレージサーバである。
このシステムの１組の属性３０２が、グラフィカルユーザインターフェースによって提供される。
図３に示すように、属性３０２は、質的基準を含み、例えば、性能、コスト、互換性、複雑度、拡張性、可用性、信頼性、サポートのしやすさ、所要電力、および物理サイズを含む。
【００１５】
性能属性は、システムがどれだけよく動作するかの尺度である。
この属性は、処理速度、処理能力、および他の性能メトリックを示すことができる。
コスト属性は、システムを実施するためのコストの尺度である。
この属性は、システムの総コストをそのコンポーネントのコストの合計として示す。
互換性属性は、システムがどれだけ多くの異なる製品のタイプと共に機能できるかの尺度である。
この属性は、システムの変更またはアップグレードが後に必要となることがある場合の互換性を示すこともできるし、システムが通信する通信ネットワーク等の他の外部コンポーネントとのシステムの互換性を示すこともできる。
複雑度属性は、システムおよびそのコンポーネントの基礎を成す技術またはアーキテクチャの複雑度の尺度である。
この属性も、システムを変更またはアップグレードする必要が生じた場合に、変更またはアップグレードするのがどれだけ難しいかを示すことができる。
【００１６】
拡張性属性は、システムを拡張してその能力を高める必要がある場合に、システムを拡張してその能力を高めることを行うことの容易さの尺度である。
この属性は、システムに含まれる利用可能な拡張スロットの個数を示すこともできるし、システムが収容できるディスクドライブの個数を示すこともできる。
可用性属性は、市場の可用性の尺度である。
この属性は、製造元からの注文リードタイム等、システムおよびそのコンポーネントを取得する容易さを示すことができる。
信頼性属性は、故障までの平均時間等のシステムの信頼性の尺度である。
サポートのしやすさ属性は、システムが一旦配備された場合に、システム設計をサポートする容易さの尺度である。
この属性は、例えば、サービス部分の可用性を示すこともできるし、修復を実行する平均時間を示すこともできる。
所要電力属性は、システムが消費する電力レベルの尺度である。
物理サイズ属性は、システムの物理的寸法の尺度である。
【００１７】
上記に列挙した属性は例示であり、異なる１組の属性も使用できることが明らかであろう。
【００１８】
１組の所望の属性値３０４は、各属性につき１つの値が属性３０２と関連付けられる。
これらの値は、ユーザがグラフィカルユーザインターフェース３００を通じて入力することができる。
各値は、設計対象のシステムの属性の相対的な重要度を示す。
例えば、或る特定のアプリケーションでは、システムのコストが１番目に重要である一方、性能は２番目に重要である場合がある。
この場合、コスト属性には、性能に割り当てられる値よりも高い重要度を示す値が割り当てられる。
別のアプリケーションでは、コストは性能よりも重要でない場合がある。
この場合、性能属性には、コスト属性に割り当てられる値よりも高い重要度を示す値が割り当てられる。
このように、ステップ１０２では、設計対象のシステムの所望の特性に基づいて各属性に値が割り当てられる。
【００１９】
一態様では、値は１から１０までの範囲を有する。
１は最も高い重要度を示し、１０は最も低い重要度を示す。
この場合、１０によって、コンポーネントの選択中、その属性は無視されることがある（すなわち、重要ではない）。
或る属性に割り当てられた値は、別の属性に割り当てられた値と同じとすることができ、したがって、等しい重要度を示すこともできるし、異なる値を割り当てることもでき、したがって、重要度の相対的な相違を示すこともできる。
１０個の属性を図３に示し、各属性が１０個の可能な値を有することを示したが、別の個数の属性および／または別の個数の可能な値を使用することもできる。
また、高い重要度を示すのに低い値を割り当てるのではなく、高い重要度を有する属性に、低い重要度を有する属性よりも高い数字を割り当てることもできる（例えば、１が低い重要度または重要でないことを示し、１０が最も高い重要度を示す１から１０のスケール）。
【００２０】
図３に示すように、インターフェース３００は、「フォームリセット（RESET FORM）」ボタン３０６も含むことができる。
このボタン３０６は、ユーザによってアクティブにされると、エントリ３０４をクリアする。
【００２１】
図１に戻って、ステップ１０４において、ステップ１０２で取得された属性値に基づいて、適応度関数を適合させることができる。
したがって、一態様では、適応度関数は、１組の属性値が異なるごとに異なる。
ｎ個の属性のそれぞれについて、対応する属性値をＡｎとして与えることができる。
図３の例に示すように、１０個の属性が存在し、したがって、ｎは１から１０の間の整数である。
ステップ１０４において、各属性について乗率Ｆｎを決定することができる。
高い重要度が低い相対値によって示される場合、各属性の乗率は、割り当てられた値と最大値との差として決定することができる。
この例では、最大値は１０である。
したがって、
Ｆｎ＝１０−Ａｎ
となる。
具体的な例として、互換性属性について、値３がユーザによって割り当てられると仮定する。
互換性属性は、１０個の属性のうち２番目であるので、ｎ＝２であり、乗率はＦ２として与えられる。
Ｆ２は次のように決定される。
Ｆ２＝１０−３＝７
しかしながら、高い重要度が高い相対値によって示される場合、属性の乗率は、割り当てられた値と同じとすることができる。
したがって、
Ｆｎ＝Ａｎ
となる。
値３が割り当てられた互換性属性の例では、乗率Ｆ２は次のように決定することができる。
Ｆ２＝Ａ２＝３
代替的に、値１が、重要でないことを示すように、ＦｎはＡｎ−１と等しくすることができる。
【００２２】
次に、乗率は、ステップ１０４で図２のコンピュータシステム２００等に保存され、本明細書で説明するように、適応度関数の適用にさらに使用される。
【００２３】
１組のコンポーネントの仕様をステップ１０６で取得することができる。
これらのコンポーネントは、設計に含まれる選択に利用することができる。
設計対象のシステムがストレージサーバである例の場合、コンポーネントには、中央処理装置、揮発性メモリ（例えば、ＲＡＭ）、およびディスクドライブおよび／またはディスクアレイ等のデータ記憶デバイスが含まれ得る。
ストレージサーバでは、他のコンポーネントを指定できることが明らかであろう。
他のコンポーネントには、プリント回路基板、コンポーネントラック、ネットワークインターフェース、電源装置、および／またはソフトウェアが含まれるが、これらに限定されるものではない。
また、ストレージサーバ以外のシステムでは、異なるコンポーネントを指定できることも明らかであろう。
さらに、状況に応じて、一定のコンポーネントを組み合わせて取り扱うこともできる。
例えば、ＣＰＵや揮発性メモリ等の一定のコンポーネント間で交換可能性が制限される場合、それらのコンポーネントの実現可能な対を、ステップ１０６において、単一のコンポーネントとして取り扱うことができる。
【００２４】
各コンポーネントは、ＣＰＵ／メモリ結合コンポーネントやディスクアレイ等のコンポーネントのタイプおよび一意の識別子（例えば、１つまたは２つ以上の部品番号）によって指定されることが好ましい。
これに加えて、各コンポーネントには、ステップ１０２でシステムに指定された属性のそれぞれについての値が割り当てられる。
したがって、図３に示すように、システムの１０個の属性３０２のそれぞれに値が割り当てられる場合、ステップ１０６では、各コンポーネントにも、これら１０個の属性のそれぞれについての値が割り当てられる。
例えば、各ＣＰＵ／メモリ結合コンポーネントには、１から１０の間の値が割り当てられて、対応する属性に関する当該コンポーネントの等級が示される。
１０が、対応する属性に関して比較的高いコンポーネントの等級を示す場合、高い性能および高いコストを有するＣＰＵ／メモリ結合コンポーネントには、性能に関して値９を割り当て、コストに関して値８を割り当てることができる。
一態様では、割り当てられた値は、他の利用可能なコンポーネントに関して百分位数の等級を示すことができる。
したがって、コンポーネントが性能に関して第９０の百分位数を超える場合、そのコンポーネントは、その属性について９とみなすことができる。
利用可能なコンポーネントのｎ個の属性のそれぞれについてステップ１０６で割り当てられた値は、Ｖｎとして与えることができる。
コンポーネントの仕様は、図２のコンピュータシステム２００にデータファイルとして記憶することができる。
【００２５】
ステップ１０８において、可能性がある設計の母集団が、ステップ１０６で取得された１組のコンポーネントの仕様から作成される。
例えば、この作成は、ユーザがインターフェース３００（図３）の「サーバ検出」ボタン３０８をアクティブにすることに応答して行うことができる。
ステップ１０８を最初に通過する際に、この作成は、それぞれの個々の設計が、その設計に含まれる各タイプの１つのコンポーネントから成る場合に、所定の個数（すなわち、母集団のサイズ）の個々の設計を生成することを含むことができる。
したがって、設計がＣＰＵ／メモリ結合コンポーネントおよびディスクアレイを含むことになる場合、各個体（individual）は、ＣＰＵ／メモリ結合コンポーネントおよびディスクアレイのランダムな対を含むことができる。
【００２６】
一態様では、母集団のサイズは、図３のグラフィカルユーザインターフェース３００を通じて選択することができる。
ユーザは、例えば、入力フィールド３１０でポインティングデバイスを使用することによって（例えば、ユーザは、コンピュータマウスを使用してフィールドをクリックし、フィールド３１０にチェックマークを置く）、母集団のサイズを選択することをユーザに可能にする別の表示スクリーン（図示せず）に進むことができる。
【００２７】
次に、ステップ１１０において、適応度関数が、ステップ１０８で作成された個々の設計のそれぞれに適用される。
したがって、ｉコンポーネントを有する設計では、各乗率Ｆｎ（ステップ１０４で決定）と、この設計のｉコンポーネントのそれぞれについての対応する値Ｖｉ，ｎのそれぞれの積を計算し、それらの積を合計することによって、その設計について適応度値を計算することができる。
したがって、適応度は、次のように与えることができる。
適応度＝Σ（ＦｎＶｉ，ｎ）
【００２８】
例えば、性能属性Ａ１および互換性属性Ａ３のみを対象とし、それらの対応する乗率がステップ１０４でＦ１＝６およびＦ３＝４と決定されるものと仮定する。
また、個々の設計は２つのコンポーネント（１，２）を含むものと仮定し、その第１のものは性能値８（すなわち、Ｖ１，１＝８）および互換性値３（すなわち、Ｖ１，３＝３）を有し、その第２のものは性能値５（すなわち、Ｖ２，１＝５）および互換性値２（すなわち、Ｖ２，３＝２）を有すると仮定する。
したがって、この設計の適応度値は次のように計算することができる。
適応度＝（Ｆ１Ｖ１，１）＋（Ｆ１Ｖ２，１）＋（Ｆ３Ｖ１，３）＋（Ｆ３Ｖ１，１）
＝（６×８）＋（６×５）＋（４×３）＋（４×２）＝９８
【００２９】
性能、互換性、拡張性、可用性、信頼性、サポートのしやすさ等のいくつかの属性では、高い等級の方が一般に望ましい一方、コスト、複雑度、所要電力、物理サイズ等のそれ以外の属性では、低い等級の方が一般に望ましい。
したがって、これらの消極的な属性を適応度値の計算に考慮するために、消極的な属性の積が積極的な属性の積から減算される。
適応度＝Σ（ＦｎＶｉ，ｎ）ｐｏｓｉｔｉｖｅ＿ａｔｔｒｉｂｕｔｅｓ−Σ（ＦｎＶｉ，ｎ）ｎｅｇａｔｉｖｅ＿ａｔｔｒｉｂｕｔｅｓ
【００３０】
具体的な例で、コスト属性Ａ２も考慮されると仮定する。
したがって、コストの乗率がＦ２＝９と決定されると仮定する。
２つのコンポーネント（１，２）について、それらのコスト値は、Ｖ１，２＝１およびＶ２，２＝７として与えられると仮定する。
また、上記のように、Ｆ１＝６、Ｆ３＝４、Ｖ１，１＝８、およびＶ２，３＝３と仮定する。
したがって、適応度は、次のように計算することができる。
適応度＝（Ｆ１Ｖ１，１）＋（Ｆ１Ｖ２，１）＋（Ｆ３Ｖ１，３）＋（Ｆ３Ｖ１，１）−（Ｆ２Ｖ１，２）−（Ｆ２Ｖ２，２）
＝（６×８）＋（６×５）＋（４×３）＋（４×２）−（９×１）−（９×７）＝２６
このように、適応度値は、母集団の各設計について取得することができる。
【００３１】
例えば、母集団の他の設計に対して最も高い適応度値を有するいくつかの設計を特定することによって、高い適応度の設計をステップ１１２で特定することができる。
高い適応度を有するものとしてステップ１１２で特定されたこれら個体は、次に、（例えば、ステップ１０８へ戻ることによって）１つまたは２つ以上の連続した世代を形成する基礎として使用することができる。
【００３２】
ステップ１０８で実行された母集団の世代は、従来の遺伝的アルゴリズム技法に従ったものとすることができる。
したがって、新たな各世代は、ステップ１１２で高い適応度を有するものとして特定された前の世代の個々の設計に部分的に基づくことができる。
これは、例えば、それら個体がより多く「再生」することを可能にすることによって行われる。
したがって、新たな母集団の設計は、高い適応度値を有する前の世代の設計からのコンポーネントを含む可能性が高いことになる。
その結果、これは、連続的な各世代の設計が、前の世代の適応度の設計よりも高い適応度を有するという可能性を増加させると予想される。
【００３３】
次の世代の基礎として、新たな母集団を作成し（ステップ１０８）、それら母集団の適応度値を決定し（１１０）、高い適応度値を有する個体を特定する（１１２）プロセスは、所定の回数ｍだけ繰り返すことができ、それによって、繰り返し形式で設計が洗練される。
回数ｍは０から１００世代の範囲とすることもできるし、状況に応じて、回数ｍはより多くの世代の範囲とすることもできる。
一態様では、ユーザが、図３のグラフィカルユーザインターフェース３００を介して回数ｍを選択することができる。
【００３４】
したがって、ステップ１１２から、プログラムフローは、ステップ１１４に移動することができ、ステップ１１４において、所定の回数ｍに到達したかどうかについての判断を行うことができる。
到達していない場合には、プログラムフローはステップ１０８に戻る。
一方、選択された回数ｍだけ、世代が作成されて洗練されると、これまでに特定された個体の中から高い適応度値を有する個体を設計用に選択することができる。
一方、好ましい実施の形態では、選択された個数の世代が作成されて洗練されると、プログラムフローはステップ１１６に移動する。
【００３５】
ステップ１１６において、以前の世代と後の世代との間で比較が行われ（例えば、現在の世代と前の世代）、適応度の改善量が求められる。
より詳細には、異なる世代からの高い適応度値（例えば、最高値または高い値のいくつかの平均値）を比較して、世代間から適応度の改善量がもしあれば、それを求めることができる。
例えば、これは、２つまたは３つ以上の連続した世代から適応度値を直接比較することを含むことができる。
代替的に、いくつかの世代の適応度値に関する統計値（例えば、移動平均）をステップ１１６で比較することもできる。
【００３６】
設計の母集団が遺伝的プロセスを通じてより洗練されてくるにつれて、世代間の適応度の改善が時間の経過と共に小さくなることが予想される。
したがって、ステップ１１８では、世代間の改善が小さくなったかどうかについての判断が行われる。
この判断は、改善を表す統計値を所定のしきい値と比較することによって行うことができる。
世代間の差が改善量を示す。
この差がしきい値よりも大きい場合に、このことは、さらに改善の可能性があることを示す。
したがって、プログラムフローはステップ１０８に戻り、ステップ１０８において、新たな世代が作成される。
さらに、新たな母集団を作成し（ステップ１０８）、それら新たな母集団の適応度値を決定し（ステップ１１０）、高い適応度を有する個体を特定し（ステップ１１２）、世代間の改善の程度を求める（ステップ１１６）プロセスは、世代間の改善がしきい値未満になるまで繰り返すことができる。
一実施の形態では、世代間の改善は、いくつかの世代（例えば、１０個）の間、しきい値よりも小さくとどまることができる。
この個数も、ユーザが選択することもができる（例えば、図３のフィールド３１０をクリックすることによって）。
肯定的な判断がステップ１２０で行われると、このことは、さらに世代が大幅に高い適応度値になる可能性がないことを示す。
【００３７】
したがって、プログラムフローはステップ１２２に移動することができ、ステップ１２２において、１つまたは２つ以上の個々の設計が、これまでに取得された高い適応度の設計の中から選択される。
ステップ１１６において、図４に示すように、この設計を結果の設計として表示することができる。
【００３８】
図４は、本発明の一態様による方法１００の結果を表示するグラフィカルユーザインターフェース４００を示している。
単一の設計を図４に示す。
この設計の各コンポーネントについて、その識別子（例えば、１つまたは２つ以上の部品番号）をそのタイプおよびコストと共に表示することができる。
これに加えて、各コンポーネントの説明および設計の総コストも表示することができる。
図４の例では、設計はストレージサーバ用のものである。
第１のコンポーネントであるタイプＣＰＵ／メモリ結合コンポーネントは、当該結合コンポーネントを共に構成する３つの部品番号（すなわち、Ａ６４４７Ａ、Ａ６４４８Ａ、およびＡ６１６８Ａ）を含む。
コンポーネントの説明は、「１ＧＢのＲＡＭおよび２つのＣＰＵを有するｒｘ４６１０／８００」として示される。
第２のコンポーネントであるストレージタイプのコンポーネントは、２つの部品番号（すなわち、Ａ６２６５ＡおよびＡ６１９１Ａ）を含み、「１８９０ＧＢを有する仮想アレイ７４００」と記載される。
【００３９】
作成された世代数は、世代間の改善がどれだけ高速に小さくなるかに依存し得るので、世代間の差がしきい値未満になる前に必要な世代数は、一般に、方法１００が実行されるまで分からない。
したがって、図４に示すように、作成された世代数も表示することができる。
この例では、表示された個数は２３８世代である。
所定の世代数（例えば、１０００）の後、世代間の差がしきい値未満にならない場合、この方法は停止して、エラーメッセージを表示することができる。
この最大の世代数も、ユーザが、例えば、フィールド３１０（図３）をクリックすることによって選択することができる。
さらに、ステップ１１２における高い適応度値の特定が失敗する（例えば、すべての結果の適応度値が負の値である）場合も、この方法は停止してエラーメッセージを表示することができる。
デバッグの目的で、いくつかの世代について取得された最高の適応度値および最低の適応度値等の世代間の概要情報をユーザに提供することができる。
【００４０】
上記のように、新規な遺伝的アルゴリズム（ＧＡ）が提示された。
一態様では、設計の属性に割り当てられた値を適合的な適応度関数に組み込むことができる。
別の態様では、設計の複数の世代が作成され、それによって、事前に選択された適応度値が達成されるまで、または、高い適応度値の世代間の改善が小さくなるまで、設計が洗練される。
【００４１】
上記は、本発明の特定の実施の形態に関するものであるが、本発明の原理および精神から逸脱することなく、これらの実施の形態の変更を行えることが当業者に理解されよう。
本発明の範囲は、添付の特許請求の範囲によって画定される。
【図面の簡単な説明】
【００４２】
【図１】本発明の一態様による設計方法のフロー図である。
【図２】本発明を実施することができる汎用コンピュータシステムである。
【図３】本発明の一態様による方法の入力を提供するグラフィカルユーザインターフェースである。
【図４】本発明の一態様による方法の結果を表示するグラフィカルユーザインターフェースである。
【符号の説明】
【００４３】
２００・・・コンピュータシステム，
２０２・・・汎用プロセッサ，
２０４・・・記憶媒体，
２０６・・・通信バス，
２０８・・・入出力デバイス，
【図１】
2006510115.tif 000003
【図２】
2006510115.tif 000004
【図３】
2006510115.tif 000005
【図４】
2006510115.tif 000006
【国際調査報告】
2006510115.tif 000007
2006510115.tif 000008