本稿は、情報処理学会「数理モデルと問題解決」研究会主催「ゲームとモデル化」シンポジウム(1998年12月10日(木),11日(金) 於:東京農工大学工学部)にて発表されたものです。

可変型加重声価法を用いたシミュレーションゲームの設計

長久勝

Abstract

 数理社会学において考察される、集団内部の権力構造の数理モデルを、コンピュータゲームに応用する試み。コンピュータゲーム内部で集団のシミュレーションを行うにあたり、より現実的な挙動の再現を目指す。本稿においては、Bonacichの中心性概念の流れを汲む可変型加重声価法の独自拡張を、集団内部を扱うシミュレーションゲームに実装する事について述べる。コンピュータゲームを数理モデルとして捉え、数理的な手法を実際の開発に導入する事を提案する。

はじめに

 今日、かつて「文系」と呼ばれていた学問分野においても、その研究対象の解析に、数理的手法を用いる事が一般的に行われるようになった。例えば経済学、社会学などにおいては、現象の観察から得られるデータを基に数理モデルを構築し、現象を支配する性質について論じる事が行われている。こうした手法による研究分野は、従来の文系的手法と区別する場合に「数理」の文字を冠して呼ばれる事が多い。

 数理社会学において行われている、グラフ理論を用いた社会ネットワーク研究では、組織内での最重要人物を割り出す事を主要な目的の1つとしている。例えば、人間の社会で一般的に見られるある集団(職場、学校のクラス等)を考えてみる。こうした集団では、各自の様々な行動の結果、ある人物が中心的な役割を果たすようになる現象がしばしば見られる。更には、その人物を中心に集団の挙動が決定付けられるケースが良く見られる。この中心的な人物の特定、更には個々の人物の中心度を規定する指標を考え出そうというわけである。

 コンピュータゲームの主要な1分野であるシミュレーションゲームにおいて、複数の登場人物から構成される集団が扱われる事は一般的である。しかし、多くのゲームにおいて、プレイヤーキャラクタ(PC)とノンプレイヤーキャラクタ(NPC)の関係は、命令する者とされる者である。この様な系では、NPCは人物というよりユニットとして扱われる側面が強く、NPC間の関係が実装されていない場合が多い。これは単純に、ゲームデザインの段階で、そうしたアイデアを形にする手法が一般的に知られていない事に起因しているように思われる。協調作業を通じてNPC間が親密になったり、意見の対立から疎遠になったりしながら、自分達の行動の結果、組織内での位置を決定していくダイナミクスが実現されれば、NPCにもっといきいきとした存在感を与える事が出来るのではないか?

 本稿においては、数理社会学において論じられている、集団内での中心性指標の数理モデルを出発点とし、これを拡張した数理モデルをゲームに実装する事で、集団内のダイナミクスを実現する事について述べる。

可変型加重声価法

 最終的に本稿においては、松田(1997)に提案されている可変型加重声価法を拡張した数理モデルを構築するが、ここでは可変型加重声価法に到る理論的側面について述べる。

 数理社会学において、集団をネットワークと捉え、ネットワーク内部での個体の中心性を考察する研究がなされている。この中心性の指標として「声価法」と呼ばれるものがある。

 声価法とは簡単に言えば、集団の構成員に「あなたは誰が偉いと思いますか?」とアンケートを取る事に相当する。支持者の数を中心性指標とするわけである。例えば図1は、1が3を指名し、2が1と3を指名し、3が4を指名した様子を表現したネットワークとなっているが、1を指名した者1人、2を指名した者0人、3を指名した者2人、4を指名した者1人となり、3の人物が最も中心的な役割を果たしていると見るわけである。

図1:指名ネットワーク

 この声価法は単純声価法とも呼ばれ、容易にに求められる指標であるが、「潜在的有力者」を評価する事が出来ないとされている。例えば図1では、2人に指名された3の人物が推す4の人物が、もっと評価されるべきではないかという考え方である。この問題を解決する様に修正されたのが「加重声価法」である。加重声価法とは次の様な指標である。

 構成員数mの集団があった場合、声価法による指名状態をm×mの指名ネットワーク行列wで記述する。例えば図1の場合、m=4となり、次の通りである。

