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

CADL

Contract Architecture Description Language

System of Systems における制度設計を形式的に記述・検証・展開するためのドメイン固有言語

CADL とは

CADL(Contract Architecture Description Language)は, マルチエージェント System of Systems(SoS)における制度設計を形式的に記述・検証・展開するための ドメイン固有言語です。

CADLは三層アーキテクチャ——制度層(Institution)・プロトコル層(Protocol)・ アルゴリズム層(Algorithm)——を採用し,ガバナンスルール,エージェント間の調整手続き, 各側が実行するアルゴリズム(名前で参照)を1つの言語で記述できます。 ツールチェーンは,CADL仕様から設計の矛盾を検査し,コードとシミュレータ設定を生成します。

仕様書を読む →
# CADL — a contract between a dispatcher and its robots
sos:
name: "RobotDelivery"
type: Acknowledged
actors:
- {id: DISPATCHER, role: planner}
- {id: "ROBOT[1..N]", role: courier}
contracts:
- id: DELIVERY_SLA
parties: [DISPATCHER, "ROBOT[*]"]
assume: ["ROBOT[i].battery > 20"]
guarantee: ["delivery_time <= 300s"]

はじめる

リファレンス実装は,コマンドラインツール cadl です(Python 3.9 以上)。 PyPI からインストールし,サンプルを取得して,検査を実行します。

コマンドの一覧は cadl リポジトリの README にあります。手順を追って学ぶには ハンズオン講座 をご利用ください。

GitHub のソースPyPI の cadl-lang
pip install cadl-lang
git clone https://github.com/ertlnagoya/cadl

cadl check  cadl/examples/robot_delivery.cadl
cadl verify cadl/examples/robot_delivery.cadl
CADL → IR → Config → Results → Governance
CADL→IR→Config→Results→Governance

CADL Explorer とは

CADL Explorer は,CADLのガバナンスパイプラインをエンドツーエンドで体験できる インタラクティブなWebアプリケーションです。CADL仕様から出発し, 制度設計 → シミュレータ設定 → 実験 → ガバナンス評価 という因果連鎖を一貫して可視化します。

設計上の意思決定がマルチエージェントシステムの振る舞いにどう影響するかを, 透明かつ再現可能な形で示すことができます。 ガバナンスパラメータがシステムの性能にどう影響するかを調べる助けになります。

CADL Explorer を試す →

ハンズオンで学ぶ

SoS-DSL ハンズオンは,ロボット配送の System of Systems を題材に, CADL ツールチェーンの全工程を体験する約95分の自習用ワークショップです(全5回の演習コースとしても使えます)。CADL によるモデリング → SoS-DSL の契約(lifecycle と monitors)→ 可視化 → コード生成 → シミュレーション実行の順に進みます。

教科書,難易度別の課題を収めた全5回の演習集,学術的背景(Maier の5条件,ISO/IEC/IEEE 21839・21840・21841)を用意しています。

ハンズオン入口へ →
教材の構成
  • 教科書 — 6ステップ × 15分
  • 演習集 — 全5回,ルーブリック付き
  • 学術的背景 — Maier の5条件,ISO 21839・21840・21841,参考文献

主な特徴

三層アーキテクチャ

制度層(権限・インセンティブ・情報共有),プロトコル層(調整手続き),各側が実行するアルゴリズム(名前で参照)を単一の言語で記述します。

形式的検証

各契約の前提と保証の矛盾を SMT ソルバで検査し,プロトコルのデッドロックを検出します。

エンドツーエンドパイプライン

CADL仕様からコードとシミュレータ設定を生成します。シミュレータや CADL Explorer と組み合わせて,制度設計から振る舞い評価までの連鎖をたどれます。