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:

  1. $\lim_{x \to c} f(x) = \lim_{x \to c} g(x) = 0$ o $\pm\infty$
  2. Para todo $x \in (a,b)$: $g’(x) \neq 0$
  3. 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

  1. Aquí se asume $\log x$ diferenciable. Una alternativa sin este requerimiento es aplicar el Teorema de la Función Inversa. 

  2. 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)$.