(2.1)

 行が、対応する人物の被指名状態、列が、対応する人物の指名状態を表す。例にあげたwでは、1行目が、1の人物が2の人物に指名されている事を表し、1列目が、1の人物が3の人物を指名している事を表している。

 このwを用いると、単純声価法による各人物の中心度は

とする縦ベクトルnで表現出来る。

 ここで注目しておきたいのは、wに全要素が1の縦ベクトルをかけるという操作が、各人の1票が全て同じ重みで扱われている事を表現しているという事である。これは裏返せば、各人の中心度に応じた構成の縦ベクトルをかけてやれば、各人の票がそれぞれの人物の重みを持って作用し、潜在的有力者を評価する枠組みに成り得る事を示している。

 そこで、次の様な操作を繰り返せば、潜在的有力者も考慮した中心度を求められると考えられる。先程得られたnこそが、各人の中心度に応じた構成の縦ベクトルに他ならないのであるから、これを用いて再帰的に演算するわけである。

但し、

:行列wの最大固有値

 この概念はBonacich(1972)によって示されたBonacich中心度と呼ばれる概念モデルと同じである。

 このモデルでは、毎回各成分を最大固有値で割る事によって、極限でのnの安定を図っている。この縮小操作がなければ、極限でのnは発散してしまう。この為、wの最大固有値を別に求めてやる必要がある。しかし、一般に、任意の行列の最大固有値をコンピュータを用いて求める事は容易ではなく、その結果、wによってはモデルが正しく機能しない場合もある。実際、例のwにおいても、正しく求める事が出来なかった。

 加重声価法は、その概念の単純さに比べて、実計算上の複雑度、制約が高い。これは行列式に関する手法を用いてモデルを構築した事から生じていると考えられる。極限でのnを求める操作は、まさに、最大固有値に対応する固有ベクトルを求める操作の一種に他ならないが、一般的に行列式周辺の諸問題では、あるパターンに分類される行列以外を効率良く扱う事が出来ない。指名ネットワーク行列wは、その定義から考えて、さほど扱い易い行列ではないのである。

 この加重声価法のモデルを拡張した概念がBonacich(1987)に述べられている。このモデルでは、加重声価法では正しく指標が求められなかった幾つかのケースについて、正しく指標が求められるようになっている。

但し、

 αによって値の大きさを調節し、βによって各iの段階で求まる値の影響力を調節している。βは、各段階で求まる値の影響が、段階に応じて弱められていくという概念を実現する為に導入されている。つまり、間接的な指名の影響力が、直接の指名の影響力を越えない様にβを設定するわけである。加重声価法よりも、間接的な指名の影響をより具体化したモデルとなっている。しかし、βを適切に設定しないとn→∞で値が発散する為、いぜんとして、βの設定時に最大固有値を考慮する必要がある。

 松田(1997)において提案されている可変型加重声加法は、潜在的有力者の概念を取り込んだモデルではあるが、指名ネットワーク行列の型に左右されない点が特徴である。可変型加重声価法は、行列式に依存しないモデルなのである。

 先ほどのα、βの導入された拡張モデルについて、βの値の選定の為に固有値を考慮しなければならないと述べた。ここではモデルの概念はそのままに、固有値の影響を排除したモデルを考える。先ほどのモデルが固有値の影響から逃れられないのは、行列演算を行う前のnに対して縮小を行おうとしているからである。縮小し過ぎれば、間接的指名の影響力を必要なだけ確保出来ないし、必要なだけ縮小されていなければ、wとの演算の結果、値が大きくなっていってしまう。そこで、演算結果を縮小する事を考える。こうすれば、必ず縮小は作用する。こうして以下のモデルを導出できる。

但し、0<γ<1

 可変型加重声価法は、潜在的有力者の概念を持ちながらも、単純なモデルとなっている。特にアルゴリズムとして実装を考えた場合、極めて単純に実装できる。また、γの値を調節する事で、間接的指名の影響力を簡単に操作できる利点もある。

 これに基づいて(2.1)式のwからnを求めてみると、γ=0.3の時、

と求める事ができる。単純声価法では同じ値であった1と4の間で、最も有力と見られる3の人物に指名された4の人物の方が有力である事が見られるようになっている。また、λを1に近づける事で、間接的指名の影響力を大きくしてやる事が出来る。例えば、先程のλ=0.3の時に比べて、次のλ=0.9の時では、

