6月
03
2005

エキスパートシステムについて

昨日は、エキスパートシステムの問題点まででした。

しかし、エキスパートシステムはなくなったわけではありません。

Webの中では、「パーソナリーゼーション」という名前に変えて生き残っていま
す。またゲームの中で、敵と戦う種類のものはAIエンジンというものがあります。

「パーソナリーゼーション」は、ECサイト(電子商取引)で利用されることが
あります。パーソナリーゼーション=個人特定化、つまりお客さまによって異な
る対応をする場合に用いられます。

ECサイトとは、楽天をはじめとするホームページにて物品を売買するWebペー
ジです。ただのスーパーのように、ものを安く売るという方法も一つですが、お
客さまの嗜好にあわせて対応を変えるというのも一つの戦略です。

上得意のお客さまの場合は、厳選した商品を展示したり、割引率を多めにしま
す。そしてお客さまが過去に購入した商品から、好みの動向を調べ、興味の持て
る商品をタイミングよく仕入れたり販売します。お客さまにとって、自分のこと
を一番良く知っているあるいは便利な商人となります。一人一人その対応するの
は大変ですが、システムを導入することにより効率よくできる、それが
「パーソナリーゼーション」です。

オンライン書店のアマゾンは「パーソナリーゼーション」を取り入れております
が、いまのところ簡単なものを使っているそうです。お客さまの購入履歴から似
ている傾向のあるお客さまを検索します。「似た傾向のあるお客さまが既に買っ
ている商品は、このお客さまも購入する確率が高い」という法則を打ち立て、ま
だ購入していない商品をすすめています。

「パーソナリーゼーション」は、個人をある顧客集合に分類するという還元主義
的な発想を用いますが、このアマゾンの方法は従来の方法では限界があると思
い、単純なところだけ利用したものでした。複雑なAI的な方法を使わずに、現
実主義で成功させるという発想は、逆転の発想で自分としてはかなり驚愕しました。

ビデオゲーム(パソコンやPS2などのゲーム専用機のゲームソフト)にも、使われ
ています。アクションゲームや戦略ゲームの敵がコンピューターの場合、単純な
動きではすぐにパターンが読めてしまいます。

アクションゲームではすることが限られてしまいます。前後左右に動くか、ジャ
ンプするか、そして兵器の種類を変えて打つか。弾丸やビームエネルギーの残量
には限りがなく、特色のない敵であることが多いです。敵は自分よりも劣ってい
ることが多いですが、本当にそうでしょうか?それは敵が強いとゲームが面白く
ない、そのためバランスをとって敵が少しだけ弱くしています。

私は単純な世界観ではコンピューターの方が人間の思考を凌駕しますし、機械の
方が反応速度も早く身体も頑丈ではないかと思います。SF映画ではいつも人間
の方が最後には勝っておりますが、本当でしょうか?

その敵の動きを、状況に応じて変化させたり、自分の強さに応じて強くなったり
するのもあります。少し複雑な敵をつくりますと、AI搭載と広告をうつことが
ありますが、まだまだ単純すぎます。

シミュレーションゲームでは、エキスパートシステムをAIとして利用している
ものがあります。私はこれを知ったときも驚愕しました。

例えば、Age of Empireシリーズです。ゲームのパラメーターと命令を以下のよ
うな条件文で構成することが可能です。まさにエキスパートシステムの一種です。
以下のようなルールを数百、数千と用意すると、敵として戦うことができます
し、AIどおしを戦わせることができます。

これはある人がつくったゲーム中のプログラムです。城壁をつくるかどうかと爆
弾を落とす塔をつくるかどうかを判断する命令の一部です。

(defrule
(current-age == feudal-age)
(goal wall-build YES)
(can-build-wall-with-escrow 2 stone-wall-line)
(or
(can-afford-complete-wall 2 stone-wall-line)
(stone-amount > 125)
)
=>
(release-escrow stone)
(build-wall 2 stone-wall-line)
)

(defrule
(can-build bombard-tower)
(not (goal wonder-attempt POSSIBLE) )
(or
(not (goal castle-attempt YES) )
(building-type-count-total bombard-tower < 2) ) (or (goal wall-build NO) (timer-triggered t-tower) ) =>
(build bombard-tower)
)

こういったプログラムを書く理由の一つは、わかりやすさです。

通常のプログラム(C言語など)でも書くことはできますが、普通のプログラム
の中に埋もれてしまい、修正などを加えたりメンテナンスするのは大変です。ま
たゲームをつくるプログラマーと、ゲームデザインなどを考えるプログラマーは
別の能力や目的をもっていますので、このように別々に分けた方が良いと思います。

こんなふうにゲームの中に入っていますので、インターネットからデータを取得
しやすい、株価や取引データ、日経平均、為替レート、それらのデータを得て、
上記のようなゲームのようなシステムを使ったらどうなるでしょうか?

はい、エキスパートシステムによる自動株価売買システムをつくることができま
す。エキスパートシステムは使われませんでしたが、日本でもカブロボコンテス
トが開かれました。

http://kaburobo.jp/

コンテストが開かれる前から、コンピューターを使った自動トレーダーは実現し
ています。1987年のブラックマンデーでは、株価が異常に下がったときに売れと
いう命令が多くのプログラムが入っていたために、カオス的に次々と安く売って
いったという現象だそうです。

このようにインターネットの世界になって、データを安価で即座に容易に得るこ
とができるようになりました。私たちの知らないところで、こういった自動プロ
グラムがたくさん動いています。

単純なしくみですが、Googleなどの検索サイトもいろいろなサイトに自動的にア
クセスしてHPの内容を取得しています。

まだまだ本当のAIには程遠いものの、こういったいろいろな動きが積もり積
もって、そのうち実現されるのではと期待しています。

(明日は、エキスパートシステムから離れてみます)

Written by in: 楽天日記 |

コメントはまだありません »


コメント&トラックバック




トラックバック URL

コメントのRSS feed