Está en la página 1de 8

Uso de simuladores en la evaluación académica de la complejidad

de algoritmos

Constable, Leticia / Meloni, Brenda / Vázquez, Juan / Giró, Juan

Universidad Tecnológica Nacional, Facultad Regional Córdoba, Departamento de


Ingeniería en Sistemas de Información, Cátedra de Sintaxis y Semántica de los Lenguajes

Abstract ordenada de pasos que permita siempre


arribar a un resultado en tiempo finito.
El proceso de enseñanza-aprendizaje del concepto
de complejidad algorítmica, acarrea dificultades
Los problemas resolubles por algoritmos
especiales debido al carácter abstracto de dicha también suelen denominarse “computables”
noción. El uso de autómatas para el modelado de y son los que presentan interés en la
algoritmos, permite la aplicación de herramientas actividad profesional del ingeniero.
tales como simuladores de máquinas abstractas, a En el campo de los problemas computables,
través de los cuales, se puede construir una imagen
intuitiva del proceso al visualizar el comportamiento
se presenta un nuevo desafío que consiste
de dichos autómatas. Además los simuladores en determinar su complejidad, pero en
proveen información útil para el posterior cálculo abstracto, éste es un concepto esquivo
de expresiones generales de la complejidad (cantidad de variables involucradas, número
algorítmica. Se propone un ejercicio de aplicación de objetos y conceptos involucrados, grados
integrador, a través del cual, con auxilio de un
simulador de máquinas de Turing, se comparan las
de libertad, esfuerzo para entenderlo, etc.) y
expresiones de la complejidad obtenidas para dos subjetivo, que varía según la persona que
soluciones distintas de un mismo problema, intenta resolverlo, sus conocimientos, su
empleando además conceptos previamente entrenamiento y destreza, y hasta con qué
adquiridos en otras asignaturas, lo que favorece la herramientas lo ataque. Por ello, este
transposición tanto horizontal como verticalmente
respecto del diseño curricular de la carrera.
estudio se lleva a cabo analizando la
complejidad de la solución diseñada para el
Palabras Clave mismo; como se sabe en algorítmica,
Simuladores. Autómatas. Complejidad algorítmica. siempre hay muchas soluciones para un
mismo problema, por lo que se supone el
Introducción análisis de la mejor solución. Esto último
La relevancia del estudio de los temas de acarrea una dificultad no menor, en relación
computabilidad y complejidad de al teorema del aumento de velocidad de
algoritmos en las ingenierías, está Blum [4], publicado en la década de 1960:
estrechamente relacionada con la función la imposibilidad de determinar para muchos
básica de resolución de problemas de todo problemas, si la solución planteada “es” la
ingeniero y se refuerza en el caso de los mejor solución.
ingenieros en sistemas, debido al enfoque En el análisis de la complejidad [5] de la
lógico-matemático de las soluciones que solución, se puede distinguir entre la
éstos proponen, implementando algoritmos complejidad directa o intrínseca, que para
a través de programas de computación. cuantificarla admite diversas métricas tales
En la década de 1930, Gödel [1] primero, como puntos de función, líneas de código,
con su teorema de incompletitud de la complejidad estructural y ciclomática, por
aritmética, y Turing [2], Church [3] y otros citar sólo algunas, que se discuten en varias
luego, determinaron que los problemas a asignaturas de las carreras de informática, y
tratar pueden clasificarse en resolubles e la complejidad operativa, que es una forma
irresolubles, según exista o no un algoritmo de medición indirecta cuyas métricas se
que los resuelva, es decir una secuencia refieren a los recursos (tiempo y espacio)
requeridos para la ejecución del algoritmo
de resolución diseñado, que se aborda en La simulación es una herramienta que
Sintaxis y Semántica de los Lenguajes permite diseñar y desarrollar un modelo
(SSL), asignatura de la carrera Ingeniería en computarizado de un sistema o proceso, y
Sistemas de Información en la Universidad realizar ensayos del modelo con el
Tecnológica Nacional, Facultad Regional propósito de entender el comportamiento
Córdoba. del sistema del mundo real o evaluar varias
Además, y en concordancia con los condiciones con las cuales puedan operar el
contenidos de SSL que entre otros temas sistema [6]. Está comprobado que la
trata las máquinas abstractas (que modelan simulación es una técnica que puede ser
algoritmos), se presenta el análisis de la utilizada como un instrumento pedagógico
complejidad indirecta con un enfoque para enseñar a estudiantes habilidades
mecanicista basado en Máquinas de Turing básicas o para experimentar con nuevas
(ver figura 1). situaciones, sobre la cuales se tiene poca o
Por último, atendiendo a la ya mencionada ninguna información, entre otras ventajas
imposibilidad de determinar que la solución [7].
bajo estudio es la mejor, la determinación
de su complejidad en forma independiente Elementos del Trabajo y Metodología
pierde relevancia para dar lugar a la El enfoque del estudio de la computabilidad
importancia de comparar las complejidades que presentó Alan Turing en 1936, fue el de
de distintas soluciones dadas a un mismo modelar el proceso de cálculo efectuado por
problema y así seleccionar la mejor de ellas. un calculista humano, usando un esquema
Se presenta entonces a los estudiantes un de máquina (abstracta) que rescataba los
problema, se construyen dos o más elementos y operaciones básicas esenciales
autómatas que modelan distintas soluciones involucradas en el mismo (sin tener en
válidas, se analizan las complejidades cuenta la intención de por qué lo hace).
temporales y espaciales de cada solución y Seguramente influenciado por los trabajos
se comparan los resultados para determinar de Ramón y Cajal de 1905, quien descubrió
cuál es la mejor de las soluciones que el sistema nervioso de los humanos se
propuestas, es decir cuál es el mejor de los conforma de elementos simples y discretos
algoritmos disponibles. interconectados (doctrina de la neurona),
Para la construcción de máquinas abstractas Turing supuso que el cerebro del calculista
y la verificación de su comportamiento podía estar en cada instante, en uno de un
existen distintos simuladores y, algunos de número finito de estados posibles (muchos,
ellos, presentan los datos necesarios para muchísimos, pero finitos al fin).
determinar las complejidades temporal y
espacial.
Problemas

