JP2000222382A - 一般の距離空間における適切なネットワーク形状を探索する処理装置 - Google Patents

一般の距離空間における適切なネットワーク形状を探索する処理装置

Info

Publication number
JP2000222382A
JP2000222382A JP2676199A JP2676199A JP2000222382A JP 2000222382 A JP2000222382 A JP 2000222382A JP 2676199 A JP2676199 A JP 2676199A JP 2676199 A JP2676199 A JP 2676199A JP 2000222382 A JP2000222382 A JP 2000222382A
Authority
JP
Japan
Prior art keywords
point
node
algorithm
transformation
space
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
Application number
JP2676199A
Other languages
English (en)
Inventor
Ichiro Suzuki
一郎 鈴木
Shoichi Masuda
彰一 桝田
Shigeru Kameda
繁 亀田
Ikuo Fukuda
育夫 福田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2676199A priority Critical patent/JP2000222382A/ja
Priority to US09/484,262 priority patent/US6735555B1/en
Publication of JP2000222382A publication Critical patent/JP2000222382A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/18Network design, e.g. design based on topological or interconnect aspects of utility systems, piping, heating ventilation air conditioning [HVAC] or cabling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation

Abstract

(57)【要約】 【課題】 一般の距離空間上でコスト値が良好なネット
ワーク形状を探索することが課題である。 【解決手段】 生成手段1は、与えられた任意の空間に
おける木のモデル5を生成し、そのデータを格納手段2
に格納する。変形手段3は、木に含まれるノードに基づ
いて木を変形し、出力手段4は、変形結果を出力する。
変形された木のコスト値を調べながら木の変形を繰り返
すことにより、コスト値が良好な局所シュタイナー木が
得られ、それを用いてネットワーク形状が最適化され
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、道路網、ガス網、
水道網、電力供給網、電話網、コンピュータネットワー
ク等のネットワークの形状を最適化あるいは局所最適化
する処理装置に関する。
【0002】
【従来の技術】最適化問題の1つであるシュタイナー問
題は、距離空間上の複数の点をノードとして含み、総延
長距離が最短となる連結木を求める問題として知られて
いる。距離空間上の木は閉路を持たないネットワークで
あり、道路網、ガス網、水道網、電力供給網、電話網、
コンピュータネットワーク等のネットワークは、木を用
いて表すことができる。これらのネットワーク形状を有
する対象を平面/球面/3次元空間上に敷設/配置/配
線する業務においては、総延長距離がより短い木を求め
ることが重要な問題となる。
【0003】シュタイナー問題では、木の総延長距離が
コスト値として用いられ、それが最小あるいは局所最小
となるような木が探索される。コスト値の符号を変える
ことにより、最小あるいは局所最小を求める問題を、最
大あるいは局所最大を求める問題に置き換えることも可
能である。
【0004】従来は、主として、2次元ユークリッド
(Euclid)やレクトリニア(RectLinear)の空間上のシ
ュタイナー問題に対する取組みが行われており、一般の
距離空間やリーマン(Riemann )空間上のシュタイナー
問題を解決するアルゴリズムは知られていない。平面上
のシュタイナー問題においては、最短ネットワークを求
めるアルゴリズムが多く開発されている。
【0005】
【発明が解決しようとする課題】しかしながら、従来の
アルゴリズムには、次のような実用上の問題がある。 (A)全世界レベルのグローバルなネットワークや3次
元空間上のネットワークのような、平面以外の空間にお
ける問題には適用できない。 (B)特定の地域におけるネットワークの敷設を禁止す
ることができない。例えば、急峻な山地、湖水、海、自
然保護区域、あるいは危険区域等のように、技術的にあ
るいは制度上、ネットワーク敷設が不可能あるいは困難
な地域を考慮することができない。 (C)都市部と郡部においては、通常、単位長さあたり
のネットワーク敷設費用は異なるため、ネットワークの
長さのみを目安にしてネットワーク敷設費用を見積もる
ことはできない。したがって、ネットワーク敷設費用を
正確に最適化することはできない。
【0006】このように、従来のアルゴリズムの本質的
な問題点は、ネットワークの長さが平面上のユークリッ
ド距離により与えられる場合のみしか適用できないとい
う点にある。
【0007】本発明の課題は、一般の距離空間上で適切
なネットワーク形状を探索するためのアルゴリズムを実
装した、より汎用的な処理装置を提供することである。
【0008】
【課題を解決するための手段】図1は、本発明の処理装
置の原理図である。図1の処理装置は、生成手段1、格
納手段2、変形手段3、および出力手段4を備える。
【0009】生成手段1は、任意の空間における木のモ
デル5を生成し、格納手段2は、木のモデル5に含まれ
る既存ノードのデータを格納する。変形手段3は、既存
ノードに基づいて木のモデル5を変形し、出力手段4
は、変形結果を出力する。
【0010】生成手段1は、例えば、与えられた空間に
おける複数の点を適当に接続して木のモデル5を生成
し、格納手段2は、それらの点を既存ノードとして格納
する。変形手段3は、既存ノードに基づく点移動変形、
点分岐変形、点縮約変形等の変形操作により木のモデル
5を変形し、出力手段4は、変形された木のモデル5を
出力する。
【0011】このような木のモデルを用いれば、ネット
ワークの長さが平面上のユークリッド距離により与えら
れる場合のみに限らず、任意の空間における任意のネッ
トワーク最適化問題を一般的に記述することができる。
また、木の形状を変形するアルゴリズムはシンプルで理
解しやすいという特徴を持ち、変形過程をディスプレイ
スクリーンに表示すれば、ユーザは、処理の進行状況を
容易に把握することができる。
【0012】また、問題の解は、コスト値が最良あるい
は局所最良となるような木のモデル5から自動的に求め
ることができ、ユーザが表示された形状からコスト値を
推測できる場合には、適当なタイミングで解を取り出す
こともできる。コスト値が最良あるいは局所最良とは、
コスト値が最小あるいは局所最小の場合と、コスト値が
最大あるいは局所最大の場合の両方を含んでいる。
【0013】例えば、図1の生成手段1、格納手段2、
変形手段3、および出力手段4は、後述する図6のオブ
ジェクト群に対応する。
【0014】
【発明の実施の形態】以下、図面を参照しながら、本発
明の実施の形態を詳細に説明する。本実施形態において
は、任意の空間上の木を変形する基本アルゴリズムとし
て、以下の3つのアルゴリズムを用いる。 (1)点移動変形アルゴリズム 空間上の木TとTのノードpが与えられているとき、図
2に示すように、ノードpの位置を動かすことによっ
て、空間上の木Tを変形させる。 (2)点分岐変形アルゴリズム 空間上の木TとTのノードpが与えられているとき、図
3に示すように、木Tに新しいノードqを付け加え、p
とqを接続し、pのq以外の接続先ノードの一部をqに
繋ぎかえることによって、空間上の木Tを変形させる。 (3)点縮約変形アルゴリズム 空間上の木TとTのノードpが与えられているとき、図
4に示すように、pの接続先ノードの1つにノードpを
移動し重ね合わせることによって、空間上の木Tを変形
させる。
【0015】このような変形アルゴリズムを用いれば、
木のトポロジー自体も変化するため、木のトポロジーの
分類や場合分けといった複雑な処理を必要としない。ま
た、これらの変形アルゴリズムは、どのような空間上の
木にも適用できる汎用性を持っており、この汎用性を利
用して、一般の距離空間上で局所最適な木を探索するア
ルゴリズムを生成することができる。
【0016】距離空間とは、距離という概念を含む空間
の総称である。距離空間の例としては、2次元ユークリ
ッド空間(通常の平面)、3次元ユークリッド空間(通
常の立体空間)、球面、任意の曲面等のほかに、これら
に適当に重みを付けた空間や、これらの空間から適当な
領域を削除することによって得られる空間等が挙げられ
る。また、交通網(道路、電車等)の経路に基づいて、
平面や空間の距離が規定されているものも距離空間とな
る。数学的には、距離空間は下記のように定義される。
【0017】距離空間(X,d)とは、集合Xと集合X
×X上の関数d(通常、距離関数と呼ばれる)から構成
され、次の条件を満たすものである。 [条件1]任意のx∈Xに対して、d(x,x)=0 [条件2]任意のx,y∈Xに対して、d(x,y)≧
0 [条件3]d(x,y)=0ならばx=y [条件4]任意のx,y∈Xに対して、d(x,y)=
d(y,x) [条件5]任意のx,y,z∈Xに対して、d(x,
z)≦d(x,y)+d(y,z) 距離空間(X,d)上のN個の点p1 ,p2 ,...,
N が与えられたとき、これらの点をノードとして含む
連結木の中で、木の総延長距離が最短のものをシュタイ
ナー木と呼ぶ。このシュタイナー木を求める問題はシュ
タイナー問題と呼ばれ、特に、距離空間(X,d)が2
次元ユークリッド空間の場合、NP(nondeterministic
polynomial )完全問題であることが知られている。こ
のため、Nが十分に大きい場合は、近似的な方法によ
り、なるべく距離が小さい連結木を求めるのが通例であ
る。
【0018】本実施形態では、シュタイナー木の代わり
に、次の3つの条件を満たす連結木(これを局所シュタ
イナー木と呼ぶ)を求めるアルゴリズムを採用してい
る。ただし、与えられた点以外の新たな点をノードとし
て付け加えることができ、付け加えられたノードは、移
動/削除ができるものとする。 [条件1]連結木である [条件2]p1 ,p2 ,...,pN 以外のノードの位
置を微小変化させて得られた木の総延長距離は、元の木
の総延長距離より短くならない。 [条件3]任意のノードpの近くに新たなノードqを付
け加え、pとqを接続し、適当にpの接続をqに繋ぎ替
えることによって得られる木の総延長距離は、元の木の
総延長距離より短くならない。
【0019】木を実現する空間がリーマン空間の場合
は、局所シュタイナー木を求めるために、上述した変形
アルゴリズムをさらに具体化することができる。リーマ
ン空間は、特殊な距離空間の1つであり、微分操作等が
可能な滑らかな性質を持っている。これに対して、一般
の距離空間は滑らかさを仮定していない。
【0020】リーマン空間の例としては、2次元ユーク
リッド空間、3次元ユークリッド空間、球面、任意の滑
らかな曲面等のほかに、これらを適当に滑らかな関数に
よって重み付けした空間等が挙げられる。
【0021】交通網の経路に基づいて平面や空間の距離
が規定されているものは、交差点等で角が生じ、滑らか
さが損なわれるため、必ずしもリーマン空間とはならな
い。しかし、重み付け関数を工夫することにより、これ
らの空間をリーマン空間で近似することが可能である。
したがって、リーマン空間上の局所シュタイナー木を探
索するアルゴリズムは、十分に広い汎用性を備えてい
る。
【0022】まず、この探索アルゴリズムを記述するた
めの記号の定義について説明する。リーマン空間上の木
Tとノードpが与えられているものとし、ノードpのm
個の接続先ノードをq1 ,q2 ,...,qm とする。
また、図5に示すように、ノードpとノードqi (1≦
i≦m)を結ぶ、木の辺に対応する弧長パラメータtで
パラメトライズされた測地線xi (t)(1≦i≦m)
が存在するとする。測地線が複数ある場合は、そのうち
の1つをxi (t)として選ぶことにする。
【0023】このとき、測地線xi (t)(1≦i≦
m)のノードpの位置における単位接ベクトルであっ
て、ノードqi (1≦i≦m)の方向のものを、ノード
pの位置における単位接ベクトルei (1≦i≦m)と
する。これらの記号を用いれば、局所シュタイナー木探
索の中核アルゴリズムは次のように表現できる。 [変形アルゴリズムα1]ノードpにおける接ベクトル
eを、次式により定義する。
【0024】
【数1】
【0025】eが零ベクトル以外の場合、ノードpから
接ベクトルeに沿った測地線上の点の位置にノードpを
移動する点移動変形アルゴリズムによって木を変形す
る。 [変形アルゴリズムα2]集合ΩをΩ={1,
2,...,m}とし、AをΩの任意の部分集合とす
る。このとき、ノードpにおける接ベクトルJ(A)
を、次式により定義する。
【0026】
【数2】
【0027】このとき、|J(A)|>1となるような
部分集合Aが選べれば、ノードpから接ベクトルJ
(A)に沿った測地線上の点の位置に新たなノードqを
とり、ノードqj (j∈A)のノードpとの接続をノー
ドqに繋ぎ替える点分岐変形アルゴリズムによって木を
変形する。
【0028】言い換えれば、1つ以上の単位接ベクトル
i を用いて、大きさが所定値を超える接ベクトルJ
(A)を[2]式により生成し、ノードpからJ(A)
に沿った測地線上の点の位置にノードqを設けている。
【0029】ところで、このようなΩの部分集合Aを選
ぶとき、|J(A)|がなるべく大きくなるようにする
ことが望ましい。そのような方法として、例えば、次の
ようなものが考えられる。 [方法1]Ωの部分集合Amax を、次式により定義す
る。
【0030】
【数3】
【0031】|J(Amax )|>1の場合、Amax を上
述の部分集合Aとする。言い換えれば、接ベクトルJ
(A)の大きさが最大となるように、[2]式の単位接
ベクトルei を選択する。 [方法2]方法1において、Ωの部分集合の総数が2m
であることから、mが大きい場合、Amax を求めること
が困難となることが予想される。そこで、以下の条件を
満たすΩの部分集合A′max を求める。 (条件1)任意のk∈Ω−A′max に対して、 |J(A′max ∪{k})|≦|J(A′max )| [4] (条件2)任意のk∈A′max に対して、 |J(A′max −{k})|≦|J(A′max )| [5] このA′max は、Amax の近似的な集合であると考えら
れる。|J(A′max )|>1の場合、A′max を上述
の部分集合Aとする。言い換えれば、接ベクトルJ
(A)の大きさが近似的に最大となるように、[2]式
の単位接ベクトルeiを選択する。 [変形アルゴリズムα3]上述の部分集合Aが選べたと
き、|e|と|J(A)|−1を比較して、これらの大
小関係に応じて変形アルゴリズムα1またはα2を選択
する。|e|>|J(A)|−1の場合、変形アルゴリ
ズムα1によって木を変形し、|e|<|J(A)|−
1の場合、変形アルゴリズムα2によって木を変形す
る。
【0032】これらの変形アルゴリズムは、どのような
リーマン空間においても適用することができ、リーマン
空間の性質を利用した探索アルゴリズムになっている。
ここで、変形アルゴリズムα1およびα2とコスト値の
関係について考察してみる。リーマン空間上では、次の
ような定理が成り立つ。 [定理1]多様体Mと計量gにより与えられるリーマン
空間(M,g)上の木に対して、その木の辺の長さの和
を対応させる(M,g)上の木の集合上の関数をFとす
る。
【0033】今、Tを(M,g)上の木とし、木Tのノ
ードaのM上の位置をp∈Mとし、ノードaの接続先ノ
ードをbi (1≦i≦m)とし、各bi のM上の位置を
i∈M(1≦i≦m)とする。また、点qi と点pを
結ぶ測地線であって、pからqi までの測地線の長さが
pとqi の距離となるものが存在すると仮定し、木Tの
ノードaの位置をq∈Mに移動して得られた木をT′と
する。このとき、点qが点pに十分に近ければ、次式が
成立する。 F(T′)−F(T)=−g(e,h)+o(|h|2 ) [4] ただし、測地線xi (t)については、点pから点qi
までの距離をd(p,q i )として、次式が成り立つも
のとする。 g(dxi (t)/dt,dxi (t)/dt)=1 (1≦i≦m) [5] xi (0)=p (1≦i≦m) [6] xi (d(p,qi ))=qi (1≦i≦m) [7] また、点pの接空間をTp (M)として、ei ∈T
p (M)を次式により定義する。 ei =dxi (0)/dt [8] また、h∈Tp (M)を次式により定義する。 q=exp(h) [9] [定理1の証明]M上の関数Gを次式により定義する。
【0034】
【数4】
【0035】このとき、次式が成立する。 G(q)−G(p)=F(T′)−F(T) [11] なぜならば、木Tが木T′に変形したときに変化する辺
は、ノードaを端点とする辺以外にはないからである。
一方、[11]の左辺は、次式により与えられる。
【0036】
【数5】
【0037】[11]式および[12]式より、[4]
式が得られる。Q.E.D この定理1より、変形アルゴリズムα1を用いるとコス
ト値が効率的に下がることが導かれる。[4]式のFを
木のコスト関数とみなし、e≠0であるものとする。こ
のとき、εを十分に小さな正数として、定理1におい
て、|h|=εという範囲でhを動かして、[4]式の
値をなるべく小さくすることを考える。
【0038】ここで、[4]式の右辺の第2項を微小量
εの2乗のオーダの項として無視すれば、右辺の第1項
−g(e,h)をなるべく小さくすることを考えればよ
い。|h|=εなる任意のhに対して、シュバルツの不
等式より、次式が成立する。
【0039】 −ε|e|=−|h||e| ≦−g(e,h) [13] したがって、−g(e,h)が一番小さくなるのは、
[13]式の等号が成立するときである。hが次式によ
り与えられるとき、[13]式の等号が成立する。 h=(ε/|e|)e [14] また、[14]式を[4]式に代入し、微小量の2乗の
項を無視すれば、次式が得られる。 F(T′)−F(T)=−ε|e|<0 [15] したがって、[14]式のようなhの方向([14]式
の示すベクトルのスカラー倍を無視すると、eの方向)
に点を微小移動すると、最も効率的にコストが下がるこ
とが分かる。
【0040】また、リーマン空間上では、次のような定
理も成り立つ。 [定理2]リーマン空間(M,g)上の木に対して、そ
の木の辺の長さの和を対応させる(M,g)上の木の集
合上の関数をFとする。
【0041】今、Tを(M,g)上の木とし、木Tのノ
ードaのM上の位置をp∈Mとし、ノードaの接続先ノ
ードをbi (1≦i≦m)とし、各bi のM上の位置を
i∈M(1≦i≦m)とし、点qi と点pを結ぶ測地
線であって、pからqi までの測地線の長さがpとqi
の距離となるものが存在すると仮定する。
【0042】木Tに位置をq∈Mとする新たなノードc
を付け加え、ノードaとノードcを接続し、さらに、集
合Ωの部分集合Aに対して、i∈Aとなるノードbi
ノードaから切り離し、ノードcと接続することにより
得られた木を、T′A とする。このとき、点qが点pに
十分に近ければ、次式が成立する。 F(T′A )−F(T)=|h|−g(J(A),h)+o(|h|2 ) [16] ただし、測地線xi (t)については[5]、[6]、
[7]式が成り立ち、e i ∈Tp (M)およびh∈Tp
(M)は、[8]式および[9]式により定義されるも
のとする。 [定理2の証明]M上の関数Hを次式により定義する。
【0043】
【数6】
【0044】このとき、次式が成立する H(q)−H(p)=F(T′A )−F(T) [18] なぜならば、木Tが木T′A に変形したときに変化する
辺は、ノードaとノードbi を結ぶ辺以外にはないから
である。一方、[18]の左辺は、次式により与えられ
る。
【0045】
【数7】
【0046】[18]式および[19]式より、[1
6]式が得られる。Q.E.D この定理2より、変形アルゴリズムα2を用いるとコス
ト値が効率的に下がることが導かれる。[16]式のF
を木のコスト関数とみなし、e≠0であるものとする。
このとき、εを十分に小さな正数として、定理2におい
て、|h|=εという範囲でhを動かして、[16]式
の値をなるべく小さくすることを考える。
【0047】ここで、[16]式の右辺の第3項を微小
量εの2乗のオーダの項として無視すれば、第1項は一
定値εであるから、第2項−g(J(A),h)を小さ
くすることを考えればよい。定理1に関する上述の考察
と同様に、hが次式により与えられるとき、−g(J
(A),h)が一番小さくなる。 h=(ε/|J(A)|)J(A) [20] また、[20]式を[16]式に代入し、微小量の2乗
の項を無視すれば、次式が得られる。 F(T′A )−F(T)=ε−ε|J(A)| =ε(1−|J(A)|) [21] ここで、|J(A)|≦1の場合は、F(T′A )−F
(T)≧0となり、このような木Tの微小変形ではコス
トが下がらないことが分かる。これに対して、|J
(A)|>1の場合は、F(T′A )−F(T)<0と
なり、微小変形によりコストが下がることが分かる。し
たがって、|J(A)|>1の場合、[20]式のよう
なhの方向([20]式の示すベクトルのスカラー倍を
無視すると、J(A)の方向)に新たなノードをとる
と、最も効率的にコストが下がることが分かる。
【0048】変形アルゴリズムα3は、[15]式と
[21]式の比較に基づき、変形アルゴリズムα1およ
びα2のうち、より大きくコストが下がる方を採用する
アルゴリズムである。このように、変形アルゴリズムα
1〜α3は、探索を効率化する性質を備えていることが
分かる。
【0049】以上説明した局所シュタイナー木探索アル
ゴリズムを利用すれば、前述した実用上の問題を次のよ
うに解決することができる。 (A)全世界レベルのグローバルなネットワークや3次
元空間上のネットワークのような、平面以外の空間にお
ける問題にも適用できる。 (B)特定の地域におけるネットワークの敷設が禁止さ
れる場合、その地域に大きな重みを付けた距離空間をモ
デルとして選ぶことで、特定の地域におけるネットワー
クの敷設を自動的に避けることが可能になる。 (C)単位長さあたりのネットワーク敷設費用の差異を
考慮に入れて、ネットワーク敷設費用を最適化すること
が可能になる。この場合、各地域に単位長さあたりの敷
設費用を重みとして付加した距離空間をモデルとして選
べばよい。
【0050】この探索アルゴリズムに基づく処理装置
は、任意のハードウェアまたはソフトウェアにより実現
することができる。以下では、一例として、先願の「最
適化問題を解決する処理装置および方法」(特願平11
−16500)に紹介されているオブジェクト指向プロ
グラミングを用いた構成について説明する。
【0051】図6は、このような処理装置の構成図であ
る。図6の処理装置は、探索共通オブジェクト群11、
探索インタフェースオブジェクト群12、シュタイナー
問題共通オブジェクト群13、距離空間オブジェクト群
14、および距離空間オブジェクトファクトリオブジェ
クト群14を含む。オブジェクトは、通常、データとそ
のデータに対する手続き(メソッド)を所持しており、
他のオブジェクトとのリンク関係を所持することもでき
る。
【0052】探索共通オブジェクト群11は、探索処理
の共通オブジェクトであり、シュタイナー問題に止まら
ず、最適化問題のための汎用的なロジック21と汎用的
なメソッドインタフェース(最適化問題共通インタフェ
ース)22を有する。この探索共通オブジェクト群11
には、次のようなものが含まれる。 (1)探索エンジンオブジェクト (2)起動ボタンオブジェクト (3)停止ボタンオブジェクト 探索インタフェースオブジェクト群12は、シュタイナ
ー問題共通のロジック23を有し、探索共通オブジェク
ト群11とメソッドインタフェース22でメッセージ交
換を行う。また、シュタイナー問題共通オブジェクト群
13あるいは距離空間オブジェクト群14とシュタイナ
ー問題共通インタフェース24でメッセージ交換を行
う。この探索インタフェースオブジェクト群12には、
次のようなものが含まれる。 (1)コスト関数オブジェクト (2)開始形状生成オブジェクト (3)形状オブジェクト (4)変形要素オブジェクト (5)変形アルゴリズム管理オブジェクト (6)変形アルゴリズム群オブジェクト (7)変形アルゴリズムオブジェクト (8)点移動変形アルゴリズムオブジェクト (9)点分岐変形アルゴリズムオブジェクト (10)点縮約変形アルゴリズムオブジェクト (11)形状表示オブジェクト このうち、点移動変形アルゴリズムオブジェクト、点分
岐変形アルゴリズムオブジェクト、点縮約変形アルゴリ
ズムオブジェクトの型(クラス)は、変形アルゴリズム
オブジェクトの型の特殊形(継承クラス)である。
【0053】シュタイナー問題共通オブジェクト群13
は、木を実現する距離空間の性質に依存せず、すべての
シュタイナー問題に共通のロジック25を有し、距離空
間オブジェクト群14とシュタイナー問題共通インタフ
ェース24でメッセージ交換を行う。このシュタイナー
問題共通オブジェクト群13には、次のようなものが含
まれる。 (1)点縮約変形アルゴリズム群オブジェクト (2)非リーマン空間変形アルゴリズム群オブジェクト (3)非リーマン空間点移動変形アルゴリズム群オブジ
ェクト (4)非リーマン空間点分岐変形アルゴリズム群オブジ
ェクト (5)リーマン空間変形アルゴリズム群オブジェクト (6)リーマン空間点移動・分岐変形アルゴリズム群オ
ブジェクト 距離空間オブジェクト群14は、木を実現する距離空間
の固有の性質とは独立の共通したメソッドインタフェー
スを持つが、メソッドの動作ロジック26は、距離空間
の固有の性質に依存している。この距離空間オブジェク
ト群14には、次のようなものが含まれる。 (1)距離空間オブジェクト (2)点オブジェクト (3)スクリーン座標変換オブジェクト 距離空間オブジェクトファクトリオブジェクト群15
は、距離空間オブジェクト群14の各オブジェクトを生
成する。ファクトリオブジェクト群15をカストマイズ
することによって、処理装置を個別の距離空間に適応さ
せることができる。より具体的には、ファクトリオブジ
ェクト群15は、個別の距離空間の要件に対応するアル
ゴリズムを実装した距離空間オブジェクト群14を生成
する。このファクトリオブジェクト群15には、次のよ
うなものが含まれる。 (1)距離空間オブジェクト生成オブジェクト (2)点オブジェクト生成オブジェクト (3)スクリーン座標変換オブジェクト生成オブジェク
ト このように、図6の処理装置は、距離空間の性質に依存
しない共通オブジェクト部品11、12、13と距離空
間の性質に依存する個別オブジェクト部品14、15か
ら構成される。個別オブジェクト部品を交換することに
より、他の距離空間に対応した処理装置を容易に構成す
ることができる。また、個別オブジェクト部品のチュー
ニングも容易に行うことができ、距離空間の性質に応じ
て処理効率を上げることができる。
【0054】次に、各オブジェクトが所持するデータと
メソッドについて説明する。まず、探索共通オブジェク
ト群11の各オブジェクトについては、以下の通りであ
る。探索エンジンオブジェクトは、形状オブジェクト、
コスト値オブジェクト、および探索メソッドを所持す
る。
【0055】起動ボタンオブジェクトは、タイミングフ
ラグオブジェクトと起動メソッドを所持し、ディスプレ
イスクリーンに表示された探索エンジン起動ボタンの操
作を検出する。タイミングフラグオブジェクトは、形状
オブジェクトのデータを表示するタイミングを表すフラ
グを所持しており、起動メソッドは、ボタン押下のイベ
ントに基づいて、探索エンジンオブジェクトを起動す
る。
【0056】停止ボタンオブジェクトは、終了フラグオ
ブジェクトと停止メソッドを所持し、ディスプレイスク
リーンに表示された探索エンジン停止ボタンの操作を検
出する。終了フラグオブジェクトは、探索エンジンオブ
ジェクトによる探索処理の終了タイミングを表すフラグ
を所持しており、停止メソッドは、ボタン押下のイベン
トに基づいて、探索エンジンオブジェクトを停止する。
【0057】次に、探索インタフェースオブジェクト群
12の各オブジェクトについては、以下の通りである。
コスト関数オブジェクトは、与えられた形状のコスト値
を返すコスト値メソッドを所持する。シュタイナー問題
の場合、距離空間上の連結木の総延長距離がコスト値に
相当する。
【0058】開始形状生成オブジェクトは、固定ノード
数オブジェクト、初期補完ノード数オブジェクト、開始
形状生成ボタンオブジェクト、および開始形状メソッド
を所持する。
【0059】固定ノード数オブジェクトは、固定ノード
数(整数)をデータとして所持する。固定ノード数と
は、シュタイナー問題において、開始形状(距離空間上
の連結木)として最初に与えられる固定ノードの数であ
り、これらの固定ノードは、木の変形において移動した
り消滅したりしない。
【0060】初期補完ノード数オブジェクトは、初期補
完ノード数(整数)をデータとして所持する。初期補完
ノード数とは、上述の固定ノード以外に付加される補完
ノードの数であり、これらの補完ノードは、木の変形に
おいて移動したり消滅したりする。
【0061】開始形状メソッドは、ディスプレイスクリ
ーンに表示された開始形状生成ボタンの操作を検出し、
ボタン押下のイベントに基づいて開始形状を生成する。
変形要素オブジェクトは、距離空間上の木の各ノードに
対応し、点オブジェクトと固定ノードフラグオブジェク
トを所持する。
【0062】形状オブジェクトは、距離空間上の木のモ
デルに対応し、変形要素配列オブジェクト、変形要素対
配列オブジェクト、および最配置メソッドを所持する。
変形要素配列オブジェクトは、木のすべてのノードに対
応する変形要素オブジェクトの配列を所持し、変形要素
対配列オブジェクトは、互いに接続された2つのノード
に対応する変形要素オブジェクト対の配列を所持する。
【0063】最配置メソッドは、更新された変形要素オ
ブジェクトの配列および変形要素オブジェクト対の配列
の再配置を行う。配列の再配置の際には、不要となった
配列要素が削除される。
【0064】変形アルゴリズム管理オブジェクトは、初
期化メソッド、変形要素メソッド、および通知メソッド
を所持する。初期化メソッドは、変形アルゴリズム管理
オブジェクトを初期化し、変形要素メソッドは、次に処
理すべき変形要素オブジェクトを求める。また、通知メ
ソッドは、次の変形要素オブジェクトが存在するか否か
を通知する。
【0065】変形アルゴリズム群オブジェクトは、更新
フラグオブジェクト、初期化メソッド、変形アルゴリズ
ムメソッド、および通知メソッドを所持する。初期化メ
ソッドは、変形アルゴリズム群オブジェクトを変形要素
オブジェクト毎に初期化し、変形アルゴリズムメソッド
は、次に適用すべき変形アルゴリズムオブジェクトを求
める。また、通知メソッドは、次の変形アルゴリズムオ
ブジェクトが存在するか否かを通知する。
【0066】変形アルゴリズムオブジェクトは、与えら
れた形状に対して、それを変形した後の形状を返す変形
メソッドを所持する。点移動変形アルゴリズムオブジェ
クトは、変形アルゴリズムオブジェクトの特殊形の1つ
であり、変形要素オブジェクト、点オブジェクト、およ
び変形メソッドを所持する。変形メソッドは、変形要素
オブジェクトを点オブジェクトの位置まで移動する点移
動変形アルゴリズムに相当する。
【0067】点分岐変形アルゴリズムオブジェクトは、
変形アルゴリズムオブジェクトの特殊形の1つであり、
変形要素オブジェクト、点オブジェクト、変形要素配列
オブジェクト、および変形メソッドを所持する。変形メ
ソッドは、点オブジェクトを新たに付け加えるノードの
位置とし、変形要素オブジェクトに相当するノードの接
続先ノードのうち、変形要素配列オブジェクトが示して
いるノードを繋ぎ替える点分岐変形アルゴリズムに相当
する。
【0068】点縮約変形アルゴリズムオブジェクトは、
変形アルゴリズムオブジェクトの特殊形の1つであり、
第1変形要素オブジェクト、第2変形要素オブジェク
ト、および変形メソッドを所持する。変形メソッドは、
第1変形要素オブジェクトに相当する第1ノードの接続
先ノードの中で第2変形要素オブジェクトに相当する第
2ノードに、第1ノードを重ね合わせる点縮約変形アル
ゴリズムに相当する。
【0069】形状表示オブジェクトは、タイミングフラ
グオブジェクト、状態フラグオブジェクト、および表示
メソッドを所持する。表示メソッドは、与えられた形状
をディスプレイスクリーンに表示する。
【0070】次に、シュタイナー問題共通オブジェクト
群13の各オブジェクトについては、以下の通りであ
る。点縮約変形アルゴリズム群オブジェクトは、ポイン
タオブジェクト、変形要素オブジェクト、変形要素配列
オブジェクト、初期化メソッド、点縮約変形アルゴリズ
ムメソッド、および通知メソッドを所持する。ポインタ
オブジェクトは、ポインタ(整数)をデータとして所持
する。
【0071】初期化メソッドは、点縮約変形アルゴリズ
ム群オブジェクトを変形要素毎に初期化し、点縮約変形
アルゴリズムメソッドは、次に適用すべき点縮約変形ア
ルゴリズムを求める。また、通知メソッドは、次の点縮
約変形アルゴリズムが存在するか否かを通知する。
【0072】非リーマン空間変形アルゴリズム群オブジ
ェクトは、固定ノードフラグオブジェクト、変形アルゴ
リズムステータスオブジェクト、非リーマン空間点移動
変形アルゴリズム群オブジェクト、非リーマン空間点分
岐変形アルゴリズム群オブジェクト、点移動変形アルゴ
リズム群オブジェクト、初期化メソッド、変形アルゴリ
ズムメソッド、および通知メソッドを所持する。変形ア
ルゴリズムステータスオブジェクトは、変形アルゴリズ
ムステータス(整数)のデータを所持する。
【0073】初期化メソッドは、非リーマン空間変形ア
ルゴリズム群オブジェクトを変形要素毎に初期化し、変
形アルゴリズムメソッドは、次に適用すべき変形アルゴ
リズムを求める。また、通知メソッドは、次の変形アル
ゴリズムが存在するか否かを通知する。
【0074】変形アルゴリズムメソッドは、最初に、点
移動変形アルゴリズムに基づく変形アルゴリズムを求め
ていき、次に、点分岐変形アルゴリズムに基づく変形ア
ルゴリズムを求めていき、最後に、点縮約変形アルゴリ
ズムに基づく変形アルゴリズムを求めていく。このた
め、現在、どのアルゴリズムに基づく変形アルゴリズム
オブジェクトを求める状態なのかを、変形アルゴリズム
ステータスに記憶しておく。
【0075】具体的には、変形アルゴリズムステータス
=1ならば、次に求めるアルゴリズムが点移動変形アル
ゴリズムであることを表し、変形アルゴリズムステータ
ス=2ならば、次に求めるアルゴリズムが点分岐変形ア
ルゴリズムであることを表し、変形アルゴリズムステー
タス=3ならば、次に求めるアルゴリズムが点縮約変形
アルゴリズムであることを表す。 非リーマン空間点移
動変形アルゴリズム群オブジェクトは、変形要素オブジ
ェクト、点配列オブジェクト、移動量オブジェクト、移
動量カウンタオブジェクト、同距離ポインタオブジェク
ト、点移動用初期移動量オブジェクト、点移動用最大探
索指数オブジェクト、点移動用同距離探索回数オブジェ
クト、初期化メソッド、点移動変形アルゴリズムメソッ
ド、および通知メソッドを所持する。
【0076】点配列オブジェクトは、点オブジェクトの
配列を所持する。また、移動量オブジェクト、移動量カ
ウンタオブジェクト、同距離ポインタオブジェクト、点
移動用初期移動量オブジェクト、点移動用最大探索指数
オブジェクト、点移動用同距離探索回数オブジェクト
は、それぞれ、移動量(実数)、移動量カウンタ(整
数)、同距離ポインタ(整数)、点移動用初期移動量
(実数)、点移動用最大探索指数(整数)、点移動用同
距離探索回数(整数)をデータとして所持する。
【0077】初期化メソッドは、非リーマン空間点移動
変形アルゴリズム群オブジェクトを変形要素毎に初期化
し、点移動変形アルゴリズムメソッドは、次に適用すべ
き点移動変形アルゴリズムを求める。また、通知メソッ
ドは、次の点移動変形アルゴリズムが存在するか否かを
通知する。
【0078】非リーマン空間点分岐変形アルゴリズム群
オブジェクトは、変形要素オブジェクト、点配列オブジ
ェクト、部分集合配列オブジェクト、移動量オブジェク
ト、移動量カウンタオブジェクト、同距離ポインタオブ
ジェクト、部分集合ポインタオブジェクト、点分岐用初
期移動量オブジェクト、点分岐用最大探索指数オブジェ
クト、点分岐用同距離探索回数オブジェクト、初期化メ
ソッド、点分岐変形アルゴリズムメソッド、および通知
メソッドを所持する。
【0079】部分集合配列オブジェクトは、部分集合オ
ブジェクトの配列を所持する。また、移動量オブジェク
ト、移動量カウンタオブジェクト、同距離ポインタオブ
ジェクト、部分集合ポインタオブジェクト、点分岐用初
期移動量オブジェクト、点分岐用最大探索指数オブジェ
クト、点分岐用同距離探索回数オブジェクトは、それぞ
れ、移動量(実数)、移動量カウンタ(整数)、同距離
ポインタ(整数)、部分集合ポインタ(整数)、点分岐
用初期移動量(実数)、点分岐用最大探索指数(整
数)、点分岐用同距離探索回数(整数)をデータとして
所持する。
【0080】初期化メソッドは、非リーマン空間点分岐
変形アルゴリズム群オブジェクトを変形要素毎に初期化
し、点分岐変形アルゴリズムメソッドは、次に適用すべ
き点分岐変形アルゴリズムを求める。また、通知メソッ
ドは、次の点分岐変形アルゴリズムが存在するか否かを
通知する。
【0081】リーマン空間変形アルゴリズム群オブジェ
クトは、リーマン空間点移動・分岐変形アルゴリズム群
オブジェクト、点縮約変形アルゴリズム群オブジェク
ト、変形アルゴリズムステータスオブジェクト、初期化
メソッド、変形アルゴリズムメソッド、および通知メソ
ッドを所持する。
【0082】初期化メソッドは、リーマン空間変形アル
ゴリズム群オブジェクトを変形要素毎に初期化し、変形
アルゴリズムメソッドは、次に適用すべき変形アルゴリ
ズムを求める。また、通知メソッドは、次の変形アルゴ
リズムが存在するか否かを通知する。
【0083】変形アルゴリズムメソッドは、最初に、リ
ーマン空間点移動・分岐変形アルゴリズム群オブジェク
トに基づく変形アルゴリズムを求めていき、次に、点縮
約変形アルゴリズムに基づく変形アルゴリズムを求めて
いく。このため、現在、どのアルゴリズムに基づく変形
アルゴリズムオブジェクトを求める状態なのかを、変形
アルゴリズムステータスに記憶しておく。
【0084】具体的には、変形アルゴリズムステータス
=1ならば、次に求める変形アルゴリズムがリーマン空
間点移動・分岐変形アルゴリズム群オブジェクトから得
られるアルゴリズムであることを表し、変形アルゴリズ
ムステータス=3ならば、次に求める変形アルゴリズム
が点縮約変形アルゴリズムであることを表す。
【0085】リーマン空間点移動・分岐変形アルゴリズ
ム群オブジェクトは、変形要素オブジェクト、変形要素
配列オブジェクト、点移動アルゴリズムフラグオブジェ
クト、移動方向ベクトルオブジェクト、移動量オブジェ
クト、移動量カウンタオブジェクト、点移動用初期移動
量オブジェクト、点移動量最大探索指数オブジェクト、
点分岐用初期移動量オブジェクト、点分岐用最大探索指
数オブジェクト、初期化メソッド、変形アルゴリズムメ
ソッド、通知メソッド、変形アルゴリズム決定メソッ
ド、点移動用移動ベクトル算出メソッド、および点分岐
用移動ベクトル算出メソッドを所持する。
【0086】点移動アルゴリズムフラグオブジェクト、
移動方向ベクトルオブジェクト、移動量オブジェクト、
移動量カウンタオブジェクト、点移動用初期移動量オブ
ジェクト、点移動量最大探索指数オブジェクト、点分岐
用初期移動量オブジェクト、点分岐用最大探索指数オブ
ジェクトは、それぞれ、点移動アルゴリズムフラグ、移
動方向ベクトル(n次元ベクトル)、移動量(実数)、
移動量カウンタ(整数)、点移動用初期移動量(実
数)、点移動量最大探索指数(整数)、点分岐用初期移
動量(実数)、点分岐用最大探索指数(整数)をデータ
として所持する。
【0087】初期化メソッドは、リーマン空間点移動・
分岐変形アルゴリズム群オブジェクトを変形要素毎に初
期化し、変形アルゴリズムメソッドは、次に適用すべき
変形アルゴリズムを求める。また、通知メソッドは、次
の変形アルゴリズムが存在するか否かを通知する。
【0088】変形アルゴリズム決定メソッドは、適用す
べき変形アルゴリズムを決定する。点移動用移動ベクト
ル算出メソッドは、前述した変形アルゴリズムα1で用
いられる接ベクトルeに対応する点移動用移動ベクトル
を算出する。また、点分岐用移動ベクトル算出メソッド
は、前述した変形アルゴリズムα2で用いられる接ベク
トルJ(Amax )に対応する点分岐用移動ベクトルと、
部分集合Amax に対応する変形要素オブジェクトの配列
を算出する。
【0089】ここで扱われる変形アルゴリズムオブジェ
クトは、点移動変形アルゴリズムオブジェクトあるいは
点分岐変形アルゴリズムオブジェクトである。変形アル
ゴリズム決定メソッドは、前述した変形アルゴリズムα
3を用いて、いずれの変形アルゴリズムオブジェクトを
用いるかを決定し、結果に応じて点移動アルゴリズムフ
ラグを更新する。ここでは、点移動変形アルゴリズムを
採用する場合は、このフラグを立て、そうでない場合は
フラグを伏せる。
【0090】変形アルゴリズム決定メソッドは、変形ア
ルゴリズムを決定するだけでなく、移動方向ベクトルを
返し、決定されたアルゴリズムが点分岐変形アルゴリズ
ムの場合は、さらに、変形要素オブジェクトの配列を返
す。変形要素オブジェクトの配列は、点分岐変形アルゴ
リズムの場合のみ意味があり、繋ぎ替えられるノードの
配列を表す。
【0091】点移動変形アルゴリズムにおいては、移動
方向ベクトルは、ノードの位置の移動方向を表す。ま
た、点分岐変形アルゴリズムにおいては、移動方向ベク
トルは、元のノードから見た新たに付け加えられたノー
ドの位置を表し、元のノードの位置の接空間上のベクト
ルで表される。
【0092】また、点移動用初期移動量は、点移動変形
アルゴリズムにより最初に変形させるときの点の移動量
(距離)に相当する。また、点移動用最大探索指数は、
点移動変形アルゴリズムによる探索を打ち切る目安とな
る微小移動量を決める指数である。処理装置は、移動量
がこの微小移動量になるまで、点移動変形による探索を
行う。この指数を大きくすると、微小移動量は小さくな
り、点移動変形による探索が高精度で行われる。点移動
用初期移動量をHとし、点移動用最大探索指数をNとす
ると、探索打ち切り微小移動量は、次式により与えられ
る。 微小移動量=H/2N [22] また、点分岐用初期移動量は、点分岐変形アルゴリズム
により最初に変形させるときの、基準とする元のノード
の位置と新たに付け加えられるノードの位置との距離に
相当する。
【0093】また、点分岐用最大探索指数は、点分岐変
形アルゴリズムによる探索を打ち切る目安となる微小移
動量を決める指数である。この指数を大きくすると、微
小移動量は小さくなり、点分岐変形による探索が高精度
で行われる。点分岐用初期移動量をHとし、点分岐用最
大探索指数をNとすると、探索打ち切り微小移動量は
[22]式により与えられる。
【0094】次に、距離空間オブジェクト群14の各オ
ブジェクトについては、以下の通りである。点オブジェ
クトは、距離空間上の点に対応する。
【0095】距離空間オブジェクトは、リーマン空間フ
ラグオブジェクト、距離メソッド、ランダムメソッド、
接ベクトルメソッド、測地線メソッド、および複数点メ
ソッドを所持する。リーマン空間フラグオブジェクト
は、リーマン空間フラグをデータとして所持する。
【0096】距離メソッドは、2つの点オブジェクトが
与えられた場合、対応する2点間の距離を返し、ランダ
ムメソッドは、ランダムに生成した点オブジェクトを返
す。接ベクトルメソッドは、2つの点オブジェクトが与
えられた場合、対応する2点を結ぶ測地線の1つの点に
おける単位接ベクトルを返す。この接ベクトルメソッド
は、リーマン空間フラグが立っている場合のみ有効であ
る。
【0097】また、測地線メソッドは、点オブジェクト
とそれに対応する点における単位接ベクトルオブジェク
トと長さが与えられた場合、その点を出発して、単位接
ベクトルオブジェクトに対応する単位接ベクトルに沿っ
た測地線上の点で、与えられた点から与えられた長さの
距離にあるものを求め、得られた点に対応する点オブジ
ェクトを返す。この測地線メソッドは、リーマン空間フ
ラグが立っている場合のみ有効である。
【0098】また、複数点メソッドは、点オブジェクト
と長さと個数が与えられた場合、その点オブジェクトか
ら与えられた長さだけ距離が離れた点オブジェクトを、
与えられた個数だけ返す。この複数点メソッドは、リー
マン空間フラグが伏している場合のみ有効としてもよ
い。
【0099】スクリーン座標変換オブジェクトは、座標
変換メソッドと線メソッドを所持する。座標変換メソッ
ドは、与えられた点オブジェクトをスクリーン上の座標
に変換し、その座標を返す。また、線メソッドは、与え
られた2つの点オブジェクトに対して、対応する2点を
結ぶスクリーン上の線を返す。
【0100】次に、距離空間オブジェクトファクトリオ
ブジェクト群15の各オブジェクトについては、以下の
通りである。距離空間オブジェクト生成オブジェクト
は、個別の距離空間に対応した距離空間オブジェクトを
生成する生成メソッドを所持し、点オブジェクト生成オ
ブジェクトは、個別の距離空間の点に対応した点オブジ
ェクトを生成する生成メソッドを所持し、スクリーン座
標変換オブジェクト生成オブジェクトは、個別の距離空
間に対応したスクリーン座標変換オブジェクトを生成す
る生成メソッドを所持する。
【0101】次に、図6のオブジェクトが行う処理につ
いて、より詳細に説明する。ここでは、変形アルゴリズ
ム群オブジェクトが管理する変形アルゴリズムによる変
形操作がすべて終了したとき、1つの変形要素に関する
探索が終了し、ユーザがマウス等を用いて画面上の停止
ボタンを押す操作を行ったとき、すべての探索が終了す
る。
【0102】図7は、システムを起動する起動プログラ
ムの処理のフローチャートである。起動プログラムは、
まず、距離空間オブジェクト生成オブジェクトを起動し
て、距離空間オブジェクトを生成し(ステップS1)、
スクリーン座標変換オブジェクト生成オブジェクトを起
動して、スクリーン座標変換オブジェクトを生成し(ス
テップS2)、点オブジェクト生成オブジェクトを起動
して、点オブジェクトを生成する(ステップS3)。
【0103】次に、コスト関数オブジェクトを生成し
(ステップS4)、開始形状生成オブジェクトを生成し
(ステップS5)、変形アルゴリズム管理オブジェクト
を生成し(ステップS6)、探索エンジンオブジェクト
を生成し(ステップS7)、形状表示オブジェクトを生
成する(ステップS8)。そして、起動ボタンオブジェ
クトを生成し(ステップS9)、停止ボタンオブジェク
トを生成する(ステップS10)。
【0104】次に、形状表示オブジェクトに対応する表
示領域を表示し(ステップS11)、起動ボタンオブジ
ェクトに対応する起動ボタンを表示し(ステップS1
2)、停止ボタンオブジェクトに対応する停止ボタンを
表示して(ステップS13)、処理を終了する。
【0105】図8および図9は、探索エンジンオブジェ
クトが所持する探索メソッドの処理のフローチャートで
ある。探索メソッドは、まず、探索形状を表す形状オブ
ジェクトが存在するかどうかをチェックし(図8のステ
ップS21)、それが存在しなければ処理を終了する。
形状オブジェクトが存在すれば、停止ボタンオブジェク
トが所持する終了フラグオブジェクトの終了フラグを伏
せる(オフにする)(ステップS22)。
【0106】次に、探索形状のコスト値が求まっている
かどうかをチェックし(ステップS23)、コスト値が
求まっていなければ、コスト関数オブジェクトに探索形
状のコスト値を問い合せ、得られたコスト値をコスト値
オブジェクトのコスト値に格納する(ステップS2
4)。
【0107】次に、終了フラグオブジェクトの終了フラ
グが立っているかどうか(オンかどうか)を停止ボタン
オブジェクトに問い合せ、終了フラグが立っていれば処
理を終了する(ステップS25)。
【0108】次に、変形アルゴリズム管理オブジェクト
に次の変形要素が存在するかどうかを問い合せる(ステ
ップS26、S27)。次の変形要素が存在しなけれ
ば、形状表示オブジェクトが所持する状態フラグオブジ
ェクトの状態フラグを立てて、探索形状の表示を依頼し
(ステップS28)、変形アルゴリズム管理オブジェク
トに初期化メソッドの実行を依頼する(ステップS2
9)。
【0109】次に、変形アルゴリズム管理オブジェクト
に次の変形要素を問い合せ(ステップS30)、変形ア
ルゴリズム群オブジェクトに対して、得られた変形要素
に基づいて初期化メソッドを実行するように依頼する
(ステップS31)。
【0110】次に、変形アルゴリズム群オブジェクトに
次の変形アルゴリズムが存在するかどうかを問い合せる
(図9のステップS32、S33)。次の変形アルゴリ
ズムが存在すれば、その変形アルゴリズムを表す変形ア
ルゴリズムオブジェクトを取得し(ステップS34)、
得られた変形アルゴリズムオブジェクトに対して、探索
形状の変形形状を問い合せる(ステップS35)。
【0111】次に、得られた変形形状のコスト値をコス
ト関数オブジェクトに問い合せ、得られたコスト値をコ
スト値オブジェクトが所持する探索形状のコスト値と比
較する(ステップS36)。変形形状のコスト値が探索
形状のコスト値以上であれば、ステップS32以降の処
理を繰り返し、変形形状のコスト値が探索形状のコスト
値より小さければ、変形形状を探索形状として採用し、
形状オブジェクトと変形された変形要素オブジェクトを
更新する(ステップS37)。
【0112】そして、変形形状のコスト値をコスト値オ
ブジェクトのコスト値に代入し(ステップS38)、変
形アルゴリズム群オブジェクトが所持する更新フラグオ
ブジェクトの更新フラグを立てて(ステップS38)、
ステップS32以降の処理を繰り返す。
【0113】ステップS33において次の変形アルゴリ
ズムが存在しなければ、形状表示オブジェクトが所持す
る状態フラグオブジェクトの状態フラグを伏せて、探索
形状の表示を依頼し(ステップS40)、図8のステッ
プS25以降の処理を繰り返す。これにより、次の変形
要素に関する処理が行われる。
【0114】図10は、起動ボタンオブジェクトが所持
する起動メソッドの処理のフローチャートである。起動
メソッドは、まず、起動ボタンが押されたかどうかを定
期的にチェックする(ステップS41)。起動ボタンが
押されたら、タイミングフラグオブジェクトのタイミン
グフラグを設定し(ステップS42)、探索エンジンオ
ブジェクトに探索の開始を依頼して(ステップS4
3)、処理を終了する。
【0115】ステップS42においては、タイミングフ
ラグを立てる処理と伏せる処理の2通りの処理が考えら
れる。探索形状を画面に表示するかどうかは、後述する
ように、タイミングフラグと状態フラグの関係に基づい
て決定されるため、タイミングフラグを立てるか伏せる
かに応じて異なる表示タイミングを指定することができ
る。
【0116】図11は、停止ボタンオブジェクトが所持
する停止メソッドの処理のフローチャートである。停止
メソッドは、まず、起動ボタンが押されたかどうかを定
期的にチェックする(ステップS51)。停止ボタンが
押されたら、終了フラグオブジェクトの終了フラグを立
てて(ステップS52)、処理を終了する。
【0117】図12は、コスト関数オブジェクトが所持
するコスト値メソッドの処理のフローチャートである。
コスト値メソッドは、まず、変数costに0を代入し
(ステップS61)、変数iに1を代入して(ステップ
S62)、与えられた形状オブジェクトにおける変形要
素対配列にi番目の要素があるかどうかをチェックする
(ステップS63)。
【0118】i番目の要素があれば、その要素に対応す
る変形要素対を取り出し(ステップS64)、取り出さ
れた変形要素対に含まれる2つの変形要素から、それら
の保持している点オブジェクトを取り出す(ステップS
65)。
【0119】次に、取り出された2つの点オブジェクト
に対応する2点間の距離の算出を距離空間オブジェクト
に依頼し(ステップS66)、得られた2点間の距離を
costの値に加算する(ステップS67)。そして、
iに1を加算し(ステップS68)、ステップS63以
降の処理を繰り返す。ステップS63においてi番目の
要素がなければ、costの値を返して(ステップS6
9)、処理を終了する。
【0120】図13および図14は、開始形状生成オブ
ジェクトが所持する開始形状メソッドの処理のフローチ
ャートである。開始形状メソッドは、まず、開始形状生
成ボタンが押されたかどうかを定期的にチェックし(図
13のステップS71)、開始形状生成ボタンが押され
たら、次に、固定ノード数が設定されているかどうかを
チェックする(ステップS72)。固定ノード数が設定
されていれば、次に、初期補完ノード数が設定されてい
るかどうかをチェックする(ステップS73)。
【0121】初期補完ノード数が設定されていれば、固
定ノード数分の点オブジェクトのランダム生成を距離空
間オブジェクトに依頼し、得られた点オブジェクトを元
にして変形要素オブジェクトを生成し、生成されたすべ
ての変形要素オブジェクトの固定ノードフラグを立てる
(ステップS74)。
【0122】初期補完ノード数が設定されていなけれ
ば、その値を0に設定し(ステップS75)、ステップ
S74の処理を行う。また、ステップS72において、
固定ノード数が設定されていなければ、エラー処理を行
ってエラーメッセージ等を表示し(ステップS76)、
処理を終了する。
【0123】次に、初期補完ノード数分の点オブジェク
トのランダム生成を距離空間オブジェクトに依頼し、得
られた点オブジェクトを元にして変形要素オブジェクト
を生成し、生成されたすべての変形要素オブジェクトの
固定ノードフラグを伏せる(ステップS77)。
【0124】次に、得られた変形要素オブジェクトを適
当に並べて変形要素配列を生成し、形状オブジェクトに
記憶させる(ステップS78)。そして、得られた変形
要素配列において、隣同士の変形要素オブジェクトを対
にして変形要素対配列を生成し、形状オブジェクトに記
憶させて(ステップS79)、処理を終了する。
【0125】図15は、形状オブジェクトが所持する再
配置メソッドの処理のフローチャートである。再配置メ
ソッドは、まず、変形要素配列の要素としてNullオ
ブジェクト(空き要素)が存在する場合、その要素を削
除して、それ以降の要素を前に詰める(ステップS8
1)。次に、変形要素対配列の要素としてNullオブ
ジェクトが存在する場合、その要素を削除して、それ以
降の要素を前に詰め(ステップS82)、処理を終了す
る。
【0126】図16は、変形アルゴリズム管理オブジェ
クトが所持する初期化メソッドの処理のフローチャート
である。初期化メソッドは、まず、形状オブジェクトが
所持している変形要素配列および変形要素対配列を再配
置し(ステップS91)、変形要素配列の要素数を初期
配列要素数として記憶する(ステップS92)。そし
て、ポインタに0を代入して(ステップS93)、処理
を終了する。
【0127】図17は、変形アルゴリズム管理オブジェ
クトが所持する変形要素メソッドの処理のフローチャー
トである。変形要素メソッドは、まず、ポインタの値と
初期配列要素数を比較し(ステップS101)、ポイン
タが初期配列要素数以下であれば、形状オブジェクトか
らポインタが指す変形要素オブジェクトの情報を取り出
す(ステップS102)。そして、ポインタに1を加算
し(ステップS103)、取り出した情報を返して(ス
テップS104)、処理を終了する。
【0128】また、ステップS101において、ポイン
タが初期配列要素数より大きければ、エラー処理を行っ
て(ステップS105)、処理を終了する。図18は、
変形アルゴリズム管理オブジェクトが所持する通知メソ
ッドの処理のフローチャートである。通知メソッドは、
まず、ポインタの値と初期配列要素数を比較し(ステッ
プS111)、ポインタが初期配列要素数以下であれ
ば、“Yes”を返して(ステップS112)、処理を
終了する。ポインタが初期配列要素数より大きければ、
“No”を返して(ステップS113)、処理を終了す
る。
【0129】図19は、変形アルゴリズム群オブジェク
トが所持する初期化メソッドの処理のフローチャートで
ある。初期化メソッドは、まず、更新フラグを伏せて
(ステップS121)、距離空間オブジェクトのリーマ
ン空間フラグが立っているかどうかをチェックする(ス
テップS122)。
【0130】リーマン空間フラグが立っていなければ、
与えられた変形要素オブジェクトによって非リーマン空
間変形アルゴリズム群オブジェクトを初期化し(ステッ
プS123)、処理を終了する。また、リーマン空間フ
ラグが立っていれば、与えられた変形要素オブジェクト
によってリーマン空間変形アルゴリズム群オブジェクト
を初期化し(ステップS124)、処理を終了する。
【0131】図20は、変形アルゴリズム群オブジェク
トが所持する変形アルゴリズムメソッドの処理のフロー
チャートである。変形アルゴリズムメソッドは、まず、
距離空間オブジェクトのリーマン空間フラグが立ってい
るかどうかをチェックする(ステップS131)。
【0132】リーマン空間フラグが立っていなければ、
非リーマン空間変形アルゴリズム群オブジェクトに次の
変形アルゴリズムオブジェクトを要求し、得られた情報
を返して(ステップS132)、処理を終了する。ま
た、リーマン空間フラグが立っていれば、リーマン空間
変形アルゴリズム群オブジェクトに次の変形アルゴリズ
ムオブジェクトを要求し、得られた情報を返して(ステ
ップS133)、処理を終了する。
【0133】図21は、変形アルゴリズム群オブジェク
トが所持する通知メソッドの処理のフローチャートであ
る。通知メソッドは、まず、距離空間オブジェクトのリ
ーマン空間フラグが立っているかどうかをチェックする
(ステップS141)。
【0134】リーマン空間フラグが立っていなければ、
非リーマン空間変形アルゴリズム群オブジェクトに次の
変形アルゴリズムオブジェクトが存在するか否かを問い
合わせ、得られた結果を返して(ステップS142)、
処理を終了する。また、リーマン空間フラグが立ってい
れば、リーマン空間変形アルゴリズム群オブジェクトに
次の変形アルゴリズムオブジェクトが存在するか否かを
問い合わせ、得られた結果を返して(ステップS14
3)、処理を終了する。
【0135】図22は、点移動変形アルゴリズムオブジ
ェクトが所持する変形メソッドの処理のフローチャート
である。変形メソッドは、まず、所持している変形要素
オブジェクトの固定ノードフラグが立っているかどうか
をチェックする(ステップS151)。
【0136】固定ノードフラグが立っていなければ、与
えられた形状オブジェクトのコピーを作成し(ステップ
S152)、コピーが所持する変形要素配列および変形
要素対配列から、点移動変形アルゴリズムオブジェクト
の所持している変形要素オブジェクトと同じものを取り
出す(ステップS153)。
【0137】次に、取り出された変形要素オブジェクト
の所持している点オブジェクトを、点移動変形アルゴリ
ズムオブジェクトの所持している点オブジェクトに置き
換え(ステップS154)、コピーの形状オブジェクト
を返して(ステップS155)、処理を終了する。
【0138】また、ステップS151において、固定ノ
ードフラグが立っていれば、エラー処理を行って(ステ
ップS156)、処理を終了する。図23は、点分岐変
形アルゴリズムオブジェクトが所持する変形メソッドの
処理のフローチャートである。変形メソッドは、まず、
与えられた形状オブジェクトのコピーを作成し(ステッ
プS161)、変形要素オブジェクトを新たに生成する
(ステップS162)。
【0139】次に、生成した変形要素オブジェクトの固
定ノードフラグを伏せて(ステップS163)、その変
形要素オブジェクトに、点分岐変形アルゴリズムオブジ
ェクトの所持している点オブジェクトを記憶させる(ス
テップS164)。
【0140】次に、コピーの形状オブジェクトの変形要
素配列に、生成した変形要素オブジェクトを追加し(ス
テップS165)、コピーの形状オブジェクトの変形要
素対配列に、生成した変形要素オブジェクトと点分岐変
形アルゴリズムオブジェクトの所持している変形要素オ
ブジェクトとの対を追加する(ステップS166)。
【0141】次に、コピーの形状オブジェクトの変形要
素対配列から、点分岐変形アルゴリズムオブジェクトの
所持している変形要素オブジェクトと、点分岐変形アル
ゴリズムオブジェクトの所持している変形要素配列の要
素との対を削除する(ステップS167)。
【0142】次に、コピーの形状オブジェクトの変形要
素対配列に、生成された変形要素オブジェクトと、点分
岐変形アルゴリズムオブジェクトの所持している変形要
素配列の要素との対を追加する(ステップS168)。
そして、コピーの形状オブジェクトを返して(ステップ
S169)、処理を終了する。
【0143】図24は、点縮約変形アルゴリズムオブジ
ェクトが所持する変形メソッドの処理のフローチャート
である。変形メソッドは、まず、所持している変形要素
オブジェクトの固定ノードフラグが立っているかどうか
をチェックする(ステップS171)。
【0144】固定ノードフラグが立っていなければ、与
えられた形状オブジェクトのコピーを作成し(ステップ
S172)、コピーが所持する変形要素配列から、点縮
約変形アルゴリズムオブジェクトの所持している第1変
形要素オブジェクトを削除する(ステップS173)。
【0145】次に、点縮約変形アルゴリズムオブジェク
トの所持する変形要素対配列において、第1変形要素オ
ブジェクトを対の要素として含む配列要素を、第1変形
要素オブジェクトの代わりに第2変形要素オブジェクト
を含むようなものに置き換える(ステップS174)。
そして、コピーの形状オブジェクトを返して(ステップ
S175)、処理を終了する。
【0146】また、ステップS171において、固定ノ
ードフラグが立っていれば、エラー処理を行って(ステ
ップS176)、処理を終了する。図25は、形状表示
オブジェクトが所持する表示メソッドの処理のフローチ
ャートである。表示メソッドは、まず、タイミングフラ
グオブジェクトのタイミングフラグと状態フラグオブジ
ェクトの状態フラグが一致するかどうかをチェックする
(ステップS181)。
【0147】それらが一致すれば、与えられた形状オブ
ジェクトの所持する変形要素配列の各要素の所持する点
オブジェクトからなる配列(点配列)を作成する(ステ
ップS182)。次に、得られた点配列の各要素(点オ
ブジェクト)をスクリーン座標に変換するように、スク
リーン座標変換オブジェクトに依頼し、スクリーン上に
点として表示する(ステップS183)。
【0148】次に、与えられた形状オブジェクトの所持
する変形要素対配列の各要素に含まれる2つの変形要素
オブジェクトの所持する点オブジェクトを取り出し、点
オブジェクトの対の配列(点対配列)を作成する(ステ
ップS184)。
【0149】次に、得られた点対配列の各要素(点オブ
ジェクトの対)をスクリーン上の線に変換するように、
スクリーン座標変換オブジェクトに依頼し、スクリーン
上に線として表示して(ステップS185)、処理を終
了する。
【0150】また、ステップS181において2つのフ
ラグが一致しなければ、探索形状を表示せずに、処理を
終了する。タイミングフラグおよび状態フラグは、論理
“0”のとき、伏せた状態に対応し、論理“1”のと
き、立った状態に対応する。また、状態フラグは、論理
“0”のとき、1つの変形要素に関する探索が終了した
状態を表し、論理“1”のとき、形状の変形要素毎の探
索を一巡した状態を表す。
【0151】したがって、起動ボタンが押されたときに
タイミングフラグが論理“0”に設定されていれば、1
つの変形要素に関する探索が終了する度に、探索形状が
画面に表示される。また、起動ボタンが押されたときに
タイミングフラグが論理“1”に設定されていれば、変
形要素毎の探索を一巡する度に、探索形状が画面に表示
される。
【0152】図26は、点縮約変形アルゴリズム群オブ
ジェクトが所持する初期化メソッドの処理のフローチャ
ートである。初期化メソッドは、まず、与えられた変形
要素オブジェクトを記憶し(ステップS191)、形状
オブジェクトの所持している変形要素対配列の要素の中
から、与えられた変形要素オブジェクトを対の要素とし
て持つものを抽出する(ステップS192)。
【0153】次に、抽出された変形要素オブジェクトの
対から、与えられた変形要素オブジェクトと異なる変形
要素オブジェクトを抽出して、変形要素配列を作成し、
それを記憶する(ステップS193)。そして、ポイン
タに1を代入して(ステップS194)、処理を終了す
る。
【0154】図27は、点縮約変形アルゴリズム群オブ
ジェクトが所持する変形アルゴリズムメソッドの処理の
フローチャートである。変形アルゴリズムメソッドは、
まず、所持している変形要素配列の要素数とポインタの
値を比較する(ステップS201)。
【0155】ポインタが要素数以下であれば、点縮約変
形アルゴリズムオブジェクトを生成し(ステップS20
2)、生成された点縮約変形アルゴリズムオブジェクト
に、点縮約変形アルゴリズム群オブジェクトが所持して
いる変形要素オブジェクトを第1変形要素オブジェクト
として記憶させる(ステップS203)。
【0156】次に、生成された点縮約変形アルゴリズム
オブジェクトに、点縮約変形アルゴリズム群オブジェク
トが所持している変形要素配列においてポインタが指す
変形要素オブジェクトを、第2変形要素オブジェクトと
して記憶させる(ステップS204)。
【0157】次に、ポインタに1を加算し(ステップS
205)、生成された点縮約変形アルゴリズムオブジェ
クトを返して(ステップS206)、処理を終了する。
また、ステップS201において、ポインタが要素数よ
り大きければ、エラー処理を行って(ステップS20
7)、処理を終了する。
【0158】図28は、点縮約変形アルゴリズム群オブ
ジェクトが所持する通知メソッドの処理のフローチャー
トである。通知メソッドは、まず、所持している変形要
素配列の要素数とポインタの値を比較し(ステップS2
11)、ポインタが要素数以下であれば、“Yes”を
返して(ステップS212)、処理を終了する。ポイン
タが要素数より大きければ、“No”を返して(ステッ
プS213)、処理を終了する。
【0159】図29は、非リーマン空間変形アルゴリズ
ム群オブジェクトが所持する初期化メソッドの処理のフ
ローチャートである。初期化メソッドは、まず、与えら
れた変形要素オブジェクトの固定ノードフラグを記憶し
(ステップS221)、そのフラグが立っているかどう
かをチェックする(ステップS222)。
【0160】固定ノードフラグが立っていなければ、与
えられた変形要素オブジェクトを用いて、所持している
非リーマン空間点移動変形アルゴリズム群オブジェクト
を初期化し(ステップS223)、所持している非リー
マン空間点分岐変形アルゴリズム群オブジェクトを初期
化し(ステップS224)、所持している点縮約変形ア
ルゴリズム群オブジェクトを初期化する(ステップS2
25)。そして、変形アルゴリズムステータスに1を代
入し(ステップS226)、処理を終了する。
【0161】また、ステップS222において、固定ノ
ードフラグが立っていれば、与えられた変形要素オブジ
ェクトを用いて、所持している非リーマン空間点分岐変
形アルゴリズム群オブジェクトを初期化し(ステップS
227)、変形アルゴリズムステータスに2を代入して
(ステップS228)、処理を終了する。
【0162】図30および図31は、非リーマン空間変
形アルゴリズム群オブジェクトが所持する変形アルゴリ
ズムメソッドの処理のフローチャートである。変形アル
ゴリズムメソッドは、まず、固定ノードフラグが立って
いるかどうかをチェックする(図30のステップS23
1)。
【0163】固定ノードフラグが立っていれば、次に、
非リーマン空間点分岐変形アルゴリズム群オブジェクト
に、次の変形アルゴリズムが存在するかどうかを問い合
わせる(ステップS232)。次の変形アルゴリズムが
存在すれば、非リーマン空間点分岐変形アルゴリズム群
オブジェクトからその変形アルゴリズムの情報を取得
し、得られた情報を返して(ステップS233)、処理
を終了する。次の変形アルゴリズムが存在しなければ、
エラー処理を行って(ステップS234)、処理を終了
する。
【0164】ステップS231において、固定ノードフ
ラグが立っていなければ、変形アルゴリズムステータス
をチェックし(ステップS235)、その値が1であれ
ば、非リーマン空間点移動変形アルゴリズム群オブジェ
クトに、次の変形アルゴリズムが存在するかどうかを問
い合わせる(ステップS236)。次の変形アルゴリズ
ムが存在すれば、非リーマン空間点移動変形アルゴリズ
ム群オブジェクトからその変形アルゴリズムの情報を取
得し、得られた情報を返して(ステップS237)、処
理を終了する。
【0165】次の変形アルゴリズムが存在しなければ、
変形アルゴリズムステータスに2を代入し(ステップS
238)、図31の処理を行う。また、ステップS23
5において、変形アルゴリズムステータスの値が1でな
ければ、そのまま図31の処理を行う。
【0166】次に、変形アルゴリズムステータスをチェ
ックし(図31のステップS239)、その値が2であ
れば、非リーマン空間点分岐変形アルゴリズム群オブジ
ェクトに、次の変形アルゴリズムが存在するかどうかを
問い合わせる(ステップS240)。次の変形アルゴリ
ズムが存在すれば、非リーマン空間点分岐変形アルゴリ
ズム群オブジェクトからその変形アルゴリズムの情報を
取得し、得られた情報を返して(ステップS241)、
処理を終了する。
【0167】次の変形アルゴリズムが存在しなければ、
変形アルゴリズムステータスに3を代入し(ステップS
242)、ステップS243以降の処理を行う。また、
ステップS239において、変形アルゴリズムステータ
スの値が2でなければ、そのままステップS243以降
の処理を行う。
【0168】次に、変形アルゴリズムステータスをチェ
ックし(ステップS243)、その値が3であれば、点
縮約変形アルゴリズム群オブジェクトに、次の変形アル
ゴリズムが存在するかどうかを問い合わせる(ステップ
S244)。次の変形アルゴリズムが存在すれば、点縮
約変形アルゴリズム群オブジェクトからその変形アルゴ
リズムの情報を取得し、得られた情報を返して(ステッ
プS245)、処理を終了する。
【0169】次の変形アルゴリズムが存在しなければ、
エラー処理を行って(ステップS246)、処理を終了
する。また、ステップS243において、変形アルゴリ
ズムステータスの値が3でなければ、エラー処理を行っ
て(ステップS247)、処理を終了する。
【0170】図32は、非リーマン空間変形アルゴリズ
ム群オブジェクトが所持する通知メソッドの処理のフロ
ーチャートである。通知メソッドは、まず、固定ノード
フラグが立っているかどうかをチェックする(ステップ
S251)。
【0171】固定ノードフラグが立っていれば、非リー
マン空間点分岐変形アルゴリズム群オブジェクトに、次
の変形アルゴリズムが存在するかどうかを問い合わせ、
その結果を返して(ステップS252)、処理を終了す
る。
【0172】固定ノードフラグが立っていなければ、次
に、変形アルゴリズムステータスをチェックする(ステ
ップS253)。その値が3であれば、点縮約変形アル
ゴリズム群オブジェクトに、次の変形アルゴリズムが存
在するかどうかを問い合わせ、その結果を返して(ステ
ップS254)、処理を終了する。変形アルゴリズムス
テータスの値が3でなければ、“Yes”を返して(ス
テップS255)、処理を終了する。
【0173】図33は、非リーマン空間点移動変形アル
ゴリズム群オブジェクトが所持する初期化メソッドの処
理のフローチャートである。初期化メソッドは、まず、
与えられた変形要素オブジェクトを記憶する(ステップ
S261)。
【0174】次に、点移動用初期移動量に1を代入し
(ステップS262)、点移動用最大探索指数に7を代
入し(ステップS263)、点移動用同距離探索回数に
6を代入する(ステップS264)。次に、移動量に点
移動用初期移動量を代入し(ステップS265)、移動
量カウンタに1を代入し(ステップS266)、同距離
ポインタに1を代入する(ステップS267)。
【0175】そして、与えられた変形要素オブジェクト
が所持する点オブジェクトから移動量だけ離れた点に対
応する点オブジェクトを、点移動用同距離探索回数に対
応する個数分だけ入手することを、距離空間オブジェク
トに依頼し、得られた点オブジェクトを点配列として記
憶して(ステップS268)、処理を終了する。
【0176】図34は、非リーマン空間点移動変形アル
ゴリズム群オブジェクトが所持する点移動変形アルゴリ
ズムメソッドの処理のフローチャートである。点移動変
形アルゴリズムメソッドは、まず、同距離ポインタの値
と点移動用同距離探索回数を比較する(ステップS27
1)。
【0177】同距離ポインタが同距離探索回数以下であ
れば、所持している変形要素オブジェクトと、点配列に
おいて同距離ポインタが指す要素(点オブジェクト)か
ら、点移動変形アルゴリズムオブジェクトを作成する
(ステップS272)。そして、同距離ポインタに1を
加算し(ステップS273)、得られた点移動変形アル
ゴリズムオブジェクトを返して(ステップS274)、
処理を終了する。
【0178】ステップS271において、同距離ポイン
タが同距離探索回数より大きければ、移動量カウンタに
1を加算し(ステップS275)、移動量を半分にして
(ステップS276)、移動量カウンタの値と点移動用
最大探索指数を比較する(ステップS277)。
【0179】移動量カウンタが最大探索指数以下であれ
ば、図33のステップS268と同様の処理を行い(ス
テップS278)、同距離ポインタに1を代入して(ス
テップS279)、ステップS272以降の処理を行
う。移動量カウンタが最大探索指数より大きければ、エ
ラー処理を行って(ステップS280)、処理を終了す
る。 図35は、非リーマン空間点移動変形アルゴリズ
ム群オブジェクトが所持する通知メソッドの処理のフロ
ーチャートである。通知メソッドは、まず、同距離ポイ
ンタの値と点移動用同距離探索回数を比較する(ステッ
プS281)。同距離ポインタが同距離探索回数以下で
あれば、“Yes”を返して(ステップS282)、処
理を終了する。
【0180】同距離ポインタが同距離探索回数より大き
ければ、次に、移動量カウンタの値と点移動用最大探索
指数を比較する(ステップS283)。移動量カウンタ
が最大探索指数以下であれば、“Yes”を返して(ス
テップS284)、処理を終了する。移動量カウンタが
最大探索指数より大きければ、“No”を返して(ステ
ップS285)、処理を終了する。
【0181】図36は、非リーマン空間点分岐変形アル
ゴリズム群オブジェクトが所持する初期化メソッドの処
理のフローチャートである。初期化メソッドは、まず、
与えられた変形要素オブジェクトを記憶する(ステップ
S291)。
【0182】次に、点分岐用初期移動量に1を代入し
(ステップS292)、点分岐用最大探索指数に7を代
入し(ステップS293)、点分岐用同距離探索回数に
6を代入する(ステップS294)。次に、移動量に点
分岐用初期移動量を代入し(ステップS295)、移動
量カウンタに1を代入し(ステップS296)、同距離
ポインタに1を代入する(ステップS297)。
【0183】次に、与えられた変形要素オブジェクトが
所持する点オブジェクトから移動量だけ離れた点に対応
する点オブジェクトを、点分岐用同距離探索回数に対応
する個数分だけ入手することを、距離空間オブジェクト
に依頼し、得られた点オブジェクトを点配列として記憶
する(ステップS298)。
【0184】次に、形状オブジェクトが所持する変形要
素対配列から、与えられた変形要素オブジェクトを対の
要素として含む要素を抽出し、抽出された各対のもう一
方の要素である変形要素オブジェクトを抜き出して、変
形要素配列を作成する(ステップS299)。この変形
要素配列は、与えられた変形要素オブジェクトに対応す
るノードと接続しているノードの配列に対応する。
【0185】次に、得られた変形要素配列の要素からな
る集合を表す集合オブジェクトを作成し、その集合のす
べての部分集合を列挙して、部分集合オブジェクトの配
列(部分集合配列)として記憶する(ステップS30
0)。そして、処理を終了する。
【0186】図37および図38は、非リーマン空間点
分岐変形アルゴリズム群オブジェクトが所持する点分岐
変形アルゴリズムメソッドの処理のフローチャートであ
る。点分岐変形アルゴリズムメソッドは、まず、部分集
合ポインタの値と部分集合配列の要素数を比較する(図
37のステップS301)。部分集合ポインタが要素数
以下であれば、図38の処理を行う。
【0187】部分集合ポインタが要素数より大きけれ
ば、同距離ポインタに1を加算し(ステップS30
2)、次に、同距離ポインタの値と点分岐用同距離探索
回数を比較する(ステップS303)。
【0188】同距離ポインタが同距離探索回数以下であ
れば、部分集合ポインタに1を代入し(ステップS30
4)、図38の処理を行う。同距離ポインタが同距離探
索回数より大きければ、移動量カウンタに1を加算し
(ステップS305)、移動量を半分にして(ステップ
S306)、移動量カウンタの値と点分岐用最大探索指
数を比較する(ステップS307)。
【0189】移動量カウンタが最大探索指数以下であれ
ば、図36のステップS298と同様の処理を行い(ス
テップS308)、同距離ポインタに1を代入して(ス
テップS309)、ステップS304以降の処理を行
う。移動量カウンタが最大探索指数より大きければ、エ
ラー処理を行って(ステップS310)、処理を終了す
る。
【0190】次に、点分岐変形アルゴリズムオブジェク
トを生成し(図38のステップS311)、与えられた
変形要素オブジェクトを生成した点分岐変形アルゴリズ
ムオブジェクトに記憶させる(ステップS312)。そ
して、部分集合配列において部分集合ポインタが指す要
素(部分集合オブジェクト)から変形要素配列を作成
し、生成した点分岐変形アルゴリズムオブジェクトに記
憶させる(ステップS313)。
【0191】次に、点配列において同距離ポインタが指
す要素(点オブジェクト)を取り出し、生成した点分岐
変形アルゴリズムオブジェクトに記憶させる(ステップ
S314)。そして、部分集合ポインタに1を加算し
(ステップS315)、生成した点分岐変形アルゴリズ
ムオブジェクトを返して(ステップS316)、処理を
終了する。
【0192】図39は、非リーマン空間点分岐変形アル
ゴリズム群オブジェクトが所持する通知メソッドの処理
のフローチャートである。通知メソッドは、まず、部分
集合ポインタの値と部分集合配列の要素数を比較する
(ステップS321)。部分集合ポインタが要素数以下
であれば、“Yes”を返して(ステップS322)、
処理を終了する。
【0193】部分集合ポインタが要素数より大きけれ
ば、次に、同距離ポインタの値と点分岐用同距離探索回
数を比較する(ステップS323)。同距離ポインタが
同距離探索回数より小さければ、“Yes”を返して
(ステップS324)、処理を終了する。
【0194】同距離ポインタが同距離探索回数以上であ
れば、次に、移動量カウンタの値と点分岐用最大探索指
数を比較する(ステップS325)。移動量カウンタが
最大探索指数より小さければ、“Yes”を返して(ス
テップS326)、処理を終了する。移動量カウンタが
最大探索指数以上であれば、“No”を返して(ステッ
プS327)、処理を終了する。
【0195】図40は、リーマン空間変形アルゴリズム
群オブジェクトが所持する初期化メソッドの処理のフロ
ーチャートである。初期化メソッドは、まず、与えられ
た変形要素オブジェクトの固定ノードフラグを記憶し
(ステップS331)、与えられた変形要素オブジェク
トを元にして、リーマン空間点移動・分岐変形アルゴリ
ズム群オブジェクトを初期化し(ステップS332)、
点縮約変形アルゴリズム群オブジェクトを初期化する
(ステップS333)。そして、変形アルゴリズムステ
ータスに1を代入し(ステップS334)、処理を終了
する。
【0196】図41および図42は、リーマン空間変形
アルゴリズム群オブジェクトが所持する変形アルゴリズ
ムメソッドの処理のフローチャートである。変形アルゴ
リズムメソッドは、まず、固定ノードフラグが立ってい
るかどうかをチェックする(図41のステップS34
1)。
【0197】固定ノードフラグが立っていれば、次に、
リーマン空間点移動・分岐変形アルゴリズム群オブジェ
クトに、次の変形アルゴリズムが存在するかどうかを問
い合わせる(ステップS342)。次の変形アルゴリズ
ムが存在すれば、リーマン空間点移動・分岐変形アルゴ
リズム群オブジェクトからその変形アルゴリズムの情報
を取得し、得られた情報を返して(ステップS34
3)、処理を終了する。次の変形アルゴリズムが存在し
なければ、エラー処理を行って(ステップS344)、
処理を終了する。
【0198】ステップS341において、固定ノードフ
ラグが立っていなければ、変形アルゴリズムステータス
をチェックし(図42のステップS345)、その値が
1であれば、リーマン空間点移動・分岐変形アルゴリズ
ム群オブジェクトに、次の変形アルゴリズムが存在する
かどうかを問い合わせる(ステップS346)。次の変
形アルゴリズムが存在すれば、リーマン空間点移動・分
岐変形アルゴリズム群オブジェクトからその変形アルゴ
リズムの情報を取得し、得られた情報を返して(ステッ
プS347)、処理を終了する。
【0199】次の変形アルゴリズムが存在しなければ、
変形アルゴリズムステータスに3を代入し(ステップS
348)、ステップS349以降の処理を行う。また、
ステップS345において、変形アルゴリズムステータ
スの値が1でなければ、そのままステップS349以降
の処理を行う。
【0200】次に、変形アルゴリズムステータスをチェ
ックし(ステップS349)、その値が3であれば、点
縮約変形アルゴリズム群オブジェクトに、次の変形アル
ゴリズムが存在するかどうかを問い合わせる(ステップ
S350)。次の変形アルゴリズムが存在すれば、点縮
約変形アルゴリズム群オブジェクトからその変形アルゴ
リズムの情報を取得し、得られた情報を返して(ステッ
プS351)、処理を終了する。
【0201】ステップS349において、変形アルゴリ
ズムステータスの値が3でなければ、エラー処理を行っ
て(ステップS352)、処理を終了する。また、ステ
ップS350において、次の変形アルゴリズムが存在し
なければ、エラー処理を行って(ステップS353)、
処理を終了する。
【0202】図43は、リーマン空間変形アルゴリズム
群オブジェクトが所持する通知メソッドの処理のフロー
チャートである。通知メソッドは、まず、固定ノードフ
ラグが立っているかどうかをチェックする(ステップS
361)。
【0203】固定ノードフラグが立っていれば、リーマ
ン空間点移動・分岐変形アルゴリズム群オブジェクト
に、次の変形アルゴリズムが存在するかどうかを問い合
わせ、その結果を返して(ステップS362)、処理を
終了する。
【0204】固定ノードフラグが立っていなければ、次
に、変形アルゴリズムステータスをチェックする(ステ
ップS363)。その値が3であれば、点縮約変形アル
ゴリズム群オブジェクトに、次の変形アルゴリズムが存
在するかどうかを問い合わせ、その結果を返して(ステ
ップS364)、処理を終了する。変形アルゴリズムス
テータスの値が3でなければ、“Yes”を返して(ス
テップS365)、処理を終了する。
【0205】図44は、リーマン空間点移動・分岐変形
アルゴリズム群オブジェクトが所持する初期化メソッド
の処理のフローチャートである。初期化メソッドは、ま
ず、与えられた変形要素オブジェクトを記憶する(ステ
ップS371)。
【0206】次に、点移動用初期移動量に1を代入し
(ステップS372)、点分岐用初期移動量に1を代入
する(ステップS373)。次に、点移動用最大探索指
数に6を代入し(ステップS374)、点分岐用最大探
索指数に6を代入し(ステップS375)、移動量カウ
ンタに1を代入する(ステップS376)。
【0207】そして、変形アルゴリズム決定メソッドを
呼び出して点移動アルゴリズムフラグと移動方向ベクト
ルを更新し、決定されたアルゴリズムが点分岐変形アル
ゴリズムの場合、変形要素配列を更新して(ステップS
377)、処理を終了する。
【0208】図45は、図44のステップS377にお
いて呼び出される変形アルゴリズム決定メソッドの処理
のフローチャートである。変形アルゴリズム決定メソッ
ドは、まず、点移動用移動ベクトル算出メソッドを呼び
出して、点移動用移動ベクトルを取得し(ステップS3
81)、点分岐用移動ベクトル算出メソッドを呼び出し
て、点分岐用移動ベクトルと変形要素配列を取得する
(ステップS382)。
【0209】次に、点移動用移動ベクトルの長さと、点
分岐用移動ベクトルの長さから1を引いた値を比較する
(ステップS383)。前者が後者以上であれば、点移
動変形アルゴリズムを採用することに決定し、点移動ア
ルゴリズムフラグを立てて(ステップS384)、点移
動用移動ベクトルを適当な正の実数でスカラー倍して、
長さ1のベクトルを作成する(ステップS385)。そ
して、得られたベクトルを移動方向ベクトルとして記憶
して(ステップS386)、処理を終了する。
【0210】前者が後者より小さければ、点分岐変形ア
ルゴリズムを採用することに決定し、点移動アルゴリズ
ムフラグを伏せて(ステップS387)、点分岐用移動
ベクトルを適当な正の実数でスカラー倍して、長さ1の
ベクトルを作成する(ステップS388)。そして、得
られたベクトルを移動方向ベクトルとして記憶し(ステ
ップS389)、ステップS382で得られた変形要素
配列を記憶して(ステップS390)、処理を終了す
る。
【0211】図46は、図45のステップS381にお
いて呼び出される点移動用移動ベクトル算出メソッドの
処理のフローチャートである。点移動用移動ベクトル算
出メソッドは、まず、所持している変形要素オブジェク
トと接続している変形要素オブジェクトを求め、それら
を要素とする変形要素配列を生成する(ステップS39
1)。
【0212】次に、総和ベクトルオブジェクトが所持す
る総和ベクトルに0ベクトルを代入し(ステップS39
2)、変数Nに1を代入して(ステップS393)、生
成された変形要素配列の要素数とNを比較する(ステッ
プS394)。
【0213】Nが要素数以下であれば、変形要素配列の
N番目の要素を取り出し、その変形要素オブジェクトが
所持している点オブジェクトを取り出す(ステップS3
95)。そして、所持している変形要素オブジェクトが
所持している点オブジェクトと取り出された点オブジェ
クトに対応する2点を結ぶ測地線の、前者の点オブジェ
クトにおける単位接ベクトルを算出するように、距離空
間オブジェクトに依頼する(ステップS396)。
【0214】次に、算出された単位接ベクトルを総和ベ
クトルに加算し(ステップS397)、Nに1を加算し
て(ステップS398)、ステップS394以降の処理
を繰り返す。そして、ステップS394において、Nが
要素数を超えれば、そのときの総和ベクトルオブジェク
トを返して(ステップS399)、処理を終了する。
【0215】図47および図48は、図45のステップ
S382において呼び出される点分岐用移動ベクトル算
出メソッドの処理のフローチャートである。点分岐用移
動ベクトル算出メソッドは、まず、所持している変形要
素オブジェクトと接続している変形要素オブジェクトを
求め、それらを要素とする変形要素配列を生成する(図
47のステップS401)。そして、得られた配列を変
形要素オブジェクトの集合とみなし、そのすべての部分
集合を列挙して、部分集合配列を作成する(ステップS
402)。
【0216】次に、最大総和ベクトルオブジェクトが所
持する最大総和ベクトルに0ベクトルを代入し(ステッ
プS403)、最大部分集合オブジェクトが所持する最
大部分集合にNullを代入し(ステップS404)、
変数Mに1を代入して(ステップS405)、部分集合
配列の要素数とMを比較する(ステップS406)。M
が要素数を超えていれば、そのときの最大総和ベクトル
オブジェクトと最大部分集合オブジェクトを返して(ス
テップS407)、処理を終了する。
【0217】Mが要素数以下であれば、部分集合配列の
M番目の要素である変形要素配列を取り出し(ステップ
S408)、総和ベクトルに0ベクトルを代入し(ステ
ップS409)、変数Nに1を代入する(ステップS4
10)。そして、取り出された変形要素配列の要素数と
Nを比較する(ステップS411)。
【0218】Nが要素数以下であれば、変形要素配列の
N番目の要素を取り出し、その変形要素オブジェクトが
所持している点オブジェクトを取り出す(ステップS4
12)。そして、図46のステップS396と同様にし
て、単位接ベクトルの算出を距離空間オブジェクトに依
頼する(ステップS413)。
【0219】次に、算出された単位接ベクトルを総和ベ
クトルに加算し(ステップS414)、Nに1を加算し
て(ステップS415)、ステップS411以降の処理
を繰り返す。そして、ステップS411において、Nが
要素数を超えれば、Mに1を加算して(ステップS41
6)、最大総和ベクトルの長さと総和ベクトルの長さを
比較する(ステップS417)。
【0220】総和ベクトルが最大総和ベクトルより長け
れば、最大総和ベクトルオブジェクトに総和ベクトルオ
ブジェクトを代入し(ステップS418)、最大部分集
合オブジェクトに部分集合配列のM番目の要素を代入し
て(ステップS419)、図47のステップS406以
降の処理を繰り返す。総和ベクトルの長さが最大総和ベ
クトルの長さ以下であれば、そのままステップS406
以降の処理を繰り返す。
【0221】図49および図50は、リーマン空間点移
動・分岐変形アルゴリズム群オブジェクトが所持する変
形アルゴリズムメソッドの処理のフローチャートであ
る。変形アルゴリズムメソッドは、まず、点移動アルゴ
リズムフラグが立っているかどうかをチェックする(図
49のステップS421)。点移動アルゴリズムフラグ
が立っていなければ、次に、移動量カウンタの値と点分
岐用最大探索指数を比較する(ステップS422)。
【0222】移動量カウンタが最大探索指数以下であれ
ば、変形要素オブジェクトの所持している点オブジェク
トの位置から移動方向ベクトルの指す方向に移動量だけ
離れた測地線上の位置を算出するように、距離空間オブ
ジェクトに依頼し(ステップS423)、図50の処理
を行う。移動量カウンタが最大探索指数より大きけれ
ば、エラー処理を行って(ステップS424)、処理を
終了する。
【0223】また、ステップS421において、点移動
アルゴリズムフラグが立っていれば、次に、移動量カウ
ンタの値と点移動用最大探索指数を比較する(ステップ
S425)。移動量カウンタが最大探索指数以下であれ
ば、ステップS423以降の処理を行い、移動量カウン
タが最大探索指数より大きければ、エラー処理を行って
(ステップS426)、処理を終了する。
【0224】次に、再び、点移動アルゴリズムフラグが
立っているかどうかをチェックする(図50のステップ
S427)。点移動アルゴリズムフラグが立っていなけ
れば、点分岐変形アルゴリズムオブジェクトを生成し
(ステップS428)、生成された点分岐変形アルゴリ
ズムオブジェクトに、所持している変形要素オブジェク
トを記憶させる(ステップS429)。
【0225】次に、その点分岐変形アルゴリズムオブジ
ェクトに、移動方向ベクトルと移動量から得た空間上の
位置に対応する点オブジェクトを記憶させ(ステップS
430)、所持している変形要素配列を記憶させる(ス
テップS431)。そして、その点分岐変形アルゴリズ
ムオブジェクトを返して(ステップS432)、処理を
終了する。
【0226】また、ステップS427において、点移動
アルゴリズムフラグが立っていれば、点移動変形アルゴ
リズムオブジェクトを生成し(ステップS433)、生
成された点移動変形アルゴリズムオブジェクトに、所持
している変形要素オブジェクトを記憶させる(ステップ
S434)。
【0227】次に、その点移動変形アルゴリズムオブジ
ェクトに、ステップS430と同様の点オブジェクトを
記憶させ(ステップS435)、その点移動変形アルゴ
リズムオブジェクトを返して(ステップS436)、処
理を終了する。
【0228】図51は、リーマン空間点移動・分岐変形
アルゴリズム群オブジェクトが所持する通知メソッドの
処理のフローチャートである。通知メソッドは、まず、
点移動アルゴリズムフラグが立っているかどうかをチェ
ックする(ステップS441)。点移動アルゴリズムフ
ラグが立っていなければ、次に、移動量カウンタの値と
点分岐用最大探索指数を比較する(ステップS44
2)。
【0229】移動量カウンタが最大探索指数より大きけ
れば、“No”を返して(ステップS443)、処理を
終了し、移動量カウンタが最大探索指数以下であれば、
“Yes”を返して(ステップS444)、処理を終了
する。
【0230】また、ステップS441において、点移動
アルゴリズムフラグが立っていれば、次に、移動量カウ
ンタの値と点移動用最大探索指数を比較する(ステップ
S445)。移動量カウンタが最大探索指数以下であれ
ば、“Yes”を返して(ステップS446)、処理を
終了し、移動量カウンタが最大探索指数より大きけれ
ば、“No”を返して(ステップS447)、処理を終
了する。
【0231】次に、距離空間が平面および3次元レクト
リニアの2つの場合を例に取って、距離空間オブジェク
ト群14の各オブジェクトが行う処理を説明する。ま
ず、距離空間が平面の場合、距離空間オブジェクトが所
持するリーマン空間フラグはオンに固定される。また、
点オブジェクトは、x成分オブジェクトとy成分オブジ
ェクトを所持する2次元ベクトルオブジェクトとして生
成される。x成分オブジェクトは、xy座標平面におけ
る点(x,y)のx成分(実数)を所持し、y成分オブ
ジェクトは、点(x,y)のy成分(実数)を所持す
る。
【0232】また、スクリーン座標変換オブジェクト
は、スクリーン横ピクセル数オブジェクトとスクリーン
縦ピクセル数オブジェクトを所持する。スクリーン横ピ
クセル数オブジェクトは、スクリーン横ピクセル数(整
数)を所持し、スクリーン縦ピクセル数オブジェクト
は、スクリーン縦ピクセル数(整数)を所持する。ここ
では、横ピクセル数=縦ピクセル数=300に固定され
ている。この場合、各メソッドの処理は以下のようにな
る。
【0233】図52は、距離空間オブジェクトが所持す
る距離メソッドの処理のフローチャートである。距離メ
ソッドは、まず、与えられた2つの点オブジェクトに対
応する2つの2次元ベクトルから、それらの差を表す2
次元ベクトルを求める(ステップS451)。次に、得
られた2次元ベクトルのx成分とy成分をそれぞれ2乗
して加算し、得られた和の平方根を計算する(ステップ
S452)。そして、得られた値を返して(ステップS
453)、処理を終了する。
【0234】図53は、距離空間オブジェクトが所持す
るランダムメソッドの処理のフローチャートである。ラ
ンダムメソッドは、まず、乱数発生器により−0.5以
上+0.5以下の2つの実数を生成し(ステップS46
1)、得られた2つの実数をそれぞれx成分とy成分と
する2次元ベクトルを所持する2次元ベクトルオブジェ
クトを作成する(ステップS462)。そして、作成さ
れた2次元ベクトルオブジェクトを点オブジェクトとし
て返して(ステップS463)、処理を終了する。
【0235】図54は、距離空間オブジェクトが所持す
る接ベクトルメソッドの処理のフローチャートである。
接ベクトルメソッドは、まず、与えられた2つの点オブ
ジェクトに対応する2つの2次元ベクトルから、それら
の差を表す2次元ベクトルを求め(ステップS47
1)、得られた2次元ベクトルの長さを求める(ステッ
プS472)。次に、得られた2次元ベクトルをその長
さの逆数でスカラー倍し(ステップS473)、得られ
た2次元ベクトルを単位接ベクトルとして返して(ステ
ップS474)、処理を終了する。
【0236】図55は、距離空間オブジェクトが所持す
る測地線メソッドの処理のフローチャートである。測地
線メソッドは、まず、与えられた単位接ベクトルを与え
られた長さでスカラー倍して、2次元ベクトルを算出す
る(ステップS481)。次に、与えられた点オブジェ
クトに算出された2次元ベクトルを加算し(ステップS
482)、得られた2次元ベクトルを点オブジェクトと
して返して(ステップS483)、処理を終了する。
【0237】図56は、スクリーン座標変換オブジェク
トが所持する座標変換メソッドの処理のフローチャート
である。座標変換メソッドは、まず、xy座標平面上に
おいて、点(0.5,0.5)と点(−0.5,−0.
5)を結ぶ線を対角線とする正方形を、点(0,0)と
点(300,300)を結ぶ線を対角線とする正方形に
変換する2次元アフィン変換により、与えられた点オブ
ジェクトを2次元ベクトルオブジェクトに変換する(ス
テップS491)。
【0238】次に、得られた2次元ベクトルオブジェク
トのx成分とy成分の整数部分からスクリーン上の座標
を決定し、その点を返して(ステップS492)、処理
を終了する。
【0239】図57は、スクリーン座標変換オブジェク
トが所持する線メソッドの処理のフローチャートであ
る。線メソッドは、与えられた2つの点オブジェクトを
スクリーン座標に変換し、得られた2つのスクリーン上
の点を結ぶ直線を返して(ステップS501)、処理を
終了する。
【0240】次に、距離空間が3次元レクトリニアの場
合、リーマン空間フラグはオフに固定される。また、点
オブジェクトは、平面の場合と同様に、x成分オブジェ
クトとy成分オブジェクトを所持する2次元ベクトルオ
ブジェクトとして生成され、x成分およびy成分は整数
で記述される。
【0241】また、スクリーン座標変換オブジェクト
は、平面の場合と同様に、スクリーン横ピクセル数オブ
ジェクトとスクリーン縦ピクセル数オブジェクトを所持
する。ここでは、横ピクセル数=縦ピクセル数=256
に固定されている。この場合、各メソッドの処理は以下
のようになる。
【0242】図58は、距離空間オブジェクトが所持す
る距離メソッドの処理のフローチャートである。距離メ
ソッドは、まず、与えられた2つの点オブジェクトに対
応する2つの2次元ベクトルから、それらの差を表す2
次元ベクトルを求める(ステップS511)。次に、得
られた2次元ベクトルのx成分の絶対値とy成分の絶対
値を加算し(ステップS512)、得られた値を64で
割った値を返して(ステップS513)、処理を終了す
る。
【0243】図59は、距離空間オブジェクトが所持す
るランダムメソッドの処理のフローチャートである。ラ
ンダムメソッドは、まず、乱数発生器により0以上63
以下の2つの整数を生成し(ステップS521)、得ら
れた2つの整数をそれぞれx成分とy成分とする2次元
ベクトルを所持する2次元ベクトルオブジェクトを作成
する(ステップS522)。そして、作成された2次元
ベクトルオブジェクトを点オブジェクトとして返して
(ステップS523)、処理を終了する。
【0244】図60および図61は、距離空間オブジェ
クトが所持する複数点メソッドの処理のフローチャート
である。複数点メソッドは、まず、与えられた長さを6
4倍して、得られた値の整数部分を変数Nに代入する
(図60のステップS531)。次に、与えられた個数
を要素数とする点配列を生成し(ステップS532)、
変数Lに1を代入して(ステップS533)、Lと与え
られた個数を比較する(ステップS534)。Lが個数
より大きければ、そのときの点配列を返して(ステップ
S535)、処理を終了する。
【0245】Lが個数以下であれば、乱数発生器により
−N以上N以下の整数を生成し、それを変数Xに代入し
(ステップS536)、Xを0と比較する(図61のス
テップS537)。Xが0以上であれば、乱数発生器に
より正あるいは負の符号を生成し(ステップS53
8)、生成された符号をチェックする(ステップS53
9)。符号が負であれば、変数YにX−Nを代入し(ス
テップS540)、符号が正であれば、変数YにN−X
を代入する(ステップS541)。
【0246】次に、XとYをそれぞれx成分とy成分と
する点オブジェクトを生成し(ステップS542)、与
えられた点オブジェクトと生成された点オブジェクとを
加算する(ステップS543)。そして、得られた点オ
ブジェクトを点配列に登録し(ステップS544)、L
に1を加算して(ステップS545)、ステップS53
4以降の処理を繰り返す。
【0247】また、ステップS537において、Xが0
より小さければ、乱数発生器により正あるいは負の符号
を生成し(ステップS546)、生成された符号をチェ
ックする(ステップS547)。符号が正であれば、変
数YにN+Xを代入し(ステップS548)、符号が負
であれば、変数Yに−N−Xを代入して(ステップS5
49)、ステップS542以降の処理を行う。
【0248】図62は、スクリーン座標変換オブジェク
トが所持する座標変換メソッドの処理のフローチャート
である。座標変換メソッドは、与えられた点オブジェク
トを4倍(スカラー倍)し、得られた点オブジェクトを
スクリーン座標として返して(ステップS551)、処
理を終了する。
【0249】図63は、スクリーン座標変換オブジェク
トが所持する線メソッドの処理のフローチャートであ
る。線メソッドは、まず、与えられた2つの点オブジェ
クトをスクリーン座標に変換する(ステップS56
1)。次に、得られた2つのスクリーン上の点の座標を
所持する2つの点オブジェクトP1、P2を生成し、点
オブジェクトP1のx成分とy成分をそれぞれ変数X1
とY1に代入し、点オブジェクトP2のx成分とy成分
をそれぞれ変数X2とY2に代入する(ステップS56
2)。
【0250】次に、x成分とy成分をそれぞれX1とY
2とする点オブジェクトP3を生成し(ステップS56
3)、P1とP3を結ぶスクリーン上の直線と、P3と
P2を結ぶスクリーン上の直線とを連結した線を返して
(ステップS564)、処理を終了する。
【0251】図64から図66までは、距離空間が平面
の場合のシュタイナー問題のシミュレーションにおける
表示画面の例を示している。図64の表示画面におい
て、ボタン31、32、33は、それぞれ、起動ボタ
ン、停止ボタン、開始形状生成ボタンに対応する。ま
た、フィールド34は、最初に与えられる固定ノードの
数を表し、フィールド35は、補完ノードの数を表し、
ファンクション値36は、コスト値を表す。ここでは、
固定ノードの数を6とし、それらのノードを適当な順序
で接続して得られた木37が、開始形状として表示され
ている。
【0252】図64の木37を元にして探索を行うと、
ノードの数が10のとき、図65に示すような木38に
変化し、探索が十分に進むと、図66に示すような木3
9に収束する。木39は、9つのノードを持っているこ
とが分かる。
【0253】ところで、上述した図6の処理装置は、図
67に示すような情報処理装置(コンピュータ)を用い
て構成することができる。図67の情報処理装置は、C
PU(中央処理装置)41、メモリ42、入力装置4
3、出力装置44、外部記憶装置45、媒体駆動装置4
6、およびネットワーク接続装置47を備え、それらは
バス48により互いに接続されている。
【0254】メモリ42は、例えば、ROM(read onl
y memory)、RAM(random access memory)等を含
み、処理に用いられるプログラムとデータを格納する。
CPU41は、メモリ42を利用してプログラムを実行
することにより、必要な処理を行う。
【0255】図6の探索共通オブジェクト群11、探索
インタフェースオブジェクト群12、シュタイナー問題
共通オブジェクト群13、距離空間オブジェクト群1
4、および距離空間オブジェクトファクトリオブジェク
ト群14の各オブジェクトは、メモリ42の特定のプロ
グラムコードセグメントに格納されたソフトウェアコン
ポーネントに対応し、1つ以上のインストラクションか
らなるプログラムにより実現される。
【0256】入力装置43は、例えば、キーボード、ポ
インティングデバイス、タッチパネル等であり、ユーザ
からの指示や情報の入力に用いられる。出力装置44
は、例えば、ディスプレイ、プリンタ、スピーカ等であ
り、ユーザへの問い合わせや処理結果の出力に用いられ
る。
【0257】外部記憶装置45は、例えば、磁気ディス
ク装置、光ディスク装置、光磁気ディスク(magneto-op
tical disk)装置等である。この外部記憶装置45に、
上述のプログラムとデータを保存しておき、必要に応じ
て、それらをメモリ42にロードして使用することもで
きる。また、外部記憶装置45は、図6の各オブジェク
トを部品として格納するデータベースとしても用いられ
る。
【0258】媒体駆動装置46は、可搬記録媒体49を
駆動し、その記録内容にアクセスする。可搬記録媒体4
9としては、メモリカード、フロッピーディスク、CD
−ROM(compact disk read only memory )、光ディ
スク、光磁気ディスク等、任意のコンピュータ読み取り
可能な記録媒体が用いられる。この可搬記録媒体49に
上述のプログラムとデータを格納しておき、必要に応じ
て、それらをメモリ42にロードして使用することもで
きる。
【0259】ネットワーク接続装置47は、LAN(lo
cal area network)等の任意のネットワーク(回線)を
介して外部の装置と通信し、通信に伴うデータ変換を行
う。また、必要に応じて、上述のプログラムとデータを
外部の装置から受け取り、それらをメモリ42にロード
して使用することもできる。
【0260】図68は、図67の情報処理装置にプログ
ラムとデータを供給することのできるコンピュータ読み
取り可能な記録媒体を示している。可搬記録媒体49や
外部のデータベース50に保存されたプログラムとデー
タは、メモリ42にロードされる。そして、CPU41
は、そのデータを用いてそのプログラムを実行し、必要
な処理を行う。
【0261】
【発明の効果】本発明によれば、ネットワークの長さが
平面上のユークリッド距離により与えられる場合のみに
限らず、任意の距離空間上で最適または局所最適なネッ
トワークを探索する問題を解決することができる。ま
た、本発明は、ネットワーク敷設禁止地域が存在する場
合や重み付けされた空間の場合にも、適用することがで
きる。
【図面の簡単な説明】
【図1】本発明の処理装置の原理図である。
【図2】点移動変形を示す図である。
【図3】点分岐変形を示す図である。
【図4】点縮約変形を示す図である。
【図5】測地線と接ベクトルを示す図である。
【図6】処理装置の構成図である。
【図7】起動プログラムのフローチャートである。
【図8】探索メソッドのフローチャート(その1)であ
る。
【図9】探索メソッドのフローチャート(その2)であ
る。
【図10】起動メソッドのフローチャートである。
【図11】停止メソッドのフローチャートである。
【図12】コスト値メソッドのフローチャートである。
【図13】開始形状メソッドのフローチャート(その
1)である。
【図14】開始形状メソッドのフローチャート(その
2)である。
【図15】再配置メソッドのフローチャートである。
【図16】第1の初期化メソッドのフローチャートであ
る。
【図17】変形要素メソッドのフローチャートである。
【図18】第1の通知メソッドのフローチャートであ
る。
【図19】第2の初期化メソッドのフローチャートであ
る。
【図20】第1の変形アルゴリズムメソッドのフローチ
ャートである。
【図21】第2の通知メソッドのフローチャートであ
る。
【図22】第1の変形メソッドのフローチャートであ
る。
【図23】第2の変形メソッドのフローチャートであ
る。
【図24】第3の変形メソッドのフローチャートであ
る。
【図25】表示メソッドのフローチャートである。
【図26】第3の初期化メソッドのフローチャートであ
る。
【図27】点縮約変形アルゴリズムメソッドのフローチ
ャートである。
【図28】第3の通知メソッドのフローチャートであ
る。
【図29】第4の初期化メソッドのフローチャートであ
る。
【図30】第2の変形アルゴリズムメソッドのフローチ
ャート(その1)である。
【図31】第2の変形アルゴリズムメソッドのフローチ
ャート(その2)である。
【図32】第4の通知メソッドのフローチャートであ
る。
【図33】第5の初期化メソッドのフローチャートであ
る。
【図34】点移動変形アルゴリズムメソッドのフローチ
ャートである。
【図35】第5の通知メソッドのフローチャートであ
る。
【図36】第6の初期化メソッドのフローチャートであ
る。
【図37】点分岐変形アルゴリズムメソッドのフローチ
ャート(その1)である。
【図38】点分岐変形アルゴリズムメソッドのフローチ
ャート(その2)である。
【図39】第6の通知メソッドのフローチャートであ
る。
【図40】第7の初期化メソッドのフローチャートであ
る。
【図41】第3の変形アルゴリズムメソッドのフローチ
ャート(その1)である。
【図42】第3の変形アルゴリズムメソッドのフローチ
ャート(その2)である。
【図43】第7の通知メソッドのフローチャートであ
る。
【図44】第8の初期化メソッドのフローチャートであ
る。
【図45】変形アルゴリズム決定メソッドのフローチャ
ートである。
【図46】点移動用移動ベクトル算出メソッドのフロー
チャートである。
【図47】点分岐用移動ベクトル算出メソッドのフロー
チャート(その1)である。
【図48】点分岐用移動ベクトル算出メソッドのフロー
チャート(その2)である。
【図49】第4の変形アルゴリズムメソッドのフローチ
ャート(その1)である。
【図50】第4の変形アルゴリズムメソッドのフローチ
ャート(その2)である。
【図51】第8の通知メソッドのフローチャートであ
る。
【図52】第1の距離メソッドのフローチャートであ
る。
【図53】第1のランダムメソッドのフローチャートで
ある。
【図54】接ベクトルメソッドのフローチャートであ
る。
【図55】測地線メソッドのフローチャートである。
【図56】第1の座標変換メソッドのフローチャートで
ある。
【図57】第1の線メソッドのフローチャートである。
【図58】第2の距離メソッドのフローチャートであ
る。
【図59】第2のランダムメソッドのフローチャートで
ある。
【図60】複数点メソッドのフローチャート(その1)
である。
【図61】複数点メソッドのフローチャート(その2)
である。
【図62】第2の座標変換メソッドのフローチャートで
ある。
【図63】第2の線メソッドのフローチャートである。
【図64】第1の表示画面を示す図である。
【図65】第2の表示画面を示す図である。
【図66】第3の表示画面を示す図である。
【図67】情報処理装置の構成図である。
【図68】記録媒体を示す図である。
【符号の説明】
1 生成手段 2 格納手段 3 変形手段 4 出力手段 5 木のモデル 11 探索エンジン共通オブジェクト群 12 探索インタフェースオブジェクト群 13 シュタイナー問題共通オブジェクト群 14 距離空間オブジェクト群 15 距離空間オブジェクトファクトリオブジェクト群 21、23、25、26 ロジック 22 最適化問題共通インタフェース 24 シュタイナー問題共通インタフェース 31、32、33 ボタン 34、35 フィールド 36 ファンクション値 37、38、39 木 41 CPU 42 メモリ 43 入力装置 44 出力装置 45 外部記憶装置 46 媒体駆動装置 47 ネットワーク接続装置 48 バス 49 可搬記録媒体 50 データベース
───────────────────────────────────────────────────── フロントページの続き (72)発明者 亀田 繁 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 (72)発明者 福田 育夫 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 Fターム(参考) 5B049 BB05 DD05 EE03 EE05 EE31 EE36 FF09 GG00

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】 任意の空間における木のモデルを生成す
    る生成手段と、 前記木のモデルに含まれる既存ノードのデータを格納す
    る格納手段と、 前記既存ノードに基づいて該木のモデルを変形する変形
    手段と、 変形結果を出力する出力手段とを備えることを特徴とす
    る処理装置。
  2. 【請求項2】 前記変形手段は、前記既存ノードの位置
    を移動させる点移動変形アルゴリズムにより、前記木の
    モデルを変形することを特徴とする請求項1記載の処理
    装置。
  3. 【請求項3】 前記変形手段は、前記木のモデルに新た
    なノードを付け加え、該新たなノードと前記既存ノード
    とを接続し、該既存ノードの該新たなノード以外の接続
    先ノードを該新たなノードに繋ぎ替える点分岐変形アル
    ゴリズムにより、該木のモデルを変形することを特徴と
    する請求項1記載の処理装置。
  4. 【請求項4】 前記変形手段は、前記既存ノードの接続
    先ノードに該既存ノードを移動して、該既存ノードと接
    続先ノードとを重ね合わせる点縮約変形アルゴリズムに
    より、前記木のモデルを変形することを特徴とする請求
    項1記載の処理装置。
  5. 【請求項5】 前記変形結果を用いて距離空間における
    局所シュタイナー木を探索する探索手段をさらに備え、
    前記生成手段は、該距離空間における木のモデルを生成
    することを特徴とする請求項1記載の処理装置。
  6. 【請求項6】 前記変形結果を用いてリーマン空間にお
    ける局所シュタイナー木を探索する探索手段をさらに備
    え、前記生成手段は、該リーマン空間における木のモデ
    ルを生成することを特徴とする請求項1記載の処理装
    置。
  7. 【請求項7】 前記変形手段は、前記既存ノードにおけ
    る接ベクトルを用いて、該既存ノードから該接ベクトル
    に沿った測地線上の位置に該既存ノードを移動する点移
    動変形アルゴリズムにより、前記木のモデルを変形する
    ことを特徴とする請求項6記載の処理装置。
  8. 【請求項8】 前記変形手段は、前記既存ノードと該既
    存ノードの接続先ノードを結ぶ測地線の該既存ノードの
    位置における単位接ベクトルを用いて、前記既存ノード
    の位置における接ベクトルを生成することを特徴とする
    請求項7記載の処理装置。
  9. 【請求項9】 前記変形手段は、前記既存ノードにおけ
    る接ベクトルを用いて、該既存ノードから該接ベクトル
    に沿った測地線上の位置に新たなノードを付け加え、該
    新たなノードと前記既存ノードとを接続し、該既存ノー
    ドの該新たなノード以外の接続先ノードを該新たなノー
    ドに繋ぎ替える点分岐変形アルゴリズムにより、前記木
    のモデルを変形することを特徴とする請求項6記載の処
    理装置。
  10. 【請求項10】 前記変形手段は、前記既存ノードと該
    既存ノードの1つ以上の接続先ノードを結ぶ1つ以上の
    測地線の該既存ノードの位置における1つ以上の単位接
    ベクトルを用いて、大きさが所定値を超える接ベクトル
    を生成し、生成された接ベクトルを前記既存ノードの位
    置における接ベクトルとして用いることを特徴とする請
    求項9記載の処理装置。
  11. 【請求項11】 前記変形手段は、前記既存ノードの位
    置における接ベクトルの大きさが最大となるように、前
    記1つ以上の単位接ベクトルを選択することを特徴とす
    る請求項10記載の処理装置。
  12. 【請求項12】 前記変形手段は、前記既存ノードの位
    置における接ベクトルの大きさが近似的に最大となるよ
    うに、前記1つ以上の単位接ベクトルを選択することを
    特徴とする請求項10記載の処理装置。
  13. 【請求項13】 前記変形手段は、前記既存ノードにお
    ける第1の接ベクトルを用いて、該既存ノードから該第
    1の接ベクトルに沿った測地線上の位置に該既存ノード
    を移動する点移動変形アルゴリズムと、前記既存ノード
    における第2の接ベクトルを用いて、該既存ノードから
    該第2の接ベクトルに沿った測地線上の位置に新たなノ
    ードを付け加え、該新たなノードと前記既存ノードとを
    接続し、該既存ノードの該新たなノード以外の接続先ノ
    ードを該新たなノードに繋ぎ替える点分岐変形アルゴリ
    ズムのうち、前記木のモデルのコスト値がより良くなる
    方の変形アルゴリズムを選択して、該木のモデルを変形
    することを特徴とする請求項6記載の処理装置。
  14. 【請求項14】 前記生成手段、格納手段、変形手段、
    および出力手段のうち少なくとも1つは、前記空間の性
    質に依存しない共通部品手段を含むことを特徴とする請
    求項1記載の処理装置。
  15. 【請求項15】 前記生成手段、格納手段、変形手段、
    および出力手段のうち少なくとも1つは、前記空間の性
    質に応じて交換可能な個別部品手段を含むことを特徴と
    する請求項1記載の処理装置。
  16. 【請求項16】 コンピュータのためのプログラムを記
    録した記録媒体であって、 任意の空間における木のモデルを生成するステップと、 前記木のモデルに含まれる既存ノードに基づいて、該木
    のモデルを変形するステップと、 変形結果を出力するステップとを含む処理を前記コンピ
    ュータに実行させるためのプログラムを記録したコンピ
    ュータ読み取り可能な記録媒体。
