Sì, è possibile avere una catena infinita.
Sono sicuro che hai già familiarità con alcuni esempi:
Qui hai una catena infinita: polinomi di grado crescente. Puoi andare oltre? Sicuro! Un esponenziale cresce più velocemente (parlando asintoticamente) di qualsiasi polinomio.
E ovviamente puoi continuare:
O(x)⊆O(x2)⊆…⊆O(x42)⊆…
O(x)⊆O(x2)⊆…⊆O(x42)⊆…O(ex)
O(ex)⊆O(xex)⊆O(e2x)⊆O(eex)⊆…
Puoi costruire una catena infinita anche nell'altra direzione. Se allora (attenendosi a funzioni positive, dato che da parti discutiamo degli asintotici delle funzioni di complessità). Quindi abbiamo ad esempio:f=O(g)1g=O(1f)
O(x)⊆O(x2)⊆…⊆O(exx2)⊆O(exx)⊆O(ex)
In effetti, data qualsiasi catena di funzioni , puoi creare una funzione che cresce più velocemente di tutte. (Suppongo che le siano funzioni da a .) Innanzitutto, inizia con l'idea . Potrebbe non funzionare perché l'insieme può essere illimitato. Ma poiché siamo interessati solo alla crescita asintotica, è sufficiente iniziare in piccolo e crescere progressivamente. Prendi il massimo per un numero finito di funzioni.
f1,…,fnf∞fiNR+f∞(x)=max{fn(x)∣n∈N}{fn(x)∣n∈N}
f∞(x)=max{fn(x)∣1≤n≤N}if N≤x<N+1
Quindi per qualsiasi , , poiché . Se vuoi una funzione che cresce strettamente più velocemente ( ), prendi .
NfN∈O(f∞)∀x≥N,f∞(x)≥fN(x)f∞=o(f′∞)f′∞(x)=x⋅(1+f∞(x))