メインコンテンツまでスキップ

付録C. 動機拡張(Motivation Extension, v0.1-ext)

本付録は,CADL Explorer デモおよび D-SoS 動機感応型ガバナンス実験で 使用される CADL の動機拡張を規定する。 コア言語(第 5 章・付録A)は 本ブロックを必須としない。 拡張を未実装の CADL 準拠の処理系は,motivation: ブロックを理由に ファイルを拒否してはならない。ブロックを構文上受理し, 情報レベルの診断を出すことが望ましい。

本拡張はコア言語と独立にバージョニングされる。 本書は v0.1-ext を規定する。v0.1-ext は本拡張の文書の版を示すラベルである。 v0.2 では,本拡張は extensions: に宣言する名前を持たない (付録A.2)。 ファイルは motivation: ブロックを書くだけで本拡張を用いる。

C.1 スコープ​

拡張は Institution 層に 2 つの概念を追加する:

  1. エージェント動機 — 各アクターに対するスカラー m ∈ [0, 1]。タスク受諾への内発的意欲を表す。 profile セレクタがアクター群に対する動機分布を指定する。
  2. ガバナンスによる動機解釈 — 権威層がどのように動機を 予算/待機時間決定に結合するか。パラメータ ρ(感度)と κ(スケール)により制御。

これらのパラメータは契約のガバナンスパラメータ(α, β, λ)を補完する ものであり,置換ではない。

本ブロックは,CADL Explorer のシミュレータ(cadl_sim)の設定スキーマとして生まれた。CADL ファイルでは, sos: マッピングの省略可能なキー motivation:,すなわち 付録A.2 の motivation_block である。

C.2 EBNF​

文法は付録A の記法に従う。number と int_literal は付録A で 定義する。

motivation_block = [ "agent:" , agent_motivation ] ,
[ "governance:" , governance_motivation ] ;

agent_motivation = [ "profile:" , motivation_profile ] ,
[ "values:" , { "-" , number } ] ;
motivation_profile = "uniform" | "linear" | "polarized" | "custom" ;

governance_motivation = [ "model:" , motivation_model ] ,
[ "rho:" , number ] ,
[ "kappa:" , number ] ,
[ "budget_base:" , int_literal ] ,
[ "wait_scale:" , number ] ;
motivation_model = "none" | "commitment_budget" | "hybrid" ;

既定値: profile: uniform,model: none,rho: 0.0,kappa: 5.0, budget_base: 3,wait_scale: 3.0。

C.3 パラメータ意味論​

記号名称範囲意味
m_iアクター i の動機[0, 1]0 = 非意欲,1 = 完全意欲
ρ (rho)動機感度[0, 1]0 = 動機無視,1 = 予算超過アクターを最大の強さで抑制
κ (kappa)予算スケール≥ 0動機から予算拡張量への係数
budget_base予算基準値ℤ ≥ 0動機調整前のアクター別コミットメント予算
wait_scale超過→再試行係数≥ 0予算超過量を再試行待機時間に変換する係数

プロファイル意味論​

アクター数 N に対して:

  • uniform — 全アクターが m = 0.5。
  • linear — [0.2, 1.0] 上に等間隔 (i = 0 … N−1 に対し m_i = 0.2 + 0.8 · i/(N−1),N = 1 なら m = 0.5)。
  • polarized — 前半 ⌊N/2⌋ 個が m = 0.2,残りが m = 0.9。
  • custom — 長さ N の明示的 values リストが必須。

C.4 ガバナンスモデル​

model効果
noneベースライン — 動機を無視(ρ = 0 と等価)
commitment_budgetアクター i にコミットメント予算 B_i = budget_base + κ · m_i を与える。予算を超過したアクターは,⌊ρ · overshoot · wait_scale⌋ の追加待機により抑制される
hybrid予約済み。 v0.1-ext では commitment_budget と同じ効果を持つ(下記参照)

表中の量は次のように定義する。

  • used_i は,実行開始からアクター i が引き受けたゴール(コミットメント)の累積数である。
  • overshoot = max(0, used_i − B_i) は,アクター i が予算を超過した量である。予算内の間は 0 である。
  • 追加待機 ⌊ρ · overshoot · wait_scale⌋ は,ランタイムのディスパッチャの再試行ティック数で数え,次の経路割当てまでの通常の待機に加算する。
  • hybrid は,予算制約に嗜好を考慮した経路優先度を加えるモデルのために予約されている。v0.1-ext はこの優先度の規則を定義しない。処理系は model: hybrid を受理しなければならず,commitment_budget として扱わなければならない。リファレンスシミュレータはそのように動作する。拡張の将来の版が優先度の規則を定義しうるため,予算制約だけを必要とするファイルは commitment_budget と書くことが望ましい。

実効感度は ρ · 𝟙[model ≠ "none"]。 model = "none" のとき,ランタイムは rho を無視しなければならない。

C.5 記述例​

CADL ファイルでは,本ブロックを sos: の下に書く。

sos:
name: "MotivationSensitiveDelivery"
type: Directed
# actors, contracts, ... は第 5 章のとおり

motivation:
agent:
profile: linear
governance:
model: commitment_budget
rho: 0.6
kappa: 5.0
budget_base: 3
wait_scale: 3.0

CADL Explorer のシミュレータは,同じ motivation: ブロックを,独自の 設定ファイルから読み込む。この設定ファイルでは,sos_type: や environment: などのシミュレータ設定と並べて書く。同ファイルには,キー alpha,beta,lambda を持つトップレベルの governance: マッピングもある。 これらはシミュレータのパラメータ(自律度,集中度,探索確率)であり,5.4.2 節の 契約ごとの α(情報共有度),β(意思決定集中度),λ(インセンティブ強度) ではない。シミュレータの設定ファイルは,付録A の意味での CADL ファイルではない。

C.6 準拠性​

CADL 処理系は,motivation: ブロックを持たないファイルを受理し 第 5 章および付録A を完全実装するとき コア準拠。

さらに以下を満たすとき 動機準拠:

  1. §C.2 の EBNF に従って motivation: ブロックをパースする。
  2. profile と model を §C.2 の列挙に対して検証する。
  3. §C.3 に従って profile を具体的なアクター別動機ベクトルに解決する。
  4. 下流 codegen ターゲット(シミュレータ設定,ポリシーコード等) に動機パラメータを引き渡す方法を文書化する。

拡張未対応の処理系はブロックを原文のまま保持することが望ましい (下流ツールが消費できるように)。

C.7 相互参照​

  • CADL Explorer(デモ): v0.1-ext を,シミュレータの設定スキーマ (cadl_sim/schema/motivation_schema.py)に実装。Explorer のページが 受け付けるプロファイルは uniform,linear,polarized で,custom は 受け付けない。
  • cadl(リファレンス実装): AST の SoSDefinition に省略可能な MotivationBlock を定義している。 cadl 0.3.9 からは,パーサが motivation: ブロックを読み込む。cadl check は このブロックについて情報レベルの診断を出し,cadl sim-ir はブロックを書かれたとおりに motivation_block というキーで引き渡す(C.6)。検証とコード生成では使われない。 リファレンス実装は, 付録A §A.12 に挙げた相違を伴ってコア言語を実装しており,動機拡張は実装していない。すなわち, ブロックの検証,プロファイルの解決,ガバナンスモデルの適用は行わない。
  • 用語集 — ρ,κ,プロファイル用語の定義。