Resolubles Irresolubles
Computabilidad ↑
Solución ≡ MT
Complejidad ↓

Complejidad directa Complejidad indirecta

Métricas de complejidad
- Puntos de función - Temporal
- Líneas de código - Espacial
- Estructural
- Ciclomática
Figura 1: Marco conceptual de la computabilidad y la complejidad de problemas.
Al leer un símbolo de su hoja de trabajo, el de transición y símbolo especial de espacio
estado cerebral del calculista cambiará y en blanco.
podrá entonces eventualmente modificar el Esta máquina puede pensarse como una
símbolo leído, para luego leer el siguiente máquina reconocedora, que aceptará la
o el anterior. Este proceso se repetirá hasta cadena de entrada si al procesarla con la
dar por terminado el cálculo. función f logra detenerse en un estado de
Turing también especuló que el conjunto aceptación (la rechaza en caso contrario), o
de símbolos (alfabeto) que el calculista como una máquina traductora-ejecutora
maneja debería ser finito, ya que no podría de procedimientos, que toma una cadena
distinguir infinitos símbolos. de entrada y al detenerse deja en su cinta el
resultado de la operación, como salida.
q0 Este dispositivo abstracto de cómputo, es
qn q1
…  A B C D E F2
q G  … ideal para el estudio de los conceptos de
o
o
q3 computabilidad y complejidad. La llamada
o o
tesis de Turing-Church establece que un
problema será considerado computable si y
f:QQ{I,D,N,P}
sólo si, puede diseñarse una máquina de
Figura 2: Máquina de Turing. Turing que lo resuelva. Por otro lado, para
determinar la complejidad operativa de la
La figura 2 muestra un esquema de una solución, se define la complejidad espacial
Máquina de Turing, en la cual el conjunto de la máquina E(n) como la cantidad de
finito de estados posibles Q está indicado celdas de cinta usadas para procesar una
en el círculo (la flecha marca el estado cadena de entrada en función de su largo n,
actual), la hoja de papel está representada y la complejidad temporal T(n) como la
por una cinta infinita dividida en celdas, relación que existe entre el largo n de la
cada una de las cuales puede contener un cadena de entrada a procesar y el tiempo
solo símbolo de algún alfabeto de cinta  demandado en la tarea, medido como la
(que incluye al alfabeto de entrada con el cantidad de transiciones efectuadas para
cual pueden escribirse las cadenas iniciales procesarla. Decimos que es ideal porque
a procesar por la máquina, un símbolo representa un dispositivo abstracto bien
especial de espacio en blanco que rellena definido, cuyas métricas de complejidad
el resto de la cinta infinita y algunos resultan ser independientes tanto de la
símbolos auxiliares necesarios para el tecnología de implantación como de los
proceso), y el funcionamiento de la misma usuarios que la utilicen.
está regido por una función f (denominada Se detallará a continuación, y a modo de
su función de transición) que para cada par ejemplo, un ejercicio del tipo de los que se
estado-símbolo indica el nuevo estado al proponen a los estudiantes de la asignatura
que se transitará, lo que se grabará en la SSL en la UTN-FRC, y su resolución. [5]
cinta y la acción mecánica que deberá
realizarse: mover el cabezal de lecto- Ejercicio:
escritura a la (I)zquierda, a la (D)erecha o Dado un lenguaje de palíndromos impares
(N)o moverlo, o eventualmente detener el tal como L = {α#α-1 / α∈{a, b}+} se pide:
cálculo (P). a) Construya una máquina de Turing (MT)
Matemáticamente, este modelo se describe que acepte las cadenas de dicho lenguaje.
con una séptupla (, , Q, q0, A, f, ) que b) Construya otra máquina de Turing que
agrupa al alfabeto de entrada, alfabeto de se comporte como un autómata con pila,
cinta, conjunto de estados, estado inicial, como solución alternativa, para realizar el
conjunto de estados de aceptación (a los mismo trabajo (parte de la cinta deberá ser
que se arriba al final del proceso si la usada con acceso LIFO para simular el
cadena de entrada es reconocida), función trabajo de una pila).
c) Verifique la validez de las máquinas la pila. A continuación, por cada símbolo
construidas en los puntos a) y b) con el del sufijo posterior al separador #, si el
auxilio de un simulador de máquinas de caracter leído en la cadena coincide con el
Turing, probando los modelos de solución de la cima de la pila (el más a la derecha
con distintas cadenas. en la cinta), lo marca como procesado y lo
d) Obtenga expresiones generales para la desapila (reemplazando con un blanco el
complejidad temporal y espacial de ambas símbolo de más a la derecha de la cinta).
máquinas en forma analítica y gráfica. La definición formal de la segunda
e) Compare las complejidades obtenidas máquina es: MT2= ({a, b, #}, {a, b, #, A,
para los dos procedimientos de solución y B, P, □}, {q0, q1, q2, q3, q4, q5, q6, q7, q8, q9,
exprese a qué conclusión se puede arribar. q10, q11, q12, q13}, q0, {q13}, f, □) donde la
función de transición f se representa a
Solución:
través del grafo de la figura 4.
a) Para resolver este problema se propone d) Para obtener analíticamente la expresión
una MT que mueve el cabezal hasta el de la complejidad temporal, se determina
separador #, y a partir de allí avanza desde el total de intervalos de tiempo (esto es,
el medio de la cadena hacia los extremos, transiciones) necesarios para procesar las
verificando la concordancia de símbolos cadenas de ciertos largos (por ejemplo para
del sufijo y del prefijo, con sucesivos n = 3, 5, 7 y 9), en cada máquina. Como
movimientos de avance y retroceso. este recuento puede ser bastante laborioso,
La definición formal de esta máquina es: suele recurrirse a los simuladores para la
MT1 = ({a, b, #}, {a, b, #, 1, 2, □}, {q0, q1, tarea, ya sea efectuando la simulación paso
q2, q3, q4, q5, q6}, q0, {q6}, f, □) y su a paso, o tomando los totales arrojados por
función de transición f puede verse el simulador, si es que éste los ofrece. De
representada en el grafo de la figura 3. manera análoga, para el caso de la
b) Para la segunda solución, se construye complejidad espacial, se determina el total
una MT que mueve el cabezal hasta el final de celdas de cinta necesarias para validar
de la cadena y escribe un símbolo P en el las mismas cadenas. Estos valores, para el
primer blanco para marcar el inicio de la problema y las máquinas planteadas son
pila, luego el cabezal vuelve al inicio de la presentados en la tabla 1.
cadena y por cada símbolo que lee del
prefijo, hasta el separador #, lo escribe en