JP2676199A 1999-02-03 1999-02-03 一般の距離空間における適切なネットワーク形状を探索する処理装置 Withdrawn JP2000222382A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2676199A JP2000222382A (ja) 1999-02-03 1999-02-03 一般の距離空間における適切なネットワーク形状を探索する処理装置
US09/484,262 US6735555B1 (en) 1999-02-03 2000-01-18 Processing device for searching for a suitable network shape in a general metric space

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2676199A JP2000222382A (ja) 1999-02-03 1999-02-03 一般の距離空間における適切なネットワーク形状を探索する処理装置

Publications (1)

Publication Number Publication Date
JP2000222382A true JP2000222382A (ja) 2000-08-11

Family

ID=12202282

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2676199A Withdrawn JP2000222382A (ja) 1999-02-03 1999-02-03 一般の距離空間における適切なネットワーク形状を探索する処理装置

Country Status (2)

Country Link
US (1) US6735555B1 (ja)
JP (1) JP2000222382A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109558990A (zh) * 2018-12-15 2019-04-02 国网福建省电力有限公司 一种基于斯坦纳树模型的配电网防灾骨干网架规划方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6886152B1 (en) * 2002-08-09 2005-04-26 Xilinx, Inc. Delay optimization in signal routing
EP2936288A1 (en) * 2012-12-18 2015-10-28 Van Der Westhuizen, Willem Morkel Event and causality-based human-computer interaction
US11094527B2 (en) 2018-10-10 2021-08-17 International Business Machines Corporation Wet clean solutions to prevent pattern collapse
US10886166B2 (en) 2019-03-08 2021-01-05 International Business Machines Corporation Dielectric surface modification in sub-40nm pitch interconnect patterning

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5475842A (en) * 1993-08-11 1995-12-12 Xerox Corporation Method of compilation optimization using an N-dimensional template for relocated and replicated alignment of arrays in data-parallel programs for reduced data communication during execution
GB9614927D0 (en) * 1996-07-16 1996-09-04 British Telecomm Arranging data signals defining a network
US6093153A (en) * 1996-08-02 2000-07-25 Levin; David N. Method and apparatus for measurement, analysis, characterization, emulation, and translation of perception
US6047331A (en) * 1997-02-19 2000-04-04 Massachusetts Institute Of Technology Method and apparatus for automatic protection switching
GB2332809A (en) * 1997-12-24 1999-06-30 Northern Telecom Ltd Least cost routing
US6247167B1 (en) * 1998-04-17 2001-06-12 Lsi Logic Corporation Method and apparatus for parallel Steiner tree routing
US6389376B1 (en) * 1999-07-26 2002-05-14 Sun Microsystems, Inc. Method and apparatus for generating n-segment steiner trees
US6401234B1 (en) * 1999-12-17 2002-06-04 International Business Machines Corporation Method and system for re-routing interconnects within an integrated circuit design having blockages and bays
US6442745B1 (en) * 1999-12-29 2002-08-27 Intel Corporation Method and apparatus for layout-constrained global routing

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109558990A (zh) * 2018-12-15 2019-04-02 国网福建省电力有限公司 一种基于斯坦纳树模型的配电网防灾骨干网架规划方法
CN109558990B (zh) * 2018-12-15 2022-11-08 国网福建省电力有限公司 一种基于斯坦纳树模型的配电网防灾骨干网架规划方法

