JP2000215193A - 最適化問題を解決する処理装置および方法 - Google Patents

最適化問題を解決する処理装置および方法

Info

Publication number
JP2000215193A
JP2000215193A JP11016500A JP1650099A JP2000215193A JP 2000215193 A JP2000215193 A JP 2000215193A JP 11016500 A JP11016500 A JP 11016500A JP 1650099 A JP1650099 A JP 1650099A JP 2000215193 A JP2000215193 A JP 2000215193A
Authority
JP
Japan
Prior art keywords
shape
deformation
shape model
search
processing
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.)
Pending
Application number
JP11016500A
Other languages
English (en)
Inventor
Ichiro Suzuki
一郎 鈴木
Shigeru Kameda
繁 亀田
Shoichi Masuda
彰一 桝田
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 JP11016500A priority Critical patent/JP2000215193A/ja
Priority to US09/447,055 priority patent/US6718289B1/en
Publication of JP2000215193A publication Critical patent/JP2000215193A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/06Multi-objective optimisation, e.g. Pareto optimisation using simulated annealing [SA], ant colony algorithms or genetic algorithms [GA]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Processing Or Creating Images (AREA)

Abstract

(57)【要約】 【課題】 汎用性に富み、取り扱いの容易な最適化問題
の処理装置および方法を提供することが課題である。 【解決手段】 処理対象の問題は形状21に変換されて
探索エンジン11に入力される。探索エンジン11は、
探索終了条件12、14、変形要素の順序付けアルゴリ
ズム13、コスト関数15、および変形パターン16を
用いて、形状21を構成する変形要素23を変化させて
形状21を変形する。そして、コスト値22が最小とな
るような形状21を求め、それを解として出力する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、最適構造問題、最
適配置問題、最適経路問題等のような最適化問題を解決
する処理装置およびその方法に関する。
【0002】
【従来の技術】近年、様々な産業分野において、最適化
問題を解決することが要求されている。最適化問題と
は、与えられたコスト関数が最大、最小、あるいは局所
最大、局所最小となるような状態を探索する問題であ
る。コスト関数の符号を変えることにより、最大あるい
は局所最大を求める問題は、最小あるいは局所最小を求
める問題に置き換えられる。以下では、主として、最小
あるいは局所最小を求める問題として最適化問題を説明
する。
【0003】最適化問題には、例えば、最適構造問題、
最適配置問題、最適経路問題、最適ネットワーク問題、
最適フロー問題、最適コスト問題、および最適効率問題
が含まれる。
【0004】例えば、最適構造問題は、建物、橋、航空
機の翼等の設計において構造を最適化する問題であり、
最適配置問題は、都市設計における施設の配置や化合物
における分子の配置等を最適化する問題であり、最適経
路問題は、車両のナビゲーションや電気回路等において
経路を最適化する問題である。
【0005】また、例えば、最適ネットワーク問題は、
ガスや水道の配管、電気配線、通信ネットワーク等を最
適化する問題であり、最適フロー問題は、道路上の交通
フローやネットワーク上のデータフロー等を最適化する
問題であり、最適コスト問題および最適効率問題は、科
学、工学、経済、ビジネス等の分野でコストや効率を最
適化する問題である。
【0006】このような最適化問題を解決するための従
来の代表的アルゴリズムとしては、最急降下法(Steepe
st Descent Method )、遺伝アルゴリズム(Genetic Al
gorithm )、焼きなまし法(Simulated Annealing Meth
od)等が挙げられる。
【0007】
【発明が解決しようとする課題】しかしながら、従来の
最適化問題解決アルゴリズムには、次のような問題があ
る。
【0008】最適化問題解決のための従来の情報処理装
置は、個々の具体的な問題のみを処理することができる
問題特化装置と種々の問題に対応できる汎用装置の2種
類に大別される。このうち、問題特化装置は、特定の問
題にしか適用することができず、それ以外の問題は解決
できない。
【0009】これに対して、汎用装置は、上述のような
アルゴリズムを利用していると考えられるが、最急降下
法は、コスト関数が微分可能(滑らか)であることを前
提としており、微分不可能なコスト関数で記述された問
題には適用できない。また、遺伝アルゴリズムは、近傍
探索能力がなく、与えられた問題によっては必ずしも適
切な実装を行うことができない場合がある。また、焼き
なまし法は、温度パラメータの制御が難しく、汎用的な
パラメータ制御を実装することが困難である。
【0010】本発明の課題は、より汎用性に富み、取り
扱いの容易な最適化問題の処理装置およびその方法を提
供することである。
【0011】
【課題を解決するための手段】図1は、本発明の処理装
置の原理図である。図1の処理装置は、生成手段1、格
納手段2、変形手段3、および出力手段4を備える。
【0012】生成手段1は、与えられた問題を表す形状
モデル5を生成し、格納手段2は、形状モデル5のデー
タを格納する。変形手段3は、形状モデル5を変形し、
出力手段4は、変形された形状モデルを視覚的に出力す
る。
【0013】形状モデル5は、例えば、n次元空間にお
ける点、線、面の集合として生成され、格納手段2は、
それらの点、線、面のデータを格納する。変形手段3
は、形状モデル5に含まれる点、線、面に基づいて形状
モデル5を変形し、出力手段4は、変形された形状モデ
ルをディスプレイ画面等に表示して、変形過程をユーザ
に提示する。
【0014】このように、最適化問題を形状モデル化し
ておくと、それを多くの問題に対して汎用的に利用する
ことができる。また、形状変形のアルゴリズムはシンプ
ルで理解しやすいという特徴を持つ。最適解は、コスト
値が最良あるいは局所最良となるような形状モデル5か
ら自動的に求めることができ、ユーザが表示された形状
からコスト値を推測できる場合には、適当なタイミング
で解を取り出すこともできる。コスト値が最良あるいは
局所最良とは、コスト値が最小あるいは局所最小の場合
と、コスト値が最大あるいは局所最大の場合の両方を含
んでいる。
【0015】例えば、図1の生成手段1、格納手段2、
変形手段3、および出力手段4は、後述する図2の探索
エンジン11に対応し、図1の形状モデル5は、図2の
形状21に対応する。
【0016】
【発明の実施の形態】以下、図面を参照しながら、本発
明の実施の形態を詳細に説明する。本発明の処理装置
は、共通部品と個別部品から構成され、個別部品を交換
することにより、他の問題に対応した処理装置を容易に
構成することができる。また、個別部品のチューニング
も容易に行うことができ、与えられた問題に応じて処理
効率を上げることができる。
【0017】図2は、本実施形態の処理装置の構成図で
ある。図2の処理装置は、探索エンジン11、変形要素
毎の探索終了条件12、変形要素毎の順序付けアルゴリ
ズム13、探索終了条件14、コスト関数15、変形パ
ターン16、およびクリエータ17を備える。
【0018】探索エンジン11は、最適化問題をモデル
化した形状21のデータと、解の探索過程における最小
コスト値22を保持し、形状21は、1つ以上の変形要
素23のデータを含む。また、クリエータ17は、生成
部31、32、33、34、35、36を含み、探索エ
ンジン11からの要求に応じて必要な情報を生成する。
【0019】探索エンジン11は共通部品に対応し、変
形要素毎の探索終了条件12、変形要素毎の順序付けア
ルゴリズム13、探索終了条件14、コスト関数15、
変形パターン16、形状21、変形要素23、および生
成部31〜36は、問題に応じて交換可能な個別部品に
対応する。
【0020】探索エンジン11は、まず、ユーザからの
指示に従い、開始形状生成部36を利用して問題を形状
モデル化する。ここでは、最終的に求めたい対象が、向
き付けされた、あるいは向き付けされていない単体的複
体(simplicial complex)のような形状21(例えば、
多角形や多面体)で表現される。
【0021】例えば、多角形を表現する空間としては、
平面空間(2次元空間)や立体空間(3次元空間)が挙
げられる。また、形状21を表現する空間としては、n
次元の多様体(直線、平面、立体、球、トーラス等)だ
けでなく、グラフ(1次元複体)を含む単体的複体も利
用することができる。
【0022】次に、探索エンジン11は、コスト関数生
成部34を利用して、与えられた問題の元のコスト関数
を形状21に対するコスト関数15として表現し、元の
制約条件を、形状21の表現方法に関する制約条件とし
て表現する。そして、決められたアルゴリズムに従って
形状21を変形させながら解を探索し、コスト関数15
の値が最小となるような形状を解として出力する。
【0023】ところで、このような処理装置を利用する
にあたって、ユーザは、以下の6つの項目を決定する必
要がある。 (1)変形要素23 形状21を変形させるに際して、形状21のどのような
要素(単体)に基づく変形を考えるかを決定する。例え
ば、形状21に含まれる点、線、面、立体等が、変形要
素23として採用される。ここで、要素に基づく変形と
は、要素をパラメータとして持つ変形操作であり、例え
ば、次のようなものが考えられる。・形状21を多角形
とし、その頂点を要素としたとき、要素の位置を変化さ
せて形状21を変形させる。・形状21を平面上の木と
し、その木のノード(点)を要素としたとき、その木の
適当な位置に新たなノードを付け加えて、元の要素と新
たなノードを接続することにより得られる木を、元の木
の変形形状とみなす。 (2)変形パターン16 変形パターン生成部35を利用して、変形要素23に基
づく変形操作の中から具体的な操作を複数個選び、それ
らを順序付ける。例えば、形状21がxy平面上の多角
形として実現されており、変形要素23がその多角形の
頂点である場合、適当な長さhを用いて次のような変形
パターン16を定義することが可能である。 [変形1]頂点を長さhだけx軸の正の方向に動かすこ
とによる形状変形 [変形2]頂点を長さhだけy軸の正の方向に動かすこ
とによる形状変形 [変形3]頂点を長さhだけx軸の負の方向に動かすこ
とによる形状変形 [変形4]頂点を長さhだけy軸の負の方向に動かすこ
とによる形状変形 ここでは、頂点をキーとし、順序付けられた[変形1]
〜[変形4]の4つの変形操作が、1つの変形パターン
を表している。 (3)探索開始形状 開始形状生成部36を利用して、形状21の初期形状を
決定する。例えば、形状21が平面上の5角形である場
合、平面上に5個の点を適当に配置し、それら点を適当
な順番で結んで得られる5角形を、開始形状とする。 (4)探索終了条件14 探索終了条件生成部33を利用して、探索終了条件14
を決定する。探索終了条件14としては、例えば、次の
ようなものが考えられる。 ・形状21の最小コスト値22があらかじめ決められた
値より小さくなったとき、探索を終了する。 ・形状のコスト関数15の値の減衰率があらかじめ決め
られた値より小さくなったとき、探索を終了する。 ・探索回数があらかじめ決められた値を越えたら、探索
を終了する。 ・コスト関数15の値の降下回数があらかじめ決められ
た値を越えたら、探索を終了する。 ・探索時間があらかじめ決められた値を越えたら、探索
を終了する。 ・ユーザからの終了指示があったとき、探索を終了す
る。 (5)変形要素の順序付けアルゴリズム13 変形要素の順序付けアルゴリズム生成部32を利用し
て、形状21の変形要素23を順序付けるアルゴリズム
を決定する。例えば、乱数発生器を利用して、変形要素
23を順序付けるというアルゴリズムが考えられる。 (6)変形要素毎の探索終了条件12 変形要素毎の探索終了条件生成部31を利用して、変形
要素毎の探索終了条件12を決定する。この探索終了条
件12としては、例えば、次のようなものが考えられ
る。 ・変形パターン16が有限個の変形操作からなる場合、
それらの変形操作をすべて行ってから、探索を終了す
る。 ・探索回数があらかじめ決められた値を越えるか、また
は変形パターン16の変形操作が終了したら、探索を終
了する。 ・コスト関数15の値の降下回数があらかじめ決められ
た値を越えるか、または変形パターン16の変形操作が
終了したら、探索を終了する。 ・ユーザからの終了指示があるか、または変形パターン
16の変形操作が終了したら、探索を終了する。
【0024】図2の処理装置は、最急降下法のようにコ
スト関数の微分可能性を前提としておらず、遺伝アルゴ
リズムにはない近傍探索能力を持っている。また、焼き
なまし法のようなパラメータ制御を必要としない。した
がって、汎用性に富み、操作性の高い構成となってい
る。
【0025】この処理装置は、任意のハードウェアまた
はソフトウェアにより実現することができるが、ここで
は、一例として、オブジェクト指向プログラミングを利
用した場合の構成について説明する。本実施形態におけ
るオブジェクトは、共通オブジェクト、インタフェース
共通オブジェクト、コスト関数オブジェクト、およびオ
ブジェクトファクトリに分類される。オブジェクトは、
通常、データとそのデータに対する手続き(メソッド)
を所持しており、他のオブジェクトとのリンク関係を所
持することもできる。
【0026】共通オブジェクトは、個別の問題から独立
しており、すべての問題に共通して利用されるオブジェ
クトである。共通オブジェクトは、共通のメソッドイン
タフェースのみを意識して設計され、メソッドの動作ロ
ジックは特に意識していない。共通オブジェクトとして
は、次のようなものが用いられる。 (1)探索エンジンオブジェクト (2)起動ボタンオブジェクト (3)停止ボタンオブジェクト インタフェース共通オブジェクトは、個別の問題から独
立した共通のメソッドインタフェースを持つが、メソッ
ドの動作ロジックは、個別の問題に依存している。共通
オブジェクトとしては、次のようなものが用いられる。 (4)コスト関数オブジェクト (5)開始形状生成オブジェクト (6)形状オブジェクト (7)変形要素オブジェクト (8)変形アルゴリズム管理オブジェクト (9)変形アルゴリズム群オブジェクト (10)変形アルゴリズムオブジェクト (11)形状表示オブジェクト オブジェクトファクトリは、インタフェース共通オブジ
ェクトを生成するためのオブジェクトである。オブジェ
クトファクトリのオブジェクト群をカストマイズするこ
とによって、処理装置を個別の問題に適合させることが
できる。オブジェクトファクトリとしては、次のような
ものが用いられる。 (12)コスト関数オブジェクト生成オブジェクト (13)開始形状生成オブジェクト生成オブジェクト (14)形状オブジェクト生成オブジェクト (15)変形要素オブジェクト生成オブジェクト (16)変形アルゴリズム管理オブジェクト生成オブジ
ェクト (17)変形アルゴリズム群オブジェクト (18)変形アルゴリズムオブジェクト (19)形状表示オブジェクト生成オブジェクト 次に、図3から図24までを参照しながら、各オブジェ
クトが所持するデータとメソッドについて説明する。図
3は、探索エンジンオブジェクトの構成を示している。
図3の探索エンジンオブジェクト41は、図2の探索エ
ンジン11に対応し、形状オブジェクト42、コスト値
オブジェクト43、および探索メソッド44を所持す
る。
【0027】形状オブジェクト42とコスト値オブジェ
クト43は、それぞれ、図2の形状21と最小コスト値
22に対応し、探索エンジンオブジェクト41が使用す
るデータを所持する。変形要素オブジェクト45は、図
2の変形要素23に対応し、形状オブジェクト42にリ
ンクされる。また、探索メソッド44は、探索エンジン
11に対応する処理を起動する。
【0028】図4は、起動ボタンオブジェクトの構成を
示している。図4の起動ボタンオブジェクト51は、タ
イミングフラグオブジェクト52と起動メソッド53を
所持し、ディスプレイ画面に表示された探索エンジン起
動ボタンの操作を検出する。タイミングフラグオブジェ
クト52は、形状オブジェクト42のデータを表示する
タイミングを表すフラグを所持しており、起動メソッド
53は、ボタン押下のイベントに基づいて、探索エンジ
ンオブジェクト41を起動する。
【0029】図5は、停止ボタンオブジェクトの構成を
示している。図5の停止ボタンオブジェクト61は、終
了フラグオブジェクト62と停止メソッド63を所持
し、ディスプレイ画面に表示された探索エンジン停止ボ
タンの操作を検出する。終了フラグオブジェクト62
は、探索エンジンオブジェクト41による探索処理の終
了タイミングを表すフラグを所持しており、停止メソッ
ド63は、ボタン押下のイベントに基づいて、探索エン
ジンオブジェクト41を停止する。
【0030】図6は、コスト関数オブジェクトの構成を
示している。図6のコスト関数オブジェクト71は、図
2のコスト関数15に対応し、与えられた形状のコスト
値を返すコスト値メソッド72を所持する。また、図7
は、開始形状生成オブジェクトの構成を示している。図
7の開始形状生成オブジェクト81は、開始形状メソッ
ド82を所持し、ディスプレイ画面に表示された開始形
状生成ボタンの操作を検出する。開始形状メソッド82
は、ボタン押下のイベントに基づいて開始形状を生成す
る。
【0031】図8は、変形アルゴリズム管理オブジェク
トの構成を示している。図8の変形アルゴリズム管理オ
ブジェクト91は、図2の変形要素の順序付けアルゴリ
ズム13に対応し、初期化メソッド92、変形要素メソ
ッド93、および通知メソッド94を所持する。初期化
メソッド92は、変形アルゴリズム管理オブジェクト9
1を初期化し、変形要素メソッド93は、次に処理すべ
き変形要素オブジェクト45を求める。また、通知メソ
ッド94は、次の変形要素オブジェクト45が存在する
か否かを通知する。
【0032】図9は、変形アルゴリズム群オブジェクト
の構成を示している。図9の変形アルゴリズム群オブジ
ェクト101は、図2の変形パターン16に対応し、更
新フラグオブジェクト102、初期化メソッド103、
変形アルゴリズムメソッド104、および通知メソッド
105を所持する。初期化メソッド103は、変形アル
ゴリズム群オブジェクト101を変形要素オブジェクト
45毎に初期化し、変形アルゴリズムメソッド104
は、次に適用すべき変形アルゴリズムオブジェクトを求
める。また、通知メソッド105は、次の変形アルゴリ
ズムオブジェクトが存在するか否かを通知する。
【0033】図10は、変形アルゴリズムオブジェクト
の構成を示している。図10の変形アルゴリズムオブジ
ェクト111は、与えられた形状に対して、それを変形
した後の形状を返す変形メソッド112を所持する。ま
た、図11は、形状表示オブジェクトの構成を示してい
る。図11の形状表示オブジェクト121は、図4のタ
イミングフラグオブジェクト52、状態フラグオブジェ
クト122、および表示メソッド123を所持する。表
示メソッド123は、与えられた形状をディスプレイ画
面に表示する。
【0034】図12は、コスト関数オブジェクト生成オ
ブジェクトの構成を示している。図12のコスト関数オ
ブジェクト生成オブジェクト131は、図2のコスト関
数生成部34に対応し、与えられた問題に対応するコス
ト関数オブジェクト71を生成する生成メソッド132
を所持する。
【0035】図13は、開始形状生成オブジェクト生成
オブジェクトの構成を示している。図13の開始形状生
成オブジェクト生成オブジェクト141は、図2の開始
形状生成部36に対応し、与えられた問題に対応する開
始形状生成オブジェクト81を生成する生成メソッド1
42を所持する。
【0036】図14は、形状オブジェクト生成オブジェ
クトの構成を示している。図14の形状オブジェクト生
成オブジェクト151は、与えられた問題に対応する形
状オブジェクト42を生成する生成メソッド152を所
持する。また、図15は、変形要素オブジェクト生成オ
ブジェクトの構成を示している。図15の変形要素オブ
ジェクト生成オブジェクト161は、与えられた問題に
対応する変形要素オブジェクト45を生成する生成メソ
ッド162を所持する。
【0037】図16は、変形アルゴリズム管理オブジェ
クト生成オブジェクトの構成を示している。図16の変
形アルゴリズム管理オブジェクト生成オブジェクト17
1は、図2の変形要素の順序付けアルゴリズム生成部3
2に対応し、与えられた問題に対応する変形アルゴリズ
ム管理オブジェクト91を生成する生成メソッド172
を所持する。
【0038】図17は、変形アルゴリズム群オブジェク
ト生成オブジェクトの構成を示している。図17の変形
アルゴリズム群オブジェクト生成オブジェクト181
は、図2の変形パターン生成部35に対応し、与えられ
た問題に対応する変形アルゴリズム群オブジェクト10
1を生成する生成メソッド182を所持する。また、図
18は、変形アルゴリズムオブジェクト生成オブジェク
トの構成を示している。図18の変形アルゴリズムオブ
ジェクト生成オブジェクト191は、与えられた問題に
対応する変形アルゴリズムオブジェクト111を生成す
る生成メソッド192を所持する。
【0039】図19は、形状表示オブジェクト生成オブ
ジェクトの構成を示している。図19の形状表示オブジ
ェクト生成オブジェクト201は、与えられた問題に対
応する形状表示オブジェクト121を生成する生成メソ
ッド202を所持する。
【0040】以上説明したオブジェクトの他に、図2の
変形要素毎の探索終了条件12、探索終了条件14、変
形要素毎の探索終了条件生成部31、および探索終了条
件生成部33の各々に対応するオブジェクトを設けて、
これらの探索終了条件を制御することもできる。
【0041】次に、共通オブジェクトが行う処理につい
て、より詳細に説明する。ここでは、変形アルゴリズム
群オブジェクト101が管理する変形アルゴリズムによ
る変形操作がすべて終了したとき、1つの変形要素に関
する探索が終了し、ユーザがマウス等を用いて画面上の
停止ボタンを押す操作を行ったとき、すべての探索が終
了する。
【0042】図20は、システムを起動する起動プログ
ラムの処理のフローチャートである。起動プログラム
は、まず、コスト関数オブジェクト生成オブジェクト1
31を起動して、コスト関数オブジェクト71を生成し
(ステップS1)、開始形状生成オブジェクト生成オブ
ジェクト141を起動して、開始形状生成オブジェクト
81を生成し(ステップS2)、変形アルゴリズム管理
オブジェクト生成オブジェクト171を起動して、変形
アルゴリズム管理オブジェクト91を生成する(ステッ
プS3)。
【0043】次に、探索エンジンオブジェクト41を生
成し(ステップS4)、形状表示オブジェクト121を
生成する(ステップS5)。そして、起動ボタンオブジ
ェクト51を生成し(ステップS6)、停止ボタンオブ
ジェクト61を生成する(ステップS7)。
【0044】次に、形状表示オブジェクト121に対応
する表示領域を表示し(ステップS8)、起動ボタンオ
ブジェクト51に対応する起動ボタンを表示し(ステッ
プS9)、停止ボタンオブジェクト61に対応する停止
ボタンを表示して(ステップS10)、処理を終了す
る。
【0045】図21および図22は、図3の探索エンジ
ンオブジェクト41が所持する探索メソッド44の処理
のフローチャートである。探索メソッド44は、まず、
探索形状を表す形状オブジェクト42が存在するかどう
かをチェックし(図21のステップS21)、それが存
在しなければ処理を終了する。形状オブジェクト42が
存在すれば、図5の停止ボタンオブジェクト61が所持
する終了フラグオブジェクト62の終了フラグを伏せる
(オフにする)(ステップS22)。
【0046】次に、探索形状のコスト値が求まっている
かどうかをチェックし(ステップS23)、コスト値が
求まっていなければ、図6のコスト関数オブジェクト7
1に探索形状のコスト値を問い合せ、得られたコスト値
をコスト値オブジェクト43のコスト値に格納する(ス
テップS24)。
【0047】次に、終了フラグオブジェクト62の終了
フラグが立っているかどうか(オンかどうか)を停止ボ
タンオブジェクト61に問い合せ、終了フラグが立って
いれば処理を終了する(ステップS25)。
【0048】次に、図8の変形アルゴリズム管理オブジ
ェクト91に次の変形要素が存在するかどうかを問い合
せる(ステップS26、S27)。次の変形要素が存在
しなければ、図11の形状表示オブジェクト121が所
持する状態フラグオブジェクト122の状態フラグを立
てて、探索形状の表示を依頼し(ステップS28)、変
形アルゴリズム管理オブジェクト91に初期化メソッド
92の実行を依頼する(ステップS29)。
【0049】次に、変形アルゴリズム管理オブジェクト
91に次の変形要素を問い合せ(ステップS30)、図
9の変形アルゴリズム群オブジェクト101に対して、
得られた変形要素に基づいて初期化メソッド92を実行
するように依頼する(ステップS31)。
【0050】次に、変形アルゴリズム群オブジェクト1
01に次の変形アルゴリズムが存在するかどうかを問い
合せる(図22のステップS32、S33)。次の変形
アルゴリズムが存在すれば、その変形アルゴリズムを表
す図10の変形アルゴリズムオブジェクト111を取得
し(ステップS34)、得られた変形アルゴリズムオブ
ジェクト111に対して、探索形状の変形形状を問い合
せる(ステップS35)。
【0051】次に、得られた変形形状のコスト値をコス
ト関数オブジェクト71に問い合せ、得られたコスト値
をコスト値オブジェクト43が所持する探索形状のコス
ト値と比較する(ステップS36)。変形形状のコスト
値が探索形状のコスト値以上であれば、ステップS32
以降の処理を繰り返し、変形形状のコスト値が探索形状
のコスト値より小さければ、変形形状を探索形状として
採用し、形状オブジェクト42と変形された変形要素オ
ブジェクト45を更新する(ステップS37)。
【0052】そして、変形形状のコスト値をコスト値オ
ブジェクト43のコスト値に代入し(ステップS3
8)、変形アルゴリズム群オブジェクト101が所持す
る更新フラグオブジェクト102の更新フラグを立てて
(ステップS38)、ステップS32以降の処理を繰り
返す。
【0053】ステップS33において次の変形アルゴリ
ズムが存在しなければ、形状表示オブジェクト121が
所持する状態フラグオブジェクト122の状態フラグを
伏せて、探索形状の表示を依頼し(ステップS40)、
図21のステップS25以降の処理を繰り返す。これに
より、次の変形要素に関する処理が行われる。
【0054】図23は、図4の起動ボタンオブジェクト
51が所持する起動メソッド53の処理のフローチャー
トである。起動メソッド53は、まず、起動ボタンが押
されたかどうかを定期的にチェックする(ステップS4
1)。起動ボタンが押されたら、タイミングフラグオブ
ジェクト52のタイミングフラグを設定し(ステップS
42)、探索エンジンオブジェクト41に探索の開始を
依頼して(ステップS43)、処理を終了する。
【0055】ステップS42においては、タイミングフ
ラグを立てる処理と伏せる処理の2通りの処理が考えら
れる。探索形状を画面に表示するかどうかは、後述する
ように、タイミングフラグと状態フラグの関係に基づい
て決定されるため、タイミングフラグを立てるか伏せる
かに応じて異なる表示タイミングを指定することができ
る。
【0056】図24は、図5の停止ボタンオブジェクト
61が所持する停止メソッド63の処理のフローチャー
トである。停止メソッド63は、まず、起動ボタンが押
されたかどうかを定期的にチェックする(ステップS5
1)。停止ボタンが押されたら、終了フラグオブジェク
ト62の終了フラグを立てて(ステップS52)、処理
を終了する。
【0057】次に、具体的な最適化問題としてばね吊り
問題とN体問題を用いて、個別問題に応じたオブジェク
トの構成と動作について説明する。ばね吊り問題は、ば
ねの両端を固定して吊り下げ、最終的に静止したときの
形状を求める問題である。この問題では、図3の形状オ
ブジェクト42は、ばね形状(xy平面上のN+2個の
点を結んだ折れ線)、ばね質量、ばね定数、およびばね
の自然の長さをデータとして所持する。N+2個の点の
うち両端の2点は固定されており、ばねの変形は残るN
個の点の移動によって生じる。このとき、この形状オブ
ジェクト42に含まれるN+2個の点のうち、両端の点
を除いたN個の点が、それぞれ、変形要素オブジェクト
45となる。
【0058】図6のコスト関数オブジェクト71は、一
定重力下における形状オブジェクト42のポテンシャル
エネルギーをコスト値とする。例えば、形状オブジェク
ト42のN+2個の点をp0 ,p1 ,p2 ,...,p
N ,pN+1 とし、点pi の座標を(x,y)=(xi
i )(i=0,1,...,N,N+1)とし、(x
0 ,y0 )=(0,0)、(xN+1 ,yN+1 )=(L,
0)とする。また、ばねの質量をMとし、ばね定数をk
とし、ばねの自然の長さをL0 とすると、形状オブジェ
クト42のコスト値は、次式により計算される。
【0059】
【数1】 ただし、簡単のため重力加速度を1としており、|pi
−pi+1 |はpi とpi+ 1 の間の距離を表している。
【0060】また、図7の開始形状生成オブジェクト8
1は、画面上に表示される以下のようなGUI(graphi
c user interface)コンポーネントを含む。 (1)開始形状のばね質量Mを設定するための入力フィ
ールド (2)開始形状のばね定数kを設定するための入力フィ
ールド (3)開始形状のばねの自然の長さL0 を設定するため
の入力フィールド (4)開始形状のばねの固定端間の距離Lを設定するた
めの入力フィールド (5)開始形状のばね形状を表わす点の個数Nを設定す
るための入力フィールド (6)開始形状の生成を行うための初期化ボタン 図25は、開始形状生成オブジェクト81が所持する開
始形状メソッド82の処理のフローチャートである。開
始形状メソッド82は、まず、初期化ボタンが押された
かどうかを定期的にチェックし(ステップS61)、初
期化ボタンが押されたら、次に、上述の入力フィールド
に設定されたパラメータが適切かどうかをチェックする
(ステップS62)。
【0061】すべてのパラメータが適切であれば、それ
らを形状オブジェクト42に記憶させ(ステップS6
3)、端点p0 とpN+1 の間の距離Lに基づき、p0
座標(x0 ,y0 )を(0,0)に設定し、pN+1 の座
標(xN+1 ,yN+1 )を(L,0)に設定する(ステッ
プS64)。
【0062】次に、座標(0,L/2)と(L,−L/
2)を対角頂点として生成される正方形内に、ランダム
にN個の点を生成して、それらの点の列をp1
2 ,...,pN として形状オブジェクト42に記憶
させる(ステップS65)。そして、得られた形状オブ
ジェクト42を開始形状として探索エンジンオブジェク
ト41に記憶させ(ステップS66)、処理を終了す
る。
【0063】また、ステップS62において、いずれか
のパラメータが適切でなければ、エラー処理を行ってエ
ラーメッセージ等を表示し(ステップS67)、処理を
終了する。
【0064】また、図8の変形アルゴリズム管理オブジ
ェクト91は、上述したメソッドの他に、ポインタ(整
数)を格納するポインタオブジェクトを所持し、以下の
ような処理を行う。
【0065】図26は、変形アルゴリズム管理オブジェ
クト91が所持する初期化メソッド92の処理のフロー
チャートである。初期化メソッド92は、ポインタオブ
ジェクトのポインタに1を代入して(ステップS7
1)、処理を終了する。
【0066】図27は、変形アルゴリズム管理オブジェ
クト91が所持する変形要素メソッド93の処理のフロ
ーチャートである。変形要素メソッド93は、まず、ポ
インタの番号に対応する点が形状オブジェクト42に存
在するかどうかをチェックし(ステップS81)、その
点が存在すれば、対応する変形要素オブジェクト45の
情報を取り出す(ステップS82)。そして、ポインタ
に1を加算し(ステップS83)、取り出した情報を返
して(ステップS84)、処理を終了する。
【0067】また、ステップS81において、ポインタ
の番号に対応する点が存在しなければ、エラー処理を行
って(ステップS85)、処理を終了する。図28は、
変形アルゴリズム管理オブジェクト91が所持する通知
メソッド94の処理のフローチャートである。通知メソ
ッド94は、まず、ポインタの番号に対応する点が形状
オブジェクト42に存在するかどうかをチェックし(ス
テップS91)、その点が存在すれば、“Yes”を返
して(ステップS92)、処理を終了する。その点が存
在しなければ、“No”を返して(ステップS93)、
処理を終了する。
【0068】また、図9の変形アルゴリズム群オブジェ
クト101は、上述した更新フラグオブジェクト102
の他に、変形要素オブジェクト45、カウンタオブジェ
クト、移動量オブジェクト、および移動方向オブジェク
トを所持する。カウンタオブジェクトは、カウンタ(整
数)を格納し、移動量オブジェクトは、移動量(実数)
を格納し、移動方向オブジェクトは、移動方向(2次元
ベクトル)を格納する。
【0069】図29は、変形アルゴリズム群オブジェク
ト101が所持する初期化メソッド103の処理のフロ
ーチャートである。初期化メソッド103は、まず、与
えられた変形要素オブジェクト45の情報を記憶し(ス
テップS101)、更新フラグオブジェクト102の更
新フラグを伏せて(ステップS102)、カウンタオブ
ジェクトのカウンタに0を代入する(ステップS10
3)。そして、移動量オブジェクトの移動量を初期化し
(ステップS104)、移動方向オブジェクトの移動方
向を初期化して(ステップS105)、処理を終了す
る。
【0070】ステップS104において、移動量Δp
は、例えば、次式により初期化される。
【0071】
【数2】 また、ステップS101において記憶された変形要素オ
ブジェクト45が点p i であるとすると、ステップS1
05では、移動方向を表す2次元ベクトルのx成分dx
とy成分dy が、例えば、次式により初期化される。 dx =k(αi (xi −xi-1 )−αi+1 (xi+1 −xi )) dy =M/N+k(αi (yi −yi-1 )−αi+1 (yi+1 −yi )) αi =N−L0 /|pi −pi-1 | [3] 図30は、変形アルゴリズム群オブジェクト101が所
持する変形アルゴリズムメソッド104の処理のフロー
チャートである。変形アルゴリズムメソッド104は、
まず、移動方向の2次元ベクトル(dx ,dy )が
(0,0)かどうかをチェックする(ステップS11
1)。(dx ,dy )=(0,0)でなければ、ベクト
ル(dx ,dy )と移動量Δpを元にして移動ベクトル
を作成し、それを所持する移動ベクトルオブジェクトを
生成する(ステップS112)。ここでは、ベクトル
(dx ,dy )をスカラー倍して、長さがΔpのベクト
ルを作成し、それを移動ベクトルとする。
【0072】次に、変形要素オブジェクト45と移動ベ
クトルオブジェクトを元にして、図10の変形アルゴリ
ズムオブジェクト111を作成する(ステップS11
3)。そして、移動量Δpを半分の値に設定し(ステッ
プS114)、カウンタに1を加算し(ステップS11
5)、作成された変形アルゴリズムオブジェクト111
の情報を返して(ステップS116)、処理を終了す
る。
【0073】また、ステップS111において、
(dx ,dy )=(0,0)であれば、エラー処理を行
って(ステップS117)、処理を終了する。図31
は、変形アルゴリズム群オブジェクト101が所持する
通知メソッド105の処理のフローチャートである。通
知メソッド105は、まず、(dx ,d y )=(0,
0)であるかどうかをチェックし(ステップS12
1)、(dx ,dy )=(0,0)であれば、“No”
を返して(ステップS122)、処理を終了する。
【0074】(dx ,dy )=(0,0)でなければ、
次に、カウンタをチェックし(ステップS123)、カ
ウンタが15以上であれば、“No”を返して(ステッ
プS122)、処理を終了する。カウンタが15未満で
あれば、次に、更新フラグをチェックし(ステップS1
24)、更新フラグが立っていれば、“No”を返して
(ステップS122)、処理を終了する。更新フラグが
立っていなければ、“Yes”を返して(ステップS1
25)、処理を終了する。
【0075】図30のステップS113で作成された変
形アルゴリズムオブジェクト111は、変形要素オブジ
ェクト45と移動ベクトルオブジェクトを所持し、図3
2に示すような処理を行う。
【0076】図32は、変形アルゴリズムオブジェクト
111が所持する変形メソッド112の処理のフローチ
ャートである。変形メソッド112は、まず、与えられ
た形状オブジェクト42のコピーを作成し(ステップS
131)、コピーに含まれる与えられた変形要素オブジ
ェクト45を移動ベクトルに従って移動する(ステップ
S132)。そして、得られた形状オブジェクトを返し
て(ステップS133)、処理を終了する。
【0077】また、図33は、図11の形状表示オブジ
ェクト121が所持する表示メソッド123の処理のフ
ローチャートである。表示メソッド123は、まず、タ
イミングフラグオブジェクト52のタイミングフラグと
状態フラグオブジェクト122の状態フラグが一致する
かどうかをチェックする(ステップS141)。それら
が一致すれば、形状オブジェクト42が表す探索形状を
画面に表示して(ステップS142)、処理を終了す
る。また、2つのフラグが一致しなければ、探索形状を
表示せずに、処理を終了する。
【0078】タイミングフラグおよび状態フラグは、論
理“0”のとき、伏せた状態に対応し、論理“1”のと
き、立った状態に対応する。また、状態フラグは、論理
“0”のとき、1つの変形要素に関する探索が終了した
状態を表し、論理“1”のとき、形状の変形要素毎の探
索を一巡した状態を表す。
【0079】したがって、起動ボタンが押されたときに
タイミングフラグが論理“0”に設定されていれば、1
つの変形要素に関する探索が終了する度に、探索形状が
画面に表示される。また、起動ボタンが押されたときに
タイミングフラグが論理“1”に設定されていれば、変
形要素毎の探索を一巡する度に、探索形状が画面に表示
される。
【0080】図34から図36までは、ばね吊り問題の
シミュレーションにおける表示画面の例を示している。
図34の表示画面において、ボタン208、209は起
動ボタンに対応し、ボタン210は停止ボタンに対応す
る。例えば、起動ボタン208が押された場合は、タイ
ミングフラグは論理“0”に設定され、起動ボタン20
9が押された場合は、タイミングフラグは論理“1”に
設定される。
【0081】また、フィールド211、212、21
3、214、215は、それぞれ、ばねの自然の長さL
0 、質量M、ばね定数k、両端間の距離L、移動可能な
点(質点)の数Nの入力フィールドに対応する。
【0082】例えば、ユーザが、L0 =10、M=10
0、k=1、L=15、N=21と入力して初期化ボタ
ン216を押すと、開始形状217、218が表示され
る。形状217、218は、同一の開始形状を2つの方
法で表示した結果を表し、形状217は、縦横が同一の
スケーリングで表示されており、形状218は、縦横が
異なるスケーリングで表示されている。また、放物線2
19、220は、ばねが最終的に到達する形状に対応
し、探索の開始時にあらかじめ表示されている。
【0083】図34の形状を開始形状として探索を行う
と、ばねの形状は、図35に示すように、V字型の形状
221、222に変化する。そして、探索が十分に進む
と、図36に示すように、放物線219、220にほと
んど重なるような形状に収束する。
【0084】このように、ばね吊り問題においては、ば
ねの形状を複数の点の集合で表し、各点を移動させるこ
とで、形状を変化させながら安定な状態を求めることが
できる。ユーザは、あらかじめ決められたパラメータを
入力するだけで、自動的に吊り下げられたばねの静止状
態を得ることができる。
【0085】次に、N体問題は、N個の星(天体)の周
期運行の軌道を求める問題である。この問題では、図3
の形状オブジェクト42は、図37に示すように、周期
Tのデータ231、各星の運行軌道を閉折れ線グラフで
表現したときの頂点数Mのデータ232、およびN個の
星オブジェクト233(O1〜ON)の集約オブジェク
トを所持する。
【0086】各星オブジェクト233は、星の運行軌道
の形状オブジェクト234(要素数Mの3次元ベクトル
の配列)と星の質量のデータ235を所持し、形状オブ
ジェクト234は、M個の頂点の3次元空間における位
置を表す位置ベクトル236(V1〜VM)を所持す
る。
【0087】この形状オブジェクト42には、N個の星
の情報が含まれており、各星の軌道は、M個の頂点から
なる折れ線で表されている。したがって、形状オブジェ
クト42には、NM個の折れ線軌道の頂点の情報が含ま
れており、各頂点が変形要素オブジェクト45となる。
この場合、変形要素オブジェクト45には、N個の星の
うちの1つを指す星ポインタ、M個の頂点のうちの1つ
を指す頂点ポインタ、およびその頂点の位置を表す位置
ベクトルの情報が含まれる。
【0088】図6のコスト関数オブジェクト71は、形
状オブジェクト42が表すN個の星がNewtonの万有引力
で引き合うことによって生じる力学系の作用(ラグラン
ジアンの時間積分)を、コスト値とする。
【0089】例えば、形状オブジェクト42に属するa
番目の星オブジェクトOaのi番目の頂点の位置ベクト
ルViを、pa,i (1≦a≦N,1≦i≦M)とし、形
状オブジェクト42に属する星オブジェクトOaの質量
をMa とする。また、3次元ベクトルの列pa,b,i とv
a,b,i (1≦a,b≦N,1≦i≦M)を次式により定
義する。 pa,b,i ≡pa,i −pb,i a,b,i ≡pa,b,(i+1)modM −pa,b,i [4] このとき、形状オブジェクト42のコスト値は、次式に
より計算される。
【0090】
【数3】 ただし、簡単のため重力加速度を1としており、(i+
1)modMは、Mによる剰余演算を表している。
【0091】また、図7の開始形状生成オブジェクト8
1は、画面上に表示される以下のようなGUIコンポー
ネントを含む。 (1)開始形状の星の個数Nを設定するための入力フィ
ールド (2)開始形状の星の運行軌道を折れ線グラフで表した
ときの頂点数Mを設定するための入力フィールド (3)開始形状の生成を行うための円軌道ボタン 図38は、開始形状生成オブジェクト81が所持する開
始形状メソッド82の処理のフローチャートである。開
始形状メソッド82は、まず、円軌道ボタンが押された
かどうかを定期的にチェックし(ステップS151)、
円軌道ボタンが押されたら、次に、上述の入力フィール
ドに設定されたパラメータM、Nが適切かどうかをチェ
ックする(ステップS152)。
【0092】すべてのパラメータが適切であれば、頂点
数Mを形状オブジェクト42に記憶させ(ステップS1
53)、個数Nを形状オブジェクト42に記憶させる
(ステップS154)。また、周期T=1を形状オブジ
ェクト42に記憶させる(ステップS155)。
【0093】次に、変数iに1を代入し(ステップS1
56)、iとN+1を比較する(ステップS157)。
i<N+1であれば、0.001以上100以下の実数
をランダムに選択し、それをi番目の星オブジェクトO
iに質量として記憶させる(ステップS158)。
【0094】次に、0.1以上1.1以下の実数をラン
ダムに選択し、変数rに代入する(ステップS15
9)。次に、xyz空間の原点(x,y,z)=(0,
0,0)を中心とし、rを半径とする円に内接する正M
角形であって、1つの頂点の座標が(r,0,0)であ
るようなものを求める(ステップS160)。そして、
その正M角形のM個の頂点の位置ベクトルの配列を、星
オブジェクトOiに折れ線軌道として記憶させる(ステ
ップS161)。
【0095】次に、変数iに1を加算し(ステップS1
62)、ステップS157以降の処理を繰り返し、iが
N+1に達すると、処理を終了する。また、ステップS
152において、いずれかのパラメータが適切でなけれ
ば、エラー処理を行って(ステップS163)、処理を
終了する。
【0096】また、図8の変形アルゴリズム管理オブジ
ェクト91は、星ポインタ(整数)を格納する星ポイン
タオブジェクトと、頂点ポインタ(整数)を格納する頂
点ポインタオブジェクトとを所持し、以下のような処理
を行う。
【0097】図39は、変形アルゴリズム管理オブジェ
クト91が所持する初期化メソッド92の処理のフロー
チャートである。初期化メソッド92は、星ポインタオ
ブジェクトの星ポインタに1を代入し(ステップS17
1)、頂点ポインタオブジェクトの頂点ポインタに1を
代入して(ステップS172)、処理を終了する。
【0098】図40は、変形アルゴリズム管理オブジェ
クト91が所持する変形要素メソッド93の処理のフロ
ーチャートである。変形要素メソッド93は、まず、頂
点ポインタの値を形状オブジェクト42が所持するMと
比較する(ステップS181)。頂点ポインタの値がM
以下であれば、次に、星ポインタの値を形状オブジェク
ト42が所持する星オブジェクト233の数Nと比較す
る(ステップS182)。
【0099】星ポインタの値がN以下であれば、星ポイ
ンタに対応する星オブジェクト233の情報を形状オブ
ジェクト42から取り出し(ステップS183)、その
星オブジェクト233から頂点ポインタに対応する頂点
の位置ベクトル236を取り出す(ステップS18
4)。そして、星ポインタに1を加算し(ステップS1
85)、取り出した頂点の情報を変形要素として返して
(ステップS186)、処理を終了する。
【0100】ステップS182において、星ポインタの
値がNを越えていれば、頂点ポインタに1を加算し(ス
テップS187)、星ポインタに1を代入して(ステッ
プS188)、ステップS181以降の処理を繰り返
す。また、ステップS181において、頂点ポインタの
値がMを越えていれば、エラー処理を行って(ステップ
S189)、処理を終了する。
【0101】図41は、変形アルゴリズム管理オブジェ
クト91が所持する通知メソッド94の処理のフローチ
ャートである。通知メソッド94は、まず、星ポインタ
に対応する星オブジェクト233が形状オブジェクト4
2に存在するかどうかをチェックする(ステップS19
1)。その星オブジェクト233が存在しなければ、
“No”を返して(ステップS192)、処理を終了す
る。
【0102】星ポインタに対応する星オブジェクト23
3が存在すれば、次に、頂点ポインタの値をチェックす
る(ステップS193)。頂点ポインタの値が1以上M
以下であれば、“Yes”を返して(ステップS19
4)、処理を終了する。頂点ポインタの値が1より小さ
いかまたはMより大きければ、“No”を返して(ステ
ップS192)、処理を終了する。
【0103】また、図9の変形アルゴリズム群オブジェ
クト101は、更新フラグオブジェクト102の他に、
星ポインタオブジェクト、頂点ポインタオブジェクト、
移動量カウンタオブジェクト、移動量オブジェクト、移
動方向テーブルオブジェクト、および移動方向テーブル
カウンタオブジェクトを所持する。
【0104】移動量カウンタオブジェクトは、移動量カ
ウンタ(整数)を格納し、移動量オブジェクトは、移動
量(実数)を格納し、移動方向テーブルオブジェクト
は、移動方向テーブル(3次元ベクトルの配列)を格納
し、移動方向テーブルカウンタオブジェクトは、移動方
向テーブルカウンタ(整数)を格納する。
【0105】図42は、変形アルゴリズム群オブジェク
ト101が所持する初期化メソッド103の処理のフロ
ーチャートである。初期化メソッド103は、まず、与
えられた変形要素オブジェクト45の情報を星ポインタ
オブジェクトと頂点ポインタオブジェクトに記憶させ
(ステップS201)、更新フラグオブジェクト102
の更新フラグを伏せて(ステップS202)、移動量カ
ウンタオブジェクトの移動量カウンタに1を代入する
(ステップS203)。
【0106】次に、移動量オブジェクトの移動量を初期
化し(ステップS204)、移動方向テーブルカウンタ
オブジェクトの移動方向テーブルカウンタに1を代入し
(ステップS205)、移動方向テーブルオブジェクト
の移動方向テーブルが初期化されているかどうかをチェ
ックする(ステップS206)。
【0107】移動方向テーブルが初期化されていれば処
理を終了し、それが初期化されていなければ、移動方向
テーブルを初期化して(ステップS207)、処理を終
了する。
【0108】今、ステップS201において記憶された
星ポインタおよび頂点ポインタの値を、それぞれaおよ
びiとすると、ステップS204において、移動量Δp
は、例えば、次式により初期化される。 Δp=(1/4)(|pa,i-1 −pa,i |+|pa,i −pa,i+1 |) [6] ここで、pa,i-1 、pa,i 、pa,i+1 は、それぞれ、星
ポインタに対応する星オブジェクトOaのi−1番目、
i番目、i+1番目の頂点の位置ベクトルを表す。
【0109】また、ステップS207において、移動方
向テーブルは、例えば、次のようにして初期化される。
まず、3次元ベクトルe1 、e2 、e3 を次式のように
選ぶ。 e1 =(1,0,0) e2 =(0,1,0) [7] e3 =(0,0,1) 次に、要素数6の3次元ベクトルの配列を作成し、その
配列の1番目の要素にe1 を代入し、2番目の要素に−
1 を代入し、3番目の要素にe2 を代入し、4番目の
要素に−e2 を代入し、5番目の要素にe3 を代入し、
6番目の要素に−e3 を代入する。そして、この3次元
ベクトルの配列を移動方向テーブルとする。
【0110】図43は、変形アルゴリズム群オブジェク
ト101が所持する変形アルゴリズムメソッド104の
処理のフローチャートである。変形アルゴリズムメソッ
ド104は、まず、移動方向テーブルカウンタの値をチ
ェックする(ステップS211)。
【0111】カウンタの値が6以下であれば、カウンタ
に対応する配列要素を移動方向テーブルから取り出し
(ステップS212)、その配列要素と移動量Δpを元
にして移動ベクトルを作成し、それを所持する移動ベク
トルオブジェクトを生成する(ステップS213)。こ
こでは、取り出された3次元ベクトルをスカラー倍し
て、長さがΔpのベクトルを作成し、それを移動ベクト
ルとする。
【0112】次に、星ポインタオブジェクト、頂点ポイ
ンタオブジェクト、および移動ベクトルオブジェクトを
元にして、図10の変形アルゴリズムオブジェクト11
1を作成する(ステップS214)。そして、移動方向
テーブルカウンタに1を加算し(ステップS215)、
作成された変形アルゴリズムオブジェクト111の情報
を返して(ステップS216)、処理を終了する。
【0113】また、ステップS211において、カウン
タの値が6を越えていれば、移動量Δpを半分の値に設
定し(ステップS217)、移動量カウンタに1を加算
し(ステップS218)、移動方向テーブルカウンタに
1を代入して(ステップS219)、ステップS212
以降の処理を行う。
【0114】図44は、変形アルゴリズム群オブジェク
ト101が所持する通知メソッド105の処理のフロー
チャートである。通知メソッド105は、まず、移動量
カウンタの値をチェックし(ステップS221)、カウ
ンタの値が10以上であれば、“No”を返して(ステ
ップS222)、処理を終了する。
【0115】カウンタの値が10未満であれば、次に、
更新フラグをチェックし(ステップS223)、更新フ
ラグが立っていれば、“No”を返して(ステップS2
22)、処理を終了する。更新フラグが立っていなけれ
ば、“Yes”を返して(ステップS224)、処理を
終了する。
【0116】図43のステップS214で作成された変
形アルゴリズムオブジェクト111は、星ポインタオブ
ジェクト、頂点ポインタオブジェクト、および移動ベク
トルオブジェクトを所持し、図45に示すような処理を
行う。
【0117】図45は、変形アルゴリズムオブジェクト
111が所持する変形メソッド112の処理のフローチ
ャートである。変形メソッド112は、まず、与えられ
た形状オブジェクト42のコピーを作成する(ステップ
S131)。次に、コピーに含まれる与えられた星ポイ
ンタに対応する星オブジェクト233の与えられた頂点
ポインタに対応する頂点の位置を移動ベクトルに従って
移動する(ステップS232)。そして、得られた形状
オブジェクトを返して(ステップS233)、処理を終
了する。
【0118】また、この問題において、図11の形状表
示オブジェクト121が所持する表示メソッド123
は、図33と同様の処理を行い、タイミングフラグと状
態フラグが一致したときに探索形状を表示する。
【0119】図46および図47は、N体問題のシミュ
レーションにおける表示画面の例を示している。図46
の表示画面において、ボタン241、242は起動ボタ
ンに対応し、ボタン243は停止ボタンに対応する。例
えば、起動ボタン241が押された場合は、タイミング
フラグは論理“0”に設定され、起動ボタン242が押
された場合は、タイミングフラグは論理“1”に設定さ
れる。
【0120】また、フィールド244、245は、それ
ぞれ、頂点の数M、星の数Nの入力フィールドに対応す
る。例えば、ユーザが、M=60、N=3と入力して円
軌道ボタン246を押すと、3つの星247、248、
249を含む開始形状が表示される。この開始形状で
は、星247、248は、楕円状の軌道に沿って運行し
ており、星249は、これらの軌道の中央に静止してい
る。また、点250は、3つの星の重心の位置を表わし
ている。
【0121】図46の形状を開始形状として探索を行う
と、各星の軌道は、図47に示すように変化する。図4
7では、星247の軌道が最も内側に入り込み、静止し
ていた星249が、星247と星248の間の軌道に沿
って運行していることが分かる。
【0122】このように、N体問題においては、N個の
星の軌道を複数の点の集合で表し、各点を移動させるこ
とで、全体の形状を変化させながら安定な軌道を求める
ことができる。ユーザは、あらかじめ決められたパラメ
ータを入力するだけで、自動的に星の安定な軌道を得る
ことができる。
【0123】以上説明した具体例では、形状オブジェク
ト42が表す形状モデルが与えられた問題に含まれる物
理的な物体の形状や軌跡に対応しているが、一般には、
形状オブジェクト42は必ずしも物理的な物体に対応す
るとは限らない。例えば、経済、ビジネス等の分野にお
ける最適コスト問題の場合、日時、金額、人数等のパラ
メータを組合せて形状モデルが生成される。この場合
も、形状の変形過程を画面に表示することが可能であ
る。
【0124】ところで、上述した図2の処理装置は、図
48に示すような情報処理装置(コンピュータ)を用い
て構成することができる。図48の情報処理装置は、C
PU(中央処理装置)251、メモリ252、入力装置
253、出力装置254、外部記憶装置255、媒体駆
動装置256、およびネットワーク接続装置257を備
え、それらはバス258により互いに接続されている。
【0125】メモリ252は、例えば、ROM(read o
nly memory)、RAM(random access memory)等を含
み、処理に用いられるプログラムとデータを格納する。
CPU251は、メモリ252を利用してプログラムを
実行することにより、必要な処理を行う。
【0126】図2の探索エンジン11、変形要素毎の探
索終了条件12、変形要素毎の順序付けアルゴリズム1
3、探索終了条件14、コスト関数15、変形パターン
16、形状21、変形要素23、および生成部31〜3
6は、メモリ252の特定のプログラムコードセグメン
トに格納されたソフトウェアコンポーネントに対応し、
1つ以上のインストラクションからなるプログラムによ
り実現される。
【0127】入力装置253は、例えば、キーボード、
ポインティングデバイス、タッチパネル等であり、ユー
ザからの指示や情報の入力に用いられる。出力装置25
4は、例えば、ディスプレイ、プリンタ、スピーカ等で
あり、ユーザへの問い合わせや処理結果の出力に用いら
れる。
【0128】外部記憶装置255は、例えば、磁気ディ
スク装置、光ディスク装置、光磁気ディスク(magneto-
optical disk)装置等である。この外部記憶装置255
に、上述のプログラムとデータを保存しておき、必要に
応じて、それらをメモリ252にロードして使用するこ
ともできる。また、外部記憶装置255は、図2の共通
部品や個別部品を格納するデータベースとしても用いら
れる。
【0129】媒体駆動装置256は、可搬記録媒体25
9を駆動し、その記録内容にアクセスする。可搬記録媒
体259としては、メモリカード、フロッピーディス
ク、CD−ROM(compact disk read only memory
)、光ディスク、光磁気ディスク等、任意のコンピュ
ータ読み取り可能な記録媒体が用いられる。この可搬記
録媒体259に上述のプログラムとデータを格納してお
き、必要に応じて、それらをメモリ252にロードして
使用することもできる。
【0130】ネットワーク接続装置257は、LAN
(local area network)等の任意のネットワーク(回
線)を介して外部の装置と通信し、通信に伴うデータ変
換を行う。また、必要に応じて、上述のプログラムとデ
ータを外部の装置から受け取り、それらをメモリ252
にロードして使用することもできる。
【0131】図49は、図48の情報処理装置にプログ
ラムとデータを供給することのできるコンピュータ読み
取り可能な記録媒体を示している。可搬記録媒体259
や外部のデータベース260に保存されたプログラムと
データは、メモリ252にロードされる。そして、CP
U251は、そのデータを用いてそのプログラムを実行
し、必要な処理を行う。
【0132】
【発明の効果】本発明によれば、処理対象の最適化問題
を形状モデル化することで、汎用性の高いアルゴリズム
が実現される。また、形状モデルが変形する過程を表示
することで、問題解決の過程をユーザに提示することが
でき、ユーザは、提示された過程を視覚的に理解するこ
とができる。
【図面の簡単な説明】
【図1】本発明の処理装置の原理図である。
【図2】処理装置の構成図である。
【図3】探索エンジンオブジェクトを示す図である。
【図4】起動ボタンオブジェクトを示す図である。
【図5】停止ボタンオブジェクトを示す図である。
【図6】コスト関数オブジェクトを示す図である。
【図7】開始形状生成オブジェクトを示す図である。
【図8】変形アルゴリズム管理オブジェクトを示す図で
ある。
【図9】変形アルゴリズム群オブジェクトを示す図であ
る。
【図10】変形アルゴリズムオブジェクトを示す図であ
る。
【図11】形状表示オブジェクトを示す図である。
【図12】コスト関数オブジェクト生成オブジェクトを
示す図である。
【図13】開始形状生成オブジェクト生成オブジェクト
を示す図である。
【図14】形状オブジェクト生成オブジェクトを示す図
である。
【図15】変形要素オブジェクト生成オブジェクトを示
す図である。
【図16】変形アルゴリズム管理オブジェクト生成オブ
ジェクトを示す図である。
【図17】変形アルゴリズム群オブジェクト生成オブジ
ェクトを示す図である。
【図18】変形アルゴリズムオブジェクト生成オブジェ
クトを示す図である。
【図19】形状表示オブジェクト生成オブジェクトを示
す図である。
【図20】起動プログラムのフローチャートである。
【図21】探索メソッドのフローチャート(その1)で
ある。
【図22】探索メソッドのフローチャート(その2)で
ある。
【図23】起動メソッドのフローチャートである。
【図24】停止メソッドのフローチャートである。
【図25】第1の開始形状メソッドのフローチャートで
ある。
【図26】第1の初期化メソッドのフローチャートであ
る。
【図27】第1の変形要素メソッドのフローチャートで
ある。
【図28】第1の通知メソッドのフローチャートであ
る。
【図29】第2の初期化メソッドのフローチャートであ
る。
【図30】第1の変形アルゴリズムメソッドのフローチ
ャートである。
【図31】第2の通知メソッドのフローチャートであ
る。
【図32】第1の変形メソッドのフローチャートであ
る。
【図33】表示メソッドのフローチャートである。
【図34】第1の表示画面を示す図である。
【図35】第2の表示画面を示す図である。
【図36】第3の表示画面を示す図である。
【図37】N体問題の形状オブジェクトを示す図であ
る。
【図38】第2の開始形状メソッドのフローチャートで
ある。
【図39】第3の初期化メソッドのフローチャートであ
る。
【図40】第2の変形要素メソッドのフローチャートで
ある。
【図41】第3の通知メソッドのフローチャートであ
る。
【図42】第4の初期化メソッドのフローチャートであ
る。
【図43】第2の変形アルゴリズムメソッドのフローチ
ャートである。
【図44】第4の通知メソッドのフローチャートであ
る。
【図45】第2の変形メソッドのフローチャートであ
る。
【図46】第4の表示画面を示す図である。
【図47】第5の表示画面を示す図である。
【図48】情報処理装置の構成図である。
【図49】記録媒体を示す図である。
【符号の説明】
1 生成手段 2 格納手段 3 変形手段 4 出力手段 5 形状モデル 11 探索エンジン 12 変形要素毎の探索終了条件 13 変形要素毎の順序付けアルゴリズム 14 探索終了条件 15 コスト関数 16 変形パターン 17 クリエータ 21 形状 22 最小コスト値 23 変形要素 31、32、33、34、35、36 生成部 41、42、43、45、51、52、61、62、7
1、81、91、101、102、111、121、1
22、131、141、151、161、171、18
1、191、201、233 オブジェクト 44、53、63、72、82、92、93、94、1
03、104、105、112、123、132、14
2、152、162、172、182、192、202
メソッド 208、209、210、216、241、242、2
43、246 ボタン 211、212、213、214、215、244、2
45 入力フィールド 217、218、221、222 表示形状 219、220 放物線 231 周期 232 頂点数 234 ベクトルの配列 235 質量 236 ベクトル 247、248、249 星 250 重心 251 CPU 252 メモリ 253 入力装置 254 出力装置 255 外部記憶装置 256 媒体駆動装置 257 ネットワーク接続装置 258 バス 259 可搬記録媒体 260 データベース //
───────────────────────────────────────────────────── フロントページの続き (72)発明者 桝田 彰一 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 (72)発明者 福田 育夫 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 Fターム(参考) 5B046 DA02 FA04 GA01 JA04

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 与えられた問題を表す形状モデルを生成
    する生成手段と、 前記形状モデルのデータを格納する格納手段と、 前記形状モデルを変形する変形手段と、 変形された形状モデルを視覚的に出力する出力手段とを
    備えることを特徴とする処理装置。
  2. 【請求項2】 前記生成手段は、1つ以上の変形要素を
    含む形状モデルを生成し、前記変形手段は、該変形要素
    に基づいて該形状モデルを変形することを特徴とする請
    求項1記載の処理装置。
  3. 【請求項3】 前記生成手段、格納手段、変形手段、お
    よび出力手段のうち少なくとも1つは、前記与えられた
    問題に依存しない共通部品手段を含むことを特徴とする
    請求項1記載の処理装置。
  4. 【請求項4】 前記生成手段、格納手段、変形手段、お
    よび出力手段のうち少なくとも1つは、前記与えられた
    問題に応じて交換可能な個別部品手段を含むことを特徴
    とする請求項1記載の処理装置。
  5. 【請求項5】 与えられた問題を表す形状モデルを1つ
    以上の変形要素を用いて生成し、該変形要素を変化させ
    ながら該形状モデルを変形して、該形状モデルのコスト
    値が良くなるような解を探索する探索手段と、 変形要素毎の探索終了条件、全体の探索終了条件、変形
    要素の処理順序、コスト関数、および変形要素の変形ア
    ルゴリズムを指定する指定手段と、 変形された形状モデルを視覚的に出力する出力手段とを
    備えることを特徴とする処理装置。
  6. 【請求項6】 コンピュータのためのプログラムを記録
    した記録媒体であって、 与えられた問題を表す形状モデルを生成するステップ
    と、 前記形状モデルを変形するステップと、 変形された形状モデルを視覚的に出力するステップとを
    含む処理を前記コンピュータに実行させるためのプログ
    ラムを記録したコンピュータ読み取り可能な記録媒体。
  7. 【請求項7】 与えられた問題を形状モデルに変換し、 前記形状モデルを変形して、コスト値の良好な形状モデ
    ルを求め、 変形された形状モデルを視覚的に表現することを特徴と
    する処理方法。
