37 - Fermarsi senza conoscere il futuro: i tempi di arresto
18-09-2026
Probabilità e combinatoria nei giochi
MATH
18-09-2026
Probabilità e combinatoria nei giochi
Negli articoli 35 e 36 abbiamo iniziato a osservare una random walk come un processo che evolve passo dopo passo.
Ora aggiungiamo una nuova domanda:
quando decidiamo di smettere di osservare il processo?
Sembra una domanda innocua, ma esistono due tipi molto diversi di regole.
Una regola può dire:
mi fermo la prima volta che il saldo raggiunge +3
Questa decisione può essere presa realmente mentre il processo si svolge.
Un'altra può dire:
mi fermo nell'ultima volta in cui il saldo sarà zero prima del passo 10
Questa seconda frase definisce certamente un istante della traiettoria, ma per riconoscerlo mentre siamo lì dovremmo conoscere ciò che accadrà dopo.
La distinzione è il cuore dei tempi di arresto.
Indichiamo con:
S_0, S_1, S_2, ...
la random walk osservata passo dopo passo.
Un tempo casuale T è un tempo di arresto se, arrivati al passo n, possiamo stabilire se:
$$ T = n $$
usando soltanto ciò che abbiamo osservato fino a quel momento.
Possiamo usare:
il passo corrente
il saldo corrente
tutti i passi precedenti
tutta la storia già osservata
ma non possiamo usare:
un risultato futuro
un massimo che verrà raggiunto più avanti
l'ultima visita a uno stato, se non sappiamo ancora se torneremo
Durrett formalizza questa idea dicendo che la decisione al tempo n deve dipendere dall'informazione disponibile al tempo n.
Nel corpo di questo articolo ci basta questa lettura operativa; non abbiamo bisogno del formalismo delle sigma-algebre.
flowchart TD
O["Osserva Sₙ"] --> C{"|Sₙ| = 3?"}
C -->|No| N["Osserva il passo successivo"]
N --> O
C -->|Sì| T["T = n: arresto"]
La decisione usa soltanto l'informazione disponibile al tempo n: non richiede di conoscere il futuro.
Consideriamo ancora la random walk semplice simmetrica:
+1 con probabilità 1/2
-1 con probabilità 1/2
Definiamo:
T = primo n tale che |S_n| = 3
cioè ci fermiamo appena il saldo raggiunge +3 oppure -3.
Questa è una regola utilizzabile in tempo reale.
Al passo n conosciamo S_n.
Se:
$$ |S_n| < 3 $$
continuiamo.
Se:
$$ |S_n| = 3 $$
ci fermiamo.
Non serve conoscere nessun passo futuro.
Questo tipo di tempo viene chiamato hitting time, tempo di primo raggiungimento di un insieme di stati.
Nel nostro caso l'insieme è:
{-3,+3}
Partendo da zero, per arrivare a +3 o -3 servono almeno tre passi.
Quindi:
$$ T \ge 3 $$
Inoltre la parità della random walk impone:
$$ T = 3, 5, 7, 9, ... $$
Non possiamo raggiungere una posizione dispari dopo un numero pari di passi.
Per avere T=3 dobbiamo fare:
+++
oppure:
---
Sono 2 sequenze su 2^3=8, quindi:
P(T=3)
=
2/8
=
1/4
=
25%
La probabilità di non avere ancora raggiunto ±3 è:
$$ 1 - 1/4 = 3/4 $$
Se siamo ancora in gioco dopo il terzo passo, il saldo può essere soltanto:
-1 oppure +1
Da uno di questi due stati, nei due passi successivi c'è probabilità 1/4 di raggiungere la barriera dalla stessa parte:
+1 -> +2 -> +3
oppure:
-1 -> -2 -> -3
Perciò:
P(T=5)
=
(3/4)(1/4)
=
3/16
=
18,75%
Lo stesso ragionamento si ripete ogni due passi finché la soglia non viene raggiunta:
$$ \begin{gathered} P(T=3) = 1/4 \ P(T=5) = 3/16 \ P(T=7) = 9/64 \ P(T=9) = 27/256 \ P(T=11) = 81/1024 \end{gathered} $$
In generale, per k=1,2,3,...:
$$ P(T=2k+1) = (3/4)^{k-1} \cdot 1/4 $$
Per non aver raggiunto ±3 entro il passo 11 dobbiamo sopravvivere a cinque occasioni successive di arresto:
P(T>11)
=
(3/4)^5
=
243/1024
≈
23,73046875%
Quindi:
P(T<=11)
=
1 - 243/1024
=
781/1024
≈
76,26953125%
Questo è un calcolo sulla prima volta in cui tocchiamo la soglia.
Non va confuso con:
$$ P(|S_{11}|=3) $$
che guarda soltanto la posizione finale al passo 11 e dimentica se la traiettoria aveva già toccato ±3 in precedenza.
È la stessa differenza introdotta nell'articolo 35 fra endpoint e traiettoria.
La distribuzione appena trovata permette anche di calcolare il valore atteso.
Se K conta quale delle occasioni di arresto è quella vincente, allora:
$$ K = 1,2,3,... $$
con probabilità di successo 1/4 a ogni occasione.
Quindi K ha media:
$$ E[K]=4 $$
Il tempo corrispondente è:
$$ T=2K+1 $$
perciò:
E[T]
=
2E[K]+1
=
9
Per la soglia ±3, quindi, il primo raggiungimento avviene in media dopo 9 passi.
Questo numero non significa che la soglia debba essere raggiunta entro il nono passo. Come abbiamo già visto per le distribuzioni geometriche, un valore atteso non è una scadenza.
La regola:
$$ T = 10 $$
è banalmente un tempo di arresto.
Al passo 10 sappiamo che dobbiamo fermarci; prima sappiamo che non dobbiamo farlo.
Possiamo anche combinare una soglia con un orizzonte massimo:
T = min(
primo raggiungimento di ±3,
11)
La regola significa:
fermati appena raggiungi ±3;
se non succede prima, fermati comunque al passo 11
Anche questa decisione utilizza soltanto informazione disponibile.
Questa versione limitata sarà importante nell'articolo successivo, perché un orizzonte massimo rende molto più semplice controllare rigorosamente che cosa succede al valore atteso quando introduciamo una regola di stop.
Consideriamo invece:
L = ultima volta, entro il passo 10,
in cui il saldo è zero
L è perfettamente definito dopo che abbiamo visto l'intera traiettoria.
Ma non è un tempo di arresto.
Supponiamo che i primi quattro passi siano:
+1, -1, +1, -1
La storia osservata è:
0 -> 1 -> 0 -> 1 -> 0
Al passo 4 siamo a zero.
Ora immaginiamo due futuri diversi, entrambi compatibili con esattamente la stessa storia fino al passo 4.
Primo futuro:
0 -> 1 -> 2 -> 3 -> 4 -> 5 -> 6
Dopo il passo 4 non torniamo più a zero, quindi:
$$ L=4 $$
Secondo futuro:
0 -> 1 -> 2 -> 1 -> 0 -> 1 -> 2
Qui torniamo a zero al passo 8, quindi:
$$ L=8 $$
Al passo 4 l'informazione disponibile è identica nei due casi.
Eppure per una traiettoria dovremmo decidere:
fermati: L=4
mentre per l'altra:
non fermarti: L non è ancora arrivato
La differenza è contenuta esclusivamente nel futuro.
Per questo L non è un tempo di arresto.
Questa distinzione è importante.
Un tempo di arresto è certamente una variabile casuale che assume valori temporali, ma non vale il contrario.
Possiamo definire, dopo aver osservato una traiettoria completa:
il momento dell'ultimo zero
il momento del massimo finale
il passo precedente alla più lunga serie futura di +1
Sono tutti tempi casuali ben definiti.
Ma per fermarci realmente in uno di quei momenti dovremmo conoscere il futuro.
La parola arresto contiene quindi un requisito informativo, non soltanto temporale.
Nell'articolo 36 abbiamo chiesto quale barriera venga raggiunta per prima:
0 oppure B
Possiamo ora dare un nome al tempo in cui la partita termina:
T
=
primo n tale che S_n appartiene a {0,B}
Questo T è un hitting time e quindi un tempo di arresto.
La probabilità di assorbimento calcolata nell'articolo precedente riguardava dunque già implicitamente una regola di arresto, anche se non avevamo ancora introdotto il termine.
Per il nostro esempio possiamo mantenere separati tre compiti:
1. calcolare esattamente la distribuzione del primo hit di ±3;
2. simulare una regola di stop che legge soltanto tempo e saldo correnti;
3. mostrare con due traiettorie perché l'ultimo zero entro un orizzonte usa il futuro.
Uno snippet minimale per una regola valida è:
static bool SogliaRaggiunta(
int saldo,
int soglia)
{
if (soglia <= 0)
throw new ArgumentOutOfRangeException(nameof(soglia));
return Math.Abs(saldo) >= soglia;
}
Dopo ogni passo possiamo chiamare questa funzione usando soltanto il saldo appena osservato.
Il file standalone associato all'articolo verifica inoltre esattamente:
P(T=3) = 1/4
P(T=5) = 3/16
P(T=7) = 9/64
P(T=9) = 27/256
P(T=11) = 81/1024
P(T<=11) = 781/1024
E[T] = 9
Lo standalone C# associato a questo articolo è:
TempiArresto.cs
La simulazione usa un seed fisso ed è soltanto una verifica empirica del comportamento già descritto matematicamente.
Un tempo di arresto non significa semplicemente:
un momento casuale in cui qualcosa accade
Significa:
un momento casuale che possiamo riconoscere
quando arriva,
con le informazioni disponibili fino a quel momento
Il primo raggiungimento di una soglia soddisfa questa regola.
L'ultima visita a zero prima di un orizzonte futuro no.
Questa distinzione ci permette finalmente di formulare in modo corretto una delle domande più frequenti nei giochi e nei processi casuali:
se scelgo una regola intelligente per fermarmi,
posso cambiare il valore atteso?
È la domanda dell'articolo 38.