JP2024087748A - システム設計学習装置、システム設計学習方法、及びプログラム - Google Patents

システム設計学習装置、システム設計学習方法、及びプログラム Download PDF

Info

Publication number
JP2024087748A
JP2024087748A JP2023086410A JP2023086410A JP2024087748A JP 2024087748 A JP2024087748 A JP 2024087748A JP 2023086410 A JP2023086410 A JP 2023086410A JP 2023086410 A JP2023086410 A JP 2023086410A JP 2024087748 A JP2024087748 A JP 2024087748A
Authority
JP
Japan
Prior art keywords
configuration
learning
abstract
design
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2023086410A
Other languages
English (en)
Inventor
豊 八鍬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to US18/539,547 priority Critical patent/US20240202408A1/en
Publication of JP2024087748A publication Critical patent/JP2024087748A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

Figure 2024087748000001
【課題】 大規模なシステムの設計の強化学習に係る時間を削減することにある。
【解決手段】 システム設計学習装置は、抽象的な部分を含むシステム要件に対して、抽象的な部分を具体的な部分に変換する具体化処理を実行してシステム具体構成を生成し、システム要件からシステム具体構成が生成されるまでの過程を表す構成パス情報を生成する設計部と、構成パス情報に含まれる、システム要件、システム構成案、システム具体構成それぞれに対して報酬を設定する報酬設定部と、構成パス情報を抽象化して抽象構成パス情報する生成する変換部と、抽象構成パス情報に含まれる、抽象化したシステム要件、抽象化したシステム構成案、抽象化したシステム具体構成それぞれに対して報酬を関連付けて学習データを生成する学習データ生成部と、学習データに基づいて、システムの設計方法を学習する学習部と、を有する。
【選択図】図1

Description