JP11016500A 1999-01-26 1999-01-26 最適化問題を解決する処理装置および方法 Pending JP2000215193A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP11016500A JP2000215193A (ja) 1999-01-26 1999-01-26 最適化問題を解決する処理装置および方法
US09/447,055 US6718289B1 (en) 1999-01-26 1999-11-23 Processing apparatus and method for solving optimization problem

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11016500A JP2000215193A (ja) 1999-01-26 1999-01-26 最適化問題を解決する処理装置および方法

Publications (1)

Publication Number Publication Date
JP2000215193A true JP2000215193A (ja) 2000-08-04

Family

ID=11918007

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11016500A Pending JP2000215193A (ja) 1999-01-26 1999-01-26 最適化問題を解決する処理装置および方法

Country Status (2)

Country Link
US (1) US6718289B1 (ja)
JP (1) JP2000215193A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003099496A (ja) * 2001-09-19 2003-04-04 Mazda Motor Corp 新型車両の企画立案支援のためのコンピュータ・プログラム
JP2005056421A (ja) * 2003-08-05 2005-03-03 Mitsubishi Electric Research Laboratories Inc 複数の要素および複数の値を含む組合せ最適化問題を解く方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7363198B2 (en) * 2001-10-29 2008-04-22 The Board Of Trustees Of The Leland Stanford Junior University Long elements method for simulation of deformable objects
US7099851B2 (en) * 2001-12-13 2006-08-29 Sun Microsystems, Inc. Applying term consistency to an equality constrained interval global optimization problem
US20090138328A1 (en) * 2007-11-26 2009-05-28 Yahoo! Inc. Targeted distribution of commercial incentives
US20090138348A1 (en) * 2007-11-26 2009-05-28 Yahoo! Inc. Redistribution and redemption of commercial incentives
US20090138347A1 (en) * 2007-11-26 2009-05-28 Yahoo! Inc. Dynamic augmentation of commercial incentives
US20100100417A1 (en) * 2008-10-20 2010-04-22 Yahoo! Inc. Commercial incentive presentation system and method

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5852449A (en) * 1992-01-27 1998-12-22 Scientific And Engineering Software Apparatus for and method of displaying running of modeled system designs
US5373457A (en) * 1993-03-29 1994-12-13 Motorola, Inc. Method for deriving a piecewise linear model
US5692107A (en) * 1994-03-15 1997-11-25 Lockheed Missiles & Space Company, Inc. Method for generating predictive models in a computer system
JP3347508B2 (ja) * 1995-02-24 2002-11-20 キヤノン株式会社 撮像画像処理装置および撮像画像処理方法
US6026362A (en) * 1995-09-11 2000-02-15 Compaq Computer Corporation Tool and method for diagnosing and correcting errors in a computer program
US6374198B1 (en) * 1996-07-11 2002-04-16 Mirai S.R.L. Method for the creation of tridimensional numerical models
US6086617A (en) * 1997-07-18 2000-07-11 Engineous Software, Inc. User directed heuristic design optimization search
US6253164B1 (en) * 1997-12-24 2001-06-26 Silicon Graphics, Inc. Curves and surfaces modeling based on a cloud of points
JPH11338680A (ja) * 1998-05-27 1999-12-10 Mitsubishi Electric Corp シミュレーション表示システム
US6411922B1 (en) * 1998-12-30 2002-06-25 Objective Systems Integrators, Inc. Problem modeling in resource optimization

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003099496A (ja) * 2001-09-19 2003-04-04 Mazda Motor Corp 新型車両の企画立案支援のためのコンピュータ・プログラム
JP2005056421A (ja) * 2003-08-05 2005-03-03 Mitsubishi Electric Research Laboratories Inc 複数の要素および複数の値を含む組合せ最適化問題を解く方法

