Esercizio - inversioni di una permutazione casuale e confronti dell'insertion sort
Teoria: Linearità del valore atteso e variabili indicatriciLa linearità $E[X+Y]=E[X]+E[Y]$ vale sempre, anche senza indipendenza; con le variabili indicatrici ($E[I_A]=P(A)$) trasforma un conteggio in una somma di probabilità. Applicazioni: attesa del primo successo $1/p$, collezionista di figurine $nH_n$, punti fissi di una permutazione (media $1$), record (media $H_n$), inversioni ($n(n-1)/4$), attesa condizionata, identità di Wald $E[S_N]=E[N]E[X]$.Linearità del valore atteso e variabili indicatrici →; l'algoritmo è in Algoritmi di ordinamentoSelection sort e insertion sort (quadratici, con invarianti), merge sort (divide et impera, Theta(n log n)), quick sort (caso pessimo quadratico, medio n log n), heap sort (in loco, Theta(n log n)), ordinamento senza confronti per chiavi intere in un intervallo piccolo, limite inferiore Omega(n log n) per gli algoritmi basati su confronti.Algoritmi di ordinamento → (insertion sort).
Testo. Una inversione di una sequenza di numeri distinti è una coppia con . La sequenza è una permutazione uniforme.
- Calcolare il numero atteso di inversioni, per generico e per (controllo con tutte le permutazioni).
- L'insertion sort fa un confronto per ogni inversione risolta, più al più un confronto "falso" per iterazione. Dimostrare che il numero atteso di confronti è e calcolarlo per .
- Verificare su (che ha confronti).
Soluzione
1. Inversioni. Per ogni coppia di posizioni sia se . I due valori sono distinti e l'ordine relativo è uniforme: . Le coppie sono : Per : . Enumerando le permutazioni il totale delle inversioni è , media (le sono dipendenti, ma non serve).
2. Confronti dell'insertion sort. Alla iterazione () l'elemento scorre a sinistra confrontandosi con i predecessori maggiori (ognuno è un confronto vero e una inversione risolta). Poi si ferma: o perché trova un predecessore minore (un confronto falso), o perché è arrivato in testa (nessun confronto in più). Quindi è un nuovo minimo del prefisso con probabilità (come per i record: Linearità del valore atteso e variabili indicatriciLa linearità $E[X+Y]=E[X]+E[Y]$ vale sempre, anche senza indipendenza; con le variabili indicatrici ($E[I_A]=P(A)$) trasforma un conteggio in una somma di probabilità. Applicazioni: attesa del primo successo $1/p$, collezionista di figurine $nH_n$, punti fissi di una permutazione (media $1$), record (media $H_n$), inversioni ($n(n-1)/4$), attesa condizionata, identità di Wald $E[S_N]=E[N]E[X]$.Linearità del valore atteso e variabili indicatrici →). Gli tra e che sono nuovi minimi sono in media . I confronti falsi sono meno questi: Per : . Il caso peggiore () è lontano, il migliore () pure: la media è quadratica () ma con costante .
3. Controllo su . Le inversioni sono , cioè . I nuovi minimi del prefisso agli indici sono (indice 1) e (indice 3): di . I confronti falsi sono e il totale è , il valore dell'esecuzione a mano (Algoritmi di ordinamentoSelection sort e insertion sort (quadratici, con invarianti), merge sort (divide et impera, Theta(n log n)), quick sort (caso pessimo quadratico, medio n log n), heap sort (in loco, Theta(n log n)), ordinamento senza confronti per chiavi intere in un intervallo piccolo, limite inferiore Omega(n log n) per gli algoritmi basati su confronti.Algoritmi di ordinamento →).
Risultato. ( per ); ( per ).
Verifica Python: enumerazione di tutte le permutazioni con un insertion sort che conta i confronti: medie esatte (), (), (), uguali alla formula; per il codice conta .
Versione ripasso
- Inversione: con . per l'ordine relativo uniforme, (Linearità del valore atteso e variabili indicatriciLa linearità $E[X+Y]=E[X]+E[Y]$ vale sempre, anche senza indipendenza; con le variabili indicatrici ($E[I_A]=P(A)$) trasforma un conteggio in una somma di probabilità. Applicazioni: attesa del primo successo $1/p$, collezionista di figurine $nH_n$, punti fissi di una permutazione (media $1$), record (media $H_n$), inversioni ($n(n-1)/4$), attesa condizionata, identità di Wald $E[S_N]=E[N]E[X]$.Linearità del valore atteso e variabili indicatrici →); : (totale su permutazioni: ).
- Insertion sort (Algoritmi di ordinamentoSelection sort e insertion sort (quadratici, con invarianti), merge sort (divide et impera, Theta(n log n)), quick sort (caso pessimo quadratico, medio n log n), heap sort (in loco, Theta(n log n)), ordinamento senza confronti per chiavi intere in un intervallo piccolo, limite inferiore Omega(n log n) per gli algoritmi basati su confronti.Algoritmi di ordinamento →): confronti inversioni confronti falsi; falsi , e il nuovo minimo in posizione ha probabilità , in media in totale.
- ; : .
- : inversioni , nuovi minimi agli indici e , falsi , totale .
- Verifica: enumerazione esatta per .
- Errore tipico: dimenticare i confronti falsi (si otterrebbe solo ).