本開示は、システムに設計に用いるシステム設計学習装置、システム設計学習方法、及びプログラムに関する。
ICT(Information and Communication Technology)システムを設計する場合、まず、要件定義において、設計者は、顧客の要件及び要望をまとめた、具体的な要素と抽象的な要素を含むICTシステムの構成を表す情報(システム要件)を作成する。
ICTシステムの構成は、IBN(Intent-based networking)などの概念に基づいてグラフで表すことができる。グラフは、ICTシステムの構成に含まれる要素(部品)を、ノード又はエッジを用いて表したものである。ノードは、例えば、機器、アプリケーションなどを表す部品である。エッジは、二つのノード間の接続関係などを表す部品である。
次に、自動設計において、あらかじめ作成した具体化規則に基づいて、システム要件に含まれる抽象的な部分を具体化し、配備可能な状態のICTシステムの構成を表した情報(システム具体構成)を導出する。
具体化規則は、抽象的な部分を段階的に具体化して具体的な部分に変換するために用いる情報である。
具体的な部分は、実際にICTシステムで用いることが確定している部品又は構成を表す。抽象的な部分は、機能は確定しているが、実際にシステムで用いる部品又は構成が、具体的に確定していない未確定な部品又は構成を表す。
関連する技術として特許文献1には、抽象的な要素を段階的に具体化し、配備可能なICTシステムのシステム具体構成を導出するシステム構成導出装置が開示されている。特許文献1のシステム構成導出装置によれば、システム要件に含まれている未確定な要素を、具体化規則を用いて、段階的に具体化し、最終的に実施可能なシステム具体構成を導出する。
具体的には、特許文献1のシステム構成導出装置は、具体化規則を用いて、システム要件に含まれる一つ以上の抽象的な部分を検出し、検出した抽象的な部分を具体的な部分に変換してシステム構成案、又は、システム具体構成を生成する。
システム構成案は、システム具体構成が導出される以前の、抽象的な部分を含む構成を表す情報である。したがって、システム要件は、システム構成案と考えることもできる。
システム構成案に抽象的な部分が含まれている場合、再度、具体化規則を用いて変換する。その後、変換を繰り返し、全ての部分が具体化された場合、システム具体構成が導出されたことになる。
ところが、システム要件とシステム構成案を具体化する場合、複数の具体化規則を適用する。そうすると、導出されるシステム構成案、又は、システム具体構成は、選択した具体化規則、及び、具体化規則を選択する順序に応じて変化する。すなわち、具体化規則を選択する順序によって、異なった構成の、システム構成案とシステム具体構成とが導出される。
また、適用する具体化規則の数が多くなると、生成されるシステム構成案とシステム具体構成の数は膨大な数になる。さらに、複数の異なるシステム具体構成の中には、システム要件を満たさない、システム具体構成が含まれることもある。したがって、特許文献1のシステム構成導出装置では、システム具体構成を効率よく導出できないことが想定される。
そこで、システム具体構成を効率よく導出するためには、具体化規則の選択と、具体化規則を選択する順序の良し悪しを適切に判定することが重要となる。
関連する技術として非特許文献1には、強化学習を利用して、具体化規則の選択と、具体化規則を選択する順序の良し悪しを適切に判定する技術が開示されている。
国際公開第2019/216082号
丸山貴志他:「探索型ネットワーク設計導出方式の強化学習による探索の効率化」, 信学技報, vol. 118, no. 483, ICM2018-71, pp. 123-128, 2019年3月.
しかしながら、非特許文献1に開示される技術では、システム構成に含まれる部品の種類が多くなると、部品の組み合わせの数が増加するので、システム具体構成の種類も増加する。そのため大規模なシステムの設計の強化学習に係る時間は膨大な時間となる。
本開示の目的の一例は、大規模なシステムの設計の強化学習に係る時間を削減することにある。
上記目的を達成するため、本開示の一側面におけるシステム設計学習装置は、
抽象的な部分を含むシステムの構成を表す情報であるシステム要件に対して、抽象的な部分を具体的な部分に変換する具体化処理を実行し、抽象的な部分を含まない前記システムの構成を表す情報であるシステム具体構成を生成し、前記システム要件から前記システム具体構成が生成されるまでの過程を表す構成パス情報を生成する設計部と、
前記構成パス情報に含まれる、前記システム要件、前記具体化処理の過程で生成されたシステム構成案、前記システム具体構成それぞれに対して報酬を設定する報酬設定部と、
前記構成パス情報を抽象化して抽象構成パス情報する生成する変換部と、
前記抽象構成パス情報に含まれる、抽象化したシステム要件、抽象化したシステム構成案、抽象化したシステム具体構成それぞれに対して前記報酬を関連付けて学習データを生成する学習データ生成部と、
前記学習データに基づいて、前記システムの設計方法を学習する学習部と、
を有することを特徴とする。
また、上記目的を達成するため、本開示の一側面におけるシステム設計学習方法は、
情報処理装置が、
抽象的な部分を含むシステムの構成を表す情報であるシステム要件に対して、抽象的な部分を具体的な部分に変換する具体化処理を実行し、抽象的な部分を含まない前記システムの構成を表す情報であるシステム具体構成を生成し、前記システム要件から前記システム具体構成が生成されるまでの過程を表す構成パス情報を生成する設計ステップと、
前記構成パス情報に含まれる、前記システム要件、前記具体化処理の過程で生成されたシステム構成案、前記システム具体構成それぞれに対して報酬を設定する報酬設定ステップと、
前記構成パス情報を抽象化して抽象構成パス情報する生成する変換ステップと、
前記抽象構成パス情報に含まれる、抽象化したシステム要件、抽象化したシステム構成案、抽象化したシステム具体構成それぞれに対して前記報酬を関連付けて学習データを生成する学習データ生成ステップと、
前記学習データに基づいて、前記システムの設計方法を学習する学習ステップと、
を実行することを特徴とする。
さらに、上記目的を達成するため、本開示の一側面におけるプログラムは、
コンピュータに、
抽象的な部分を含むシステムの構成を表す情報であるシステム要件に対して、抽象的な部分を具体的な部分に変換する具体化処理を実行し、抽象的な部分を含まない前記システムの構成を表す情報であるシステム具体構成を生成し、前記システム要件から前記システム具体構成が生成されるまでの過程を表す構成パス情報を生成する設計ステップと、
前記構成パス情報に含まれる、前記システム要件、前記具体化処理の過程で生成されたシステム構成案、前記システム具体構成それぞれに対して報酬を設定する報酬設定ステップと、
前記構成パス情報を抽象化して抽象構成パス情報する生成する変換ステップと、
前記抽象構成パス情報に含まれる、抽象化したシステム要件、抽象化したシステム構成案、抽象化したシステム具体構成それぞれに対して前記報酬を関連付けて学習データを生成する学習データ生成ステップと、
前記学習データに基づいて、前記システムの設計方法を学習する学習ステップと、
を実行させることを特徴とする。
以上のように本開示によれば、大規模なシステムの設計の強化学習に係る時間を削減することができる。
図1は、顔認証システムの自動設計について説明するための図である。 図2は、部品情報のデータ構造を説明するための図である。 図3は、システム要件のデータ構造を説明するための図である。 図4は、具体化規則の説明をするための図である。 図5は、具体化規則のデータ構造を説明するための図である。 図6は、実施形態1のシステム設計学習装置の一例を示す図である。 図7は、実施形態1のシステム設計学習装置を有するシステムの一例を示す図である。 図8は、実施形態1のシステム設計学習装置の動作の一例を説明するための図である。 図9は、機能要件学習の動作の一例を説明するための図である。 図10は、構成パスを生成する動作の一例を説明するための図である。 図11は、探索木情報のデータ構造の一例を説明するための図である。 図12は、探索木の一例を説明するための図である。 図13は、構成パスのデータ構造の一例を説明するための図である。 図14は、報酬設定の動作の一例を説明するための図である。 図15は、報酬情報を更新する動作の一例を説明するための図である。 図16は、抽象構成パスを生成する動作の一例を説明するための図である。 図17は、抽象構成パスのデータ構造の一例を説明するための図である。 図18は、抽象構成を生成するための動作の一例を説明するための図である。 図19は、型定義情報のデータ構造の一例を説明するための図である。 図20は、報酬の確定と学習データを生成するための動作の一例を説明するための図である。 図21は、学習するための動作の一例を説明するための図である。 図22は、実施形態2のシステム設計学習装置の一例を示す図である。 図23は、実施形態2のシステム設計学習装置の動作の一例を説明するための図である。 図24は、非機能要件学習の動作の一例を説明するための図である。 図25は、構成パスを生成する動作の一例を説明するための図である。 図26は、性能情報のデータ構造の一例を説明するための図である。 図27は、報酬の確定と学習データを生成するための動作の一例を説明するための図である。 図28は、実施形態1、2のシステム設計学習装置を実現するコンピュータの一例を示す図である。 図29は、実施形態3のシステム設計学習装置の一例を示す図である。 図30は、実施形態3のシステム設計学習装置の動作の一例を説明するための図である。 図31は、非機能要件学習の動作の一例を説明するための図である。 図32は、抽象構成パスを生成する動作の一例を説明するための図である。 図33は、抽象構成を生成するための動作の一例を説明するための図である。 図34は、非機能要件影響型情報のデータ構造の一例を説明するための図である。
はじめに、以降で説明する実施形態の理解を容易にするために概要を説明する。
(システム設計)
一例として顔認証システムを設計する場合について説明する。顔認証システムを設計する場合、まず、設計者は、顔認証システムのシステム要件を作成する。
図1は、顔認証システムの自動設計について説明するための図である。図1のグラフG1は、顔認証システムのシステム要件R1の構成を表すグラフである。図1のグラフG1は、ノードN1からN4と、エッジE1からE3を用いて表されている。
ノードN1は具体的なカメラ機能(実線円)を表し、ノードN2は具体的な顔認証機能(実線円)を表し、ノードN3は具体的なサーバコンピュータ機能(実線円)を表し、N4は抽象的なサーバコンピュータ機能(破線円)を表している。また、エッジE1は抽象的なHTTP通信機能(破線矢印)を表し、エッジE2、E3は具体的なjoin(所属)機能(実線矢印)を表している。
図2は、部品情報のデータ構造を説明するための図である。図2に示した部品情報P1は、ノードとエッジを識別する部品識別情報ごとに、ノード又はエッジの機能を表す機能情報と、ノード又はエッジが具体的な部品であるか抽象的な部品であるかを表す情報(具体的(1)/抽象的(0))とが関連付けられている。
図2の例では、部品識別情報「N1」と、機能情報「カメラ」と、ノードが具体的であることを表す情報「1」とが関連付けられている。部品識別情報「N2」から「N4」、「E1」から「E3」それぞれについても、同じように機能情報と、ノード又はエッジが具体的か抽象的かを表す情報とが関連付けられている。
図3は、システム要件のデータ構造を説明するための図である。図1に示したグラフG1に対応するシステム要件R1は、図3に示すように、二つのノード(始点ノードと終点ノード)と、二つのノードを接続するエッジ(接続エッジ)とを用いて表される。
具体的には、システム要件R1は、始点となるノード(始点ノード)を識別するための部品識別情報と、終点となるノード(終点ノード)を識別するための部品識別情報と、二つのノードを接続するエッジ(接続エッジ)を識別するための部品識別情報とが関連付けられた情報である。
なお、上述した図1から図3では、グラフG1、部品情報P1、システム要件R1を用いて、グラフと、部品情報と、システム要件とについて説明したが、グラフと、部品情報と、システム要件とは、グラフG1と、部品情報P1と、システム要件R1とに限定されるものではない。
次に、自動設計において、抽象的な部分を具体的な部分に変換する。図1の例では、システム要件R1に対応するグラフG1から、具体化規則に基づいて具体化することにより、図1に示すような複数のシステム構成案R2、R3、R4に対応するグラフG2、G3、G4・・・が導出されたことを示している。
図4は、具体化規則の説明をするための図である。図4には、複数の具体化規則をグラフで表したグラフG31、G32、G33・・・が示されている。
グラフG31は、図1に示したグラフG1を、図1に示したグラフG2に変換するために用いた具体化規則Rule1を表すグラフである。グラフG32は、図1に示したグラフG1を、図1に示したグラフG3に変換(ノードN4をノードN5に変換)するために用いた具体化規則Rule2を表すグラフである。グラフG33は、図1に示したグラフG1を、図1に示したグラフG4に変換(ノードN4をノードN6に変換)するために用いた具体化規則Rule3を表すグラフである。
図5は、具体化規則のデータ構造を説明するための図である。図5に示した具体化規則Rule1は、グラフG31に対応する。また、具体化規則Rule1は、抽象的な部分を検出するために用いる検出情報51と、検出情報51を具体的な部分に変換するための変換情報52とを有する。
なお、図示しないが、グラフG32、G33・・・にも、グラフG32、G33・・・に対応する具体化規則Rule2、Rule3・・・が存在する。
図1に示したグラフG1からグラフG2、G3、G4を導出する場合、まず、システム要件R1と、複数の検出情報(具体化規則の抽象的な部分)とを比較し、システム要件R1に含まれている抽象的な部分と一致する検出情報を検出する。
次に、検出した抽象的な部品に対応する検出情報を用いて、システム要件R1の検出した抽象的な部分を、変換情報(具体化規則の具体的な部分)に変更する。グラフG2への変換は、システム要件R1と具体化規則Rule1の検出情報51が一致するので、具体化規則Rule1の変換情報52に置換えている(変換している)。
その結果、システム要件R1からエッジE1が削除され、エッジE4が追加されて、グラフG2に対応するシステム構成案R2(不図示)が生成される。なお、グラフG3、G4それぞれに対応するシステム構成案R3、R4(不図示)も生成される。
次に、生成された複数のシステム構成案ごとに、更に、具体化規則を用いて、システム構成案の抽象的な部分を具体的な部分に変換する。さらに、システム構成案が生成された場合、上述した具体化処理を繰り返す。システム構成案が生成されなくなり、抽象的な部品がないシステム具体構成だけになった場合、具体化処理を停止する(自動設計を終了する)。
ところが、システム要件とシステム構成案を具体化する場合、複数の具体化規則を用いるので、選択する具体化規則、具体化規則を選択する順序によって、導出されるシステム構成案とシステム具体構成が変化する。すなわち、具体化規則を選択する順序によって、異なった構成の、システム構成案とシステム具体構成とが導出される。
また、適用する具体化規則の数が多くなると、生成されるシステム構成案とシステム具体構成の数が膨大な数になる。さらに、複数の異なるシステム具体構成の中には、システム要件を満たさない、システム具体構成が含まれることもある。したがって、システム具体構成を効率よく導出できない。
また、システム具体構成を効率よく導出するためには、どの具体化規則を適用するか、具体化規則を適用する順序の良し悪しを適切に判定することが重要である。
そこで、具体化処理を実行して生成されたシステム構成案に対して、機械学習により獲得した学習モデルを用いて、評価値を求め、システム構成案の中から評価値が最も高いシステム構成案を選択する。このように、学習モデルを用いた具体化処理を繰り返すことで、システム具体構成を効率よく導出することができる。
(実施形態1)
以下、図面を参照して実施形態1について説明する。なお、以下で説明する図面において、同一の機能又は対応する機能を有する要素には同一の符号を付し、その繰り返しの説明は省略することもある。
図6を用いて、実施形態1におけるシステム設計学習装置10の構成について説明する。図6は、実施形態1のシステム設計学習装置の一例を示す図である。
[装置構成]
図6に示すシステム設計学習装置10は、ICTシステムの機能要件に関する設計について学習をする装置である。システム設計学習装置10は、設計部11と、報酬設定部12と、変換部13と、学習データ生成部14と、学習部15とを有する。
設計部11は、抽象的な部分を含むシステムの構成を表す情報であるシステム要件に対して、抽象的な部分を具体的な部分に変換する具体化処理を実行し、抽象的な部分を含まないシステムの構成を表す情報であるシステム具体構成を生成し、システム要件からシステム具体構成が生成されるまでの過程を表す構成パス情報を生成する。
報酬設定部12は、構成パス情報に含まれる、システム要件、具体化処理の過程で生成されたシステム構成案、システム具体構成それぞれに対して報酬を設定する。また、報酬設定部12は、機能要件に基づいたシステムの設計方法を学習するための報酬を設定する。
変換部13は、構成パス情報を抽象化して抽象構成パス情報を生成する。具体的には、変換部13は、構成パス情報に含まれる、システム要件、システム構成案、システム具体構成それぞれが有する部品の型を表す型情報を、型を抽象的な型に変換するための型定義情報に基づいて、抽象的な型を表す抽象化型に変換し、抽象構成パス情報を生成する。
学習データ生成部14は、抽象構成パス情報に含まれる、抽象化したシステム要件、抽象化したシステム構成案、抽象化したシステム具体構成それぞれに対して報酬を関連付けて学習データを生成する。学習部15は、学習データに基づいて、機能要件に基づいたシステムの設計方法を学習する。
このように、実施形態1においては、大規模なシステムの設計の強化学習に係る時間を削減することができる。
[システム構成]
続いて、図7を用いて、実施形態1におけるシステム設計学習装置10の構成をより具体的に説明する。図7は、実施形態1のシステム設計学習装置を有するシステムの一例を示す図である。
システム100は、少なくともシステム設計学習装置10と、記憶装置20と、入力装置30とを有する。システム設計学習装置10と、記憶装置20と、入力装置30とが、通信可能にネットワークを介して接続されている。
システム設計学習装置10は、例えば、CPU(Central Processing Unit)、又はFPGA(Field-Programmable Gate Array)などのプログラマブルなデバイス、又はGPU(Graphics Processing Unit)、又はそれらのうちのいずれか一つ以上を搭載した回路、サーバコンピュータ、パーソナルコンピュータ、モバイル端末などの情報処理装置である。
記憶装置20は、データベース、サーバコンピュータ、メモリを有する回路などである。記憶装置20は、後述する各種の情報を記憶する。図2の例では、一つの記憶装置20がシステム設計学習装置10の外部に設けているが、複数の記憶装置20をシステム設計学習装置10の内部又は外部に設けてもよい。
入力装置30は、例えば、キーボード、マウス、タッチパネルなどの装置である。入力装置30は、システム設計学習装置10、出力装置40などを操作する際に用いる。
通信ネットワークは、例えば、インターネット、LAN(Local Area Network)、専用回線、電話回線、企業内ネットワーク、移動体通信網、ブルートゥース(登録商標)、WiFi(Wireless Fidelity)などの通信回線を用いて構築された一般的な通信ネットワークである。
[装置動作]
実施形態1におけるシステム設計学習装置の動作について説明する。以下の説明においては、適宜図を参照する。また、実施形態1では、システム設計学習装置を動作させることによって、システム設計学習方法が実施される。よって、実施形態1におけるシステム設計学習方法の説明は、以下のシステム設計学習装置の動作説明に代える。
●システム設計学習装置の動作について説明する。
図8は、実施形態1のシステム設計学習装置の動作の一例を説明するための図である。まず、システム設計学習装置10は、記憶装置20から学習対象のシステム要件を取得する(ステップS11)。
次に、システム設計学習装置10は、学習対象のシステム要件を用いて、あらかじめ設定された学習期間において強化学習を実行する(ステップS12)。ステップS12の詳細については、図9を参照して後述する。
学習期間は、例えば、実験、シミュレーションなどにより決定する。また、学習期間は、学習期間に換えて学習回数としてもよい。学習回数は、例えば、強化学習にニューラルネットワークを用いた場合、ニューラルネットワークの重みの更新回数とする。ただし、学習期間、学習回数に限定されるものではない。
次に、システム設計学習装置10は、現時点の機能要件の学習モデルを用いて、システム要件に対して具体化処理(設計)を実行する(ステップS13)。例えば、強化学習にニューラルネットワークを用いた場合、機能要件の学習モデルとは当該ニューラルネットワークのことを指す。
具体化処理(設計)は、システム要件に含まれる抽象的な部分(部品)を具体化する処理である。なお、具体化処理(設計)は、例えば、特許文献1に記載された設計方法が好適であるが、特許文献1の方法に限定されるものではない。
次に、システム設計学習装置10は、ステップS13の結果に基づき、機能要件の学習が十分であると判定された場合(ステップS14:Yes)、ステップS12の処理を終了する。また、機能要件について学習が十分でないと判定された場合(ステップS14:No)、機能要件についての学習が十分であると判定されるまで、ステップS12とステップS13の処理を繰り返す(継続する)。
ステップS14における判定は、例えば、特許文献1の設計方法によりステップS13の処理を実行した場合、探索のステップ数があらかじめ設定された閾値A以下であった場合に十分であると判定する。また、過去に実施したステップS13において、規定の回数連続で探索のステップ数が、あらかじめ設定された閾値B以下であった場合に十分だと判定してもよい。ただし、ステップS14における判定は、上述した判定に限定されない。
なお、上述した探索のステップ数はステップS13の設計方法に依存する。また、探索のステップ数は、設計の間に実際に到達したシステム構成案の数である。また、探索のステップ数は、設計の間に実際に適用した具体化規則の数とも言い換えられる。
閾値A及びBの決め方は、設計にかかるステップ数が十分短くなったと判断できるものであればよい。例えば、探索にかかる最短ステップ数を事前に計算しておき、当該最短ステップ数にある程度マージンを持たせた値(例えば1割など)を閾値A及びBとしてもよい。又は、実用上問題ない時間(例えば10分など)の間に実行された探索ステップ数を事前に試算しておき、それを閾値A及びBとしてもよい。
●機能要件学習(ステップS12)の動作について説明する。
図9は、機能要件学習の動作の一例を説明するための図である。機能要件学習では、ICTシステムの機能要件に関する設計方法を学習する。
まず、設計部11は、システム要件を用いて構成パスを生成する(ステップS121)。ステップS121の詳細については、図10を参照して後述する。
次に、報酬設定部12は、ステップS121で生成された構成パスの各システム構成(上述したシステム要件、又は、システム構成案、又は、システム具体構成)に対して報酬を設定する(ステップS122)。ステップS122の詳細については、図14を参照して後述する。
次に、変換部13は、ステップS121で生成された構成パスの各システム構成に対して、抽象化処理を実行して、抽象構成に変換する(ステップS123)。ステップS123の詳細については、図16を参照して後述する。
次に、学習データ生成部14は、抽象構成と、構成パスの報酬とを関連付けて学習データを生成し、生成した学習データを記憶装置20に記憶する(ステップS124)。ステップS124の詳細については、図20を参照して後述する。
次に、学習部15は、学習データに基づき学習を行う(ステップS125)。ステップS125の詳細については、図21を参照して後述する。
このように、あらかじめ設定された学習期間において、ステップS121からS125を繰り返す(ステップS126)。
●構成パスの生成(ステップS121)の動作について説明する。
図10は、構成パスを生成する動作の一例を説明するための図である。
まず、設計部11は、システム要件を現在の構成(システム構成)とする(ステップD11)。次に、設計部11は、現在の構成を探索木のルートノードとして登録する(ステップD12)。具体的には、設計部11は、現在の構成(システム要件)を識別するためのシステム要件識別情報をルートノードとして、探索木情報に記憶する。
図11は、探索木情報のデータ構造の一例を説明するための図である。図11の例では、記憶装置20に記憶されているシステム要件R1に関連付けられたシステム要件識別情報「R1」を、探索木情報121の「親ノード」に記憶し、更に、システム要件R1がルートノードであることを示す情報を「ルートノード」に記憶する。なお、図11の例では、ルートノードであることを示す情報として「1」を記憶している。
図12は、探索木の一例を説明するための図である。探索木は、図12に示すような、グラフ(探索木T1)で表すことができる。図12に示したルートノード(システム要件R1)は、図12のR1に相当する。
次に、設計部11は、現在の構成に具体化規則が一つも適用できない構成、又は、現在の構成がシステム具体構成である場合(ステップD13:Yes)、ステップD19の処理に移行する。また、設計部11は、現在の構成に適用できる具体化規則がある場合(ステップD13:No)、ステップD14からD18の処理を繰り返す。
次に、設計部11は、現在の構成に含まれる一つの部品を、具体化処理を実行して具体化する(ステップD14)。次に、設計部11は、ステップD14で具体化した構成(システム構成案)を次の構成とする(ステップD15)。
次に、設計部11は、次の構成(具体化した構成(システム構成案))が探索木情報に記憶されていない場合(ステップD16:No)、ステップD17の処理に移行する。また、設計部11は、次の構成(具体化した構成(システム構成案))が探索木情報に記憶されている場合(ステップD16:Yes)、ステップD18の処理に移行する。
次に、設計部11は、現在の構成を表すノードを親ノードとし、次の構成(具体化した構成)を子ノードとし、具体化した部品(具体化規則の具体的な部品)を表すエッジを有向エッジとして、現在の構成に、次の構成と、具体化した部品とを関連付けて探索木情報に記憶する(ステップD17)。
例えば、現在の構成がシステム要件R1からシステム構成案R2が生成される場合、図11に示すように、探索木情報121のシステム要件R1に対応するシステム構成案識別情報「R1」と、具体化処理により生成されたシステム構成案R2に対応するシステム構成案識別情報「R2」と、具体化処理で用いた具体化規則に対応する具体化規則識別情報「Rule1」とを関連付けて記憶する。
また、現在の構成がシステム構成案R2からシステム具体構成R5が生成された場合、図11に示すように、探索木情報121のシステム構成案識別情報「R2」と、具体化処理により生成されたシステム具体構成に関連付けられているシステム具体構成識別情報「R5」と、具体化処理で用いた具体化規則に関連付けられている具体化規則識別情報「Rule4」とを関連付けて記憶する。
次に、設計部11は、次の構成を現在の構成とする(ステップD18)。
次に、設計部11は、上述したステップD11からD18の処理において出現したシステム構成(システム要件、システム構成案、システム具体構成)を、システム要件から現在のシステム具体構成が生成されるに至るまでのパス(構成を時系列順に記憶した構成パス情報(構成パス))を生成する(ステップD19)。
図13は、構成パスのデータ構造の一例を説明するための図である。図13に示した構成パスCP1は、図11、図12に示した、システム要件「R1」、システム構成案「R2」、システム具体構成「R5」の順に表されている。
●報酬設定(ステップS122)の動作について説明する。
図14は、報酬設定の動作の一例を説明するための図である。
まず、報酬設定部12は、更新候補の報酬の初期値を決定する(ステップR11)。次に、報酬設定部12は、構成パスの各システム構成の報酬記録を更新する(ステップR12)。ステップR12の詳細については、図15を参照して後述する。
ステップR11において、報酬設定部12は、構成パスの最後の構成がシステム具体構成である場合、更新候補の報酬の初期値として、例えば、当該システム具体構成の報酬を表す報酬情報を「1」とし、システム具体構成でない場合、例えば、当該システム具体構成に対応する報酬を表す報酬情報を「0」とする。
なお、更新候補の報酬とは、ステップR12で構成パスの各システム構成が得られる報酬の値を更新する際に用いる値である。
なお、図13の例の場合には、構成パスCP1の最後の構成がシステム具体構成R5であるので、ステップR12の処理において、構成パスCP1のシステム具体構成を表す「R5」に、報酬情報「1」が関連付けられる。
●報酬の更新(ステップR12)の動作について、より詳細に説明する。
図15は、報酬情報を更新する動作の一例を説明するための図である。
まず、報酬設定部12は、構成パスの後尾(最後)の構成(システム構成)を、更新対象の構成(システム構成)とする(ステップR121)。次に、報酬設定部12は、更新対象の構成に関連付けられている報酬と、更新候補の報酬とを比較し、報酬の大きい方を選択し、選択した報酬を、更新対象の構成に関連付けて記憶する(ステップR122)。次に、報酬設定部12は、ステップR122において選択した報酬(比較して大きかった方)を、更新候補の報酬とする(ステップR123)。
次に、報酬設定部12は、構成パスの全ての構成に対して報酬更新処理をしていない場合(構成パスの先頭(最初)の構成(システム構成)まで報酬更新処理をしていない場合)(ステップR124:No)、構成パスにおける、現在の更新対象の構成の一つ前の構成を更新対象の構成とし(ステップR125)、ステップR122の処理に移行する。
また、報酬設定部12は、構成パスの全ての構成に対して報酬更新処理をした場合(構成パスの先頭(最初)の構成(システム構成)まで報酬更新処理をした場合)(ステップR124:Yes)、ステップR12の処理を終了する。
具体的には、ステップR122において更新候補の報酬とするのは、更新対象の構成に関連付けられている報酬と更新候補の報酬とを比較した後、比較前に、前者の報酬がそもそもまだなければ(関連付けられていなければ)「0」とみなす。そして比較した後、大きい方を、更新対象の構成に関連付けられている報酬及び更新候補の報酬として更新する。その後、更新対象の構成を更新し、この処理を繰り返す。
例えば、最初はどの構成にも報酬は関連付けられていないので、図13の例では、「R5」が、ステップR121の最初の更新候補の構成となり、「R5」には報酬がまだ関連付けられていないのでその値は「0」とみなす。その場合、更新候補の報酬は、ステップR11で「1」に初期化されているので、「0」と「1」が比較され、「1」の方が大きいので「R5」には報酬「1」が関連付けられる。
次に、更新候補の構成を「R2」にし、上述した処理と同様の処理を繰り返し実行する。その後、更に、更新候補の構成を「R1」にし、上述した処理と同様の処理を繰り返す。
別の例として、最初の更新候補の構成(システム具体構成でない構成)として始まり、それが具体構成ではなかった場合、更新候補の報酬が「0」に初期化され、その次の構成に報酬「1」が関連付けられていた場合、「0」と「1」が比較され、「1」の方が大きいので更新候補の報酬の値が「1」に更新される。
具体的には、ステップR12の処理では、ステップS121で行った設計から、設計の末尾の構成「R5」の評価値を基に設計の過程の構成「R2」「R1」の評価値を学習するためのデータ(報酬)を生成する。このとき、過去に、より大きなデータ(報酬)が得られていればそちらを優先するので、構成と関連づけて記憶されている報酬と比較し、大きい方を残すようにしている。
大きい方を残して上に伝搬させるのは(「R2」からみた場合の「R1」)、「R1」から「R2」に遷移できることが分かっているからである。学習したいのは最善の選択を選び続けた場合に得られる報酬の見込みであり、「R1」から適切な具体化規則を適用すれば「R2」に遷移できることが分かっているため、「R2」に関連付けられている報酬の方が大きければ、「R5」の報酬に優先して「R1」に伝搬すべきとなる。
なお、「R1」から必ずしも「R2」に遷移するわけではなく、その可能性があるということである。例えば、図12の例では「R3」「R4」に遷移する可能性もある。ただし、どれに遷移するかは自動設計機能が選べるので、比較して大きかった報酬を上に伝搬する。
●構成パスの抽象化(ステップS123)の動作についてより詳細に説明する。
図16は、抽象構成パスを生成する動作の一例を説明するための図である。
まず、変換部13は、構成パスの先頭(最初)の構成(システム構成)を変換対象の構成(システム構成)とする(ステップA11)。次に、変換部13は、変換対象の構成に含まれる全ての部品の中から一つの部品を選択する(ステップA12)。
次に、変換部13は、選択した部品を抽象的な部品に変換する(ステップA13)。ステップA13の詳細については、図18を参照して後述する。
次に、変換部13は、選択できる部品がない場合(ステップA14:Yes)、ステップA15の処理に移行する。また、変換部13は、選択できる部品がある場合(ステップA14:No)、ステップA12の処理に移行して、選択していない部品がなくなるまで、ステップA12からA13の処理を繰り返す。
次に、構成パスの全ての構成(システム構成)に対して抽象化処理をしていない場合(構成パスの後尾(最後)の構成(システム構成)まで抽象化処理をしていない場合)(ステップA15:No)、変換部13は、構成パスの次の構成(システム構成)を変換対象の構成とする(ステップA16)。次に、変換部13は、ステップA12の処理に移行する。
また、変換部13は、構成パスの全ての構成に対して抽象化処理をした場合(構成パスの後尾(最後)の構成(システム構成)まで抽象化処理をした場合)(ステップA15:Yes)、ステップA17の処理を実行する。すなわち、変換部13は、上述したステップA11からA16の変換処理により生成された全ての抽象構成(抽象化されたシステム構成)を時系列順に記憶し、抽象構成パスを生成する(ステップA17)。
図17は、抽象構成パスのデータ構造の一例を説明するための図である。図17に示した抽象構成パスACP1は、図13に示した、構成パスCP1を抽象化したものである。なお、抽象構成パスACP1の抽象化したシステム要件「AR1」、システム構成案「AR2」、システム具体構成「AR5」は、図11、図12に示した、システム要件「R1」、システム構成案「R2」、システム具体構成「R5」の順に表されている。
●抽象的な部品への変換(ステップA13)の動作についてより詳細に説明する。
図18は、抽象構成を生成するための動作の一例を説明するための図である。
まず、変換部13は、ステップA13で選択した部品の型を取得して対象の型とする(ステップA141)。具体的には、変換部13は、部品情報から、選択した部品に対応する型を取得する。例えば、部品情報を参照し、選択した部品に対応する機能情報を取得する。又は、部品情報に、更に、部品識別情報に型を表す型情報を関連付けて記憶しておき、選んだ部品に対応する型情報を取得してもよい。
次に、変換部13は、対象の型に対応する抽象化型を、あらかじめ作成された型定義情報を用いて検索する(ステップA142)。型定義情報は、型を表す型情報と、型を抽象化するための抽象化型情報とが関連付けられた情報である。型定義情報は、記憶装置20などに記憶されている。
型情報は、例えば、部品の機能、製品名などを表す情報である。抽象化型情報は、例えば、部品の機能、製品名を、上位の概念で表し、抽象化した情報である。図19を用いて、具体的に説明する。
図19は、型定義情報のデータ構造の一例を説明するための図である。図19の型定義情報191の例では、型を表す「型」として、「OS」「Wos」「Wos10」「Wos11」「Ubos」「Ubos18.04」「Ubos20.04」「Ubos22.04」などのオペレーティングシステムの種類(名称)が記憶されている。また、図19の例では、抽象化型を表す「抽象化型」として、「型」に記憶されているオペレーティングシステムを抽象化した表現が記憶されている。
「OS」の場合、OS以上の抽象化ができないので、「抽象化型」には存在がないことを表す「-」が記憶されている。「Wos」はOSの種類を表している(型を継承している)ので、OSに抽象化ができる。したがって、「抽象化型」には「OS」が記憶されている。「Wos10」は、WosというOSの種類とそのバージョンを表しているので、Wosに抽象化ができる。したがって、「抽象化型」には「Wos」が記憶されている。
なお、図19は、「型」が段階的に変換される「抽象化型」の途中の状態を表している。すなわち、図19の例では、最終的には「抽象型」は全て「OS」に変換される。
なお、型定義情報は、オペレーティングシステムに限定されるものでなく、オペレーティングシステム以外の部品の型についても、抽象化型が定義されている。さらに、型定義情報は、型に対して抽象化型だけが関連付けられているが(最小限の型定義情報のみを示しているが)、他の情報を関連付けてもよい。例えば、型が具体的であるか抽象的であるかの情報、その型の部品の性能に関する属性値、これら以外の情報を関連付けてもよい。
次に、変換部13は、対象の型が型定義情報にあり、当該対象の型に対応する抽象化型ある場合(ステップA143:Yes)、対象の型を抽象化型に変更(ステップA144)し、ステップA142の処理に移行する。すなわち、抽象化型に変更できなくなるまで、ステップA142からA144の処理を繰り返す。
そして、変換部13は、選択した部品の型を抽象化型に変更する(ステップA145)。具体的には、部品情報の型(例えば機能情報など)を抽象化型に変更する。
●学習データの生成(ステップS124)の動作について、より詳細に説明する。
図20は、報酬の確定と学習データを生成するための動作の一例を説明するための図である。
まず、学習データ生成部14は、抽象構成パスの先頭(最初)の構成(システム構成)を学習データ化対象の抽象構成とする(ステップM11)。次に、学習データ生成部14は、構成パスの先頭(最初)の構成を報酬参照対象の構成とする(ステップM12)。
次に、学習データ生成部14は、学習データを生成するための対象の抽象構成と、報酬参照対象の構成に対応する報酬(ステップS122で設定した報酬)とを組とした学習データを生成し、生成した学習データを記憶装置20に記憶する(ステップM13)。
次に、学習データ生成部14は、抽象構成パスの全ての構成に対して学習データを生成していない場合(抽象構成パスの後尾(最後)の構成まで学習データを生成していない場合)(ステップM14:No)、ステップM15に移行する。また、学習データ生成部14は、抽象構成パスの全ての構成に対して学習データを生成した場合(抽象構成パスの後尾(最後)の構成まで学習データを生成した場合)(ステップM14:Yes)、学習データを生成する処理を終了する。
次に、学習データ生成部14は、抽象構成パスの次の構成を、学習データを生成するための対象の抽象構成とする(ステップM15)。次に、学習データ生成部14は、構成パスの次の構成を報酬参照対象の構成とする(ステップM16)。
●学習(ステップS125)の動作についてより詳細に説明する。
図21は、学習するための動作の一例を説明するための図である。
ステップS125について具体的な動作を例示する。学習モデルは、グラフ内の各ノード及びエッジとグラフ自身が属性値を持つグラフ情報を入力とし、同様の形式のグラフ情報を出力するGNN(Graph Neural Network)とする。
まず、学習部15は、ステップS124で保存した学習データから、一つの学習データD1を選択する(ステップL11)。次に、学習部15は、学習データD1に含まれる抽象構成を表すグラフ情報を学習モデルに入力し、学習モデルから出力される結果(グラフ情報OG1)を取得する(ステップL12)。
次に、学習部15は、グラフ情報OG1のうち、グラフ自身が持つ属性値At1と、データD1に含まれる報酬とを組にし、組VP1を生成する(ステップL13)。
次に、学習部15は、学習データを全て選択した場合(ステップL14:Yes)、ステップL15の処理を実行する。学習部15は、学習データを全て選択していない場合(ステップL14:No)、ステップL11からL13の処理を繰り返す。
次に、学習部15は、学習データに含まれる全てのデータについて、組VP1を生成し、集めたものをVPS1とする(ステップL15)。
次に、学習部15は、VPS1に含まれる各組を用いて、属性値と確定報酬の平均二乗誤差を損失関数とし、その損失関数を最小化するよう、学習モデルを学習させる(ステップL16)。
[実施形態1の効果]
実施形態1によれば、規模の大きなシステムについても、機能要件に関する設計の学習ができる。
また、構成(システム構成)に含まれる部品の型を抽象化し、抽象構成を含む学習データを生成し、学習データを使用して学習を行うことで、部品の違いによる影響を除いた大まかな評価ができる。その結果、構成に含まれる部品のみ異なる各構成を個別に学習する時間を削減できるので、規模の大きなシステムについても機能要件に関する設計の学習ができる。
[プログラム]
実施形態1におけるプログラムは、コンピュータに、図8に示すステップS11からS14を実行させるプログラムであればよい。このプログラムをコンピュータにインストールし、実行することによって、実施形態1におけるシステム設計学習装置とシステム設計学習方法とを実現することができる。この場合、コンピュータのプロセッサは、設計部11、報酬設定部12、変換部13、学習データ生成部14、学習部15として機能し、処理を行なう。
また、実施形態1におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されてもよい。この場合は、例えば、各コンピュータが、それぞれ、設計部11、報酬設定部12、変換部13、学習データ生成部14、学習部15のいずれかとして機能してもよい。
(実施形態2)
以下、図面を参照して実施形態2について説明する。なお、以下で説明する図面において、同一の機能又は対応する機能を有する要素には同一の符号を付し、その繰り返しの説明は省略することもある。
図22を用いて、実施形態2におけるシステム設計学習装置220の構成について説明する。図22は、実施形態2のシステム設計学習装置の一例を示す図である。
図22に示すシステム設計学習装置220は、ICTシステムの非機能要件に関する設計について学習をする装置である。
非機能要件は、例えば、可用性、性能、拡張性、運用・保守性、セキュリティなどを規定した要件である。具体的には、非機能要件は、システム構成(上述したシステム要件、又は、システム構成案、又は、システム具体構成)が持つ制約式、又は、システム構成に含まれる部品が持つ制約式として定義される。
例えば、図1の顔認証システムは、顔認証機能がカメラ機能と通信をして映像データを取り込む機能を有し、上述した通信の速度が10[Mbps](メガビット毎秒:以下同様)以上であることが必要であるものとする。その場合、図1の顔認証システムの構成を表すシステム要件R1のエッジE1は、通信速度が10[Mbps]以上であることを表す制約式を持つ。制約式は、例えば、通信速度>=10[Mbps]などの式で表すことができる。
また、顔認証システム全体のコストが1000万円以下である必要がある場合、顔認証システムは、コストが1000万円以下であることを表す制約式を持つ。制約式は、例えば、コスト<=1000万円などの式で表すことができる。
[装置構成]
図22に示すシステム設計学習装置220は、設計部11aと、報酬設定部12aと、変換部13aと、学習データ生成部14aと、学習部15aとを有する。
設計部11aは、抽象的な部分を含むシステムの構成を表す情報であるシステム要件に対して、抽象的な部分を具体的な部分に変換する具体化処理を実行し、抽象的な部分を含まないシステムの構成を表す情報であるシステム具体構成を生成し、システム要件からシステム具体構成が生成されるまでの過程を表す構成パス情報を生成する。
報酬設定部12aは、非機能要件に基づいたシステムの設計方法を学習するための報酬を設定する。具体的には、報酬設定部12aは、構成パス情報に含まれる、システム要件、具体化処理の過程で生成されたシステム構成案、システム具体構成それぞれに対して、システム要件、システム構成案、システム具体構成それぞれの性能を表す性能情報に基づいた報酬を設定する。
変換部13aは、構成パス情報を抽象化して抽象構成パス情報を生成する。具体的には、変換部13aは、構成パス情報に含まれる、システム要件、システム構成案、システム具体構成それぞれが有する部品の型を表す型情報を、型を抽象的な型に変換するための型定義情報に基づいて、抽象的な型を表す抽象化型に変換し、抽象構成パス情報を生成する。
学習データ生成部14aは、抽象構成パス情報に含まれる、抽象化したシステム要件、抽象化したシステム構成案、抽象化したシステム具体構成それぞれに対して報酬を関連付けて学習データを生成する。学習部15aは、学習データに基づいて、非機能要件に基づいたシステムの設計方法を学習する。
このように、実施形態2においては、大規模なシステムの設計の強化学習に係る時間を削減することができる。
[装置動作]
実施形態2におけるシステム設計学習装置の動作について説明する。以下の説明においては、適宜図を参照する。また、実施形態2では、システム設計学習装置を動作させることによって、システム設計学習方法が実施される。よって、実施形態2におけるシステム設計学習方法の説明は、以下のシステム設計学習装置の動作説明に代える。
●システム設計学習装置の動作について説明する。
図23は、実施形態2のシステム設計学習装置の動作の一例を説明するための図である。まず、システム設計学習装置220は、記憶装置20から学習対象のシステム要件を取得する(ステップS11a)。
次に、システム設計学習装置220は、学習対象のシステム要件を用いて、あらかじめ設定された学習期間において強化学習を実行する(ステップS12a)。学習期間については、実施形態1で説明した方法と同様の方法で設定する。ステップS12aの詳細については、図24を参照して後述する。
次に、システム設計学習装置220は、現時点の非機能要件の学習モデルを用いて、システム要件に基づいて生成された一つ以上のシステム具体構成に対して性能の推定を行う(ステップS13a)。非機能要件の学習モデルとしては、例えば、ニューラルネットワークなどを用いる。
次に、システム設計学習装置220は、ステップS13aの推定結果に基づき、非機能要件の学習が十分であると判定された場合(ステップS14a:Yes)、ステップS12aの処理を終了する。また、非機能要件について学習が十分でないと判定された場合(ステップS14a:No)、非機能要件についての学習が十分であると判定されるまで、ステップS12aとステップS13aの処理を繰り返す(継続する)。
ステップS14aにおける非機能要件についての学習が十分か否かの判定は、例えば、性能推定結果の誤差の平均を算出し、算出した平均が、あらかじめ設定した閾値C以下である場合に十分であると判定する。又は、性能推定結果の尤度ないし対数尤度が、あらかじめ設定した閾値D以下である場合に十分であると判定する。
性能推定結果とは、ある具体構成のある部品の性能について推定した場合、当該構成を表すグラフを非機能要件の学習モデルに入力した結果出力されるグラフに含まれる、当該部品の性能値を表す属性値のことである。属性値と、実際に当該部品の性能を測定して得られた性能値と、の誤差に基づいて、ステップS14aの判定を行う。閾値C及びDの決め方は、性能推定の精度が十分高くなったと判断できるものであればよい。例えば、閾値Cを10[%]としてもよいし、閾値Dを0.001としてもよい。
●非機能要件学習(ステップS12a)について説明する。
図24は、非機能要件学習の動作の一例を説明するための図である。非機能要件学習では、ICTシステムの非機能要件に関する設計方法を学習する。
まず、設計部11aは、システム要件を用いて構成パスを生成する(ステップS121a)。ステップS121aの詳細については、図25を参照して後述する。
次に、報酬設定部12aは、ステップS121aで生成された構成パスの各システム構成(上述したシステム要件、又は、システム構成案、又は、システム具体構成)に対して報酬を設定する(ステップS122a)。ステップS122aの詳細については、図26を参照して後述する。
次に、変換部13aは、ステップS121aで生成された構成パスの各システム構成に対して、抽象化処理を実行して、抽象構成に変換する(ステップS123a)。ステップS123aの動作は、実施形態1で説明したステップS123の動作と同様であるので、動作の説明を省略する。
次に、学習データ生成部14aは、抽象構成と、構成パスの報酬とを関連付けて学習データを生成し、生成した学習データを記憶装置20に記憶する(ステップS124a)。ステップS124aの詳細については、図27を参照して後述する。
次に、学習部15aは、学習データに基づき学習を行う(ステップS125a)。ステップS125aの詳細については後述する。
このように、あらかじめ設定された学習期間において、ステップS121aからS125aを繰り返す(ステップS126a)。
●構成パスの生成(ステップS121a)の動作について説明する。
図25は、構成パスを生成する動作の一例を説明するための図である。
まず、設計部11aは、システム要件を現在の構成(システム構成)とする(ステップD21)。次に、設計部11aは、現在の構成に具体化規則が一つも適用できない構成、又は、現在の構成がシステム具体構成でない場合(ステップD22:No)、ステップD23の処理に移行する。また、設計部11aは、現在の構成に適用できる具体化規則がないか、現在の構成が具体構成である場合(ステップD22:Yes)、ステップD25の処理に移行する。
次に、設計部11aは、現在の構成に含まれる一つの部品を、具体化処理を実行して具体化する(ステップD23)。次に、設計部11aは、ステップD23で具体化した構成(システム構成案)を現在の構成とする(ステップD24)。
次に、設計部11aは、上述したステップD23からD24の処理において出現したシステム構成(システム要件、システム構成案、システム具体構成)を、システム要件から現在のシステム具体構成が生成されるに至るまでのパス(構成を時系列順に記憶した構成パス情報(構成パス))を生成する(ステップD25)。
●報酬設定(ステップS122a)の動作について説明する。
ステップS122aでは、報酬設定部12aは、記憶装置20に記憶されている性能情報を参照して、構成パスの最後の構成(システム具体構成)に対応する性能データを取得し、取得した性能データが表す値に基づいて報酬を決定する。
図26は、性能情報のデータ構造の一例を説明するための図である。性能情報は、過去に性能を測定したシステム具体構成を表すシステム具体構成識別情報と、非機能要件の種類ごとの性能値を表す性能データとが関連付けられている。図26の例では、「システム具体構成識別情報」に「ID1」「ID2」「ID3」・・・が記憶されている。また、図26の「性能情報」の「帯域」に「1000」「100」「10」・・・、「遅延」に「100」「10」「1」・・・が記憶されている。ただし、性能データは、上述した通信の帯域、遅延に限定されるものでなく、帯域、遅延以外の性能データであってもよい。
例えば、帯域の測定には、ネットワーク性能の測定及びチューニングを実行するツールであるiPerf(登録商標)などを利用する。また、遅延の測定には、一般的なOSにあらかじめ実装されているpingなどのソフトウェアを利用する。ただし、これらの方法は例であり、これらに限定されない。また、測定する性能の種類に応じて適切な測定方法を採用する。
報酬は、単に性能値の値そのものを報酬の値とする。例えば、帯域が100[Mbps]であれば、報酬を100とする。ただし、性能値ごとにどの単位を用いるかはあらかじめ適当に(例えば、使用頻度に基づいて)決めておく。例えば、帯域の単位はMbpsを用いると決めた場合、1[Gbps](ギガビット毎秒:以下同様)は1000[Mbps]であるので報酬を1000とする。また、学習する値はスケールが小さい方が都合がよいので、性能値に対数変換を施した値を報酬の値としてもよい。
報酬は、例えば、帯域、遅延などの非機能要件の種類ごとに設けてもよいし、又は、統一的な一つの報酬にまとめてもよい。
報酬を非機能要件の種類ごとに設ける場合、性能データの値をそのまま報酬にしてもよいし(報酬決定方法1)。また、値が大きいほど良いことを表す性能に関しては、対応する非機能要件に関する報酬は、当該性能データの値をそのままとし、値が小さいほど良いことを表す性能に関しては、対応する非機能要件に関する報酬は当該性能の値の逆数としてもよい(報酬決定方法2)。
また、統一的な一つの報酬にまとめる場合、報酬決定方法2により決定した非機能要件の種類ごとの報酬に、適当な重みを付けて加算した値を報酬とするのが好適である。
●学習データの生成(ステップS124a)の動作について説明する。
図27は、報酬の確定と学習データを生成するための動作の一例を説明するための図である。
まず、学習データ生成部14aは、抽象構成パスの先頭(最初)の構成(システム構成)を、学習データを生成するための対象の抽象構成とする(ステップM21)。学習データ生成部14aは、対象の抽象構成と、ステップS122aで設定した報酬とを組とした学習データを生成し、生成した学習データを記憶装置20に記憶する(ステップM22)。
次に、学習データ生成部14aは、抽象構成パスの次の構成を、学習データを生成するための対象の抽象構成とする(ステップM23)。
次に、学習データ生成部14aは、抽象構成パスの全ての構成に対して学習データを生成していない場合(抽象構成パスの後尾(最後)の構成まで学習データを生成していない場合)(ステップM24:No)、ステップM22からM23の処理を繰り返す。また、学習データ生成部14aは、抽象構成パスの全ての構成に対して学習データを生成した場合(抽象構成パスの後尾(最後)の構成まで学習データを生成した場合)(ステップM24:Yes)、学習データを生成する処理を終了する。
●学習(ステップS125a)の動作について説明する。
ステップS125aの動作について説明する。学習モデルは、グラフ内の各ノード及びエッジとグラフ自身が属性値を持つグラフ情報を入力とし、同様の形式のグラフ情報を出力するGNN(Graph Neural Network)とする。
ステップS125aの動作は、実施形態1で説明したステップS125の動作と同様であるので、動作の詳細な説明を省略する。なお、実施形態1と異なるのは、学習の仕方(ステップL16)であるので、図21に示す実施形態1のステップL16ついて、二つの例(1)(2)について説明する。
(1)の例は、非機能要件に関する報酬の期待値を学習するものである。この場合、学習モデルに対して学習データに含まれる構成が入力された際、学習データに含まれる抽象構成について出力される評価値が、学習データに含まれる報酬の値に近づくように、学習モデルの出力の誤差を修正する形で機械学習を行う。具体的には、VPS1に含まれる各組について、属性値と確定報酬の平均二乗誤差を損失関数とし、その損失関数を最小化するように、学習モデルを学習させる。
(2)の例は、非機能要件に関する報酬の確率密度関数を学習するものである。この場合、学習モデルに対し学習データに含まれる構成が入力されたとき、学習データに含まれる確率密度関数のパラメータに基づく確率密度関数が、学習データに含まれる報酬の値に対し尤度が高くなるよう、確率密度関数のパラメータを補正する形で学習を行う。
確率密度関数のパラメータは、例として報酬の確率密度関数が混合ガウス分布に従うと想定した場合、混合ガウス分布を構成する各ガウス分布における平均値μ、分散Σ、混合係数πである。この想定は典型的な一つの例でありこれに限定されない。また、上述した確率密度関数の尤度が高くなるよう確率密度関数のパラメータを補正する方法は、例えばEMアルゴリズムを適用するといったものが好適であるが、これに限定されない。
[実施形態2の効果]
実施形態2によれば、規模の大きなシステムについても非機能要件に関する設計の学習ができる。
構成(システム構成)に含まれる部品の型を抽象化し、抽象構成を含む学習データを生成し、学習データを使用して学習を行うことで、部品の違いによる影響を除いた大まかな評価ができる。その結果、構成に含まれる部品のみ異なる各構成を個別に学習する時間を削減できるので、規模の大きなシステムについても非機能要件に関する設計の学習ができる。
[プログラム]
実施形態2におけるプログラムは、コンピュータに、図に示すステップS11aからS14aを実行させるプログラムであればよい。このプログラムをコンピュータにインストールし、実行することによって、実施形態2におけるシステム設計学習装置とシステム設計学習方法とを実現することができる。この場合、コンピュータのプロセッサは、設計部11a、報酬設定部12a、変換部13a、学習データ生成部14a、学習部15aとして機能し、処理を行なう。
また、実施形態2におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されてもよい。この場合は、例えば、各コンピュータが、それぞれ、設計部11a、報酬設定部12a、変換部13a、学習データ生成部14a、学習部15aのいずれかとして機能してもよい。
(実施形態3)
以下、図面を参照して実施形態3について説明する。なお、以下で説明する図面において、同一の機能又は対応する機能を有する要素には同一の符号を付し、その繰り返しの説明は省略することもある。
図29を用いて、実施形態3におけるシステム設計学習装置300の構成について説明する。図29は、実施形態3のシステム設計学習装置の一例を示す図である。
図29に示すシステム設計学習装置300は、ICTシステムの非機能要件に関する設計について学習をする装置である。
非機能要件は、例えば、可用性、性能、拡張性、運用・保守性、セキュリティなどを規定した要件である。具体的には、非機能要件は、システム構成(上述したシステム要件、又は、システム構成案、又は、システム具体構成)が持つ制約式、又は、システム構成に含まれる部品が持つ制約式として定義される。
例えば、図1の顔認証システムは、顔認証機能がカメラ機能と通信をして映像データを取り込む機能を有し、上述した通信の速度が10[Mbps](メガビット毎秒:以下同様)以上であることが必要であるものとする。その場合、図1の顔認証システムの構成を表すシステム要件R1のエッジE1は、通信速度が10[Mbps]以上であることを表す制約式を持つ。制約式は、例えば、通信速度>=10[Mbps]などの式で表すことができる。
また、顔認証システム全体のコストが1000万円以下である必要がある場合、顔認証システムは、コストが1000万円以下であることを表す制約式を持つ。制約式は、例えば、コスト<=1000万円などの式で表すことができる。
[装置構成]
図29に示すシステム設計学習装置300は、設計部11bと、報酬設定部12bと、変換部13bと、学習データ生成部14bと、学習部15bとを有する。
設計部11bは、抽象的な部分を含むシステムの構成を表す情報であるシステム要件に対して、抽象的な部分を具体的な部分に変換する具体化処理を実行し、抽象的な部分を含まないシステムの構成を表す情報であるシステム具体構成を生成し、システム要件からシステム具体構成が生成されるまでの過程を表す構成パス情報を生成する。
報酬設定部12bは、非機能要件に基づいたシステムの設計方法を学習するための報酬を設定する。具体的には、報酬設定部12bは、構成パス情報に含まれる、システム要件、具体化処理の過程で生成されたシステム構成案、システム具体構成それぞれに対して、システム要件、システム構成案、システム具体構成それぞれの性能を表す性能情報に基づいた報酬を設定する。
変換部13bは、構成パス情報を抽象化して抽象構成パス情報する生成する。具体的には、変換部13bは、構成パス情報に含まれる、システム要件、システム構成案、システム具体構成それぞれが有する部品の型を表す型情報のうち、学習する非機能要件の指標への影響が小さい部品の型情報を、型を抽象的な型に変換するための型定義情報に基づいて、抽象的な型を表す抽象化型に変換し、抽象構成パス情報を生成する。
言い換えると、変換部13bは、非機能要件の種別を表す非機能要件種別情報と、非機能要件の指標に大きく影響する型を表す型情報の集合と、が関連付けられた情報である非機能要件影響型情報を用いて、システム要件、システム構成案、システム具体構成それぞれが有する部品の型が、学習中の非機能要件の指標に大きく影響する型かどうか判断し、大きく影響しないと判断した場合に型を抽象化する。
学習データ生成部14bは、抽象構成パス情報に含まれる、抽象化したシステム要件、抽象化したシステム構成案、抽象化したシステム具体構成それぞれに対して報酬を関連付けて学習データを生成する。学習部15bは、学習データに基づいて、非機能要件に基づいたシステムの設計方法を学習する。
このように、実施形態3においては、大規模なシステムの設計の強化学習に係る時間を削減することができる。
[装置動作]
実施形態3におけるシステム設計学習装置の動作について説明する。以下の説明においては、適宜図を参照する。また、実施形態3では、システム設計学習装置を動作させることによって、システム設計学習方法が実施される。よって、実施形態3におけるシステム設計学習方法の説明は、以下のシステム設計学習装置の動作説明に代える。
●システム設計学習装置の動作について説明する。
図30は、実施形態3のシステム設計学習装置の動作の一例を説明するための図である。まず、システム設計学習装置300は、記憶装置20から学習対象のシステム要件を取得する(ステップS11b)。
次に、システム設計学習装置300は、学習対象のシステム要件を用いて、あらかじめ設定された学習期間において強化学習を実行する(ステップS12b)。学習期間については、実施形態1で説明した方法と同様の方法で設定する。ステップS12bの詳細については、図31を参照して後述する。
次に、システム設計学習装置300は、現時点の非機能要件の学習モデルを用いて、システム要件に基づいて生成された一つ以上のシステム具体構成に対して性能の推定を行う(ステップS13b)。非機能要件の学習モデルとしては、例えば、ニューラルネットワークなどを用いる。
次に、システム設計学習装置300は、ステップS13bの推定結果に基づき、非機能要件の学習が十分であると判定された場合(ステップS14b:Yes)、ステップS12bの処理を終了する。また、非機能要件について学習が十分でないと判定された場合(ステップS14b:No)、非機能要件についての学習が十分であると判定されるまで、ステップS12bとステップS13bの処理を繰り返す(継続する)。
ステップS14bにおける非機能要件についての学習が十分か否かの判定は、例えば、性能推定結果の誤差の平均を算出し、算出した平均が、あらかじめ設定した閾値C以下である場合に十分であると判定する。又は、性能推定結果の尤度ないし対数尤度が、あらかじめ設定した閾値D以下である場合に十分であると判定する。
性能推定結果とは、ある具体構成のある部品の性能について推定した場合、当該構成を表すグラフを非機能要件の学習モデルに入力した結果出力されるグラフに含まれる、当該部品の性能値を表す属性値のことである。属性値と、実際に当該部品の性能を測定して得られた性能値と、の誤差に基づいて、ステップS14bの判定を行う。閾値C及びDの決め方は、性能推定の精度が十分高くなったと判断できるものであればよい。例えば、閾値Cを10[%]としてもよいし、閾値Dを0.001としてもよい。
●非機能要件学習(ステップS12b)について説明する。
図31は、非機能要件学習の動作の一例を説明するための図である。非機能要件学習では、ICTシステムの非機能要件に関する設計方法を学習する。
まず、設計部11bは、システム要件を用いて構成パスを生成する(ステップS121b)。ステップS121bの動作は、実施形態2で説明したステップS121aの動作と同様であるので、動作の説明を省略する。
次に、報酬設定部12bは、ステップS121bで生成された構成パスの各システム構成(上述したシステム要件、又は、システム構成案、又は、システム具体構成)に対して報酬を設定する(ステップS122b)。ステップS122bの動作は、実施形態2で説明したステップS122aの動作と同様であるので、動作の説明を省略する。
次に、変換部13bは、ステップS121bで生成された構成パスの各システム構成に対して、抽象化処理を実行して、抽象構成に変換する(ステップS123b)。ステップS123bの詳細については、図32を参照して後述する。
次に、学習データ生成部14bは、抽象構成と、構成パスの報酬とを関連付けて学習データを生成し、生成した学習データを記憶装置20に記憶する(ステップS124b)。ステップS124bの動作は、実施形態2で説明したステップS124aの動作と同様であるので、動作の説明を省略する。
次に、学習部15aは、学習データに基づき学習を行う(ステップS125b)。ステップS125bの動作は、実施形態2で説明したステップS125aの動作と同様であるので、動作の説明を省略する。
このように、あらかじめ設定された学習期間において、ステップS121bからS125bを繰り返す(ステップS126b)。
●構成パスの抽象化(ステップS123b)の動作についてより詳細に説明する。
図32は、抽象構成パスを生成する動作の一例を説明するための図である。
まず、変換部13bは、構成パスの先頭(最初)の構成(システム構成)を変換対象の構成(システム構成)とする(ステップA11b)。次に、変換部13は、変換対象の構成に含まれる全ての部品の中から一つの部品を選択する(ステップA12b)。
次に、変換部13bは、選択した部品が現在学習中の非機能要件の指標に大きく影響する部品であるか否か確認する(ステップA13b)。選択した部品が現在学習中の非機能要件の指標に大きく影響する部品でない場合(ステップA13b:No)、変換部13bは、選択した部品を抽象的な部品に変換する(ステップA14b)。選択した部品が現在学習中の非機能要件の指標に大きく影響する部品である場合(ステップA13b:Yes)、ステップA15bに移行する。ステップA13bの詳細については図33を参照して後述する。ステップA14bの動作は、実施形態1で説明したステップA13の動作と同様であるので、動作の説明を省略する。
次に、変換部13bは、選択できる部品がない場合(ステップA15b:Yes)、ステップA16bの処理に移行する。また、変換部13bは、選択できる部品ある場合(ステップA15b:No)、ステップA12bの処理に移行して、選択していない部品がなくなるまで、ステップA12bからA14bの処理を繰り返す。
次に、構成パスの全ての構成(システム構成)が変換対象の構成になっていない場合(構成パスの後尾(最後)の構成(システム構成)まで変換対象の構成になっていない場合)(ステップA16b:No)、変換部13bは、構成パスの次の構成(システム構成)を変換対象の構成とする(ステップA17b)。次に、変換部13bは、ステップA12bの処理に移行する。
また、変換部13bは、構成パスの全ての構成が変換対象の構成になった場合(構成パスの後尾(最後)の構成(システム構成)まで変換対象の構成になった場合)(ステップA16b:Yes)、ステップA18bの処理を実行する。すなわち、変換部13bは、上述したステップA11bからA17bの処理により変換された全ての抽象構成(抽象化されたシステム構成)および変換されなかった全ての構成を時系列順に記憶し、抽象構成パスを生成する(ステップA18b)。
図17に示した抽象構成パスACP1は、図13に示した、構成パスCP1を抽象化したものである。なお、抽象構成パスACP1の抽象化したシステム要件「AR1」、システム構成案「AR2」、システム具体構成「AR5」は、図11、図12に示した、システム要件「R1」、システム構成案「R2」、システム具体構成「R5」の順に表されている。
●現在学習中の非機能要件の指標に大きく影響する部品であるか否かの確認(ステップA13b)の動作についてより詳細に説明する。
図33は、抽象構成を生成するための動作の一例を説明するための図である。
まず、変換部13bは、ステップA12bで選択した部品の型を取得して対象の型とする(ステップA131b)。具体的には、変換部13bは、部品情報から、選択した部品に対応する型を取得する。例えば、部品情報を参照し、選択した部品に対応する機能情報を取得する。又は、部品情報に、更に、部品識別情報に型を表す型情報を関連付けて記憶しておき、選んだ部品に対応する型情報を取得してもよい。
次に、変換部13bは、対象の型が現在学習中の非機能要件の指標に大きく影響する型か否か、あらかじめ作成された非機能要件影響型情報を用いて検索する(ステップA132b)。非機能要件影響型情報は、非機能要件の種別を表す非機能要件種別情報と、当該非機能要件の指標に大きく影響する型を表す型情報の集合とが関連付けられた情報である。非機能要件影響型情報は、記憶装置20などに記憶されている。
図34は、非機能要件影響型情報のデータ構造の一例を説明するための図である。図34の例では、非機能要件影響型情報に含まれる非機能要件の種別を表す「非機能要件」として、「処理速度」「通信帯域」の種別(名称)が記憶されている。また、図34の例では、当該非機能要件の指標に大きく影響する型を表す型情報の集合として、「処理速度」には「Server」「Machine」「PhysicalMachine」「VirtualMachine」「EX58」「LV」「Mt」が関連付けられており、「通信帯域」には「Router」「Switch」「L3Switch」「L2Switch」「UNI―QX(L2)」「UNI―QX(L3)」「UNI―IX」が関連付けられている。
「Server」は、サーバ全般を表す抽象的な型情報である。「Machine」は、クライアントPC全般を表す抽象的な型情報である。「PhysicalMachine」は、物理的なクライアントPC全般を表す抽象的な型情報である。「VirtualMachine」は、仮想的なクライアントPCを表す抽象的な型情報である。「EX58」は、EX58という製品名のサーバを表す具体的な型情報である。「LV」は、LVという製品名の物理的なクライアントPCを表す具体的な型情報である。「Mt」は、Mtという製品名の物理的なクライアントPCを表す具体的な型情報である。
「Router」は、ルータ全般を表す抽象的な型情報である。「Switch」は、ネットワークスイッチ全般を表す抽象的な型情報である。「L3Switch」は、L3スイッチ全般を表す抽象的な型情報である。「L2Switch」は、L2スイッチ全般を表す抽象的な型情報である。「UNI―QX(L2)」は、UNI―QX(L2)という製品名のL2スイッチを表す具体的な型情報である。「UNI―QX(L3)」は、UNI―QX(L3)という製品名のL3スイッチを表す具体的な型情報である。「UNI―IX」は、UNI―IXという製品名のルータを表す具体的な型情報である。
なお、非機能要件影響型情報は、図34の例に限定されるものでなく、「処理速度」「通信遅延」以外の非機能要件の種別が、該非機能要件の指標に大きく影響する型を表す型情報の集合と関連付けられて記憶されていてもよいし、「処理速度」「通信遅延」に上記の例とは異なる型を表す型情報の集合と関連付けられて記憶されていてもよい。
次に、変換部13bは、ステップA132bで検索した結果、非機能要件影響型情報に含まれる現在学習中の非機能要件の種別に関連付けられた型の集合に対象の型が含まれていた場合(ステップA133b:Yes)、対象の型は現在学習中の非機能要件の指標に大きく影響する型であったと判断して、ステップA13bを終了する(ステップA134b)。一方、非機能要件影響型情報に含まれる現在学習中の非機能要件の種別に関連付けられた型の集合に対象の型が含まれていなかった場合(ステップA133b:No)、対象の型は現在学習中の非機能要件の指標に大きく影響する型ではなかったと判断して、ステップA13bを終了する(ステップA135b)。
[実施形態3の効果]
実施形態3によれば、規模の大きなシステムについても、非機能要件の指標への影響が大きな部品の違いを考慮したうえで、非機能要件に関する設計の学習ができる。
構成(システム構成)に含まれる部品の型のうち、非機能要件の指標への影響が小さい部品の型を抽象化し、抽象構成を含む学習データを生成し、学習データを使用して学習を行うことで、非機能要件の指標への影響が大きい部品の違いによる評価が学習できると同時に、非機能要件の指標への影響が小さい部品の違いで生じる構成の差を個別に学習する時間が削減できる。その結果、規模の大きなシステムについても非機能要件に関して精度の高い設計の学習ができる。
[プログラム]
実施形態3におけるプログラムは、コンピュータに、図に示すステップS11bからS14bを実行させるプログラムであればよい。このプログラムをコンピュータにインストールし、実行することによって、実施形態3におけるシステム設計学習装置とシステム設計学習方法とを実現することができる。この場合、コンピュータのプロセッサは、設計部11b、報酬設定部12b、変換部13b、学習データ生成部14b、学習部15bとして機能し、処理を行なう。
また、実施形態3におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されてもよい。この場合は、例えば、各コンピュータが、それぞれ、設計部11b、報酬設定部12b、変換部13b、学習データ生成部14b、学習部15bのいずれかとして機能してもよい。
[物理構成]
ここで、上述した実施形態におけるプログラムを実行することによって、システム設計学習装置を実現するコンピュータについて図28を用いて説明する。図28は、実施形態1から3のシステム設計学習装置を実現するコンピュータの一例を示す図である。
図28に示すように、コンピュータ230は、CPU(Central Processing Unit)231と、メインメモリ232と、記憶装置233と、入力インターフェイス234と、表示コントローラ235と、データリーダ/ライタ236と、通信インターフェイス237とを備える。これらの各部は、バス241を介して、互いにデータ通信可能に接続される。なお、コンピュー
タ230は、CPU231に加えて、又はCPU231に代えて、GPU、又はFPGAを備えていてもよい。
CPU231は、記憶装置233に格納された、実施形態におけるプログラム(コード)をメインメモリ232に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ232は、典型的には、DRAM(Dynamic Random Access Memory)などの揮発性の記憶装置である。また、実施形態におけるプログラムは、コンピュータ読み取り可能な記録媒体240に格納された状態で提供される。なお、実施形態におけるプログラムは、通信インターフェイス237を介して接続されたインターネット上で流通するものであってもよい。なお、記録媒体240は、不揮発性記録媒体である。
また、記憶装置233の具体例としては、ハードディスクドライブの他、フラッシュメモリなどの半導体記憶装置があげられる。入力インターフェイス234は、CPU231と、キーボード及びマウスといった入力機器238との間のデータ伝送を仲介する。表示コントローラ235は、ディスプレイ装置239と接続され、ディスプレイ装置239での表示を制御する。
データリーダ/ライタ236は、CPU231と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ230における処理結果の記録媒体240への書き込みを実行する。通信インターフェイス237は、CPU231と、他のコンピュータとの間のデータ伝送を仲介する。
また、記録媒体240の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)などの汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)などの磁気記録媒体、又はCD-ROM(Compact Disk Read Only Memory)などの光学記録媒体があげられる。
なお、実施形態1、2、3におけるシステム設計学習装置は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。さらに、システム設計学習装置は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
以上、実施形態1、2、3を参照して発明を説明したが、発明は上述した実施形態1、2、3に限定されるものではない。発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
上述した記載によれば、大規模なシステムの設計の強化学習に係る時間を削減することができる。また、ICTシステムを自動設計が必要な分野において有用である。
10、220、300 システム設計学習装置
11、11a、11b 設計部
12、12a、12b 報酬設定部
13、13a、13b 変換部
14、14a、14b 学習データ生成部
15、15a、15b 学習部
20 記憶装置
30 入力装置
100、290 システム
230 コンピュータ
231 CPU
232 メインメモリ
233 記憶装置
234 入力インターフェイス
235 表示コントローラ
236 データリーダ/ライタ
237 通信インターフェイス
238 入力機器
239 ディスプレイ装置
240 記録媒体
241 バス

