Reteアルゴリズム、その1
で、Reteアルゴリズムです。これは前方前向き推論で行う必要がある高速多重パターンマッチの実装ですが、よく考えたら私自身、言葉だけでアルゴリズムそのものは深く追っかけたことがありませんでした。
ということで、erlangで楽しく組んだらどうなるのか、アルゴリズムを解読しながらやってみる予定の推論。ただしフルスペックで考え出すといつまでたっても終わらないので、以下の方針で実装を絞ります。
- ネトゲのゲームAIなどのリアルタイム判定で使えるようなもの
- RuleMLなど、知らない仕様に無理に合わせたりしない
- どうせなら並行処理のメッセージパッシングしまくり
- erlangの作法(OTP)を活用する
まあHelloWorldから始めることになるので成果物を出せたらもうけもの、といったくらいで。なお、実はerlang実装のReteアルゴリズムは見つけたのですが、残念ながらライセンスがGPL3という非常に縛りの厳しいものでした。ということで、基本はMITの予定ですが、なぜか似てしまったとしてもそれはただの偶然ですので気にしないでください‥‥。