hola:
la respuesta depende del problema planteado y de la propia solución. la entrada es una tira de sigma*, y como tal podría tener, por ejemplo, una cantidad cualquiera de # y no necesariamente en el orden requerido para las tiras del lenguaje. por lo general una parte del control se da implícitamente por la forma en que se procesa la tira para verificar otras propiedades, pero un caso frecuente suele ser la falta del control al final.
por ejemplo, supongamos que estamos frente a {0^n#1^n#2^n / n nat}, la máquina marca un símbolo de cada "tercio" moviéndose a la derecha y luego rebobina cuando marca el cero en el último tercio.
XX0...0#XX1...1#XX2...
g(qi,2) = (qj,X,I), marco el 2 que estoy buscando y empiezo a rebobinar
g(qj,X) = (qj,X,I)... q(qj,b) = (q0,b,D)
uno se puede ver tentado a aceptar la entrada en cuanto deja de encontrar elementos en el primer tercio:
XX...X#XX...#XX...
q(q0, X) = (q0,X,D)
q(q0, #) = (qf,#,D)
en ese punto uno puede afirmar que al menos hay tantos 1 y 2 en la entrada original como ceros... el problema es que podría haber más....
XX...X#XX...X11#XX...X22222 (|u|0< |u|1< |u|2)
o inclusive, al final de la tira, haber otras cosas más allá de los 2
XX...X#XX...X#XX...X####112#
para no aceptar erróneamente en estos casos se hace necesario controlar el final, cuando ese control no quedo "implícito" en el proceso anterior.
saludos,
d.-