【文献】
Joelle Pineau et al.,Point-based value iteration: An anytime algorithm for POMDPs,International Joint Conference on Artificial Intelligence (IJCAI),2003年,pp.1025-1032,URL,http://www.ri.cmu.edu/pub_files/pub4/pineau_joelle_2003_3/pineau_joelle_2003_3.pdf
(58)【調査した分野】(Int.Cl.,DB名)
観測可能な可視状態、及び、観測不能な隠れ状態を備える遷移モデルであって、入力に応じて現在の可視状態から次の可視状態へと遷移する遷移モデルについて、基準時点以降の累積期待利得の算出に用いる利得ベクトルの集合を可視状態毎に生成する、コンピュータにより実行される生成方法であって、
隠れ状態毎に累積利得の成分を含む利得ベクトルのうち利得ベクトルの集合に含めるベクトルを選択するために用いる選択用の前記隠れ状態の確率分布を設定する設定段階と、
選択用の前記確率分布について前記累積期待利得の最大値を与える利得ベクトルを優先して前記利得ベクトルの集合に含める選択段階と、
を備える生成方法。
前記設定段階は、選択用の前記確率分布に、長さが隠れ状態の数となり、各隠れ状態について当該隠れ状態に対応する成分を1としたベクトルを、選択用の前記確率分布として設定する段階を含む、
請求項2に記載の生成方法。
前記設定段階は、前記生成段階において生成した前記利得ベクトルの集合の中から前記累積期待利得の最大値を返す前記利得ベクトルに対応する入力が選択された場合に、選択された前記入力に応じて更新される隠れ状態の確率分布を選択用の前記確率分布として設定する段階を含む、
請求項2又は3に記載の生成方法。
観測可能な可視状態、及び、観測不能な隠れ状態を備える遷移モデルであって、入力に応じて現在の可視状態から次の可視状態へと遷移する遷移モデルについて、基準時点以降の累積期待利得の算出に用いる利得ベクトルの集合を可視状態毎に生成する生成装置であって、
隠れ状態毎に累積利得の成分を含む利得ベクトルのうち利得ベクトルの集合に含めるベクトルを選択するために用いる選択用の前記隠れ状態の確率分布を設定する設定部と、
選択用の前記確率分布について前記累積期待利得の最大値を与える利得ベクトルを優先して前記利得ベクトルの集合に含める選択部と、
を備える生成装置。
コンピュータを、観測可能な可視状態、及び、観測不能な隠れ状態を備える遷移モデルであって、入力に応じて現在の可視状態から次の可視状態へと遷移する遷移モデルについて、基準時点以降の累積期待利得の算出に用いる利得ベクトルの集合を可視状態毎に生成する生成装置として機能させるプログラムであって、実行されると当該コンピュータを、
隠れ状態毎に累積利得の成分を含む利得ベクトルのうち利得ベクトルの集合に含めるベクトルを選択するために用いる選択用の前記隠れ状態の確率分布を設定する設定部と、
選択用の前記確率分布について前記累積期待利得の最大値を与える利得ベクトルを優先して前記利得ベクトルの集合に含める選択部として機能させる、
プログラム。
【発明を実施するための形態】
【0008】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0009】
図1は、本実施形態の情報処理システムを示す。本実施形態の情報処理システムは、観測可能な可視状態、及び、観測不能な隠れ状態を備える遷移モデルであって、入力及び/又は隠れ状態に応じて現在の可視状態から次の可視状態へと遷移する遷移モデルを定式化した利得ベクトルの集合を生成し、利得ベクトルの集合に基づいて最適な入力を選択する。
【0010】
例えば、消費者が特定の商品(例えば、家電製品)のテレビCMを視聴した後の状態か、及び、消費者が特定の商品に興味を持った状態かは観測不能な隠れ状態となるが、消費者が特定の商品のWeb広告を閲覧した状態であるかはクッキー等により観測可能な可視状態である。
【0011】
本実施形態の情報処理システムは、このような遷移モデルを定式化し、消費者から得られる期待利得(例えば、売り上げ)を最大化するための入力(例えば、テレビCM、ダイレクトメール、及び、Eメール等)を選択する。本実施形態の情報処理システムは、利得ベクトルの集合を生成する生成装置10と、利得ベクトルの集合に従って最適な入力を選択する選択装置20を有する。
【0012】
生成装置10は、学習用データに基づいて基準時点以降で予め定められた将来の時点までの各時点の期待利得を累積した累積期待利得の成分を隠れ成分毎に含み、累積期待利得の算出に用いることができる利得ベクトルの集合を可視状態毎に生成する。生成装置10は、一例として、コンピュータ上でソフトウェアを実行することにより実現される。生成装置10は、入力部110、算出部120、初期化部130、及び、生成部140を備える。
【0013】
入力部110は、外部のデータベース1000等の記憶装置又は生成装置10の内部から利得ベクトルの集合を生成するための学習用データを入力する。入力部110は、学習用データを算出部120に提供する。学習用データは、例えば、消費者の購買履歴及び行動履歴等であってよい。
【0014】
算出部120は、学習用データから各可視状態からの遷移確率を表す状態遷移確率、及び、各可視状態において入力に応じて期待される利得である期待利得を算出する。算出部120は、状態遷移確率、及び、期待利得を生成部140に供給する。
【0015】
初期化部130は、選択関数に用いられる可視状態毎の利得ベクトルの集合を、遷移モデルが対象とする期間全体において算出するのに先立って、予め定められた将来の時点(例えば、期間の最後の時点)における利得ベクトルの集合を初期化する。例えば、初期化部130は、将来のある時点における可視状態毎の利得ベクトルの集合をゼロベクトルの集合とすることにより初期化する。初期化部130は、初期化された利得ベクトルの集合を生成部140に提供する。
【0016】
生成部140は、状態遷移確率及び期待利得に基づいて、基準時点以降の累積期待利得の算出に用いられる少なくとも1つの利得ベクトルを有し、累積期待利得の最大値を与える利得ベクトルが選択されるべき利得ベクトルの集合を、将来の時点から遡って再帰的に生成する。また、生成部140は、生成した利得ベクトルの集合から基準時点における累積期待利得が最大となる利得ベクトルが選択される選択関数を生成してよい。生成部140による利得ベクトルの集合等の詳細な生成方法については追って説明する。
【0017】
また、生成部140は、利得ベクトルの集合を生成するときに入力と利得ベクトルとの対応付けを含む入力対応情報を生成する。生成部140は、生成した利得ベクトルの集合、状態遷移確率、及び、入力対応情報を選択装置20に供給してよい。生成部140は、利得ベクトルの集合に代えて選択関数を選択装置20に供給してもよい。
【0018】
選択装置20は、観測可能な可視状態、及び、観測不能な隠れ状態を備える遷移モデルであって、入力及び/又は隠れ状態に応じて現在の可視状態から次の可視状態へと遷移する遷移モデルにおいて、利得ベクトルの集合に基づいて最適な入力を選択する。例えば、選択装置は、利得を最大化させる施策を最適な入力として選択する。選択装置20は、一例として、コンピュータ上でソフトウェアを実行することにより実現される。選択装置20は、取得部210、利得選択部220、入力選択部230、及び、遷移部240を有する。
【0019】
取得部210は、基準時点以降の累積期待利得の算出に用いる利得ベクトルの集合を取得する。例えば、取得部210は、生成装置10が生成した利得ベクトルの集合を取得してよい。
【0020】
また、取得部210は、状態遷移確率、及び、入力対応情報を生成装置10から取得してよい。取得部210は、取得した利得ベクトルの集合及び入力対応情報を利得選択部220に供給する。また、取得部210は、状態遷移確率を遷移部240に供給する。
【0021】
利得選択部220は、利得ベクトルの集合に基づいて、現在の可視状態に応じた利得ベクトルの中から、現時点における隠れ状態の確率分布に対し累積期待利得を最大化する利得ベクトルを選択する。例えば、利得選択部220は、利得ベクトルの集合から一の利得ベクトルを選択する選択関数を生成し、当該選択関数に基づいて累積期待利得を最大化する利得ベクトルを選択する。利得選択部220は、選択した利得ベクトル及び入力対応情報を入力選択部230に供給する。
【0022】
入力選択部230は、入力対応情報に基づき、利得選択部220が選択した利得ベクトルに対応する入力を最適な入力として選択する。入力選択部230は、例えば、累積期待利得を最大化する施策を最適な入力として選択する。入力選択部230は、選択した入力を遷移部240に供給する。
【0023】
遷移部240は、入力選択部230に選択された入力に対応する状態遷移確率、及び、現在の隠れ状態の確率分布に基づき、可視状態を確率的に遷移させる。また、遷移部240は、選択された入力に応じて、隠れ状態の確率分布を更新する。遷移部240は、更新した可視状態及び隠れ状態の確率分布を利得選択部220に供給し、再度、利得選択部220に可視状態及び隠れ状態の確率分布に基づき利得ベクトルを選択させる。
【0024】
このように、本実施形態の情報処理システムによると、観測可能な可視状態が遷移する遷移モデルに再帰的手法を適用することにより、生成装置10が利得ベクトルの集合を高速に生成することができる。また、選択装置20は、生成装置10が生成した利得ベクトルの集合に基づいて最適な入力を選択することができる。
【0025】
図2は、本実施形態に係る遷移モデルの可視状態s及び隠れ状態bの一例を示す。図示するように、本実施形態の情報処理システムは、観測可能な可視状態s1、s2、s3…及び観測不可能な隠れ状態b1、b2、b3…を有する。本実施形態において、可視状態、及び、隠れ状態は、図示するようにそれぞれ独立して与えられる。
【0026】
すなわち、本実施形態において、可視状態のいずれか(例えば、可視状態s2)と隠れ状態のいずれか(例えば、隠れ状態b2)が同時に与えられる。例えば、ウェブベースの販売サイトにおいて、顧客との間の商取引により得られる累積期待利得を最大化するマーケティング施策を出力するアプリケーションを本実施形態の情報処理システムに適用する場合、顧客に対して行ったマーケティング施策及び顧客の反応は外部から観測できる可視状態であり、隠れ状態は顧客の嗜好等の外部から直接観測できない状態であってよい。
【0027】
そして、本実施形態の情報処理システムは、期間中に可視状態は遷移し得るが(例えば、可視状態s2→s1又はs3等)、隠れ状態間では遷移しない(例えば、隠れ状態b2のまま遷移しない)遷移モデルを扱う。
【0028】
なお、隠れ状態は観測不可能なので、実際には図示するように一の隠れ状態b2を特定することはできず、それぞれの隠れ状態iにある確率を表す確率分布b{b(i)|i=1,...,|B|}のみが算出される。可視状態の状態遷移の結果、どの隠れ状態にあるかの確からしさが間接的に判明していく場合があり、確率分布bは遷移し得る。例えば、隠れ状態b2において可視状態s2→s1に遷移する確率が非常に高い場合、時点tから時点t+1において可視状態s2→s1が観測されたことに応じて、時点t+1における確率分布bにおいて隠れ状態b2を与える確率が高くなる。
【0029】
図3は、本実施形態の生成装置10の処理フローを示す。本実施形態において、生成装置10は、S110〜S160の処理を実行することにより、利得ベクトルの集合を生成する。
【0030】
まず、S110において、入力部110は、外部又は生成装置10内部のデータベース1000から学習用データを取得する。例えば、入力部110は、可視状態、入力の内容、及び、観測結果等が予め時系列で定義されたデータを学習用データとして入力してよい。
【0031】
これに代えて、入力部110は、可視状態が定義されていないデータを学習用データとして取得してもよい。一例として、入力部110は、まず、複数の消費者に対して提供された広告等の施策、及び、消費者の商品購入等の行動履歴等を取得してよい。次に、入力部110は、行動履歴等から状態ベクトルの時系列を生成し、状態ベクトルを離散化することで可視状態を定義してもよい。
【0032】
また、入力部110は、学習用データとして、隠れ状態の推測に利用できるデータを取得してよい。例えば、入力部110は、学習用データとして消費者の嗜好等が記載されたアンケート結果を取得してよい。入力部110は、アンケート結果等から特徴ベクトルを生成し、特徴ベクトルを離散化することで隠れ状態を定義してもよい。入力部110は、学習用データを算出部120に提供する。
【0033】
S120において、算出部120は、学習用データから状態遷移確率及び期待利得を算出する。例えば、算出部120は、学習用データから互いに遷移可能な1以上の可視状態s(s∈S)、及び、互いに遷移しない1以上の隠れ状態i(i∈B)を定義し、可視状態s、隠れ状態iにおいて入力aを実行したときに可視状態sから可視状態tに遷移し、zが観測される状態遷移確率P
as,i;t,zと、可視状態s及び隠れ状態iにおいて入力aを実行したときの期待利得q
as(i)を算出する。算出部120は、Q学習などの強化学習法により状態遷移確率P
as,i;t,z及び期待利得q
as(i)を算出してよい。算出部120は、算出した状態遷移確率P
as,i;t,z及び期待利得q
as(i)を生成部140に供給する。
【0034】
次に、S130において、初期化部130は、遷移モデルにおける将来の時点N(Nは2以上の整数)における可視状態sについての利得ベクトルα
s,Nの集合Λ
N(s)を初期化する。例えば、初期化部130は、α
s,Nの集合Λ
N(s)を長さが隠れ状態の数|B|と同じ数のゼロベクトルだけからなる集合{(0,...,0)}として集合Λ
N(s)を初期化する。また、初期化部130は、n=N−1としてnを初期化する。初期化部130は、初期化された集合Λ
N(s)等を生成部140に提供する。
【0035】
次に、S140において、生成部140は、1≦n≦N−1となるnについて利得ベクトルα
s,nの集合Λ
n(s)を集合Λ
n+1(s)から生成する。生成部140が生成する利得ベクトルα
s,nの集合Λ
n(s)は、隠れ状態i毎に累積期待利得の成分α
s,n(i)を有する利得ベクトルα
s,nを少なくとも1つ含む。
【0036】
図4は、本実施形態における生成部140による集合Λ
n(s)の生成方法の一例を示す。生成部140は、時点nにおける可視状態s(s∈S、Sは可視状態の集合)についての利得ベクトルα
s,nの集合Λ
n(s)を、次の時点n+1における各可視状態s'(s'∈S)についての利得ベクトルα
s',n+1の集合Λ
n+1(s')に基づいて再帰的に生成する。
【0037】
例えば、図示するように可視状態s1が可視状態s1、s2及びs3を含む場合、生成部140は、時点n+1の利得ベクトルの集合Λ
n+1(1)、Λ
n+1(2)、及び、Λ
n+1(3)から時点nの利得ベクトルの集合Λ
n(1)を生成してよい。生成部140は、利得ベクトルの集合を、入力に応じて一の可視状態sから時点n+1の可視状態s'に遷移する状態遷移確率、及び、可視状態s'において入力に応じて得られる期待利得に基づいて生成する。この具体的な生成方法は後述する。
【0038】
ここで、生成部140は、生成した利得ベクトルα
s,nの集合Λ
n(s)に基づいて、可視状態s及び隠れ状態の確率分布bに応じて基準時点n以降の累積期待利得が最大となる利得ベクトルを選択する選択関数Kmax
n(s,b)を生成してよい。例えば、生成部140は、確率分布bにおける各隠れ状態iを取る確率に利得ベクトルの各成分を乗じた合計値に基づく累積期待利得が最大となる利得ベクトルを選択する選択関数を生成する。
【0039】
一例として、生成部140は、数式(1)に示す選択関数Kmax
n(s,b)を生成する。なお、b(i)は隠れ状態の確率分布における隠れ状態iを取る確率を示し、α
s,nk(i)は、時点nにおける可視状態sに対応するk番目の利得ベクトルα
s,nkの隠れ状態iに対応する成分を示す。また、生成部140は、選択関数Kmax
n(s,b)を生成する過程において、入力と利得ベクトルとの対応付けを含む入力対応情報を生成する。
【数1】
…数式(1)
【0040】
次に、S150において、生成部140は、nから1を減じて処理をS160に進める。
【0041】
次に、S160において、生成部140は、n=0となるか否かを判断する。n=0となる場合、生成部140は処理を終了し、そうでない場合は処理をS140に戻す。これにより、生成部140は、nがNから0になるまで利得ベクトルの集合Λ
n(s)、及び/又は、選択関数Kmax
n(s,b)を再帰的に生成する。
【0042】
このように生成装置10は、学習用データからまず状態遷移確率P
as,i;t,z、及び、期待利得q
as(i)を算出し、これらに基づいて利得ベクトルの集合Λ
n+1(s)からΛ
n(s)を再帰的に算出する。生成装置10は、隠れ状態bが遷移しないモデルにおける利得ベクトルの集合Λ
n(s)を生成するので処理をより高速化することができる。
【0043】
なお、遷移しない隠れ状態bは、環境中において短時間で変化しにくい特性と考えることができる。例えば、生成装置10は、通常観測することが難しくかつ長期間変化しない消費者個人の好み(例えば、食事、又は、趣味等の好み)をモデルに組み入れた上で、最適施策を選択するための利得ベクトルの集合を生成することができる。
【0044】
また、生成装置10は、複数のセンサを備える自律行動するロボットに用いることができる。例えば、生成装置10は、複数のセンサのうち一部のセンサが故障した状態を遷移しない隠れ状態に当てはめることができる。例えば、生成装置10は、故障したセンサが検出する事項を隠れた状態とおくことにより、故障したセンサを考慮した上で最適施策を選択するための利得ベクトルの集合を提供することができる。
【0045】
また、生成装置10は、音声認識装置に用いた会話生成装置に適用することができる。例えば、生成装置10は、完全に聞き取れなかった会話の内容を隠れ状態と考えることができる。これにより、生成装置10は、人の会話等を完全に聞き取れなかった場合においても、最適施策(例えば、人に対する会話の回答)を選択するための利得ベクトルの集合を提供することができる。
【0046】
図5は、
図3における処理フローの具体的アルゴリズムの一例を示す。ここでは、
図5を例にS140の処理のアルゴリズムを説明する。
【0047】
まず、1行目に示すように、生成部140は、時点n+1、状態t(t∈S)における利得ベクトルの集合Λ
n+1,tを取得する。なお、集合Λ
x(y)を集合Λ
x,y又は集合Λ
(y,x)と記載する場合がある。
【0048】
次に、2行目に示すように、生成部140は、時点nにおける全入力に対応する利得ベクトルの集合Λ
*s,nを空集合とすることにより初期化する。
【0049】
次に、3行目に示すように、生成部140は、各々の入力a(a∈A、Aは入力の集合)に対して、3〜14行目で定義する第1ループ処理を実行する。
【0050】
4行目に示すように、生成部140は、第1ループ処理内で入力aに対応づけられた利得ベクトルの集合Λ
as,nを空集合とすることにより初期化する。
【0051】
次に、5行目に示すように、生成部140は、第1ループ処理内で各々の可視状態t(t∈S)及び観測z(z∈Z、Zは観測の集合)の組み合わせに対して、5〜12行目で定義する第2ループ処理を実行する。
【0052】
6行目に示すように、生成部140は、第2ループ処理内で、ベクトル集合Φを空集合とすることにより初期化する。
【0053】
次に、7行目に示すように、生成部140は、第2ループ処理内で各々の利得ベクトルα(α∈Λ
*s,n+1)に対して、7〜9行目で定義する第3ループ処理を実行する。
【0054】
8行目に示すように、生成部140は、第3ループ処理内でベクトル集合Φを更新する。具体的には、生成部140は、従前のベクトル集合Φと時点n+1における利得ベクトルαに基づいて生成される新しいベクトルの和集合を生成する。
【0055】
生成部140は、各々の隠れ状態iについて、期待利得q
as(i)を可視状態sの数|S|及び観測zの数|Z|で除した値と、将来の利得に対する割引率γ(0<γ<1)、状態遷移確率P
as,i;t,z、及び、利得ベクトルαの隠れ状態iの成分α(i)(すなわち、隠れ状態iに対応する累積期待利得の成分)の積の値との和を、隠れ状態iに対応する成分として有する、時刻nの新しいベクトルを生成する。
【0056】
生成部140は、γ=1とすることにより将来の利得を割り引くことなく新しいベクトルを生成してもよい。
【0057】
次に、10行目に示すように、生成部140は、第2ループ処理内で第3ループ処理の後に、更新されたベクトル集合ΦをPrune関数によって枝刈りしてよい。ここで、Prune関数は、入力されたベクトル集合に含まれるベクトルのうち、隠れ状態iの確率分布bの少なくとも一部の範囲において隠れ状態iに対応する成分が最大値を構成するベクトル以外のベクトルを入力集合から除去する。
【0058】
次に、11行目に示すように、生成部140は、第2ループ処理内で時点nの利得ベクトルの集合Λ
as,nを生成する。具体的には、生成部140は、現在の利得ベクトルの集合Λ
as,nに含まれるベクトルα、及び、ベクトル集合Φに含まれるベクトルα'の全ての組み合わせについて、ベクトルα及びベクトルα'の和から合算ベクトルを生成し、当該合算ベクトルをPrune関数により枝刈りすることにより、新しい利得ベクトルの集合Λ
as,nを生成する。これにより、生成部140は、入力aに対応する利得ベクトルの集合Λ
as,nを生成するので、入力と利得ベクトルの対応情報である入力対応情報を生成することができる。
【0059】
次に、13行目に示すように、生成部140は、第1ループ処理内で第2ループ処理の後に、利得ベクトルの集合Λ
*s,nを更新する。具体的には、生成部140は、集合Λ
*s,nと集合Λ
as,nとの和集合を取ることにより集合Λ
*s,nを更新する。
【0060】
次に、15行目に示すように、生成部140は、第1ループ処理の後に、集合Λ
*s,nを更新する。具体的には、生成部140は、Prune関数に集合Λ
*s,nを入力することにより集合Λ
*s,nを更新する。
【0061】
次に、16行目において、生成部140は、集合Λ
*s,nを時点n、状態sにおける利得ベクトルの集合して出力する。
【0062】
このように、生成装置10は、時点n+1の可視状態sにおける隠れ状態i毎の期待利得q
as(i)、時点n+1の可視状態sにおけるΛ
s,n+1、及び、割引率γに基づいて、時点nの可視状態sに対応する利得ベクトルΛ
s,nを生成する。
【0063】
また、生成装置10は、Prune関数により、各時点n及び各可視状態sにおいて、集合Λ
s,nに含まれる利得ベクトルα
s,nの集合から、隠れ状態iの確率分布の少なくとも一部の範囲において最大値を構成する利得ベクトル以外を除去することにより、集合Λ
s,nを生成する。
【0064】
図6は、利得ベクトルの集合Λ
s,nと累積期待利得の関係を示す。
図6(a)は集合Λ
s,nと累積期待利得との関係を示す。ここで利得ベクトルα
1、α
2、α
3、及びα
4を含む利得ベクトルの集合Λ
s,nを想定する。各利得ベクトルは、隠れ状態の確率分布bに応じた累積期待利得の値を算出するのに用いることができる。
図6では説明のために便宜的に、各利得ベクトルが、確率分布bではなく単一の隠れ状態iである確率b(i)の値のみに応じて累積期待利得の値を返すものとして説明する。
【0065】
例えば、隠れ状態iである確率b(i)がb
1である場合、利得ベクトルα
1はb
1の値に応じた累積期待利得r
1を返し、利得ベクトルα
2はb
1の値に応じた累積期待利得r
2を返し、利得ベクトルα
3はb
1の値に応じた累積期待利得r
3を返し、利得ベクトルα
4はb
1の値に応じた累積期待利得r
4を返す。
【0066】
図示するように、累積期待利得r
1〜r
4のうち最大値を取るのは累積期待利得r
1であるので、利得ベクトルα
1〜α
4の集合から確率b
1に応じて累積期待利得r
1に対応する利得ベクトルα
1を選択することができる。例えば、選択関数は、確率b
1が入力されたことに応じて、利得ベクトルα
1に対応する番号1を出力する。同様に、選択関数は、確率b
2に応じて累積期待利得の最大値を取る利得ベクトルα
2を出力し、b
3に応じて累積期待利得の最大値を取る利得ベクトルα
3を出力する。
【0067】
ここで、各利得ベクトルには入力が対応付けられているので、選択関数に隠れ状態の確率分布bを入力することで、最適な入力を選択することができる。例えば、選択関数が利得ベクトルα
1に対応する番号1を出力した場合、番号1に対応する入力を最適な入力して選択することができる。
【0068】
図6(b)は、最大値を取る利得ベクトルの部分を連結することにより得られる、累積期待利得の最大値を返す利得関数を示す。図示するように、複数の利得ベクトルα
1〜α
4のうち累積期待利得が最大値となる区間のみを連結すると、太線で示す下に凸が向いた区分線形凸関数となる利得関数v
n(s,b)が得られる。利得関数v
n(s,b)は、v
n(s,b)=max[Σ
ib(i)α(i)]で表される可視状態s及び隠れ状態の確率分布bに依存する関数となる。
【0069】
ここで、生成部140は、集合Λ
s,nを生成する際に、Prune関数により累積期待利得が最大値となる区間を有しない利得ベクトル(例えば、利得ベクトルα
4)を除去している。これにより、生成部140は、選択関数に用いる利得ベクトルから入力の選択に寄与しない無意味なものを排除し、計算をより効率化することができる。
【0070】
図7は、
図3における処理フローの具体的アルゴリズムの別の一例を示す。
図7は、
図5を例にS140の処理のアルゴリズムを説明する。本例のアルゴリズムは、
図5で示したものと異なり、観測z(z∈Z)を考慮せずに集合Λ
n,tを算出する。
【0071】
まず、1行目に示すように、生成部140は、各々の可視状態s(s∈S)に対して、1〜11行目で定義する第1ループ処理を実行する。
【0072】
次に、2行目に示すように、生成部140は、第1ループ処理内で全入力に対応する利得ベクトルの集合Λ
(s,n)を空集合とすることにより初期化する。
【0073】
次に、3行目に示すように、生成部140は、各々の入力a(a∈A)に対して、3〜10行目で定義する第2ループ処理を実行する。
【0074】
4行目に示すように、生成部140は、第2ループ処理内で入力aに対応づけられた利得ベクトルの集合Λ
(s,n,a)を空集合とすることにより初期化する。
【0075】
次に、5行目に示すように、生成部140は、第2ループ処理内で各々の可視状態s'(s'∈S)に対して、5〜8行目で定義する第3ループ処理を実行する。ここで、可視状態s'は時点n+1における可視状態を示す。
【0076】
6行目に示すように、生成部140は、第3ループ処理内でベクトルの集合Λ(s,n,a,s')を生成する。具体的には、生成部140は、時点n+1の集合Λ(s',n+1)に含まれる各々の利得ベクトルαについて、新しいベクトルを生成する。状態遷移確率P
as,i;s'は、可視状態s、隠れ状態iにおいて入力aを実行したときに可視状態sから可視状態s'に遷移する確率を表す。
【0077】
例えば、生成部140は、各々の隠れ状態iについて、期待利得q
as,iを可視状態sの数|S|で除した値と、状態遷移確率P
as,i;s'、及び、利得ベクトルαの隠れ状態iの成分α(i)の積の値との和を、新しいベクトルの隠れ状態iに対応する成分とすることにより利得ベクトルαから新しいベクトルを生成する。生成部140を、生成した新しいベクトルをPrune関数に入力することにより、集合Λ(s,n,a,s')を生成する。
【0078】
次に、7行目に示すように、生成部140は、第3ループ処理内で集合Λ(s,n,a)を生成する。具体的には、生成部140は、集合Λ(s,n,a)に含まれるベクトルα、及び、集合Λ(s,n,a,s')に含まれるベクトルα'の全ての組み合わせについて、ベクトルα及びベクトルα'の和から合算ベクトルを生成し、当該合算ベクトルをPrune関数に入力することにより、新しい利得ベクトルの集合Λ(s,n,a)を生成する。これにより、生成部140は、入力aと集合Λ(s,n,a)に含まれる利得ベクトルとを対応付けることができる。
【0079】
次に、9行目に示すように、生成部140は、第2ループ処理内で第3ループ処理の後に、集合Λ(s,n)を更新する。具体的には、生成部140は、集合Λ(s,n)と集合Λ(s,n,a)との和集合を取ることにより集合Λ(s,n)を更新する。
【0080】
図8は、本実施形態の選択装置20の処理フローを示す。本実施形態において、選択装置20は、S310〜S380の処理を実行することにより、最適な入力を選択する。
【0081】
まず、S310において、取得部210は、基準時点以降の累積期待利得の算出に用いる利得ベクトルの集合Λ
s,nを取得する。
【0082】
また、取得部210は、生成装置10から、隠れ状態iにおいて一の入力aをしたときに状態集合Sにおいて一の可視状態sから別の可視状態s'に遷移する状態遷移確率P
as,i,s'、及び、入力aと利得ベクトルα
s,naとの対応付けを含む入力対応情報を取得してよい。
【0083】
取得部210は、取得した利得ベクトルの集合Λ
s,n及び入力対応情報を利得選択部220に供給する。また、取得部210は、状態遷移確率P
as,i,s'を遷移部240に供給する。
【0084】
次に、S320において、取得部210は、シミュレーションの対象となる環境の初期化処理を実行する。例えば、取得部210は、可視状態、及び、隠れ状態の初期条件を設定する。
【0085】
一例として、取得部210は、生成装置10がデータベース1000から取得した学習用データにおける将来の時点における可視状態s
0、及び、隠れ状態の確率分布b
0をシミュレーションの初期条件(s
0,b
0)としてよい。また、例えば、取得部210は、環境の可視状態、及び、隠れ状態についての初期条件を直接データベース1000等から取得してもよい。
【0086】
また、取得部210は、時点nを1に設定することで初期化する。取得部210は、将来の時点Nを設定する。例えば、取得部210は、時点Nに予め定められた数を設定する。取得部210は、初期化の結果を利得選択部220に供給する。
【0087】
次に、S330において、利得選択部220は、現在の可視状態sに応じた利得ベクトルαの中から、現時点における隠れ状態の確率分布bに対し累積期待利得を最大化する利得ベクトルαを選択する。
【0088】
例えば、まず、利得選択部220は、利得ベクトルの集合Λ
s,nから数式(1)で表される隠れ状態iを取る確率b(i)、及び、時点nの可視状態sに対応するk番目の利得ベクトルα
s,nkの隠れ状態iに対応するα
s,nk(i)に基づく規定される選択関数Kmax
n(s,b)を生成する。
【数2】
…数式(1)
【0089】
次に、利得選択部220は、選択関数Kmax
n(s,b)に現在の可視状態s及び隠れ状態の確率分布bを入力して、隠れ状態の確率分布bに対応して決定される利得ベクトルα
ks,nを選択する。利得選択部220は、利得ベクトルの集合Λ
s,nの代わりに取得部210を介して取得した選択関数Kmax
n(s,b)により利得ベクトルα
ks,nを選択してもよい。利得選択部220は、選択した利得ベクトルα
ks,n及び入力対応情報を入力選択部230に供給する。
【0090】
次に、S340において、入力選択部230は、利得選択部220が選択した利得ベクトルに対応する入力を、最適な入力として選択する。例えば、入力選択部230は、入力対応情報に基づき、利得ベクトルα
ks,nと予め対応付けられた入力kを、時点nにおいて実行した場合に最大の累積期待利得を与える最適な入力kとして選択する。入力選択部230は、選択した入力kを遷移部240に供給する。
【0091】
次に、S350において、遷移部240は、入力選択部230に選択された入力kを実行したことに応じて、選択された入力に対応する状態遷移確率及び現在の隠れ状態の確率分布bに基づき、可視状態sを確率的に遷移させる。
【0092】
すなわち、遷移部240は、現在の可視状態sを状態遷移確率P
ks,i;t,zの確率でいずれか1つの可視状態t(t∈S)に遷移させる。
【0093】
次に、遷移部240は、選択された入力kに対応する状態遷移確率P
ks,i,s',z及び現在の隠れ状態の確率分布bに基づき、隠れ状態の確率分布bを更新する。例えば、遷移部240は、隠れ状態iをとる確率b(i)に数式(2)の計算結果を代入することにより隠れ状態の確率分布bを更新する。
【数3】
…数式(2)
P
as,i;s',zは隠れ状態i及び可視状態sにおいて入力aにより可視状態sから可視状態s'に遷移し、観測zが観測される状態遷移確率を示す。
【0094】
観測zを考慮しない遷移モデルの場合、遷移部240は、選択された入力kに対応する状態遷移確率P
ks,i,s'及び現在の隠れ状態の確率分布bに基づき、隠れ状態の確率分布bを更新する。例えば、遷移部240は、隠れ状態iをとる確率b(i)に数式(3)の計算結果を代入することにより隠れ状態の確率分布bを更新する。
【数4】
…数式(3)
P
as,i;s'は隠れ状態i及び可視状態sにおいて入力aにより可視状態sから可視状態s'に遷移する状態遷移確率を示す。
【0095】
次に、S370において、遷移部240は、nに1を加える。遷移部240は、処理をS380に進める。
【0096】
次に、S380において、遷移部240は、nがNを超えるか否かを判断する。n>Nとなる場合、遷移部240は処理を終了し、そうでない場合は処理をS330に戻す。
【0097】
このように、選択装置20は、生成装置10が生成した利得ベクトルの集合Λ
s,nを用いて、可視状態s及び隠れ状態の確率分布bに応じた最適な施策を選択して出力することができる。
【0098】
図9は、本実施形態の変形例に係る情報処理システムの概要を示す。本変形例では、生成装置30は、利得ベクトルの集合を生成した後、生成した利得ベクトルの一部を選択して選択装置40に供給する。
【0099】
生成装置30は、観測可能な可視状態、及び、観測不能な隠れ状態を備える遷移モデルであって、入力及び/又は隠れ状態に応じて現在の可視状態から次の可視状態へと遷移する遷移モデルについて、基準時点以降の累積期待利得の算出に用いる利得ベクトルの集合を可視状態毎に生成する。生成装置30は、入力部310、算出部320、初期化部330、生成部340、設定部350、及び、選択部360を備える。入力部310、算出部320、及び、初期化部330は、
図1で説明した生成装置10に係る入力部110、算出部120、及び、初期化部130と同様の構成であってよい。
【0100】
生成部340は、生成部140と同様に状態遷移確率及び期待利得に基づいて、基準時点以降の累積期待利得の算出に用いられる少なくとも1つの利得ベクトルを有し、累積期待利得の最大値を与える利得ベクトルが選択されるべき利得ベクトルの集合を、将来の時点から遡って再帰的に生成する。
【0101】
また、生成部340は、利得ベクトルの集合を生成するときに入力と利得ベクトルとの対応付けを含む入力対応情報を生成する。生成部340は、生成した利得ベクトルの集合、状態遷移確率、及び、入力対応情報を選択部360に供給してよい。
【0102】
設定部350は、利得ベクトルの集合に含めるベクトルを選択するために用いる選択用の隠れ状態の確率分布を設定する。設定部350は、設定した選択用の確率分布を、選択部360に供給する。
【0103】
選択部360は、設定した選択用の確率分布に基づいて、生成部340が生成した利得ベクトルの集合から少なくとも一部の利得ベクトルを選択する。例えば、選択部360は、選択用の確率分布について累積期待利得の最大値を与える利得ベクトルを優先して選択して利得ベクトルの集合に含めることにより、新しい利得ベクトルの集合を生成する。
【0104】
選択部360は、生成したある時点n+の1における新しい利得ベクトルの集合を生成部340に供給し、生成部340に前の時点nにおける利得ベクトルの集合を生成させてよい。選択部360は、最終的に選択された利得ベクトルの集合、状態遷移確率、及び、入力対応情報を選択装置40に供給する。
【0105】
選択装置40は、観測可能な可視状態、及び、観測不能な隠れ状態を備え、入力に応じて現在の可視状態から次の可視状態へと遷移する遷移モデルにおいて、利得ベクトルの集合に基づいて最適な入力を選択する。
【0106】
選択装置40は、取得部410、利得選択部420、入力選択部430、及び、遷移部440を有する。取得部410、利得選択部420、及び、入力選択部430は、
図1で説明した選択装置20に係る取得部210、利得選択部220、及び、入力選択部230と同様の構成であってよい。
【0107】
遷移部440は、選択装置20に係る遷移部240と同様に、入力選択部430に選択された入力に応じて、可視状態及び隠れ状態の確率分布を遷移させる。遷移部440は、更新した可視状態及び隠れ状態の確率分布を利得選択部420に供給し、再度、利得選択部420に可視状態及び隠れ状態の確率分布に基づき利得ベクトルを選択させる。また、遷移部440は、時刻ごとに更新される隠れ状態の確率分布の時系列を、生成装置30の設定部350に供給してよい。
【0108】
このように、本変形例の情報処理システムによると、生成装置30は、選択用の確率分布に基づき利得ベクトルが選択された利得ベクトルの集合を生成して、選択装置40に供給する。これにより選択装置40は、より少数の利得ベクトルを用いることにより、更に効率的に最適な入力を算出することができる。
【0109】
図10は、本変形例の生成装置30の処理フローの一例を示す。本変形例において、生成装置30は、S510〜S570の処理を実行することにより、利得ベクトルの集合を生成する。生成装置30は、S510〜S530の処理を、
図3に係るS110〜S130の処理と同様に実行してよい。
【0110】
S540において、設定部350は、選択装置40に供給する利得ベクトルの集合に含めるベクトルを選択するために用いる選択用の隠れ状態の確率分布を設定する。例えば、設定部350は、予め定められたベクトルの集合を選択用の隠れ状態の確率分布として設定する。
【0111】
一例として、設定部350は、選択用の確率分布に、長さが隠れ状態の数|B|となり、各隠れ状態iについて当該隠れ状態に対応する成分を予め定められた値(例えば、1)としたベクトル{e
i|i=1,...,|B|}の集合を、選択用の確率分布として設定してよい。設定部350は、設定した選択用の確率分布を、選択部360に供給する。
【0112】
次にS550において、生成部340は、S140と同様に、1≦n≦N−1となる時点nについて利得ベクトルα
s,nの集合Λ
n(s)を時点n+1についての集合Λ
n+1(s)から再帰的に生成する。生成部340は、時点nについての利得ベクトルの集合Λ
n(s)等を選択部360に供給する。
【0113】
次に、S552において、選択部360は、選択用の確率分布に基づいて利得ベクトルの集合から少なくとも一部の利得ベクトルのみを選択した利得ベクトルの集合を生成する。例えば、選択部360は、生成部340から受け取った時点nについての利得ベクトルの集合から、選択用の確率分布について累積期待利得の最大値を与える利得ベクトルを優先して選択して利得ベクトルの集合に含めることにより、時点nについて選択済みの利得ベクトルの集合を生成する。
【0114】
すなわち、選択部360は、利得ベクトルの集合から選択用の確率分布について累積期待利得の最大値を与える利得ベクトル以外の利得ベクトルを除去する。選択部360は、生成した時点nについての選択済みの利得ベクトルの集合を生成部340に供給する。なお、選択部360による利得ベクトルの選択の具体的な処理内容につては後述する。
【0115】
次に、S560において、選択部360は、nから1を減じて処理をS570に進める。
【0116】
次に、S570において、選択部360は、n=0となるか否かを判断する。n=0となる場合、選択部360は処理を終了し、そうでない場合は処理をS550に戻す。2回目以降のS550の処理において、生成部340は、選択部360が生成した選択済みの利得ベクトルの集合に基づいて、再度利得ベクトルの集合を生成し、選択部360に供給する。これにより、生成部340及び選択部360は、nがNから0になるまで利得ベクトルの集合Λ
n(s)を再帰的に生成する。
【0117】
このように本変形例の生成装置30は、生成部340が利得ベクトルの集合を生成し、選択部360が生成された利得ベクトルの一部のみを選択する。これにより、生成装置30は、最終的に生成される利得ベクトルの集合に含まれる利得ベクトルの数を低減するので、選択装置40による選択処理をより高速化することができる。
【0118】
図11は、
図10における処理フローの具体的アルゴリズムの一例を示す。ここでは、
図10のS550及びS552の処理のアルゴリズムを説明する。
【0119】
まず、1行目に示すように、生成部340は、時点n+1、状態t(t∈S)における利得ベクトルの集合Λ
t,n+1を取得し、選択部360は選択用の隠れ状態の確率分布bの集合Bを取得する。
【0120】
次に、生成部340は、各々の入力a(a∈A)、各々の可視状態t(t∈S)、及び、各々の観測z(z∈Z)に対して、2〜4行目で定義する第1ループ処理を実行する。
【0121】
3行目に示すように、生成部340は、第1ループ処理内でベクトル集合Θ
at,zを更新する。具体的には、生成部340は、隠れ状態の各成分iについて、状態遷移確率P
as,i;t、及び、時点n+1の利得ベクトルαの隠れ状態iの成分α(i)(すなわち、隠れ状態iに対応する累積期待利得の成分)を乗じることにより、時点nの利得ベクトルα
t,z(α
t,z∈Θ
at,z)を生成する。
【0122】
次に、選択部360は、各々の選択用の確率分布b(b∈B)について、5〜7行目に示す第2ループ処理を実行する。
【0123】
6行目に示すように、選択部360は、利得ベクトルの集合θ
at,zから利得ベクトルを選択してベクトル集合Ψ
bを生成する。具体的には、選択部360は、選択用の確率分布bの各々について、隠れ状態の確率分布b及び利得ベクトルα
t,zの積が最大化される利得ベクトルα
t,zをargmax関数で選択し、選択された利得ベクトルα
t,zと期待利得q
asとの和をベクトル集合Ψ
bに加える。選択部360は、隠れ状態の確率分布b及び利得ベクトルα
t,zの積に割引率γ(0<γ<1)を更に乗じてもよい。
【0124】
次に、8行目に示すように、選択部360は、ベクトル集合Ψ
bから利得ベクトルを選択して、時点nについての選択済みの利得ベクトルの集合Λ
s,nを生成する。具体的には、選択部360は、隠れ状態の確率分布b及び利得ベクトルα(α∈Ψ)の積が最大化される利得ベクトルαをargmax関数で選択し、これを選択済みの利得ベクトルの集合Λ
s,nとする。
【0125】
次に、9行目において、選択部360は、集合Λ
s,nを時点n、状態sにおける利得ベクトルの集合として出力する。
【0126】
図12は、本変形例における集合Λ
s,nと累積期待利得の関係を示す。
図12(a)は
図6(a)と同様に集合Λ
s,nと累積期待利得との関係を示す。生成部340は、利得ベクトルα
1、α
2、α
3、及びα
4を含む利得ベクトルの集合Λ
s,nを生成する。
【0127】
本変形例において、設定部350は、選択用の確率分布b
1'及びb
2'を設定する。なお、
図12では説明のため便宜的に、選択用の確率分布b
1'及びb
2'はベクトルではなく、単一の隠れ状態iに対応した値b(i)であるものとして説明する。
【0128】
例えば、選択部360は、選択用の確率分布b
1'について、利得ベクトルα
1〜α
4のうち累積期待利得の最大値を与える利得ベクトルα
1を選択済みの利得ベクトルの集合に含める。また、選択部360は、選択用の確率分布b
2'について、利得ベクトルα
1〜α
4のうち累積期待利得の最大値を与える利得ベクトルα
3を選択済みの利得ベクトルの集合に含める。このように、選択部360は、選択用の確率分布b
1'及びb
2'に基づき、生成部340が生成した利得ベクトルα
1〜α
4から利得ベクトルα
1及びα
3を含む選択済みの利得ベクトルの集合を生成する。
【0129】
図12(b)は、本変形例に係る生成装置30が生成する利得ベクトルの集合に含まれる利得ベクトルの部分を連結することにより得られる、累積期待利得の最大値を返す利得関数を示す。
【0130】
図示するように、選択済みの利得ベクトルの集合に含まれる利得ベクトルα
1及びα
3のうち累積期待利得が最大値となる区間のみを連結すると、太線で示す下に凸が向いた区分線形凸関数となる利得関数v
n(s,b)が得られる。αを選択済みの利得ベクトルの集合に含まれる利得ベクトルとしたときに、利得関数v
n(s,b)は、v
n(s,b)=max[Σ
ib(i)α(i)]で表される可視状態s及び隠れ状態の確率分布bに依存する関数となる。
【0131】
このように本変形例によると、
図6(b)に示す利得関数と比べて、利得ベクトルの数を減らすことができる。これにより、選択装置40は、選択関数による計算をより高速化及び効率化することができる。
【0132】
図13は、本実施形態の本変形例の処理フローの別の一例を示す。本変形例において、選択装置40は予め定められた期間1〜Nについて選択関数により入力を選択して、確率分布の更新を実行し、生成装置30は選択装置40から更新された確率分布を受け取り、当該確率分布を選択用の確率分布として利用して利得ベクトルの集合を更新する。
【0133】
生成装置30はS710〜S760の処理を
図10のS510〜S570の処理と同様に実行してよい。S770において、生成部340は、n=0となるか否かを判断する。n=0となる場合、生成部340は処理をS780に進め、そうでない場合は処理をS750に戻す。
【0134】
S780において、生成装置30の選択部360は、生成した選択済みの利得ベクトルの集合、入力と利得ベクトルとの対応付けを含む入力対応情報、及び、可視状態の状態遷移確率を選択装置40に供給する。
【0135】
選択装置40はS810〜S870の処理を
図8のS310〜S370の処理と同様に実行してよい。
【0136】
S880において、遷移部240は、nがNを超えるか否かを判断する。n>Nとなる場合、遷移部240は処理をS890に進め、そうでない場合は処理をS830に戻す。
【0137】
S890において、遷移部240は、選択装置40が選択関数により入力を選択して確率分布の更新を実行すること、及び、生成装置30が選択装置から更新された確率分布を受け取り当該確率分布を選択用の確率分布として利得ベクトルの集合を更新することを予め定められた回数繰り返し実行したか否かを判断する。
【0138】
予め定められた回数の繰り返しが完了した場合、遷移部240は処理を終了し、そうでない場合は処理をS900に戻す。
【0139】
S900において、遷移部440は、繰り返し実行されたS860の処理において生成された期間中の各時点における隠れ状態の確率分布の情報を生成装置30に送信する。
【0140】
次に、生成装置30の設定部350は、再びS740の処理を実行して、遷移部440が更新した各時点における確率分布を受け取り、これを選択用の確率分布として設定する。ここで、設定部350は、既に設定された選択用の確率分布に加えて/代えて、遷移部440が更新した確率分布を選択用の確率分布として設定してよい。
【0141】
このように、設定部350は、生成部340が生成した利得ベクトルの集合の中から累積期待利得の最大値を返す利得ベクトルに対応する入力が利得選択部420により選択された場合に、選択された入力に応じて遷移部440で更新される隠れ状態の確率分布を選択用の確率分布として設定することができる。
【0142】
これにより、本変形例の情報処理システムは、生成装置30による利得ベクトルの生成、及び、選択装置40による最適入力の選択の繰り返しを実行するごとに、より現実に近い隠れ状態の確率分布に基づいて、利得ベクトルの集合に含める利得ベクトルを選択することができるので、選択装置40は最適入力の選択をより正確かつ高速に実行することができる。
【0143】
図14は、生成装置10、選択装置20、生成装置30、及び/又は、選択装置40として機能するコンピュータ1900のハードウェア構成の一例を示す。本実施形態に係るコンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィック・コントローラ2075、及び表示装置2080を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、ハードディスクドライブ2040、及びCD−ROMドライブ2060を有する入出力部と、入出力コントローラ2084に接続されるROM2010、フレキシブルディスク・ドライブ2050、及び入出力チップ2070を有するレガシー入出力部を備える。
【0144】
ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000及びグラフィック・コントローラ2075とを接続する。CPU2000は、ROM2010及びRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ2075は、CPU2000等がRAM2020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置2080上に表示させる。これに代えて、グラフィック・コントローラ2075は、CPU2000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【0145】
入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040、CD−ROMドライブ2060を接続する。通信インターフェイス2030は、有線又は無線によりネットワークを介して他の装置と通信する。また、通信インターフェイスは、通信を行うハードウェアとして機能する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用するプログラム及びデータを格納する。CD−ROMドライブ2060は、CD−ROM2095からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。
【0146】
また、入出力コントローラ2084には、ROM2010と、フレキシブルディスク・ドライブ2050、及び入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブート・プログラム、及び/又は、コンピュータ1900のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ2050は、フレキシブルディスク2090からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、フレキシブルディスク・ドライブ2050を入出力コントローラ2084へと接続するとともに、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ2084へと接続する。
【0147】
RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、フレキシブルディスク2090、CD−ROM2095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。
【0148】
コンピュータ1900にインストールされ、コンピュータ1900を生成装置10及び選択装置20として機能させるプログラムは、入力モジュール、算出モジュール、初期化モジュール、生成モジュール、設定モジュール、選択モジュール、取得モジュール、利得選択モジュール、入力選択モジュール、及び、遷移モジュールを備える。これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、入力部110、算出部120、初期化部130、生成部140、取得部210、利得選択部220、入力選択部230、遷移部240、入力部310、算出部320、初期化部330、生成部340、設定部350、選択部360、取得部410、利得選択部420、入力選択部430、及び、遷移部440としてそれぞれ機能させてよい。
【0149】
これらのプログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である入力部110、算出部120、初期化部130、生成部140、取得部210、利得選択部220、入力選択部230、遷移部240、入力部310、算出部320、初期化部330、生成部340、設定部350、選択部360、取得部410、利得選択部420、入力選択部430、及び、遷移部440として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の生成装置10、選択装置20、生成装置30、及び、選択装置40が構築される。
【0150】
一例として、コンピュータ1900と外部の装置等との間で通信を行う場合には、CPU2000は、RAM2020上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス2030に対して通信処理を指示する。通信インターフェイス2030は、CPU2000の制御を受けて、RAM2020、ハードディスクドライブ2040、フレキシブルディスク2090、又はCD−ROM2095等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス2030は、DMA(ダイレクト・メモリ・アクセス)方式により記憶装置との間で送受信データを転送してもよく、これに代えて、CPU2000が転送元の記憶装置又は通信インターフェイス2030からデータを読み出し、転送先の通信インターフェイス2030又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【0151】
また、CPU2000は、ハードディスクドライブ2040、CD−ROMドライブ2060(CD−ROM2095)、フレキシブルディスク・ドライブ2050(フレキシブルディスク2090)等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をDMA転送等によりRAM2020へと読み込ませ、RAM2020上のデータに対して各種の処理を行う。そして、CPU2000は、処理を終えたデータを、DMA転送等により外部記憶装置へと書き戻す。このような処理において、RAM2020は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはRAM2020及び外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。
【0152】
本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、CPU2000は、RAM2020の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはRAM2020の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもRAM2020、メモリ、及び/又は記憶装置に含まれるものとする。
【0153】
また、CPU2000は、RAM2020から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、RAM2020へと書き戻す。例えば、CPU2000は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすか否かを判断し、条件が成立した場合(又は不成立であった場合)に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【0154】
また、CPU2000は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第1属性の属性値に対し第2属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、CPU2000は、記憶装置に格納されている複数のエントリの中から第1属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第2属性の属性値を読み出すことにより、所定の条件を満たす第1属性に対応付けられた第2属性の属性値を得ることができる。
【0155】
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク2090、CD−ROM2095の他に、DVD又はCD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ1900に提供してもよい。
【0156】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0157】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。