Figura 3: MT1 que avanza desde el medio de la cadena hacia los extremos.
Figura 4: MT2 que utiliza parte de su cinta como una pila.

Observando la variación de los valores


obtenidos para tiempos y espacios en
Para MT1 33 32 3 1  A  11
 3    
ambas máquinas, se puede inferir que la 5 52 5 1  B  23
7 3   
complejidad temporal es de mayor orden 72 7 1 C  39
que la espacial (crecen más rápido).  3    
9 92 9 1 
 D  59

MT1 MT2 Para MT2 33 32 3 1  A   28 


n  3    
5 5 5 1  B   60 
T(n) E(n) T(n) E(n) 2
 
3 11 5 28 6 7 7 7 1 C 
3 2 
104
5 23 7 60 9  3  
9 9 9 1  D   
160
2
7 39 9 104 12 
9 59 11 160 15 Las soluciones de estos sistemas son:
Tabla 1: Variación de las complejidades en Para MT1
función de la longitud de la cadena de entrada  A  0,00
   
 B  0,50 
   
Se trata a continuación de proponer C  2,00
expresiones generales de las complejidades 
D  0,50 

temporales. Para ello, por inspección de los
valores que figuran en la tabla 1, se asume Para MT2  A  0,00
inicialmente, que se trata de complejidades    
 B  1,50 
