CÓDIGOS DE ESTADOS FINITOS
4. CONSTRUCCIÓN DE CÓDIGOS DE ESTADOS FINITOS
Típicamente, el algoritmo anterior se emplea del siguiente modo: comenzar con v siendo el vector cuyas componentes son todas 1 y aplicar el algoritmo; si la respuesta es un vector no nulo, ya tenemos el autovector aproximado que buscamos. En caso contrario, tomar v siendo el vector cuyas componentes son todas 2, y así sucesivamente. El teorema 6.17 asegura que en algún momento terminaremos con este procedimiento, pues existe un (A, n)-AA v. Si hacemos p = m´axIvI, aplicando el algoritmo comenzando con el vector cuyas componentes son todas p,
se obtendrá como respuesta un vector no nulo (ejercicio).
Ejemplo 6.18. Apliquemos el algoritmo anterior a la matriz A = 1 36 1
y el n = 5 del ejemplo 6.13. Comenzando con v = 11
, obtenemos sucesivamente 1 1 → 0 1 → 0 0 → 0 0 Comenzando con v = 22 , obtenemos sucesivamente 2 2 → 1 2 → 1 1 → 0 1 → 0 0 → 0 0 Comenzando con v = 33 , obtenemos sucesivamente 3 3 → 2 3 → 2 3
y hemos obtenido el más pequeño de los (A, 5)-autovectores aproximados. 4. Construcción de códigos de estados nitos
En esta sección completaremos la demostración del Teorema de los Códigos de Estados Finitos. Lo haremos de manera constructiva, es decir, proporcionando también un método para construir el CEF, conocidos n y el shift sóco X con h(X) ≥ log n.
El primer paso es obtener una presentación resolvente a derecha (G0, L0) para X. Luego,
basados en el corolario 5.24, elegimos una componente irreducible G = (G00, L) con h (X G) =
h (XG0) = h(X) ≥ log n. A partir de G, y siguiendo una adecuada secuencia de desdoblamientos
de estados de grafos rotulados, construimos una presentación de X en la que desde cada vértice salen al menos n aristas, y en esa presentación eliminamos algunas aristas para obtener un grafo G en el que, desde cada vértice, queden saliendo exactamente n aristas. La función rotuladora restringida a esas aristas será nuestra rotuladora de salidas O, y como rotuladora de entradas I elegimos cualquier coloreo de rutas del grafo que resulta. Así obtenemos el CEF (G, I, O) que buscamos.
Para ello, necesitamos demostrar una proposición que constituye el corazón de la demos- tración de que efectivamente existe aquella secuencia de desdoblamientos de estados de grafos rotulados de la que hablamos más arriba. Y dicha proposición usa un sencillo hecho de teoría de números que enunciamos a continuación.
Lema 6.19. Sea {mi}ni=1una sucesión de n enteros positivos. Entonces, existe S ⊆ {1, . . . , n}
tal que n es factor de Pi∈Smi.
Demostración. Para cada N ∈ {1, . . . , n}, sea pN =
PN
i=1mi mod n.
Si los pN son todos distintos, debe haber algún N∗ tal que pN∗ = 0 (pues los posibles restos
de una división por n son 0, 1, . . . , n − 1) y, en ese caso n es factor de PN∗
i=1mi; luego, basta
72 6. CÓDIGOS DE ESTADOS FINITOS
Si no son todos distintos, debe haber N1 < N2 tales que pN1 = pN2. Eso signica que
PN1
i=1mi =
PN2
i=1mi mod n, es decir, P N2
i=N1+1mi = 0 mod n. De aquí que P
N2
i=N1+1mi es
múltiplo de n; luego, basta tomar S = {N1+ 1, . . . , N2}para ver que el enunciado es cierto.
Proposición 6.20. Sean n un entero positivo, G = (V, Σ, i, t) un grafo irreducible con matriz de adyacencia A, y v > 0 un (A, n)-autovector aproximado. Supongamos que algún estado K∗ ∈ V tiene menos de n aristas saliendo de él. Entonces, existe I ∈ V y una partición
de ΣI en subconjuntos no vacíos Σ1I y Σ2I tal que el grafo G0 que resulta de desdoblar I en
I1, I2 usando esa partición posee matriz de adyacencia A0 que admite un (A0, n)-autovector aproximado v0 > 0 con v0
I1 + vI02 = vI y v0J = vJ para todo J ∈ V − {I1, I2}.
Demostración. Sea p = m´axJ ∈V vJ. Notar que debe haber algún estado K tal que vK < p,
pues, de lo contrario, tendríamos que ∀K ∈ V, vK = p y entonces PLAK∗LvL= pP
LAK∗L =
p |ΣK∗|; como v es (A, n)-AA, tendríamos que p |ΣK∗| ≥ nvK∗ = np, es decir, |ΣK∗| ≥ n,
contradiciendo la hipótesis de que desde K∗ salen menos de n aristas.
Elijamos entonces I0, K ∈ V tales que v
K < py vI0 = p. Como G es irreducible, hay camino
en G desde I0 hasta K. Sea I el último estado en el recorrido de ese camino tal que v
I = p, y
e∗ la arista de ese camino que sale del estado I. Observar que vt(e∗) < p.
Designemos m = |ΣI|. Como v es (A, n)-AA, es Pe∈ΣIvt(e) ≥ nvI = np(observación 6.14).
Además, ∀e ∈ ΣI, vt(e) ≤ p y ∃e∗ ∈ ΣI : vt(e∗) < p. Luego, P
e∈ΣIvt(e) < p |ΣI| = pm. De
lo anterior, tenemos que m > n, es decir, hay más de n aristas saliendo de I. Enumeremos las aristas de G que salen de I como e1, . . . , en, . . . , em con e1 = e∗. Aplicando el lema 6.19 a
la sucesión vt(e1), . . . , vt(en)
, vemos que existe S ⊆ {1, . . . , n} tal que Pi∈Svt(ei) = qn para
algún q ∈ Z+. Designemos Σ1
I = {ei : i ∈ S} y Σ2I = ΣI − Σ1I. Tendremos que Σ1I 6= ∅ 6= Σ2I
(pues |ΣI| > |Σ1I|). Sea G
0 = (V0, Σ0, i0, t0) el grafo que resulta de hacer un desdoblamiento
elemental de G por el estado I usando la partición ΣI = {Σ1I, Σ2I}, y llamemos A
0 a su matriz
de adyacencia. Denamos v0 mediante:
v0J = q si J = I1 vI − q si J = I2 vJ si J ∈ V − {I1, I2}
Veamos que v0 así denido es positivo. Para J 6= I2, v0
J > 0 pues q > 0 y vJ > 0. Y para
ver que v0
I2 > 0, notemos que nq = Pe∈Σ1
Ivt(e) ≤
Pn
i=1vt(ei) < np, pues vt(e1) = vt(e∗) < p y
vt(ei) ≤ p para i ∈ {2, . . . , n} (así que P
n
i=1vt(ei) < np); de allí que q < p y, en consecuencia,
v0I2 = vI− q = p − q > 0.
Tengamos presente que cada arista e de G que no termina en I es también arista en G0 y
cumple que v0
t0(e) = vt(e); en tanto, cada arista e de G que termina en I (incluidos los rulos en
I) aparece desdoblada en G0 como e1 y e2, siendo v0
t0(e1)+ v 0 t0(e2)= v 0 I1 + v 0 I2 = vI = vt(e).
Resta ver que v0 es (A0, n)-AA. Lo haremos por la segunda caracterización dada en la
observación 6.14.
Si J = I1: Designemos ∆1 a los rulos en I1, ∆2 a las aristas que van de I1 a I2 y ∆ a
las que salen de I1 y no terminan ni en I1 ni en I2 (siendo ∆ ⊂ Σ1
I). Se tiene que Σ0I1
es la unión disjunta ∆ ∪ ∆1∪ ∆2, y además Σ1
I es la unión disjunta de ∆ con los rulos
en I que están en Σ1
I. Por lo dicho más arriba, por cada arista e1 ∈ ∆1 hay una arista
e2 ∈ ∆2 y viceversa; y cada pareja e1, e2 proviene de un rulo e ∈ ΣI
I∩ Σ1I. Entonces, X e∈Σ0 I1 v0t0(e) = X e∈∆ v0t0(e)+ X e∈∆1 v0t0(e)+ X e∈∆2 v0t0(e)= X e∈∆ vt(e) + X e∈ΣI I∩Σ1I v0t0(e)+ vt00(e) = X e∈∆ vt(e)+ X e∈ΣI I∩Σ 1 I vt(e) = X e∈Σ1 I vt(e) = nq = nv0I1
4. CONSTRUCCIÓN DE CÓDIGOS DE ESTADOS FINITOS 73
Si J = I2: Por análisis similar al realizado en el caso anterior, resulta P e∈Σ0 I2 vt00(e) = P e∈Σ2 Ivt(e), y, como Σ 2 I = ΣI − Σ1I, se tiene que X e∈Σ0 I2 v0t(e) = X e∈ΣI−Σ1I vt(e) = X e∈ΣI vt(e) ! − nq ≥ nvI− nq = n(vI − q) = nv0I2
Si J /∈ {I1, I2}: Designemos ∆1 a las aristas que van de J a I1, ∆2 a las que van de
J a I2 y ∆ a las que van de J hasta un vértice distinto de I1 y de I2. Se tiene que
Σ0J es la unión disjunta ∆ ∪ ∆1 ∪ ∆2. Como antes, por cada arista e1 ∈ ∆1 hay una
arista e2 ∈ ∆2 y viceversa; y cada pareja e1, e2 proviene de una arista e en G desde J
hasta I. Procediendo de manera análoga a lo anterior, se llega a ver que Pe∈Σ0 Jv 0 t0(e)= P e∈ΣJ vt(e) ≥ nvJ = nv 0 J.
Es decir, para todos los vértices de G0 se cumple la desigualdad requerida en la observación
6.14 en cuanto a v0, A0 y n, resultando entonces que v0 es un (A0, n)-AA.
Teorema 6.21. Sean n ∈ Z+ y G un grafo irreducible con matriz de adyacencia A. Si
λA ≥ n, entonces existe una sucesión de grafos G0, G1, . . . , Gm tales que G0 = G, Gm tiene
al menos n aristas saliendo desde cada vértice, y para cada i ∈ {1, . . . , m}, Gi resulta de un
desdoblamiento elemental de Gi−1.
Demostración. Sea v > 0 un (A, n)-AA, cuya existencia está garantizada por el teorema 6.16. Hagamos G0 = G. Si desde cada estado de G salen al menos de n aristas, tomamos m = 0
y el enunciado se cumple. En caso contrario, sea G1 el grafo que resulta de aplicar a G0 la
proposición 6.20, cuya matriz de adyacencia tendrá un autovector aproximado v(1) > 0 cuya
dimensión es una unidad mayor que la de v pero cuya suma de componentes es igual a la suma de las componentes de v. Si G1 tampoco tiene al menos n aristas saliendo desde cada
vértice, le aplicamos nuevamente la proposición 6.20 para obtener un grafo G2 cuya matriz de
adyacencia tiene autovector aproximado v(2) > 0 con dimensión una unidad mayor que la de
v(1) y suma de coecientes igual a la suma de los coecientes de v(1), y así sucesivamente. El
proceso debe terminar, pues cada v(i) que se obtiene en cada paso es estrictamente positivo y
tiene una coordenada más que v(i−1), pero sus respectivas sumas de coecientes son iguales.
Entonces, el último Gm obtenido es el buscado.
Ahora podemos completar la demostración del Teorema de los Códigos de Estados Finitos, cuya vuelta nos estaba faltando.
Demostración. (Suciencia de la condición de entropía para existencia de un (X, n)-CEF.) Supongamos que X es un shift sóco con h(X) ≥ log n, y sea (H, L) una pre- sentación resolvente a derecha para X. Sea G0 una componente irreducible de H tal que
h (XG0) = h (XG), y sea A la matriz de adyacencia de G0. Designemos L0 a la restricción
de L a las aristas de G0. Como h(X) = log λA ≥ log n, es λA ≥ n. Aplicando entonces a G0
el teorema 6.21, obtenemos la sucesión de grafos rotulados G0 = (G0, L0), . . . , Gm = (Gm, Lm)
donde G1, . . . , Gm son los que resultan del teorema, y cada grafo rotulado Gi es el correspon-
diente desdoblamiento (como grafo rotulado) de Gi−1. Sabemos que X ⊇ XG0 = XGm, y, por
proposición 6.6, Gm es cerrante a derecha con demora m. Como Gm tiene al menos n aristas
saliendo desde cada vértice, elegimos exactamente n aristas saliendo desde cada vértice (eli- minando las otras) para obtener así un subgrafo G coloreable al que dotamos de un coloreo de rutas I. Designando por O a la restricción de Lm a las aristas de G, resulta que la terna
(G, I, O) es un (X, n)-CEF, pues O∞(XG) = (Lm)∞(XG) ⊆ (Lm)∞(XGm) = XGm ⊆ X.
Ejemplo 6.22. Sea X el shift sóco mostrado en la gura 7. Analizaremos si es posible construir un (X, 3)-CEF, y, en caso armativo, veremos la aplicación del procedimiento que está implícito en las demostraciones anteriores para obtener tal código de estados nitos.
74 6. CÓDIGOS DE ESTADOS FINITOS
Figura 7. Shift sóco X para construir un (X, 3)-CEF El grafo subyacente es irreducible y su matriz de adyacencia es
A = 2 1 1 0 1 1 2 1 0
Su autovalor de Perron es λA = 3, 1149 . . ., y como la presentación es resolvente a derecha, es
h(X) = log λA ≥ log 3. Entonces, de acuerdo al Teorema de los Códigos de Estados Finitos,
existe un (X, 3)-CEF.
Como el grafo subyacente ya es irreducible y la presentación es resolvente a derecha, el grafo rotulado de la gura 7 será nuestro G0 de arranque. Como hay estados con menos de tres aristas
salientes, deberemos seguir el procedimiento dado en la demostración de la proposición 6.20. Por aplicación del algoritmo de búsqueda de autovector aproximado, llegamos a que v = [3, 1, 2] es un (A, 3)-AA. De acuerdo a la demostración de la proposición 6.20, buscamos una arista e∗ que arranque en un estado I con v
I maximal, y termine en un estado J con vJ no
maximal. Hay varias opciones; elegiremos I = 1 y e∗ la arista de 1 a 3 que tiene rótulo a.
De acuerdo a la demostración, elegimos Σ1
I conteniendo e
∗ y la arista de 1 a 2 con rótulo d,
y Σ2
I son todas las otras aristas que salen de I (los dos rulos en 1, en este caso). Notar que
P
e∈Σ1
Ivt(e) = 3, así que el q de la demostración vale, en esta etapa, 1. Luego, el autovector
aproximado correspondiente al grafo desdoblado G1 tendrá coecientes 1 y 2, respectivamente,
para los dos estados en que se desdoblará I; los otros estados conservarán el valor que tienen asociado en G0.
En la gura 8, mostramos la sucesión de desdoblamientos de grafos rotulados que se produce. En cada paso, mostramos dentro de un hexágono al lado de cada estado el valor del coeciente del autovector aproximado que le corresponde en esa etapa, e indicamos con I el estado por el cual se produce el desdoblamiento, con (∗) la arista e∗, y con línea discontinua las aristas de
Σ1I.
El proceso para en G3, pues hemos llegado a una presentación en la que desde cada vértice
salen al menos tres aristas.
Elegimos entonces exactamente tres aristas saliendo de cada vértice, eliminando las otras, y coloreamos el grafo rotulado resultante con el alfabeto de entradas A = {0, 1, 2}. La misma gura 8 muestra, en la parte inferior, uno de los posibles (X, 3)-CEF.
Usando el hecho de que h XN = Nh(X) (donde XN es la presentación de X en bloques
de tamaño N sin solape), en los ejercicios se verá cómo se puede adaptar el Teorema de los Códigos de Estados Finitos para construir códigos aún sin cumplirse de manera directa la condición h(X) ≥ log n.
4. CONSTRUCCIÓN DE CÓDIGOS DE ESTADOS FINITOS 75
G0 G1
G2 G3