となり、間接指名の影響が大きくなった結果、3と4の人物の順位が逆転している。通常ここまでくると、間接指名の影響が多き過ぎると考える方が無難であろうが、モデル上はそうしたケースにも対応できるわけである。

付記

 モデル化のコンセプトは同じで、実際表現出来る内容も基本的に同様の加重声価法と可変型加重声価法であるが、一方は行列式の応用でモデルを実現し、もう一方はアルゴリズム的手法でモデルを実現している。数学の歴史において、アルゴリズム的手法が確立されてきたのは、近年、コンピュータの使用を前提とした研究領域が飛躍的に発展した結果である。こうした背景を考えると、高度に数学的概念を応用した数理モデルを、同一のコンセプトで、より単純なアルゴリズム的手法を応用した数理モデルで代用出来る可能性があると考えられる。加重声価法と可変型加重声価法の関係は正にその一例ではないかと考えられる。少なくとも、行列式周辺で固有値、固有ベクトルの性質を用いた数多くの数理モデルを、同様の手法で、扱い易い単純なモデルに代替できる可能性があると考えられる。

可変型加重声価法の拡張

 ここまで見てきた声価法の概念を応用して、コンピュータゲームに実装するシステムを構築する。

 通常、学術分野で数理モデルを扱う場合は、対象の分析に基づき、対象と同じ挙動を示す数理モデルを構築する事が目的である。その成果が用いられる各種ソフトウェア(例えば株価、天気などの予測支援ソフトウェア)においても、対象を追跡できる事が利点であって、正確さを欠くモデルは評価されないのが普通である。

 コンピュータゲーム上に実装するシステムを構築する作業は、そうした考え方と一線を隔す。何故なら、仮に対象が実在する場合でも、精密に追跡できるモデルから作られたゲームが面白い保証はないからである。従って、対象の本質が表現され、ゲームとして面白くなる様に挙動のデフォルメされたモデルが好んで用いられる。また、実装対象となるプラットフォームの制約上、モデルを単純化する事も行われる。

 対象を分析し、分析結果からモデルを構成するのが学術的な手法であるとするならば、そこから更に別の視点に基づいてモデルを再構成するのがゲーム制作的な手法であると言える。

 こうした考えに基づき、可変型加重声価法から、コンピュータゲーム用のモデルを導出する。ここでは、指名ネットワーク行列の定義を拡張して、よりコンピュータゲーム向きのモデルにする。

 声価法に用いられていた指名ネットワーク行列には次の様な特徴があった。

これはモデルの定義から生じている特徴であるが、行列としては、もう少し制約の無い形の方が、演算結果に幅が出るので面白い挙動が期待できる。そこで、声価法における指名方法を拡張してみる。

 まず、各個人が指名を行うにあたって、それぞれが規定のポイントを持ち、そのポイントを指名の強度に応じて割り振るとする。2人の人物両方を指名したいが、2人のうちの一方がより評価出来る場合に、それを可能にするのである。例えば、各自100ポイントが持ち点ならば、1の人物が2に50、3に20、4に30などとする。これによって、指名を重み付きの指名に変更できる。この結果、行列の各成分は0から100の整数に拡張されるが、γの縮小速度が極めて高いので、可変型加重声価法の指標計算には、この拡張によって計算不能になるような影響はない。(コンピュータゲーム用にモデルを再構築する際、変更によってモデルの限界を超えない事が重要である。)

 更に、指名対象に自分自身も含められる様にする。この事で、他人を評価するのと同列に自身の評価も含まれるモデルに拡張する。他人への依存度と、自分への信頼(自信)を包含的に扱える枠組みにするわけである。例えば、他人の意見には耳も貸さない人物は、自分自身に全ポイントを割り振る事になるだろう。

 こうして、重み付きの指名と、自信の概念を盛り込んだ可変型加重声価法の拡張モデルを構築できた。このモデルを実際に見てみる事にする。今、指名ネットワーク行列wが

(3.1)

であった場合、γ=0.3とすると、

(3.2)

となる。この結果は十分妥当なものであろう。

 この拡張は、実際の調査によって得られたデータに裏付けられたものでもないし、妥当な分析によって構成されたものとも言い難い。従って、学術的には暴論の範疇に入るべきものであるが、コンピュータゲームのシステムとしては、その挙動に十分期待できる。

