新城@筑波大学情報です。こんにちは。

In article <3F4383EB.D7C48CF5@ht.sakura.ne.jp>
        IIJIMA Hiromitsu <delmonta@ht.sakura.ne.jp> writes:
> (X) fj.net.watch vs fj.news.from.misc vs 廃案
> (Y) fj.net.watch.2ch vs fj.news.from.2ch vs 廃案
> はどうなりますか?
> X がどちらかで成立なら Y は X に依存です。
> X がどちらも不成立なら、Y は複雑な問題を呈します。

この(X)、(Y) は、新城版 ngMP (v4/v5) の「議案」の定義に当て
はまりません。新城版 ngMP の議案の定義は、次の通りです。
------------------------------------------------------------
次世代NGMP案(v5)
最終更新: v5 2003/08/11 新城 靖

*1.3 「議案」
「議案」には、次のような種類がある。
    (1) 新しいニュースグループの作成
    (2) 既存のニュースグループの削除
    (3) 既存のニュースグループの、憲章案、状態
        (moderated/unmoderated)の変更
------------------------------------------------------------

この定義は、一見なんの変哲もないように見えるかもしれませんが、
実は、ちゃんと考えて作ってあります。それは、最終的なコントロー
ル・メッセージに1対1に対応するようにしてあります。新城版 
ngMP は、この「議案」を通じて、コントロール・メッセージの送
出方法を議論していることになっています。

議案の種類が、これだけしかないので、(X),(Y) は、次のように表
現することになります。

> さらに議案を分割して、
> (X1) fj.net.watch
> (X2) fj.news.from.misc
> (Y1) fj.net.watch.2ch
> (Y2) fj.news.from.2ch

議案と議案の関係は、次の通り。

(X1): (X2) と対立
(X2): (X1) と対立
(Y1): (Y2) と対立、(X1)に依存
(Y2): (Y1) と対立、(X2)に依存

依存関係と対立関係の記述は、これだけです。簡単でしょ。
成立、不成立は、投票にかけて、数の多い順に決めて行くから、こ
れも簡単。

> > 久野流だと、上の議案 B, A1, A2, A3 は、全部別の CFD(久野) の
> > 別の議案群になるのですか? 同じ CFD の別の議案群になるので
> > すか?
> 
> 同じ CFD の中に 2^(B A1 A2 A3) という 16 個の議案群(全部不成立という選
> 択肢も含めて)が存在し得て、その中から管理人が提案者の意向を勘案して適切
> なものに絞り込みます。絞り込めないと判断したら別 CFD に分割して逐次審議
> です。

久野版だと 2 の 4 乗の 16 個ですか。ホントですか。
新城版だと、4 つです。これも、新城案のほうが数が少ない。
久野版の弱点の提供にしか見えないんだけれど。

> いいえ、必ずしもこの 2 つの議案群にまとめる必要はありません。
> fj.news.from.* の 4 本の枝からは、空集合でない議案群が 15 個できます。
> その中から、適宜選べばいいのです。

新城版だと、選ぶ手間も不要です。提案者から出てきた4つの議案
だけです。どこにももめる要素はありません。すばらしい。

> > 私は「必ず同時」に投票したいということはなくて、同時に投票で
> > きればそれでもいいし、fj.news.from.{2ch,blog,slashdot}を先に
> > 投票できるなら先でもいいし、後でもいいしです。ただ、3ヶ月待
> > たされるのは勘弁して欲しいと、そういうことを言っているわけです。
> 
> 結局それは無理だと思います。逐次審議にしないと、「CFV は YES/NO の 2 択・
> 無条件」という部分に手を入れる必要が出てきます。

そんなことはありません。新城f版だと、それぞれの「議案」につ
いて、ほとんど同一時期に yes/no を問うだけで終りです。同時で
もいいし、少し前後していてもいいです。それで、数の多い順に優
先して決めていきます。

> 「議論の収束が早くなります。成功する確率が高い時には。」
> では、逆に成功する確率が低いときには?

この文の意味がわかりません。依存している議案が先に不成立にな
ると、もっと早く決着が付くんだけど。

> 失敗したときのペナルティの効用関数がべらぼうな値になる、という事態が
> 待っていますね。

ペナルティは、実はほとんど0です。「成立」したら本来ならコン
トロール・メッセージを流す必要があります。作成なら newgroup、
削除なら、rmgroup。でも、「予約成立」の段階では、コントロー
ル・メッセージは出しません。ですから、予約をキャンセルすると
いうことは、何もしないということなのです。つまり、newgroup 
を打ち消す rmgroup や、rmgroup を打ち消す newgroup を流す必
要はありません。結局、コストはほとんど0です。

すばらしい。

雑談ですが、投機の実現をソフトウェアでやると、コストあんまり
かからないんですよね。ハードウェアでやると大変なんだけど。ハー
ドでやると回路が余計に必要という意味でコストかかるのですが、
ソフトウェアでやると、メモリを増やすだけです。ハードウェアの
と投機的実行というのは、条件分岐が出てきたら、分岐する場合と
分岐しない場合の両方を先回りて計算してしまうというものです。
たとえば、Cで書くと
        if( cond )
        {
            A
        }
        else
        {
            B
        }
というプログラムがあった時、A と B の両方を実行してしまう
というものです。後で cond が来たら、どちらかの結果を捨てます。
なんでこんなことをするかというと、もちろん高速化のためです。
前に書いた論文が、ハード屋さんの所に査読が回って、往生しまし
た。ソフトウェアでやると、コストがかからないというのが分から
なかったみたい。雑談終り。

ホテルや飛行機ならキャンセル料は、ある程度は無料ですよね。結
婚のどたキャンとか高くつきそうだけど。どちらにしても、コント
ロール・メッセージとは関係ありません。

まとめると、こんな感じです。

・新城版 ngMP では、「議案」とコントロール・メッセージが対応
  している。
・2 の 4乗の話が、本当に久野版 ngMP から導出できるの不明である。
  導出できるなら、新城版の方が簡単である。
・コントロール・メッセージ送出の予約をキャンセルするにはコス
  トはかからない。

\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報       \\