from fractions import Fraction
from math import comb
def shapley_values(values):
if type(values) not in (list, tuple) or not 1 <= len(values) <= 256 or len(values) & (len(values)-1):
raise ValueError("shapley.table")
if any(type(v) is not int or abs(v) > 10**6 for v in values) or values[0] != 0:
raise ValueError("shapley.value")
players = len(values).bit_length()-1
result = []
for player in range(players):
share = Fraction(0)
for subset in range(len(values)):
if not subset & (1 << player):
size = subset.bit_count()
weight = Fraction(1, players*comb(players-1, size))
share += weight*(values[subset | (1 << player)]-values[subset])
result.append(share)
return result| プロジェクト | 加法的ゲームと0人を試し、空提携の非ゼロ値や2のべき乗でない表の長さを拒否します。 |
|---|---|
| 適用前に確認 | 実際の動作を期待する結果と比較します。検証に失敗した場合は、次の変更を加える前に原因を調べてください。 |
| モデル | OpenAI互換またはAnthropicのエンドポイントを、ベースURLと必要なAPIキーで設定し、接続をテストします。ローカルのモデルサーバーは起動が必要です。リモートツールは別途データを送信する場合があります。 |
from fractions import Fraction
from math import comb
def shapley_values(values):
if type(values) not in (list, tuple) or not 1 <= len(values) <= 256 or len(values) & (len(values)-1):
raise ValueError("shapley.table")
if any(type(v) is not int or abs(v) > 10**6 for v in values) or values[0] != 0:
raise ValueError("shapley.value")
players = len(values).bit_length()-1
result = []
for player in range(players):
share = Fraction(0)
for subset in range(len(values)):
if not subset & (1 << player):
size = subset.bit_count()
weight = Fraction(1, players*comb(players-1, size))
share += weight*(values[subset | (1 << player)]-values[subset])
result.append(share)
return result計算された配分の前提をレビュー可能にする
CoalitionAsterは、数理アプリケーションのソース調査とAIを使った検討のためのWindows向けコーディング環境です。まず入力表の意味とソフトウェアが報告する結果を明確にしてください。計算に内部的な整合性があっても、画面が示すものとは異なる問いに答えている場合があるため、実装の変更を依頼する前に意味を確定します。
シャープレイ値の例では、提携の値から求める正確な分数の配分を確認するという具体的な作業ができます。小さな表を示し、参加者が各項目にどう対応するか説明してください。数理的な例の結果を金銭面の推奨や実際の配分方針として扱わず、計算と併せて前提をアシスタントに確認してもらいます。
空の提携の表現も含め、独立に計算した例と修正案を照合してください。プロジェクトのテストを実行し、正確な分数が報告層へどう渡るか調べます。画面で丸める場合は別途レビューし、表示上の判断が基礎となる配分を変えたように見えたり、その前提を隠したりしないようにします。
対応するOpenAI互換またはAnthropicのエンドポイントが提供するフィルターなしAIモデルを利用できます。必要な認証情報を設定し、ツールとコンテキスト容量を確認してください。モデルの動作と制限は選んだサービスが決めます。CoalitionAsterでは、自分で確認できるプロジェクトファイルと結果に基づいてコーディングを進められます。
コードを変更する前に計算を明確にする
提携の値のテスト例では何を説明すべきですか?
参加者、表の項目と提携の対応、空の提携の期待値を示してください。配分を独立に計算した小さな例を使うと、算術だけでなく表現の前提もアシスタントがレビューできます。
数理的な例が実際の支払い方針を定めますか?
いいえ。プロジェクトのコードをレビューするための例です。入力の意味や配分規則を採用する判断はアプリケーションの要件に属し、計算した配分だけで運用上や金銭上の判断を正当化することはできません。
丸めた出力はどうレビューしますか?
正確な計算のテスト例と表示のテスト例を分けてください。必要な丸めと表示の規則を示し、適用箇所を調べます。丸めたレポートを、基礎となる計算が返す正確な値と混同してはいけません。
ドメイン名から、クラウドでのテスト実行が含まれると考えてよいですか?
文書で示される製品は、モデル接続を設定できるWindows向けコーディング環境です。ドメイン名はクラウドのテスト実行を裏付けません。プロジェクトで選んだ環境で検証し、関連する結果をレビューに持ち帰ってください。
CoalitionAster · 更新日 2026-10-25