No, non puoi battere le query . Spiegherò come formalizzare lo schizzo di prova di exfret di questo, in un modo che funzioni per algoritmi adattativi. Tutto ciò è anticipato nella risposta di exfret; Sto solo compilando alcuni dei dettagli.Θ(n−−√)
Prendere in considerazione qualsiasi algoritmo (possibilmente adattivo) che le questioni di una sequenza di query, dove ogni query può essere "recuperano il ° margine del vertice 's lista di adiacenza" o 'verificare se i vertici sono collegati da un bordo'. Possiamo supporre che nessuna query venga ripetuta, poiché qualsiasi algoritmo che ripete una query può essere trasformato in uno che non ripete mai alcuna query. Allo stesso modo, possiamo supporre che l'algoritmo non esegua mai una query di connettività su alcuna coppia di vertici che sono già noti per essere connessi da un bordo (vale a dire, test quando stato precedentemente restituito da una query di recupero su , oppure era precedentemente restituito da una query di recupero suivv,wv,wwvvwo abbiamo precedentemente testato la connettività di ).w,v
Consenti a indicare l'evento che, durante le prime query, nessun vertice viene restituito da più di una query di recupero e nessuna query di recupero restituisce un vertice precedentemente interrogato e che nessuna query di test di connettività restituisce "connesso ". che se . Ne consegue che nessun algoritmo che esegue query può avere una probabilità costante di trovare un ciclo a 4.EkkwPr[Eq]=1−o(1)q=o(n−−√)o(n−−√)
Come lo dimostriamo? Calcoliamo . Esistono due casi: o la query è una query di recupero o è una query di test di connettività:Pr[Ek|Ek−1]k
Se il esima query è un recupero interrogare vertice , ci sono vertici menzionati fra i primi query, e se i th query restituisce uno di quelli allora avremo , tuttavia avremo . Ora la risposta alla esima query viene distribuita uniformemente su un insieme di vertici, dove contiene tutti i vertici che non sono stati restituiti dal fetch domande prima di , quindi la risposta alla esima query viene distribuito uniformemente su un set di dimensione almenokv2(k−1)k−1k¬EkEkkSSvkn−k+1. La probabilità di colpire almeno uno di questi è , quindi in questo caso, .≤2(k−1)/(n−k+1)Pr[Ek|Ek−1]≥1−2(k−1)/(n−k+1)
Se il esima query è una query di connettività-test, quindi .kPr[Ek|Ek−1]≥1−1/n−−√
In entrambi i casi, se abbiamoq=o(n−−√)
Pr[Ek|Ek−1]≥1−2(k−1)(n−k+1).
Adesso,
Pr[Eq]=∏k=1qPr[Ek|Eq−1].
Se , allorak≤q≤n−−√
Pr[Ek|Ek−1]≥1−2qn−q,
così
Pr[Eq]≥(1−2qn−q)q.
Il lato destro è approssimativamente . Quando , questo è .exp{−2q2/(n−q)}q=o(n−−√)1−o(1)
In conclusione: quando . Ne consegue che è necessario per avere una probabilità costante di trovare qualsiasi ciclo (per non parlare di un 4 cicli).Pr[Eq]=1−o(1)q=o(n−−√)Ω(n−−√)