GBDK2.0による拡張モデル実装時の制約

 構築したモデルをコンピュータゲームに利用する為には、対象となるプラットフォームに実装する必要がある。コンピュータゲームの実装に際しては、プラットフォームから制約を受ける場合が多々あり、如何に制約を回避しながら実装を行うかが問題となる。本稿執筆時点で、可変型加重声価法拡張モデル用いたコンピュータゲームを、GBDK2.0b16上で制作中であるので、GBDK2.0b16上での制約と実装について述べる。

 GBDK2.0はPascal Felber氏、MichaelHope氏によるGameBoy用の開発環境で、C言語による開発が可能となっている。1998/11/10現在、最新版はGBDK2.0b16となっており、以下のURLから入手可能である。

http://lsewww.epfl.ch/~felber/GBDK/

 可変型加重声価法拡張モデルの実装においてGBDK2.0b16上の制約として考えられるのは、以下のような問題である。

ここでは、この制約を回避しながらモデルを実装する。

 まず1つめの問題は、浮動小数点が扱えない為に実数範囲の演算が行えない事があげられる。(厳密に言うと、浮動小数点型は存在するが、演算がサポートされていない。)この為、可変型加重声価法拡張モデルをそのまま実装する事が出来ない。そこでモデルを以下のように修正する。

但し、γ>1

これによってγを符号なし整数範囲で表現可能にできるわけである。更に、毎ステップの割り算を、余り切り捨てで行う事にし、毎回得られるnを符号なし整数範囲とする。またこの結果、nが0になるのが早くなるので収束速度が上がり、数ステップで有用な値を取り出せる効果もある。こうした結果、モデルの正確さは幾分犠牲となるが、本質的な部分は保存される。

 次の問題として、16ビット変数しか使えないので、演算中のオーバーフローの危険性が存在する事があげられる。この為、演算途中に現れる値がオーバーフローしない様に、各自の持ち点やγの値を設定してやる事も必要である。例えば、4人からなる集団で、各自持ち点100だった場合、

というケースが有り得るので

となり、次のステップの演算途中で100×400=40000という値が現れる。符号なし16ビット変数は、65535までの値しか扱えない。従って、γが十分に大きくないと、次のステップでは更に大きな値が現れる事になり、結果としてオーバーフローを引き起こす事になる。例えばこの場合、γ=70と設定してやる事で、オーバーフローは回避される。(紙面の都合上、γ設定の詳細に関しては割愛させて頂く。)但し、γを大きくし過ぎると、間接指名の影響力が弱まり過ぎるので注意が必要である。

 こうした事を踏まえて実装を行い、実際に(3.1)式とγ=70を用い、5ステップで演算を打ち切って求めた結果は以下の通りとなり、

γの設定が対応しないが、(3.2)式とほぼ同様の結果を得る事が出来た。

モデルのゲーム化

 ここまで、モデルを構築し、実装する事について述べてきた。コンピュータゲームでは、こうして構築したモデルに意味付けをして、実際のコンピュータゲームのシステムとして利用する。本稿に述べるようなアプローチを行う場合、モデルの構想を進めて行く途中、同時進行で、モデルに対する意味付けの可能性を考察する。従って、実現したい機能などによって、モデルの方向性が左右される。この様に、本来、モデルの構想とモデルの適用イメージは分離できないものであるが、本稿においては、分離して1章を設ける事にした。

 ここでは、拡張指名ネットワーク行列と可変型加重声価法拡張モデルによって、どのようなゲームシステムの構築が可能かを考察する。

 拡張指名ネットワーク行列からは、各自の直接指名の状態を見る事が出来る。従って、各人物間の直接的な依存度を見る事が出来、この値をそのまま友好度と見る事が出来る。例えば、ある人物が、集団内の誰かと遊びに行くようなシチュエーションがあった場合、拡張指名ネットワーク行列の列成分を反映させた形で相手を選ばせる事が出来る。実際に、拡張指名ネットワーク行列(3.1)式があった場合、1の人物がパートナーを選ぶとすると、2の人物を10、3の人物を20、4の人物を30とする割合で、それぞれの人物を選ぶ可能性があるとするわけである。また、40の割合でパートナーを選ばないとする事も可能である。

 可変型加重声価法拡張モデルによる中心度指標からは、集団内での順列を見る事が出来る。当然、順列が高位の者ほど、実力があると見なされているわけであるから、例えば、ある人物が難しい問題を抱えた場合、誰に協力を要請するかを決める時に、中心度指標を反映させた形で選ばせる事が出来る。中心度指標が(3.2)式の通りであったとする。4の人物が誰かに助けを求めようとした場合、一番仲が良いのは1の人物であるが、2、3の人物の方が能力が高いと見なされるので、2、3の人物に協力を求めるようにさせる事が可能である。

 拡張指名ネットワーク行列自身が、ゲームが進行する過程で変化していくようにすると、集団内での各自の評価は動的に変化する。ここから得られるダイナミクスが、人間集団のダイナミクスに近い振る舞いを行うように、行列の変化を持たせる必要がある。例えば、一緒に仕事をすれば仲良くなる事を考慮して、行列の値を変化させる。(3.1)式の状態があった時、1と3が一緒に仕事をしたとすると、

