Langkah distribusi Markov berhingga
Majukan vektor peluang hingga 100 transisi matriks Markov dengan maksimal delapan status.
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| Tinjau sebelum menerapkan | Bandingkan perilaku sebenarnya dengan hasil yang diharapkan. Jika pemeriksaan gagal, cari penyebabnya sebelum membuat perubahan lain. |
|---|---|
| Model | Atur endpoint kompatibel OpenAI atau Anthropic dengan URL dasar dan kunci API jika diperlukan. Uji koneksi. Server model lokal harus berjalan; alat jarak jauh dapat mengirim data secara terpisah. |
| Proyek | Uji nol langkah dan status menyerap, tolak nilai negatif dan jumlah baris yang menyimpang dari satu lebih dari 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 resultJaga kejelasan konvensi probabilitas sepanjang perubahan kode
StepMaranta menyediakan ruang kerja pemrograman AI untuk Windows bagi tugas pemodelan probabilitas, dengan konteks proyek dan percakapan bersama model terhubung. Mulailah dengan konvensi aplikasi untuk keadaan dan transisi, lalu identifikasi rutin serta kode penggunanya. Meminta penjelasan sebelum perubahan membantu membedakan ketidaksesuaian penafsiran dari kesalahan perhitungan.
Tugas transisi Markov berhingga dapat menentukan distribusi awal, matriks transisi berbasis baris, dan jumlah langkah terbatas. Sertakan rentang probabilitas yang diterima dan toleransi jumlah baris dalam permintaan. Tanyakan cara kode yang diusulkan mempertahankan kontrak itu pada nol langkah dan keadaan menyerap, alih-alih menerima keluaran hanya karena angkanya tampak masuk akal.
Tinjau perubahan yang dihasilkan menggunakan distribusi harapan eksplisit dalam pengujian proyek Anda sendiri. Periksa dimensi cacat dan nilai negatif secara terpisah dari perilaku transisi valid. Simpan masukan asli bersama keluaran saat meninjau mutasi. Pendekatan ini menghubungkan usulan numerik dengan persyaratan aplikasi yang teramati tanpa menyajikan ruang kerja sebagai layanan validasi statistik.
StepMaranta mendukung koneksi endpoint kompatibel OpenAI atau Anthropic dan kredensial jika diperlukan. Anda dapat memilih model AI tanpa batasan jika endpoint menawarkannya. Batasan, alat tersedia, dan batas konteks bergantung pada model serta server tersebut. Definisi konvensi transisi dan hasil verifikasi Anda tetap menjadi dasar penerimaan kode yang diusulkan.
Pertanyaan untuk tambalan model transisi
- Konvensi matriks apa yang harus saya berikan?
Nyatakan apakah setiap baris menjelaskan transisi dari suatu keadaan dan bagaimana distribusi awal direpresentasikan. Sertakan hasil harapan kecil. Ini membantu model memeriksa implementasi tanpa diam-diam mengganti dengan konvensi transposisi yang tidak digunakan pemanggil.
- Mengapa memeriksa nol langkah secara eksplisit?
Ini menjadikan distribusi awal yang tidak berubah sebagai persyaratan teramati dan dapat mengungkap mutasi yang tidak diinginkan. Nyatakan apakah objek hasil terpisah dibutuhkan, lalu uji nilai keluaran dan masukan asli dengan pemeriksaan proyek Anda sendiri sebelum menerima implementasi yang diusulkan.
- Bagaimana toleransi jumlah baris perlu dimasukkan dalam permintaan?
Berikan toleransi yang dibutuhkan aplikasi dan jelaskan apa yang terjadi di luarnya. Tinjau validasi secara terpisah dari perhitungan transisi. Model dapat membahas alternatif, tetapi tidak boleh diam-diam memilih ambang penerimaan berbeda saat menerapkan perubahan lain yang diminta.
- Apakah contoh keadaan menyerap yang lulus memvalidasi seluruh model?
Tidak. Contoh itu memeriksa satu perilaku kode yang berguna. Sertakan data uji relevan lainnya dan nilai kesesuaian asumsi model dengan aplikasi. Ruang kerja mendukung peninjauan sumber; ruang kerja tidak memastikan validitas ilmiah probabilitas yang Anda berikan.
StepMaranta · Diperbarui 2026-10-25