import math
def simplex_projection(values):
if type(values) is not list or not 1 <= len(values) <= 256:
raise ValueError("simplex.input")
if any(type(x) not in (int, float) or not -10**6 <= x <= 10**6 or not math.isfinite(x) for x in values):
raise ValueError("simplex.value")
ranked = sorted(values, reverse=True)
total, theta = 0.0, 0.0
for count, value in enumerate(ranked, 1):
total += value
candidate = (total-1)/count
if value > candidate:
theta = candidate
return [max(0.0, value-theta) for value in values]
プロジェクト
同値と頂点解を試し、真偽値を拒否して数値許容差で比較し、重みを較正済み確率とみなさないでください。
適用前に確認
実際の動作を期待する結果と比較します。検証に失敗した場合は、次の変更を加える前に原因を調べてください。
モデル
OpenAI互換またはAnthropicのエンドポイントを、ベースURLと必要なAPIキーで設定し、接続をテストします。ローカルのモデルサーバーは起動が必要です。リモートツールは別途データを送信する場合があります。
import math
def simplex_projection(values):
if type(values) is not list or not 1 <= len(values) <= 256:
raise ValueError("simplex.input")
if any(type(x) not in (int, float) or not -10**6 <= x <= 10**6 or not math.isfinite(x) for x in values):
raise ValueError("simplex.value")
ranked = sorted(values, reverse=True)
total, theta = 0.0, 0.0
for count, value in enumerate(ranked, 1):
total += value
candidate = (total-1)/count
if value > candidate:
theta = candidate
return [max(0.0, value-theta) for value in values]
レビューの全過程で数値の制約を明確にする
SimplexDuneは、アプリケーション内の数値変換をレビューする開発者向けのWindows AIコーディングワークスペースです。プロジェクトフォルダーと出力が満たすべき性質から始めます。接続したモデルは、要件がコードにどう表れるかの調査と範囲を絞った変更の検討を支援し、利用者は結果に依存する利用側と照らして提案をレビューします。
simplex_projection.pyから考えられる課題の1つは、ベクトルを合計1の非負の重みに変換することです。受け付ける入力、出力順、浮動小数点結果のチェックを調べるよう依頼します。代表的なベクトルを示し、後続の用途を説明してください。ワークスペースを内蔵の最適化機能やモデル学習サービスと捉えず、実際のソフトウェア契約に例を結び付けられます。
対応するOpenAI互換またはAnthropicのエンドポイントで利用可能なら、制限のないAIモデルを選びます。サーバーのコンテキストとツール対応を考慮し、アドレスと必要な認証情報を設定してください。編集案を調べ、数値計算環境で期待結果のチェックと出力特性のチェックを両方実行します。浮動小数点の厳密な等値比較が不適切な場合は、明示した許容誤差を使います。対話ではパッチの前提を明らかにし、必要な動作が保たれるか判断できるようにします。
制約付きの数値出力をレビューする
どの出力特性を明示的に求めるべきですか?
必要な長さ、順序、許容する符号、期待する合計と許容誤差を挙げ、利用側の要件も含めます。1つの制約を満たしても別の制約に違反する場合があるため、1つの集計値でレビューを終えないでください。
1との厳密な等値比較は信頼できる浮動小数点テストですか?
すべての計算でそうとは限りません。数値の契約とテスト環境に適した許容誤差を選び、チェック内で説明します。アサーションを黙って弱めるのではなく、表現上の影響と実際の制約違反を区別するよう依頼してください。
パッチで元のベクトルを並べ替えてよいですか?
出力契約が許す場合に限ります。計算内部ではソートしても、最終値は元の位置に対応する必要がある場合があります。利用側をレビューし、異なる値によって順序の誤りが見える入力をテストしてください。
特性チェックで期待結果の例を置き換えられますか?
異なる主張をテストするなら両方使ってください。ベクトルが非負で合計1でも、意図した射影とは限りません。独立に求めた小さな結果が変換の検証を助け、特性は出力契約のより広い面を確認します。
SimplexDune · 更新日 2026-10-25