SStepMaranta
AI-werkruimte voor code

Stappen van eindige Markov-verdelingen

Voer een kansvector door maximaal 100 overgangen van een Markov-matrix met hoogstens acht toestanden.

● ● ●StepMaranta●
Werkprocessen · Stappen van eindige Markov-verdelingen ×
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
✳Voer een kansvector door maximaal 100 overgangen van een Markov-matrix met hoogstens acht toestanden.
✓ WijzigingenControleer vóór het toepassen ↗
Illustratie van de werkruimte
Controleer vóór het toepassenVergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.
ModellenStel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen.
ProjectTest nul stappen en absorberende toestanden en wijs negatieve waarden en rijsommen met meer dan 1e-12 afwijking van één af.
Werkprocessen

Stappen van eindige Markov-verdelingen

Werkprocessen ↗
Werkprocessen
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
AI-werkruimte voor code

Houd kansconventies tijdens een codewijziging duidelijk

StepMaranta biedt voor kansmodellering een AI-programmeeromgeving voor Windows met projectcontext en een gesprek met een verbonden model. Begin met de conventie van de toepassing voor toestanden en overgangen en benoem vervolgens de routine en de gebruikende code. Vóór een bewerking om uitleg vragen helpt een interpretatieverschil van een rekenfout te onderscheiden.

Een taak met eindige Markov-overgangen kan een beginverdeling, een rijgebaseerde overgangsmatrix en een begrensd aantal stappen vastleggen. Neem het geaccepteerde kansbereik en de tolerantie voor rijsommen mee in het verzoek. Vraag hoe de voorgestelde code dat contract bij nul stappen en in een absorberende toestand behoudt, in plaats van uitvoer te accepteren omdat de getallen aannemelijk lijken.

Beoordeel de wijziging met expliciete verwachte verdelingen in je eigen projecttests. Controleer ongeldige afmetingen en negatieve waarden apart van geldig overgangsgedrag. Bewaar bij het beoordelen van mutatie de oorspronkelijke invoer naast de uitvoer. Zo verbind je een numeriek voorstel met waarneembare toepassingseisen zonder de omgeving als statistische validatiedienst voor te stellen.

StepMaranta ondersteunt verbindingen met OpenAI-compatibele of Anthropic-endpoints en zo nodig inloggegevens. Je kunt een AI-model zonder beperkingen kiezen als je endpoint dat aanbiedt. Beperkingen, beschikbare tools en contextlimieten hangen af van dat model en die server. Jouw definitie van de overgangsconventie en verificatieresultaten blijven centraal bij het accepteren van de voorgestelde code.

Vragen bij een patch voor een overgangsmodel

Welke matrixconventie moet ik geven?

Geef aan of elke rij overgangen vanuit een toestand beschrijft en hoe de beginverdeling wordt weergegeven. Voeg een klein verwacht resultaat toe. Zo kan het model de implementatie bekijken zonder stilzwijgend een getransponeerde conventie te gebruiken die je aanroepers niet hanteren.

Waarom nul stappen expliciet controleren?

Dat maakt de ongewijzigde beginverdeling een waarneembare eis en kan onbedoelde mutatie onthullen. Geef aan of een afzonderlijk resultaatobject nodig is en test daarna de teruggegeven waarden en oorspronkelijke invoer met je eigen projectcontroles voordat je de implementatie accepteert.

Hoe neem ik rijsomtolerantie in het verzoek op?

Geef de tolerantie die je toepassing vereist en leg uit wat buiten die grens gebeurt. Beoordeel validatie apart van de overgangsberekening. Een model kan alternatieven bespreken, maar mag niet stilzwijgend een andere acceptatiegrens kiezen bij het uitvoeren van een losstaande wijziging.

Valideert een geslaagd absorberende-toestandvoorbeeld het hele model?

Nee. Het controleert één nuttig codegedrag. Neem andere relevante testgevallen mee en beoordeel of de modelaannames bij je toepassing passen. De omgeving ondersteunt broncodebeoordeling; zij bewijst niet de wetenschappelijke geldigheid van de kansen die je aanlevert.

Download voor Windows ↗

StepMaranta · Bijgewerkt 2026-10-25