En el análisis de algoritmos es conveniente a veces omitir la base del logaritmo al tratar con costos logarítmicos asintóticos expresados en la notación . Por ejemplo, si la búsqueda binaria tiene en el peor caso un costo de $\lfloor\log_2 x + 1\rfloor$ comparaciones, entonces decimos que este costo es de orden $O(\log_2 x)$ o simplemente $O(\log x)$, aunque se pierda información. Este es un “abuso de notación” válido.
Intuición
Los logaritmos en diferentes bases difieren únicamente en un factor constante, estos factores son despreciados en la notación y sus semejantes y . Por lo tanto, todos los logaritmos pertenecen al mismo orden de crecimiento.
Algo similar sucede con las funciones de la forma $\log_\alpha (x^c)$. Por propiedad de logaritmos:
entonces
Definiciones
Sean las funciones $f,g \ \colon \mathbb{R}\to\mathbb{R}$. Entonces $f$ es $O(g)$ si y solo si existen constantes $c \gt 0$ y $x_0$ tal que para todo $x \geq x_0$ : $\len{f(x)} \leq c \cdot \len{g(x)}$. Es decir:
Sean las funciones $f,g\ \colon \mathbb{R}\to\mathbb{R}$. Entonces $f$ es $O(g)$ si y solo si $f$ esta acotado superiormente por $g$ cuando $x \to \infty$ (asumiendo $g(x) \neq 0$). Es decir:
Resultados útiles
Sea $\log_{\alpha} x$ el logaritmo en base $\alpha$ de $x$. Entonces:
Sean $z$ e $y$ funciones tal que:
Luego:
Por lo tanto, si
entonces
donde $\log_{\beta} \alpha$ es un factor constante.
Sea $\log_{\alpha} x$ el logaritmo en base $\alpha$ de $x$. Entonces:
Comenzamos con el caso particular $\alpha=e$:
Diferenciando respecto a $x$ en ambos lados: 1
Luego, para el caso general usamos el resultado previo y el Lema 1:
Sean $f$ y $g$ dos funciones continuas definidas en el intervalo $[a,b]$ y derivables en $(a,b)$ con $c \in (a,b)$ tal que:
- $\lim_{x \to c} f(x) = \lim_{x \to c} g(x) = 0$ o $\pm\infty$
- Para todo $x \in (a,b)$: $g’(x) \neq 0$
- Existe $\lim_{x \to c} \frac{f’(x)}{g’(x)} = L$ con $L \in \mathbb{R}$
Entonces:
Teorema principal
Sean $\alpha,\beta \in \mathbb{R}$ tal que $\alpha \gt 1$ y $\beta \gt 1$. Entonces: $\ \log_{\alpha} x$ es $O(\log_{\beta} x)$
Demostración 1
Por la definición 1.1:
Por el lema 1 tenemos:
La función $\log$ es negativa en $(0,1)$. Tomamos valor absoluto:
Donde $c = \frac{1}{\log_{\beta} \alpha} \gt 0$, y podemos seleccionar cualquier $x_0 \gt 0$.
Por lo tanto $\log_{\alpha} x \in O(\log_{\beta} x)$.
Demostración 2
Por la definición 1.2:
La función $\log$ es continua, derivable y estrictamente creciente en todo su dominio, por esto el límite siempre existe y prescindimos del supremo. Además, $\log$ es positiva en $(1, \infty)$ y por esto también prescindimos del valor absoluto. Luego:
Para levantar la indeterminación $\frac{\infty}{\infty}$ aplicamos el lema 3:
Donde $c = \frac{\log_e \beta}{\log_e \alpha} \in \lbrack 0,\infty)$. 2
En particular, si $\beta = e$, entonces: $c=\frac{\log_e e}{\log_e \alpha}=\frac{1}{\log_e \alpha} \gt 0$.
Por lo tanto $\log_{\alpha} x \in O(\log_{\beta} x)$.
Como consecuencia del Teorema 1, se acostumbra omitir la base $\beta$ escribiendo simplemente $\log_{\alpha} x \in O(\log x)$. Esto se puede demostrar similarmente para y .
Referencias
-
Aquí se asume $\log x$ diferenciable. Una alternativa sin este requerimiento es aplicar el Teorema de la Función Inversa. ↩
-
Siendo más preciso, $\frac{\log_e \beta}{\log_e \alpha} \in (0,\infty)$ porque nunca puede ser 0. Este resultado satisface la definición por límite de , por lo tanto se tiene un resultado más fuerte: $\log_{\alpha} x \in \Theta(\log_{\beta} x)$, lo cual implica $\log_{\alpha} x \in O(\log_{\beta} x)$ y $\log_{\alpha} x \in \Omega(\log_{\beta} x)$. ↩