IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特開2024-65991評価支援プログラム、評価支援方法、および情報処理装置
<>
  • 特開-評価支援プログラム、評価支援方法、および情報処理装置 図1
  • 特開-評価支援プログラム、評価支援方法、および情報処理装置 図2
  • 特開-評価支援プログラム、評価支援方法、および情報処理装置 図3
  • 特開-評価支援プログラム、評価支援方法、および情報処理装置 図4
  • 特開-評価支援プログラム、評価支援方法、および情報処理装置 図5
  • 特開-評価支援プログラム、評価支援方法、および情報処理装置 図6
  • 特開-評価支援プログラム、評価支援方法、および情報処理装置 図7
  • 特開-評価支援プログラム、評価支援方法、および情報処理装置 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024065991
(43)【公開日】2024-05-15
(54)【発明の名称】評価支援プログラム、評価支援方法、および情報処理装置
(51)【国際特許分類】
   G06Q 10/04 20230101AFI20240508BHJP
   G06Q 10/047 20230101ALI20240508BHJP
【FI】
G06Q10/04
G06Q10/04 310
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022175149
(22)【出願日】2022-10-31
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100104190
【弁理士】
【氏名又は名称】酒井 昭徳
(72)【発明者】
【氏名】今村 智史
【テーマコード(参考)】
5L010
5L049
【Fターム(参考)】
5L010AA04
5L049AA04
(57)【要約】
【課題】対象の問題に対するSA法の適正度合いを評価し易くすること。
【解決手段】情報処理装置100は、対象の問題に対して所定の最適化処理110を実施する。情報処理装置100は、所定の最適化処理110を実施した際に、対象の問題を表す変数の解の暫定値と候補値との各評価値の差分が、第2閾値以上になった回数を計数する。第2閾値は、乱数の生成用の整数値の解像度に対応する閾値である。乱数は、確率的に、対象の問題を表す変数の解の暫定値を候補値で更新する際に用いられる。情報処理装置100は、所定の最適化処理110を実施した後、計数した回数に基づいて、対象の問題に対する所定の最適化処理110の適正度合いを評価する。
【選択図】図1
【特許請求の範囲】
【請求項1】
対象の問題を表す変数の解の候補値を探索する探索工程と、当該変数の解の暫定値と候補値との各評価値の差分が第1閾値以下であれば、当該変数の解の暫定値を候補値で更新し、当該差分が前記第1閾値以下でなければ、乱数を用いて確率的に、当該変数の解の暫定値を候補値で更新する更新工程とを、前記対象の問題を表す各変数に対して行うステップを繰り返す最適化処理を実施し、
前記最適化処理を実施した際に、前記対象の問題を表す少なくともいずれかの変数の解の暫定値を候補値で更新した最後のステップまでに、前記対象の問題を表す変数の解の暫定値と候補値との各評価値の差分が、前記乱数の生成用の整数値の解像度に対応する第2閾値以上になった回数を計数し、
前記最適化処理を実施した後、計数した前記回数に基づいて、前記対象の問題に対する前記最適化処理の適正度合いを評価する、
処理をコンピュータに実行させることを特徴とする評価プログラム。
【請求項2】
前記実施する処理は、
前記最適化処理のステップにおいて、前記対象の問題を表すいずれかの変数の解の暫定値と候補値との各評価値の差分が、前記第2閾値以上である場合には、当該変数に対して、前記更新工程を行わずにスキップし、前記第2閾値以上ではない場合には、当該変数に対して、前記更新工程を行う、ことを特徴とする請求項1に記載の評価プログラム。
【請求項3】
前記評価する処理は、
計数した前記回数が、第3閾値以下であれば、前記対象の問題に対する前記最適化処理の適正がないと評価し、計数した前記回数が、前記第3閾値以下でなければ、前記対象の問題に対する前記最適化処理の適正があると評価する、ことを特徴とする請求項1または2に記載の評価プログラム。
【請求項4】
前記実施する処理は、
前記最適化処理のステップにおいて、当該ステップまでに繰り返した過去のステップの数が多いほど値が大きくなるパラメータで、前記解像度を除算して得た値を、前記第2閾値に設定する、ことを特徴とする請求項1または2に記載の評価プログラム。
【請求項5】
前記更新工程は、前記対象の問題を表す変数の解の暫定値と候補値との各評価値の差分が前記第1閾値以下でない場合、繰り返した過去のステップの数が多いほど値が大きくなるパラメータを、当該差分に乗算して得た値が、前記乱数以下であるか否かを判定し、前記乱数以下であれば、当該変数の解の暫定値を候補値で更新し、前記乱数以下でなければ、当該変数の解の暫定値を候補値で更新しない、ことを特徴とする請求項1または2に記載の評価プログラム。
【請求項6】
前記計数する処理は、
前記最適化処理を実施した際に、前記対象の問題を表す少なくともいずれかの変数の解の暫定値を候補値で更新した最後のステップまでに、前記対象の問題を表す各変数の解の暫定値と候補値との各評価値の差分が、前記第2閾値以上になった累計の回数を計数する、ことを特徴とする請求項1または2に記載の評価プログラム。
【請求項7】
前記計数する処理は、
前記最適化処理の各ステップにおいて、前記対象の問題を表す変数の解の暫定値と候補値との各評価値の差分が、前記第2閾値以上になる都度、カウンタの値をインクリメントし、前記対象の問題を表す変数の解の暫定値を候補値で更新すると、前記カウンタの値を出力し、前記最適化処理を実施した後、最後に出力した前記カウンタの値を、前記回数に設定する、ことを特徴とする請求項6に記載の評価プログラム。
【請求項8】
対象の問題を表す変数の解の候補値を探索する探索工程と、当該変数の解の暫定値と候補値との各評価値の差分が第1閾値以下であれば、当該変数の解の暫定値を候補値で更新し、当該差分が前記第1閾値以下でなければ、乱数を用いて確率的に、当該変数の解の暫定値を候補値で更新する更新工程とを、前記対象の問題を表す各変数に対して行うステップを繰り返す最適化処理を実施し、
前記最適化処理を実施した際に、前記対象の問題を表す少なくともいずれかの変数の解の暫定値を候補値で更新した最後のステップまでに、前記対象の問題を表す変数の解の暫定値と候補値との各評価値の差分が、前記乱数の生成用の整数値の解像度に対応する第2閾値以上になった回数を計数し、
前記最適化処理を実施した後、計数した前記回数に基づいて、前記対象の問題に対する前記最適化処理の適正度合いを評価する、
処理をコンピュータが実行することを特徴とする評価方法。
【請求項9】
対象の問題を表す変数の解の候補値を探索する探索工程と、当該変数の解の暫定値と候補値との各評価値の差分が第1閾値以下であれば、当該変数の解の暫定値を候補値で更新し、当該差分が前記第1閾値以下でなければ、乱数を用いて確率的に、当該変数の解の暫定値を候補値で更新する更新工程とを、前記対象の問題を表す各変数に対して行うステップを繰り返す最適化処理を実施し、
前記最適化処理を実施した際に、前記対象の問題を表す少なくともいずれかの変数の解の暫定値を候補値で更新した最後のステップまでに、前記対象の問題を表す変数の解の暫定値と候補値との各評価値の差分が、前記乱数の生成用の整数値の解像度に対応する第2閾値以上になった回数を計数し、
前記最適化処理を実施した後、計数した前記回数に基づいて、前記対象の問題に対する前記最適化処理の適正度合いを評価する、
制御部を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、評価支援プログラム、評価支援方法、および情報処理装置に関する。
【背景技術】
【0002】
従来、対象の問題を表す変数ごとの解の候補値を決定し、当該変数の解の暫定値と候補値との各評価値の差分に基づいて、当該変数の解の暫定値を候補値で更新するか否かを制御するステップを繰り返す最適化処理がある。この最適化処理は、例えば、SA(Simulated Annealing)法と呼ばれる。評価値は、例えば、エネルギーと呼ばれる。SA法は、例えば、ある変数の解の暫定値と候補値との各評価値の差分が0以下であれば、当該変数の解の暫定値を候補値で更新し、差分が0以下でなければ、乱数を用いて、当該変数の解の暫定値を候補値で確率的に更新する。
【0003】
先行技術としては、例えば、組み合わせ最適化問題を変換したイジングモデルについての基底状態の探索を行うことにより、組み合わせ最適化問題の仮最適解を算出するものがある。また、例えば、組み合わせ最適化問題が最小化問題である場合、組み合わせ最適化問題から生成された緩和問題を求解することにより、最小化問題における最小化対象の下界を算出する技術がある。また、例えば、ノイズのような摂動を利用して、量子アニーリングの速度および精度を改善する技術がある。また、例えば、組み合わせ最適化問題を解くための量子コンピューティングの技術がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2020-194273号公報
【特許文献2】国際公開第2022/003943号
【特許文献3】米国特許出願公開第2019-0102353号明細書
【特許文献4】米国特許出願公開第2020-0090071号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、対象の問題に対するSA法の適正度合いを評価することが難しい。例えば、評価者は、対象の問題が有する性質を詳しく知らなければ、対象の問題にSA法を適用することが好ましいのか否かを判断することができない。
【0006】
1つの側面では、本発明は、対象の問題に対するSA法の適正度合いを評価し易くすることを目的とする。
【課題を解決するための手段】
【0007】
1つの実施態様によれば、対象の問題を表す変数の解の候補値を探索する探索工程と、当該変数の解の暫定値と候補値との各評価値の差分が第1閾値以下であれば、当該変数の解の暫定値を候補値で更新し、当該差分が前記第1閾値以下でなければ、乱数を用いて確率的に、当該変数の解の暫定値を候補値で更新する更新工程とを、前記対象の問題を表す各変数に対して行うステップを繰り返す最適化処理を実施し、前記最適化処理を実施した際に、前記対象の問題を表す少なくともいずれかの変数の解の暫定値を候補値で更新した最後のステップまでに、前記対象の問題を表す変数の解の暫定値と候補値との各評価値の差分が、前記乱数の生成用の整数値の解像度に対応する第2閾値以上になった回数を計数し、前記最適化処理を実施した後、計数した前記回数に基づいて、前記対象の問題に対する前記最適化処理の適正度合いを評価する評価支援プログラム、評価支援方法、および情報処理装置が提案される。
【発明の効果】
【0008】
一態様によれば、対象の問題に対するSA法の適正度合いを評価し易くすることが可能になる。
【図面の簡単な説明】
【0009】
図1図1は、実施の形態にかかる評価支援方法の一実施例を示す説明図である。
図2図2は、情報処理装置100のハードウェア構成例を示すブロック図である。
図3図3は、情報処理装置100の機能的構成例を示すブロック図である。
図4図4は、最大カット問題に対するSA法の適正度合いを評価する一例を示す説明図である。
図5図5は、巡回セールスマン問題に対するSA法の適正度合いを評価する一例を示す説明図である。
図6図6は、SA法の求解精度と差分評価スキップ回数との関係性の一例を示す説明図である。
図7図7は、求解処理手順の一例を示すフローチャートである。
図8図8は、評価処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下に、図面を参照して、本発明にかかる評価支援プログラム、評価支援方法、および情報処理装置の実施の形態を詳細に説明する。
【0011】
(実施の形態にかかる評価支援方法の一実施例)
図1は、実施の形態にかかる評価支援方法の一実施例を示す説明図である。情報処理装置100は、対象の問題に対するSA法の適正度合いを評価し易くするためのコンピュータである。情報処理装置100は、例えば、サーバ、または、PC(Personal Computer)などである。
【0012】
対象の問題は、最適化問題である。対象の問題は、例えば、複数の変数を用いて表される。対象の問題は、例えば、グラフをどのように分割するのかを決定する最大カット問題、または、移動コストが最小になる巡回経路を探索する巡回セールスマン問題などである。対象の問題は、例えば、SA法の他、最適性が保証された厳密解を求めるための厳密ソルバ、または、対象の問題専用に開発された専用ソルバなどを用いて解くことができる。
【0013】
SA法は、例えば、他の最適化手法に比べて高速に、対象の問題を解くことができるという性質を有する。他の最適化手法は、例えば、厳密ソルバまたは専用ソルバなどを用いる最適化手法である。SA法は、例えば、対象の問題の規模が増大しても、計算時間が膨大になり難いという性質を有する。
【0014】
しかしながら、対象の問題に対するSA法の適正度合いを評価することが難しい。適正度合いは、例えば、SA法が対象の問題を解く精度のよさを表す。例えば、SA法を用いて、対象の問題を解いた場合に、対象の問題を表す各変数の解を、どの程度精度よく求めることができるのかを適切に評価することが難しい。対象の問題を表す変数は、例えば、対象の問題に対応する目的関数を表す変数である。
【0015】
具体的には、対象の問題が属する分野の専門家が、経験則に従って、対象の問題にSA法を適用することが好ましいのか否かを判断し、対象の問題に対するSA法の適正度合いを評価することが考えられる。しかしながら、評価者が、専門家ではなく、対象の問題が有する性質を詳しく知らなければ、対象の問題にSA法を適用することが好ましいのか否かを判断し、対象の問題に対するSA法の適正度合いを評価することはできない。
【0016】
また、具体的には、厳密ソルバを用いて、対象の問題を実際に解いた場合と、SA法を用いて、対象の問題を実際に解いた場合とを比較することにより、対象の問題に対するSA法の適正度合いを評価する手法が考えられる。この手法では、対象の問題が大規模化し、厳密ソルバを用いて対象の問題を解くことが困難な状況においては、対象の問題に対するSA法の適正度合いを評価することができなくなる。また、この手法では、厳密ソルバを用いて対象の問題を解くため、対象の問題に対するSA法の適正度合いを評価する際にかかる処理負担および処理時間の増大化を招くことがある。
【0017】
また、具体的には、対象の問題に対応する目的関数の値を網羅的に算出し、目的関数の値の分布に基づいて、対象の問題に対するSA法の適正度合いを評価する手法が考えられる。より具体的には、目的関数の値が連続的に分布すれば、対象の問題に対するSA法の適正度合いが高いと評価し、目的関数の値が離散的に分布すれば、対象の問題に対するSA法の適正度合いが低いと評価することが考えられる。この手法では、対象の問題に対応する目的関数の値を網羅的に算出するため、対象の問題に対するSA法の適正度合いを評価する際にかかる処理負担および処理時間の増大化を招くことがある。
【0018】
そこで、本実施の形態では、対象の問題に対するSA法の適正度合いを評価し易くすることができる評価支援方法について説明する。
【0019】
図1において、(1-1)情報処理装置100は、対象の問題に対して所定の最適化処理110を実施する。所定の最適化処理110は、例えば、探索工程121と、更新工程122とを、対象の問題を表す各変数に対して行うステップ120を繰り返すことにより、各変数の解を求める手法である。探索工程121は、対象の問題を表す変数の解の候補値を探索する工程である。探索工程121は、具体的には、ランダムな値を、対象の問題を表す変数の解の候補値として設定する。
【0020】
更新工程122は、例えば、対象の問題を表す変数の解の暫定値を候補値で更新する工程である。更新工程122は、具体的には、対象の問題を表す変数の解の暫定値と候補値との各評価値の差分が第1閾値以下であれば、当該変数の解の暫定値を候補値で更新する。第1閾値は、例えば、予め利用者によって設定される。第1閾値は、具体的には、0である。評価値は、例えば、イジングモデルと呼ばれるエネルギー関数によって表されるエネルギーである。
【0021】
更新工程122は、具体的には、対象の問題を表す変数の解の暫定値と候補値との各評価値の差分が第1閾値以下でなければ、乱数を用いて確率的に、当該変数の解の暫定値を候補値で更新する工程である。乱数は、例えば、当該乱数の生成用の整数値に基づいて生成される。整数値は、例えば、予め設定される。
【0022】
更新工程122は、より具体的には、対象の問題を表す変数の解の暫定値と候補値との各評価値の差分が第1閾値以下でなければ、繰り返した過去のステップ120の数が多いほど値が大きくなるパラメータを取得する。更新工程122は、より具体的には、対象の問題を表す変数の解の暫定値と候補値との各評価値の差分に、取得したパラメータを乗算して得た値を、当該差分の評価値に設定する。
【0023】
更新工程122は、より具体的には、対象の問題を表す変数の解の暫定値と候補値との各評価値の差分の評価値が、乱数以上であれば、当該変数の解の暫定値を候補値で更新する。更新工程122は、より具体的には、対象の問題を表す変数の解の暫定値と候補値との各評価値の差分の評価値が、乱数以上でなければ、当該変数の解の暫定値を候補値で更新せずに済ませる。所定の最適化処理110は、具体的には、SA法である。
【0024】
(1-2)情報処理装置100は、所定の最適化処理110を実施した際に、対象の問題を表す変数の解の暫定値と候補値との各評価値の差分が、第2閾値以上になった回数を計数する。第2閾値は、可変である。第2閾値は、例えば、乱数の生成用の整数値の解像度に対応する閾値である。解像度は、例えば、整数値で表現可能な自然対数の逆数の最大指数を表す。第2閾値は、例えば、繰り返した過去のステップ120の数に基づいて設定される。第2閾値は、具体的には、繰り返した過去のステップ120の数が多いほど値が大きくなるパラメータで、解像度を除算して得た値が設定される。情報処理装置100は、例えば、対象の問題を表す少なくともいずれかの変数の解の暫定値を候補値で更新した最後のステップ120までに、対象の問題を表す変数の解の暫定値と候補値との各評価値の差分が、第2閾値以上になった回数を計数する。
【0025】
情報処理装置100は、具体的には、カウンタを用意する。カウンタは、例えば、初期値0に設定される。情報処理装置100は、具体的には、所定の最適化処理110の各ステップ120において、対象の問題を表す変数の解の暫定値と候補値との各評価値の差分が、第2閾値以上になる都度、カウンタの値をインクリメントする。情報処理装置100は、具体的には、所定の最適化処理110の各ステップ120において、対象の問題を表す変数の解の暫定値を候補値で更新すると、カウンタの値を出力する。情報処理装置100は、具体的には、所定の最適化処理110を実施した後、最後に出力したカウンタの値を、対象の問題を表す変数の解の暫定値と候補値との各評価値の差分が、第2閾値以上になった回数に設定することにより、当該回数を計数する。これにより、情報処理装置100は、対象の問題に対する所定の最適化処理110の適正度合いを評価する指針となる情報を得ることができる。
【0026】
(1-3)情報処理装置100は、所定の最適化処理110を実施した後、計数した回数に基づいて、対象の問題に対する所定の最適化処理110の適正度合いを評価する。情報処理装置100は、例えば、計数した回数が第3閾値以下であれば、対象の問題に対して所定の最適化処理110の適正がないと評価し、計数した回数が第3閾値以下でなければ、対象の問題に対して所定の最適化処理110の適正があると評価する。第3閾値は、例えば、予め利用者によって設定される。第3閾値は、例えば、0である。
【0027】
これにより、情報処理装置100は、対象の問題に対する所定の最適化処理110の適正度合いを評価し易くすることができる。情報処理装置100は、例えば、対象の問題に対するSA法の適正度合いを評価し易くすることができる。情報処理装置100は、例えば、対象の問題に対するSA法の適正度合いを評価する際にかかる処理負担および処理時間の増大化を抑制することができる。
【0028】
情報処理装置100は、具体的には、利用者が、専門家ではなく、対象の問題が有する性質を詳しく知らなくても、対象の問題に対するSA法の適正度合いを評価可能にすることができる。また、情報処理装置100は、具体的には、対象の問題に対するSA法の適正度合いを評価する際にかかる処理負担および処理時間の増大化を抑制することができ、対象の問題に対するSA法の適正度合いを評価し易くすることができる。情報処理装置100は、より具体的には、対象の問題が大規模化した場合であっても、対象の問題に対するSA法の適正度合いを評価し易くすることができる。
【0029】
ここでは、情報処理装置100が、単独で動作する場合について説明したが、これに限らない。例えば、情報処理装置100が、他のコンピュータと協働する場合があってもよい。例えば、複数のコンピュータが協働して、情報処理装置100としての機能を実現する場合があってもよい。具体的には、クラウド上に情報処理装置100としての機能が実現される場合があってもよい。
【0030】
ここでは、情報処理装置100が、所定の最適化処理110の各ステップ120において、対象の問題を表すいずれかの変数に対して、更新工程122をスキップせずに行う場合について説明したが、これに限らない。例えば、情報処理装置100が、所定の最適化処理110のあるステップ120において、対象の問題を表すいずれかの変数に対して、更新工程122を行わずにスキップする場合があってもよい。
【0031】
具体的には、情報処理装置100は、所定の最適化処理110のステップ120において、対象の問題を表す変数の解の暫定値と候補値との各評価値の差分が、第2閾値以上である場合には、当該変数に対して、更新工程122を行わずにスキップしてもよい。これにより、情報処理装置100は、所定の最適化処理110にかかる処理負担および処理時間の低減化を図ることができる。
【0032】
(情報処理装置100の適用例)
次に、情報処理装置100の適用例について説明する。情報処理装置100は、例えば、配送業に対して適用することができる。情報処理装置100は、具体的には、配送トラックが拠点から各配送先を巡回する巡回経路を探索する配送計画問題に対するSA法の適正度合いを評価することができる。従って、情報処理装置100は、例えば、配送計画問題に対するSA法の適正度合いがあると判定すれば、配送業の作業者が、SA法で求めた巡回経路の精度が比較的高いことを把握可能にすることができる。このため、情報処理装置100は、例えば、配送業の作業者が、心理的に、SA法で求めた巡回経路を受け入れ易くすることができる。また、情報処理装置100は、例えば、配送計画問題に対するSA法の適正度合いがないと判定すれば、配送業の作業者が、SA法以外で、配送計画問題を解くことが好ましいことを把握可能にすることができる。
【0033】
また、情報処理装置100は、例えば、配送計画問題に対するSA法の適正度合いを評価した結果に基づいて、SA法以外で、配送計画問題を解くようにしてもよい。情報処理装置100は、具体的には、配送計画問題に対するSA法の適正度合いがないと判定した場合に、厳密ソルバまたは専用ソルバを用いて、配送計画問題を解くようにしてもよい。これにより、情報処理装置100は、配送業の作業者が、比較的精度が高い巡回経路を参照可能にすることができる。
【0034】
また、情報処理装置100は、例えば、教育分野に対して適用することができる。情報処理装置100は、具体的には、授業の時間割を探索する組み合わせ最適化問題に対するSA法の適正度合いを評価することができる。従って、情報処理装置100は、例えば、授業の時間割を探索する組み合わせ最適化問題に対するSA法の適正度合いがあると判定すれば、教員が、SA法で求めた授業の時間割の精度が比較的高いことを把握可能にすることができる。このため、情報処理装置100は、例えば、教員が、心理的に、SA法で求めた授業の時間割を受け入れ易くすることができる。情報処理装置100は、例えば、授業の時間割を探索する組み合わせ最適化問題に対するSA法の適正度合いがないと判定すれば、教員が、SA法以外で、授業の時間割を探索する組み合わせ最適化問題を解くことが好ましいことを把握可能にすることができる。
【0035】
また、情報処理装置100は、例えば、授業の時間割を探索する組み合わせ最適化問題に対するSA法の適正度合いを評価した結果に基づいて、SA法以外で、当該組み合わせ最適化問題を解くようにしてもよい。情報処理装置100は、具体的には、授業の時間割を探索する組み合わせ最適化問題に対するSA法の適正度合いがないと判定した場合に、厳密ソルバまたは専用ソルバを用いて、当該組み合わせ最適化問題を解くようにしてもよい。これにより、情報処理装置100は、教員が、比較的精度が高い授業の時間割を参照可能にすることができる。
【0036】
(情報処理装置100のハードウェア構成例)
次に、図2を用いて、情報処理装置100のハードウェア構成例について説明する。
【0037】
図2は、情報処理装置100のハードウェア構成例を示すブロック図である。図3において、情報処理装置100は、CPU(Central Processing Unit)201と、メモリ202と、ネットワークI/F(Interface)203と、記録媒体I/F204と、記録媒体205とを有する。また、情報処理装置100は、ディスプレイ206と、入力装置207とを有する。また、各構成部は、バス200によってそれぞれ接続される。
【0038】
ここで、CPU201は、情報処理装置100の全体の制御を司る。メモリ202は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU201のワークエリアとして使用される。メモリ202に記憶されるプログラムは、CPU201にロードされることにより、コーディングされている処理をCPU201に実行させる。
【0039】
ネットワークI/F203は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F203は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F203は、例えば、モデムやLAN(Local Area Network)アダプタなどである。
【0040】
記録媒体I/F204は、CPU201の制御に従って記録媒体205に対するデータのリード/ライトを制御する。記録媒体I/F204は、例えば、ディスクドライブ、SSD(Solid State Drive)、USB(Universal Serial Bus)ポートなどである。記録媒体205は、記録媒体I/F204の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体205は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体205は、情報処理装置100から着脱可能であってもよい。
【0041】
ディスプレイ206は、カーソル、アイコン、ツールボックス、文書、画像、または、機能情報などのデータを表示する。ディスプレイ206は、例えば、CRT(Cathode Ray Tube)、液晶ディスプレイ、または、有機EL(Electroluminescence)ディスプレイなどである。入力装置207は、文字、数字、または、各種指示などの入力のためのキーを有し、データの入力を行う。入力装置207は、例えば、キーボード、または、マウスなどである。入力装置207は、例えば、タッチパネル式の入力パッド、または、テンキーなどであってもよい。
【0042】
情報処理装置100は、上述した構成部の他、例えば、プリンタ、スキャナ、マイク、または、スピーカーなどを有してもよい。また、情報処理装置100は、例えば、記録媒体I/F204および記録媒体205を複数有していてもよい。また、情報処理装置100は、例えば、ディスプレイ206、または、入力装置207などを有していなくてもよい。また、情報処理装置100は、例えば、記録媒体I/F204および記録媒体205を有していなくてもよい。
【0043】
(情報処理装置100の機能的構成例)
次に、図3を用いて、情報処理装置100の機能的構成例について説明する。
【0044】
図3は、情報処理装置100の機能的構成例を示すブロック図である。情報処理装置100は、記憶部300と、取得部301と、実施部302と、計数部303と、評価部304と、出力部305とを含む。
【0045】
記憶部300は、例えば、図3に示したメモリ202や記録媒体205などの記憶領域によって実現される。以下では、記憶部300が、情報処理装置100に含まれる場合について説明するが、これに限らない。例えば、記憶部300が、情報処理装置100とは異なる装置に含まれ、記憶部300の記憶内容が情報処理装置100から参照可能である場合があってもよい。
【0046】
取得部301~出力部305は、制御部の一例として機能する。取得部301~出力部305は、具体的には、例えば、図3に示したメモリ202や記録媒体205などの記憶領域に記憶されたプログラムをCPU201に実行させることにより、または、ネットワークI/F203により、その機能を実現する。各機能部の処理結果は、例えば、図3に示したメモリ202や記録媒体205などの記憶領域に記憶される。
【0047】
記憶部300は、各機能部の処理において参照され、または更新される各種情報を記憶する。記憶部300は、例えば、対象の最適化問題に関する情報を記憶する。記憶部300は、具体的には、対象の最適化問題を表す1以上の変数を記憶する。記憶部300は、具体的には、対象の最適化問題を表す変数の解の暫定値または候補値の各評価値を算出可能にする数式を記憶する。変数の解の暫定値または候補値の各評価値は、例えば、エネルギーとも呼ばれる。
【0048】
記憶部300は、例えば、所定の最適化処理を実施する際に用いられる情報を記憶する。所定の最適化処理は、例えば、探索工程と、更新工程とを、対象の問題を表す各変数に対して行うステップを繰り返すことにより、各変数の解の組み合わせを求める手法である。探索工程は、対象の問題を表す変数の解の候補値を探索する工程である。探索工程は、具体的には、ランダムな値を、対象の問題を表す変数の解の候補値として設定する。
【0049】
更新工程は、例えば、対象の問題を表す変数の解の暫定値を候補値で更新する工程である。更新工程は、具体的には、対象の問題を表す変数の解の暫定値と候補値との各評価値の差分が第1閾値以下であれば、当該変数の解の暫定値を候補値で更新する。
【0050】
第1閾値は、対象の問題を表す変数の解の暫定値と候補値との各評価値の差分と比較する閾値である。第1閾値は、対象の問題を表す変数の解の暫定値を候補値で更新するか否かを判定するための閾値である。第1閾値は、例えば、予め、情報処理装置100の利用者などによって設定される。第1閾値は、例えば、0である。利用者は、例えば、所定の最適化処理を実施することを望む作業者、または、情報処理装置100を管理する管理者などである。
【0051】
更新工程は、具体的には、対象の問題を表す変数の解の暫定値と候補値との各評価値の差分が第1閾値以下でなければ、乱数を用いて確率的に、当該変数の解の暫定値を候補値で更新する工程である。乱数は、確率的に、対象の問題を表す変数の解の暫定値を候補値で更新するか否かを制御するために用いられる。乱数は、例えば、当該乱数の生成用の整数値に基づいて生成される。整数値は、例えば、予め、情報処理装置100の利用者などによって設定される。
【0052】
所定の最適化処理は、具体的には、SA法に対応する。以下の説明では、所定の最適化手法の複数のステップのうち、対象の問題を表す少なくともいずれかの変数の解の暫定値を候補値で更新したステップを「更新ステップ」と表記する場合がある。
【0053】
記憶部300は、具体的には、乱数の生成用の整数値を記憶する。
【0054】
記憶部300は、具体的には、繰り返した過去のステップの数が多いほど値が大きくなるパラメータを記憶する。パラメータは、例えば、乱数と共に、確率的に、対象の問題を表す変数の解の暫定値を候補値で更新するか否かを制御するために用いられる。パラメータは、具体的には、初期値1であり、繰り返した過去のステップの数が一定数増える都度、2倍ずつ増加する値である。パラメータは、例えば、予め、情報処理装置100の利用者などによって設定される。
【0055】
記憶部300は、具体的には、第1閾値を記憶する。
【0056】
記憶部300は、具体的には、第2閾値を記憶する。第2閾値は、対象の問題を表す変数の解の暫定値と候補値との各評価値の差分と比較する閾値である。第2閾値は、可変である。第2閾値は、例えば、乱数の生成用の整数値の解像度に対応する閾値である。解像度は、例えば、乱数の生成用の整数値で表現可能な自然対数の逆数の最大指数を表す。第2閾値は、例えば、繰り返した過去のステップの数に基づいて設定される。第2閾値は、具体的には、繰り返した過去のステップの数が多いほど値が大きくなるパラメータに基づいて設定される。第2閾値は、より具体的には、繰り返した過去のステップの数が多いほど値が大きくなるパラメータで、乱数の生成用の整数値の解像度を除算して得た値が設定される。
【0057】
記憶部300は、具体的には、対象の問題を表す変数の解の暫定値と候補値との各評価値の差分の評価値を算出可能にする数式を記憶する。
【0058】
記憶部300は、例えば、カウンタを記憶する。カウンタは、例えば、対象の問題を表す変数の解の暫定値と候補値との各評価値の差分が、第2閾値以上になった回数を計数するための情報である。カウンタは、具体的には、対象の問題を表す少なくともいずれかの変数の解の暫定値を候補値で更新した最後のステップまでに、対象の問題を表す変数の解の暫定値と候補値との各評価値の差分が、第2閾値以上になった回数を表すよう更新される。
【0059】
記憶部300は、例えば、第3閾値を記憶する。第3閾値は、例えば、対象の問題に対する所定の最適化処理の適正度合いを評価する際に用いられる閾値である。第3閾値は、例えば、対象の問題を表す変数の解の暫定値と候補値との各評価値の差分が、第2閾値以上になった回数と比較する閾値である。第3閾値は、例えば、0である。第3閾値は、例えば、予め、情報処理装置100の利用者などによって設定される。
【0060】
取得部301は、各機能部の処理に用いられる各種情報を取得する。取得部301は、取得した各種情報を、記憶部300に記憶し、または、各機能部に出力する。また、取得部301は、記憶部300に記憶しておいた各種情報を、各機能部に出力してもよい。取得部301は、例えば、利用者の操作入力に基づき、各種情報を取得する。取得部301は、例えば、情報処理装置100とは異なる装置から、各種情報を受信してもよい。
【0061】
取得部301は、例えば、対象の最適化問題に関する情報を取得し、記憶部300に記憶してもよい。対象の最適化問題に関する情報は、例えば、対象の最適化問題を表す1以上の変数を含む。対象の最適化問題に関する情報は、例えば、対象の最適化問題を表す変数の解の暫定値または候補値の各評価値を算出可能にする数式を含む。
【0062】
取得部301は、具体的には、利用者の操作入力に基づき、対象の最適化問題に関する情報の入力を受け付けることにより、対象の最適化問題に関する情報を取得する。取得部301は、具体的には、対象の最適化問題に関する情報の入力を、他のコンピュータから受信することにより取得してもよい。
【0063】
取得部301は、例えば、対象の最適化問題に対する所定の最適化処理の適正度合いを評価することを要求する評価依頼を取得してもよい。評価依頼が、対象の最適化問題に関する情報を含む場合があってもよい。取得部301は、具体的には、利用者の操作入力に基づき、評価依頼の入力を受け付けることにより、評価依頼を取得する。取得部301は、具体的には、評価依頼を、他のコンピュータから受信することにより取得してもよい。
【0064】
取得部301は、例えば、乱数の生成用の整数値を取得し、記憶部300に記憶してもよい。取得部301は、具体的には、利用者の操作入力に基づき、乱数の生成用の整数値の入力を受け付けることにより、乱数の生成用の整数値を取得する。取得部301は、具体的には、乱数の生成用の整数値を、他のコンピュータから受信することにより取得してもよい。
【0065】
取得部301は、例えば、繰り返した過去のステップの数が多いほど値が大きくなるパラメータを取得し、記憶部300に記憶してもよい。取得部301は、具体的には、利用者の操作入力に基づき、パラメータの入力を受け付けることにより、パラメータを取得する。取得部301は、具体的には、パラメータを、他のコンピュータから受信することにより取得してもよい。
【0066】
取得部301は、例えば、第1閾値を取得し、記憶部300に記憶してもよい。取得部301は、具体的には、利用者の操作入力に基づき、第1閾値の入力を受け付けることにより、第1閾値を取得する。取得部301は、具体的には、第1閾値を、他のコンピュータから受信することにより取得してもよい。
【0067】
取得部301は、例えば、対象の問題を表す変数の解の暫定値と候補値との各評価値の差分の評価値を算出可能にする数式を取得し、記憶部300に記憶してもよい。取得部301は、具体的には、利用者の操作入力に基づき、対象の問題を表す変数の解の暫定値と候補値との各評価値の差分の評価値を算出可能にする数式の入力を受け付けることにより、当該数式を取得する。取得部301は、具体的には、対象の問題を表す変数の解の暫定値と候補値との各評価値の差分の評価値を算出可能にする数式を、他のコンピュータから受信することにより取得してもよい。
【0068】
取得部301は、例えば、第3閾値を取得し、記憶部300に記憶してもよい。取得部301は、具体的には、利用者の操作入力に基づき、第3閾値の入力を受け付けることにより、第3閾値を取得する。取得部301は、具体的には、第3閾値を、他のコンピュータから受信することにより取得してもよい。
【0069】
取得部301は、いずれかの機能部の処理を開始する開始トリガーを受け付けてもよい。開始トリガーは、例えば、利用者による所定の操作入力があったことである。開始トリガーは、例えば、他のコンピュータから、所定の情報を受信したことであってもよい。開始トリガーは、例えば、いずれかの機能部が所定の情報を出力したことであってもよい。取得部301は、評価依頼を取得したことを、実施部302と、計数部303と、評価部304との処理を開始する開始トリガーとして受け付けてもよい。
【0070】
実施部302は、所定の最適化処理を実施する。実施部302は、例えば、探索工程と、更新工程とを、対象の問題を表す各変数に対して行うステップを繰り返すことにより、所定の最適化処理を実施する。実施部302は、例えば、あるステップにおいて、対象の問題を表す各変数に対して探索工程を行う。実施部302は、具体的には、あるステップにおいて、ランダムな値を生成し、対象の問題を表すいずれかの変数の解の候補値として設定する。これにより、実施部302は、対象の問題を表す変数の解の候補値として、様々な値を試すことができる。
【0071】
実施部302は、例えば、あるステップにおいて、対象の問題を表す各変数に対して更新工程を行う。実施部302は、具体的には、あるステップにおいて、対象の問題を表すいずれかの変数の解の暫定値と候補値との各評価値の差分が第1閾値以下であるか否かを判定する。実施部302は、具体的には、対象の問題を表すいずれかの変数の解の暫定値と候補値との各評価値の差分が第1閾値以下であれば、当該変数の解の暫定値を候補値で更新する。これにより、実施部302は、対象の問題を表すいずれかの変数の解の暫定値を、全体最適解の値または局所最適解の値に近付くよう更新することができる。
【0072】
実施部302は、具体的には、対象の問題を表すいずれかの変数について、当該変数の解の暫定値と候補値との各評価値の差分が第1閾値以下でなければ、繰り返した過去のステップの数が多いほど値が大きくなるパラメータを取得する。実施部302は、具体的には、対象の問題を表す当該いずれかの変数について、当該変数の解の暫定値と候補値との各評価値の差分に、取得したパラメータを乗算して得た値を、当該差分の評価値に設定する。
【0073】
実施部302は、具体的には、対象の問題を表すいずれかの変数について、設定した当該変数の解の暫定値と候補値との各評価値の差分の評価値が、乱数以上であるか否かを判定する。実施部302は、具体的には、対象の問題を表すいずれかの変数について、当該変数の解の暫定値と候補値との各評価値の差分の評価値が、乱数以上であると判定した場合、当該変数の解の暫定値を候補値で更新する。
【0074】
実施部302は、具体的には、対象の問題を表すいずれかの変数について、当該変数の解の暫定値と候補値との各評価値の差分の評価値が、乱数以上ではないと判定した場合、当該変数の解の暫定値を候補値で更新せずに済ませる。これにより、実施部302は、乱数を用いて確率的に、対象の問題を表すいずれかの変数の解の暫定値を候補値で更新することができる。このため、実施部302は、対象の問題を表すいずれかの変数の解の暫定値を、局所最適解の近傍から脱出させ、全体最適解に近付け易くすることができる。
【0075】
実施部302は、あるステップにおいて、対象の問題を表すいずれかの変数に対して、更新工程を行わずにスキップしてもよい。実施部302は、例えば、第2閾値を取得する。実施部302は、具体的には、あるステップにおいて、繰り返した過去のステップの数が多いほど値が大きくなるパラメータで、乱数の生成用の整数値の解像度を除算して得た値を、第2閾値に設定する。
【0076】
実施部302は、例えば、あるステップにおいて、対象の問題を表すいずれかの変数の解の暫定値と候補値との各評価値の差分が、第2閾値以上であるか否かを判定する。実施部302は、例えば、あるステップにおいて、対象の問題を表すいずれかの変数の解の暫定値と候補値との各評価値の差分が、第2閾値以上である場合には、当該変数に対して、更新工程を行わずにスキップする。
【0077】
実施部302は、例えば、あるステップにおいて、対象の問題を表すいずれかの変数の解の暫定値と候補値との各評価値の差分が、第2閾値以上ではない場合には、当該変数に対して、更新工程を行う。これにより、実施部302は、対象の問題を表すいずれかの変数の解の暫定値と候補値との各評価値の差分と、第2閾値とを比較した結果に基づいて、更新工程を行わなくてもよいか否かを適切に判定することができる。実施部302は、更新工程を行わずにスキップし、所定の最適化処理にかかる処理負担および処理時間の低減化を図ることができる。
【0078】
計数部303は、所定の最適化処理を実施した際に、対象の問題を表す変数の解の暫定値と候補値との各評価値の差分が、第2閾値以上になった回数を計数する。計数部303は、例えば、対象の問題を表す少なくともいずれかの変数の解の暫定値を候補値で更新した最後の更新ステップまでに、対象の問題を表す変数の解の暫定値と候補値との各評価値の差分が、第2閾値以上になった回数を計数する。
【0079】
最後の更新ステップは、例えば、所定の最適化処理の開始から終了までの複数のステップに含まれる、対象の問題を表す少なくともいずれかの変数の解の暫定値を候補値で更新した1以上の更新ステップのうち、末尾の更新ステップである。
【0080】
計数部303は、具体的には、最後の更新ステップまでに、対象の問題を表す各変数の解の暫定値と候補値との各評価値の差分が、第2閾値以上になった累計の回数を計数する。
【0081】
計数部303は、より具体的には、各ステップにおいて、対象の問題を表す変数の解の暫定値と候補値との各評価値の差分が、第2閾値以上になる都度、カウンタの値をインクリメントする。計数部303は、より具体的には、各ステップにおいて、対象の問題を表す変数の解の暫定値を候補値で更新すると、カウンタの値を出力する。
【0082】
計数部303は、より具体的には、所定の最適化処理を実施した後、最後に出力したカウンタの値を特定し、最後の更新ステップまでに、対象の問題を表す各変数の解の暫定値と候補値との各評価値の差分が、第2閾値以上になった累計の回数に設定する。これにより、計数部303は、対象の問題に対する所定の最適化処理の適正度合いを評価する指針となる情報を得ることができる。
【0083】
計数部303は、具体的には、最後の更新ステップまでに、対象の問題を表す少なくともいずれかの変数の解の暫定値と候補値との各評価値の差分が、第2閾値以上になったステップの数を、回数として計数してもよい。これにより、計数部303は、対象の問題に対する所定の最適化処理の適正度合いを評価する指針となる情報を得ることができる。
【0084】
評価部304は、所定の最適化処理を実施した後、計数した回数に基づいて、対象の問題に対する所定の最適化処理の適正度合いを評価する。評価部304は、例えば、計数した回数が、第3閾値以下であれば、対象の問題に対する所定の最適化処理の適正がないと評価する。評価部304は、例えば、計数した回数が、第3閾値以下でなければ、対象の問題に対する所定の最適化処理の適正があると評価する。これにより、評価部304は、対象の問題に対する所定の最適化処理の適正度合いを精度よく評価することができる。評価部304は、対象の問題に対する所定の最適化処理の適正度合いを評価する評価者にかかる作業負担の低減化を図ることができる。評価者は、例えば、利用者である。
【0085】
出力部305は、少なくともいずれかの機能部の処理結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークI/F203による外部装置への送信、または、メモリ202や記録媒体205などの記憶領域への記憶である。これにより、出力部305は、少なくともいずれかの機能部の処理結果を利用者に通知可能にし、情報処理装置100の利便性の向上を図ることができる。
【0086】
出力部305は、対象の問題に対する所定の最適化処理の適正度合いを評価部304で評価した結果を出力する。出力部305は、例えば、対象の問題に対する所定の最適化処理の適正度合いを評価部304で評価した結果を、利用者が参照可能にディスプレイ206に表示する。出力部305は、例えば、対象の問題に対する所定の最適化処理の適正度合いを評価部304で評価した結果を、他のコンピュータに送信してもよい。これにより、出力部305は、対象の問題に対する所定の最適化処理の適正度合いを評価部304で評価した結果を、利用者が把握可能にすることができる。
【0087】
(情報処理装置100の動作の一例)
次に、情報処理装置100の動作の一例について説明する。情報処理装置100は、対象の問題に対するSA法の適正度合いを評価するにあたって、実際に、対象の問題に対してSA法を1回実施する。SA法は、他の最適化手法に比べて短い所要時間で実行可能である。
【0088】
情報処理装置100は、例えば、パラメータβを記憶する。パラメータβは、繰り返した過去のステップの数に応じて可変の値である。パラメータβは、例えば、初期値1である。パラメータβは、例えば、2の乗数である。パラメータβは、繰り返した過去のステップの数が一定数増える都度、2倍ずつ増加する値である。パラメータβは、具体的には、対象の問題を表す変数の解の値のエネルギーに関する対数目盛に対して等間隔に配置された値[1,2,4,8,16,32,64,・・・]が、繰り返した過去のステップの数に応じて順に設定される。
【0089】
情報処理装置100は、例えば、乱数の生成用のNビット整数値を記憶する。情報処理装置100は、例えば、Nビット整数値の解像度resolutionを記憶する。解像度resolutionは、例えば、abs(log(1/2^N))である。情報処理装置100は、例えば、対象の問題を表す各変数に共通の1つのカウンタを用意する。
【0090】
(1)情報処理装置100は、例えば、対象の問題を表す変数ごとに、当該変数の解の候補値を生成し、当該変数の解の候補値のエネルギーを算出する。
【0091】
(2)情報処理装置100は、例えば、対象の問題を表す変数ごとに、今回算出したエネルギーと、当該変数の解の現在の暫定値のエネルギーとのエネルギー差分を算出する。
【0092】
(3)情報処理装置100は、例えば、解像度resolutionをパラメータβで除算した値を、閾値thresholdに設定する。情報処理装置100は、例えば、対象の問題を表す変数ごとに、算出したエネルギー差分≧設定した閾値thresholdであるか否かを判定する。
【0093】
(4)情報処理装置100は、例えば、対象の問題を表すいずれかの変数について、算出したエネルギー差分≧設定した閾値thresholdであれば、当該変数の解の暫定値を更新しなくてよいと判定し、用意したカウンタの値をインクリメントする。これにより、情報処理装置100は、下記(5)以降の処理をスキップした回数をカウントしていくことができる。以下の説明では、下記(5)以降の処理をスキップすることを「差分評価スキップ」と表記する場合がある。
【0094】
(5)情報処理装置100は、例えば、対象の問題を表すいずれかの変数について、算出したエネルギー差分≧設定した閾値thresholdでなければ、算出したエネルギー差分≦0であるか否かを判定する。
【0095】
(6)情報処理装置100は、例えば、対象の問題を表すいずれかの変数について、算出したエネルギー差分≦0であれば、当該変数の解の暫定値を、今回算出した当該変数の解の候補値で更新する。情報処理装置100は、例えば、対象の問題を表すいずれかの変数の解の暫定値を更新した場合、カウンタの値を出力する。
【0096】
(7)情報処理装置100は、例えば、対象の問題を表すいずれかの変数について、算出したエネルギー差分≦0でなければ、算出したエネルギー差分にパラメータβを乗算することにより、算出したエネルギー差分の評価値を算出する。情報処理装置100は、例えば、対象の問題を表すいずれかの変数について、整数値を用いて乱数を生成し、算出した評価値≧乱数であるか否かを判定する。
【0097】
(8)情報処理装置100は、例えば、対象の問題を表すいずれかの変数について、算出した評価値≧乱数であれば、当該変数の解の暫定値を、今回算出した当該変数の解の候補値で更新する。情報処理装置100は、例えば、対象の問題を表すいずれかの変数の解の暫定値を更新した場合、カウンタの値を出力する。
【0098】
(9)情報処理装置100は、例えば、対象の問題を表すいずれかの変数について、算出した評価値≧乱数でなければ、当該変数の解の暫定値を更新しない。
【0099】
情報処理装置100は、例えば、上記(1)~上記(9)の一例の処理を1ステップとして繰り返すことにより、SA法を実施する。情報処理装置100は、例えば、SA法を実施した後、最後に出力したカウンタの値を、「解更新中の差分評価スキップ回数」に設定する。解更新中は、SA法の最初のステップから、対象の問題を表す少なくともいずれかの変数の暫定値を候補値で更新した1以上のステップの末尾のステップまでの期間を表す。
【0100】
情報処理装置100は、例えば、設定した解更新中の差分評価スキップ回数に基づいて、対象の問題に対するSA法の適正度合いを評価する。適正度合いは、例えば、対象の問題に対するSA法の求解精度に対応する。情報処理装置100は、具体的には、設定した解更新中の差分評価スキップ回数≦0であるか否かを判定する。ここで、情報処理装置100は、具体的には、設定した解更新中の差分評価スキップ回数=0であれば、対象の問題に対するSA法の適正がないと評価し、対象の問題に対するSA法の求解精度が低精度であると評価する。
【0101】
一方で、情報処理装置100は、具体的には、設定した解更新中の差分評価スキップ回数>0であれば、対象の問題に対するSA法の適正があると評価し、対象の問題に対するSA法の求解精度が高精度であると評価する。これにより、情報処理装置100は、利用者が、対象の問題に対するSA法の適正度合いを評価し易くすることができる。情報処理装置100は、例えば、解更新中の差分評価スキップ回数に基づいて、対象の問題に対するSA法の適正度合いを評価した結果を、利用者が把握可能にすることができる。
【0102】
情報処理装置100は、例えば、SA法が、他の最適化手法に比べて短い所要時間で実行可能であるため、対象の問題に対するSA法の適正度合いを評価する際にかかる処理負担および処理時間の低減化を図ることができる。情報処理装置100は、例えば、利用者が、専門家ではなく、対象の問題が有する性質を詳しく知らなくても、対象の問題に対するSA法の適正度合いを評価可能にすることができる。また、情報処理装置100は、例えば、SA法が、対象の問題の規模が増大しても、計算時間が膨大になり難いという性質を有するため、対象の問題の規模が増大した場合であっても、対象の問題に対するSA法の適正度合いを評価し易くすることができる。
【0103】
図4図6を用いて、情報処理装置100が、具体例な問題に対するSA法の適正度合いを評価した場合について説明し、解更新中の差分評価スキップ回数が、SA法の適正度合いを評価する基準となることについて説明する。まず、具体的には、図4を用いて、情報処理装置100が、最大カット問題に対するSA法の適正度合いを評価する一例について説明する。
【0104】
図4は、最大カット問題に対するSA法の適正度合いを評価する一例を示す説明図である。図4において、情報処理装置100は、上述した通り、最大カット問題に対してSA法を実施し、最大カット問題に対するSA法の適正度合いを評価したとする。SA法の各ステップと、当該ステップにおける最大カット問題を表す第1変数に関するエネルギー差分と、当該ステップにおける閾値thresholdとの関係性を、グラフ400に示す。
【0105】
グラフ400において、閾値thresholdは、線410に示すように変化する。グラフ400において、エネルギー差分は、線420に示すように変化する。領域401は、最大カット問題を表す各変数の解の暫定値が更新されなくなる前であって、差分評価スキップが発生し得る第1ステップ範囲を示す。ステップ0から第1ステップ範囲の末尾までの区間が「解更新中」に対応する。領域402は、最大カット問題を表す各変数の解の暫定値が更新されなくなり、差分評価スキップが発生し得る第2ステップ範囲を示す。
【0106】
グラフ400の領域401に示すように、最大カット問題に対してSA法を実施した場合、解更新中において、最大カット問題を表す少なくともいずれかの変数の解の暫定値を候補値で更新する余地がまだ残っている状態で、差分評価スキップが発生する。従って、最大カット問題に対してSA法を実施した場合、差分評価スキップ回数は、1以上になると考えられる。
【0107】
次に、具体的には、図5を用いて、情報処理装置100が、巡回セールスマン問題に対するSA法の適正度合いを評価する一例について説明する。
【0108】
図5は、巡回セールスマン問題に対するSA法の適正度合いを評価する一例を示す説明図である。図5において、情報処理装置100は、上述した通り、巡回セールスマン問題に対してSA法を実施し、巡回セールスマン問題に対するSA法の適正度合いを評価したとする。SA法の各ステップと、当該ステップにおける巡回セールスマン問題を表す第1変数に関するエネルギー差分と、当該ステップにおける閾値thresholdとの関係性を、グラフ500に示す。
【0109】
グラフ500において、閾値thresholdは、線510に示すように変化する。グラフ500において、エネルギー差分は、線520に示すように変化する。領域501は、巡回セールスマン問題を表す各変数の解の暫定値が更新されなくなり、差分評価スキップが発生し得る第3ステップ範囲を示す。グラフ500において、ステップ0から第3ステップ範囲の先頭までの区間が「解更新中」に対応する。グラフ500において、巡回セールスマン問題を表す各変数の解の暫定値が更新されなくなる前であって、差分評価スキップが発生し得るステップ範囲は、存在しない。
【0110】
グラフ500に示すように、巡回セールスマン問題に対してSA法を実施した場合、解更新中において、差分評価スキップは発生しない。従って、巡回セールスマン問題に対してSA法を実施した場合、差分評価スキップ回数は、0になると考えられる。
【0111】
次に、図6を用いて、SA法の求解精度と差分評価スキップ回数との関係性の一例について説明する。具体的には、図6を用いて、異なる種類の複数の最適化問題に対して、図4および図5に示したようにSA法を実施したとして、SA法の求解精度と差分評価スキップ回数との関係性の一例を示す。
【0112】
図6は、SA法の求解精度と差分評価スキップ回数との関係性の一例を示す説明図である。図6において、グラフ600は、maxcutと、maxcliqueと、tspと、vrpとのそれぞれの問題に対して、SA法を複数回実施した場合の求解精度の統計値を、箱髭図を用いて示す。
【0113】
maxcutは、最大カット問題である。maxcliqueは、最大クリーク問題である。tspは、巡回セールスマン問題である。vrpは、配送計画問題である。求解精度は、SA法で求めた解と、厳密解との誤差[%]で表現される。
【0114】
グラフ600に示すように、maxcutに対するSA法の誤差は、0%であり、SA法の求解精度は、比較的高いと考えられる。同様に、グラフ600に示すように、maxcliqueに対するSA法の誤差は、0%であり、SA法の求解精度は、比較的高いと考えられる。
【0115】
一方で、グラフ600に示すように、tspに対するSA法の誤差は、0%より大きく、SA法の求解精度は、比較的低いと考えられる。具体的には、tspに対応する箱髭図に示すように、SA法の誤差の中央値は、箱の上下中心の線の位置に対応する値である。SA法の誤差の第1四分位数は、箱の下の線の位置に対応する値である。SA法の誤差の第3四分位数は、箱の上の線の位置に対応する値である。SA法の誤差の最大値は、箱から伸びた線分の上の線の位置に対応する値である。SA法の誤差の最小値は、箱から伸びた線分の下の線の位置に対応する値である。
【0116】
同様に、グラフ600に示すように、vrpに対するSA法の誤差は、0%より大きく、SA法の求解精度は、比較的低いと考えられる。具体的には、vrpに対応する箱髭図に示すように、SA法の誤差の中央値は、箱の上下中心の線の位置に対応する値である。SA法の誤差の第1四分位数は、箱の下の線の位置に対応する値である。SA法の誤差の第3四分位数は、箱の上の線の位置に対応する値である。SA法の誤差の最大値は、箱から伸びた線分の上の線の位置に対応する値である。SA法の誤差の最小値は、箱から伸びた線分の下の線の位置に対応する値である。
【0117】
グラフ610は、maxcutと、maxcliqueと、tspと、vrpとのそれぞれの問題に対して、SA法を複数回実施した場合の差分評価スキップ回数の統計値を、箱髭図を用いて示す。
【0118】
グラフ610に示すように、maxcutに対するSA法の差分評価スキップ回数は、0より大きい。具体的には、maxcutに対応する箱髭図に示すように、差分評価スキップ回数の中央値は、箱の上下中心の線の位置に対応する値である。差分評価スキップ回数の第1四分位数は、箱の下の線の位置に対応する値である。差分評価スキップ回数の第3四分位数は、箱の上の線の位置に対応する値である。差分評価スキップ回数の最大値は、箱から伸びた線分の上の線の位置に対応する値である。差分評価スキップ回数の最小値は、箱から伸びた線分の下の線の位置に対応する値である。
【0119】
同様に、グラフ610に示すように、maxcliqueに対するSA法の差分評価スキップ回数は、0より大きい。具体的には、maxcliqueに対応する箱髭図に示すように、差分評価スキップ回数の中央値は、箱の上下中心の線の位置に対応する値である。差分評価スキップ回数の第1四分位数は、箱の下の線の位置に対応する値である。差分評価スキップ回数の第3四分位数は、箱の上の線の位置に対応する値である。差分評価スキップ回数の最大値は、箱から伸びた線分の上の線の位置に対応する値である。差分評価スキップ回数の最小値は、箱から伸びた線分の下の線の位置に対応する値である。
【0120】
一方で、グラフ610に示すように、tspに対するSA法の差分評価スキップ回数は、0である。同様に、グラフ610に示すように、vrpに対するSA法の差分評価スキップ回数は、0である。このように、SA法の求解精度が比較的高い場合、差分評価スキップ回数は、0になる傾向があると考えられる。一方で、SA法の求解精度が比較的低い場合、差分評価スキップ回数は、0より大きくなる傾向があると考えられる。
【0121】
従って、情報処理装置100は、対象の問題に対してSA法を実施した場合における差分評価スキップ回数が0であるか、または、0より大きいかに基づいて、対象の問題に対するSA法の求解精度が高いか否かを推定可能であると考えられる。このため、情報処理装置100は、対象の問題に対してSA法を実施した場合における差分評価スキップ回数に基づいて、対象の問題に対するSA法の適正度合いを評価可能であると考えられる。
【0122】
(求解処理手順)
次に、図7を用いて、情報処理装置100が実行する、求解処理手順の一例について説明する。求解処理は、例えば、図3に示したCPU201と、メモリ202や記録媒体205などの記憶領域と、ネットワークI/F203とによって実現される。
【0123】
求解処理は、例えば、対象の問題を表す変数ごとに実行される。以下では、求解処理が、対象の問題を表す第1変数について実行された場合について説明する。
【0124】
図7は、求解処理手順の一例を示すフローチャートである。図7において、情報処理装置100は、第1変数の解の候補値を生成し、生成した第1変数の解の候補値のエネルギーを算出する(ステップS701)。そして、情報処理装置100は、今回算出した第1変数の解の候補値のエネルギーと、過去に算出した第1変数の解の現在の暫定値のエネルギーとの差分を算出する(ステップS702)。
【0125】
次に、情報処理装置100は、解像度をパラメータβで除算することにより、閾値を算出し、算出した差分≧算出した閾値であるか否かを判定する(ステップS703)。ここで、差分≧閾値である場合(ステップS703:Yes)、情報処理装置100は、ステップS704の処理に移行する。一方で、差分<閾値である場合(ステップS703:No)、情報処理装置100は、ステップS705の処理に移行する。
【0126】
ステップS704では、情報処理装置100は、カウンタの値をインクリメントする(ステップS704)。カウンタは、対象の問題を表す各変数で共通して用いられる。そして、情報処理装置100は、ステップS701の処理に戻る。
【0127】
ステップS705では、情報処理装置100は、算出した差分≦0であるか否かを判定する(ステップS705)。ここで、差分>0である場合(ステップS705:No)、情報処理装置100は、ステップS706の処理に移行する。一方で、差分≦0である場合(ステップS705:Yes)、情報処理装置100は、ステップS708の処理に移行する。
【0128】
ステップS706では、情報処理装置100は、算出した差分にパラメータβを乗算することにより、算出した差分の評価値を算出する(ステップS706)。そして、情報処理装置100は、整数値を用いて乱数を生成し、算出した評価値≧乱数であるか否かを判定する(ステップS707)。ここで、評価値<乱数である場合(ステップS707:No)、情報処理装置100は、ステップS701の処理に戻る。一方で、評価値≧乱数である場合(ステップS707:Yes)、情報処理装置100は、ステップS708の処理に移行する。
【0129】
ステップS708では、情報処理装置100は、第1変数の解の暫定値を、今回算出した第1変数の解の候補値で更新する(ステップS708)。次に、情報処理装置100は、カウンタの値を出力する(ステップS709)。そして、情報処理装置100は、ステップS701の処理に戻る。
【0130】
これにより、情報処理装置100は、対象の問題を表す第1変数の解を求めることができる。対象の問題を表す各変数に対して、求解処理のステップS701に戻る1ループを終了することが、SA法の1ステップである。情報処理装置100は、対象の問題を表す各変数に対して、求解処理のステップS701に戻る1ループを終了した後、対象の問題を表す各変数に対して、求解処理のステップS701に戻る次のループを開始する。
【0131】
(評価処理手順)
次に、図8を用いて、情報処理装置100が実行する、評価処理手順の一例について説明する。評価処理は、例えば、図3に示したCPU201と、メモリ202や記録媒体205などの記憶領域と、ネットワークI/F203とによって実現される。
【0132】
図8は、評価処理手順の一例を示すフローチャートである。図8において、情報処理装置100は、図7に示した求解処理を実行する(ステップS801)。次に、情報処理装置100は、最後に出力されたカウンタの値を特定し、特定したカウンタの値を、解更新中の差分評価スキップ回数に設定する(ステップS802)。
【0133】
そして、情報処理装置100は、設定した解更新中の差分評価スキップ回数=0であるか否かを判定する(ステップS803)。ここで、差分評価スキップ回数>0である場合(ステップS803:No)、情報処理装置100は、ステップS804の処理に移行する。一方で、差分評価スキップ回数=0である場合(ステップS803:Yes)、情報処理装置100は、ステップS805の処理に移行する。
【0134】
ステップS804では、情報処理装置100は、SA法が高精度であると評価する(ステップS804)。そして、情報処理装置100は、評価処理を終了する。
【0135】
ステップS805では、情報処理装置100は、SA法が低精度であると評価する(ステップS805)。そして、情報処理装置100は、評価処理を終了する。これにより、情報処理装置100は、対象の問題に対するSA法の適正度合いを評価し易くすることができる。
【0136】
ここで、情報処理装置100は、図7および図8の各フローチャートの一部ステップの処理の順序を入れ替えて実行してもよい。また、情報処理装置100は、図7および図8の各フローチャートの一部ステップの処理を省略してもよい。
【0137】
以上説明したように、情報処理装置100によれば、対象の問題に対して、探索工程と、更新工程とを、対象の問題を表す各変数に対して行うステップを繰り返す最適化処理を実施することができる。情報処理装置100によれば、少なくともいずれかの変数の解の暫定値を候補値で更新した最後のステップまでに、変数の解の暫定値と候補値との各評価値の差分が、乱数の生成用の整数値の解像度に対応する第2閾値以上になった回数を計数することができる。情報処理装置100によれば、計数した回数に基づいて、対象の問題に対する最適化処理の適正度合いを評価することができる。これにより、情報処理装置100は、利用者が、対象の問題に対する最適化処理の適正度合いを評価し易くすることができる。情報処理装置100は、対象の問題に対する最適化処理の適正度合いを評価する際にかかる処理負担および処理時間の低減化を図ることができる。
【0138】
情報処理装置100によれば、最適化処理のステップにおいて、対象の問題を表すいずれかの変数の解の暫定値と候補値との各評価値の差分が、第2閾値以上である場合には、当該変数に対して、更新工程を行わずにスキップすることができる。情報処理装置100によれば、第2閾値以上ではない場合には、当該変数に対して、更新工程を行うことができる。これにより、情報処理装置100は、対象の問題に対する最適化処理の適正度合いを評価する際にかかる処理負担および処理時間の低減化を図ることができる。
【0139】
情報処理装置100によれば、計数した回数が、第3閾値以下であれば、対象の問題に対する最適化処理の適正がないと評価することができる。情報処理装置100によれば、計数した回数が、第3閾値以下でなければ、対象の問題に対する最適化処理の適正があると評価することができる。これにより、情報処理装置100は、対象の問題に対する最適化処理の適正があるか否かを精度よく評価することができる。
【0140】
情報処理装置100によれば、最適化処理のステップにおいて、当該ステップまでに繰り返した過去のステップの数が多いほど値が大きくなるパラメータで、解像度を除算して得た値を、第2閾値に設定することができる。これにより、情報処理装置100は、第2閾値を適切に設定することができ、更新工程を行わずにスキップすることが好ましいか否かを精度よく判定し易くすることができる。
【0141】
情報処理装置100によれば、変数の解の暫定値と候補値との各評価値の差分が第1閾値以下でない場合、繰り返した過去のステップの数が多いほど値が大きくなるパラメータを、当該差分に乗算して得た値が、乱数以下であるか否かを判定することができる。情報処理装置100によれば、乱数以下であれば、当該変数の解の暫定値を候補値で更新することができる。情報処理装置100によれば、乱数以下でなければ、当該変数の解の暫定値を候補値で更新しないことができる。これにより、情報処理装置100は、最適化処理にかかる処理負担および処理時間の低減化を図ることができる。
【0142】
情報処理装置100によれば、少なくともいずれかの変数の解の暫定値を候補値で更新した最後のステップまでに、各変数の解の暫定値と候補値との各評価値の差分が、第2閾値以上になった累計の回数を計数することができる。これにより、情報処理装置100は、変数単位の回数を利用することができる。
【0143】
情報処理装置100によれば、最適化処理の各ステップにおいて、対象の問題を表す変数の解の暫定値と候補値との各評価値の差分が、第2閾値以上になる都度、カウンタの値をインクリメントことができる。情報処理装置100によれば、対象の問題を表す変数の解の暫定値を候補値で更新すると、カウンタの値を出力することができる。情報処理装置100によれば、最適化処理を実施した後、最後に出力したカウンタの値を、回数に設定することができる。これにより、情報処理装置100は、最適化処理に沿って回数を適切に計数することができる。
【0144】
情報処理装置100によれば、少なくともいずれかの変数の解の暫定値を候補値で更新した最後のステップまでに、少なくともいずれかの変数の解の暫定値と候補値との各評価値の差分が、第2閾値以上になったステップの数を、回数として計数することができる。これにより、情報処理装置100は、ステップ単位の回数を利用することができる。
【0145】
情報処理装置100によれば、第1閾値に、0を採用することができる。これにより、情報処理装置100は、経験則に従って、第1閾値に、適切な値を設定し易くすることができ、変数の解の暫定値を候補値で更新することが好ましいか否かを精度よく判定し易くすることができる。
【0146】
情報処理装置100によれば、第3閾値に、0を採用することができる。これにより、情報処理装置100は、経験則に従って、第3閾値に、適切な値を設定し易くすることができ、対象の問題に対する最適化処理の適正度合いを精度よく評価し易くすることができる。
【0147】
なお、本実施の形態で説明した評価支援方法は、予め用意されたプログラムをPCやワークステーションなどのコンピュータで実行することにより実現することができる。本実施の形態で説明した評価支援プログラムは、コンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。記録媒体は、ハードディスク、フレキシブルディスク、CD(Compact Disc)-ROM、MO(Magneto Optical disc)、DVD(Digital Versatile Disc)などである。また、本実施の形態で説明した評価支援プログラムは、インターネットなどのネットワークを介して配布してもよい。
【0148】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0149】
(付記1)対象の問題を表す変数の解の候補値を探索する探索工程と、当該変数の解の暫定値と候補値との各評価値の差分が第1閾値以下であれば、当該変数の解の暫定値を候補値で更新し、当該差分が前記第1閾値以下でなければ、乱数を用いて確率的に、当該変数の解の暫定値を候補値で更新する更新工程とを、前記対象の問題を表す各変数に対して行うステップを繰り返す最適化処理を実施し、
前記最適化処理を実施した際に、前記対象の問題を表す少なくともいずれかの変数の解の暫定値を候補値で更新した最後のステップまでに、前記対象の問題を表す変数の解の暫定値と候補値との各評価値の差分が、前記乱数の生成用の整数値の解像度に対応する第2閾値以上になった回数を計数し、
前記最適化処理を実施した後、計数した前記回数に基づいて、前記対象の問題に対する前記最適化処理の適正度合いを評価する、
処理をコンピュータに実行させることを特徴とする評価プログラム。
【0150】
(付記2)前記実施する処理は、
前記最適化処理のステップにおいて、前記対象の問題を表すいずれかの変数の解の暫定値と候補値との各評価値の差分が、前記第2閾値以上である場合には、当該変数に対して、前記更新工程を行わずにスキップし、前記第2閾値以上ではない場合には、当該変数に対して、前記更新工程を行う、ことを特徴とする付記1に記載の評価プログラム。
【0151】
(付記3)前記評価する処理は、
計数した前記回数が、第3閾値以下であれば、前記対象の問題に対する前記最適化処理の適正がないと評価し、計数した前記回数が、前記第3閾値以下でなければ、前記対象の問題に対する前記最適化処理の適正があると評価する、ことを特徴とする付記1または2に記載の評価プログラム。
【0152】
(付記4)前記実施する処理は、
前記最適化処理のステップにおいて、当該ステップまでに繰り返した過去のステップの数が多いほど値が大きくなるパラメータで、前記解像度を除算して得た値を、前記第2閾値に設定する、ことを特徴とする付記1または2に記載の評価プログラム。
【0153】
(付記5)前記更新工程は、前記対象の問題を表す変数の解の暫定値と候補値との各評価値の差分が前記第1閾値以下でない場合、繰り返した過去のステップの数が多いほど値が大きくなるパラメータを、当該差分に乗算して得た値が、前記乱数以下であるか否かを判定し、前記乱数以下であれば、当該変数の解の暫定値を候補値で更新し、前記乱数以下でなければ、当該変数の解の暫定値を候補値で更新しない、ことを特徴とする付記1または2に記載の評価プログラム。
【0154】
(付記6)前記計数する処理は、
前記最適化処理を実施した際に、前記対象の問題を表す少なくともいずれかの変数の解の暫定値を候補値で更新した最後のステップまでに、前記対象の問題を表す各変数の解の暫定値と候補値との各評価値の差分が、前記第2閾値以上になった累計の回数を計数する、ことを特徴とする付記1または2に記載の評価プログラム。
【0155】
(付記7)前記計数する処理は、
前記最適化処理の各ステップにおいて、前記対象の問題を表す変数の解の暫定値と候補値との各評価値の差分が、前記第2閾値以上になる都度、カウンタの値をインクリメントし、前記対象の問題を表す変数の解の暫定値を候補値で更新すると、前記カウンタの値を出力し、前記最適化処理を実施した後、最後に出力した前記カウンタの値を、前記回数に設定する、ことを特徴とする付記6に記載の評価プログラム。
【0156】
(付記8)前記計数する処理は、
前記最適化処理を実施した際に、前記対象の問題を表す少なくともいずれかの変数の解の暫定値を候補値で更新した最後のステップまでに、前記対象の問題を表す少なくともいずれかの変数の解の暫定値と候補値との各評価値の差分が、前記第2閾値以上になったステップの数を、前記回数として計数する、ことを特徴とする付記1または2に記載の評価プログラム。
【0157】
(付記9)前記第1閾値は、0である、ことを特徴とする付記1に記載の評価プログラム。
【0158】
(付記10)前記第3閾値は、0である、ことを特徴とする付記3に記載の評価プログラム。
【0159】
(付記11)対象の問題を表す変数の解の候補値を探索する探索工程と、当該変数の解の暫定値と候補値との各評価値の差分が第1閾値以下であれば、当該変数の解の暫定値を候補値で更新し、当該差分が前記第1閾値以下でなければ、乱数を用いて確率的に、当該変数の解の暫定値を候補値で更新する更新工程とを、前記対象の問題を表す各変数に対して行うステップを繰り返す最適化処理を実施し、
前記最適化処理を実施した際に、前記対象の問題を表す少なくともいずれかの変数の解の暫定値を候補値で更新した最後のステップまでに、前記対象の問題を表す変数の解の暫定値と候補値との各評価値の差分が、前記乱数の生成用の整数値の解像度に対応する第2閾値以上になった回数を計数し、
前記最適化処理を実施した後、計数した前記回数に基づいて、前記対象の問題に対する前記最適化処理の適正度合いを評価する、
処理をコンピュータが実行することを特徴とする評価方法。
【0160】
(付記12)対象の問題を表す変数の解の候補値を探索する探索工程と、当該変数の解の暫定値と候補値との各評価値の差分が第1閾値以下であれば、当該変数の解の暫定値を候補値で更新し、当該差分が前記第1閾値以下でなければ、乱数を用いて確率的に、当該変数の解の暫定値を候補値で更新する更新工程とを、前記対象の問題を表す各変数に対して行うステップを繰り返す最適化処理を実施し、
前記最適化処理を実施した際に、前記対象の問題を表す少なくともいずれかの変数の解の暫定値を候補値で更新した最後のステップまでに、前記対象の問題を表す変数の解の暫定値と候補値との各評価値の差分が、前記乱数の生成用の整数値の解像度に対応する第2閾値以上になった回数を計数し、
前記最適化処理を実施した後、計数した前記回数に基づいて、前記対象の問題に対する前記最適化処理の適正度合いを評価する、
制御部を有することを特徴とする情報処理装置。
【符号の説明】
【0161】
100 情報処理装置
110 最適化処理
120 ステップ
121 探索工程
122 更新工程
200 バス
201 CPU
202 メモリ
203 ネットワークI/F
204 記録媒体I/F
205 記録媒体
206 ディスプレイ
210 ネットワーク
300 記憶部
301 取得部
302 実施部
303 計数部
304 評価部
305 出力部
400,500,600,610 グラフ
401,402,501 領域
410,420,510,520 線
図1
図2
図3
図4
図5
図6
図7
図8