と変化させる事にするわけである。

 ゲーム中でのイベントの生起条件として、指標が閾値を超えるという条件設定も考えられる。例えば、自信過剰になった場合、大失敗をやらかして、皆からの指名ポイントが減少するなどといったイベントを用意できる。こうしたイベントの積み重ねでゲーム全体の流れの演出を目指す。

 互いに能力を補完し合うようなNPC同士であっても、指名ネットワーク行列における互いの指名度が極端に低い(仲が悪い)場合は、上手くいかないであろうし、例え能力が高くとも、中心度が低い(皆に信頼されていない)NPCはリーダーシップを発揮できないだろう。可変型加重声価法拡張モデルを導入する事によって、NPCを能力値によって見るのではなく、より現実的な人格として見る事を可能に出来る。

 こうして述べたような形で、数理モデルにコンピュータゲームとしての意味付けを与える事が出来る。

最後に

 本稿においては、数理モデルのコンピュータゲームへの応用例としての側面に重きをおいた為、構成が幾分散文的である感を持たれるかも知れない。ただ、普段、学術文献にあまり馴染みのない人にも読んで頂けるように工夫したつもりである。実際に数理モデルをコンピュータゲームとリンクさせる試みを行った様子を見て頂けた事と思う。

 実際のコンピュータゲーム制作の現場では、本稿で述べた様な機能を実装する試みが全くなされていないわけではない。しかし、本稿の様に数理モデルを考案し、そのモデルの適用で何が実現可能か吟味した上で実装するような手法は一般的でない。現状では、設計と実装が未だ十分に分離されていないのである。この為、十分な仕様の検討のないままに作業が行われ、結果、ソフトウェアとしての品質は低下してしまっている。こうした現状を改善する為にも、本稿で述べた様なアプローチについて、多くのゲームプログラマに考えて頂きたい。確かに、コンピュータゲームの扱う問題の領域が広い事を考えれば、こうしたアプローチを行う為には、広く学際的な知識が必要である。しかし、昨今のコンピュータゲーム業界に漂う停滞感を払拭する為には、こうした事を真剣に考える時期にきていると感じるのである。また、そうした成果をある程度オープンにする事で、業界の社会的地位も向上を望めると思われる。何かと閉鎖的と言われる業界を、もっと風通しの良いものにして、良質な作品を生み出す土壌が整備されればと願って止まない。

謝辞

 本稿を書くきっかけと貴重なアドバイスを頂いた九州大学大学院比較社会文化研究科の松田光司氏、及び、発表の機会と貴重なアドバイスを頂いた和歌山大学システム工学部情報通信システム学科の城和貴氏に感謝いたします。

文献

  1. Bonacich,Phillip. Factoring and Weighting Approaches to Status Scores and Clique Identification. Journal of Mathematical Sociology 2:113-120. 1972.
  2. Bonacich,Phillip. Power and centrality : A Family of Measures. American Journal of Sociology 92:1170-1182. 1987.
  3. 松田 光司. 可変型加重声価法-指名ネットワークによる集団内有力度の評価-. 井上 寛 編「社会ネットワークの新たな理論に向けて」平成6〜8年度科学研究費補助金(基盤研究(A)(1))研究成果報告書:27-41. 1997/3.
GameBoyは任天堂の登録商標です。