de tipo polinómico y que dichos    
polinomios son de grado no superior a tres: C  4,00

D  
2,50
T (n)  An 3  Bn 2  Cn  D
Se calculan los coeficientes de los La anulación del coeficiente A, muestra que
polinomios que responden a estos valores la complejidad temporal está correctamente
tabulados, recurriendo para ello al álgebra representada por un polinomio de segundo
matricial, y se plantean los siguientes grado, es decir de O(n2). Así, a partir de los
sistemas de ecuaciones para cada máquina: valores de los coeficientes B, C y D se
puede disponer de las expresiones para las Luego, la complejidad espacial para MT2
complejidades temporales: resulta:
3 3
E 2 ( n)  n  (4)
1 2 1 2 2
Para MT1 T1 (n)  n  2n  (1)
2 2 El valor nulo del coeficiente A significa en
este caso, que la complejidad espacial es
3 2 5
Para MT2 T2 (n)  n  4n  (2) representada por un polinomio de primer
2 2 grado, es decir O(n).
Para la complejidad espacial, en el caso de Una alternativa al procedimiento seguido,
MT1, por simple inspección (aunque podría sería la de obtener por medios gráficos las
intentarse una demostración por inducción expresiones de las complejidades tanto
matemática) de los valores de la tabla 1, se temporales como espaciales, para ambas
puede deducir que responde a la expresión: soluciones; se puede utilizar para esto una
planilla de cálculo como herramienta, para
E1 (n)  n  2 (3) representar gráficamente los valores
En el caso de MT2, se sigue para la volcados de la tabla 1 y aproximar las
determinación de la complejidad espacial curvas con polinomios de diversos grados,
el mismo procedimiento usado para el hasta obtener representaciones no
cálculo de expresiones de la complejidad oscilantes solicitando las fórmulas de las
temporal: por inspección de los valores de curvas de tendencia.
la tabla 1, se propone un polinomio que se Con este recurso gráfico se obtienen las
asume de grado no superior a dos. curvas y expresiones de las figuras 5 y 6.
Nótese que las expresiones obtenidas
E2 (n)  An 2  Bn  C deben siempre ser utilizadas para valores
Se puede plantear entonces el sistema de de n que estén próximos al intervalo de
ecuaciones: los casos conocidos, aquí fueron 3 ≤ n ≤ 9.
Nunca es conveniente hacer predicciones
3 2 3 1  A  6  para un valor muy lejano del intervalo
 2    
