Limite inferiore per trovare il kth elemento più piccolo usando argomenti avversari


10

In molti testi un limite inferiore per la ricerca di -esimo elemento più piccolo è derivato facendo uso di argomenti utilizzando mediane. Come posso trovarne uno usando un argomento avversario?k

Wikipedia afferma che l'algoritmo del torneo funziona in e è dato come limite inferiore.O(n+klogn)nk+j=n+2knlgj

Risposte:


8

Descriverò brevemente uno schizzo di una discussione avversaria.

Considera il tuo algoritmo di selezione che gioca contro un avversario che chiameremo avversario. Lo scopo dell'avversario è fornire un input per il tuo algoritmo che massimizzi il numero di operazioni di confronto eseguite dal tuo algoritmo. In effetti, il tuo algoritmo può essere visto come un albero di confronto, in cui un percorso corrisponde a un ordine parziale. Quando l'algoritmo chiede all'avversario di una coppia di elementi, l'avversario restituisce oppure . Le risposte dell'avversario non possono mai contraddire i risultati precedenti.X(x,y)x<yy<x

Supponiamo che l' elemento -esimo più grande sia : considerando l'ordine parziale associato a qualsiasi foglia dell'albero di confronto, allora deve essere comparabile con ogni altro elemento affinché l'algoritmo sia corretto, in modo che l'algoritmo sia corretto deve aver effettuato almeno un confronto cui risultato è o o . Chiama un simile confronto cruciale per un elemento . Ovviamente, l'avversario vuole massimizzare il numero di confronti non cruciali effettuati dal tuo algoritmo.kxx(y,z) yxy<zxxz<yy

Sia l'insieme di elementi più grandi; il tuo algoritmo deve identificare correttamente tutti gli elementi in e anche l'elemento più grande in , ovvero . Osserva che ogni elemento in ha perso almeno un confronto cruciale. Ora, l'avversario ha una strategia che obbliga ciascuno dei elementi in a vincere almeno confronti, nessuno di che è cruciale per . Aggiungendo i rimanenti confronti cruciali perLk1LXLxXLk1Llgnk1XLnkXLottieni il limite inferiore. Per i dettagli, leggi le seguenti, eccellenti note di Jeff Erikson .


@JeffE Sono confuso sulla definizione di crucial comparison for $y$: i confronti dove o and è l'obiettivo elemento. Che cosa succede se non conosciamo la relazione tra e quando vengono effettuati questi confronti? Abbiamo un oracolo qui? O siamo onniscienti con le informazioni complete (anche le informazioni future nella foglia)? y:zy<zxxz<yxzx
hengxin,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.