(57)【要約】【課題】電子装置が通信を行う際のレイテンシを軽減するネットワークを設計することを目的とする。【解決手段】設計支援装置は、ネットワークに接続するノードの数と、各ノードに接続されるネットワークの数と、ノードと接続されるスイッチに接続されるノードの数との入力を受け付ける。また、設計支援装置は、受け付けたノードの数と、ネットワークの数と、各スイッチ２０ａ〜２０ｊに接続されるノードの数とに基づいて、各ネットワークが有するスイッチの数を算出する。また、設計支援措置は、ネットワークごとに、算出した数のスイッチのうちいずれかのスイッチに各ノードが接続され、かつ、全てのネットワークに含まれる各終端装置にそれぞれ異なる組合せのノードが接続されるように、各スイッチに接続されるノードを特定する。そして、設計支援装置は、特定したノードをスイッチに接続する旨の接続情報を出力する。【選択図】図６
2015070439.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続するノードの数と、各ノードに接続されるネットワークの数と、ノード間の通信を中継する中継装置のうち前記ノードと接続される中継装置である終端装置に接続されるノードの数との入力を受け付ける受付部と、
前記受付部が受け付けた前記ノードの数と、前記ネットワークの数と、前記終端装置に接続されるノードの数とに基づいて、各ネットワークが有する終端装置の数を算出する算出部と、
前記ネットワークごとに、前記算出部が算出した数の終端装置のいずれかに各ノードが接続され、かつ、全てのネットワークに含まれる各終端装置にそれぞれ異なる組合せのノードが接続されるように、各終端装置に接続されるノードを特定する特定部と、
前記特定部が特定したノードを前記終端装置に接続する旨の接続情報を出力する出力部と
を有することを特徴とする設計支援装置。
【請求項２】
前記算出部は、前記受付部が受け付けたネットワークの数が２である場合は、前記受付部が受け付けたノードの数を前記受付部が受け付けた前記終端装置に接続されるノードの数で除算した数よりも大きい整数のうち、値が最小の整数を算出し、
前記特定部は、前記受付部が受け付けた前記終端装置に接続されるノードの数を各行の要素数とし、前記算出部が算出した前記終端装置の数を各列の要素数とする行列形式の番号を前記受付部が受け付けた数のノードに付与し、第１のネットワークに含まれる各終端装置に接続されるノードの組として、同一の行番号が付与されたノードの組を特定し、第２のネットワークに含まれる各終端装置に接続されるノードの組として、行番号と列番号とが１ずつ異なる番号が付与されたノードの組を特定する
ことを特徴とする請求項１に記載の設計支援装置。
【請求項３】
前記算出部は、前記受付部が受け付けたノードの数を前記受付部が受け付けた前記終端装置に接続されるノードの数で除算した数よりも大きい整数のうち、前記受付部が受け付けたネットワーク数以下の整数で割り切れない最小の整数を算出し、
前記特定部は、前記受付部が受け付けた前記終端装置に接続されるノードの数を各行の要素数とし、前記算出部が算出した前記終端装置の数を各列の要素数とする行列形式の番号を前記受付部が受け付けた数のノードに付与し、前記受付部が受け付けた数のネットワークに０から始まる整数番号を付与し、各ネットワークに含まれる各終端装置に接続されるノードの組として、列番号が１つ異なる度に、行番号が前記ネットワークに付与された整数番号と同じ値だけ異なる番号が付与されたノードの組を特定する
ことを特徴とする請求項１に記載の設計支援装置。
【請求項４】
前記算出部は、前記受付部が受け付けたノードの数を前記受付部が受け付けた前記終端装置に接続されるノードの数で除算した値以上の整数であって、前記受付部が受け付けたネットワーク数以下の整数で割り切れない値、および、素数のべき乗となる値のうち最小の整数を算出し、
前記特定部は、前記受付部が受け付けた前記終端装置に接続されるノードの数を各行の要素数とし、前記算出部が算出した前記終端装置の数を各列の要素数とする行列形式の番号を前記受付部が受け付けた数のノードに付与し、前記算出部が算出した整数が素数のべき乗となる値である場合は、前記算出部が算出した整数を行数とする個別の相互直行ラテン方格を各ネットワークに対応付け、前記ネットワークごとに、当該ネットワークと対応付けられた相互直行ラテン方格の各要素のうち、値が同一となる要素と同一の行番号および列番号が付与されたノードの組を前記終端装置に接続されるノードの組として特定することを特徴とする請求項１または３に記載の設計支援装置。
【請求項５】
行数が素数のべき乗となる相互直行ラテン方格を記憶する記憶部を有し、
前記特定部は、前記記憶部が記憶する相互直行ラテン方格のうち、行数が前記算出部が算出した整数と同じ相互直行ラテン方格を用いて、前記終端装置に接続されるノードの組を特定することを特徴とする請求項４に記載の設計支援装置。
【請求項６】
コンピュータに、
ネットワークに接続するノードの数と、各ノードに接続されるネットワークの数と、ノード間の通信を中継する中継装置のうち前記ノードと接続される中継装置である終端装置に接続されるノードの数との入力を受け付け、
受け付けた前記ノードの数と、前記ネットワークの数と、前記終端装置に接続されるノードの数とに基づいて、各ネットワークが有する終端装置の数を算出し、
前記ネットワークごとに、算出した数の終端装置のうちいずれかの終端装置に各ノードが接続され、かつ、全てのネットワークに含まれる各終端装置にそれぞれ異なる組合せのノードが接続されるように、各終端装置に接続されるノードを特定し、
特定したノードを前記終端装置に接続する旨の接続情報を出力する
処理を実行させることを特徴とする設計支援プログラム。
【請求項７】
コンピュータが、
ネットワークに接続するノードの数と、各ノードに接続されるネットワークの数と、ノード間の通信を中継する中継装置のうち前記ノードと接続される中継装置である終端装置に接続されるノードの数との入力を受け付け、
受け付けた前記ノードの数と、前記ネットワークの数と、前記終端装置に接続されるノードの数とに基づいて、各ネットワークが有する終端装置の数を算出し、
前記ネットワークごとに、算出した数の終端装置のうちいずれかの終端装置に各ノードが接続され、かつ、全てのネットワークに含まれる各終端装置にそれぞれ異なる組合せのノードが接続されるように、各終端装置に接続されるノードを特定し、
特定したノードを前記終端装置に接続する旨の接続情報を出力する
処理を実行することを特徴とする設計支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計支援装置、設計支援プログラムおよび設計支援方法に関する。
【背景技術】
【０００２】
従来、複数のサーバや複数の演算処理装置等、相互に通信を行う複数の電子装置をネットワークで接続する技術が知られている。このような技術の一例として、各電子装置が通信に用いる帯域を増加させるため、若しくは、通信の信頼性を向上させるための冗長性を確保するために、各電子装置を複数のネットワークで接続する技術が知られている。
【０００３】
以下、図２３を用いて、複数の電子装置を複数のネットワークで接続する技術の一例について説明する。図２３は、複数のネットワークに接続されたサーバの一例を説明する図である。なお、図２３に示す例では、サーバａ〜サーバｄを単にａ〜ｄと記載した。
【０００４】
例えば、図２３中（ｙ）に示す例では、スイッチ２０、２０ａ〜２０ｃを有するネットワークにサーバａ〜サーバｄが接続される。詳細には、サーバａとサーバｂがスイッチ２０ｂに接続され、サーバｃとサーバｄがスイッチ２０ｃに接続される。また、スイッチ２０ｂとスイッチ２０ｃとがスイッチ２０およびスイッチ２０ａにそれぞれ接続される。
【０００５】
一方、図２３中（ｚ）に示す例では、スイッチ２０、２０ａ〜２０ｃを有するネットワーク、および、スイッチ２０ｄ〜２０ｇを有するネットワークにサーバａ〜サーバｄが接続される。詳細には、図２３中（ｙ）と同様に、スイッチ２０、２０ａ〜２０ｃを有するネットワークにサーバａ〜サーバｄが接続される。また、スイッチ２０ｄ〜２０ｇにより形成されたネットワークであって、スイッチ２０、２０ａ〜２０ｃを有するネットワークと同じトポロジを有するネットワークに、サーバａ〜サーバｄが接続される。
【０００６】
この結果、図２３中（ｚ）に示す例では、スイッチ２０、２０ａ〜２０ｃを有するネットワーク、または、スイッチ２０ｄ〜２０ｇを有するネットワークを介して、サーバａ〜サーバｄが通信する。この結果、図２３中（ｚ）に示すネットワークでは、サーバａ〜サーバｄ間の帯域が、図２３中（ｙ）に示すネットワークの倍に増加する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０００−２５３０６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、同じトポロジを有する複数のネットワークに複数の電子装置を接続した場合は、電子装置同士が通信を行う際のレイテンシを削減することができないという問題がある。
【０００９】
例えば、図２３中（ｙ）に示す例では、サーバａとサーバｃとは、３つのスイッチ２０ｂ、スイッチ２０、スイッチ２０ｃ、または、スイッチ２０ｂ、スイッチ２０ａ、スイッチ２０ｃを介した通信経路、すなわちホップ数「３」の通信経路を介して、通信を行う。ここで、図２３中（ｚ）に示すように、スイッチ２０ｄ〜２０ｇを有するネットワークは、スイッチ２０、２０ａ〜２０ｃを有するネットワークと同じトポロジを有する。このため、サーバａとサーバｃとは、スイッチ２０ｄ〜２０ｇを有するネットワークを介して通信を行う場合は、スイッチ２０、２０ａ〜２０ｃを有するネットワークを介して通信を行う場合と同様に、ホップ数「３」の通信経路で通信を行う。
【００１０】
このように、各サーバａ〜サーバｄを同じトポロジを有する複数のネットワークに接続した場合は、各サーバａ〜サーバｄに複数のネットワークが接続されているにも係らず、各サーバａ〜サーバｄが通信を行う際のレイテンシを削減できない。
【００１１】
１つの側面では、本発明は、各電子装置が通信を行う際のレイテンシを軽減するネットワークを設計可能な設計支援装置、設計支援プログラムおよび設計支援方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
一態様の設計支援装置は、ネットワークに接続するノードの数と、各ノードに接続されるネットワークの数と、ノード間の通信を中継する中継装置のうちノードと接続される中継装置である終端装置に接続されるノードの数との入力を受け付ける。また、設計支援装置は、受け付けたノードの数と、ネットワークの数と、終端装置に接続されるノードの数とに基づいて、各ネットワークが有する終端装置の数を算出する。また、設計支援措置は、ネットワークごとに、算出した数の終端装置のうちいずれかの終端装置に各ノードが接続され、かつ、全てのネットワークに含まれる各終端装置にそれぞれ異なる組合せのノードが接続されるように、各終端装置に接続されるノードを特定する。そして、設計支援装置は、特定したノードを終端装置に接続する旨の接続情報を出力する。
【発明の効果】
【００１３】
一実施形態によれば、各電子装置が通信を行う際のレイテンシを軽減するネットワークを設計することができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、実施例１に係る設計支援装置の機能構成を説明する図である。
【図２】図２は、実施例１に係る設計支援装置が実行する処理の概要を説明する図である。
【図３】図３は、ネットワークが２つ存在する際に、実施例１に係る設計支援装置が出力するネットワークの一例を説明する図である。
【図４】図４は、ネットワークが３つ存在する際に、実施例１に係る設計支援装置が実行する処理を説明する第１の図である。
【図５】図５は、ネットワークが３つ存在する際に、実施例１に係る設計支援装置が実行する処理を説明する第２の図である。
【図６】図６は、ネットワークが３つ存在する際に、実施例１に係る設計支援装置が特定するノードの組の一例を説明する図である。
【図７】図７は、実施例１に係る設計支援装置が特定するノードの組を説明する図である。
【図８】図８は、パラメータを一般化した場合に、実施例１に係る設計支援装置が出力する接続表の一例を説明する第１の図である。
【図９】図９は、パラメータを一般化した場合に、実施例１に係る設計支援装置が出力する接続表の一例を説明する第２の図である。
【図１０】図１０は、実施例１に係る設計支援装置が実行する処理の流れを説明するフローチャートである。
【図１１】図１１は、実施例１に係る設計支援装置がスイッチ数を算出する処理の流れを説明するフローチャートである。
【図１２】図１２は、実施例１に係る設計支援装置がノードの組を特定する処理の流れを説明するフローチャートである。
【図１３】図１３は、実施例２に係る設計支援装置の機能構成を説明する図である。
【図１４】図１４は、実施例２に係る設計支援装置が記憶する相互直行ラテン方格データの一例を説明する図である。
【図１５】図１５は、実施例２に係る設計支援装置が相互直行ラテン方格を利用して設計するネットワークの一例を説明する図である。
【図１６】図１６は、実施例２に係る設計支援装置が設計するネットワークの一例を説明するための図である。
【図１７】図１７は、実施例２に係る設計支援装置が出力する接続表の一例を説明する第１の図である。
【図１８】図１８は、実施例２に係る設計支援装置が出力する接続表の一例を説明する第２の図である。
【図１９】図１９は、実施例２に係る設計支援装置がスイッチ数を算出する処理の流れを説明するフローチャートである。
【図２０】図２０は、実施例２に係る設計支援装置がノードの組を特定する処理の流れを説明するフローチャートである。
【図２１】図２１は、実施例２に係る設計支援装置がｙの値を特定する処理の流れを説明するフローチャートである。
【図２２】図２２は、設計支援プログラムを実行するコンピュータの一例を説明する図である。
【図２３】図２３は、複数のネットワークに接続されたサーバの一例を説明する図である。
【発明を実施するための形態】
【００１５】
以下に添付図面を参照して本願に係る設計支援装置を有する設計支援装置の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により開示技術が限定されるものではない。また、各実施例は、矛盾しない範囲で適宜組みあわせてもよい。
【実施例１】
【００１６】
以下の実施例１では、図１を用いて、本願に係る設計支援装置の一例を説明する。図１は、実施例１に係る設計支援装置の機能構成を説明する図である。図１に示す例では、設計支援装置１０には、入力装置１、出力装置２が接続されている。また、設計支援装置１０は、受付部１１、算出部１２、特定部１３、出力部１４を有する。
【００１７】
設計支援装置１０は、相互に通信する複数のノードを複数のネットワークに接続する際、各ノードをどのスイッチに接続するかを設計する。具体的には、設計支援装置１０は、利用者からパラメータの入力を受け付けると、受け付けたパラメータに応じて、各ネットワークに含まれるスイッチに、どのノードを接続するかを特定する。そして、設計支援装置１０は、各スイッチに特定したノードを接続する旨を示す接続情報を出力する。なお、ノードとは、例えば、サーバ等の情報処理装置やＣＰＵ（Central  Processing  Unit）等の演算処理装置を含む電子装置である。
【００１８】
ここで、図２を用いて、設計支援装置１０が実行する処理の概要について説明する。図２は、実施例１に係る設計支援装置が実行する処理の概要を説明する図である。なお、図２には、複数のノードａ〜ｄを二つのネットワークに接続する例について記載した。また、図２では、各ノードａ〜ｄを単にａ〜ｄと記載した。
【００１９】
例えば、図２中（Ａ）に示す例では、図２３中（ｚ）と同様に、ノードａ〜ｄが、スイッチ２０、２０ａ〜２０ｃを有するネットワークと、スイッチ２０ｄ〜２０ｇを有するネットワークとに接続されている。ここで、図２中（Ａ）に示す例では、スイッチ２０、２０ａ〜２０ｃを有するネットワークと、スイッチ２０ｄ〜２０ｇを有するネットワークとは、同一のトポロジを有する。
【００２０】
このため、図２中（Ａ）の直線および点線で示すように、ノードａとノードｂとの通信経路、および、ノードｃとノードｄとの通信経路は、ホップ数が「１」となる。しかしながら、ノードａとノードｃとの通信経路、ノードａとノードｄとの通信経路、ノードｂとノードｃとの通信経路、ノードｂとノードｄとの通信経路は、どちらのネットワークを経由する場合にも、ホップ数が「３」となる。
【００２１】
そこで、設計支援装置１０は、図２中（Ｂ）に示すように、スイッチ２０、２０ａ〜２０ｃを有するネットワークのトポロジと、スイッチ２０ｄ〜２０ｇを有するネットワークのトポロジとが異なるトポロジとなるように、各ネットワークを設計する。詳細には、設計支援装置１０は、スイッチ２０、２０ａ〜２０ｃのうち、ノードａ〜ｄと接続されたスイッチ２０ｂ、２０ｃのいずれかにノードａ〜ｄが接続されるようネットワークを設計する。また、設計支援装置１０は、スイッチ２０ｄ〜２０ｇのうち、スイッチ２０ｄ、２０ｅのいずれかにノードａ〜ｄが接続されるようネットワークを設計する。
【００２２】
さらに、設計支援装置１０は、ノードａ〜ｄが接続されるスイッチ２０ｂ〜２０ｅにそれぞれ異なるノードの組が接続されるよう、各ネットワークを設計する。すなわち、設計支援装置１０は、共通する２つのノードを含んだノードの組が存在しないように、各スイッチ２０ｂ〜２０ｅに対して接続されるノードの組を特定する。
【００２３】
例えば、図２中（Ｂ）に示す例では、設計支援装置１０は、スイッチ２０ｂにノードａ、ノードｂを接続し、スイッチ２０ｃにノードｃ、ノードｄを接続する旨の接続情報を生成する。また、設計支援装置１０は、スイッチ２０ｄにノードａ、ノードｃを接続し、スイッチ２０ｅにノードｂ、ノードｄを接続する旨の接続情報を生成する。
【００２４】
この結果、設計支援装置１０は、ノードａとノードｂとの通信経路およびノードｃとノードｄとの通信経路のホップ数を増加させることなく、ノードａとノードｃとの通信経路およびノードｂとノードｄとの通信経路のホップ数を「１」にできる。このため、設計支援装置１０は、各ノードａ〜ｄが通信する際の遅延を削減することができる。なお、以下の説明では、ノードが接続されるスイッチを終端スイッチと記載する。
【００２５】
図１に戻り、説明を続ける。入力装置１は、設計するネットワークの各種パラメータの入力を行うための入力装置であり、例えば、マウス、キーボード、タッチパッド等の入力装置である。例えば、入力装置１は、利用者から各種パラメータとして、ネットワークに接続するノードの数「ｍ」、各ノードに接続されるネットワークの数「ｎ」を受け付ける。また、入力装置１は、ネットワークを形成するスイッチのうち、ノードと接続される終端スイッチに接続されるノード数「ｄ」の入力を受け付ける。かかる場合は、入力装置１は、受け付けた各種パラメータの値「ｍ」「ｎ」「ｄ」を設計支援装置１０へ出力する。
【００２６】
出力装置２は、接続情報を出力するための出力装置であり、例えば、モニタ等接続情報を表示するための表示装置、もしくは、プリンタ等接続情報を印刷するための出力装置である。例えば、出力装置２は、設計支援装置１０から接続情報を受信すると、受信した接続情報を表示する。
【００２７】
次に、設計支援装置１０が有する機能構成について説明する。受付部１１は、入力装置１を介して、利用者が入力した各種パラメータの値「ｍ」「ｎ」「ｄ」を受け付ける。かかる場合、受付部１１は、受け付けた各種パラメータの値「ｍ」「ｎ」「ｄ」を算出部１２に出力する。
【００２８】
算出部１２は、利用者が入力した各種パラメータを用いて、各ネットワークの終端スイッチの数を算出する。詳細には、算出部１２は、受付部１１から各種パラメータの値「ｍ」「ｎ」「ｄ」を受け付けると、ネットワークの数「ｎ」が「２」であるか否かを判定する。そして、算出部１２は、ネットワークの数「ｎ」が「２」である場合は、「ｍ」個のノードと接続可能な終端スイッチの数「ｓ」を算出する。
【００２９】
具体的には、算出部１２は、ノード数「ｍ」を１つのスイッチが有するノード数「ｄ」で除算し、除算した値よりも大きい最小の整数を算出する。例えば、算出部１２は、「ｍ＝１２」、「ｄ＝３」の場合は、「ｓ＝４」を算出する。そして、算出部１２は、受信した各種パラメータの値「ｍ＝１２」「ｎ＝２」「ｄ＝３」と、算出した値「ｓ＝４」とを特定部１３に出力する。
【００３０】
一方、算出部１２は、ネットワークの数「ｎ」が「２」ではない場合、すなわち、ネットワークの数「ｍ」が「３」以上である場合は、「ｍ」を「ｄ」で除算した値以上の整数であって、１を除く「ｎ」以下の整数で割り切れない最小の数を「ｓ」として算出する。例えば、算出部１２は、「ｍ＝１７」、「ｄ＝４」、「ｎ＝４」である場合は、「５」以上の整数であって、１を除く「４」以下の整数で割り切れない最小の数、すなわち「５」を「ｓ」の値とする。そして、受信した各種パラメータの値「ｍ＝１７」、「ｄ＝４」、「ｎ＝４」と、算出した値「ｓ＝５」とを特定部１３に出力する。
【００３１】
特定部１３は、入力された数のノードに対し、入力された数のネットワークを接続する際、各ネットワークの終端スイッチに接続するノードを特定する。具体的には、特定部１３は、全てのネットワークに各ノードが接続されるように、各終端スイッチに接続されるノードを特定する。また、特定部１３は、全ての終端スイッチに接続されるノードの組み合わせが、それぞれ異なるように、各終端スイッチに接続されるノードを特定する。
【００３２】
以下、特定部１３が実行する処理の一例について、ネットワークの数「ｎ」が「２」の場合と、「３」以上の場合とに分けて説明する。例えば、特定部１３は、算出部１２から各種パラメータ「ｍ＝１２」「ｎ＝２」「ｄ＝３」「ｓ＝４」を受信する。かかる場合は、特定部１３は、終端スイッチに接続されるノードの数「３」を各行の要素数とし、終端スイッチの数「４」を各列の要素数とする行列形式の番号を、「１２」個のノードに対して付与する。詳細には、特定部１３は、番号（１，１）〜（１，３）、（２，１）〜（２，３）、（３，１）〜（３，３）、（４，１）〜（４，３）を各ノードに付与する。
【００３３】
次に、特定部１３は、１つ目のネットワークに含まれる各終端スイッチに接続されるノードの組として、同一の行番号が付与されたノードを特定する。例えば、特定部１３は、１つめのネットワークに含まれるスイッチ２０、２０ａ〜２０ｃに接続されるノードを特定する場合は、スイッチ２０に接続されるノードの組として、番号（１，１）〜（１，３）が付与されたノードの組を特定する。また、特定部１３は、スイッチ２０ａに接続されるノードの組として、番号（２，１）〜（２，３）が付与されたノードの組を特定し、スイッチ２０ｂに接続されるノードの組として、番号（３，１）〜（３，３）が付与されたノードの組を特定する。また、特定部１３は、スイッチ２０ｃに接続されるノードの組として、番号（４，１）〜（４，３）が付与されたノードの組を特定する。
【００３４】
ここで、特定部１３は、２つ目のネットワークに含まれる各終端スイッチに接続されるノードの組として、単純に列番号が同一となるノードの組を特定した場合は、番号（４，１）〜（４，３）が付与されたノードを２つ目のネットワークに接続できない。そこで、特定部１３は、２つ目のネットワークに含まれる各終端スイッチに接続されるノードの組として、行番号と列番号とが１つずつ異なる番号が付与されたノードの組を特定する。
【００３５】
例えば、特定部１３は、２つ目のネットワークに含まれるスイッチ２０ｄ〜２０ｇに接続されるノードを特定する場合は、以下の処理を実行する。まず、特定部１３は、番号（１，１）が付与されたノードを起点として選択する。また、特定部１３は、番号（１，１）を起点として行番号と列番号とが１つずつ異なる番号であって、「ｄ」の値から１を減算した数の番号を算出する。具体的には、特定部１３は、番号（１，１）から行番号と列番号とに１を順次加算した２つの番号（２，２）、（３，３）を算出する。そして、特定部１３は、起点として選択された番号（１，１）、および算出した番号（２，２）、（３，３）が付与されたノードをスイッチ２０ｄに接続するノードの組とする。
【００３６】
次に、特定部１３は、番号（１，１）と行番号が１つ異なる番号（２，１）が付与されたノードを起点として選択する。また、特定部１３は、番号（２，１）から行番号と列番号とに１を順次加算した２つの番号（３，２）、（４，３）を算出する。そして、特定部１３は、起点として選択された番号（２，１）、および算出した番号（３，２）、（４，３）が付与されたノードをスイッチ２０ｅに接続するノードの組とする。
【００３７】
また、特定部１３は、番号（２，１）と行番号が１つ異なる番号（３，１）が付与されたノードを起点として選択する。また、特定部１３は、番号（３，１）から行番号と列番号とに１を加算した番号（４，２）を算出する。ここで、番号（４，２）の行番号と列番号とに１を加算した番号は（５，３）となるが、番号（５，３）が割当てられたノードは、存在しない。このため、特定部１３は、行番号および列番号のうち、要素数を超えた番号については、値を「１」に戻して、番号を算出する。詳細には、特定部１３は、番号（４，２）の行番号と列番号とに１を加算した場合は、番号（１，３）を算出する。そして、特定部１３は、起点として選択された番号（３，１）、および算出した番号（４，２）、（１，３）が付与されたノードをスイッチ２０ｆに接続するノードの組とする。
【００３８】
同様に、特定部１３は、番号（４，１）が付与されたノードを起点とし、行番号と列番号とが１つずつ異なる番号、すなわち番号（１，２）、（２，３）を算出する。そして、特定部１３は、番号（４，１）、（１，２）、（２，３）が付与されたノードをスイッチ２０ｇに接続するノードの組とする。
【００３９】
かかる処理を実行することで、特定部１３は、図３に示すように、各終端スイッチに接続するノードの組を特定する。図３は、ネットワークが２つ存在する際に、実施例１に係る設計支援装置が出力するネットワークの一例を説明する図である。なお、図３に示す例では、各ノードａ〜ｌとスイッチ２０、２０ａ〜２０ｇとの接続関係を記載した。なお、図３に示す例では、各ノードａ〜ｌを付与された行列形式の番号順に表示した。
【００４０】
例えば、図３中点線に示すように、番号（１，１）〜（１，３）が付与されるノードａ〜ｃは、スイッチ２０に接続され、番号（２，１）〜（２，３）が付与されるノードｄ〜ｆは、スイッチ２０ａに接続される。また、番号（３，１）〜（３，３）が付与されるノードｇ〜ｉは、スイッチ２０ｂに接続され、番号（４，１）〜（４，３）が付与されるノードｊ〜ｌは、スイッチ２０ｃに接続される。
【００４１】
また、図３中（Ｃ）に示すように、番号（１，１）、（２，２）、（３，３）が付与されたノードａ、ノードｅ、ノードｉは、図３中（Ｄ）中の直線に示すように、スイッチ２０ｄに接続される。また、図３中（Ｅ）に示すように、番号（２，１）、（３，２）、（４，３）が付与されたノードｄ、ノードｈ、ノードｌは、図３中（Ｄ）中の長点線に示すように、スイッチ２０ｅに接続される。また、図３中（Ｆ）に示すように、番号（３，１）、（４，２）、（１，３）が付与されたノードｇ、ノードｋ、ノードｃは、図３中（Ｄ）中の２点破線に示すように、スイッチ２０ｆに接続される。また、図３中（Ｇ）に示すように、番号（４，１）、（１，２）、（２，３）が付与されたノードｊ、ノードｂ、ノードｆは、図３中（Ｄ）中の１点破線に示すように、スイッチ２０ｇに接続される。
【００４２】
この結果、ノードａ〜ｃの組、ノードｄ〜ｆの組、ノードｇ〜ｉの組、ノードｊ〜ｌの組は、スイッチ２０、２０ａ〜２０ｃを介して、それぞれ１ホップでノード間通信を実行できる。さらに、ノードａ、ノードｅ、ノードｉの組、ノードｄ、ノードｈ、ノードｌの組は、スイッチ２０ｄ、２０ｅを介して、それぞれ１ホップでノード間通信を実行できる。また、ノードｇ、ノードｋ、ノードｃの組、ノードｊ、ノードｂ、ノードｆの組は、スイッチ２０ｆ、２０ｇを介して、それぞれ１ホップでノード間通信を実行できる。このため、設計支援装置１０は、ノード間通信の遅延を軽減できる。
【００４３】
なお、特定部１３は、各ネットワークに含まれる終端スイッチ同士の接続関係についても特定する。例えば、特定部１３は、１つ目のネットワークについて、スイッチ２０、２０ａ、２０ｂを接続するスイッチ、およびスイッチ２０ａ〜２０ｃを接続するスイッチを特定する。また、特定部１３は、２つ目のネットワークについて、スイッチ２０ｄ〜２０ｆを接続するスイッチ、およびスイッチ２０ｅ〜２０ｇを接続するスイッチを特定する。
【００４４】
次に、ネットワークの数「ｎ」が「３」以上の場合に特定部１３が実行する処理の流れについて説明する。例えば、特定部１３は、ネットワークの数「ｎ」が「２」の場合に実行する処理をそのまま拡張した場合には、複数の終端スイッチに共通する２つのノードを接続してしまう場合がある。
【００４５】
例えば、図４は、ネットワークが３つ存在する際に、実施例１に係る設計支援装置が実行する処理を説明する第１の図である。なお、図４には、各種パラメータの値が「ｍ＝１２」「ｎ＝３」「ｄ＝３」「ｓ＝４」である際に、各終端スイッチに接続されるノードの組を記載した。例えば、特定部１３は、上述した処理を実行することで、図４中（Ｈ）に示すように、１つ目のネットワークおよび２つ目のネットワークに含まれる終端スイッチに接続するノードの組として、図３と同様なノードの組を特定する。
【００４６】
ここで、３つ目のネットワークに含まれる終端スイッチに対して接続するノードの組を特定する処理として、例えば、起点となるノードの番号から順次列番号に１を加算し、行番号に２を加算した番号を算出し、算出した番号のノードを特定する処理が考えられる。しかしながら、特定部１３が、かかる処理を実行した場合は、図４中（Ｉ）に示すように、スイッチの数が２の倍数となる際に、同一のノードの組を、複数の終端スイッチに接続してしまう場合がある。
【００４７】
詳細には、特定部１３は、図４中（Ｊ）に示すように、ノードａ〜ｃを１つ目のネットワークに含まれる終端スイッチに接続するノードの組として特定する。しかしながら、特定部１３は、上述した処理を実行した場合は、ノードａ、ノードｈ、ノードｃを３つ目のネットワークに含まれる終端スイッチに接続するノードの組として特定してしまう。この結果、特定部１３は、ノードａとノードｃとの組を２つの終端スイッチに接続してしまうので、ノードａとノードｃとを１ホップで接続する通信経路が２つ存在する結果、１ホップで通信可能なノードの組み合わせの数が減ってしまう。
【００４８】
そこで、設計支援装置１０は、以下の処理を実行する。まず、算出部１２は、上述したように、ネットワークの数「ｍ」が「３」以上である場合は、「ｍ」を「ｄ」で除算した値以上の整数であって、１を除く「ｎ」以下の整数で割り切れない最小の数を「ｓ」として算出する。一方、特定部１３は、「ｍ」個のノードと、「ｄ×ｓ−ｍ」個の仮想的なノードとに行列形式の番号を付与する。
【００４９】
そして、特定部１３は、各ネットワークに含まれる終端スイッチに接続するノードの組を特定する。具体的には、特定部１３は、ｐ番目のネットワークに含まれるｋ番目の終端スイッチに接続するｄ個のノードとして、番号（ｋ，１）（ｋ＋ｐ，２）（ｋ＋３ｐ，４）…（ｋ＋（ｄ−１）ｐ，ｄ）が付与されたノードを特定する。ここで、ｐとは、０以上ｎ−１以下となる整数であり、ｋとは、０以上ｓ−１以下となる整数である。すなわち、特定部１３は、列番号が１つ異なる度に、前記ネットワークに付与された整数番号と同じ値ずつ行番号が異なる番号が付与されたノードの組を特定する。
【００５０】
以下、図５を用いて、ネットワークが３つ存在する際に、特定部１３が特定するノードの組の一例について説明する。図５は、ネットワークが３つ存在する際に、実施例１に係る設計支援装置が実行する処理を説明する第２の図である。なお、図５には、各種パラメータの値が「ｍ＝１２」「ｎ＝３」「ｄ＝３」である際に、各終端スイッチに接続されるノードの組を記載した。また、図５に示す例では、各ノードを、各ノードに付与される番号に応じて行列形式で記載し、仮想的なノードを点線の丸印で囲んだ。
【００５１】
例えば、各種パラメータの値が「ｍ＝１２」「ｎ＝３」「ｄ＝３」である場合は、算出部１２は、終端スイッチの数「ｓ＝５」を算出する。ここで、終端スイッチが「５」つ存在する場合は、全部で１５個のノードを接続可能である。そこで、特定部１３は、１２個のノードａ〜ｌと、３つの仮想的なノードｍ〜ｏに対し、各行の要素数が「３」、各列の要素数が「５」となる行列形式の番号を付与する。
【００５２】
そして、特定部１３は、図５中（Ｋ）に示すように、０番目のネットワークに含まれる各終端スイッチに接続するノードの組として、行番号が同一となるノードの組を特定する。詳細には、特定部１３は、１番目の終端スイッチに接続するノードａ〜ｃを特定し、２番目の終端スイッチに接続するノードｄ〜ｆを特定し、３番目の終端スイッチに接続するノードｇ〜ｉを特定する。また、特定部１３は、４番目の終端スイッチに接続するノードｊ〜ｌを特定し、５番目の終端スイッチに接続するノードｍ〜ｏを特定する。なお、ノードｍ〜ｏは、仮想的なノードであるため、０番目のネットワークに含まれる５番目の終端スイッチには、ノードが接続されない。
【００５３】
また、特定部１３は、図５中（Ｌ）に示すように、１番目のネットワークに含まれる各終端スイッチに接続するノードの組として、行番号と列番号とが１つずつ異なるノードの組を特定する。詳細には、特定部１３は、１番目の終端スイッチに接続するノードａ、ノードｅ、ノードｉを特定し、２番目の終端スイッチに接続するノードｄ、ノードｈ、ノードｌを特定し、３番目の終端スイッチに接続するノードｇ、ノードｋ、ノードｏを特定する。また、特定部１３は、４番目の終端スイッチに接続するノードｊ、ノードｎ、ノードｃを特定し、５番目の終端スイッチに接続するノードｍ、ノードｂ、ノードｆを特定する。なお、ノードｍ〜ｏは、仮想的なノードである。このため、１番目のネットワークに含まれる３番目の終端スイッチには、ノードｇ、ノードｋのみが接続され、４番目の終端スイッチには、ノードｊ、ノードｃのみが接続され、５番目の終端スイッチには、ノードｂ、ノードｆが接続される。
【００５４】
また、特定部１３は、図５中（Ｍ）に示すように、２番目のネットワークに含まれる各終端スイッチに接続するノードの組として、列番号が１つ異なる度に行番号が２つ異なるノードの組を特定する。詳細には、特定部１３は、図５中（Ｎ）に示すように、１番目の終端スイッチに接続するノードとして、直線六角形で囲むノードａ、ノードｈ、ノードｏを特定する。また、特定部１３は、２番目の終端スイッチに接続するノードとして、点線六角形で囲むノードｄ、ノードｋ、ノードｃを特定し、３番目の終端スイッチに接続するノードとして、１点破線の六角形で囲むノードｇ、ノードｎ、ノードｆを特定する。
【００５５】
また、特定部１３は、４番目の終端スイッチに接続するノードとして、２点破線の六角形で囲むノードｊ、ノードｂ、ノードｉを特定し、５番目の終端スイッチに接続するノードとして長点線の六角形で囲むノードｍ、ノードｅ、ノードｌを特定する。なお、ノードｍ〜ノードｏは、仮想的なノードであるため、１番目のスイッチには、ノードａ、ノードｈのみが接続され、３番目のスイッチには、ノードｇ、ノードｆのみが接続され、５番目のスイッチには、ノードｅ、ノーｌのみが接続される。
【００５６】
また、特定部１３は、図５に示す０番目から２番目の各ネットワークに含まれる終端スイッチ同士の接続関係についても特定する。なお、終端スイッチ同士の接続関係を設計する処理については、任意の従来技術を適用することができるが、例えば、特定部１３は、終端スイッチに接続するノードの数に１を加算した値、すなわち、各スイッチが有するポートの数を算出する。そして、特定部１３は、ネットワークごとに、算出したポートの数と、終端スイッチの数と、ノードの数とに基づいて、終端スイッチ同士の接続関係を設計してもよい。
【００５７】
また、特定部１３は、ツリー型のネットワークを設計する場合は、利用者から、各ネットワークにおけるスイッチの段数の指定を受け付け、受け付けた段数を有するツリー型のネットワークを設計しても良い。また、特定部１３は、終端スイッチ同士をファブリックで接続するネットワークを設計してもよい。
【００５８】
その後、特定部１３は、各終端スイッチに接続されるノードの組、各終端スイッチの接続関係、および各パラメータの値「ｍ」「ｎ」「ｄ」「ｓ」を出力部１４に出力する。また、特定部１３は、仮想的なノードが存在する場合は、仮想的なノードに付与された番号を出力部１４に通知する。例えば、特定部１３は、ｐ番目のネットワークに含まれるｋ番目の終端スイッチに接続するノードに付与された番号を出力部１４に通知する。
【００５９】
なお、上述した例では、算出部１２と特定部１３とは、「ｎ＝２」と「ｎ≧３」の場合とで異なる処理を実行した。しかしながら、実施例はこれに限定されるものではない。すなわち、算出部１２と特定部１３とは、ｎの値が２であっても、「ｎ≧３」の場合と同様の処理を実行することで、各ネットワークの各終端スイッチに接続されるノードの組として、それぞれ異なるノードの組を特定することができる。
【００６０】
図１に戻り、出力部１４は、特定部１３が特定したノードの組を終端スイッチに接続する旨の接続情報を出力する。例えば、出力部１４は、パラメータ「ｍ」「ｎ」「ｄ」「ｓ」の値、ｐ番目のネットワークに含まれるｋ番目の終端スイッチに接続する各ノードに付与された番号、および、終端スイッチ同士の接続関係とを特定部１３から受信する。かかる場合は、出力部１４は、受信した情報を用いて、各ノードと各終端スイッチとの接続を示す接続表を作成し、作成した接続表を出力装置２へ出力する。
【００６１】
ここで、図６を用いて、出力部１４が出力する接続表の一例について説明する。図６は、ネットワークが３つ存在する際に、実施例１に係る設計支援装置が特定するノードの組の一例を説明する図である。なお、図６には、特定部１３が、各ネットワークの終端スイッチに接続されるノードの組として、図５に示すノードの組を特定した際に、出力部１４が出力する接続表の一例について記載した。
【００６２】
例えば、出力部１４は、直線の丸印で示すノードａ〜ｌを横一列に配置し、つづけて点線の丸印で示す仮想的なノードｍ〜ｏを配置する。そして、出力部１４は、ノードａ〜ｃ、ノードｄ〜ｆ、ノードｇ〜ｉ、ノードｊ〜ｌ、ノードｍ〜ｏをそれぞれ四角で囲むことで、各ノードの組を０番目のネットワークに含まれる各終端スイッチに接続されるノードの組として表示する。
【００６３】
また、出力部１４は、１番目のネットワークに含まれる終端スイッチとしてスイッチ２０ａ〜２０ｅを描画する。そして、出力部１４は、各スイッチ２０ａ〜２０ｅと、図５中（Ｌ）に記載したノードの組とを直線でつなぐことで、１番目のネットワークに含まれる各スイッチ２０ａ〜２０ｅに接続されるノードの組を描画する。また、出力部１４は、２番目のネットワークに含まれる終端スイッチとして、スイッチ２０ｆ〜２０ｊを描画する。そして、出力部１４は、各スイッチ２０ｆ〜２０ｊと、図５中（Ｍ）に記載した各ノードの組とを直線でつなぐことで、２番目のネットワークに含まれる各スイッチ２０ｆ〜２０ｊに接続されるノードの組を描画する。
【００６４】
また、出力部１４は、スイッチ２０ａ〜２０ｅを接続するスイッチ２０、およびスイッチ２０ｆ〜２０ｊを接続するスイッチ２０ｋを描画する。そして、出力部１４は、描画した接続表のデータを出力装置２へ出力し、画面に接続表を表示、若しくは接続表の印刷を実行させる。この結果、設計支援装置１０は、利用者に対し、各ノード間の通信遅延が少ないネットワークを構築する接続情報を出力することができる。
【００６５】
次に、図７〜９を用いて、設計支援装置１０が実行する処理の他の例について説明する。なお、以下の説明では、各種パラメータ「ｍ＝１７」「ｎ＝４」「ｄ＝４」の際に、設計支援装置１０が実行する処理の流れについて説明する。まず、図７を用いて、設計支援装置１０が終端スイッチに接続されるノードの組を特定する処理の例について説明する。
【００６６】
図７は、実施例１に係る設計支援装置が特定するノードの組を説明する図である。なお、図７に示す例では、ノードを直線の円で示し、仮想的なノードを点線の円で示した。また、図７に示す例では、各ノードおよび仮想的なノードに付与される番号を円の中に記載した。例えば、設計支援装置１０は、各種パラメータ「ｍ＝１７」「ｎ＝４」「ｄ＝４」の入力を受け付ける。かかる場合、設計支援装置１０は、１つのネットワークに含まれる終端スイッチの数「ｓ」として、「ｍ／ｄ＝４．２５」よりも大きい整数であって、「４．２５」よりも少ない「１」以外の整数「４」、「３」、「２」により割り切れない整数「５」を算出する。
【００６７】
ここで、「ｄ＝４」の際、「ｓ＝５」個の終端スイッチには、合計で２０個のノードを接続できる。このため、設計支援装置１０は、１７個のノードと、３個の仮想的なノードに、行列形式の番号を付与する。そして、設計支援装置１０は、図７中（Ｏ）に示すように、０番目のネットワークが含む終端スイッチに接続されるノードの組として、行番号が同一の番号が付与されたノードを特定する。
【００６８】
例えば、設計支援装置１０は、０番目の終端スイッチに接続されるノードの組として、番号（１，１）〜（１，４）が付与されたノードを特定し、１番目の終端スイッチに接続されるノードの組として、番号（２，１）〜（２，４）が付与されたノードを特定する。また、設計支援装置１０は、２番目の終端スイッチに接続されるノードの組として、番号（３，１）〜（３，４）が付与されたノードを特定し、３番目の終端スイッチに接続されるノードの組として、番号（４，１）〜（４，４）が付与されたノードを特定する。また、設計支援装置１０は、４番目の終端スイッチに接続されるノードとして、番号（５，１）〜（５，４）が付与されたノードを特定する。
【００６９】
また、設計支援装置１０は、図７中（Ｐ）に示すように、１番目のネットワークが含む終端スイッチに接続されるノードの組として、行番号と列番号とが１つずつ異なる番号が付与されたノードを特定する。例えば、設計支援装置１０は、図７中（Ｑ）に示すように、０番目の終端スイッチに接続されるノードの組として、番号（１，１）（２，２）（３，３）（４，４）が付与されたノードを特定する。
【００７０】
また、設計支援装置１０は、１番目の終端スイッチに接続されるノードの組として、番号（２，１）（３，２）（４，３）（５，４）が付与されたノードを特定する。また、設計支援装置１０は、２番目の終端スイッチに接続されるノードの組として、番号（３，１）（４，２）（１，４）（５，３）が付与されたノードを特定する。また、設計支援装置１０は３番目の終端スイッチに接続されるノードの組として、番号（４，１）（５，２）（１，３）（２，４）が付与されたノードを特定する。また、設計支援装置１０は、４番目の終端スイッチに接続されるノードの組として、番号（５，１）（１，２）（２，３）（３，４）が付与されたノードを特定する。
【００７１】
また、設計支援装置１０は、図７中（Ｒ）に示すように、２番目のネットワークが含む終端スイッチに接続されるノードの組として、列番号が１つ異なる度に、行番号が２つ異なる番号が付与されたノードを特定する。例えば、設計支援装置１０は、図７中（Ｓ）に示すように、０番目の終端スイッチに接続されるノードの組として、太線の六角形で示す番号（１，１）（３，２）（５，３）（２，４）が付与されたノードを特定する。
【００７２】
また、設計支援装置１０は、１番目の終端スイッチに接続されるノードの組として、細点線の六角形で示す番号（２，１）（４，２）（１，３）（３，４）が付与されたノードを特定する。また、設計支援装置１０は、２番目の終端スイッチに接続されるノードの組として、太点線の六角形で示す番号（３，１）（５，２）（２，３）（４，４）が付与されたノードを特定する。また、設計支援装置１０は、３番目の終端スイッチに接続されるノードの組として、２点破線の六角形で示す番号（４，１）（１，２）（３，３）（５，４）が付与されたノードを特定する。また、設計支援装置１０は、４番目の終端スイッチに接続されるノードの組として、１点破線の六角形で示す番号（５，１）（２，２）（４，３）（１，４）が付与されたノードを特定する。
【００７３】
また、設計支援装置１０は、図７中（Ｔ）に示すように、３番目のネットワークが含む終端スイッチに接続されるノードの組として、列番号が１つ異なる度に、行番号が３つ異なる番号が付与されたノードを特定する。例えば、設計支援装置１０は、図７中（Ｕ）に示すように、０番目の終端スイッチに接続されるノードの組として、太線の六角形で示す番号（１，１）（４，２）（２，３）（５，４）が付与されたノードを特定する。
【００７４】
また、設計支援装置１０は、１番目の終端スイッチに接続されるノードの組として、細点線の六角形で示す番号（２，１）（５，２）（３，３）（１，４）が付与されたノードを特定する。また、設計支援装置１０は、２番目の終端スイッチに接続されるノードの組として、太点線の六角形で示す番号（３，１）（１，２）（４，３）（２，４）が付与されたノードを特定する。また、設計支援装置１０は、３番目の終端スイッチに接続されるノードの組として、２点破線の六角形で示す番号（４，１）（２，２）（５，３）（３，４）が付与されたノードを特定する。また、設計支援装置１０は、４番目の終端スイッチに接続されるノードの組として、１点破線の六角形で示す番号（５，１）（３，２）（１，３）（４，４）が付与されたノードを特定する。
【００７５】
その後、設計支援装置１０は、図８および図９に示す接続表を生成し、生成した接続表を出力する。図８は、パラメータを一般化した場合に、実施例１に係る設計支援装置が出力する接続表の一例を説明する第１の図である。また、図９は、パラメータを一般化した場合に、実施例１に係る設計支援装置が出力する接続表の一例を説明する第２の図である。
【００７６】
なお、図８には、設計支援装置１０が特定したノードの組のうち、０番目のネットワークと１番目のネットワークとに含まれる終端スイッチに接続されるノードの組を示す接続表を記載した。また、図９には、設計支援装置１０が特定したノードの組のうち、２番目のネットワークと３番目のネットワークとに含まれる終端スイッチに接続されるノードの組を示す接続表を記載した。また、図８、図９に示す例では、各終端スイッチ同士を接続するスイッチについては、記載を省略した。
【００７７】
例えば、設計支援装置１０は、図８中（Ｖ）に示すように、図７中（Ｏ）に示すノードの組と、０番目のネットワークに含まれる終端スイッチであるスイッチ２０、２０ａ〜２０ｄとの接続を記載する。なお、スイッチ２０、２０ａ〜２０ｄは、それぞれ０番目〜４番目の終端スイッチに対応する。
【００７８】
例えば、設計支援装置１０は、スイッチ２０にノード（１，１）〜（１，４）が接続され、スイッチ２０ａにノード（２，１）〜（２，４）が接続され、スイッチ２０ｂにノード（３，１）〜（３，４）が接続される旨を示す接続表を作成する。また、設計支援装置１０は、スイッチ２０ｃにノード（４，１）〜（４，４）が接続され、スイッチ２０ｄにノード（５，１）が接続される旨を示す接続表を作成する。なお、設計支援装置１０は、番号（５，２）〜（５，４）が付与された仮想的なノードについては、接続表に記載しない。
【００７９】
また、設計支援装置１０は、図８中（Ｗ）に示すように、図７中（Ｐ）に示すノードの組と、１番目のネットワークに含まれる終端スイッチであるスイッチ２０ｅ〜２０ｉとの接続を記載する。なお、スイッチ２０ｅ〜２０ｉは、順に、０番目、４番目、３番目、２番目、１番目の終端スイッチに対応する。
【００８０】
例えば、設計支援装置１０は、スイッチ２０ｅにノード（１，１）（２，２）（３，３）（４，４）が接続され、スイッチ２０ｆにノード（１，２）（２，３）（３，４）（５，１）が接続される旨を示す接続表を作成する。また、設計支援装置１０は、スイッチ２０ｇにノード（１，３）（２，４）（４，１）が接続され、スイッチ２０ｈにノード（１，４）（３，１）（４，２）が接続される旨を示す接続表を作成する。また、設計支援装置１０は、スイッチ２０ｉにノード（２，１）（３，２）（４，３）が接続される旨を示す接続表を作成する。
【００８１】
また、設計支援装置１０は、図９中（Ｘ）に示すように、図７中（Ｒ）に示すノードの組と、２番目のネットワークに含まれる終端スイッチであるスイッチ２０ｊ〜２０ｎとの接続を記載する。なお、スイッチ２０ｊ〜２０ｎは、順に、０番目、３番目、１番目、４番目、２番目の終端スイッチに対応する。
【００８２】
例えば、設計支援装置１０は、スイッチ２０ｊにノード（１，１）（２，４）（３，２）が接続され、スイッチ２０ｋにノード（１，２）（３，３）（４，１）が接続される旨を示す接続表を作成する。また、設計支援装置１０は、スイッチ２０ｌにノード（１，３）（２，１）（３，４）（４，２）が接続され、スイッチ２０ｍにノード（１，４）（２，２）（４，３）（５，１）が接続される旨を示す接続表を作成する。また、設計支援装置１０は、スイッチ２０ｎにノード（２，３）（３，１）（４，４）が接続される旨を示す接続表を作成する。
【００８３】
また、設計支援装置１０は、図９中（Ｙ）に示すように、図７中（Ｔ）に示すノードの組と、３番目のネットワークに含まれる終端スイッチであるスイッチ２０ｏ〜２０ｓとの接続を記載する。なお、スイッチ２０ｏ〜２０ｓは、順に、０番目、３番目、１番目、４番目、２番目の終端スイッチに対応する。
【００８４】
例えば、設計支援装置１０は、スイッチ２０ｏにノード（１，１）（２，３）（４，２）が接続され、スイッチ２０ｐにノード（２，２）（３，４）（４，１）が接続される旨を示す接続表を作成する。また、設計支援装置１０は、スイッチ２０ｑにノード（１，４）（２，１）（３，３）が接続され、スイッチ２０ｒにノード（１，３）（３，２）（４，４）（５，１）が接続される旨を示す接続表を作成する。また、設計支援装置１０は、スイッチ２０ｓにノード（１，２）（３，１）（２，４）（４，３）が接続される旨を示す接続表を作成する。
【００８５】
この結果、設計支援装置１０は、１７個のノードを４つのネットワークに接続する際に、各ネットワークごとに、終端スイッチのいずれかに１７個のノードを接続し、かつ、各終端スイッチに接続するノードの組として、それぞれ異なるノードの組を特定できる。この結果、設計支援装置１０は、１ホップで通信可能なノードの組を最大化できるので、ノード間通信の遅延を軽減できる。
【００８６】
次に、図１０を用いて、設計支援装置１０が実行する処理の流れについて説明する。図１０は、実施例１に係る設計支援装置が実行する処理の流れを説明するフローチャートである。まず、設計支援装置１０は、入力装置１を介して、ネットワーク数「ｎ」、終端スイッチに接続するノード数「ｄ」、全てのノード数「ｍ」の入力を受け付ける（ステップＳ１０１）。
【００８７】
次に、設計支援装置１０は、「ｄ」および「ｍ」の値を用いて、スイッチ数「ｓ」を算出する算出処理を実行し（ステップＳ１０２）、ネットワークを識別する変数ｐの値を「０」に初期化する（ステップＳ１０３）。また、設計支援装置１０は、ｐの値が「ｎ」よりも小さいか否かを判定し（ステップＳ１０４）、ｐの値が「ｎ」よりも小さいと判定した場合は（ステップＳ１０４：Ｙｅｓ）、終端スイッチを識別する変数ｋの値を「１」に設定する（ステップＳ１０５）。そして、設計支援装置１０は、変数ｋの値が「ｓ」以下となるか否かを判定する（ステップＳ１０６）。
【００８８】
また、設計支援装置１０は、変数ｋの値が「ｓ」以下となる場合は（ステップＳ１０６：Ｙｅｓ）、ｐ番目のネットワークにおけるｋ番目のスイッチに接続されるノードの組を特定する特定処理を実行する（ステップＳ１０７）。次に、設計支援装置１０は、変数ｋの値に「１」を加算し（ステップＳ１０８）、ステップＳ１０６を実行する。
【００８９】
また、設計支援装置１０は、変数ｋの値が「ｓ」よりも大きい場合は（ステップＳ１０６：Ｎｏ）、変数ｐの値に「１」を加算し（ステップＳ１０９）、ステップＳ１０４を実行する。また、設計支援装置１０は、変数ｐの値がｎ以上となる場合は（ステップＳ１０４：Ｎｏ）、ステップＳ１０７に示す特定処理によって特定されたノードの組を示す接続表を作成する（ステップＳ１１０）。そして、設計支援装置１０は、作成した接続表を出力して（ステップＳ１１１）、処理を終了する。
【００９０】
次に、図１１を用いて、設計支援装置１０が実行する算出処理の流れについて説明する。図１１は、実施例１に係る設計支援装置がスイッチ数を算出する処理の流れを説明するフローチャートである。なお、図１１に示す処理は、図１０中ステップＳ１０２に記載した算出処理である。
【００９１】
まず、設計支援装置１０は、「ｍ」の値に「１」を加算した値を「ｄ」の値で除算した値を「ｓ」とし（ステップＳ２０１）、変数ｉの値を「２」に初期化する（ステップＳ２０２）。また、設計支援装置１０は、変数ｉの値が「ｎ」の値よりも小さいか否かを判定する（ステップＳ２０３）。そして、設計支援装置１０は、変数ｉの値が「ｎ」よりも小さい場合は（ステップＳ２０３：Ｙｅｓ）、「ｓ」の値を変数ｉの値で除算した剰余が「０」であるか否かを判定する（ステップＳ２０４）。
【００９２】
また、設計支援装置１０は、「ｓ」の値を「ｉ」の値で除算した剰余が「０」である場合は（ステップＳ２０４：Ｙｅｓ）、「ｓ」の値に「１」を加算し（ステップＳ２０５）、変数ｉの値に「１」を加算して（ステップＳ２０６）、ステップＳ２０３を実行する。ここで、設計支援装置１０は、「ｓ」の値を変数ｉの値で除算した剰余が「０」ではない場合は（ステップＳ２０４：Ｎｏ）、ステップＳ２０５の実行をスキップし、ステップＳ２０６を実行する。また、設計支援装置１０は、変数ｉの値が「ｎ」の値以上となる場合は（ステップＳ２０３：Ｎｏ）、「ｓ」の値を出力して算出処理を終了する。
【００９３】
次に、図１２を用いて、設計支援装置１０が実行する特定処理の流れについて説明する。図１２は、実施例１に係る設計支援装置がノードの組を特定する処理の流れを説明するフローチャートである。なお、図１２に示す処理は、図１０中ステップＳ１０７に記載した特定処理である。
【００９４】
まず、設計支援装置１０は、ノードに付与された番号の行番号を示す変数ｘの値を「１」に初期化し（ステップＳ３０１）、変数ｘの値が「ｓ」の値よりも小さいか否かを判定する（ステップＳ３０２）。また、設計支援装置１０は、変数ｘの値が「ｓ」の値よりも小さい場合は（ステップＳ３０２：Ｙｅｓ）、変数ｉの値を「１」に初期化し（ステップＳ３０３）、変数ｉの値が「ｄ」の値よりも小さいか否かを判定する（ステップＳ３０４）。
【００９５】
そして、設計支援装置１０は、変数ｉの値が「ｄ」の値よりも小さい場合は（ステップＳ３０４：Ｙｅｓ）、変数ｉの値と「ｐ」の値との積を「ｓ」の値で除算した剰余に１を加算した値を、ノードに付与された番号の列番号を示す変数「ｙ」とする（ステップＳ３０５）。また、設計支援装置１０は、番号（ｘ、ｙ）が付与されたノードをノードの組に追加し（ステップＳ３０６）、変数ｉの値に「１」を加算して（ステップＳ３０７）、ステップＳ３０４を実行する。
【００９６】
また、設計支援装置１０は、変数ｉの値が「ｄ」の値以上となる場合は（ステップＳ３０４：Ｎｏ）、変数ｘの値に「１」を加算して（ステップＳ３０８）、ステップＳ３０２を実行する。また、設計支援装置１０は、変数ｘの値が「ｓ」の値以上となる場合は（ステップＳ３０２：Ｎｏ）、特定処理を終了する。
【００９７】
［設計支援装置１０の効果］
上述したように、設計支援装置１０は、ネットワークに接続するノードの数「ｍ」、各ノードに接続されるネットワークの数「ｎ」、および、終端スイッチに接続されるノードの数「ｄ」の入力を受け付ける。また、設計支援装置１０は、ノードの数「ｍ」、ネットワークの数「ｎ」、終端スイッチに接続されるノードの数「ｄ」の値から、各ネットワーク内でノードと接続される終端スイッチの数「ｓ」を算出する。
【００９８】
そして、設計支援装置１０は、各ネットワークが有する「ｓ」個の終端スイッチのいずれかに各ノードが接続され、かつ、全てのネットワークが有する終端スイッチに接続されるノードの組がそれぞれ異なるように、各終端スイッチに接続されるノードを特定する。その後、設計支援装置１０は、特定されたノードを終端スイッチに接続する旨の接続情報を出力する。
【００９９】
このため、設計支援装置１０は、１ホップで通信可能なノードの組の数を増やすことができるので、各ノードが複数のネットワークに接続されている際に、ノード間通信の遅延を削減することができる。
【０１００】
また、設計支援装置１０は、受け付けたネットワークの数が「２」である場合は、ノードの数「ｍ」を、１つの終端スイッチに接続されるノードの数「ｄ」で除算した値よりも大きい整数のうち、値が最小の整数をスイッチの数「ｓ」として算出する。また、設計支援装置１０は、１つの終端スイッチに接続されるノードの数「ｄ」を各行の要素数とし、終端スイッチの数「ｓ」を各列の要素数とする行列形式の番号を「ｍ」個のノードに付与する。
【０１０１】
そして、設計支援装置１０は、第１のネットワークに含まれる各終端スイッチに接続されるノードの組として、同一の行番号が付与されたノードの組を特定する。また、設計支援装置１０は、第２のネットワークに含まれる各終端スイッチに接続されるノードの組として、行番号と列番号とが１ずつ異なる番号が付与されたノードの組を特定する。すなわち、設計支援装置１０は、行番号が１つ異なる度に列番号が１つ異なる番号が付与されたノードの組を特定する。このため、設計支援装置１０は、各ノードに２つのネットワークを接続する際、１ホップで通信可能なノードの組の数を増やすことができる。この結果、設計支援装置１０は、ノード間通信の遅延を削減することができる。
【０１０２】
また、設計支援装置１０は、ノードの数「ｍ」を、１つの終端スイッチに接続されるノードの数「ｄ」で除算した値よりも大きい整数のうち、受け付けたネットワークの数以下の整数で割り切れない最小の整数をスイッチの数「ｓ」として算出する。また、設計支援装置１０は、受け付けた数のネットワークに０から始まる整数番号を付与する。そして、設計支援装置１０は、ネットワークごとに、以下の処理を実行する。すなわち、設計支援装置１０は、ネットワークに含まれる各終端スイッチに接続されるノードの組として、列番号が１つ異なる度に、行番号がネットワークに付与された整数番号と同じ値だけ異なる番号が付与されたノードの組を特定する。
【０１０３】
このため、設計支援装置１０は、複数のノードに任意の数のネットワークが接続される際に、各ネットワークが有する終端スイッチに接続されるノードの組として、それぞれ異なるノードの組を特定することができる。この結果、設計支援装置１０は、任意の数のネットワークが各ノードに接続される際に、１ホップで通信可能なノードの組の数を増やすせるので、ノード間通信の遅延を削減することができる。
【実施例２】
【０１０４】
上述した設計支援装置１０は、入力された各種パラメータの値から、各終端スイッチに接続されるノードに付与された番号を算出することで、各ノードを全てのネットワークに接続し、かつ、各終端スイッチに異なるノードの組を接続した。しかしながら、実施例はこれに限定されるものではない。以下では、実施例２として、相互直行ラテン方格を利用して、各終端スイッチに接続されるノードの組を特定する設計支援装置１０ａについて説明する。なお、以下の説明では、実施例１と同様の機能を発揮する装置や機能構成については、同一の符号を付し、説明を省略する。
【０１０５】
図１３は、実施例２に係る設計支援装置の機能構成を説明する図である。図１３に示すように、設計支援装置１０ａは、受付部１１、算出部１２ａ、特定部１３ａ、出力部１４、記憶部１５を有する。また、記憶部１５は、相互直行ラテン方格データ１６を記憶する。
【０１０６】
相互直行ラテン方格データ１６は、複数の相互直行ラテン方格を含むデータである。以下、相互直行ラテン方格データ１６に含まれる相互直行ラテン方格について説明する。例えば、ラテン方格とは、任意の整数ｑについて、ｑ行ｑ列の正方行列であり、１〜ｑまでの整数値を要素に含む行列である。また、ラテン方格は、任意の行および任意の列に同じ整数値を含まない行列である。このため、ラテン方格の任意の行および任意の列には、１〜ｑまでの整数値が１つずつ存在する。
【０１０７】
また、相互直行ラテン方格とは、ラテン方格のうち、各列に含まれる要素の順序がすべて異なるラテン方格である。例えば、ある列の要素が（１，２，３，４）となるラテン方格は、要素が（２，３，４，１）、（３，４，１，２）、または（４，１，２，３）となる列を含む場合は、相互直行ラテン方格ではない。また、ｑ行ｑ列の相互直行ラテン方格は、ｑの値が素数もしくは素数のべき乗である場合、ｑ−１個存在し、例えば統計処理ソフトウェアＲのcrossdesパッケージを用いて、算出が可能である。
【０１０８】
設計支援装置１０ａは、ネットワークごとに異なる相互直行ラテン方格を選択する。そして、設計支援装置１０ａは、選択した相互直行ラテン方格に含まれる各要素とノードとを対応付けし、値が同一となる要素と対応付けられたノードの組を１つの終端スイッチに接続されるノードの組として特定する。この結果、上述した相互直行ラテン方格の性質により、設計支援装置１０ａは、各終端スイッチに接続されるノードの組として、それぞれ異なるノードの組を特定する。この結果、設計支援装置１０ａは、相互直行ラテン方格に含まれる各要素を参照するだけで、各終端スイッチに接続されるノードの組として、それぞれ異なるノードの組を特定できる。
【０１０９】
以下、図１４を用いて、相互直行ラテン方格データ１６に含まれる相互直行ラテン方格の一例について説明する。図１４は、実施例２に係る設計支援装置が記憶する相互直行ラテン方格データの一例を説明する図である。なお、図１４には、４行４列の正方行列である相互直行ラテン方格の一例について記載した。
【０１１０】
例えば、図１４中（ａ）に示すように、第１の相互直行ラテン方格は、１行目に要素（１，２，３，４）を有し、２行目に要素（２，１，４，３）を有し、３行目に要素（３，４，１，２）を有し、４行目に要素（４，３，２，１）を有する。また、図１４中（ｂ）に示すように、第２の相互直行ラテン方格は、１行目に要素（１，２，３，４）を有し、２行目に要素（３，４，１，２）を有し、３行目に要素（４，３，２，１）を有し、４行目に要素（２，１，４，３）を有する。また、図１３中（ｃ）に示すように、第３の相互直行ラテン方格は、１行目に要素（１，２，３，４）を有し、２行目に要素（４，３，２，１）を有し、３行目に要素（２，１，４，３）を有し、４行目に要素（３，４，１，２）を有する。
【０１１１】
なお、図１４に示す相互直行ラテン方格は、あくまで一例であり、相互直行ラテン方格データ１６には、他にも、３行３列、５行５列、７行７列、８行８列、９行９列、１１行１１列の相互直行ラテン方格が含まれるものとする。
【０１１２】
図１３に戻り、説明を続ける。算出部１２ａは、受付部１１から各種パラメータの値「ｍ」「ｎ」「ｄ」を用いて、各ネットワークの終端スイッチの数を算出する。詳細には、算出部１２ａは、「ｍ」を「ｄ」の値で除算した値よりも大きい整数であって、１を除く「ｎ」以下の整数で割り切れない値、および、素数のべき乗となる値のうち最小の整数を算出する。例えば、算出部１２ａは、「ｍ＝１２」、「ｄ＝３」、「ｎ＝４」である場合は、「ｍ／ｄ＝４」を算出する。
【０１１３】
ここで、算出部１２ａが算出した「４」以上の整数のうち、「２」、「３」、「４」で割り切れない最小の整数は「５」である。一方、算出部１２ａが算出した「４」以上の整数のうち、素数のべき乗となる最小の整数は「４」である。このため、算出部１２ａは、「４」以上の整数のうち、「２」、「３」、「４」で割り切れない最小の整数「５」、および、素数のべき乗となる最小の整数「４」のうち、値がより小さい整数「４」をスイッチの数「ｓ」として算出する。
【０１１４】
その後、算出部１２ａは、各パラメータの値「ｍ」「ｎ」「ｄ」と、算出したスイッチの数「ｓ」とを特定部１３ａに出力する。また、算出部１２ａは、算出したスイッチの数「ｓ」が素数のべき乗である場合は、スイッチの数が素数のべき乗である旨を特定部１３ａに通知し、「ｓ」が素数のべき乗ではない場合は、スイッチの数が素数のべき乗である旨を特定部１３ａに通知する。
【０１１５】
特定部１３ａは、各終端スイッチに接続されるノードの組を特定する。具体的には、特定部１３ａは、各パラメータの値「ｍ」「ｎ」「ｄ」と、算出したスイッチの数「ｓ」とを算出部１２ａから受信する。また、特定部１３ａは、スイッチの数「ｓ」が素数のべき乗であるか否かの通知を算出部１２ａから受信する。
【０１１６】
そして、特定部１３ａは、スイッチの数「ｓ」が素数のべき乗ではない旨の通知を受信した場合は、図１に示す特定部１３と同様の処理を実行することで、各終端スイッチに接続されるノードの組を特定し、特定したノードの組を出力部１４に出力する。
【０１１７】
一方、特定部１３ａは、スイッチの数「ｓ」が素数のべき乗である旨の通知を受信した場合は、以下の処理を実行する。まず、特定部１３ａは、終端スイッチに接続されるノードの数「ｄ」を各行の要素数とし、終端スイッチの数「ｓ」を各列の要素数とする行列形式の番号を、「ｍ」個のノードに対して付与する。また、特定部１３ａは、各ネットワークが有する「ｓ」個の終端スイッチに、１からＳまでの整数番号を付与する。また、特定部１３ａは、ｓ行ｓ列の相互直行ラテン方格を、相互直行ラテン方格データ１６から「ｎ」個抽出し、取得した各相互直行ラテン方格と「ｎ」個のネットワークとを対応付ける。
【０１１８】
そして、特定部１３ａは、ネットワークごとに、以下の処理を実行する。例えば、特定部１３ａは、ｋ番目の終端スイッチに対して接続されるノードの組を特定する場合は、対応付けられた相互直行ラテン方格に含まれる各要素のうち、値が「ｋ」となる要素を抽出する。そして、特定部１３ａは、抽出した要素と同一の行番号および列番号が付与されたノードを、終端スイッチに接続されるノードの組として特定する。
【０１１９】
以下、特定部１３ａが実行する処理の一例について説明する。なお、以下の説明では、「ｍ＝１２」、「ｎ＝４」、「ｄ＝３」の際に特定部１３ａが実行する処理の一例について説明する。例えば、図１５は、実施例２に係る設計支援装置が相互直行ラテン方格を利用して設計するネットワークの一例を説明する図である。例えば、特定部１３ａは、ノードａ〜ｌに対して、行列形式の番号を付与することで、図１５中（ｄ）に示す相互直行ラテン方格の各要素とノードａ〜ｌとを対応付ける。
【０１２０】
そして、特定部１３ａは、１番目の終端スイッチに接続するノードの組として、図１５中（ｄ）に示す相互直行ラテン方格の各要素のうち、値が「１」の要素と対応付けられたノードａ、ノードｅ、ノードｉを特定する。また、特定部１３ａは、２番目の終端スイッチに接続するノードの組として、値が「２」の要素と対応付けられたノードｂ、ノードｄ、ノードｌを特定する。
【０１２１】
また、特定部１３ａは、３番目の終端スイッチに接続するノードの組として、値が「３」の要素と対応付けられたノードｃ、ノードｇ、ノードｋを特定する。また、特定部１３ａは、４番目の終端スイッチに接続するノードの組として、値が「４」の要素と対応付けられたノードｆ、ノードｈ、ノードｊを特定する。この結果、特定部１３ａは、図１５中（ｅ）に示すように、１番目から４番目までの終端スイッチに接続するノードの組を特定する。
【０１２２】
また、特定部１３ａは、ネットワークごとに異なる相互直行ラテン方格を用いて、上述した処理を実行し、各終端スイッチに接続されるノードの組を特定する。詳細には、特定部１３ａは、０番目のネットワークに含まれる各終端スイッチに接続されるノードの組として、特定部１３と同様に、行番号が同一となるノードの組を特定する。続いて、特定部１３ａは、図１４中（ａ）に示した相互直行ラテン方格を用いて、１番目のネットワークに含まれる各終端スイッチに接続されるノードの組を特定する。
【０１２３】
また、特定部１３ａは、図１４中（ｂ）に示した相互直行ラテン方格を用いて、２番目のネットワークに含まれる各終端スイッチに接続されるノードの組を特定する。また、特定部１３ａは、図１４中（ｃ）に示した相互直行ラテン方格を用いて、３番目のネットワークに含まれる各終端スイッチに接続されるノードの組を特定する。この結果、例えば、特定部１３ａは、各終端スイッチに接続されるノードの組として、図１６に示すノードの組を特定する。
【０１２４】
図１６は、実施例２に係る設計支援装置が設計するネットワークの一例を説明するための図である。なお、図１６には、０番目のネットワークについて特定したノードの組を図１６中（ｆ）に示し、１番目のネットワークについて図１４中（ａ）に示す相互直行ラテン方格を用いて特定したノードの組を図１６中（ｇ）に示した。また、図１６には、２番目のネットワークについて図１４中（ｂ）に示す相互直行ラテン方格を用いて特定したノードの組を図１６中（ｈ）に示した。また、図１６には、３番目のネットワークについて図１４中（ｃ）に示す相互直行ラテン方格を用いて特定したノードの組を図１６中（ｉ）に示した。
【０１２５】
例えば、特定部１３ａは、図１６中（ｆ）に示すように、０番目のネットワークに含まれる各終端スイッチに接続されるノードの組として、ノードａ〜ｃ、ノードｄ〜ｆ、ノードｇ〜ｉ、ノードｊ〜ｌの組を特定する。また、特定部１３ａは、図１６中（ｇ）に示すように、１番目のネットワークに含まれる各終端スイッチに接続されるノードの組を特定する。詳細には、特定部１３ａは、直線の六角形で示すように、ノードａ、ノードｅ、ノードｉの組を特定し、点線の六角形で示すように、ノードｄ、ノードｂ、ノードｌの組を特定する。また、特定部１３ａは、１点破線の六角形で示すように、ノードｇ、ノードｋ、ノードｃの組を特定し、２点破線で示すように、ノードｊ、ノードｈ、ノードｆの組を特定する。
【０１２６】
また、特定部１３ａは、図１６中（ｈ）に示すように、２番目のネットワークに含まれる各終端スイッチに接続されるノードの組を特定する。詳細には、特定部１３ａは、直線の六角形で示すように、ノードａ、ノードｋ、ノードｆの組を特定し、点線の六角形で示すように、ノードｊ、ノードｂ、ノードｉの組を特定する。また、特定部１３ａは、１点破線の六角形で示すように、ノードｄ、ノードｈ、ノードｃの組を特定し、２点破線で示すように、ノードｇ、ノードｅ、ノードｌの組を特定する。
【０１２７】
また、特定部１３ａは、図１６中（ｉ）に示すように、３番目のネットワークに含まれる各終端スイッチに接続されるノードの組を特定する。詳細には、特定部１３ａは、直線の六角形で示すように、ノードａ、ノードｈ、ノードｌの組を特定し、点線の六角形で示すように、ノードｇ、ノードｂ、ノードｆの組を特定する。また、特定部１３ａは、１点破線の六角形で示すように、ノードｊ、ノードｅ、ノードｃの組を特定し、２点破線で示すように、ノードｄ、ノードｋ、ノードｉの組を特定する。
【０１２８】
この結果、設計支援装置１０ａは、図１７、および、図１８に示す接続表を出力する。図１７は、実施例２に係る設計支援装置が出力する接続表の一例を説明する第１の図である。また、図１８は、実施例２に係る設計支援装置が出力する接続表の一例を説明する第２の図である。例えば、設計支援装置１０ａは、図１７中（ｊ）に示すように、０番目のネットワークに含まれる終端スイッチであるスイッチ２０、２０ａ〜２０ｃに、ノードａ〜ｃ、ノードｄ〜ｆ、ノードｇ〜ｉ、ノードｊ〜ｌの組を接続する旨を示す接続表を出力する。
【０１２９】
また、設計支援装置１０ａは、図１７中（ｋ）に示すように、１番目のネットワークに含まれる終端スイッチであるスイッチ２０ｄ〜２０ｇに、特定したノードの組を接続する旨を示す接続表を出力する。詳細には、設計支援装置１０ａは、スイッチ２０ｄにノードａ、ノードｅ、ノードｉを接続し、スイッチ２０ｅに、ノードｂ、ノードｄ、ノードｌの組を接続し、スイッチ２０ｆに、ノードｃ、ノードｇ、ノードｋを接続する旨を示す接続表を出力する。また、設計支援装置１０ａは、スイッチ２０ｇに、ノードｆ、ノードｊ、ノードｈを接続する旨を示す接続表を出力する。
【０１３０】
また、設計支援装置１０ａは、図１８中（ｌ）に示すように、２番目のネットワークに含まれる終端スイッチであるスイッチ２０ｈ〜２０ｋに、特定したノードの組を接続する旨を示す接続表を出力する。詳細には、設計支援装置１０ａは、スイッチ２０ｈにノードａ、ノードｆ、ノードｋを接続し、スイッチ２０ｉに、ノードｂ、ノードｉ、ノードｊの組を接続し、スイッチ２０ｊに、ノードｃ、ノードｄ、ノードｈを接続する旨を示す接続表を出力する。また、設計支援装置１０ａは、スイッチ２０ｋに、ノードｅ、ノードｇ、ノードｌを接続する旨を示す接続表を出力する。
【０１３１】
また、設計支援装置１０ａは、図１８中（ｍ）に示すように、３番目のネットワークに含まれる終端スイッチであるスイッチ２０ｌ〜２０ｏに、特定したノードの組を接続する旨を示す接続表を出力する。詳細には、設計支援装置１０ａは、スイッチ２０ｌにノードａ、ノードｈ、ノードｌを接続し、スイッチ２０ｍに、ノードｂ、ノードｆ、ノードｇの組を接続し、スイッチ２０ｎに、ノードｃ、ノードｅ、ノードｊを接続する旨を示す接続表を出力する。また、設計支援装置１０ａは、スイッチ２０ｏに、ノードｄ、ノードｉ、ノードｋを接続する旨を示す接続表を出力する。
【０１３２】
このように、設計支援装置１０ａは、記憶部１５が記憶する相互直行ラテン方格を用いて、各終端スイッチに接続されるノードの組として、それぞれ異なるノードの組を特定することができる。この結果、設計支援装置１０ａは、各終端スイッチに接続されるノードの組を容易に特定することができる。
【０１３３】
なお、設計支援装置１０ａは、ノードの組を特定する度に、相互直行ラテン方格を算出してもよい。例えば、設計支援装置１０ａは、スイッチの数「ｓ」を算出し、算出したスイッチの数「ｓ」が素数のべき乗となる場合は、行方向および列方向の要素数が「ｓ」となる相互直行ラテン方格を算出し、算出した相互直行ラテン方格を用いて、各終端スイッチに接続されるノードの組を特定してもよい。
【０１３４】
次に、図１９〜図２１を用いて、設計支援装置１０ａが実行する処理の流れについて説明する。なお、設計支援装置１０ａは、図１０に示した処理と同様の処理を実行することで、終端スイッチに接続されるノードの組を特定するものとする。また、以下の説明では、設計支援装置１０ａが実行する処理のうち、図１０中ステップＳ１０２に示す算出処理と、ステップＳ１０７に示す特定処理の流れについて説明する。
【０１３５】
まず、図１９を用いて、設計支援装置１０ａが実行する算出処理の流れについて説明する。図１９は、実施例２に係る設計支援装置がスイッチ数を算出する処理の流れを説明するフローチャートである。なお、図１９に示す各処理のうち、図１１に示す各処理と同様の処理については、同一の符号を付し、説明を省略する。
【０１３６】
例えば、設計支援装置１０ａは、図１９に示すように、図１１に示すステップＳ２０４の処理とステップＳ２０５の処理との間に、ステップＳ４０１に示す処理を実行する。詳細には、設計支援装置１０ａは、「ｓ」の値を「ｉ」の値で除算した剰余が「０」である場合は（ステップＳ２０４：Ｙｅｓ）、「ｓ」の値が素数のべき乗であるか否かを判定する（ステップＳ４０１）。そして、設計支援装置１０ａは、「ｓ」の値が素数のべき乗ではない場合は（ステップＳ４０１：Ｎｏ）、ステップＳ２０５を実行する。一方、設計支援装置１０ａは、「ｓ」の値が素数のべき乗である場合は（ステップＳ４０１：Ｙｅｓ）、ステップＳ２０５の実行をスキップし、ステップＳ２０６を実行する。
【０１３７】
次に、図２０を用いて、設計支援装置１０ａが実行する特定処理の流れについて説明する。図２０は、実施例２に係る設計支援装置がノードの組を特定する処理の流れを説明するフローチャートである。なお、図２０に示す各処理のうち、図１２に示す各処理と同様の処理については、同一の符号を付し、説明を省略する。また、図２１には、ｐ番目のネットワークに含まれる終端スイッチのうち、ｋ番目の終端スイッチに接続されるノードを特定する処理について記載した。
【０１３８】
例えば、設計支援装置１０ａは、図１２に示すステップＳ３０１の処理の前にステップＳ５０１に示す処理を実行し、ステップＳ３０５の処理に変えて、ステップＳ５０２に示す処理を実行する。詳細には、設計支援装置１０ａは、ｐ番目のネットワークに含まれる終端スイッチに接続されるノードの組を特定する場合は、相互直行ラテン方格データ１６に格納された相互直行ラテン方格のうち、ｐ番目の相互直行ラテン方格を読出す（ステップＳ５０１）。なお、ｐの値は０以外の値であるものとする。
【０１３９】
そして、設計支援装置１０ａは、ステップＳ３０４を実行し、変数「ｉ」の値が「ｄ」の値よりも小さい場合は（ステップＳ３０４：Ｙｅｓ）、ステップＳ５０１にて読出した相互直行ラテン方格を用いて変数「ｙ」の値を特定する（ステップＳ５０２）。そして、設計支援装置１０ａは、番号（ｘ、ｙ）が付与されたノードをノードの組に追加する（ステップＳ３０６）。
【０１４０】
次に、図２１を用いて、設計支援装置１０ａが、相互直行ラテン方格を用いて変数「ｙ」の値を特定する処理の流れについて説明する。図２１は、実施例２に係る設計支援装置がｙの値を特定する処理の流れを説明するフローチャートである。なお、図２１には、図２０中ステップＳ５０２に記載した「ｙ」の値を特定する処理を詳細に記載した。
【０１４１】
例えば、設計支援装置１０ａは、変数「ｉ」の値を「１」に初期化する（ステップＳ６０１）。そして、設計支援装置１０ａは、図２０中ステップＳ５０１にて読み出した相互直行ラテン方格のうち、「ｘ」行「ｉ」列の要素が終端スイッチの番号「ｋ」の値と一致するか否かを判定する（ステップＳ６０２）。その後、設計支援装置１０ａは、「ｘ」行「ｉ」列の要素が終端スイッチの番号「ｋ」の値と一致しない場合は（ステップＳ６０２：Ｎｏ）、「ｉ」の値に「１」を加算し（ステップＳ６０３）、ステップＳ６０２を実行する。また、設計支援装置１０ａは、「ｘ」行「ｉ」列の要素が終端スイッチの番号「ｋ」の値と一致する場合は（ステップＳ６０２：Ｙｅｓ）、「ｙ」の値を「ｉ」とし（ステップＳ６０４）、処理を終了する。
【０１４２】
［設計支援装置１０ａの効果］
上述したように、設計支援装置１０ａは、「ｍ／ｄ」以上となる整数であって、１を除く「ｎ」以下の整数および素数のべき乗となる整数のうち、最小の整数を各ネットワークに含まれる終端スイッチの数「ｓ」として算出する。また、設計支援装置１０ａは、終端スイッチの数「ｓ」の値が素数のべき乗である場合は、各ネットワークにそれぞれ異なる相互直行ラテン方格を対応付ける。
【０１４３】
そして、設計支援装置１０ａは、ネットワークごとに、以下の処理を実行する。すなわち、設計支援装置１０ａは、対応付けられた相互直行ラテン方格の各要素のうち、値が同一となる要素を抽出し、抽出した要素と同一の行番号および列番号が付与されたノードの組を、同一の終端スイッチに接続されるノードの組として特定する。
【０１４４】
このように、設計支援装置１０ａは、相互直行ラテン方格を用いて、各終端スイッチに接続されるノードの組を特定する。このため、設計支援装置１０ａは、全てのネットワークにおいて、各終端スイッチに接続されるノードの組として、それぞれ異なるノードの組を容易に特定することができる。
【０１４５】
また、設計支援装置１０ａは、行数が素数のべき乗となる相互直行ラテン方格を記憶する。そして、設計支援装置１０ａは、終端スイッチの数「ｓ」の値が素数のべき乗である場合は、記憶された相互直行ラテン方格のうち、行数が終端スイッチの数「ｓ」と同じ相互直行ラテン方格を用いて、各終端スイッチに接続されるノードの組を特定する。このため、設計支援装置１０ａは、それぞれ異なるノードの組を容易に特定することができる。
【実施例３】
【０１４６】
これまで本発明の実施例について説明したが実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例３として本発明に含まれる他の実施例を説明する。
【０１４７】
（１）設計支援装置１０、１０ａについて
上述した設計支援装置１０、１０ａが発揮する機能は、任意に組み合わせて実行することができる。例えば、設計支援装置１０ａは、利用者の指示に応じて、相互直行ラテン方格を用いたノードの特定、または、設計支援装置１０と同様の処理を用いたノードの特定を行っても良い。また、設計支援装置１０は、ネットワークの数が「２」である場合にも、ネットワークの数が「３」である場合と同様の処理を実行することで、終端スイッチごとに異なるノードの組を特定することができる。
【０１４８】
（２）ネットワークの設計について
上述した設計支援装置１０、１０ａは、終端スイッチと各ノードとの接続関係を示す接続表を作成し、作成した接続表を出力した。しかしながら、実施例はこれに限定されるものではない。例えば、設計支援装置１０、１０ａは、各終端スイッチ同士を接続するネットワークの設計を合わせて実行し、設計したネットワークを示す接続表を合わせて出力してもよい。また、設計支援装置１０、１０ａは、各終端スイッチ同士を接続するネットワークの設計を行わず、任意の接続を行うよう、利用者に指示してもよい。
【０１４９】
（３）パラメータについて
上述した設計支援装置１０、１０ａは、終端スイッチに接続するノードの数「ｄ」をパラメータとして受け付けた。しかしながら、実施例は、これに限定されるものではない。例えば、設計支援装置１０、１０ａは、終端スイッチが有するポートの数「ｅ」を受け付ける。かかる場合、設計支援装置１０、１０ａは、受け付けた「ｅ」の値から所定の数、すなわち、終端スイッチと終端スイッチ同士を接続するスイッチとを接続するためのポートの数を減算した値を「ｄ」として算出してもよい。
【０１５０】
（４）相互直行ラテン方格について
上述した設計支援装置１０ａは、記憶部１５が記憶する相互直行ラテン方格データ１６を用いて、各終端スイッチに接続するノードの組を特定した。しかしながら、実施例はこれに限定されるものではない。例えば、設計支援装置１０ａは、ノードの組の特定を実行する度に、終端スイッチの数「ｓ」を行方向または列方向の要素数とする相互直行ラテン方格を算出し、算出した相互直行ラテン方格を用いて、ノードの組を特定してもよい。
【０１５１】
また、設計支援装置１０ａは、以下の処理を実行しても良い。例えば、設計支援装置１０ａは、終端スイッチの数「ｓ」を算出した際に、ｓ行ｓ列の相互直行ラテン方格が相互直行ラテン方格データ１６に含まれているか否かを判定する。そして、設計支援装置１０ａは、ｓ行ｓ列の相互直行ラテン方格が相互直行ラテン方格データ１６に含まれている場合は、相互直行ラテン方格データ１６に含まれているｓ行ｓ列の相互直行ラテン方格を用いて、ノードの組を特定する。
【０１５２】
一方、設計支援装置１０ａは、ｓ行ｓ列の相互直行ラテン方格が相互直行ラテン方格データ１６に含まれていない場合は、ｓ行ｓ列の相互直行ラテン方格を算出し、算出した相互直行ラテン方格を用いて、ノードの組を特定する。また、設計支援装置１０ａは、算出した相互直行ラテン方格を、相互直行ラテン方格データ１６に追加する。かかる処理を実行することで、設計支援装置１０ａは、相互直行ラテン方格データ１６に、算出した終端スイッチの数「ｓ」を行方向または列方向の要素数とする相互直行ラテン方格が含まれない場合にも、ノードの組の特定を行うことができる。
【０１５３】
（５）プログラム
上記の実施例で説明した設計支援装置１０、１０ａが発揮する機能は、予め用意された設計支援プログラムをコンピュータが実行することで実現してもよい。そこで、以下では、図２２を用いて、上記の設計支援装置１０と同様の機能を有する設計支援プログラムを実行するコンピュータの一例について説明する。図２２は、設計支援プログラムを実行するコンピュータの一例を説明する図である。
【０１５４】
図２２に例示されたコンピュータ１００は、ＲＯＭ（Read  Only  Memory）１１０、ＨＤＤ（Hard  Disk  Drive）１２０、ＲＡＭ（Random  Access  Memory）１３０、ＣＰＵ（Central  Processing  Unit）１４０がバス１６０で接続される。また、図２２に例示されたコンピュータ１００は、各種パラメータを受け付けるためのＩ／Ｏ（Input  Output）１５０が、バス１６０で、ＣＰＵ１４０等と接続される。
【０１５５】
ここで、ＨＤＤ１２０には、設計支援プログラム１２１があらかじめ保持される。ＣＰＵ１４０が設計支援プログラム１２１をＨＤＤ１２０から読み出して実行することによって、図２２に示す例では、設計支援プログラム１２１は、設計支援プロセス１４１として機能するようになる。なお、設計支援プロセス１４１は、図１に示した受付部１１、算出部１２、特定部１３、出力部１４と同様の機能を発揮する。なお、設計支援プロセス１４１は、図１３に示す受付部１１、算出部１２ａ、特定部１３ａ、出力部１４と同様の機能を発揮するようにしてもよい。
【０１５６】
なお、本実施例で説明した設計支援プログラムは、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ（Compact  Disc  Read  Only  Memory）、ＭＯ（Magneto  Optical  Disc）、ＤＶＤ（Digital  Versatile  Disc）などのコンピュータで読取可能な記録媒体に記録される。また、このプログラムは、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【０１５７】
なお、コンピュータ１００は、ＣＰＵ１４０ではなく、例えばＭＰＵやＦＰＧＡ等の演算装置を用いて設計支援プログラム１２１を実行してもよい。また、上記の設計支援プログラム１２１については、例えば、ＲＡＭ１３０や、ＲＯＭ１１０記憶させてもよいし、他の方法でＣＰＵ１４０に実行させてもよい。例えば、フレキシブルディスク、いわゆるＦＤ（Flexible  Disk）、ＣＤ（Compact  Disk）−ＲＯＭ、ＤＶＤ（Digital  Versatile  Disk）、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。
【０１５８】
そして、コンピュータ１００がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ、ＷＡＮ（Wide  Area  Network）などを介して他のコンピュータまたはサーバ装置などに記憶させた各プログラムを取得して実行するようにしてもよい。
【符号の説明】
【０１５９】
１  入力装置
２  出力装置
１０、１０ａ  設計支援装置
１１  受付部
１２、１２ａ  算出部
１３、１３ａ  特定部
１４  出力部
１５  記憶部
１６  相互直行ラテン方格データ
２０、２０ａ〜２０ｏ  スイッチ
【図１】
2015070439.tif 000003
【図２】
2015070439.tif 000004
【図３】
2015070439.tif 000005
【図４】
2015070439.tif 000006
【図５】
2015070439.tif 000007
【図６】
2015070439.tif 000008
【図７】
2015070439.tif 000009
【図８】
2015070439.tif 000010
【図９】
2015070439.tif 000011
【図１０】
2015070439.tif 000012
【図１１】
2015070439.tif 000013
【図１２】
2015070439.tif 000014
【図１３】
2015070439.tif 000015
【図１４】
2015070439.tif 000016
【図１５】
2015070439.tif 000017
【図１６】
2015070439.tif 000018
【図１７】
2015070439.tif 000019
【図１８】
2015070439.tif 000020
【図１９】
2015070439.tif 000021
【図２０】
2015070439.tif 000022
【図２１】
2015070439.tif 000023
【図２２】
2015070439.tif 000024
【図２３】
2015070439.tif 000025