Also Published As

Publication number Publication date
US6735555B1 (en) 2004-05-11

Similar Documents

Publication Publication Date Title
JP6691202B2 (ja) 六角形空間マップにおけるベクトルナビゲーションのためのコンテキストベースの経路計画
CN110110763B (zh) 一种基于最大公共子图的栅格地图融合方法
CN113704381B (zh) 路网数据处理方法、装置、计算机设备和存储介质
Shu et al. An on-line variable fidelity metamodel assisted multi-objective genetic algorithm for engineering design optimization
CN110909961B (zh) 基于bim的室内路径查询方法及装置
CN114973125A (zh) 智能导航场景中利用知识图谱辅助导航的方法及系统
KR101741894B1 (ko) 관리 프로그램, 관리 장치 및 관리 방법
JP2019159940A (ja) 点群特徴抽出装置、点群特徴抽出方法及びプログラム
JP2000222382A (ja) 一般の距離空間における適切なネットワーク形状を探索する処理装置
Dube Topological augmentation: A step forward for qualitative partition reasoning
CN109388843B (zh) 一种基于vtk的桁架天线的可视化系统及方法、终端
JP2007265402A (ja) 自由形状変形(FreeFormDeformation)の拡張直接操作(ExtendDirectManipulation)法による進化的デザイン最適化(EvolutionaryDesignOptimisation)
CN116481517B (zh) 扩展建图方法、装置、计算机设备和存储介质
Zhang et al. Hybrid feature CNN model for point cloud classification and segmentation
CN112990538A (zh) 一种山地光伏电站集电线路确定方法、装置及设备
Garland et al. Fast triangular approximation of terrains and height fields
Qin et al. Dynamic detection of topological information from grid-based generalized Voronoi diagrams
Felicioni et al. Goln: Graph object-based localization network
Wang et al. Object-aware hybrid map for indoor robot visual semantic navigation
Ma et al. Path planning for mobile robots based on improving Dijkstra algorithm
Owaki et al. Road Network Generation with City Block Attributes Using Link Attribute Aggregation
Suzuki et al. IGUANA: Advances on the development of a robust computational framework for active-geometric and-topologic modeling of lightweight structures.
JP2002216134A (ja) 画像選択システム、画像選択方法および画像選択プログラム
US20230377307A1 (en) Method for detecting an object based on monocular camera, electronic device, and non-transitory storage medium storing the method
Yin et al. Incremental construction of generalized Voronoi diagrams on pointerless quadtrees

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060404