このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

ミーティング・スケジューラ、イベントの代数

Erlangでミーティング・スケジューラを作ろうかな、っと。そういうもんは色々あるんだけどさ、メールとか使わないでもっとダイレクトにサッサッとできるヤツね。通信はWCC使って; 現状、通信のセキュリティがないのが大問題だけど、そこはホッカブリして、理屈を考える。

理屈はうんと理屈っぽくね。

基本はイベント一元論。ここでのイベントは時区間(time interval)にラベルを付けたもの。時間の1次元アフィン空間をTとする; これはニュートン時間ね、相対論使いません^^; 時区間iは、i⊆T なんだけど、開始時点s, 終了時点e(s, e∈T)により、i = [s, e] と書けるもの。それで、ラベルの集合をLとして、イベントは (A, i) = (A, [s, e]) と表現できる。ここで、A∈L、s, e∈T, s≦e 。

ラベルの集合Lは固定するとして、イベントの全体はEvとする。イベントには、それ以上は分解できない原子イベントがある。原子イベントの集合をAE(atomic evetns)とする。当然 AE⊆Ev。AEは天下り(公理的と言ってもいいが)に与えられている。AEの条件とか使い方は、また後で。

イベントa, bなどに対して、そのラベルはA, Bなどと書くことにする(単に、記法上の約束)。特殊なイベントをいくつか導入しておく。まず、(A, [s, s])の形のイベントは時点イベント、または点イベント。s>t のとき [s, t]は空になるから、これも認めて0と書くことにする。(A, 0)は空イベント。ラベルが付いているので空イベントは無限にある(Lは無限としておく)。さらに、Lのなかに特殊な⊥(ボトム)を入れておく。⊥の意味は何ものでもない、ってこと。

Lのなかに∧(ミート)って演算を入れる。

  • A = B のとき、A∧B = A = B
  • それ以外のとき、A∧B = ⊥ (気持ちとしては、そんなものねーよ)

i, j が時区間のとき i∩j は、単にTの部分集合の共通部分として定義する。空区間を認めたので、この演算は、時区間のなかでwell-defienedとなる。

∧と∩を組み合わせて、

  • (A, i)∧(B, j) = (A∧B, i∩j)

と定義する。これもミート。言い忘れていたが、(⊥, i)は、iが何でもあっても(⊥, 0)と同一視する。(⊥, 0)は絶対的空(どこにもない)の意味。(⊥, 0)をΘと書くことにする(形が0に似てるから)。(A, 0)と(B, 0)も同一視したほうがいいかどうかは、まだ分かってない。

  • (a∧b)∧c = a∧(b∧c) (結合的)
  • a∧Θ = Θ∧a = a (単位的)
  • a∧b = b∧a (可換)
  • a∧a = a (ベキ等)

となるから、イベントの全体はベキ等可換モノイドとなる。ミート半束とか呼ぶこともあるね。a⊆b ⇔ a∧b = a として順序が入る。a⊆b のとき、イベントaはイベントbに含まれる、あるいは、aはbの部分イベントと言おう。

今日はここまで。