from math import fsum, isfinite
def markov_steps(initial, matrix, steps):
if type(initial) is not list or not 1 <= len(initial) <= 8:
raise ValueError("state count")
n = len(initial)
if type(matrix) is not list or len(matrix) != n or any(
type(row) is not list or len(row) != n for row in matrix):
raise ValueError("square matrix")
rows = [initial] + matrix
if any(type(x) not in (int, float) or not 0 <= x <= 1 or
not isfinite(x) for row in rows for x in row):
raise ValueError("probability values")
if any(abs(fsum(row)-1) > 1e-12 for row in rows):
raise ValueError("row sums")
if type(steps) is not int or not 0 <= steps <= 100:
raise ValueError("step count")
result = initial[:]
for _ in range(steps):
result = [fsum(result[i] * matrix[i][j] for i in range(n))
for j in range(n)]
return result| 適用前に確認 | 実際の動作を期待する結果と比較します。検証に失敗した場合は、次の変更を加える前に原因を調べてください。 |
|---|---|
| モデル | OpenAI互換またはAnthropicのエンドポイントを、ベースURLと必要なAPIキーで設定し、接続をテストします。ローカルのモデルサーバーは起動が必要です。リモートツールは別途データを送信する場合があります。 |
| プロジェクト | ゼロ回と吸収状態を確認し、負値や1から1e-12を超えてずれる行和を拒否します。 |
from math import fsum, isfinite
def markov_steps(initial, matrix, steps):
if type(initial) is not list or not 1 <= len(initial) <= 8:
raise ValueError("state count")
n = len(initial)
if type(matrix) is not list or len(matrix) != n or any(
type(row) is not list or len(row) != n for row in matrix):
raise ValueError("square matrix")
rows = [initial] + matrix
if any(type(x) not in (int, float) or not 0 <= x <= 1 or
not isfinite(x) for row in rows for x in row):
raise ValueError("probability values")
if any(abs(fsum(row)-1) > 1e-12 for row in rows):
raise ValueError("row sums")
if type(steps) is not int or not 0 <= steps <= 100:
raise ValueError("step count")
result = initial[:]
for _ in range(steps):
result = [fsum(result[i] * matrix[i][j] for i in range(n))
for j in range(n)]
return resultコード変更を通じて確率の規約を明確に保つ
StepMarantaは、確率モデルの課題に、プロジェクトの文脈と接続したモデルとの対話を備えたWindows向けAIコーディングワークスペースを提供します。アプリケーションの状態と遷移の規約から始め、ルーチンと利用側を特定します。編集の前に説明を求めると、解釈の不一致と計算の誤りを区別しやすくなります。
有限マルコフ遷移の課題では、初期分布、行ベースの遷移行列、上限付きのステップ数を指定できます。許容する確率の範囲と行和の許容誤差を依頼に含めてください。数値がもっともらしいだけで出力を受け入れず、0ステップと吸収状態でコード案が契約をどう保つか尋ねます。
自分のプロジェクトテストで、明示的な期待分布と変更結果を照合します。不正な次元と負の値は、有効な遷移動作と分けて確認してください。入力の変更をレビューするときは、元の入力を出力と並べて残します。この方法は、ワークスペースを統計検証サービスと示すことなく、数値の提案を観測可能なアプリケーション要件に結び付けます。
StepMarantaはOpenAI互換またはAnthropicのエンドポイントへの接続と、必要な認証情報に対応します。接続先が提供すれば制限のないAIモデルを選べます。制限、利用可能なツール、コンテキストの上限はモデルとサーバーに依存します。コード案の採用では、利用者が定める遷移規約と検証結果が中心になります。
遷移モデルのパッチに関する質問
- どの行列規約を示すべきですか?
各行がある状態からの遷移を記述するか、初期分布をどう表すかを示し、小さな期待結果も含めます。呼び出し側が使わない転置された規約に黙って置き換えることなく、モデルが実装を調べやすくなります。
- 0ステップを明示的に確認するのはなぜですか?
初期分布が変わらないことを観測可能な要件にし、意図しない入力変更を発見できるためです。別の結果オブジェクトが必要か示し、実装案を採用する前に返された値と元の入力をプロジェクト独自のチェックでテストしてください。
- 行和の許容誤差はどう依頼に含めるべきですか?
アプリケーションが必要とする許容誤差と、それを超えた場合の動作を示します。検証は遷移計算と分けてレビューしてください。モデルは代案を検討できますが、無関係な変更の実装中に受け入れしきい値を黙って変えるべきではありません。
- 吸収状態の例が通ればモデル全体が検証されますか?
いいえ。コードの有用な1つの動作を確認するだけです。他の関連テストデータも含め、モデルの前提がアプリケーションに合うか評価してください。ワークスペースはソースレビューを支援しますが、入力した確率の科学的妥当性を確立するものではありません。
StepMaranta · 更新日 2026-10-25