(57)【要約】【課題】ネットワークを構成するルータＲ１〜Ｒ７によって実現されている既存の経路が、要求されているトラヒックに対応できるかどうかの判定をシンプレックス法によって行う際、用意された経路群がボトルネックリンクを共有していて用意された経路では帯域が十分でない場合等においても、最も好ましいトラヒックの分散を求める。【解決手段】シンプレックス法による最適解が存在しない場合に、ボトルネックリンクを発見して迂回経路の追加を行って更にシンプレックス法を適用する。こうすることにより、要求されているトラヒックが現在の経路で収容できるかどうかを判定できると共に、収容できない場合には、必要経路のみを追加することができ、ネットワークリソース消費量・遅延・ホップ数といったネットワークコストに基づく目的関数の設定により、各経路へのトラヒックの分布も最適にすることができる。【選択図】      図１
2004336209.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを構成するルータによって実現されている既存の経路が、要求されているトラヒックに対応できるかどうかの判定を行うことにより、前記ネットワークにおけるトラヒックを分散させるように制御するトラヒック分散制御装置であって、
ネットワークを構成する各ルータ間のトラヒックと前記ネットワークの経路に関する情報とを含む目的関数や制約条件からなる線形計画問題についてシンプレックス法を適用することにより、既存の経路が前記トラヒックに対応できるかどうかについての判定を行う判定手段と、
前記判定手段により既存の経路が前記トラヒックに対応できないと判定されたとき前記既存の経路以外の迂回経路を探索する迂回経路探索手段と、
を有し、前記迂回経路探索手段によって探索された迂回経路を追加して前記判定手段による判定を更に行うようにしたことを特徴とするトラヒック分散制御装置。
【請求項２】
前記判定手段は、前記制約条件から定まる補助目的関数について前記シンプレックス法を適用することにより、要求されているトラヒックに対応できない原因となるボトルネックリンクを発見し、
前記迂回経路探索手段は、前記ボトルネックリンクを迂回するための前記迂回経路を探索することを特徴とする請求項１記載のトラヒック分散制御装置。
【請求項３】
前記迂回経路探索手段は、前記各ルータ間のリンクコストに基づく最短経路を探索するアルゴリズムにより、前記迂回経路を探索することを特徴とする請求項１又は２記載のトラヒック分散制御装置。
【請求項４】
前記判定手段は、所定周期毎に前記判定を行うことを特徴とする請求項１乃至３のいずれか１項に記載のトラヒック分散制御装置。
【請求項５】
前記判定手段は、前記ネットワークを構成するルータそれぞれのトラヒック状況の監視結果に応じて前記判定を行うことを特徴とする請求項１乃至３のいずれか１項に記載のトラヒック分散制御装置。
【請求項６】
前記判定手段の判定結果に基づいて、前記ネットワークのコストを最小にするためのトラヒックを決定するトラヒック決定手段を更に含むことを特徴とする請求項１乃至５のいずれか１項に記載のトラヒック分散制御装置。
【請求項７】
トラヒック決定手段による決定においては、優先度を示す複数のクラスが前記トラヒックに存在する場合、前記クラスに応じてトラヒックを決定することを特徴とする請求項１乃至６のいずれか１項に記載のトラヒック分散制御装置。
【請求項８】
ネットワークを構成するルータによって実現されている既存の経路が、要求されているトラヒックに対応できるかどうかの判定を行うことにより、前記ネットワークにおけるトラヒックを分散させるように制御するトラヒック分散制御方法であって、
ネットワークを構成する各ルータ間のトラヒックと前記ネットワークの経路に関する情報とを含む目的関数や制約条件からなる線形計画問題についてシンプレックス法を適用することにより、既存の経路が前記トラヒックに対応できるかどうかについての判定を行う判定ステップと、
前記判定ステップにより既存の経路が前記トラヒックに対応できないと判定されたとき前記既存の経路以外の迂回経路を探索する迂回経路探索ステップと、
を有し、前記迂回経路探索ステップによって探索された迂回経路を追加して前記判定ステップによる判定を更に行うようにしたことを特徴とするトラヒック分散制御方法。
【請求項９】
前記判定ステップの判定結果に基づいて、前記ネットワークのリソースについての消費量を最小にするためのトラヒックを決定するトラヒック決定ステップを更に含むことを特徴とする請求項８記載のトラヒック分散制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はトラヒック分散制御装置、トラヒック分散制御方法に関し、特にネットワークを構成するルータによって実現されている既存の経路が、要求されているトラヒックに対応できるかどうかの判定を行い、対応できない場合には必要経路のみを追加し、各経路への最適なトラヒック割り当てを求めることにより、ネットワークにおけるトラヒックを分散させるように制御するトラヒック分散制御装置、トラヒック分散制御方法に関する。
【０００２】
【従来の技術】
インターネットのようなネットワークは、現在使用している経路の帯域以上のトラヒックが流入してくる可能性を常にはらんでいる。このようなネットワークでは、トラヒックに対し現在の経路が十分なのか、また十分でない場合にいかに経路を増やせばよいのかが重要な問題である。
【０００３】
現在の経路がトラヒックに対して十分であるか判定する問題は線形計画問題として定式化される。これについて、図１４を参照して説明する。同図には、複数のルータによって構成され、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）に準拠して構成されたネットワーク（以下、ＩＰネットワークと呼ぶ）が示されている。同図に示されているＩＰネットワークは、ルータＲ１、Ｒ２、Ｒ３、Ｒ４、Ｒ５、Ｒ６、Ｒ７が順に接続されている。そして、ルータＲ７がルータＲ１に接続され、環状の構造をなしている。なお、ルータＲ３とルータＲ６とが直接接続されている。
【０００４】
同図（ａ）中の数字「１０」、「２０」は、リンクの帯域（Ｍｂｐｓ）である。すなわち、本例では、ルータＲ２とルータＲ３との間のリンクの帯域が１０Ｍｂｐｓである。そして、その他の各ルータ同士の間のリンクの帯域が２０Ｍｂｐｓである。なお、全てのリンクにおけるリソース消費量は「１」とする。
トラヒックは、ルータＲ１からルータＲ４までの経路、ルータＲ２からルータＲ４までの経路、ルータＲ７からルータＲ４までの経路、のそれぞれについて各１０Ｍｂｐｓである。
【０００５】
また、同図（ｂ）に示されているように、ルータＲ１からルータＲ４までの間には２つの経路ａ１  及びａ２  が存在する。同図（ｃ）に示されているように、ルータＲ２からルータＲ４までの間には２つの経路ｂ１  及びｂ２  が存在する。同図（ｄ）に示されているように、ルータＲ７からルータＲ４までの間には経路ｃ１  が存在する。これらの各経路に流れる流量を変数とし、まとめて経路群変数とする。
【０００６】
ここで、線形計画法の条件式を以下の通りとする。すなわち、目的関数は、
ｆ＝３ａ１  ＋４ａ２  ＋２ｂ１  ＋５ｂ２  ＋３ｃ１  …（１）
である。線形計画法では、この目的関数を最小化する。また、トラヒック量についての制約式は、
ａ１  ＋ａ２  ＝１０…（２）
ｂ１  ＋ｂ２  ＝１０…（３）
ｃ１  ＝１０…（４）
である。リンク帯域についての制約式は、
ａ１  ＋ｂ１  ≦１０…（５）
ａ２  ＋ｂ２  ＋ｃ１  ≦２０…（６）
である。このような条件の下では、
（ａ１  、ａ２  、ｂ１  、ｂ２  、ｃ１  ）＝（０、１０、１０、０、１０）…（７）
が得られる。
【０００７】
以上のように、経路を変数として適当な目的関数を設定し、経路についての制約条件（リンクの帯域を越えない等）とトラヒック量についての制約条件（ある経路は何Ｍｂｐｓ等）を設定する。これらの制約で不等号式となるものは非負のスラック変数を用いて等式（標準系）に変換する。なお、スラック変数とは、等号が成立する条件に対してどれだけ余裕があるかを示す変数である。
【０００８】
ところで、標準系による線形計画問題を解く解法として、一般にシンプレックス法（単体法）が知られている。このシンプレックス法は、制約条件の平面（超平面）で囲まれる幾何学的な凸多面体またはシンプレックス（単体）を可能領域とし、この可能領域内で目的関数を最大（あるいは最小）にする点を見つける手法である。
【０００９】
目的関数は線形であるため勾配を持つ。この勾配の方向に目的関数を増大（あるいは減少）させるといつか可能領域の頂点に到達する。この頂点は可能領域内で目的関数を最大（あるいは最小）にするベクトルを表す。このベクトルは、最適可能ベクトルと呼ばれる。
シンプレックスの解の判定は、この可能領域を利用することで行うことができる。可能領域が存在しない場合、最適可能ベクトルも存在しないため解はない。つまり、現在の経路では条件を満たす変数の値が存在しないため、現在の経路では不十分であることがわかる。逆に、可能領域が存在する場合に得られる最適可能ベクトルは、目的関数に従った最も好ましいトラヒックの分散を表すことになる。
なお、シンプレックス法については、例えば、非特許文献１に記載されている。
【００１０】
【非特許文献１】
伊理正夫・古林隆著  「ネットワーク理論」ＯＲライブラリー１２  日科技連出版、１９８４年
【００１１】
【発明が解決しようとする課題】
上述したように、線形計画問題としてシンプレックス法を用いる手法では、解の有無を判定し、解がある場合に目的関数に応じた最適解を返す。このことから、この手法は、非常に有用な手法である。
しかし、上述した従来の手法では、予め用意された経路群に対してシンプレックス法を適用することになる。例えば、上述した図１４（ｂ）〜（ｄ）に示されている経路ａ１  、ａ２  、ｂ１  、ｂ２  、及び、ｃ１  に対してシンプレックス法を適用することになる。
【００１２】
このため、より少数の経路で充分であるのに、全ての経路について計算することになり、計算量が冗長である場合が生じる。また、予め用意された経路群がボトルネックリンクを共有していて用意された経路では帯域が十分でない場合が生じる。このような場合には、上述した従来の手法では対応できないという欠点がある。
【００１３】
本発明は上述した従来技術の欠点を解決するためになされたものであり、その目的は計算量が冗長である場合や、用意された経路群がボトルネックリンクを共有していて用意された経路では帯域が十分でない場合等においても、最も好ましいトラヒックの分散を求めることのできる、トラヒック分散制御装置、トラヒック分散制御方法を提供することである。
【００１４】
【課題を解決するための手段】
本発明の請求項１によるトラヒック分散制御装置は、ネットワークを構成するルータによって実現されている既存の経路が、要求されているトラヒックに対応できるかどうかの判定を行うことにより、前記ネットワークにおけるトラヒックを分散させるように制御するトラヒック分散制御装置であって、
ネットワークを構成する各ルータ間のトラヒックと前記ネットワークの経路に関する情報とを含む目的関数や制約条件からなる線形計画問題についてシンプレックス法を適用することにより、既存の経路が前記トラヒックに対応できるかどうかについての判定を行う判定手段と、
前記判定手段により既存の経路が前記トラヒックに対応できないと判定されたとき前記既存の経路以外の迂回経路を探索する迂回経路探索手段と、
を有し、前記迂回経路探索手段によって探索された迂回経路を追加して前記判定手段による判定を更に行うようにしたことを特徴とする。このように構成すれば、トラヒックが現在の経路で収容できるかどうかを判定できると共に、収容できない場合には、必要経路のみを追加でき、トラヒックを最適に分散できる。
【００１５】
本発明の請求項２によるトラヒック分散制御装置は、請求項１において、前記判定手段は、前記制約条件から定まる補助目的関数について前記シンプレックス法を適用することにより、要求されているトラヒックに対応できない原因となるボトルネックリンクを発見し、
前記迂回経路探索手段は、前記ボトルネックリンクを迂回するための前記迂回経路を探索することを特徴とする。こうすることにより、従来技術とは異なり、ボトルネックリンクを発見でき、かつ、迂回経路を追加して、トラヒックを最適に分散できる。
【００１６】
本発明の請求項３によるトラヒック分散制御装置は、請求項１又は２において、前記迂回経路探索手段は、前記各ルータ間のリンクコストに基づく最短経路を探索するアルゴリズムにより、前記迂回経路を探索することを特徴とする。後述するアルゴリズムを採用することにより、最短経路を容易に探索することができる。
【００１７】
本発明の請求項４によるトラヒック分散制御装置は、請求項１乃至３のいずれか１項において、前記判定手段は、所定周期毎に前記判定を行うことを特徴とする。こうすることにより、定期的に、経路の設定を更新することができる。
本発明の請求項５によるトラヒック分散制御装置は、請求項１乃至３のいずれか１項において、前記判定手段は、前記ネットワークを構成するルータそれぞれのトラヒック状況の監視結果に応じて前記判定を行うことを特徴とする。こうすることにより、所定量を越えるトラヒックがバースト的に流入してきた場合に、経路の設定を更新することができる。
【００１８】
本発明の請求項６によるトラヒック分散制御装置は、請求項１乃至５のいずれか１項において、前記判定手段の判定結果に基づいて、前記ネットワークのコストを最小にするためのトラヒックを決定するトラヒック決定手段を更に含むことを特徴とする。ネットワークのコストを最小、すなわち、ネットワークのリソースについての消費量を最小にしたり、遅延を最小にするようにしたり、ホップ数を最小にしたりするためのトラヒックを決定することにより、必要経路のみを追加した状態で、トラヒックを最適に分散できる。
【００１９】
本発明の請求項７によるトラヒック分散制御装置は、請求項１乃至６のいずれか１項において、トラヒック決定手段による決定においては、優先度を示す複数のクラスが前記トラヒックに存在する場合、前記クラスに応じてトラヒックを決定することを特徴とする。こうすることにより、要求されているトラヒックに複数のクラスが存在する場合でも、その優先度に応じて最適な経路を設定して、トラヒックを分散することができる。
【００２０】
本発明の請求項８によるトラヒック分散制御方法は、ネットワークを構成するルータによって実現されている既存の経路が、要求されているトラヒックに対応できるかどうかの判定を行うことにより、前記ネットワークにおけるトラヒックを分散させるように制御するトラヒック分散制御方法であって、
ネットワークを構成する各ルータ間のトラヒックと前記ネットワークの経路に関する情報とを含む目的関数や制約条件からなる線形計画問題についてシンプレックス法を適用することにより、既存の経路が前記トラヒックに対応できるかどうかについての判定を行う判定ステップと、
前記判定ステップにより既存の経路が前記トラヒックに対応できないと判定されたとき前記既存の経路以外の迂回経路を探索する迂回経路探索ステップと、
を有し、前記迂回経路探索ステップによって探索された迂回経路を追加して前記判定ステップによる判定を更に行うようにしたことを特徴とする。この方法によれば、トラヒックが現在の経路で収容できるかどうかを判定できると共に、収容できない場合には、必要経路のみを追加でき、トラヒックを最適に分散できる。
【００２１】
本発明の請求項９によるトラヒック分散制御方法は、請求項８において、前記判定ステップの判定結果に基づいて、前記ネットワークのリソースについての消費量を最小にするためのトラヒックを決定するトラヒック決定ステップを更に含むことを特徴とする。こうすることにより、必要経路のみを追加した状態で、トラヒックを最適に分散できる。
【００２２】
要するに本発明は、現在の経路がトラヒックに対して十分であるかシンプレックス法により判定を行い、不十分である場合、シンプレックス法の特性を利用してボトルネックリンクを発見し、ボトルネックリンクを迂回する経路を新たに経路群に追加することで動的かつ必要箇所のみの経路追加を実現する。また、ネットワークコストを最小にするように目的関数を設定し、判定により求まった経路に対し最適なトラヒックの分散を行う。
【００２３】
ここで、本発明が従来技術と異なる点は、最適解が存在しない場合に、要求されているトラヒックに対応できない原因となるボトルネックリンクを発見して迂回経路の追加を行う点である。従来技術においては、最適解が存在しない場合には、そこで処理が終了してしまい、ボトルネックの発見や迂回経路の追加は行っていない。
【００２４】
ボトルネックの発見は、以下のように行う。すなわち、制約条件から定まる、補助目的関数（後述する）が０にならずに停止した時点での仮の可能ベクトルを利用する。この仮のベクトルは現在の経路に対して最大限のトラヒックを流した状態を表しているので、この値とリンク帯域の値とを比較すれば、ボトルネックリンクを発見することができる。
なお、このボトルネックリンクを迂回する経路は、後述する各種のアルゴリズムによって求めることができる。
【００２５】
【発明の実施の形態】
次に、図面を参照して本発明の実施の形態について説明する。なお、以下の説明において参照する各図においては、他の図と同等部分に同一符号が付されている。
図１は本発明によるトラヒック分散制御装置を含むネットワーク全体の構成を示すブロック図である。同図に示されているように、本例では、ＩＰネットワークは、ルータＲ１からＲ７が順に接続された、環状の構造をなしている。ルータＲ３とルータＲ６とが直接接続されている。
【００２６】
これらの各ルータＲ１〜Ｒ７におけるトラヒック状況は、トラヒック分散制御装置１によって監視される。このトラヒック分散制御装置１の構成について、図２を参照して説明する。
同図に示されているトラヒック分散制御装置１は、ＩＰネットワークを構成するルータＲ１〜Ｒ７のトラヒック状況を受信して監視する監視機能１１と、シンプレックス法を適用することにより、既存の経路が、要求されているトラヒックに対応できるかどうかについて判定する判定機能１２と、既存の経路が上記トラヒックに対応できないと判定されたとき既存の経路以外の迂回経路を探索して求める迂回経路探索機能１３と、判定機能１２による判定結果に基づいて、ネットワークリソース消費量・遅延・ホップ数といったネットワークコストを最小にするためのトラヒックを決定するトラヒック決定機能１４と、トラヒック決定機能１４によって決定されたトラヒックを各ルータＲ１〜Ｒ７へ設定するための情報を通知する通知機能１５とを含んで構成されている。
【００２７】
このような構成からなるトラヒック分散制御装置１の動作について図３及び図４を参照して説明する。図３及び図４は、トラヒック分散制御装置１の動作を示すフローチャートである。
トラヒック分散制御装置１は、トラヒックの状況をネットワーク内のルータから監視する（ステップＳ２００）。トラヒック分散制御装置１は、現在の経路がトラヒックに対応できるかどうかの判定を行う。その判定は、定期的に（つまり所定周期毎に）行っても良いし、所定量を越えるトラヒックがバースト的に流入してきた場合に開始しても良い。すなわち、所定周期が到来した場合、又はバースト的にトラヒックが流入してきた場合が、判定を行うトリガとなる（ステップＳ２０１）。このトリガに応答して、トラヒック分散制御装置１は、現在の経路がトラヒックに対応できるかどうかの判定を開始する（ステップＳ２０１→Ｓ２０２）。
【００２８】
その判定においては、最初に、シンプレックス法の目的関数を設定する（ステップＳ２０３）。例えば、ネットワークリソース消費量（すなわちコスト）を最小化するような関数を、シンプレックス法の目的関数に設定する。
次に、制約条件を設定する（ステップＳ２０４）。例えば、リンク帯域に関する制約、流れるトラヒックに関する制約を、シンプレックス法の制約条件として設定する。さらに、シンプレックスの初期可能ベクトルを求めるための補助目的関数を設定する（ステップＳ２０５）。
【００２９】
以上の設定が完了したら、まず補助目的関数と制約条件についてシンプレックス法を解く（ステップＳ２０６）。
補助目的関数が規定の条件を満たせば、図４に移り、得られたベクトルを初期可能ベクトルとして目的関数と制約条件についてシンプレックス法を解く（ステップＳ２０７→Ｓ３０１）。そして、トラヒック分散の仕方を表す最適可能ベクトルから、品質について複数のクラス（後述する）が存在していても、それらクラスに対応した、トラヒックの最適な分散が得られる（ステップＳ３０２）。この最適可能ベクトルをネットワークルータに通知し（ステップＳ３０３）、処理は終了となる。
【００３０】
図３に戻り、ステップＳ２０７において、補助目的関数が規定の条件を満たさない場合、その状態でのベクトルからボトルネックリンクを特定する（ステップＳ２０７→Ｓ２０８）。そして、ボトルネックリンクを利用する経路についてのみ迂回経路を求める（ステップＳ２０９）。
迂回経路が存在しない場合、図４に移り、ネットワーク全体の帯域でもトラヒックには対応できない、ということになる（ステップＳ２１０→Ｓ３０４）。この状態が得られるベクトルから、この状態での最適トラヒック分散が得られる（ステップＳ３０５）。この場合、解無しである旨をネットワークルータに通知し（ステップＳ３０３）、処理は終了となる。
【００３１】
図３に戻り、ステップＳ２１０において、迂回経路が存在する場合、経路群変数として追加し（ステップＳ２１０→Ｓ２１１）。そして、再度、目的関数・制約条件・補助目的関数の設定を行い（ステップＳ２０３、Ｓ２０４、Ｓ２０５）、シンプレックスを解く（ステップＳ２０６）。以下、再帰的に、上記の処理が繰返される。
【００３２】
（トラヒック分散制御方法）
以上の動作を行うトラヒック分散制御装置においては、以下のようなトラヒック分散制御方法が実現されている。すなわち、ネットワークを構成するルータによって実現されている既存の経路が、要求されているトラヒックに対応できるかどうかの判定を行うことにより、上記ネットワークにおけるトラヒックを分散させるように制御する方法であり、ネットワークを構成する各ルータ間のトラヒックと上記ネットワークの経路に関する情報とを含む目的関数や制約条件からなる線形計画問題についてシンプレックス法を適用することにより、既存の経路が上記トラヒックに対応できるかどうかについての判定を行う判定ステップ（上記ステップＳ２０３〜Ｓ２０６に対応）と、上記判定ステップにより既存の経路が上記トラヒックに対応できないと判定されたとき上記既存の経路以外の迂回経路を探索する迂回経路探索ステップ（上記ステップＳ２０７〜Ｓ２０９に対応）と、を有し、上記迂回経路探索ステップによって探索された迂回経路を追加して上記判定ステップによる判定を更に行う（上記ステップＳ２１０、Ｓ２１１…に対応）ようにした、トラヒック分散制御方法が実現されている。また、上記判定ステップの判定結果に基づいて、上記ネットワークのリソースについての消費量を最小にするためのトラヒックを決定するトラヒック決定ステップ（上記ステップＳ３０１及びＳ３０２、ステップＳ３０４及びＳ３０５に対応）を更に含んでいる。以上のような方法によれば、トラヒックが現在の経路で収容できるかどうかを判定できると共に、収容できない場合には、必要経路のみを追加でき、トラヒックを最適に分散できる。
【００３３】
（各ルータにおける処理）
上述した通知機能１４によって通知される情報に基づき、各ルータＲ１〜Ｒ７は経路情報を更新する。すなわち、図１中の各ルータＲ１〜Ｒ７内には、ネットワーク内の経路を示す経路情報が記憶されており、上記処理によって経路が追加された場合に通知機能１４によって通知される情報に基づいて、各ルータＲ１〜Ｒ７は経路情報を追加する処理を行う。また、トラヒックに後述するクラスが存在する場合には、通知機能１４によって通知される情報に基づいて、各ルータＲ１〜Ｒ７は各クラスと経路情報とを対応付ける処理を行う。
【００３４】
（シンプレックス法）
ここで、シンプレックス法と、その特性からボトルネックリンクを発見する原理と、について述べる。
シンプレックス法は可能領域内で目的関数を最大（あるいは最小）にする最適可能ベクトルを求める手法である。まず、その解に至る具体的な過程を説明する。
シンプレックス法では可能領域の頂点に解が存在することが知られている。この可能領域の頂点のうち、目的関数を最大（あるいは最小）にするものを最適可能ベクトル、その他の頂点を可能ベクトルと呼ぶ。
【００３５】
シンプレックス法はまず任意の可能ベクトルを求めることから始まる。可能ベクトルが求まれば、そこを始点に目的関数の勾配に従い他の可能ベクトルへの移動を繰返すことで最適可能ベクトルに到達する。逆に、可能ベクトルが存在しない場合、つまり可能領域が存在しない場合は解が存在しない。
図５（ａ）において、目的関数ｆ＝ｘ＋ｙを最大化する場合を考える。制約条件は、ｘ、ｙ≧０…（８）
−２ｘ＋４ｙ≦３２…（９）
７ｘ−２ｙ≦８…（１０）
である。制約条件を全て満たす領域がシンプレックス（可能領域）である。これは、同図（ａ）中のｘ軸及びｙ軸と、直線Ｓ１及び直線Ｓ２に囲まれた領域Ｓである。なお、同図（ａ）において、直線Ｓ１は式（９）による直線、直線Ｓ２は式（１０）による直線、である。
【００３６】
シンプレックス法における演算の意味は、目的関数が増加する方向に頂点から頂点へと境界を進み、最適可能ベクトルに到達することである。この演算について、同図（ｂ）を参照して説明する。同図（ｂ）に示されているように、初期の可能ベクトル（ｘ、ｙ）＝（０、０）から演算を開始する。同図（ｂ）中の矢印Ｙ１１及びＹ１２が目的関数の増加方向である。なお、同図（ｂ）中には、原点Ｐを通るｆ＝０の直線Ｌ１、領域Ｓの次の頂点を通るｆ＝８の直線Ｌ２、直線Ｓ１と直線Ｓ２とが交差する点を通るｆ＝１２の直線Ｌ３、が示されている。
【００３７】
同図（ｂ）において、領域Ｓの境界に沿って、目的関数の増加方向に進むと、境界では矢印Ｙ２１方向に進んだ後、矢印Ｙ２２方向に進むことになる。この結果、最適可能ベクトル（ｘ、ｙ）＝（４、１０）が得られる。
ところで、初期の可能ベクトルを求めるためには、本来の目的関数以外に別の目的関数を定め（以下、補助目的関数と呼ぶ）、まずその補助目的関数についてシンプレックス法を解く。補助目的関数がある値（例えば０）になると、そのときの各変数の値が初期の可能ベクトルとなる。
【００３８】
図６において、目的関数ｆ＝ｘ＋ｙを最大化する場合、制約条件は、
ｘ、ｙ≧０…（８）
−２ｘ＋４ｙ≦３２…（９）
７ｘ−２ｙ≦８…（１０）
ｘ≧７…（１１）
である。同図（ａ）には、図５の場合と同じ領域Ｓの他に、領域Ｓ’が示されている。ここで、非負のスラック変数α、β、γを用いて、式（９）〜式（１１）を等式に変形すると、
−２ｘ＋４ｙ＋α＝３２…（１２）
７ｘ−２ｙ＋β＝８…（１３）
ｘ−γ＝７…（１４）
となる。さらに、人工変数ｚ１、ｚ２、ｚ３と移項により、式（１２）〜式（１４）を変形すると、
ｚ１＝３２＋２ｘ−４ｙ−α…（１５）
ｚ２＝８−７ｘ＋２ｙ−β…（１６）
ｚ３＝７−ｘ＋γ…（１７）
となる。ここで、
ｆ’＝−ｚ１−ｚ２−ｚ３＝−４７＋５ｘ＋２ｙ−α−β＋γ…（１８）
とおく。この式（１８）が補助目的関数である。
【００３９】
この補助目的関数は、式（８）のような非負条件以外の制約条件を、スラック変数により全て等式に変形した後、それぞれの制約条件に対し人工変数を設定し、その人工変数に−（マイナス）を掛けて合計した式である。
この補助目的関数について、同図（ｂ）に示されているように解く。同図（ｂ）中の矢印Ｙ１１’及びＹ１２’が目的関数の増加方向である。なお、同図（ｂ）中には、原点Ｐを通るｆ’＝−４７の直線Ｌ１’、領域Ｓ’の次の頂点を通るｆ’＝−３１の直線Ｌ２’、直線Ｓ１と直線Ｓ２とが交差する点を通るｆ’＝−７の直線Ｌ３’、が示されている。
【００４０】
ここで、式（１５）〜式（１７）は、式（１２）〜式（１４）や式（９）〜式（１１）と同じ問題ではない。これらが同じ問題になるのは、ｚ１、ｚ２、ｚ３が０になるときであるため、ｚ１、ｚ２、ｚ３が全て０にならないと制約条件がそもそも満たされないことになる。このため、可能領域があり、可能ベクトルが存在する場合は必ず各ｚ１、ｚ２、ｚ３は全て０になり、従って補助目的関数も０になるはずである。つまり、ｚ１、ｚ２、ｚ３に値がある（０でない）と制約条件が変わることになる。
【００４１】
補助目的関数についてシンプレックス法を解くとは、以下の処理を行うことである。すなわち、補助目的関数がある制約条件による超平面にぶつかった後、補助目的関数をその超平面上に射影し、勾配に沿ってその超平面を進む。そして、新しい制約条件による超平面にぶつかるとまた再度射影を行い、勾配に沿って進む。以上の処理を繰返す。
【００４２】
同図（ｂ）においては、領域Ｓの境界に沿って、目的関数の増加方向に進むと、境界では矢印Ｙ２１’方向に進んだ後、矢印Ｙ２２’方向に進むことになる。
そして、ある頂点にたどり着き、その先に領域が存在しないにもかかわらず、補助目的関数が０にならないとすると、解が存在しないということになる。この場合、可能ベクトルは存在しない。
【００４３】
要するに、補助目的関数が規定の値０になれば初期可能ベクトルが存在し、補助目的関数が規定の値０にならなければ初期可能ベクトルは存在しない。本例の場合、補助目的関数が規定の値０にならず、目的関数の増加方向に領域が無い。したがって、解が存在しないことになる。
つまり、ある頂点にたどり着き、その先に領域が存在しないにもかかわらず補助目的関数が０にならない状態をもって解なしと判定される。この解なしが判定される直前にたどり着いた頂点は、そこに到達するまでの制約条件（超平面）は満たしている。この時点で得られる各変数の値を仮の可能ベクトルとする。
【００４４】
この状態が意味するところは、各経路にはリンクの帯域内で流せるだけのトラヒックを流しているが、流すべきトラヒックはまだ存在するということである。つまり、リンクの帯域に対する制約条件と、流すべきトラヒック量に関する制約条件とがお互いに疎であるため可能領域が存在しないのである。したがって、この仮の可能ベクトルから、各経路にはどの程度のトラヒックが流れ、その結果どのリンクがボトルネックとなっているのか特定することができる。
【００４５】
同図（ａ）に示されている場合、領域Ｓと領域Ｓ’とが互いに疎であるため、可能領域は存在しない。可能領域の存在有無については、制約条件が同図に示されているような２次元の場合は自明である。しかし、制約条件がより高次元の場合は存在有無の判定が困難である。
同図（ｂ）に示されている状態は、仮の可能ベクトルに到達するまで、いくつかの制約条件に沿って進んでいるが、この先に進むべき領域が無い状態である。このような状態がネットワークにおいて意味することは、以下のようなことである。すなわち、各経路にはリンク帯域内で流せるだけのトラヒックを流しているが、流すべきトラヒックはまだ存在することを意味する。このため、仮の可能ベクトルの値を経路群変数の値とすると、ボトルネックリンクを決定することができる。
【００４６】
そこで、このボトルネックを回避するように所定のアルゴリズムにより経路の再計算を行えば、このボトルネックリンクを利用していた経路についてのみ最適な迂回経路が求まり、その他の経路に影響を与えずにすむ。この経路の再計算には、例えばダイクストラ（Ｄｉｊｋｓｔｒａ）のアルゴリズム、べき乗法、ウォーシャル・フロイド（Ｗａｒｓｈａｌｌ−Ｆｌｏｙｄ）のアルゴリズム、を用いることができる。すなわち、各ルータ間のリンクコストに基づく最短経路を探索するアルゴリズムにより、迂回経路を探索する。
【００４７】
（ダイクストラ）
ダイクストラは、ネットワーク内のノードとノードとの間で、コストが最小になる最短経路木を作成する手法である。各ノード間のリンクコストの合計が最小になる経路が最短経路木に記録される。ボトルネックリンクのコストを上昇させ、ダイクストラのアルゴリズムを用いて再計算を行うと、コストの高いリンクは最短経路として選択されなくなる。このため、迂回経路を求めることができる。
【００４８】
ここで、ダイクストラを適用して迂回経路を求める手順の例について、図７を参照して説明する。同図（ａ）において、ルータ間の数字は、リンクコストを示している。すなわち、ルータＲ３とルータＲ６との間のみリンクコストが２であり、その他のルータ同士の間はリンクコストが１である。
ここで、ルータＲ１からルータＲ４までの最短経路をダイクストラによって探索する。この最短経路は、同図（ｂ）に示されているように、ルータＲ２及びＲ３を経由する経路である。この経路のリンクコストは３である。
【００４９】
この最短経路だけではトラヒックが流れない場合、ボトルネックリンクを発見し、そのリンクコストを上昇させる。すなわち、同図（ｃ）に示されているように、ルータＲ２とルータＲ３との間のリンクコストを上昇させる。ここでは、ルータＲ２とルータＲ３との間のリンクコストを１００に上昇させる。このようにリンクコストを上昇させた状態で、ダイクストラによって迂回経路を求める。この迂回経路は、同図（ｄ）に示されているように、ルータＲ７、Ｒ６及びＲ５を順に経由する経路である。この経路のリンクコストは４である。
【００５０】
これら２つの経路でもトラヒックが流れない場合、ボトルネックリンクを再度発見し、そのリンクコストを上昇させる。すなわち、同図（ｅ）に示されているように、ルータＲ６とルータＲ５との間及びルータＲ５とルータＲ４との間のリンクコストを上昇させる。ここでは、ルータＲ６とルータＲ５との間及びルータＲ５とルータＲ４との間のリンクコストをそれぞれ１００に上昇させる。このようにリンクコストを上昇させた状態で、ダイクストラによってさらに迂回経路を求める。この迂回経路は、同図（ｆ）に示されているように、ルータＲ７、Ｒ６及びＲ３を順に経由する経路である。この経路のリンクコストは５である。
以上のように、ボトルネックリンクが発見された場合には、ダイクストラによって迂回経路を求める。そして、この求めた迂回経路を追加した状態で、更にシンプレックス法を適用する。
【００５１】
（ウォーシャル・フロイド）
ウォーシャル・フロイドとは、拠点数を「ｎ」、ｉ番目の拠点の名称を「Ｌｉ  」、拠点ｉと拠点ｊとの距離を「ｄｉｊ」とした場合に、次の手順により最短経路を決定する解法である。なお、「距離ｄｉｊ」とは、物理的な距離に限らず、コスト、時間等何らかの概念の距離であればよい。また、拠点ｉと拠点ｊとが接続されていない場合には、距離ｄｉｊ＝∞となる。
【００５２】
手順１：  ｄｉｊ（０）＝ｄｉｊ，ｐｉｊ＝ｉ（ｉ，ｊ＝１，２，３，…ｎ）、ｍ＝１とおく。
手順２：  （ａ）ｄｉｊ（ｍ）＝ｍｉｎ（ｄｉｊ（ｍ−１），ｄｉｍ（ｍ−１）＋ｄｍｊ（ｍ−１）とする。（ｂ）ｄｉｊ（ｍ）＜ｄｉｊ（ｍ−１）である（ｉ，ｊ）に対して、ｐｉｊ＝ｐｍｊとする。
手順３：  ｍ＝ｎならば終了する。ｍ＜ｎならばｍの値を１増やして手順２に戻る。ここで、ｄｉｊ（ｍ）は、Ｌｉ  からＬｊ  への経路を示し、中間の通過点としてＬ１  ，Ｌ２  ，…Ｌｍ  だけを許すものの中での最短距離である。ｍ＝ｎまで進んだときのｄｉｊ（ｎ）は、Ｌｉ  からＬｊ  への最短経路であり、ｐｉｊは、Ｌｉ  からＬｊ  への最短経路におけるＬｊの直前の拠点の番号である。
【００５３】
上述したダイクストラやウォーシャル・フロイドのアルゴリズムによって迂回経路として求められ、新たに加わる経路は、必要最低限なリンクである。このため、シンプレックスの変数の増加を防ぐことができる。この新しい経路の追加により経路全体の帯域が広がる。したがって、帯域に関する制約条件とトラヒック量に関する制約条件とが可能領域を持つまで経路の追加を繰返せば、変数の数が最も少なくかつ最適な経路の追加を行うことができる。
【００５４】
もちろん補助目的関数が０になる場合は、そのとき得られるベクトルを初期の可能ベクトルとして、目的関数や制約条件からなる線形計画問題についてシンプレックス法を解くことで最適可能ベクトルが求まる。
次に、上述した経路群変数に対し、ネットワークコストをできるだけ抑えるようにトラヒックの分散を行う手法について説明する。
【００５５】
上述したように、シンプレックス法は目的関数についての最大化・最小化を行う手法である。つまり、ネットワークリソースの消費量をネットワークのコストとして、この目的関数をネットワークリソースの消費量を最小に抑えるように設定すれば、解が存在するか判定できるとともに、解が存在する場合には最適可能ベクトルとして最適なトラヒックの流し方を得ることができる。
【００５６】
各リンクが単位トラヒックあたりに消費するネットワークリソースが定まっているとすると、各経路は個々のリンクの集合であるので、各経路の消費するネットワークリソースは経路に含まれるリンクの消費するネットワークリソースの合計になる。
ここで、図８に示されているネットワークについて、ネットワークリソースの消費量を最低限に抑えるように目的関数を設定する場合を考える。なお、図８において、全てのリンクにおけるリソースの消費量は、１とする。
【００５７】
まず、リンクＬにおけるリソースの消費量をＣＬ  とする。すると、経路ＰｉのコストＣＰｉは利用するリンクコストの総和なので、
ＣＰｉ＝  Σ  ＣＬ  …（１６）
Ｌ∈Ｐｉ
である。経路を流れるトラヒックをｘｉ  とすると、目的関数ｆは、
ｉ＝１  
ｆ＝  Σ  ＣＰｉｘｉ  …（１７）
ｉ≦ｎ  
となる。つまり、目的関数ｆを最小にするｘｉ  はネットワークリソースの消費量を最小に抑えるトラヒックの流し方を表す。
【００５８】
同図（ａ）を参照するとルータＲ１とルータＲ４との間には、経路ａ１  と経路ａ２  とが存在する。同図（ｂ）を参照するとルータＲ２とルータＲ４との間には、経路ｂ１  と経路ｂ２  とが存在する。同図（ｃ）を参照するとルータＲ７とルータＲ４との間には、経路ｃ１  が存在する。
【００５９】
同図（ａ）において、経路ａ１  のコストは、ルータＲ１とルータＲ２との間のリンク（以後、「Ｌｉｎｋ（Ｒ１−Ｒ２）」等と略記する）、Ｌｉｎｋ（Ｒ２−Ｒ３）のコストの合計である。したがって、１＋１＋１＝３がコストとなる。また、経路ａ２  のコストは、Ｌｉｎｋ（Ｒ１−Ｒ７）、Ｌｉｎｋ（Ｒ７−Ｒ６）、Ｌｉｎｋ（Ｒ６−Ｒ５）、Ｌｉｎｋ（Ｒ５−Ｒ４）のコストの合計である。したがって、１＋１＋１＋１＝４がコストとなる。同図（ｂ）中の経路ｂ１  、ｂ２  、同図（ｃ）中の経路ｃ１  についても、同様にコストを求めると、経路ｂ１  のコストは２、経路ｂ２  のコストは５、経路ｃ１  のコストは３、となる。
【００６０】
よって、このように求めた各経路についてのリソースの消費量と経路の流量との積をとった目的関数は、
ｆ＝３ａ１  ＋４ａ２  ＋２ｂ１  ＋５ｂ２  ＋３ｃ１  
となる。目的関数は各経路のトラヒック量を変数とした値になるが、経路のネットワークリソースの消費量を定数（本例では１）として設定すれば、ネットワークリソースの消費量を最小化することができる。
【００６１】
【実施例】
以下、本発明の第１の実施例〜第３の実施例について、図９〜図１２を参照して説明する。
（第１の実施例）
本実施例のネットワークのトポロジが図９（ａ）に示されている。同図（ａ）において、リンクの帯域は、ルータＲ２とルータＲ３との間のみ１０Ｍｂｐｓで、その他のルータ間は２０Ｍｂｐｓである。なお、各リンクが単位トラヒックあたりに消費するネットワークリソースは１とする。
【００６２】
また、トラヒックは、ルータＲ１とルータＲ４との間、ルータＲ２とルータＲ４との間、ルータＲ７とルータＲ４との間で、それぞれ５Ｍｂｐｓである。同図（ｂ）、（ｃ）、（ｄ）に示されているように、現在利用されている経路はａ１  、ｂ１  、ｃ１  である。目的関数を、ネットワークリソースの消費量を最小化するように設定し、リンクに対する制約条件、トラヒック量に対する制約条件、補助目的関数を設定し、現在のリンクで対応できるかどうか判定を行う。
【００６３】
同図（ｂ）、（ｃ）、（ｄ）に示されている場合、目的関数ｆ＝３ａ１  ＋２ｂ１  ＋３ｃ１  について、シンプレックス法で解けば、可能ベクトル
（ａ１  、ｂ１  、ｃ１  ）＝（５、５、５）
が求まる。この状態では現在の経路のみで対応できるため、そのままトラヒックは転送される。
【００６４】
次に、トラヒックが、ルータＲ１とルータＲ４との間、ルータＲ２とルータＲ４との間、ルータＲ７とルータＲ４との間で、それぞれ１０Ｍｂｐｓに増加した場合を考える。現在利用されている経路は、経路ａ１  、ｂ１  、ｃ１  のままである。
目的関数ｆ＝３ａ１  ＋２ｂ１  ＋３ｃ１  を、ネットワークリソースの消費量を最小化するように設定し、リンクに対する制約条件、トラヒック量に対する制約条件、補助目的関数を設定する。そして、現在のリンクで対応できるかどうか、シンプレックス法による判定を行う。
【００６５】
この状態では、仮の可能ベクトルは、
（ａ１  、ｂ１  、ｃ１  ）＝（１０、０、１０）
で補助目的関数が０にならず停止する。つまり、Ｌｉｎｋ（Ｒ２−Ｒ３）に限界の１０Ｍｂｐｓが流れていることがわかり、この仮の可能ベクトルからＬｉｎｋ（Ｒ２−Ｒ３）がボトルネックリンクであることがわかる。
【００６６】
このボトルネックリンクであるＬｉｎｋ（Ｒ２−Ｒ３）を回避するようにダイクストラにより次善経路の計算を行う。これにより、同図（ｅ）、（ｆ）、（ｇ）に示されているように、迂回経路である新たな経路ａ２  及びｂ２  が追加される。この経路が追加された状態で、再度シンプレックス法による判定を行う。
つまり、目的関数
ｆ＝３ａ１  ＋４ａ２  ＋２ｂ１  ＋５ｂ２  ＋３ｃ１  
についてシンプレックス法を解くと、対応できることがわかり、可能ベクトル
（ａ１  、ａ２  、ｂ１  、ｂ２  、ｃ１  ）＝（０、１０、１０、０、１０）
が求まる。
【００６７】
（第２の実施例）
本実施例のネットワークのトポロジが図１０（ａ）に示されている。同図（ａ）において、リンクの帯域は、ルータＲ２とルータＲ３との間のみ１０Ｍｂｐｓで、その他のルータ間は２０Ｍｂｐｓである。なお、各リンクが単位トラヒックあたりに消費するネットワークリソースは１とする。
【００６８】
本実施例では、トラヒックには、優先度を示す２つのクラス（ｃｌａｓｓ）が存在するものとする。すなわち、クラスＡとクラスＢとが存在する。そして、それらクラスの優先度は、クラスＡ＞クラスＢである。
また、ルータＲ１とルータＲ４との間、ルータＲ２とルータＲ４との間、ルータＲ７とルータＲ４との間で、各クラスＡ、クラスＢのトラヒックがそれぞれ５Ｍｂｐｓである。同図（ｂ）、（ｃ）、（ｄ）に示されているように、現在利用されている経路はａ１  、ｂ１  、ｃ１  である。目的関数を、ネットワークリソースの消費量を最小化するように設定し、リンクに対する制約条件、トラヒック量に対する制約条件を設定する。
【００６９】
ここで、クラスＡのトラヒックは最短経路で送るという品質要求があると、それを表す条件としてａ１  ≧５、ｂ１  ≧５、ｃ１  ≧５が加わる。この式は最短経路にクラスＡ以上のトラヒックが流れることを表している。これらの制約条件から補助目的関数を設定し、現在のリンクで対応できるかどうか判定を行う。
同図（ｂ）、（ｃ）、（ｄ）に示されている場合、目的関数
ｆ＝３ａ１  ＋２ｂ１  ＋３ｃ１  
について、シンプレックス法で解けば、仮の可能ベクトルは、
（ａ１  、ｂ１  、ｃ１  ）＝（５、５、１０）
で解無しとなる。
【００７０】
この状態では、仮の可能ベクトルは、
（ａ１  、ｂ１  、ｃ１  ）＝（５、５、１０）
で補助目的関数が０にならず停止する。この仮の可能ベクトルからＬｉｎｋ（Ｒ２−Ｒ３）がボトルネックリンクであることがわかる。
このボトルネックリンクを回避するようにダイクストラにより次善経路の計算を行い、迂回経路を求める。この結果、同図（ｅ）、（ｆ）、（ｇ）に示されている、新たなａ２  、ｂ２  が得られ、これらを目的関数の変数として追加する。
【００７１】
この変数が追加された目的関数
ｆ＝３ａ１  ＋４ａ２  ＋２ｂ１  ＋５ｂ２  ＋３ｃ１  
について、品質要求を考慮した式ａ１  ≧５、ｂ１  ≧５、ｃ１  ≧５を加え、再度シンプレックス法による判定を行う。すると対応できることがわかり、品質要求を満たした最適解としての可能ベクトル
（ａ１  、ａ２  、ｂ１  、ｂ２  、ｃ１  ）＝（５、５、５、５、１０）
が求まる。
【００７２】
（第３の実施例）
本実施例のネットワークのトポロジが図１１（ａ）に示されている。同図（ａ）において、リンクの帯域は、ルータＲ２とルータＲ３との間のみ１０Ｍｂｐｓで、その他のルータ間は２０Ｍｂｐｓである。なお、各リンクが単位トラヒックあたりに消費するネットワークリソースは１とする。
【００７３】
本実施例では、トラヒックに、３つのクラスが存在するものとする。すなわち、クラスＡとクラスＢとクラスＣとが存在する。そして、それらクラスの優先度は、クラスＡ＞クラスＢ＞クラスＣである。
また、ルータＲ１とルータＲ４との間、ルータＲ２とルータＲ４との間、ルータＲ７とルータＲ４との間で、各クラスＡ、クラスＢ、クラスＣのトラヒックがそれぞれ５Ｍｂｐｓである。同図（ｂ）、（ｃ）、（ｄ）に示されているように、現在利用されている経路はａ１  、ｂ１  、ｃ１  である。目的関数を、ネットワークリソースの消費量を最小化するように設定し、リンクに対する制約条件、トラヒック量に対する制約条件を設定する。
【００７４】
ここで、クラスＡのトラヒックは最短経路で送るという品質要求があると、それを表す条件としてａ１  ≧５、ｂ１  ≧５、ｃ１  ≧５が加わる。この式は最短経路にクラスＡ以上のトラヒックが流れることを表している。これらの制約条件から補助目的関数を設定し、現在のリンクで対応できるかどうか判定を行う。
同図（ｂ）、（ｃ）、（ｄ）に示されている場合、目的関数
ｆ＝３ａ１  ＋２ｂ１  ＋３ｃ１  
について、シンプレックス法で解けば、仮の可能ベクトルは、
（ａ１  、ｂ１  、ｃ１  ）＝（５、５、１０）
で解無しとなる。
【００７５】
この状態では、可能ベクトルは、
（ａ１  、ｂ１  、ｃ１  ）＝（５、５、１０）
で補助目的関数が０にならず停止する。この仮の可能ベクトルからＬｉｎｋ（Ｒ２−Ｒ３）がボトルネックリンクであることがわかる。
このボトルネックリンクを回避するようにダイクストラにより次善経路の計算を行い、迂回経路を求める。この結果、同図（ｅ）、（ｆ）、（ｇ）に示されている、新たな経路ａ２  、ｂ２  が得られ、これらを目的関数の変数として追加する。
【００７６】
この変数が追加された目的関数
ｆ＝３ａ１  ＋４ａ２  ＋２ｂ１  ＋５ｂ２  ＋３ｃ１  
について、品質要求を考慮した式ａ１  ≧５、ｂ１  ≧５、ｃ１  ≧５を加え、再度シンプレックス法による判定を行う。すると、この状態でも仮の可能ベクトル
（ａ１  、ａ２  、ｂ１  、ｂ２  、ｃ１  ）＝（５、５、５、５、１０）
で解無しとなる。
【００７７】
この状態では、仮の可能ベクトルは、
（ａ１  、ａ２  、ｂ１  、ｂ２  、ｃ１  ）＝（５、５、５、５、１０）
で補助目的関数が０にならず停止する。この仮の可能ベクトルからＬｉｎｋ（Ｒ６−Ｒ５）、及び、Ｌｉｎｋ（Ｒ５−Ｒ４）がボトルネックリンクであることがわかる。
このボトルネックリンクを回避するようにダイクストラにより次善経路の計算を行い、迂回経路を求める。この結果、図１２（ａ）、（ｂ）、（ｃ）に示されている、新たな経路ａ３  、ｂ３  、ｃ２  が得られ、これらを目的関数の変数を追加する。
【００７８】
上記の変数が追加された目的関数
ｆ＝３ａ１  ＋４ａ２  ＋４ａ３  ＋２ｂ１  ＋５ｂ２  ＋５ｂ３  ＋３ｃ１  ＋３ｃ２  
について、品質要求を考慮した式ａ１  ≧５、ｂ１  ≧５、ｃ１  ≧５を加え、再度シンプレックス法による判定を行う。すると迂回経路を追加した状態で対応できることがわかり、品質要求を満たした最適解としての可能ベクトル
（ａ１  、ａ２  、ａ３  、ｂ１  、ｂ２  、ｂ３  、ｃ１  、ｃ２  ）＝（５、５、５、５、５、５、１０、５）
が求まる。
【００７９】
経路は最短経路から２番目の経路、３番目の経路の３種類が存在することになり、優先度の高いトラヒックから順によい経路に割り当てられていく。つまり、ルータＲ１からルータＲ４までの間、及び、ルータＲ２からルータＲ４までの間については、クラスＡは最短経路に、クラスＢは２番目に短い経路に、クラスＣは３番目に短い経路に、それぞれ割り当てられる。
【００８０】
また、ルータＲ７からルータＲ４までの間については、クラスＡ及びクラスＢは最短経路に、クラスＣは２番目に短い経路に、それぞれ割り当てられる。
次に、トラヒックが、ルータＲ１とルータＲ４との間、ルータＲ２とルータＲ４との間、ルータＲ７とルータＲ４との間で、それぞれ１０Ｍｂｐｓに増加した場合を考える。
【００８１】
目的関数
ｆ＝３ａ１  ＋４ａ２  ＋４ａ３  ＋２ｂ１  ＋５ｂ２  ＋５ｂ３  ＋３ｃ１  ＋３ｃ２  
について、品質要求を考慮して再度シンプレックス法による判定を行う。この状態では、可能ベクトルは、
（ａ１  、ａ２  、ａ３  、ｂ１  、ｂ２  、ｂ３  、ｃ１  、ｃ２  ）＝（５、５、５、５、５、５、１０、５）
で解無しとなり、補助目的関数が０にならず停止する。この仮の可能ベクトルからＬｉｎｋ（Ｒ３−Ｒ４）がボトルネックリンクであることがわかる。
このボトルネックリンクを回避するようにダイクストラにより次善経路の計算を行い、迂回経路を求める。しかしながら、新たな経路はもう存在しない。つまり、ネットワークにこれ以上経路の追加ができないことになり、真の解無しとなる。
【００８２】
経路を追加できないので、仮の可能ベクトル
（ａ１  、ａ２  、ａ３  、ｂ１  、ｂ２  、ｂ３  、ｃ１  、ｃ２  ）＝（５、５、５、５、５、５、１０、５）
でトラヒックを流すことになる。ここで、例えば、周知のＤｉｆｆＳｅｒｖ（Ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  Ｓｅｒｖｉｃｅｓ）等を組み合わせれば、優先度の低いトラヒックのみを破棄することができる。本例では、優先度の低いクラスＣだけを破棄することができる。
【００８３】
（変形例）
上記第３の実施例においては、優先度の高いクラスから良い経路を割り当てるといった各経路流量に対するクラス毎の対応アルゴリズムを記したが、例えば優先度の高いトラヒックがお互い干渉しないように流す、帯域を必要とするトラヒックはその帯域要求を満たす経路に流す、などの設定によって、アルゴリズムは異なるものとなる。
【００８４】
また、一般に大規模ネットワークはエリア分けされており、各エリアをまたぐルータは限られている。そのため、エリア毎に本発明を適用すればスケラービリティも満たすことができる。
さらにまた、ボトルネックリンクの発見の際、厳密に使用率が１００％のリンクだけでなく、例えばリンク使用率７０％以上をボトルネックリンクとしても良い。こうすることで、１回に追加される変数は増えるが、再帰の数を減らすことができる。
【００８５】
上記の説明では、各リンクのネットワークリソースの消費量を定数としているが、定数でない場合もある。例えば、キューイングの遅延はキューの利用率に応じて指数的に増加するため、ネットワークリソースの消費量もリンクの利用率に対して変更する場合もある。
また、目的関数はネットワークリソースの消費量だけでなく、その他のネットワークコストを最小、すなわち、例えば遅延を最小にするように設定したりホップ数を基に設定したりという場合も考えられる。
【００８６】
遅延を最小にする場合、各経路変数の係数が各リンク遅延の合計になる。
図１３（ａ）に示されているネットワークにおいて、ルータＲ１〜Ｒ７において、ルータＲ１とルータＲ７との間のリンク、ルータＲ７とルータＲ６との間のリンク、ルータＲ６とルータＲ３との間のリンク、それぞれの遅延が１０Ｍｂｐｓ、その他の各ルータ間のリンクそれぞれの遅延が５Ｍｂｐｓ、である場合を考える。
【００８７】
同図（ｂ）、同図（ｃ）、同図（ｄ）に示されている、経路ａ１  、ｂ１  、ｃ１  、については、遅延に基づく目的関数は、次のようになる。すなわち、
ａ１  の係数＝５＋５＋５＝１５
ｂ１  の係数＝５＋５＝１０
ｃ１  の係数＝１０＋５＋５＝２０
である。よって、目的関数は、
ｆ＝１５ａ１  ＋１０ｂ１  ＋２０ｃ１  
となる。この目的関数について、上記実施例の場合と同様に、シンプレックスを適用すれば良い。その場合、ボトルネックリンクは、ダイクストラ等によって回避できる。
【００８８】
一方、同図（ｂ）、同図（ｃ）、同図（ｄ）に示されている、経路ａ１  、ｂ１  、ｃ１  、については、ホップ数に基づく目的関数は、次のようになる。すなわち、隣接するルータ同士間のホップ数は１なので、
ａ１  の係数＝１＋１＋１＝３
ｂ１  の係数＝１＋１＝２
ｃ１  の係数＝１＋１＋１＝３
である。よって、目的関数は、
ｆ＝３ａ１  ＋２ｂ１  ＋３ｃ１  
となる。この目的関数について、上記実施例の場合と同様に、シンプレックスを適用すれば良い。その場合、ボトルネックリンクは、上述したダイクストラ等のアルゴリズムによって回避できる。
【００８９】
【発明の効果】
以上説明したように本発明は、シンプレックス法による最適解が存在しない場合に、ボトルネックリンクを発見して迂回経路の追加を行って更にシンプレックス法を適用することにより、トラヒックが現在の経路で収容できるかどうかを判定できると共に、収容できない場合には、必要経路のみを追加することができ、ネットワークリソース消費量・遅延・ホップ数といったネットワークコストに基づく目的関数の設定により、各経路へのトラヒックの分布も最適にすることができるという効果がある。
【図面の簡単な説明】
【図１】本発明によるトラヒック分散制御装置を含むネットワーク全体の構成例を示すブロック図である。
【図２】図１中のトラヒック分散制御装置の構成を示すブロック図である。
【図３】図１中のトラヒック分散制御装置の動作を示すフローチャートである。
【図４】図１中のトラヒック分散制御装置の動作を示すフローチャートである。
【図５】シンプレックス法の適用例の概略を示す図である。
【図６】シンプレックス法の他の適用例の概略を示す図である。
【図７】ダイクストラを適用して迂回経路を求める手順の例を示す図である。
【図８】ネットワークリソースの消費量を最低限に抑えるように目的関数を設定する場合を説明する図である。
【図９】本発明の第１の実施例を示す図である。
【図１０】本発明の第２の実施例を示す図である。
【図１１】本発明の第３の実施例を示す図である。
【図１２】本発明の第３の実施例を示す図である。
【図１３】目的関数を、遅延を最小にするように設定したりホップ数を基に設定したりする場合を説明する図である。
【図１４】現在の経路がトラヒックに対して十分であるか判定する従来の手法を説明する図である。
【符号の説明】
１  トラヒック分散制御装置
１１  監視機能
１２  判定機能
１３  迂回経路探索機能
１４  トラヒック決定機能
１５  通知機能
Ｒ１〜Ｒ７  ルータ
【図１】
2004336209.tif 000003
【図２】
2004336209.tif 000004
【図３】
2004336209.tif 000005
【図４】
2004336209.tif 000006
【図５】
2004336209.tif 000007
【図６】
2004336209.tif 000008
【図７】
2004336209.tif 000009
【図８】
2004336209.tif 000010
【図９】
2004336209.tif 000011
【図１０】
2004336209.tif 000012
【図１１】
2004336209.tif 000013
【図１２】
2004336209.tif 000014
【図１３】
2004336209.tif 000015
【図１４】
2004336209.tif 000016