Claims (8)

  1. 抽象的な部分を含むシステムの構成を表す情報であるシステム要件に対して、抽象的な部分を具体的な部分に変換する具体化処理を実行し、抽象的な部分を含まない前記システムの構成を表す情報であるシステム具体構成を生成し、前記システム要件から前記システム具体構成が生成されるまでの過程を表す構成パス情報を生成する設計手段と、
    前記構成パス情報に含まれる、前記システム要件、前記具体化処理の過程で生成されたシステム構成案、前記システム具体構成それぞれに対して報酬を設定する報酬設定手段と、
    前記構成パス情報を抽象化して抽象構成パス情報する生成する変換手段と、
    前記抽象構成パス情報に含まれる、抽象化したシステム要件、抽象化したシステム構成案、抽象化したシステム具体構成それぞれに対して前記報酬を関連付けて学習データを生成する学習データ生成手段と、
    前記学習データに基づいて、前記システムの設計方法を学習する学習手段と、
    を有するシステム設計学習装置。
  2. 前記変換手段は、前記構成パス情報に含まれる、前記システム要件、前記システム構成案、前記システム具体構成それぞれが有する部品の型を表す型情報を、前記型を抽象的な型に変換するための型定義情報に基づいて、抽象的な型を表す抽象化型に変換し、前記抽象構成パス情報する生成する、
    請求項1に記載のシステム設計学習装置。
  3. 前記変換手段は、非機能要件の種別を表す非機能要件種別情報と、当該非機能要件の指標に大きく影響する型を表す型情報の集合とが関連付けられた情報である非機能要件影響型情報を用いて、前記システム要件、前記システム構成案、前記システム具体構成それぞれが有する部品の型が、学習中の非機能要件の指標に大きく影響する型かどうか判断し、大きく影響しないと判断した場合に当該型を抽象化する、
    請求項2に記載のシステム設計学習装置。
  4. 前記学習手段は、機能要件に基づいた前記システムの設計方法を学習し、
    前記報酬設定手段は、前記機能要件に基づいた前記システムの設計方法を学習するための報酬を設定する、
    請求項2又は3に記載のシステム設計学習装置。
  5. 前記学習手段は、非機能要件に基づいた前記システムの設計方法を学習し、
    前記報酬設定手段は、前記非機能要件に基づいた前記システムの設計方法を学習するための報酬を設定する、
    請求項2又は3に記載のシステム設計学習装置。
  6. 前記報酬設定手段は、前記構成パス情報に含まれる、前記システム要件、システム構成案、前記システム具体構成それぞれの性能を表す性能情報に基づいて、前記システムの非機能要件に関する設計方法の学習を行うための報酬を生成する、
    請求項5に記載のシステム設計学習装置。
  7. 情報処理装置が、
    抽象的な部分を含むシステムの構成を表す情報であるシステム要件に対して、抽象的な部分を具体的な部分に変換する具体化処理を実行し、抽象的な部分を含まない前記システムの構成を表す情報であるシステム具体構成を生成し、前記システム要件から前記システム具体構成が生成されるまでの過程を表す構成パス情報を生成する設計ステップと、
    前記構成パス情報に含まれる、前記システム要件、前記具体化処理の過程で生成されたシステム構成案、前記システム具体構成それぞれに対して報酬を設定する報酬設定ステップと、
    前記構成パス情報を抽象化して抽象構成パス情報する生成する変換ステップと、
    前記抽象構成パス情報に含まれる、抽象化したシステム要件、抽象化したシステム構成案、抽象化したシステム具体構成それぞれに対して前記報酬を関連付けて学習データを生成する学習データ生成ステップと、
    前記学習データに基づいて、前記システムの設計方法を学習する学習ステップと、
    を実行するシステム設計学習方法。
  8. コンピュータに、
    抽象的な部分を含むシステムの構成を表す情報であるシステム要件に対して、抽象的な部分を具体的な部分に変換する具体化処理を実行し、抽象的な部分を含まない前記システムの構成を表す情報であるシステム具体構成を生成し、前記システム要件から前記システム具体構成が生成されるまでの過程を表す構成パス情報を生成する設計ステップと、
    前記構成パス情報に含まれる、前記システム要件、前記具体化処理の過程で生成されたシステム構成案、前記システム具体構成それぞれに対して報酬を設定する報酬設定ステップと、
    前記構成パス情報を抽象化して抽象構成パス情報する生成する変換ステップと、
    前記抽象構成パス情報に含まれる、抽象化したシステム要件、抽象化したシステム構成案、抽象化したシステム具体構成それぞれに対して前記報酬を関連付けて学習データを生成する学習データ生成ステップと、
    前記学習データに基づいて、前記システムの設計方法を学習する学習ステップと、
    を実行させるプログラム。