5 5 1  B    9  simulado (por ejemplo n > 100) porque
7 1    
7 2 podría ocurrir que en la zona conocida haya
 C  12 varias funciones que representen
cuya solución es: correctamente los puntos, pero que luego
divergen cuando n crece. En ese caso la
 A 0,00 predicción puede arrojar resultados erróneos.
   
 B   1,50  Por otra parte, resulta muy conveniente
C  1,50 
   

Figura 5: Obtención gráfica de la complejidades temporales de MT1 a la izquierda y MT2 a la derecha.


Figura 6: Obtención gráfica de la complejidades espaciales de MT1 a la izquierda y MT2 a la derecha.

proponer un polinomio de grado mayor al el proceso de enseñanza-aprendizaje.


que suponemos que es el “verdadero”
Discusión
grado de la expresión. Si el grado
propuesto resultara excesivo, como en el Las ventajas de incluir las TICs en el
caso que se presentó, los coeficientes de proceso educativo ya no se encuentra en
los términos de mayor grado al necesario discusión. A través de ellas los alumnos,
resultarán nulos, pero contrariamente, si se enriquecen su aprendizaje con elementos
propone inicialmente un polinomio de audiovisuales, manejan sus tiempos de
menor grado que el óptimo, la función de aprendizaje independizándose de los
aproximación será válida en un intervalo horarios prefijados de clase por el sistema
acotado, lo que no será evidente y puede tradicional y disponen de herramientas de
llevar a la utilización indebida de la cálculo, de consulta y de graficación entre
fórmula de complejidad obtenida, otras, que agilizan sus trabajos, por citar
brindando resultados erróneos. algunas ventajas. Parece particularmente
válido este enfoque en el caso que nos
Resultados ocupa, ya que son estudiantes de Ingeniería
Desde el punto de vista del aprendizaje se en Sistemas de Información lo que
percibe una buena motivación por parte de presupone interés por el uso de software y
los estudiantes y una excelente captación computadoras. Esto no debe resultar en
conceptual del tema; el hecho de utilizar la docentes que deleguen o resignen su tarea,
simulación para verificar el correcto sino que deben estar alertas, acompañando
funcionamiento de la MT y poder simular y guiando a los estudiantes para evacuar
con distintas cadenas de entrada su dudas durante todo el camino, para que
comportamiento, resultó un complemento logren la transferencia de conocimientos
interesante a la enseñanza y el aprendizaje relacionados de otras asignaturas como por
significativo del tema; además, el hecho de ejemplo, análisis, variación, aproximación,
contar con simuladores que calculan la acotación y convergencia de funciones,
complejidad espacial y temporal, facilita resolución de sistemas de ecuaciones,
en análisis. Las evaluaciones de los manejo de herramientas de software,
informes escritos y de las defensas orales simulación, etcétera, y por último, para
que se solicitaron a los estudiantes, han contribuir al desarrollo de la capacidad de
resultado altamente satisfactorias. análisis de los resultados obtenidos.
Con esta base se piensa que el enfoque
Conclusión
mecanicista seleccionado y el uso de
simuladores, tuvo resultados positivos en Para la enseñanza del difícil concepto de
complejidad de los problemas, en SSL se
ha optado por el análisis de la complejidad [4] Cormen, Thomas H.; Leiserson, Charles E.;
de las soluciones modeladas con máquinas Rivest, Ronald L. & Stein, Clifford, (2010),
“Introduction tu Algorithms”, 3ra edición, MIT
de Turing a esos problemas (en esencia, Press and McGraw-Hill.
soluciones algorítmicas).
Si bien se tratan introductoriamente los [5] GIRÓ Juan, VÁZQUEZ Juan, MELONI
distintos tipos de métricas y de enfoques Brenda, CONSTABLE Leticia (2012). “Máquinas
que pueden darse de la complejidad de abstractas y gramáticas formales”. Edición de los
problemas, se hace foco en la complejidad autores, impreso y distribuido por M&Copias
impresiones. Edición previa. ISBN en trámite.
operativa que usualmente es utilizada en
ciencias de la computación, definiendo y [6] SHANNON, R. (1988). “Simulación de
calculando tanto el tiempo como el espacio sistemas: Diseño, desarrollo e implantación”.
requeridos por la máquina para solucionar Editorial Trillas, México.
el problema.
Para la fijación de conceptos y la necesaria [7] NAYLOR, Thomas H. (1993). “Técnicas de
habilidad práctica para resolver problemas simulación en computadoras”. Primera edición.
México: Editorial Limusa.
y evaluar las soluciones propuestas, que es
competencia de los futuros Ingenieros en Datos de Contacto:
Sistemas de Información, se plantea un Universidad Tecnológica Nacional
práctico integrador que, además de hacer Facultad Regional Córdoba
efectiva la práctica de los temas teóricos Dpto. Ing. en Sistemas de Información
Maestro López esq. Cruz Roja Argentina
sobre autómatas y lenguajes impartidos en 5016 – Ciudad Universitaria – Córdoba
SSL, necesita para su desarrollo el uso de
conocimientos de varias asignaturas de la Leticia Constable. UTN-FRC.
carrera (especificación de requerimientos, leticiaconstable@gmail.com
valoración de los mismos para distintos
Brenda E. Meloni. UTN-FRC.
simuladores posibles, diseño de soluciones, bmeloni@frc.utn.edu.ar
evaluación de la bondad de las mismas, bemeloni@gmail.com
manejo de funciones del análisis
matemático, resolución de sistemas de Juan Carlos Vázquez
ecuaciones del álgebra, etc.). jcvazquez@sistemas.frc.utn.edu.ar
Gracias a esta práctica, se ha evidenciado Juan Francisco Giró
una mejora en la comprensión por parte de juanfgiró@gmail.com
los estudiantes de los temas tratados en
SSL y, mediante encuestas informales
realizadas a los estudiantes, se pudo
constatar la conformidad y beneplácito con
la actividad.
Referencias
[1] B. Meltzer and R. B. Braithwaite, 1962. “On
Formally Undecidable Propositions of Principia
Mathematica and Related System”, Dover
Publications, New York (Dover Edition 1992).

[2] ANDERSON, Anthony and ZELENY, Michel


(2001). “Logic, Meaning and Computatión. Essays
en memory of Alonzo Church”. Published by
Kluwer Academic Publishers.

[3] STRATHER, Paul (1999). “Turing y el


ordenador”. Siglo Veintiuno de España Editores.
S.A. Madrid, España.

También podría gustarte