Also Published As

Publication number Publication date
US6718289B1 (en) 2004-04-06

Similar Documents

Publication Publication Date Title
US8666713B2 (en) Method of simulating deformable object using geometrically motivated model
US6678642B1 (en) Method of and apparatus for modeling interactions
WO2017189064A1 (en) Topology optimization with microstructures
Rochefort-Beaudoin et al. Supervised deep learning for the moving morphable components topology optimization framework
JP2022032703A (ja) 情報処理システム
JP2000215193A (ja) 最適化問題を解決する処理装置および方法
Elad et al. Directed search in a 3D objects database using SVM
CN119322856A (zh) 知识图谱构建方法、装置、设备及存储介质
Zimmermann et al. A computational design synthesis method for the generation of rigid origami crease patterns
JP3892167B2 (ja) 粒子集団の配置を生成する生成装置および方法
CN119272535B (zh) 基于智能体和仿真物理引擎的模拟场景构建方法及装置
Ario et al. Application of Group Theory to Symmetric Structures
Noser et al. Dynamic 3D visualization of database-defined tree structures on the WWW by using rewriting systems
Su et al. 3D geometric constraint analysis and its application on the spatial assembly sequence planning
EP1901235B1 (en) Free style deformation (FSD)
CN113836382A (zh) 多维数字内容搜索
Brecht Global simulations using MHD codes: A few points to consider before you try one
CN114154380A (zh) 火箭弹性运动方程系数的计算方法、装置、终端设备及介质
CN119720715B (zh) 任务处理方法、电子设备、存储介质及程序产品
Brusnikina et al. Visualization of the moving Pareto frontier in DSS
JP4352140B2 (ja) 最適値を求めるためのコンピュータシステム
Leyton Musical works are maximal memory stores
Wu et al. EPPOD: A problem solving environment for parallel electronic prototyping of physical object design
CN121744463A (zh) 一种基于自然语言的多体系统动力学智能化建模计算系统和方法
JP2003504770A (ja) N次元データの視覚化及びアニメーション方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040324

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051115

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060704

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060829

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070109