JP2015019338A - モジュール配備決定装置、モジュール配備決定システム及びモジュール配備決定方法 - Google Patents
モジュール配備決定装置、モジュール配備決定システム及びモジュール配備決定方法 Download PDFInfo
- Publication number
- JP2015019338A JP2015019338A JP2013147028A JP2013147028A JP2015019338A JP 2015019338 A JP2015019338 A JP 2015019338A JP 2013147028 A JP2013147028 A JP 2013147028A JP 2013147028 A JP2013147028 A JP 2013147028A JP 2015019338 A JP2015019338 A JP 2015019338A
- Authority
- JP
- Japan
- Prior art keywords
- information
- node
- module
- predetermined
- instance
- 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.)
- Withdrawn
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/30—Services specially adapted for particular environments, situations or purposes
- H04W4/38—Services specially adapted for particular environments, situations or purposes for collecting sensor information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/02—Processing of mobility data, e.g. registration information at HLR [Home Location Register] or VLR [Visitor Location Register]; Transfer of mobility data, e.g. between HLR, VLR or external networks
- H04W8/04—Registration at HLR or HSS [Home Subscriber Server]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Selective Calling Equipment (AREA)
- Telephonic Communication Services (AREA)
Abstract
【課題】簡易に、どのノードにどのモジュールを配備するかを決定する。
【解決手段】サーバノード1は、モジュールが複数のノードのうちのいずれのノードに配備されるのかを示す第1の情報、及び、第1の情報が示すモジュールが配備されるノードを変更した第2の情報の所定の評価度合いを示す評価値に基づいて、第1の情報及び第2の情報の各情報の中から、評価度合いが高い上位所定個の情報を決定する。モジュールが配備されるノードを変更した第3の情報の各情報の中から、合致しない条件の数が少ない上位所定個の情報を決定する。決定された情報、及び、情報が示すモジュールが配備されるノードを変更した第4の情報の評価度合いを示す評価値と、決定された情報、及び、第4の情報の各情報における合致しない条件の数とに基づいて、決定された情報、及び、第4の情報の各情報の中から、価値及び合致しない条件の数が所定の基準を満たす情報を決定する。
【選択図】図20
【解決手段】サーバノード1は、モジュールが複数のノードのうちのいずれのノードに配備されるのかを示す第1の情報、及び、第1の情報が示すモジュールが配備されるノードを変更した第2の情報の所定の評価度合いを示す評価値に基づいて、第1の情報及び第2の情報の各情報の中から、評価度合いが高い上位所定個の情報を決定する。モジュールが配備されるノードを変更した第3の情報の各情報の中から、合致しない条件の数が少ない上位所定個の情報を決定する。決定された情報、及び、情報が示すモジュールが配備されるノードを変更した第4の情報の評価度合いを示す評価値と、決定された情報、及び、第4の情報の各情報における合致しない条件の数とに基づいて、決定された情報、及び、第4の情報の各情報の中から、価値及び合致しない条件の数が所定の基準を満たす情報を決定する。
【選択図】図20
Description
本発明は、モジュール配備決定装置、モジュール配備決定システム及びモジュール配備決定方法に関する。
センサノードによってセンシングされたセンシングデータをイベントとして採取するセンサネットワークが知られている。かかるセンサネットワークを介してサーバノードに採取されたイベントに応じて各種のサービス、例えばアラートの発信や機器の制御などが提供される。
このように、センサノードからのイベントをサーバノードに収集させる場合には、全てのイベントがサーバノードに集中して通知されることになる。このため、サーバノードの処理の負荷が増大するとともに、ネットワークのトラフィックの増加に伴ってネットワーク帯域も逼迫する。また、センサネットワークにおいては、あるセンサノードの処理量を、他のセンサノードの処理量よりも低くするなどの所定の制約条件がある。
ここで、サーバノードの負荷とネットワークトラフィックを抑制しつつ、所定の制約条件を満たすように、センサノードやイベントを中継する中継ノードなどの下位ノードに配備するモジュールを決定する技術の一例として、以下のような技術が考えられる。例えば、下位ノードに配備するモジュールを決定する技術は、まず、イベントの発生状況やセンサネットワークのトポロジに応じてイベントの収集経路を決定する。そして、下位ノードに配備するモジュールを決定する技術は、決定した収集経路に基づいて、下位ノードと、下位ノードに対して配備されたイベントを処理するモジュールとの全ての組合せについて、次のような処理を行う。すなわち、下位ノードの配備するモジュールを決定する技術は、全ての組合せについて、サーバノードの負荷を示す第1の評価値と、ネットワークトラフィックを示す第2の評価値と、所定の制約条件のうち違反した条件の数を示す第3の評価値とを算出する。そして、下位ノードに配備するモジュールを決定する技術は、第1の評価値と、第2の評価値と、第3の評価値とに基づいて、下位ノードに配備するモジュールを決定する。
しかしながら、上述したモジュールを決定する技術では、全ての組合せにおいて、上述した各種の評価値を算出するため、どのノードにどのモジュールを配備するかを決定する際に多大な時間がかかるという問題がある。
1つの側面では、本発明は、簡易に、どのノードにどのモジュールを配備するかを決定することを目的とする。
モジュール配備決定装置は、記憶部と、第1の決定部と、第2の決定部と、第3の決定部と、出力部とを有する。記憶部は、検知したイベントを送信するか、または、前記イベントを中継する複数のノードが接続されたネットワークを示すネットワーク情報、及び、前記イベントを加工処理するモジュールを識別する識別子を記憶する。第1の決定部は、前記モジュールが前記複数のノードのうちのいずれのノードに配備されるのかを示す第1の情報、及び、前記第1の情報が示す前記モジュールが配備される前記ノードを変更した第2の情報の各情報における所定の評価度合いを示す評価値に基づいて、前記第1の情報及び前記第2の情報の各情報の中から、前記評価度合いが高い上位所定個の情報を決定する。第2の決定部は、前記第1の決定部により決定された情報、及び、該情報が示す前記モジュールが配備される前記ノードを変更した第3の情報の各情報の中から、所定数の所定の条件のうち合致しない条件の数が少ない上位所定個の情報を決定する。第3の決定部は、前記第2の決定部により決定された情報、及び、該情報が示す前記モジュールが配備される前記ノードを変更した第4の情報の各情報における前記所定の評価度合いを示す評価値と、前記第2の決定部により決定された情報、及び、前記第4の情報の各情報における前記所定数の所定の条件のうち合致しない条件の数とに基づいて、前記第2の決定部により決定された情報、及び、前記第4の情報の各情報の中から、該評価値及び該合致しない条件の数が所定の基準を満たす情報を決定する。出力部は、前記第3の決定部により決定された情報を出力する。
簡易に、どのノードにどのモジュールを配備するかを決定することができる。
以下に、本願の開示するモジュール配備決定装置の一例であるサーバノード、モジュール配備決定システムの一例であるセンサネットワークシステム、及び、モジュール配備決定方法の実施例を図面に基づいて詳細に説明する。なお、実施例は開示の技術を限定するものではない。
[実施例に係るセンサネットワークシステムのシステム構成の一例]
図1は、実施例に係るモジュール配備決定システムの一例であるセンサネットワークシステムのシステム構成の一例を示す図である。図1に示すセンサネットワークシステム10は、イベントを加工する処理を行う各種のモジュールをどのノード(センサノード、GWノード、サーバノード)に配備するかを決定するシステムである。ここでいうイベントとは、センサノードによってセンシングされたデータ、または、センシングされたデータが加工処理されたデータを指す。
図1は、実施例に係るモジュール配備決定システムの一例であるセンサネットワークシステムのシステム構成の一例を示す図である。図1に示すセンサネットワークシステム10は、イベントを加工する処理を行う各種のモジュールをどのノード(センサノード、GWノード、サーバノード)に配備するかを決定するシステムである。ここでいうイベントとは、センサノードによってセンシングされたデータ、または、センシングされたデータが加工処理されたデータを指す。
図1の例に示すように、センサネットワークシステム10は、サーバノード(5)1と、3つのセンサノード(1)21a、センサノード(2)21b及びセンサノード(3)21cと、GW(GateWay)ノード(4)22とを有する。ここで、「センサノード(1)21a」における「(1)」は、ノードを識別するための識別子(ノードID)である。例えば、ノードID「1」が示すノードは、センサノード21aである。同様に、ノードID「2」が示すノードは、センサノード21bであり、ノードID「3」が示すノードは、センサノード21cであり、ノードID「4」が示すノードは、GWノード22であり、ノードID「5」が示すノードは、サーバノード1である。以下の説明では、識別子の表記を省略する場合がある。
図1の例では、サーバノード1とGWノード22とがネットワーク23を介して通信可能に接続される。ネットワーク23の一例としては、有線または無線を問わず、インターネット(internet)、LAN(Local Area Network)やVPN(Virtual Private Network)などの通信網が挙げられる。なお、図1では、センサネットワークシステム10が、3つのセンサノード21a〜21cを有する場合を例示したが、センサネットワークシステム10は、任意の数のセンサノードを有することができる。また、以下の説明では、3つのセンサノード21a〜21cを区別することなく総称する場合には、単に、「センサノード21」と表記する。また、図1の例では、センサネットワークシステム10が、1つのGWノード22を有する場合を例示したが、センサネットワークシステム10は、任意の数のGWノードを有することができる。
図1の例に示すセンサネットワークシステム10では、センサノード21から送信されたイベントを、GWノード22及びネットワーク23を介して、サーバノード1が収集する。
センサノード21は、センサが搭載された通信端末である。センサノード21の一態様としては、パーソナルコンピュータやパーソナルコンピュータの周辺機器、AV(Audio Visual)機器、携帯電話機やPHS(Personal Handyphone System)の携帯端末、家電製品などの各種の機器が挙げられる。また、センサノード21に搭載されるセンサの一態様としては、照度を検出する照度センサ、温度を検出する温度センサ、湿度を検出する湿度センサ、温度及び湿度を検出する温湿度センサなどの環境センサが挙げられる。なお、センサノード21に搭載されるセンサは、環境センサに限られない。例えば、センサノード21に搭載されるセンサは、GPS(Global Positioning System)センサ、加速度センサやジャイロセンサなどの各種のセンサでもよい。
ここで、以下の説明では、3つのセンサノード21a〜21cが、照度センサであり、センサノード21aが「S501室」という室に配備され、センサノード21b及びセンサノード21cが「S503室」という室に配備された場合について説明する。
GWノード22は、サーバノード1とセンサノード21との通信を中継するノードである。例えば、GWノード22は、センサノード21から送信されたイベントを受信し、受信したイベントを、ネットワーク23を介してサーバノード1へ送信する。以下の説明では、センサネットワークにおけるルートノードであるサーバノード1以外のノード、すなわち、センサノード21およびGWノード22を「下位ノード」と表記する場合がある。
サーバノード1は、センサネットワークにおけるルートノードとしての機能を有する。サーバノード1は、イベントを加工する処理を行う各種のモジュールをどのノード(センサノード、GWノード、サーバノード)に配備するかを決定するサーバである。
[サーバノード1の機能構成の一例]
続いて、本実施例に係るサーバノード1の機能構成の一例について説明する。図2は、実施例に係るサーバノードの機能構成の一例を示すブロック図である。図2の例に示すように、サーバノード1は、入力部2と、出力部3と、通信部4と、制御部6と、最適解記憶部5aと、親世代記憶部5bと、次世代記憶部5cと、トポロジ記憶部5dと、モジュール記憶部5eと、モジュール定義記憶部5fと、フラグ記憶部5gとを有する。
続いて、本実施例に係るサーバノード1の機能構成の一例について説明する。図2は、実施例に係るサーバノードの機能構成の一例を示すブロック図である。図2の例に示すように、サーバノード1は、入力部2と、出力部3と、通信部4と、制御部6と、最適解記憶部5aと、親世代記憶部5bと、次世代記憶部5cと、トポロジ記憶部5dと、モジュール記憶部5eと、モジュール定義記憶部5fと、フラグ記憶部5gとを有する。
入力部2は、各種の情報をサーバノード1に入力する。例えば、入力部2は、サーバノード1のユーザから、後述のモジュール配備決定処理を実行する指示を受け付けた場合には、受け付けた指示をサーバノード1に入力する。入力部2のデバイスの一例としては、キーボードやマウスなどが挙げられる。
出力部3は、各種の情報を出力する。例えば、出力部3は、最適解出力制御部6fが実行する後述の処理により、後述の最適解を表示するように制御される。出力部3のデバイスの一例としては、液晶ディスプレイなどの各種の表示装置や、音声を出力する音声出力装置が挙げられる。
通信部4は、サーバノード1と、下位ノードとの通信を行う。例えば、通信部4は、モジュール出力制御部6gが実行する後述の処理により、モジュールを下位ノードに送信するように制御される。通信部4のデバイスの一例として、ネットワークインタフェースカードなどの各種の通信を行うためのデバイスが挙げられる。
最適解記憶部5aには、所定値、例えば、「1000」を初期値とする最適解が予め記憶される。かかる最適解は、モジュール配備決定処理において、最適解更新部6eが実行する後述の処理により更新される。
親世代記憶部5bには、後述の親世代が格納される。また、親世代記憶部5bに記憶された親世代は、更新される。本実施例では、親世代が2つであり、2つの親世代が更新される場合について以下説明するが、親世代の数はこれに限られず、任意の数を採用できる。
次世代記憶部5cには、次世代生成部6bが実行する後述の処理により後述の2つの次世代が格納される。また、次世代記憶部5cに記憶された次世代は、更新される。
トポロジ記憶部5dは、センサネットワークシステム10における各種のノード(サーバノード1、センサノード21、GWノード22)の接続形態を示す情報、いわゆる、トポロジを記憶する。かかるトポロジは、例えば、次のようにして、トポロジ記憶部5dに格納される。例えば、サーバノード1は、特開2013−047922号公報に記載された技術を用いて、下位ノードのそれぞれから、下位ノードと下位ノードが接続される上位のノードとの接続関係を示す接続情報を取得する。また、サーバノード1は、下位ノードから送信されるイベントを受信し、受信したイベントに含まれる属性情報に、下位ノードが配備された場所を示す情報が含まれる場合には、属性情報から下位ノードが配備された場所を特定する。そして、サーバノード1は、下位ノードのそれぞれから取得した接続情報、及び、下位ノードが配備された場所を用いて、センサネットワークシステム10における各種のノードの接続形態を示す情報を生成する。そして、サーバノード1は、生成した情報をトポロジとしてトポロジ記憶部5dに格納する。なお、ユーザが入力部2を介して、トポロジをサーバノード1に入力するとともに、入力したトポロジをトポロジ記憶部5dに格納する指示をサーバノード1に入力することにより、トポロジ記憶部5dにトポロジを格納させることもできる。
図3は、トポロジ記憶部に記憶されたトポロジが示すセンサネットワークシステムにおける各種のノードの接続形態の一例を示す図である。図3の例は、GWノード22に、センサノード21aと、センサノード21bと、センサノード21cとが接続され、サーバノード1に、GWノード22が接続された場合の接続形態の一例である。また、図3の例は、センサノード21aが「S501室」に配備され、センサノード21b及びセンサノード21cが「S503室」に配備されたことを示す。
モジュール定義記憶部5fは、センサネットワークシステム10における各種のノードで実行されるモジュールのインスタンスについての定義を記憶する。かかる定義は、例えば、次のようにして、モジュール定義記憶部5fに格納される。例えば、サーバノード1は、モジュールの開発者によってプログラミングされたモジュールのインスタンスについての定義を、入力部2を介して受け付け、受け付けた定義をモジュール定義記憶部5fに格納する。
図4は、モジュール定義記憶部に記憶された定義の一例を示す図である。図4の例は、定義としてモジュール定義記憶部5fに記憶された、モジュールの処理フローの各処理をデータ単位に実行するインスタンスの接続関係を示す。図4の例における「(N)」(N=1,2,・・・,8)は、各インスタンスを識別するための識別子(インスタンスID)である。
例えば、インスタンスID「1」は、「S501室に配備されたセンサノードによって検出された照度を読み込む」インスタンスを示す。インスタンスID「2」及び「3」は、ともに、「S503室に配備されたセンサノードによって検出された照度を読み込む」インスタンスを示す。また、インスタンスID「4」は、インスタンスID「1」が示すインスタンスによって読み込まれた照度を用いて、「S501室の照度の平均値を算出する」インスタンスを示す。
また、インスタンスID「5」は、インスタンスID「2」及び「3」のそれぞれが示す各インスタンスによって読み込まれた照度を用いて、「S503室の照度の平均値を算出する」インスタンスを示す。また、インスタンスID「6」は、インスタンスID「4」及び「5」のそれぞれが示す各インスタンスによって算出された照度の平均値を用いて、「照度の平均値の合計を算出する」インスタンスを示す。また、インスタンスID「7」は、インスタンスID「4」及び「5」のそれぞれが示す各インスタンスによって算出された照度の平均値を用いて、「照度の平均値を記憶部に蓄積する」インスタンスを示す。また、インスタンスID「8」は、インスタンスID「6」が示すインスタンスによって算出された照度の平均値の合計を用いて、「照度の平均値の合計を記憶部に蓄積する」インスタンスを示す。
モジュール記憶部5eは、モジュールの各インスタンスを記憶する。かかるインスタンスは、例えば、次のようにして、モジュール記憶部5eに格納される。例えば、サーバノード1は、モジュールの開発者によってプログラミングされたモジュールのインスタンスのバイナリコードとインスタンスIDを、入力部1を介して受け付け、受け付けたインスタンスのバイナリコードをインスタンスIDとともにモジュール記憶部5eに格納する。一例としては、モジュール記憶部5eは、先の図4の例に示す8つのインスタンスのバイナリコードのそれぞれと、対応するインスタンスIDとを対応付けて記憶する。
フラグ記憶部5gは、2ビットのフラグを記憶する。例えば、かかるフラグには、「1」、「2」、「3」のいずれかの値が設定される。「1」は、後述の大域検索のモードを示す。「2」は、後述の制約検索のモードを示す。「3」は、後述の周辺検索のモードを示す。
図2の説明に戻り、制御部6は、初期解生成部6aと、次世代生成部6bと、親世代選択部6cと、モード判定部6dと、最適解更新部6eと、最適解出力制御部6fと、モジュール出力制御部6gとを有する。制御部6は、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、CPU(Central Processing Unit)、MPU(Micro Processing Unit)などの回路である。
初期解生成部6aは、インスタンスと、インスタンスが配備されるノードとの関係を示す解であって、モジュール配備決定処理における最初の2つの親世代のうちの1つの親世代である初期解を生成する。
初期解生成部6aの一態様について説明する。初期解生成部6aは、入力部2からモジュール配備決定処理を実行する指示が入力されると、まず、トポロジ記憶部5dからトポロジを取得する。そして、初期解生成部6aは、モジュール定義記憶部5fから、モジュール定義記憶部5fに記憶された定義を取得する。
そして、初期解生成部6aは、初期解を生成する。例えば、初期解生成部6aは、特開2013−047922号公報に記載された技術を用いて、トポロジ及び定義から、配備先のノードのノードIDと、ノードIDが示すノードに配備されるインスタンスのインスタンスIDとを導出する。そして、初期解生成部6aは、ノードIDと、インスタンスIDとを対応付けて、初期解を生成する。図5は、初期解の一例を示す図である。図6は、図5の例の初期解が示すインスタンスとインスタンスが配備されるノードとを模式的に表した図である。
図5の例に示す初期解では、インスタンスID「1」と、ノードID「1」とが対応付けられている。また、図5の例の初期解では、インスタンスID「4」と、ノードID「1」とが対応付けられている。これは、図6の例に示すように、ノードID「1」が示すセンサノード21aに、インスタンスID「1」が示すインスタンスとインスタンスID「4」が示すインスタンスとが配備された場合を示す。
また、図5の例の初期解では、インスタンスID「2」と、ノードID「2」とが対応付けられている。これは、図6の例に示すように、ノードID「2」が示すセンサノード21bに、インスタンスID「2」が示すインスタンスが配備された場合を示す。
また、図5の例の初期解では、インスタンスID「3」と、ノードID「3」とが対応付けられている。これは、図6の例に示すように、ノードID「3」が示すセンサノード21cに、インスタンスID「3」が示すインスタンスが配備された場合を示す。
また、図5の例の初期解では、インスタンスID「5」と、ノードID「4」とが対応付けられている。これは、図6の例に示すように、ノードID「4」が示すGWノード22に、インスタンスID「5」が示すインスタンスが配備された場合を示す。
また、図5の例の初期解では、インスタンスID「6」と、ノードID「5」とが対応付けられている。また、図5の例の初期解では、インスタンスID「7」と、ノードID「5」とが対応付けられている。さらに、図5の例の初期解では、インスタンスID「8」と、ノードID「5」とが対応付けられている。これは、図6の例に示すように、ノードID「5」が示すサーバノード1に、インスタンスID「6」が示すインスタンスとインスタンスID「7」が示すインスタンスとインスタンスID「8」が示すインスタンスとが配備された場合を示す。
そして、初期解生成部6aは、生成した初期解を1つ目の親世代として、親世代記憶部5bに格納する。例えば、初期解生成部6aは、図5の例に示す初期解を1つ目の親世代として親世代記憶部5bに格納する。
そして、初期解生成部6aは、遺伝的アルゴリズム(genetic algorithm)を用いて、1つ目の親世代から、突然変異によって新たな解を生成し、生成した解を2つ目の親世代として親世代記憶部5bに格納する。図7は、2つ目の親世代の一例を示す図である。例えば、初期解生成部6aは、図5の例に示す1つ目の親世代から、突然変異によって、図7の例に示すような新たな解を生成し、生成した解を2つ目の親世代として親世代記憶部5bに格納する。これにより、親世代記憶部5bには、2つの親世代が格納される。
そして、初期解生成部6aは、フラグ記憶部5gに記憶されたフラグに「1」を設定する。これにより、モジュール配備決定処理におけるモードが、大域検索のモードとなる。
次世代生成部6bは、親世代から次世代を生成する。次世代生成部6bの一態様について説明する。例えば、次世代生成部6bは、所定のタイミングで、フラグ記憶部5gに記憶されたフラグを参照する。ここで、所定のタイミングについて説明する。例えば、所定のタイミングとしては、7つのタイミングがある。1つ目のタイミングとしては、初期解生成部6aにより、フラグ記憶部5gに記憶されたフラグに「1」が設定されたタイミングが挙げられる。2つ目のタイミングとしては、モード判定部6dにより、2つの親世代のうち少なくとも1つの親世代が、制約に違反した数が0でないと判定されたタイミングが挙げられる。また、3つ目のタイミングとしては、モード判定部6dにより、フラグ記憶部5gに記憶されたフラグの値が「3」に更新されて、モジュール配備決定処理におけるモードが周辺検索のモードに設定されたタイミングが挙げられる。また、4つ目のタイミングとしては、モード判定部6dにより、フラグ記憶部5gに記憶されたフラグの値が「2」に更新されて、モジュール配備決定処理におけるモードが制約検索のモードに設定されたタイミングが挙げられる。5つ目のタイミングとしては、最適解更新部6eにより、最適解記憶部5aに記憶された最適解が更新されたタイミングが挙げられる。6つ目のタイミングとしては、最適解更新部6eにより、2つの親世代の中に、制約に違反した数が0であり、かつ、最適解記憶部5aに記憶された最適解よりも評価が高い親世代が存在しないと判定されたタイミングが挙げられる。7つ目のタイミングとしては、モード判定部により、次世代が所定回数以上更新されている間に、親世代が更新されていないと判定されたタイミングが挙げられる。
そして、フラグを参照すると、次世代生成部6bは、フラグの値が「1」である場合には、親世代記憶部5bに記憶された2つの親世代を取得する。そして、次世代生成部6bは、大域検索の場合における確率情報が示す各インスタンスIDを選択する確率(交叉選択確率)にしたがって、2つの親世代のインスタンスIDを、所定の交叉数(例えば、「3」)分だけ選択する。大域検索の場合における確率情報は、次世代生成部6bの内部メモリに記憶されている。図8は、大域検索の場合における確率情報の一例を示す図である。
図8に示す確率情報は、インスタンスID「1」を選択する確率が「15%」であることを示す。また、図8に示す確率情報は、インスタンスID「2」を選択する確率が「15%」であることを示す。また、図8に示す確率情報は、インスタンスID「3」を選択する確率が「15%」であることを示す。また、図8に示す確率情報は、インスタンスID「4」を選択する確率が「13%」であることを示す。また、図8に示す確率情報は、インスタンスID「5」を選択する確率が「11%」であることを示す。また、図8に示す確率情報は、インスタンスID「6」を選択する確率が「11%」であることを示す。また、図8に示す確率情報は、インスタンスID「7」を選択する確率が「10%」であることを示す。また、図8に示す確率情報は、インスタンスID「8」を選択する確率が「10%」であることを示す。
そして、次世代生成部6bは、一方の親世代における選択したインスタンスIDに対応するノードIDと、他方の親世代における選択したインスタンスIDに対応するノードIDとを入れ替えることで、2つの親世代を交叉させて2つの次世代を生成する。図9は、次世代の算出方法の一例を示す図である。例えば、図9の例には、図5の例に示す1つ目の親世代が「親世代1」として示され、また、図7の例に示す2つ目の親世代が「親世代2」として示されている。また、図9の例は、次世代生成部6bが、親世代1及び親世代2のインスタンスID「1」、インスタンスID「3」、インスタンスID「6」を選択した場合を示す。次世代生成部6bは、図9の例に示すように、親世代1における選択したインスタンスID「1」に対応するノードID「4」と、親世代2における選択したインスタンスID「1」に対応するノードID「1」とを入れ替える。また、次世代生成部6bは、図9の例に示すように、親世代1における選択したインスタンスID「3」に対応するノードID「1」と、親世代2における選択したインスタンスID「3」に対応するノードID「3」とを入れ替える。また、次世代生成部6bは、図9の例に示すように、親世代1における選択したインスタンスID「6」に対応するノードID「4」と、親世代2における選択したインスタンスID「6」に対応するノードID「4」とを入れ替える。このようにして、次世代生成部6bは、2つの親世代1及び親世代2を交叉させて2つの次世代(次世代1、次世代2)を生成する。
また、次世代生成部6bは、参照したフラグの値が「2」または「3」である場合には、親世代記憶部5bに記憶された2つの親世代を取得する。そして、次世代生成部6bは、制約検索及び周辺検索の場合における確率情報が示す各インスタンスIDを選択する確率(交叉選択確率)にしたがって、2つの親世代のインスタンスIDを、所定の交叉数(例えば、「3」)分だけ選択する。制約検索及び周辺検索の場合における確率情報は、次世代生成部6bの内部メモリに記憶されている。図10は、制約検索及び周辺検索の場合における確率情報の一例を示す図である。
図10に示す確率情報は、インスタンスID「1」を選択する確率が「10%」であることを示す。また、図10に示す確率情報は、インスタンスID「2」を選択する確率が「10%」であることを示す。また、図10に示す確率情報は、インスタンスID「3」を選択する確率が「10%」であることを示す。また、図10に示す確率情報は、インスタンスID「4」を選択する確率が「14%」であることを示す。また、図10に示す確率情報は、インスタンスID「5」を選択する確率が「14%」であることを示す。また、図10に示す確率情報は、インスタンスID「6」を選択する確率が「14%」であることを示す。また、図10に示す確率情報は、インスタンスID「7」を選択する確率が「14%」であることを示す。また、図10に示す確率情報は、インスタンスID「8」を選択する確率が「14%」であることを示す。
そして、次世代生成部6bは、一方の親世代における選択したインスタンスIDに対応するノードIDと、他方の親世代における選択したインスタンスIDに対応するノードIDとを入れ替えることで、2つの親世代を交叉させて2つの次世代を生成する。
ここで、図8に示す確率情報と、図10に示す確率情報とを比較すると、次世代生成部6bは、次のようにインスタンスIDを選択することが分かる。すなわち、次世代生成部6bは、参照したフラグの値が「1」である場合には、フラグの値が「2」または「3」である場合よりも、モジュールの処理フローにおいてイベントが流れる方向における上流側のインスタンスのインスタンスIDを高い確率で選択する。そして、次世代生成部6bは、選択したインスタンスIDが示すインスタンスを配備するノードを変更することで、次世代を生成する。ここで、配備先のノードが変更されるインスタンスが、イベントが流れる方向における上流側であるほど、親世代と次世代とで評価値が大きく変動する可能性が高くなる。それゆえ、大域検索のモードでは、制約検索及び周辺検索の各モードよりも、親世代が示すようにノードにモジュールを配備させた場合の評価値に対して、次世代が示すようにノードにモジュールを配備させた場合の評価値が大きく変化する可能性が高くなる。
そして、次世代生成部6bは、所定の確率(0.1%〜5%)で、生成した次世代を突然変異させて新たな次世代を生成する。図11は、次世代を突然変異させた結果得られた新たな次世代の一例を示す図である。例えば、次世代生成部6bは、図11の例に示すように、図10の例に示す「次世代1」(図11中、上側の次世代)を、所定の変異数(例えば、「3」)分突然変異させて、新たな「次世代1」(図11中、下側の次世代)を生成する。
なお、次世代生成部6bは、生成した次世代を、以下に説明するように、他の方法で、突然変異させて新たな次世代を生成することもできる。例えば、次世代生成部6bは、フラグの値が「1」である場合には、上述した大域検索の場合における確率情報が示す各インスタンスIDを選択する確率にしたがって、親世代のインスタンスIDを、所定の変異数(例えば、「3」)分だけ選択する。そして、次世代生成部6bは、所定の変異数分だけ、「1」〜「5」の範囲でランダムに整数を生成する。そして、次世代生成部6bは、選択したインスタンスIDに対応するノードIDの値を、生成した整数に変更することで、次世代を生成する。
そして、次世代生成部6bは、生成した2つの次世代を次世代記憶部5cに格納する。なお、次世代記憶部5cにすでに2つの次世代が記憶されている場合には、次世代生成部6bは、次世代記憶部5cにすでに記憶された2つの次世代を、生成した2つの次世代で更新する。
親世代選択部6cは、2つの次世代の中から新たな親世代を選択する。親世代選択部6cの一態様について説明する。例えば、親世代選択部6cは、まず、親世代記憶部5bに記憶された2つの親世代、及び、次世代記憶部5cに記憶された2つの次世代を取得する。そして、親世代選択部6cは、フラグ記憶部5gに記憶されたフラグを参照する。
参照したフラグの値が「1」である場合には、親世代選択部6cは、2つの親世代のそれぞれに対して、親世代が示すようにノードにインスタンスを配備してノードがインスタンスを実行する場合の評価値を算出する。さらに、親世代選択部6cは、2つの次世代のそれぞれに対して、次世代が示すようにノードにインスタンスを配備してノードがインスタンスを実行する場合の評価値を算出する。例えば、親世代選択部6cは、通信コストを算出するための評価関数を用いて、2つの親世代及び2つの次世代の各世代に対して、通信コストを算出する。
そして、親世代選択部6cは、2つの親世代及び2つの次世代の中から、評価値が示す評価が高い上位2つの世代を新たな親世代として選択する。例えば、評価値として通信コストを算出した場合には、通信コストが低いほど評価が高くなるので、親世代選択部6cは、2つの親世代及び2つの次世代の中から、評価値が低い上位2つの世代を新たな親世代として選択する。そして、親世代選択部6cは、親世代記憶部5bに、2つの新たな親世代を格納して、親世代記憶部5bに記憶される2つの親世代を更新する。
また、参照したフラグの値が「2」である場合には、親世代選択部6cは、2つの親世代のそれぞれに対して、親世代が示すようにノードにモジュールを配備してノードがインスタンスを実行する場合の制約評価値を算出する。さらに、親世代選択部6cは、2つの次世代のそれぞれに対して、次世代が示すようにノードにモジュールを配備してノードがインスタンスを実行する場合の制約評価値を算出する。
親世代選択部6cが算出する制約評価値の算出方法の一例について説明する。例えば、制約評価値は、自ノードに配備されたインスタンスを実行する場合における処理負荷が、処理能力を超えているノードの台数と、インスタンスが実行された場合における通信量が、通信帯域を超えている経路の数との和で表される。図12、図13、図14及び図15は、制約評価値の算出方法の一例を説明するための図である。
まず、図12及び図13を用いて、自ノードに配備されたインスタンスを実行する場合における処理負荷が処理能力を超えているノードの台数を算出する方法の一例について説明する。図12には、インスタンスIDと、インスタンスIDが示すインスタンスを処理する場合における処理負荷との対応関係の一例が示されている。かかる処理負荷は、例えば、ノードでの処理実行中の負荷モニターから抽出したり、エミュレータでの仮想実行時の負荷を計測したり、インスタンスごとに定義する負荷見込み関数から算出したりすることにより得られる。上述したインスタンスIDと処理負荷との対応関係は、親世代選択部6cの内部メモリに予め記憶されている。
図12の例に示す処理負荷L(i)は、インスタンスID「i」が示すインスタンスを処理する場合における処理負荷を示す。
例えば、図12の例は、インスタンスID「1」が示すインスタンスを処理する場合における処理負荷が「10」である場合を示す。また、図12の例は、インスタンスID「2」が示すインスタンスを処理する場合における処理負荷が「10」である場合を示す。
また、図12の例は、インスタンスID「3」が示すインスタンスを処理する場合における処理負荷が「10」である場合を示す。また、図12の例は、インスタンスID「4」が示すインスタンスを処理する場合における処理負荷が「15」である場合を示す。
また、図12の例は、インスタンスID「5」が示すインスタンスを処理する場合における処理負荷が「15」である場合を示す。また、図12の例は、インスタンスID「6」が示すインスタンスを処理する場合における処理負荷が「20」である場合を示す。
また、図12の例は、インスタンスID「7」が示すインスタンスを処理する場合における処理負荷が「20」である場合を示す。また、図12の例は、インスタンスID「8」が示すインスタンスを処理する場合における処理負荷が「20」である場合を示す。
図13には、ノードIDと、ノードIDが示すノードの処理能力との対応関係の一例が示されている。かかる処理能力は、例えば、CPU(Central Processing Unit)性能やベンチマーク結果から得られる。上述したノードIDと処理能力との対応関係は、親世代選択部6cの内部メモリに予め記憶されている。
図13の例に示す処理能力P(n)は、ノードID「n」が示すノードの処理能力を示す。例えば、図13の例は、ノードID「1」が示す処理能力が「30」である場合を示す。また、図13の例は、ノードID「2」が示す処理能力が「30」である場合を示す。
また、図13の例は、ノードID「3」が示す処理能力が「30」である場合を示す。また、図13の例は、ノードID「4」が示す処理能力が「45」である場合を示す。また、図13の例は、ノードID「5」が示す処理能力が「1000」である場合を示す。
図12及び図13の例に示す各対応関係が親世代選択部6cの内部メモリに記憶されている場合に、先の図5の例に示すような親世代に対して、処理負荷が処理能力を超えているノードの台数を算出するときには、親世代選択部6cは、次の処理を行う。例えば、図5の例では、ノードID「1」が示すノードに、インスタンスID「1」及び「4」が示す各インスタンスが配備されるので、親世代選択部6cは、処理負荷L(1)と処理負荷L(4)との和が処理能力P(1)を超えているか判定する。処理負荷L(1)が「10」であり、処理負荷L(4)が「15」であり、処理能力P(1)が「30」であるので、親世代選択部6cは、処理負荷L(1)と処理負荷L(4)との和が、処理能力P(1)を超えていないと判定する。
また、図5の例では、ノードID「2」が示すノードにインスタンスID「2」が示すインスタンスが配備されるので、親世代選択部6cは、処理負荷L(2)が処理能力P(2)を超えているか判定する。処理負荷L(2)が「10」であり、処理能力P(2)が「30」であるので、親世代選択部6cは、処理負荷L(2)が処理能力P(2)を超えていないと判定する。
また、図5の例では、ノードID「3」が示すノードにインスタンスID「3」が示すインスタンスが配備されるので、親世代選択部6cは、処理負荷L(3)が処理能力P(3)を超えているか判定する。処理負荷L(3)が「10」であり、処理能力P(3)が「30」であるので、親世代選択部6cは、処理負荷L(3)が処理能力P(3)を超えていないと判定する。
また、図5の例では、ノードID「4」が示すノードにインスタンスID「5」が示すインスタンスが配備されるので、親世代選択部6cは、処理負荷L(5)が処理能力P(4)を超えているか判定する。処理負荷L(5)が「15」であり、処理能力P(4)が「45」であるので、親世代選択部6cは、処理負荷L(5)が処理能力P(4)を超えていないと判定する。
また、図5の例では、ノードID「5」が示すノードに、インスタンスID「6」、「7」及び「8」が示す各インスタンスが配備されるので、親世代選択部6cは、次の処理を行う。すなわち、親世代選択部6cは、処理負荷L(6)と処理負荷L(7)と処理負荷L(8)との和が、処理能力P(5)を超えているか判定する。ここで、処理負荷L(6)、処理負荷L(7)及び処理負荷L(8)が「20」であり、処理能力P(5)が「1000」であるので、親世代選択部6cは、処理負荷L(6)と処理負荷L(7)と処理負荷(8)との和が、処理能力P(5)を超えていないと判定する。
以上のことから、処理負荷が処理能力を超えるノードの台数は「0」である。したがって、図12及び図13の例に示す各対応関係が内部メモリに記憶されている場合に、親世代選択部6cは、図5の例に示すような親世代に対して、処理負荷が処理能力を超えているノードの台数「0」を算出する。
次に、図14及び図15を用いて、インスタンスが実行された場合における通信量が、通信帯域を超えている経路の数を算出する方法の一例について説明する。図14には、インスタンス間の2つのインスタンスIDを「‐」で連結したインスタンス間を識別するための連結IDと、連結IDが示すインスタンス間の通信量との対応関係の一例が示されている。かかる通信量は、例えば、ノードでの処理実行中の通信量モニターから抽出したり、エミュレータでの仮想実行時の通信量を計測したり、インスタンスごとに定義する入出力見込み関数から算出したりすることにより得られる。上述した連結IDと通信量との対応関係は、親世代選択部6cの内部メモリに予め記憶されている。
図14の例に示す通信量T(i)は、連結ID「i」が示すインスタンス間の通信量を示す。例えば、図14の例は、連結ID「1‐4」が示すインスタンス間の通信量(インスタンスID「1」が示すインスタンスから、インスタンスID「4」が示すインスタンスへ流れるイベントの通信量)が「30」である場合を示す。
また、図14の例は、連結ID「2‐5」が示すインスタンス間の通信量(インスタンスID「2」が示すインスタンスから、インスタンスID「5」が示すインスタンスへ流れるイベントの通信量)が「30」である場合を示す。
また、図14の例は、連結ID「3‐5」が示すインスタンス間の通信量(インスタンスID「3」が示すインスタンスから、インスタンスID「5」が示すインスタンスへ流れるイベントの通信量)が「30」である場合を示す。
また、図14の例は、連結ID「4‐6」が示すインスタンス間の通信量(インスタンスID「4」が示すインスタンスから、インスタンスID「6」が示すインスタンスへ流れるイベントの通信量)が「5」である場合を示す。
また、図14の例は、連結ID「4‐7」が示すインスタンス間の通信量(インスタンスID「4」が示すインスタンスから、インスタンスID「7」が示すインスタンスへ流れるイベントの通信量)が「5」である場合を示す。
また、図14の例は、連結ID「5‐6」が示すインスタンス間の通信量(インスタンスID「5」が示すインスタンスから、インスタンスID「6」が示すインスタンスへ流れるイベントの通信量)が「5」である場合を示す。
また、図14の例は、連結ID「5‐7」が示すインスタンス間の通信量(インスタンスID「5」が示すインスタンスから、インスタンスID「7」が示すインスタンスへ流れるイベントの通信量)が「5」である場合を示す。
また、図14の例は、連結ID「5‐8」が示すインスタンス間の通信量(インスタンスID「5」が示すインスタンスから、インスタンスID「8」が示すインスタンスへ流れるイベントの通信量)が「1」である場合を示す。
図15には、ノード間の2つのノードIDを「‐」で連結したノード間の経路を識別するための連結IDと、連結IDが示すノード間の経路の通信帯域との対応関係の一例が示されている。かかる通信帯域は、例えば、データ転送試験などから得られる。上述した連結IDと通信帯域との対応関係は、親世代選択部6cの内部メモリに予め記憶されている。
図15の例に示す通信帯域B(n)は、連結ID「n」が示すノード間の経路の通信帯域を示す。例えば、図15の例は、連結ID「1‐4」が示すノードID「1」が示すノードとノードID「4」が示すノードとの間の経路の通信帯域が「30」である場合を示す。また、図15の例は、連結ID「2‐4」が示すノードID「2」が示すノードとノードID「4」が示すノードとの間の経路の通信帯域が「30」である場合を示す。また、図15の例は、連結ID「3‐4」が示すノードID「3」が示すノードとノードID「4」が示すノードとの間の経路の通信帯域が「30」である場合を示す。また、図15の例は、連結ID「4−5」が示すノードID「4」が示すノードとノードID「5」が示すノードとの間の経路の通信帯域が「45」である場合を示す。
図14及び図15の例に示す各対応関係が親世代選択部6cの内部メモリに記憶されている場合に、先の図5の例に示すような親世代に対して、通信量が通信帯域を超えている経路の数を算出するときには、親世代選択部6cは、次の処理を行う。例えば、図5の例では、先の図6の例に示すように、ノードID「1」が示すノードとノードID「4」が示すノードとの間の経路に、インスタンスID「4」が示すインスタンスから、インスタンスID「6」が示すインスタンスへイベントが流れる。それゆえ、親世代選択部6cは、通信量T(4−6)が、通信帯域B(1−4)を超えているか判定する。通信量T(4−6)が「5」であり、通信帯域B(1−4)が「30」であるので、親世代選択部6cは、通信量T(4−6)が、通信帯域B(1−4)を超えていないと判定する。なお、図5の例では、図6の例に示すように、インスタンスID「1」が示すインスタンスと、インスタンスID「4」が示すインスタントとは、同一のノードに配備される。このため、インスタンスID「1」が示すインスタンスと、インスタンスID「4」が示すインスタントとの間での通信は、経路を介したノード間では行われない。
また、図5の例では、先の図6の例に示すように、ノードID「2」が示すノードとノードID「4」が示すノードとの間の経路に、インスタンスID「2」が示すインスタンスから、インスタンスID「5」が示すインスタンスへイベントが流れる。それゆえ、親世代選択部6cは、通信量T(2−5)が、通信帯域B(2−4)を超えているか判定する。通信量T(2−5)が「30」であり、通信帯域B(2−4)が「30」であるので、親世代選択部6cは、通信量T(2−5)が、通信帯域B(2−4)を超えていないと判定する。
また、図5の例では、先の図6の例に示すように、ノードID「3」が示すノードとノードID「4」が示すノードとの間の経路に、インスタンスID「3」が示すインスタンスから、インスタンスID「5」が示すインスタンスへイベントが流れる。それゆえ、親世代選択部6cは、通信量T(3−5)が、通信帯域B(3−4)を超えているか判定する。通信量T(3−5)が「30」であり、通信帯域B(3−4)が「30」であるので、親世代選択部6cは、通信量T(3−5)が、通信帯域B(3−4)を超えていないと判定する。
また、図5の例では、先の図6の例に示すように、ノードID「4」が示すノードとノードID「5」が示すノードとの間の経路に、インスタンスID「4」が示すインスタンスから、インスタンスID「6」が示すインスタンスへイベントが流れる。また、図5の例では、先の図6の例に示すように、ノードID「4」が示すノードとノードID「5」が示すノードとの間の経路に、インスタンスID「4」が示すインスタンスから、インスタンスID「7」が示すインスタンスへイベントが流れる。また、図5の例では、先の図6の例に示すように、ノードID「4」が示すノードとノードID「5」が示すノードとの間の経路に、インスタンスID「5」が示すインスタンスから、インスタンスID「6」が示すインスタンスへイベントが流れる。また、図5の例では、先の図6の例に示すように、ノードID「4」が示すノードとノードID「5」が示すノードとの間の経路に、インスタンスID「5」が示すインスタンスから、インスタンスID「7」が示すインスタンスへイベントが流れる。それゆえ、親世代選択部6cは、通信量T(4−6)と通信量T(4−7)と通信量T(5−6)と通信量T(5−7)との和が、通信帯域B(4−5)を超えているか判定する。通信量T(4−6)、通信量T(4−7)、通信量T(5−6)及び通信量T(5−7)のそれぞれが「5」であり、通信帯域B(4−5)が「45」であるので、親世代選択部6cは、通信量T(4−6)と通信量T(4−7)と通信量T(5−6)と通信量T(5−7)との和「20」が、通信帯域B(4−5)を超えていないと判定する。なお、図5の例では、図6の例に示すように、インスタンスID「6」が示すインスタンスと、インスタンスID「8」が示すインスタントとは、同一のノードに配備される。このため、インスタンスID「6」が示すインスタンスと、インスタンスID「8」が示すインスタントとの間での通信は、経路を介したノード間では行われない。
以上のことから、インスタンスが実行された場合における通信量が通信帯域を超えている経路の数は「0」である。したがって、図14及び図15の例に示す各対応関係が内部メモリに記憶されている場合に、親世代選択部6cは、図5の例に示すような親世代に対してインスタンスが実行された場合における通信量が通信帯域を超えている経路の数「0」を算出する。
そして、親世代選択部6cは、処理負荷が処理能力を超えているノードの台数「0」と、通信量が通信帯域を超えている経路の数「0」との和「0」を制約評価値として算出する。
なお、親世代選択部6cは、処理負荷が処理能力を超えているノードの台数と、通信量が通信帯域を超えている経路の数とを、所定の重み定数で重み付けした値を制約評価値として算出することもできる。ここで、所定の重み定数について説明する。図16は、所定の重み定数の一例を示す図である。図16の例では、処理負荷が処理能力を超えているノードの台数に対する重み付け定数が「1」であり、通信量が通信帯域を超えている経路の数に対する重み付け定数が「5」である場合を示す。ここで、処理負荷が処理能力を超えているノードについては、周辺のノードにイベントの処理を移すことで簡易に処理負荷が処理能力を超えないようにすることができる。しかしながら、通信量が通信帯域を超えている経路については、高圧縮処理のインスタンスを配備したり、迂回路がある場合に迂回路上のノードにインスタンスを配備したりするなどの煩雑な処理を行うことで、通信量が通信帯域を超えないようにすることができる。それゆえ、通信量が通信帯域を超えている経路について通信量が通信帯域を超えないようにするために解を変更する場合は、処理負荷が処理能力を超えているノードについて処理負荷が処理能力を超えないように解を変更する場合と比べて、解が大幅に変更される。すなわち、通信量が通信帯域を超えている経路について通信量が通信帯域を超えないようにする場合は、処理負荷が処理能力を超えているノードについて処理負荷が処理能力を超えないようにする場合と比べて、困難であるといえる。そのため、本実施例では、処理負荷が処理能力を超えているノードの台数に対する重み付け定数よりも、通信量が通信帯域を超えている経路の数に対する重み付け定数を大きくすることで、通信量が通信帯域を超えているような違反の数が少なくなるようにする。
また、親世代選択部6cは、以下に説明するように、他の方法によって、制約評価値を算出することもできる。例えば、親世代選択部6cは、まず、自ノードに配備されたインスタンスを実行する場合におけるメモリの使用量が、自ノードのメモリの容量を超えているノードの台数を算出する。そして、親世代選択部6cは、インスタンスが実行された場合における通信レイテンシが、インスタンスごとに定められたレイテンシを超えているインスタンスの数を算出する。そして、親世代選択部6cは、算出したノードの台数と算出したインスタンスの数との和を制約評価値として算出する。
親世代選択部6cは、上述したメモリの使用量が自ノードのメモリの容量を超えているノードの台数と、上述した通信レイテンシがインスタンスごとに定められたレイテンシを超えているインスタンスの数とを重み付けして、制約評価値を算出することもできる。この際に用いられる重み付け定数は、例えば、図16に示すように、上述したメモリの使用量が自ノードのメモリの容量を超えているノードの台数に対しては、「1」である。また、上述した通信レイテンシがインスタンスごとに定められたレイテンシを超えているインスタンスの数に対しては、「5」である。この「1」と「5」のように、重み付け定数が異なる理由は、処理負荷が処理能力を超えているノードの台数に対する重み付け定数と通信量が通信帯域を超えている経路の数に対する重み付け定数とが異なる上述した理由と同様である。
そして、親世代選択部6cは、2つの親世代及び2つの次世代の中から、制約評価値が示す、制約に違反した数が少ない上位2つの世代を新たな親世代として選択する。例えば、制約評価値として、上述した処理負荷が処理能力を超えているノードの台数と、通信量が通信帯域を超えている経路の数との和を算出した場合には、かかる和の値が小さいほど制約に違反した数が少なくなる。そのため、親世代選択部6cは、2つの親世代及び2つの次世代の中から、制約評価値が小さい上位2つの世代を新たな親世代として選択する。そして、親世代選択部6cは、親世代記憶部5bに、2つの新たな親世代を格納して、親世代記憶部5bに記憶される2つの親世代を更新する。
また、参照したフラグの値が「3」である場合には、親世代選択部6cは、参照したフラグの値が「1」である場合と同様に、2つの親世代及び2つの次世代のそれぞれに対して、上述した評価値を算出する。また、参照したフラグの値が「3」である場合には、親世代選択部6cは、参照したフラグの値が「2」である場合と同様に、2つの親世代及び2つの次世代のそれぞれに対して、上述した制約評価値を算出する。
そして、親世代選択部6cは、評価値と制約評価値との和を新たな評価値として算出する。そして、親世代選択部6cは、新たな評価値が示す評価が高い上位2つの世代を新たな親世代として選択する。例えば、新たな評価値が小さくなるほど、評価が高くなる場合には、親世代選択部6cは、新たな評価値が小さい上位2つの世代を新たな親世代として選択する。そして、親世代選択部6cは、親世代記憶部5bに、2つの新たな親世代を格納して、親世代記憶部5bに記憶される2つの親世代を更新する。
なお、親世代選択部6cは、評価値と制約評価値とに対して所定の重み付けを行うことにより新たな評価値を算出し、2つの親世代及び2つの次世代の中から、算出した評価値が示す評価が高い上位2つの世代を新たな親世代として選択することもできる。
また、親世代選択部6cは、2つの親世代及び2つの次世代の中から、制約評価値が示す制約に違反した数が所定値(例えば3)以下の世代を特定し、特定した世代の中から、評価値が示す評価が高い上位2つの世代を新たな親世代として選択することもできる。
上述したように、参照したフラグの値が「1」、「2」及び「3」のいずれかの場合において、新たな親世代を親世代記憶部5bに格納した後、親世代選択部6cは、終了条件を満たすか否かを判定する。例えば、親世代選択部6cは、新たな親世代が所定回数以上更新されたか否かを判定し、新たな親世代が所定回数以上更新された場合には、終了条件を満たすと判定し、新たな親世代が所定回数以上更新されていない場合には、終了条件を満たさないと判定する。親世代選択部6cは、新たな親世代が所定回数以上更新されている間に、後述の最適解が更新されたか否かを判定し、最適解が更新された場合には終了条件を満たさないと判定し、最適解が更新されていない場合には終了条件を満たすと判定することもできる。
モード判定部6dは、モジュール配備決定処理におけるモードを判定する。モード判定部6dの一態様について説明する。モード判定部6dは、親世代選択部6cにより終了条件を満たさないと判定されると、まず、フラグ記憶部5gに記憶されたフラグの値を参照する。そして、モード判定部6dは、参照したフラグの値が「2」であるか否かを判定することにより、モジュール配備決定処理におけるモードが制約検索であるか否かを判定する。
モジュール配備決定処理におけるモードが制約検索であると判定した場合には、モード判定部6dは、親世代記憶部5bに記憶された2つの親世代を取得する。そして、モード判定部6dは、取得した2つの親世代が、制約評価値が示す、制約に違反した数が0であるか否かを判定する。2つの親世代とも、制約評価値が示す、制約に違反した数が0であると判定した場合には、モード判定部6dは、フラグ記憶部5gに記憶されたフラグの値を「3」に更新して、モジュール配備決定処理におけるモードを周辺検索のモードに設定する。
一方、モジュール配備決定処理におけるモードが制約検索でないと判定した場合には、モード判定部6dは、次世代が所定回数以上更新されている間に、親世代が更新されたか否かを判定する。次世代が所定回数以上更新されている間に、親世代が更新されていないと判定した場合には、モード判定部6dは、参照したフラグの値が「1」であるか否かを判定することにより、モジュール配備決定処理におけるモードが大域検索であるか否かを判定する。大域検索であると判定した場合には、モード判定部6dは、フラグ記憶部5gに記憶されたフラグの値を「2」に更新して、モジュール配備決定処理におけるモードを制約検索のモードに設定する。
また、大域検索でないと判定した場合には、モジュール配備決定処理におけるモードは、周辺検索である。この場合、モード判定部6dは、フラグ記憶部5gに記憶されたフラグの値を「1」に更新して、モジュール配備決定処理におけるモードを大域検索に設定する。また、最適解更新部6eにより最適解が更新された場合、または、2つの親世代の中に、制約評価値が示す、制約に違反した数が0であり、現在の最適解よりも評価が高い(評価値が低い)親世代が存在しないと判定された場合に、モード判定部6dは次の処理を行う。すなわち、モード判定部6dは、親世代記憶部5bに記憶された2つの親世代を取得し、取得した親世代のそれぞれを突然変異させて新たな2つの親世代を生成する。そして、モード判定部6dは、親世代記憶部5bに、2つの新たな親世代を格納して、親世代記憶部5bに記憶される2つの親世代を更新する。
最適解更新部6eは、最適解を更新する。最適解更新部6eの一態様について説明する。例えば、最適解更新部6eは、モード判定部6dにより、フラグ記憶部5gに記憶されたフラグの値が「1」に更新されて、モジュール配備決定処理におけるモードが大域検索に設定されると、次の処理を行う。すなわち、最適解更新部6eは、親世代記憶部5bに記憶された2つの親世代を取得する。そして、最適解更新部6eは、取得した2つの親世代の中に、制約評価値が示す、制約に違反した数が0であり、かつ、最適解記憶部5aに記憶された最適解よりも評価が高い親世代が存在するか否かを判定する。
取得した2つの親世代の中に、制約評価値が示す、制約に違反した数が0であり、かつ、最適解記憶部5aに記憶された最適解よりも評価が高い親世代が存在すると判定した場合には、最適解更新部6eは、次の処理を行う。すなわち、最適解更新部6eは、制約に違反した数が0であり、かつ、最適解記憶部5aに記憶された最適解よりも評価が高い親世代を、最適解として最適解記憶部5aに格納し、最適解記憶部5aに記憶される最適解を更新する。
最適解出力制御部6fは、最適解を出力するように制御する。最適解出力制御部6fの一態様について説明する。最適解出力制御部6fは、親世代選択部6cにより終了条件を満たさないと判定されると、最適解記憶部5aに記憶された最適解を取得し、取得した最適解を表示するように、出力部3を制御する。これにより、最適解が出力部3に表示される。
モジュール出力制御部6gは、インスタンスを下位ノードに出力するように制御する。モジュール出力制御部6gの一態様について説明する。モジュール出力制御部6gは、入力部2から最適解が示すようにインスタンスをノードに配備する指示が入力されると、最適解記憶部5aから最適解を取得する。そして、モジュール出力制御部6gは、モジュール記憶部5eから全てのインスタンスを取得する。そして、モジュール出力制御部6gは、最適解が示すようにインスタンスをノードに送信する指示を通信部4に送信する。これにより、通信部4が、最適解が示すようにインスタンスをノードに送信する。なお、インスタンスを受信した各ノードは、受信したインスタンスを自ノードに配備する。
センサノード21の機能構成について説明する。図17Aは、実施例に係るセンサノードの機能構成の一例を示す図である。図17Aに示すように、センサノード21は、制御部70を有する。制御部70は、センサノード21に搭載されたセンサによってセンシングされたデータをイベントとして、GWノード22及びネットワーク23を介して、サーバノード1へ送信する。また、制御部70は、サーバノード1から送信されたインスタンスを受信すると、受信したインスタンスを自ノードに配備する。これにより、制御部70は、受信したインスタンスを実行することができる。
次に、GWノード22の機能構成について説明する。図17Bは、実施例に係るGWノードの機能構成の一例を示す図である。図17Bに示すように、GWノード22は、制御部71を有する。制御部71は、センサノード21から送信されたイベントを受信すると、受信したイベントをネットワーク23を介して、サーバノード1へ送信する。また、制御部71は、サーバノード1から送信されたインスタンスを受信すると、受信したインスタンスを自ノードに配備する。これにより、制御部71は、受信したインスタンスを実行することができる。
[処理の流れ]
次に、実施例に係るサーバノード1が実行するモジュール配備決定処理の流れについて説明する。図18A及び図18Bは、実施例に係るモジュール配備決定処理の手順を示すフローチャートである。実施例に係るモジュール配備決定処理は、例えば、入力部2から、モジュール配備決定処理を実行するための指示が制御部6に入力された場合に、制御部6により実行される。
次に、実施例に係るサーバノード1が実行するモジュール配備決定処理の流れについて説明する。図18A及び図18Bは、実施例に係るモジュール配備決定処理の手順を示すフローチャートである。実施例に係るモジュール配備決定処理は、例えば、入力部2から、モジュール配備決定処理を実行するための指示が制御部6に入力された場合に、制御部6により実行される。
図18Aに示すように、初期解生成部6aは、トポロジ記憶部5dからトポロジを取得する(S101)。そして、初期解生成部6aは、モジュール定義記憶部5fから、モジュール定義記憶部5fに記憶された定義を取得する(S102)。
そして、初期解生成部6aは、初期解を生成する(S103)。そして、初期解生成部6aは、生成した初期解を1つ目の親世代として、親世代記憶部5bに格納する(S104)。
そして、初期解生成部6aは、遺伝的アルゴリズムを用いて、1つ目の親世代から、突然変異によって新たな解を生成する(S105)。そして、初期解生成部6aは、生成した解を2つ目の親世代として親世代記憶部5bに格納する(S106)。
そして、初期解生成部6aは、フラグ記憶部5gに記憶されたフラグに「1」を設定する(S107)。そして、次世代生成部6bは、フラグ記憶部5gに記憶されたフラグを参照する(S108)。
そして、次世代生成部6bは、フラグの値が「1」であるか否かを判定する(S109)。フラグの値が「1」である場合(S109;Yes)には、次世代生成部6bは、親世代記憶部5bに記憶された2つの親世代を取得する(S110)。そして、次世代生成部6bは、大域検索の場合における確率情報が示す各インスタンスIDを選択する確率(交叉選択確率)にしたがって、2つの親世代のインスタンスIDを、所定の交叉数(例えば、「3」)分だけ選択する(S111)。
次世代生成部6bは、一方の親世代における選択したインスタンスIDに対応するノードIDと、他方の親世代における選択したインスタンスIDに対応するノードIDとを入れ替えることで、2つの親世代を交叉させて2つの次世代を生成する(S112)。
次世代生成部6bは、フラグの値が「1」でない場合(S109;No)、すなわち、フラグの値が「2」または「3」である場合には、親世代記憶部5bに記憶された2つの親世代を取得する(S113)。そして、次世代生成部6bは、制約検索及び周辺検索の場合における確率情報が示す各インスタンスIDを選択する確率(交叉選択確率)にしたがって、2つの親世代のインスタンスIDを、所定の交叉数(例えば、「3」)分だけ選択する(S114)。
次世代生成部6bは、一方の親世代における選択したインスタンスIDに対応するノードIDと、他方の親世代における選択したインスタンスIDに対応するノードIDとを入れ替えることで、2つの親世代を交叉させて2つの次世代を生成する(S115)。
そして、次世代生成部6bは、所定の確率(0.1%〜5%)で、生成した次世代を突然変異させて新たな次世代を生成する(S116)。
そして、次世代生成部6bは、生成した2つの次世代を次世代記憶部5cに格納する(S117)。なお、次世代記憶部5cにすでに2つの次世代が記憶されている場合には、次世代生成部6bは、次世代記憶部5cにすでに記憶された2つの次世代を、生成した2つの次世代で更新する。
そして、親世代選択部6cは、親世代記憶部5bに記憶された2つの親世代、及び、次世代記憶部5cに記憶された2つの次世代を取得する(S118)。そして、親世代選択部6cは、フラグ記憶部5gに記憶されたフラグを参照する(S119)。
そして、図18Bに示すように、親世代選択部6cは、フラグの値が「1」であるか否かを判定する(S120)。フラグの値が「1」である場合(S120;Yes)には、親世代選択部6cは、2つの親世代のそれぞれに対して、親世代が示すようにノードにインスタンスを配備してノードがインスタンスを実行する場合の評価値を算出する。さらに、親世代選択部6cは、2つの次世代のそれぞれに対して、次世代が示すようにノードにインスタンスを配備してノードがインスタンスを実行する場合の評価値を算出する(S121)。
そして、親世代選択部6cは、2つの親世代及び2つの次世代の中から、評価値が示す評価が高い上位2つの世代を新たな親世代として選択する(S122)。そして、親世代選択部6cは、親世代記憶部5bに、2つの新たな親世代を格納して、親世代記憶部5bに記憶される2つの親世代を更新する(S123)。
また、フラグの値が「1」でない場合(S120;No)には、親世代選択部6cは、フラグの値が「2」であるか否かを判定する(S124)。フラグの値が「2」である場合(S124;Yes)には、親世代選択部6cは、2つの親世代のそれぞれに対して、親世代が示すようにノードにモジュールを配備してノードがインスタンスを実行する場合の制約評価値を算出する。さらに、親世代選択部6cは、2つの次世代のそれぞれに対して、次世代が示すようにノードにモジュールを配備してノードがインスタンスを実行する場合の制約評価値を算出する(S125)。
そして、親世代選択部6cは、2つの親世代及び2つの次世代の中から、制約評価値が示す、制約に違反した数が少ない上位2つの世代を新たな親世代として選択する(S126)。そして、親世代選択部6cは、親世代記憶部5bに、2つの新たな親世代を格納して、親世代記憶部5bに記憶される2つの親世代を更新する(S127)。
また、フラグの値が「2」でない場合(S124;No)、すなわち、フラグの値が「3」である場合には、親世代選択部6cは、次の処理を行う。すなわち、親世代選択部6cは、参照したフラグの値が「1」である場合と同様に、2つの親世代及び2つの次世代のそれぞれに対して、上述した評価値を算出する(S128)。また、親世代選択部6cは、参照したフラグの値が「2」である場合と同様に、2つの親世代及び2つの次世代のそれぞれに対して、上述した制約評価値を算出する(S129)。
そして、親世代選択部6cは、評価値と制約評価値とから新たな評価値を算出する(S130)。そして、親世代選択部6cは、新たな評価値が示す評価が高い上位2つの世代を新たな親世代として選択する(S131)。そして、親世代選択部6cは、親世代記憶部5bに、2つの新たな親世代を格納して、親世代記憶部5bに記憶される2つの親世代を更新する(S132)。
そして、親世代選択部6cは、上述した終了条件を満たすか否かを判定する(S133)。終了条件を満たさない場合(S133;No)には、モード判定部6dは、フラグ記憶部5gに記憶されたフラグの値を参照する(S134)。そして、モード判定部6dは、参照したフラグの値が「2」であるか否かを判定することにより、モジュール配備決定処理におけるモードが制約検索であるか否かを判定する(S135)。
モードが制約検索である場合(S135;Yes)には、モード判定部6dは、親世代記憶部5bに記憶された2つの親世代を取得する(S136)。そして、モード判定部6dは、取得した2つの親世代が、制約評価値が示す、制約に違反した数が0であるか否かを判定する(S137)。2つの親世代とも、制約評価値が示す、制約に違反した数が0である場合(S137;Yes)には、モード判定部6dは、次の処理を行う。すなわち、モード判定部6dは、フラグ記憶部5gに記憶されたフラグの値を「3」に更新して、モジュール配備決定処理におけるモードを周辺検索のモードに設定し(S138)、S108に戻る。また、2つの親世代うち少なくとも1つの親世代が、制約評価値が示す、制約に違反した数が0でない場合(S137;No)にも、モード判定部6dは、S108に戻る。
一方、モードが制約検索でない場合(S135;No)には、モード判定部6dは、次世代が所定回数以上更新されている間に、親世代が更新されたか否かを判定する(S139)。次世代が所定回数以上更新されている間に、親世代が更新されていない場合(S139;No)には、モード判定部6dは、次の処理を行う。すなわち、モード判定部6dは、参照したフラグの値が「1」であるか否かを判定することにより、モジュール配備決定処理におけるモードが大域検索であるか否かを判定する(S140)。モードが大域検索である場合(S140;Yes)には、モード判定部6dは、フラグ記憶部5gに記憶されたフラグの値を「2」に更新して、モジュール配備決定処理におけるモードを制約検索のモードに設定し(S141)、S108に戻る。
また、次世代が所定回数以上更新されている間に、親世代が更新されている場合(S139;Yes)には、モード判定部6dは、S108に戻る。
また、モードが大域検索でない場合(S140;No)には、モード判定部6dは、フラグ記憶部5gに記憶されたフラグの値を「1」に更新して、モジュール配備決定処理におけるモードを大域検索に設定する(S142)。そして、最適解更新部6eは、親世代記憶部5bに記憶された2つの親世代を取得する(S143)。そして、最適解更新部6eは、取得した2つの親世代の中に、制約評価値が示す、制約に違反した数が0であり、かつ、最適解記憶部5aに記憶された最適解よりも評価が高い親世代が存在するか否かを判定する(S144)。
取得した2つの親世代の中に、制約評価値が示す、制約に違反した数が0であり、かつ、最適解記憶部5aに記憶された最適解よりも評価が高い親世代が存在する場合(S144;Yes)には、最適解更新部6eは、次の処理を行う。すなわち、最適解更新部6eは、制約に違反した数が0であり、かつ、最適解記憶部5aに記憶された最適解よりも評価が高い親世代を最適解として最適解記憶部5aに格納し、最適解記憶部5aに記憶される最適解を更新する(S145)そして、最適解更新部6eは、S108に戻る。
また、取得した2つの親世代の中に、制約評価値が示す、制約に違反した数が0であり、かつ、最適解記憶部5aに記憶された最適解よりも評価が高い親世代が存在しない場合(S144;No)には、最適解更新部6eは、S108に戻る。
また、終了条件を満たさない場合(S133;No)には、最適解出力制御部6fは、最適解記憶部5aに記憶された最適解を取得し、取得した最適解を表示するように、出力部3を制御し(S146)、モジュール配備決定処理を終了する。
図19は、実施例に係るサーバノードが実行する処理の一例を説明するための図である。図19の例は、親世代及び次世代の各解が領域90の中心に位置するほど評価値が低くなり(評価が高くなり)、各解が領域90の中心から外れるほど評価値が高くなる(評価が低くなる)ような場合を示す。なお、評価値が低くなるほど評価が高くなり、評価値が高くなるほど評価が低くなるような評価値は、例えば、コストの値などであり、このような評価値は、コスト評価値とも称される。また、図19の例では、有制約領域91は、制約に違反する数が0以上となる領域を示し、この領域に解が存在するときは制約違反となる。図19の例に示すように、サーバノード1は、大域検索のモードにおいて、評価値及び制約評価値のうち、制約評価値については無視して、評価値に基づいて、評価が高くなるように解を次々と生成する。そして、サーバノード1は、制約検索のモードにおいて、評価値及び制約評価値のうち、評価値については無視して、制約評価値に基づいて、制約に違反する数がより少なくなるように解を次々と生成する。そして、サーバノード1は、周辺検索のモードにおいて、評価値及び制約評価値に基づいて、制約に違反する数が0であり、かつ、評価値が最も低くなるような最適解を決定する。そのため、従来技術のように、下位ノードと、下位ノードに対して配備されたイベントを処理するモジュールとの全ての組合せについて各種の評価値を算出することなく、どのノードにどのモジュールを配備するかを決定することができる。したがって、実施例に係るサーバノード1によれば、簡易に、どのノードにどのモジュールを配備するかを決定することができる。
また、サーバノード1は、モードが大域検索のモードである場合には、制約検索のモード及び周辺検索のモードよりも、モジュールの処理フローにおいてイベントが流れる方向における上流側のインスタンスのインスタンスIDを高い確率で選択する。そして、サーバノード1は、選択したインスタンスIDが示すインスタンスを配備するノードを変更することで、次世代を生成する。上述したように、配備先のノードが変更されるインスタンスが、イベントが流れる方向における上流側であるほど、親世代と次世代とで評価値が大きく変動する可能性が高くなる。それゆえ、サーバノード1は、大域検索のモードである場合には、制約検索のモード及び周辺検索のモードよりも、解を大きく変化させることができる。
また、サーバノード1は、モードが制約検索のモードである場合に、処理負荷が処理能力を超えているノードの台数と、通信量が通信帯域を超えている経路の数とを、所定の重み定数で重み付けした値を制約評価値として算出する。例えば、処理負荷が処理能力を超えているノードの台数に対する重み付け定数よりも、通信量が通信帯域を超えている経路の数に対する重み付け定数を大きくすることで、優先的に通信量が通信帯域を超えているような違反の数が少なくなるようにすることができる。
なお、本実施例に係るサーバノード1は、モードの観点から機能的に表すと、各モードに対応する処理部を有する。図20は、実施例に係るサーバノードの機能構成の他の例を示すブロック図である。図20の例に示すように、サーバノード1は、第1の決定部80、第2の決定部80、第3の決定部80を有する。第1の決定部80は、大域検索のモードにおける各処理を実行する処理部である。第2の決定部81は、制約検索のモードにおける各処理を実行する処理部である。第3の決定部82は、周辺検索のモードにおける各処理を実行する処理部である。
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
例えば、サーバノード1は、モードが周辺検索のモードである場合に、突然変異を行って次世代を生成する際には、親世代と次世代とが制約評価値という観点から近くに位置するように、次のような処理を行うこともできる。すなわち、サーバノード1は、突然変異対象のインスタンスIDが配備されたノードからの他のノードのホップ数を算出する。そして、サーバノード1は、他のノードごとに、他のノードのホップ数の逆数を選択優先度として算出する。そして、サーバノード1は、他のノードごとに、選択優先度を他の全てのノードの選択優先度の総和で除した値(選択優先度/他の全てのノードの選択優先度の総和)を、選択確率として算出する。そして、サーバノード1は、選択確率にしたがって、他のノードを選択し、選択したノードのノードIDを突然変異対象のインスタンスIDが配備されるノードのノードIDに設定する。これにより、サーバノード1は、モードが周辺検索のモードである場合に、親世代と次世代とが制約評価値という観点から近くに位置するように、突然変異を行うことができる。
また、各実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。また、各実施例において説明した各処理のうち、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理を任意に細かくわけたり、あるいはまとめたりすることができる。また、ステップを省略することもできる。
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理の順番を変更できる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
[モジュール配備決定プログラム]
また、上記の各実施例で説明したサーバノード1の各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図21を用いて、上記の実施例で説明したサーバノード1と同様の機能を有するモジュール配備決定プログラムを実行するコンピュータの一例を説明する。図21は、モジュール配備決定プログラムを実行するコンピュータを示す図である。
また、上記の各実施例で説明したサーバノード1の各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図21を用いて、上記の実施例で説明したサーバノード1と同様の機能を有するモジュール配備決定プログラムを実行するコンピュータの一例を説明する。図21は、モジュール配備決定プログラムを実行するコンピュータを示す図である。
図21に示すように、コンピュータ300は、CPU310、ROM320、HDD(Hard Disk Drive)330、RAM340を有する。これら各機器310〜340は、バス350を介して接続されている。
ROM320には、OS(Operating System)などの基本プログラムが記憶されている。また、HDD330には、初期解生成部6aと、次世代生成部6bと、親世代選択部6cと、モード判定部6dと、最適解更新部6eと、最適解出力制御部6fと、モジュール出力制御部6gと同様の機能を発揮するモジュール配備決定プログラム330aが予め記憶される。
そして、CPU310が、モジュール配備決定プログラム330aをHDD330から読み出して実行する。
なお、上記したモジュール配備決定プログラム330aについては、必ずしも最初からHDD330に記憶させておく必要はない。
例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」にモジュール配備決定プログラム330aを記憶させておく。そして、コンピュータ300がこれらからモジュール配備決定プログラム330aを読み出して実行するようにしてもよい。
さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ300に接続される「他のコンピュータ(またはサーバ)」などにモジュール配備決定プログラム330aを記憶させておく。そして、コンピュータ300がこれらからモジュール配備決定プログラム330aを読み出して実行するようにしてもよい。
1 サーバノード
5a 最適解記憶部
5b 親世代記憶部
5c 次世代記憶部
5d トポロジ記憶部
5f モジュール定義記憶部
5g フラグ記憶部
6 制御部
6a 初期解生成部
6b 次世代生成部
6c 親世代選択部
6d モード判定部
6e 最適解更新部
6f 最適解出力制御部
5a 最適解記憶部
5b 親世代記憶部
5c 次世代記憶部
5d トポロジ記憶部
5f モジュール定義記憶部
5g フラグ記憶部
6 制御部
6a 初期解生成部
6b 次世代生成部
6c 親世代選択部
6d モード判定部
6e 最適解更新部
6f 最適解出力制御部
Claims (7)
- 検知したイベントを送信するか、または、前記イベントを中継する複数のノードが接続されたネットワークを示すネットワーク情報、及び、前記イベントを加工処理するモジュールを識別する識別子を記憶する記憶部と、
前記モジュールが前記複数のノードのうちのいずれのノードに配備されるのかを示す第1の情報、及び、前記第1の情報が示す前記モジュールが配備される前記ノードを変更した第2の情報の各情報における所定の評価度合いを示す評価値に基づいて、前記第1の情報及び前記第2の情報の各情報の中から、前記評価度合いが高い上位所定個の情報を決定する第1の決定部と、
前記第1の決定部により決定された情報、及び、該情報が示す前記モジュールが配備される前記ノードを変更した第3の情報の各情報の中から、所定数の所定の条件のうち合致しない条件の数が少ない上位所定個の情報を決定する第2の決定部と、
前記第2の決定部により決定された情報、及び、該情報が示す前記モジュールが配備される前記ノードを変更した第4の情報の各情報における前記所定の評価度合いを示す評価値と、前記第2の決定部により決定された情報、及び、前記第4の情報の各情報における前記所定数の所定の条件のうち合致しない条件の数とに基づいて、前記第2の決定部により決定された情報、及び、前記第4の情報の各情報の中から、該評価値及び該合致しない条件の数が所定の基準を満たす情報を決定する第3の決定部と、
前記第3の決定部により決定された情報を出力する出力部と、
を有することを特徴とするモジュール配備決定装置。 - 前記第2の決定部は、前記モジュールが示す処理フローにおける前記イベントが送信される方向において上流側に位置するモジュールであって、前記第1の決定部により決定された情報が示すモジュールを配置するノードを所定の確率で変更することにより、前記第3の情報を生成し、
前記第3の決定部は、前記モジュールが示す処理フローにおける前記イベントが送信される方向において上流側に位置するモジュールであって、前記第2の決定部により決定された情報が示すモジュールを配置するノードを前記所定の確率で変更することにより、前記第4の情報を生成し、
前記第1の決定部は、前記モジュールが示す処理フローにおける前記イベントが送信される方向において上流側に位置するモジュールであって、前記第1の情報が示すモジュールを配置するノードを前記所定の確率よりも高い確率で変更することにより、前記第2の情報を生成する
ことを特徴とする請求項1に記載のモジュール配備決定装置。 - 前記第1の決定部は、さらに、所定回数分の前記第1の情報を生成するまで、前記第3の決定部により情報が決定されるたびに、前記第3の決定部により決定された情報が示す前記モジュールが配備される前記ノードを変更して新たな第1の情報を生成し、該新たな第1の情報が示す前記モジュールが配備される前記ノードを変更して新たな第2の情報を生成し、該新たな第1の情報及び該新たな第2の情報の各情報における前記評価値に基づいて、該新たな第1の情報及び該新たな第2の情報の各情報の中から、前記評価度合いが高い上位所定個の情報を決定し、
前記第2の決定部は、前記第1の決定部により情報が新たに決定されるたびに、前記第1の決定部により決定された新たな情報が示す前記モジュールが配備される前記ノードを変更して新たな第3の情報を生成し、前記第1の決定部により決定された新たな情報、及び、該新たな第3の情報の各情報の中から、前記所定数の所定の条件のうち合致しない条件の数が少ない上位所定個の情報を決定し、
前記第3の決定部は、前記第2の決定部により情報が新たに決定されるたびに、前記第2の決定部により決定された新たな情報が示す前記モジュールが配備される前記ノードを変更して新たな第4の情報を生成し、前記第2の決定部により決定された新たな情報、及び、該新たな第4の情報の各情報の中から、前記評価値及び前記合致しない条件の数が前記所定の基準を満たす情報を決定する
ことを特徴とする請求項1または2に記載のモジュール配備決定装置。 - 前記第2の決定部は、前記合致しない条件の種類に応じた重みを用いて、前記合致しない条件を重み付けした値を、前記合致しない条件の数として算出する
ことを特徴とする請求項1〜3のいずれか1つに記載のモジュール配備決定装置。 - 前記第1の決定部は、遺伝的アルゴリズムを用いて、前記第1の情報を親世代とした場合に、次世代として前記第2の情報を生成し、
前記第2の決定部は、遺伝的アルゴリズムを用いて、前記第1の決定部により決定された情報を親世代とした場合に、次世代として前記第3の情報を生成し、
前記第3の決定部は、遺伝的アルゴリズムを用いて、前記第2の決定部により決定された情報を親世代とした場合に、次世代として前記第4の情報を生成する
ことを特徴とする請求項1〜4のいずれか1つに記載のモジュール配備決定装置。 - 複数のノードと、情報処理装置とを有するシステムであって、
前記複数のノードのそれぞれは、
検知したイベントを送信するか、または、前記イベントを中継する制御部
を有し、
前記情報処理装置は、
前記複数のノードが接続されたネットワークを示すネットワーク情報、及び、前記イベントを加工処理するモジュールを識別する識別子を記憶する記憶部と、
前記モジュールが前記複数のノードのうちのいずれのノードに配備されるのかを示す第1の情報、及び、前記第1の情報が示す前記モジュールが配備される前記ノードを変更した第2の情報の各情報における所定の評価度合いを示す評価値に基づいて、前記第1の情報及び前記第2の情報の各情報の中から、前記評価度合いが高い上位所定個の情報を決定する第1の決定部と、
前記第1の決定部により決定された情報、及び、該情報が示す前記モジュールが配備される前記ノードを変更した第3の情報の各情報の中から、所定数の所定の条件のうち合致しない条件の数が少ない上位所定個の情報を決定する第2の決定部と、
前記第2の決定部により決定された情報、及び、該情報が示す前記モジュールが配備される前記ノードを変更した第4の情報の各情報における前記所定の評価度合いを示す評価値と、前記第2の決定部により決定された情報、及び、前記第4の情報の各情報における前記所定数の所定の条件のうち合致しない条件の数とに基づいて、前記第2の決定部により決定された情報、及び、前記第4の情報の各情報の中から、該評価値及び該合致しない条件の数が所定の基準を満たす情報を決定する第3の決定部と、
前記第3の決定部により決定された情報を出力する出力部と、
を有する
ことを特徴とするモジュール配備決定システム。 - コンピュータが、
検知したイベントを送信するか、または、前記イベントを中継する複数のノードが接続されたネットワークを示すネットワーク情報、及び、前記イベントを加工処理するモジュールを識別する識別子を記憶する記憶部の記憶内容に基づいて決定された、前記モジュールが前記複数のノードのうちのいずれのノードに配備されるのかを示す第1の情報、及び、前記第1の情報が示す前記モジュールが配備される前記ノードを変更した第2の情報の各情報における所定の評価度合いを示す評価値に基づいて、前記第1の情報及び前記第2の情報の各情報の中から、前記評価度合いが高い上位所定個の情報を決定し、
決定された前記情報、及び、該情報が示す前記モジュールが配備される前記ノードを変更した第3の情報の各情報の中から、所定数の所定の条件のうち合致しない条件の数が少ない上位所定個の情報を決定し、
前記所定数の所定の条件のうち合致しない条件の数が少ない上位所定個の情報、及び、該情報が示す前記モジュールが配備される前記ノードを変更した第4の情報の各情報における前記所定の評価度合いを示す評価値と、前記所定数の所定の条件のうち合致しない条件の数が少ない上位所定個の情報、及び、前記第4の情報の各情報における前記所定数の所定の条件のうち合致しない条件の数とに基づいて、前記評価度合いが高い上位所定個の情報及び前記第3の情報の各情報の中から決定された前記合致しない条件の数が少ない上位所定個の情報、及び、前記第4の情報の各情報の中から、該評価値及び該合致しない条件の数が前記所定の基準を満たす情報を決定する
処理を実行することを特徴とするモジュール配備決定方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013147028A JP2015019338A (ja) | 2013-07-12 | 2013-07-12 | モジュール配備決定装置、モジュール配備決定システム及びモジュール配備決定方法 |
US14/310,336 US20150016267A1 (en) | 2013-07-12 | 2014-06-20 | Modular arrangement decision device, modular arrangement decision system, and modular arrangement decision method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013147028A JP2015019338A (ja) | 2013-07-12 | 2013-07-12 | モジュール配備決定装置、モジュール配備決定システム及びモジュール配備決定方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015019338A true JP2015019338A (ja) | 2015-01-29 |
Family
ID=52277010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013147028A Withdrawn JP2015019338A (ja) | 2013-07-12 | 2013-07-12 | モジュール配備決定装置、モジュール配備決定システム及びモジュール配備決定方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20150016267A1 (ja) |
JP (1) | JP2015019338A (ja) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3665460B2 (ja) * | 1997-12-05 | 2005-06-29 | 富士通株式会社 | 分散自律協調型の応答時間チューニングによる経路選択システム、方法、及び記録媒体 |
JP3449923B2 (ja) * | 1998-06-02 | 2003-09-22 | 富士通株式会社 | ネットワークトポロジー設計装置及びネットワークトポロジー設計方法並びにネットワークトポロジー設計プログラムを記録した記録媒体 |
US7092378B1 (en) * | 2001-12-10 | 2006-08-15 | At & T Corp. | System for utilizing a genetic algorithm to provide constraint-based routing of packets in a communication network |
US20090303888A1 (en) * | 2007-05-03 | 2009-12-10 | Honeywell International Inc. | Method and system for optimizing wireless networks through feedback and adaptation |
US9336774B1 (en) * | 2012-04-20 | 2016-05-10 | Google Inc. | Pattern recognizing engine |
-
2013
- 2013-07-12 JP JP2013147028A patent/JP2015019338A/ja not_active Withdrawn
-
2014
- 2014-06-20 US US14/310,336 patent/US20150016267A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20150016267A1 (en) | 2015-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105075200B (zh) | 在软件定义网络中支持任意路由标准 | |
US9565108B2 (en) | Distributed node migration between routing domains | |
TWI445361B (zh) | 網路伺服器及其平均負載的路由方法 | |
CN108011817A (zh) | 一种对电力通信专网业务路由进行重部署的方法及系统 | |
JP2014533071A (ja) | ファットツリートポロジーにおけるスイッチ間のデッドロックフリールーティングを提供するためのシステムおよび方法 | |
JP6478669B2 (ja) | アクセスポイント位置最適化装置及び方法 | |
CN110679120B (zh) | 通信网络节点 | |
Ashraf et al. | TOPSIS-based service arbitration for autonomic internet of things | |
JP6927072B2 (ja) | 経路選択装置、経路選択方法及びプログラム | |
JP2009296211A (ja) | ネットワーク設計装置、ネットワーク設計方法およびネットワーク設計システム | |
CN104283807A (zh) | 一种te隧道建立方法和装置 | |
Weikert et al. | Multi-objective task allocation for wireless sensor networks | |
Chang et al. | CROP: Community-relevance-based opportunistic routing in delay tolerant networks | |
JP5510340B2 (ja) | 輻輳通知方法、輻輳通知装置および輻輳通知プログラム | |
JP2011091751A (ja) | マルチエージェントシステムを用いた候補トポロジ生成方法とトポロジ生成方法およびトポロジ生成システムならびにプログラム | |
JP5810899B2 (ja) | 無線通信装置、無線通信プログラムおよび無線通信方法 | |
JP2015019338A (ja) | モジュール配備決定装置、モジュール配備決定システム及びモジュール配備決定方法 | |
Yasin et al. | Reliable multipath flow for link failure recovery in 5G networks using SDN paradigm | |
JP5927983B2 (ja) | イベント収集方法、イベント収集プログラム及び情報処理装置 | |
Rohrer et al. | Path diversification for future internet end-to-end resilience and survivability | |
JP5835007B2 (ja) | イベント収集方法、イベント収集プログラム及び情報処理装置 | |
US20160380873A1 (en) | Shortest path routing in single-channel networks with aggregating and non-aggregating nodes | |
Srinivasappa et al. | An enhanced QoS-aware multipath routing protocol for real-time IoT applications in MANETs | |
JPWO2018074043A1 (ja) | 収容形態探索装置、収容形態探索方法及びプログラム | |
Link et al. | Simbetage: Utilizing temporal changes in social networks for delay/disconnection tolerant networking |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160405 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20161114 |