(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022175681
(43)【公開日】2022-11-25
(54)【発明の名称】学習用要件生成装置、学習用要件生成方法、及びプログラム
(51)【国際特許分類】
G06F 8/10 20180101AFI20221117BHJP
【FI】
G06F8/10
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021082306
(22)【出願日】2021-05-14
(71)【出願人】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103894
【弁理士】
【氏名又は名称】家入 健
(72)【発明者】
【氏名】田辺 和輝
(72)【発明者】
【氏名】黒田 貴之
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376BC03
(57)【要約】
【課題】学習用要件の生成に係る技術者の負担の軽減を図ること。
【解決手段】本開示に係る学習用要件生成装置(100)は、システム要件群を蓄積する記憶部(101)と、記憶部(101)からシステム要件群を取得し、取得されたシステム要件群を取得要件群に追加する要件取得部(102)と、取得要件群を構成する各取得要件に対し、構成要素の追加又は置換を行うことにより、学習用要件を生成する学習用要件生成部(103)と、を含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
システム要件群を蓄積する記憶部と、
前記記憶部からシステム要件群を取得し、取得されたシステム要件群を取得要件群に追加する要件取得部と、
取得要件群を構成する各取得要件に対し、構成要素の追加又は置換を行うことにより、学習用要件を生成する学習用要件生成部と、
を含む、
学習用要件生成装置。
【請求項2】
前記学習用要件生成部は、
入力構成要素を表す構成要素データを入力し、
取得要件群を構成する各取得要件に対し、当該取得要件に入力構成要素が含まれており、かつ、入力構成要素が新たな構成要素と接続可能である場合、当該取得要件に新たな構成要素を追加して、追加された新た構成要素を入力構成要素と接続することで、学習用要件を生成し、
取得要件群を構成する各取得要件に対し、当該取得要件に入力構成要素が含まれておらず、かつ、当該取得要件に入力構成要素と置換可能な構成要素が含まれている場合、当該取得要件に含まれている当該構成要素を入力構成要素に置換することで、学習用要件を生成する、
請求項1に記載の学習用要件生成装置。
【請求項3】
前記学習用要件生成部は、
生成された学習用要件を、前記記憶部に蓄積すると共に、学習用要件群に追加し、
学習用要件群を出力する、
請求項2に記載の学習用要件生成装置。
【請求項4】
前記要件取得部は、
入力構成要素を表す構成要素データを入力し、
前記記憶部から、入力構成要素が含まれているシステム要件群を取得し、取得されたシステム要件群を取得要件群に追加し、
前記学習用要件生成装置は、
取得要件群を構成する各取得要件に対し、当該取得要件に入力構成要素が含まれており、かつ、入力構成要素が新たな構成要素と接続可能である場合、当該取得要件に新たな構成要素を追加して、追加された新た構成要素を入力構成要素と接続することで、拡張要件を生成し、生成された拡張要件を拡張要件群に追加する拡張要件生成部と、
拡張要件群を構成する各拡張要件に対し、当該拡張要件に類似し、かつ、入力構成要素が含まれていないシステム要件を、前記記憶部から取得し、取得されたシステム要件を類似要件群に追加する類似要件取得部と、
をさらに含み、
前記学習用要件生成部は、
類似要件群を構成する各類似要件に対し、当該類似要件に入力構成要素と置換可能な構成要素が含まれている場合、当該類似要件に含まれている当該構成要素を入力構成要素に置換することで、学習用要件を生成する、
請求項1に記載の学習用要件生成装置。
【請求項5】
前記拡張要件生成部は、
生成された拡張要件を、前記記憶部に蓄積し、
前記学習用要件生成部は、
生成された学習用要件を、前記記憶部に蓄積すると共に、学習用要件群に追加し、
学習用要件群を出力する、
請求項4に記載の学習用要件生成装置。
【請求項6】
前記類似要件取得部は、
前記記憶部に蓄積された、入力構成要素が含まれていない各システム要件と、拡張要件と、の類似度をDice係数を用いて判定し、
前記記憶部から、類似度が最も高いシステム要件を取得し、取得されたシステム要件を類似要件群に追加する、
請求項4又は5に記載の学習用要件生成装置。
【請求項7】
学習用要件生成装置が行う学習用要件生成方法であって、
システム要件群を記憶部に蓄積するステップと、
前記記憶部からシステム要件群を取得し、取得されたシステム要件群を取得要件群に追加するステップと、
取得要件群を構成する各取得要件に対し、構成要素の追加又は置換を行うことにより、学習用要件を生成するステップと、
を含む、
学習用要件生成方法。
【請求項8】
コンピュータに、
システム要件群を記憶部に蓄積する手順と、
前記記憶部からシステム要件群を取得し、取得されたシステム要件群を取得要件群に追加する手順と、
取得要件群を構成する各取得要件に対し、構成要素の追加又は置換を行うことにより、学習用要件を生成する手順と、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ICT(Information Communication Technology)システムを構成する製品の評価を自動化する自動化技術に関する。特に、本開示は、ICTシステムの設計に関わる設計知識を機械が学習するための、学習用要件を生成する技術に関する。
【背景技術】
【0002】
ICTシステムの構築にあたって必要となる工程には、ICTシステムに対して求められるシステム要件を満たす具体的なシステム構成を設計する、設計工程が含まれる。
【0003】
特許文献1には、基本設計工程及び詳細設計工程の自動化を目的とした、システム要件からシステム構成を自動生成する技術について記載されている。この技術では、未確定な部分が含まれているシステムの構成を示す情報である抽象構成情報(システム要件)の上述した未確定な部分を確定することによって上述した抽象構成情報を具体化する方法が規定された具体化規則を記憶部に記憶させる。そして、グラフ形式で表現されたシステムの構成要件に含まれている抽象構成情報を、記憶部に記憶されている具体化規則を用いて具体化する。これによって、システムの構成要件を基に、未確定な部分が含まれていないシステムの構成を示す情報(システム構成)を生成する。
【0004】
非特許文献1には、特許文献1に着想を得た、機械学習を用いたICTシステムの自動設計技術(学習型システム自動設計技術)について記載されている。この技術では、特許文献1の技術によってシステム要件から具体的なシステム構成を生成するにあたり、生成されたシステム構成及び生成過程で適用された具体化規則のそれぞれに対して報酬値を与え、システム構成及び具体化規則に対する報酬値をAI(人工知能:Artificial Intelligence)に学習させる。これによって、AIが技術者のシステム設計に係る知識(設計知識)を疑似的に獲得可能となる。また、多種多様なシステム要件に対するシステム構成及び具体化規則と、これらシステム構成及び具体化規則に対する報酬値と、を学習することで、システム構成の設計の高速化及び高信頼化を図ることが可能となる。
【先行技術文献】
【特許文献】
【0005】
【非特許文献】
【0006】
【非特許文献1】黒田貴之、桑原拓也、丸山貴志、八鍬豊、田辺和輝、福田達也、里田浩三、 大崎隆夫、“ICTシステムの設計に関する知識の機械学習による獲得”、電子情報通信学会論文誌 Vol.J104-B、No.3、pp.140-151、2021年3月
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかし、AIを利用する際には学習用のデータが大量に必要とされるという一般的な課題と同様に、非特許文献1に係る学習型システム自動設計技術においても、AIが必要十分に設計知識を獲得するためには、学習用のシステム要件(学習用要件)が大量に用意されることが好ましい。そのため、学習に先立って、係る大量の学習用要件を生成する技術者の工数的な負担が大きくなることが問題となるおそれがある。
【0008】
その理由は、学習用要件の生成には、実際にシステム設計が行われた案件に係る情報(実案件データ)を大量に準備し、実案件データの内容を、人手により解釈したうえで、学習型システム自動設計技術の入力形式となる要件データ形式へ変換する必要があるためである。
【0009】
そこで本開示の目的は、上述した課題を解決し、学習用要件の生成に係る技術者の負担の軽減を図ることができる学習用要件生成装置、学習用要件生成方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0010】
一態様による学習用要件生成装置は、
システム要件群を蓄積する記憶部と、
前記記憶部からシステム要件群を取得し、取得されたシステム要件群を取得要件群に追加する要件取得部と、
取得要件群を構成する各取得要件に対し、構成要素の追加又は置換を行うことにより、学習用要件を生成する学習用要件生成部と、
を含む。
【0011】
一態様による学習用要件生成方法は、
学習用要件生成装置が行う学習用要件生成方法であって、
システム要件群を記憶部に蓄積するステップと、
前記記憶部からシステム要件群を取得し、取得されたシステム要件群を取得要件群に追加するステップと、
取得要件群を構成する各取得要件に対し、構成要素の追加又は置換を行うことにより、学習用要件を生成するステップと、
を含む。
【0012】
一態様によるプログラムは、
コンピュータに、
システム要件群を記憶部に蓄積する手順と、
前記記憶部からシステム要件群を取得し、取得されたシステム要件群を取得要件群に追加する手順と、
取得要件群を構成する各取得要件に対し、構成要素の追加又は置換を行うことにより、学習用要件を生成する手順と、
を実行させる。
【発明の効果】
【0013】
上述した態様によれば、学習用要件の生成に係る技術者の負担の軽減を図ることができる学習用要件生成装置、学習用要件生成方法、及びプログラムを提供することができるという効果が得られる。
【図面の簡単な説明】
【0014】
【
図1】実施の形態1に係る学習用要件生成装置の構成例を示ブロック図である。
【
図2】構成要素データの記述の一例を示す説明図である。
【
図3】システム要件の記述の一例を示す説明図である。
【
図4】システム要件の視覚的表現の一例を示す説明図である。
【
図5】関係性データの記述の一例を示す説明図である。
【
図6】システム構成の記述の一例を示す説明図である。
【
図7】システム構成の視覚的表現の一例を示す説明図である。
【
図8】実施の形態1に係る学習用要件生成部における、構成要素の追加処理の一例を示す説明図である。
【
図9】実施の形態1に係る学習用要件生成部における、構成要素の置換処理の一例を示す説明図である。
【
図10】実施の形態1に係る学習用要件生成装置の全体的な動作の流れの例を示すフローチャートである。
【
図11】実施の形態2に係る学習用要件生成装置の構成例を示ブロック図である。
【
図12】実施の形態2に係る類似要件取得部における、類似要件の取得処理の一例を示す説明図である。
【
図13】実施の形態2に係る学習用要件生成装置の全体的な動作の流れの例を示すフローチャートである。
【
図14】実施の形態2に係る学習用要件生成装置の全体的な動作の流れの例を示すフローチャートである。
【
図15】実施の形態3に係る自動設計システムの構成例を示すブロック図である。
【
図16】実施の形態3に係る学習型システム自動設計装置で用いられる具体化規則の一例を示す説明図である。
【
図17】実施の形態3に係る学習型システム自動設計装置における、システム構成の設計処理の一例を示す説明図である。
【
図18】実施の形態3に係る自動設計システムの全体的な動作の流れの例を示すフローチャートである。
【
図19】実施の形態4に係る学習用要件生成装置の構成例を示すブロック図である。
【発明を実施するための形態】
【0015】
以下、図面を参照して本開示の実施の形態について説明する。なお、以下の記載及び図面は、説明の明確化のため、適宜、省略及び簡略化がなされている。また、以下の各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【0016】
<実施の形態1>
<実施の形態1の構成>
図1は、本実施の形態1に係る学習用要件生成装置100の構成例を示したものである。
図1に示されるように、本実施の形態1に係る学習用要件生成装置100は、記憶部101と、要件取得部102と、学習用要件生成部103と、を含む。学習用要件生成装置100は、構成要素データ200の入力を受けて、学習用要件群300を出力する。
【0017】
構成要素データ200は、ICTシステムを構成する、アプリケーション、OS(Operation System)、サーバなどの構成要素の型の定義を記述したものである。
図2は、構成要素データ200の一例として、顔認証アプリケーションを表す「app-face」型構成要素の定義を記述したものである。
図2に示されるように、構成要素データ200の定義は、構成要素の種別に関する種別情報、アプリケーションやOSの設定情報などの構成情報の属性値に関する属性値情報、及び、構成要素と関係性によって接続可能な他構成要素に関する情報を含んでも良い。
【0018】
図2の例では、構成要素の種別情報を表す「category」には、本構成要素がアプリケーションの一種であることを表す値「App」が記述されている。
また、構成要素の属性値情報を表す「properties」には、顔認証アプリケーションの入力となる映像のフレームレートを表す「fps」、及び、その映像の解像度を表す「resolution」が、属性値として記述されている。
【0019】
そして、他構成要素との関係性による接続に関する情報として、本構成要素が動作するために必要となる、本構成要素から他構成要素への接続要請を表す「reference」と、本構成要素への接続を要請する他構成要素に対し提供可能な接続能力を表す「service」と、がそれぞれ定義されている。「reference」及び「service」のいずれにも、接続に用いるポートのポート名と、そのポートに接続可能な構成要素数と、の組が記述されている。
図2の例では、「reference」の値として、組「OS:1」が記述されている。これは、顔認証アプリケーションの動作に必要なOSと接続されるポート「OS」から、後述する関係性データに定義されたポート「OS」を使用する関係性に従って、1つの構成要素への接続を要請していることを表している。同様に、「service」の値として、組「camera:inf」が記述されている。これは、カメラ映像の受信のためにカメラと接続されるポート「camera」には、後述する関係性データに定義されたポート「camera」を使用する関係性に従って、複数の構成要素からの接続を受け付け可能であり、接続可能な構成要素数に上限が無いことを表している。
【0020】
記憶部101には、システム要件、構成要素データ200、及び関係性データが蓄積されている。
【0021】
システム要件は、後述する学習型システム自動設計装置310の入力となるもので、ユーザによりシステムに求められる構成要素や制約条件などを抽象的に表現したものである。
図3は、システム要件の一例として、顔認証アプリケーション「app-face」を用いたシステム要件の定義を記述したものである。
図3に示されるように、システム要件の定義は、システムに求められる構成要素に関する情報、及び、システムに求められる構成要素間の関係性に関する情報を含んでも良い。
【0022】
図3の例では、システムに求められる構成要素を表す「components」には、「app-face」型の構成要素である顔認証アプリケーションの「app1」と、「server」型の構成要素である物理サーバの「server1」と、がそれぞれ記述されている。「components」で表される各構成要素の定義は、構成要素の型名を表す「type」、及び、構成要素の属性値を表す「properties」を含む。構成要素「app1」の属性値には、上述した「fps」の値として「15」が、上述した「resolution」の値として「FHD」が、それぞれ記述されている。また、構成要素「server1」の属性値には、物理サーバに搭載されるCPU(Central Processing Unit)のコア数を表す「cpuCore」の値として「8」が、物理サーバに搭載されるメモリの容量を表す「memCapacity」の値として、16GByteのメモリが搭載されていることを表す「16」が、物理サーバに搭載されるストレージの容量を表す「storageCapacity」の値として、300GByteの容量があることを表す「300」が、それぞれ記述されている。
【0023】
一方、「relationships」で表される構成要素間の関係性の定義は、「components」で定義された構成要素名を用いた関係性の始点及び終点、関係性の型名の3値の組の羅列を含む。
図3の例では、関係性[app1,server,hostedOn]は、顔認証アプリケーション「app1」が物理サーバ「server1」に対し、アプリケーションがサーバ上で動作することを表す抽象的な関係性の型「hostedOn」により依存関係にあることを表している。
【0024】
図4は、
図3に示されるシステム要件の内容をグラフ構造によって視覚的に表現したものである。
図4のような視覚的表現では、システムの構成要素はノード(頂点)として表現され、各構成要素間の関係性はエッジ(枝)として表現される。以後、本明細書中では、簡便のため、システム要件の内容を、
図4と同様の視覚的表現を用いて説明する。なお、システム要件の具体的な定義形式は、
図3及び
図4に示される例に限定されない。
【0025】
関係性データは、学習用要件生成装置100及び後述する学習型システム自動設計装置310で用いられる、システムの構成要素間の関係性の型を定義したものである。関係性データには、抽象的な関係性及び具体的な関係性の両方の定義が含まれている。また、各関係性の定義には、関係性の抽象性又は具体性を区別する情報に加え、関係性により接続可能なシステムの構成要素の型に関する情報が含まれている。
【0026】
図5は、関係性データの一例を記述したものである。
図5の例では、具体的な関係性の型「wire:OS」及び「wire:Machine」と、抽象的な関係性の型「hostedOn」及び「join」と、が定義されている。
【0027】
各関係性の定義は、関係性の抽象性又は具体性を区別する情報である「abstract」、及び、関係性により接続可能な構成要素の情報である「connection」を含む。
「abstract」の値が「true」であるものは抽象的な関係性であり、「false」であるものは具体的な関係性であることを表す。
【0028】
「connection」には、関係性によって構成要素間を接続するにあたり、接続の始点となる構成要素の種別を表す「src」と、接続の終点となる構成要素の種別を表す「dest」と、の組が少なくとも1組以上定義されている。構成要素の種別は、
図2に示される構成要素データ200において、「category」で表されるものである。さらに、具体的な関係性の「connection」には、接続の始点となる構成要素が接続に用いるポートのポート名を表す「srcPort」と、接続の終点となる構成要素が接続に用いるポートのポート名を表す「destPort」と、がさらに定義されている。
【0029】
図5の例では、具体的な関係性の型「wire:OS」は、種別が「App」である構成要素「reference」のポート「OS」を始点とし、種別が「OS」である構成要素「service」のポート「OS」を終点として、両構成要素間を接続可能であることを表している。
【0030】
一方、抽象的な関係性は、後述する学習型システム自動設計装置によって具体的な関係性に置き換えられるため、ポートを指定せずに構成要素間を接続する。なお、関係性データの具体的な定義形式は、
図5に示される例に限定されない。
【0031】
システム構成は、システムの構成要素及び構成要素間の関係性をすべて具体的に表現したものである。
図6及び
図7は、
図3及び
図4に示される顔認証アプリケーション「app-face」を用いたシステム要件を満たすシステム構成の定義及びその視覚的表現の一例をそれぞれ示したものである。
図6に示されるように、システム構成の定義は、システム要件と同様の記法で記述されていても良い。
【0032】
図6及び
図7の例では、
図3及び
図4に示されるシステム要件を実現するために、新たにUbuntu Linux(登録商標) OSを表す「ubuntu」型の構成要素「os1」が追加されている。構成要素「os1」の属性値には、Ubuntu Linux(登録商標) OSのバージョンを表す「version」に値「20.04」が記述されている。また、抽象的な関係性[app1,server1,hostedOn]を実現するために、抽象的な関係性[app1,server1,hostedOn]は、OS「os1」が物理サーバ「server1」にインストールされていることを表す具体的な関係性[os1,server,wire:Machine]、及び、アプリケーション「app1」がOS「os1」上で動作することを表す具体的な関係性[app1,os1,wire:OS]に置き換えられている。なお、システム構成の具体的な定義形式は、
図6及び
図7に示される例に限定されない。
【0033】
要件取得部102は、記憶部101に蓄積されているシステム要件をすべて取得し、取得されたシステム要件を、取得要件群に追加する。
学習用要件生成部103は、構成要素データ200を入力する。また、学習用要件生成部103は、要件取得部102により取得された取得要件群を構成する各取得要件に対し、構成要素の追加又は置換を行うことで、システム要件(学習用要件)を生成する。そして、学習用要件生成部103は、生成された学習用要件を、記憶部101に蓄積した後、学習用要件群300に追加し、学習用要件群300を出力する。
【0034】
図8及び
図9は、学習用要件生成部103にて行われる、取得要件に対する学習用要件生成処理の一例を示したものである。
図8は、取得要件中に、入力された構成要素データ200が表す構成要素(入力構成要素)と同形の構成要素が存在し、取得要件中の入力構成要素を、具体的あるいは抽象的な関係性により新たな構成要素と接続可能である例である。この場合、学習用要件生成部103は、新たな構成要素を取得要件に追加し、追加された新たな構成要素を関係性により入力構成要素と接続することで、学習用要件を生成する。
【0035】
図8の例では、取得要件が、構成要素「app1」及び構成要素「server1」が抽象的な関係性「hostedOn」により接続されている取得要件であるとする。また、構成要素「server1」が入力構成要素であるとする。また、
図5に示される関係性データに定義されている、サーバのネットワークへの接続を表す抽象的な関係性である「join」により、「server1」から、クラウドネットワークを表す構成要素「cloud1」への接続が追加可能であるとする。この場合、学習用要件生成部103は、取得要件に対し、新たな構成要素「cloud1」を追加し、追加された構成要素「cloud1」を関係性「join」により構成要素「server1」と接続したものを、学習用要件として生成する。
【0036】
また、
図9は、取得要件中に、入力構成要素が存在せず、取得要件中のいずれかの構成要素を入力構成要素で置換可能である例である。この場合、学習用要件生成部103は、取得要件中の構成要素を入力構成要素により置換することで、学習用要件を生成する。このとき、置換可能性の判定方法として、取得要件中の構成要素の定義に含まれる構成要素の型情報(type)、及び、その型の定義に含まれる構成要素の種別情報(category)を用いる方法を採っても良い。
【0037】
図9の例では、取得要件が、セキュリティアプリケーションを表す構成要素「app-secure1」と仮想マシンを表す構成要素「vm」間が抽象的な関係性「hostedOn」により接続され、「vm」とクラウドネットワークを表す構成要素「cloud」間が抽象的な関係性「join」により接続されている取得要件であるとする。また、取得要件中の構成要素「app-secure1」は、「app-secure」型の構成要素であり、「app-secure」型の構成要素は、種別が「App」であるものとする。また、入力構成要素は、「app-face」型の構成要素「app-face1」であるものとする。この場合、学習用要件生成部103は、取得要件に対し、「app-secure」型で種別が「App」である構成要素「app-secure1」を、「app-face」型の入力構成要素「app-face1」で置換したものを、学習用要件として生成する。
【0038】
<実施の形態1の動作>
次に、
図10のフローチャートを参照して、本実施の形態1に係る学習用要件生成装置100の全体的な動作の流れの例について説明する。
【0039】
図10に示されるように、まず、学習用要件生成部103は、構成要素データ200を入力する(ステップS101)。
次に、要件取得部102は、記憶部101に蓄積されているシステム要件をすべて取得し、取得されたシステム要件を取得要件群に追加する(ステップS102)。
【0040】
次に、学習用要件生成部103は、取得要件群が空であるか否かを判定し(ステップS103)、取得要件群が空でない場合(ステップS103におけるNO)、取得要件群から取得要件を1つ取り出す(ステップS104)。
【0041】
次に、学習用要件生成部103は、ステップS104で取り出された取得要件中に、ステップS101で入力された構成要素データ200が表す構成要素(入力構成要素)が含まれるか否かを判定する(ステップS105)。取得要件中に入力構成要素が含まれる場合(ステップS105におけるYES)、ステップS106に進み、含まれない場合(ステップS105におけるNO)、ステップS108に進む。
【0042】
ステップS106において、学習用要件生成部103は、取得要件中の入力構成要素を、具体的あるいは抽象的な関係性により新たな構成要素と接続可能であるか否かを判定する。入力構成要素の接続が可能である場合(ステップS106におけるYES)、学習用要件生成部103は、取得要件に新たな構成要素を追加し、追加された構成要素を取得要件中の入力構成要素と関係性により接続する(ステップS107)。これにより、学習用要件が生成される。一方、入力構成要素の接続が不可能である場合(ステップS106におけるNO)、学習用要件生成部103は、取得要件を破棄し、ステップS103へ戻る。
【0043】
ステップS108において、学習用要件生成部103は、取得要件中に入力構成要素と置換可能な構成要素が存在するか否かを判定する。入力構成要素による置換が可能である場合(ステップS108におけるYES)、学習用要件生成部103は、取得要件中の該当する構成要素を入力構成要素により置換する(ステップS109)。これにより、学習用要件が生成される。一方、入力構成要素による置換が不可能である場合(ステップS108におけるNO)、学習用要件生成部103は、取得要件を破棄し、ステップS103へ戻る。
【0044】
ステップS107又はS109の実行後、学習用要件生成部103は、ステップS107又はS109により生成された学習用要件を、記憶部101に蓄積すると共に、学習用要件群300に追加する(ステップS110)。その後、ステップS103へ戻る。
【0045】
ステップS103において、取得要件群が空である場合(ステップS103におけるYES)、学習用要件生成部103は、学習用要件群300を出力し(ステップS111)、処理を終了する。
【0046】
<実施の形態1の効果>
上述したように、本実施の形態1に係る学習用要件生成装置100では、入力された構成要素データ200を用いて、記憶部101に蓄積されたシステム要件に対して、構成要素の追加処理又は置換処理を行うことで、学習用要件を生成する。そのため、学習型システム自動設計技術のAIが、技術者の設計知識の獲得に必要となる学習用要件群300を、自動で生成することができる。また、学習用要件生成装置100へ様々な構成要素データ200を入力し、学習用要件の生成処理を反復的に実行することで、さらに大量の学習用要件群300を自動で生成することができる。
【0047】
これにより、実案件データの解釈及び要件データの作成を人手により行っていた技術者の負担を大幅に軽減することが可能となる。また、学習型システム自動設計技術の高精度化及び高速化を図ると共に、ICTシステムの設計工程及び構築工程のさらなる省力化を図ることも可能となる。
【0048】
<実施の形態2>
<実施の形態2の構成>
図11は、本実施の形態2に係る学習用要件生成装置100Aの構成例を示したものである。
図11に示されるように、本実施の形態2に係る学習用要件生成装置100Aは、記憶部101と、要件取得部111と、拡張要件生成部112と、類似要件取得部113と、学習用要件生成部114と、を含む。なお、本実施の形態2において、記憶部101は、上述した実施の形態1と同様であるため、詳細な説明を省略する。
【0049】
要件取得部111は、構成要素データ200を入力する。また、要件取得部111は、記憶部101に蓄積されたシステム要件群を参照し、入力された構成要素データ200が表す構成要素(入力構成要素)を含むシステム要件をすべて取得し、取得されたシステム要件を、取得要件群に追加する。
【0050】
拡張要件生成部112は、要件取得部111により取得された取得要件群を構成する各取得要件に対し、上述した実施の形態1における
図8の例と同様の動作を行う。すなわち、拡張要件生成部112は、取得要件中の入力構成要素を、具体的あるいは抽象的な関係性により新たな構成要素と接続可能であるか否かを判定する。入力構成要素の接続が可能である場合、拡張要件生成部112は、新たな構成要素を取得要件に追加し、追加された新たな構成要素を関係性により入力構成要素と接続することで、システム要件(拡張要件)を生成する。また、拡張要件生成部112は、生成された拡張要件を、記憶部101に蓄積すると共に、拡張要件群に追加する。
【0051】
類似要件取得部113は、拡張要件生成部112により生成された拡張要件群を構成する各拡張要件に対し、該当する拡張要件に類似し、かつ、入力構成要素を含まないシステム要件(類似要件)を、記憶部101から取得し、取得された類似要件を類似要件群に追加する。
【0052】
図12は、類似要件取得部113にて行われる、類似要件の取得処理の一例を示したものである。
図12の例では、拡張要件生成部112により生成された拡張要件に対し、記憶部101に蓄積された、入力構成要素を含まないシステム要件の中から、最も類似度の高いシステム要件(類似要件)を類似要件群に追加する。
図12の各システム要件の視覚的表現において、同一の記号で表されるノードはそれぞれ同一の型を持つ構成要素であり、同一の文字列が付されたエッジはそれぞれ同一の型を持つ関係性であるものとする。システム要件間の類似度の判定には、集合の類似度を表す指標の1つであるDice係数を用いる。2つの集合A,Bに対し、Dice係数DSC(A,B)は次の数式1で表される。
【数1】
【0053】
記憶部101に、入力構成要素を含まないシステム要件として、システム要件1及びシステム要件2の2つのシステム要件が蓄積されていた場合、類似要件取得部113は、システム要件をノード及びエッジからなる集合とみなして上記の数式1を用いる。すると、拡張要件とシステム要件1との類似度は0.25(25%)、拡張要件とシステム要件2との類似度は0.75(75%)となる。そのため、類似要件取得部113は、システム要件2を類似要件として選択し取得する。なお、類似要件の具体的な取得方法は、
図12に示される例に限定されない。
【0054】
学習用要件生成部114は、類似要件取得部113により取得された類似要件群を構成する各類似要件に対し、上述した実施の形態1における
図9の例と同様の動作を行う。すなわち、学習用要件生成部114は、類似要件中のいずれかの構成要素を入力構成要素で置換可能であるか否かを判定する。入力構成要素による置換が可能である場合、学習用要件生成部114は、類似要件中の該当する構成要素を入力構成要素により置換することで、学習用要件を生成する。そして、学習用要件生成部103は、生成された学習用要件を、記憶部101に蓄積すると共に、学習用要件群300に追加し、学習用要件群300を出力する。
【0055】
<実施の形態2の動作>
次に、
図13及び
図14のフローチャートを参照して、本実施の形態2に係る学習用要件生成装置100Aの全体的な動作の流れの例について説明する。
図13及び
図14において、上述した実施の形態1における
図10と同様の動作については、同一の符号を付し、詳細な説明を省略する。
【0056】
図13及び
図14に示されるように、まず、要件取得部111は、構成要素データ200を入力する(ステップS101)。
次に、要件取得部111は、記憶部101に蓄積されているシステム要件のうち、ステップS101で入力された構成要素データ200が表す構成要素(入力構成要素)を含むシステム要件をすべて取得し、取得されたシステム要件を取得要件群に追加する(ステップS202)。
【0057】
次に、拡張要件生成部112は、取得要件群が空であるか否かを判定し(ステップS103)、取得要件群が空でない場合(ステップS103におけるNO)、取得要件群から取得要件を1つ取り出す(ステップS104)。
【0058】
次に、拡張要件生成部112は、ステップS104で取り出された取得要件中の入力構成要素を、具体的あるいは抽象的な関係性により新たな構成要素と接続可能であるか否かを判定する(ステップS106)。入力構成要素の接続が可能である場合(ステップS106におけるYES)、拡張要件生成部112は、取得要件に新たな構成要素を追加し、追加された新たな構成要素を取得要件中の入力構成要素と関係性により接続する(ステップS107)。拡張要件生成部112は、ステップS107により得られたシステム要件(拡張要件)を、記憶部101に蓄積すると共に、拡張要件群に追加する(ステップS208)。その後、ステップS103へ戻る。一方、入力構成要素の接続が不可能である場合(ステップS106におけるNO)、拡張要件生成部112は、取得要件を破棄し、ステップS103へ戻る。
【0059】
ステップS103において、取得要件群が空である場合(ステップS103におけるYES)、ステップS209に進む。
ステップS209において、類似要件取得部113は、拡張要件群が空であるか否かを判定し(ステップS209)、拡張要件群が空でない場合(ステップS209におけるNO)、拡張要件群から拡張要件を1つ取り出す(ステップS210)。
【0060】
次に、類似要件取得部113は、記憶部101に蓄積されたシステム要件のうち、取り出された拡張要件との類似度が最も高く、かつ、入力構成要素を含まないシステム要件(類似要件)を取得する(ステップS211)。
【0061】
次に、学習用要件生成部114は、ステップS211で取得された類似要件中に入力構成要素と置換可能な構成要素が存在するか否かを判定する(ステップS212)。入力構成要素による置換が可能である場合(ステップS212におけるYES)、学習用要件生成部114は、類似要件中の該当する構成要素を入力構成要素により置換することで、システム要件(学習用要件)を生成する(ステップS213)。学習用要件生成部114は、ステップS213で生成された学習用要件を、記憶部101に蓄積すると共に、学習用要件群300に追加する(ステップS214)。その後、ステップS209へ戻る。一方、入力構成要素による置換が不可能である場合(ステップS212におけるNO)、学習用要件生成部114は、類似要件を破棄し、ステップS209へ戻る。
【0062】
ステップS209において、拡張要件群が空である場合(ステップS209におけるYES)、学習用要件生成部103は、学習用要件群300を出力し(ステップS111)、処理を終了する。
【0063】
<実施の形態2の効果>
上述したように、本実施の形態2に係る学習用要件生成装置100Aでは、記憶部101に蓄積された、構成要素データ200が表す構成要素(入力構成要素)を含まないシステム要件に対し、入力構成要素の置換処理を行うことで、学習用要件群300を生成する。そのため、入力構成要素に関して、より多種多様な学習用要件群300を、高速に自動で生成することができる。さらに、拡張要件生成部112で生成される拡張要件群及び学習用要件生成部114で生成される学習用要件群の両方が記憶部101に蓄積される。そのため、記憶部101には、より多種多様なシステム要件を、より高速に蓄積することができる。
その他の効果は、上述した実施の形態1と同様である。
【0064】
<実施の形態3>
<実施の形態3の構成>
図15は、本実施の形態3に係る自動設計システムの構成例を示したものである。
図15に示されるように、本実施の形態3に係る自動設計システムは、上述した実施の形態1に係る学習用要件生成装置100と、学習型システム自動設計装置310と、を含む。
【0065】
学習型システム自動設計装置310は、学習用要件生成装置100によって生成された学習用要件群300の入力を受けて、システム構成群400を出力する。
【0066】
学習型システム自動設計装置310は、非特許文献1に示されるように、抽象的な構成要素及び関係性を含むシステム要件に対し、抽象的な要素を部分的に具体化する方法が規定された具体化規則を逐次的に適用することで、全ての要素が具体化されたシステム構成候補を大量に生成する。さらに、学習型システム自動設計装置310は、グラフ構造を用いた機械学習モデルの一種であるGNN(Graph Neural Network)を用いることで、生成された各システム構成候補に対する評価値を導出し、評価値の値が大きいシステム構成候補の生成過程で適用された具体化規則に対する報酬値が大きくなるように、各具体化規則に報酬値を与える。これにより、技術者の設計知識をAIに疑似的に学習させることが可能となる。
【0067】
図16は、学習型システム自動設計装置310で用いられる具体化規則の一例を示したものである。
図16に示される具体化規則では、アプリケーション間のHTTP(Hyper Text Transfer Protocol)通信を表す抽象的なHTTP型エッジを具体化するための方法が示されている。この具体化規則では、学習型システム自動設計装置310は、HTTP型エッジの両端点となるアプリケーション型ノード「app1」、「app2」のOSポートから、OS型ノード「os1」、「os2」のOSポートをそれぞれwire:OS型エッジで接続し、各アプリケーション型ノードを各OS型ノード上にホストさせる。そして、学習型システム自動設計装置310は、2つのOS型ノード「os1」と「os2」とを、TCP(Transmission Control Protocol)接続を表す抽象的なTCP型エッジで接続する。なお、具体化規則の定義方法は
図15に示される例に限定されない。
【0068】
図17は、学習型システム自動設計装置310におけるシステム構成の設計処理の一例を示したものである。
図17に示されるように、システム要件(a)には、(a1)及び(a2)の2つの抽象的な要素が含まれている。(a1)には具体化規則(X)及び(Y)が、(a2)には具体化規則(Z)がそれぞれ適用可能である。そのため、学習型システム自動設計装置310は、これら具体化規則を(a1)及び(a2)に適用することにより、(b)、(c)、(d)の3つのシステム構成案を生成する。そして、学習型システム自動設計装置310は、生成された各システム構成案をGNNにより評価し、評価値が最も高い(d)を、次の具体化対象として選択する。システム構成案(d)に含まれる抽象的な要素は(d1)のみであり、(d1)には具体化規則(X)及び(Y)が適用可能である。そこで、まず、学習型システム自動設計装置310は、(d1)に具体化規則(X)を適用し、その結果、抽象的な要素を含まない具体的なシステム構成案(e)が得られる。そのため、学習型システム自動設計装置310は、設計を完了し、(e)をシステム構成としてシステム構成群400に追加する。
【0069】
<実施の形態3の動作>
次に、
図18のフローチャートを参照して、本実施の形態3に係る自動設計システムの全体的な動作の流れの例について説明する。
【0070】
図18に示されるように、まず、学習用要件生成装置100は、構成要素データ200を入力する(ステップS301)。次に、学習用要件生成装置100は、学習用要件群300を生成する(ステップS302)。
【0071】
次に、学習型システム自動設計装置310は、ステップS302で生成された学習用要件群300を入力する(ステップS303)。次に、学習型システム自動設計装置310は、入力された学習用要件群300を構成する各学習用要件に対し、学習用要件の抽象的要素への具体化規則の適用及び適用後のシステム構成案の評価を再帰的に実行する。これにより、学習型システム自動設計装置310は、学習用要件に対応する具体的なシステム構成を生成し、システム構成群400に追加する(ステップS304)。
【0072】
その後、学習型システム自動設計装置310は、システム構成群400を出力し、処理を終了する(ステップS305)。
【0073】
<実施の形態3の効果>
上述したように、本実施の形態3に係る自動設計システムでは、学習型システム自動設計装置310は、学習用要件生成装置100により生成された各学習用要件に対応する具体的なシステム構成を生成する。そのため、各学習用要件に対応する具体的なシステム構成を自動的に生成することが可能となる。
その他の効果は、上述した実施の形態1と同様である。
【0074】
なお、本実施の形態3に係る自動設計システムでは、上述した実施の形態1に係る学習用要件生成装置100の代わりに、上述した実施の形態2に係る学習用要件生成装置100Aを含む構成としても良い。
【0075】
<実施の形態4>
図19は、本実施の形態4に係る学習用要件生成装置100Bの構成例を示したものである。
図19に示されるように、学習用要件生成装置100Bは、プロセッサ121と、メモリ122と、を含む。
【0076】
プロセッサ121は、例えば、マイクロプロセッサ、MPU(Micro Processing Unit)、又はCPU(Central Processing Unit)であっても良い。プロセッサ121は、複数のプロセッサを含んでも良い。
【0077】
メモリ122は、揮発性メモリ及び不揮発性メモリの組み合わせによって構成される。メモリ122は、プロセッサ121から離れて配置されたストレージを含んでも良い。この場合、プロセッサ121は、図示されていないI(Input)/O(Output)インタフェースを介してメモリ122にアクセスしても良い。
【0078】
上述した実施の形態1,2に係る学習用要件生成装置100,100Aは、
図19に示されるハードウェア構成を有することができる。メモリ122には、プログラムが記憶される。このプログラムは、コンピュータに読み込まれた場合に、上述した実施の形態で説明された1又はそれ以上の機能をコンピュータに行わせるための命令群(又はソフトウェアコード)を含む。上述した学習用要件生成装置100,100Aにおける、要件取得部102,111、学習用要件生成部103,114、拡張要件生成部112、及び類似要件取得部113は、プロセッサ121がメモリ122に記憶されたプログラムを読み込んで実行することにより実現されても良い。また、上述した学習用要件生成装置100,100Aにおける、記憶部101は、メモリ122により実現されても良い。
【0079】
また、上述したプログラムは、非一時的なコンピュータ可読媒体又は実体のある記憶媒体に格納されても良い。限定ではなく例として、コンピュータ可読媒体又は実体のある記憶媒体は、random-access memory(RAM)、read-only memory(ROM)、フラッシュメモリ、solid-state drive(SSD)又はその他のメモリ技術、CD-ROM、digital versatile disc(DVD)、Blu-ray(登録商標)ディスク又はその他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ又はその他の磁気ストレージデバイスを含む。プログラムは、一時的なコンピュータ可読媒体又は通信媒体上で送信されても良い。限定ではなく例として、一時的なコンピュータ可読媒体又は通信媒体は、電気的、光学的、音響的、又はその他の形式の伝搬信号を含む。
【0080】
以上、実施の形態を参照して本開示を説明したが、本開示は上述した実施の形態に限定されるものではない。本開示の構成や詳細には、本開示のスコープ内で当業者が理解し得る様々な変更をすることができる。
【0081】
以上の説明により、本開示の産業上利用可能性は明らかであるが、本開示は、例えば、ICTシステムや通信ネットワークの設計及び構築などの用途に適用できる。
【0082】
以上、実施の形態を参照して本開示を説明したが、本開示は上述した実施の形態に限定されるものではない。本開示の構成や詳細には、本開示のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【0083】
100,100A,100B 学習用要件生成装置
101 記憶部
102,111 要件取得部
103,114 学習用要件生成部
112 拡張要件生成部
113 類似要件取得部
121 プロセッサ
122 メモリ
200 構成要素データ
300 学習用要件群
310 学習型システム自動設計装置
400 システム構成群