JP2023086410A 2022-12-19 2023-05-25 システム設計学習装置、システム設計学習方法、及びプログラム Pending JP2024087748A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/539,547 US20240202408A1 (en) 2022-12-19 2023-12-14 System design learning apparatus, system designlearning method, and computer-readable recording medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022202506 2022-12-19
JP2022202506 2022-12-19

Publications (1)

Publication Number Publication Date
JP2024087748A true JP2024087748A (ja) 2024-07-01

Family

ID=91671540

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023086410A Pending JP2024087748A (ja) 2022-12-19 2023-05-25 システム設計学習装置、システム設計学習方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP2024087748A (ja)

Similar Documents

Publication Publication Date Title
US11321625B2 (en) Quantum circuit optimization using machine learning
JP5795743B2 (ja) 適応的重み付けを用いた様々な文書間類似度計算方法に基づいた文書比較方法および文書比較システム
WO2015076084A1 (en) Method and controller for controlling operation of machine
US11748305B2 (en) Suggesting a destination folder for a file to be saved
EP3956771B1 (en) Timeout mode for storage devices
US10785087B2 (en) Modifying computer configuration to improve performance
EP3722945B1 (en) Program operation system and program operation method
JP6888737B2 (ja) 学習装置、学習方法、及びプログラム
WO2018167830A1 (ja) 対話装置、対話システム、及びコンピュータ読み取り可能な記録媒体
JP2024087748A (ja) システム設計学習装置、システム設計学習方法、及びプログラム
KR101544010B1 (ko) 프로세스의 동적 행위 정규화 및 악성 코드 탐지 방법
JP6261669B2 (ja) クエリ校正システムおよび方法
WO2022074796A1 (ja) 評価方法、評価装置、および評価プログラム
US20220138598A1 (en) Reducing computational overhead involved with processing received service requests
US20240202408A1 (en) System design learning apparatus, system designlearning method, and computer-readable recording medium
JP6142878B2 (ja) 情報システムの性能評価装置、方法およびプログラム
CN115335834A (zh) 机器学习模型确定系统和机器学习模型确定方法
WO2013141018A1 (ja) 最適システム設計支援装置
WO2023218661A1 (ja) システム設計学習装置、システム設計学習方法、及びコンピュータ読み取り可能な記録媒体
JP7156376B2 (ja) 観測事象判定装置、観測事象判定方法、及びプログラム
JP7517467B2 (ja) システム監視装置、システム監視方法、及びプログラム
WO2021166231A1 (ja) シナリオ生成装置、シナリオ生成方法、及びコンピュータ読み取り可能な記録媒体
WO2023248407A1 (ja) システム検証装置、システム検証方法、及びコンピュータ読み取り可能な記録媒体
JP7210917B2 (ja) 検証情報生成装置、検証情報生成方法、及び検証情報生成プログラム
JP6183359B2 (ja) 設計支援装置、設計支援方法及びプログラム