You are on page 1of 8

Uso de simuladores en la evaluacin acadmica de la complejidad

de algoritmos

Constable, Leticia / Meloni, Brenda / Vzquez, Juan / Gir, Juan

Universidad Tecnolgica Nacional, Facultad Regional Crdoba, Departamento de


Ingeniera en Sistemas de Informacin, Ctedra de Sintaxis y Semntica de los Lenguajes

Abstract ordenada de pasos que permita siempre


arribar a un resultado en tiempo finito.
El proceso de enseanza-aprendizaje del concepto
de complejidad algortmica, acarrea dificultades
Los problemas resolubles por algoritmos
especiales debido al carcter abstracto de dicha tambin suelen denominarse computables
nocin. El uso de autmatas para el modelado de y son los que presentan inters en la
algoritmos, permite la aplicacin de herramientas actividad profesional del ingeniero.
tales como simuladores de mquinas abstractas, a En el campo de los problemas computables,
travs de los cuales, se puede construir una imagen
intuitiva del proceso al visualizar el comportamiento
se presenta un nuevo desafo que consiste
de dichos autmatas. Adems los simuladores en determinar su complejidad, pero en
proveen informacin til para el posterior clculo abstracto, ste es un concepto esquivo
de expresiones generales de la complejidad (cantidad de variables involucradas, nmero
algortmica. Se propone un ejercicio de aplicacin de objetos y conceptos involucrados, grados
integrador, a travs del cual, con auxilio de un
simulador de mquinas de Turing, se comparan las
de libertad, esfuerzo para entenderlo, etc.) y
expresiones de la complejidad obtenidas para dos subjetivo, que vara segn la persona que
soluciones distintas de un mismo problema, intenta resolverlo, sus conocimientos, su
empleando adems conceptos previamente entrenamiento y destreza, y hasta con qu
adquiridos en otras asignaturas, lo que favorece la herramientas lo ataque. Por ello, este
transposicin tanto horizontal como verticalmente
respecto del diseo curricular de la carrera.
estudio se lleva a cabo analizando la
complejidad de la solucin diseada para el
Palabras Clave mismo; como se sabe en algortmica,
Simuladores. Autmatas. Complejidad algortmica. siempre hay muchas soluciones para un
mismo problema, por lo que se supone el
Introduccin anlisis de la mejor solucin. Esto ltimo
La relevancia del estudio de los temas de acarrea una dificultad no menor, en relacin
computabilidad y complejidad de al teorema del aumento de velocidad de
algoritmos en las ingenieras, est Blum [4], publicado en la dcada de 1960:
estrechamente relacionada con la funcin la imposibilidad de determinar para muchos
bsica de resolucin de problemas de todo problemas, si la solucin planteada es la
ingeniero y se refuerza en el caso de los mejor solucin.
ingenieros en sistemas, debido al enfoque En el anlisis de la complejidad [5] de la
lgico-matemtico de las soluciones que solucin, se puede distinguir entre la
stos proponen, implementando algoritmos complejidad directa o intrnseca, que para
a travs de programas de computacin. cuantificarla admite diversas mtricas tales
En la dcada de 1930, Gdel [1] primero, como puntos de funcin, lneas de cdigo,
con su teorema de incompletitud de la complejidad estructural y ciclomtica, por
aritmtica, y Turing [2], Church [3] y otros citar slo algunas, que se discuten en varias
luego, determinaron que los problemas a asignaturas de las carreras de informtica, y
tratar pueden clasificarse en resolubles e la complejidad operativa, que es una forma
irresolubles, segn exista o no un algoritmo de medicin indirecta cuyas mtricas se
que los resuelva, es decir una secuencia refieren a los recursos (tiempo y espacio)
requeridos para la ejecucin del algoritmo
de resolucin diseado, que se aborda en La simulacin es una herramienta que
Sintaxis y Semntica de los Lenguajes permite disear y desarrollar un modelo
(SSL), asignatura de la carrera Ingeniera en computarizado de un sistema o proceso, y
Sistemas de Informacin en la Universidad realizar ensayos del modelo con el
Tecnolgica Nacional, Facultad Regional propsito de entender el comportamiento
Crdoba. del sistema del mundo real o evaluar varias
Adems, 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 mquinas abstractas (que modelan simulacin es una tcnica que puede ser
algoritmos), se presenta el anlisis de la utilizada como un instrumento pedaggico
complejidad indirecta con un enfoque para ensear a estudiantes habilidades
mecanicista basado en Mquinas de Turing bsicas o para experimentar con nuevas
(ver figura 1). situaciones, sobre la cuales se tiene poca o
Por ltimo, atendiendo a la ya mencionada ninguna informacin, entre otras ventajas
imposibilidad de determinar que la solucin [7].
bajo estudio es la mejor, la determinacin
de su complejidad en forma independiente Elementos del Trabajo y Metodologa
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 clculo efectuado por
problema y as seleccionar la mejor de ellas. un calculista humano, usando un esquema
Se presenta entonces a los estudiantes un de mquina (abstracta) que rescataba los
problema, se construyen dos o ms elementos y operaciones bsicas esenciales
autmatas que modelan distintas soluciones involucradas en el mismo (sin tener en
vlidas, se analizan las complejidades cuenta la intencin de por qu lo hace).
temporales y espaciales de cada solucin y Seguramente influenciado por los trabajos
se comparan los resultados para determinar de Ramn y Cajal de 1905, quien descubri
cul es la mejor de las soluciones que el sistema nervioso de los humanos se
propuestas, es decir cul es el mejor de los conforma de elementos simples y discretos
algoritmos disponibles. interconectados (doctrina de la neurona),
Para la construccin de mquinas abstractas Turing supuso que el cerebro del calculista
y la verificacin de su comportamiento poda estar en cada instante, en uno de un
existen distintos simuladores y, algunos de nmero finito de estados posibles (muchos,
ellos, presentan los datos necesarios para muchsimos, pero finitos al fin).
determinar las complejidades temporal y
espacial.
Problemas

Resolubles Irresolubles
Computabilidad
Solucin MT
Complejidad

Complejidad directa Complejidad indirecta

Mtricas de complejidad
- Puntos de funcin - Temporal
- Lneas de cdigo - Espacial
- Estructural
- Ciclomtica
Figura 1: Marco conceptual de la computabilidad y la complejidad de problemas.
Al leer un smbolo de su hoja de trabajo, el de transicin y smbolo especial de espacio
estado cerebral del calculista cambiar y en blanco.
podr entonces eventualmente modificar el Esta mquina puede pensarse como una
smbolo ledo, para luego leer el siguiente mquina reconocedora, que aceptar la
o el anterior. Este proceso se repetir hasta cadena de entrada si al procesarla con la
dar por terminado el clculo. funcin f logra detenerse en un estado de
Turing tambin especul que el conjunto aceptacin (la rechaza en caso contrario), o
de smbolos (alfabeto) que el calculista como una mquina traductora-ejecutora
maneja debera ser finito, ya que no podra de procedimientos, que toma una cadena
distinguir infinitos smbolos. de entrada y al detenerse deja en su cinta el
resultado de la operacin, como salida.
q0 Este dispositivo abstracto de cmputo, 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:QQ{I,D,N,P}
slo si, puede disearse una mquina de
Figura 2: Mquina de Turing. Turing que lo resuelva. Por otro lado, para
determinar la complejidad operativa de la
La figura 2 muestra un esquema de una solucin, se define la complejidad espacial
Mquina de Turing, en la cual el conjunto de la mquina E(n) como la cantidad de
finito de estados posibles Q est indicado celdas de cinta usadas para procesar una
en el crculo (la flecha marca el estado cadena de entrada en funcin 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, relacin 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 smbolo de algn 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 mquina, un smbolo representa un dispositivo abstracto bien
especial de espacio en blanco que rellena definido, cuyas mtricas de complejidad
el resto de la cinta infinita y algunos resultan ser independientes tanto de la
smbolos auxiliares necesarios para el tecnologa de implantacin como de los
proceso), y el funcionamiento de la misma usuarios que la utilicen.
est regido por una funcin f (denominada Se detallar a continuacin, y a modo de
su funcin de transicin) que para cada par ejemplo, un ejercicio del tipo de los que se
estado-smbolo 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 resolucin. [5]
cinta y la accin mecnica que deber
realizarse: mover el cabezal de lecto- Ejercicio:
escritura a la (I)zquierda, a la (D)erecha o Dado un lenguaje de palndromos impares
(N)o moverlo, o eventualmente detener el tal como L = {#-1 / {a, b}+} se pide:
clculo (P). a) Construya una mquina de Turing (MT)
Matemticamente, este modelo se describe que acepte las cadenas de dicho lenguaje.
con una sptupla (, , Q, q0, A, f, ) que b) Construya otra mquina de Turing que
agrupa al alfabeto de entrada, alfabeto de se comporte como un autmata con pila,
cinta, conjunto de estados, estado inicial, como solucin alternativa, para realizar el
conjunto de estados de aceptacin (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), funcin trabajo de una pila).
c) Verifique la validez de las mquinas la pila. A continuacin, por cada smbolo
construidas en los puntos a) y b) con el del sufijo posterior al separador #, si el
auxilio de un simulador de mquinas de caracter ledo en la cadena coincide con el
Turing, probando los modelos de solucin de la cima de la pila (el ms 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 smbolo de ms a la derecha de la cinta).
mquinas en forma analtica y grfica. La definicin formal de la segunda
e) Compare las complejidades obtenidas mquina es: MT2= ({a, b, #}, {a, b, #, A,
para los dos procedimientos de solucin y B, P, }, {q0, q1, q2, q3, q4, q5, q6, q7, q8, q9,
exprese a qu conclusin se puede arribar. q10, q11, q12, q13}, q0, {q13}, f, ) donde la
funcin de transicin f se representa a
Solucin:
travs del grafo de la figura 4.
a) Para resolver este problema se propone d) Para obtener analticamente la expresin
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 smbolos cadenas de ciertos largos (por ejemplo para
del sufijo y del prefijo, con sucesivos n = 3, 5, 7 y 9), en cada mquina. Como
movimientos de avance y retroceso. este recuento puede ser bastante laborioso,
La definicin formal de esta mquina es: suele recurrirse a los simuladores para la
MT1 = ({a, b, #}, {a, b, #, 1, 2, }, {q0, q1, tarea, ya sea efectuando la simulacin paso
q2, q3, q4, q5, q6}, q0, {q6}, f, ) y su a paso, o tomando los totales arrojados por
funcin de transicin f puede verse el simulador, si es que ste los ofrece. De
representada en el grafo de la figura 3. manera anloga, para el caso de la
b) Para la segunda solucin, 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 smbolo P en el las mismas cadenas. Estos valores, para el
primer blanco para marcar el inicio de la problema y las mquinas planteadas son
pila, luego el cabezal vuelve al inicio de la presentados en la tabla 1.
cadena y por cada smbolo 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 variacin de los valores


obtenidos para tiempos y espacios en
Para MT1 33 32 3 1 A 11
3
ambas mquinas, 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 ms rpido). 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: Variacin de las complejidades en Para MT1
funcin de la longitud de la cadena de entrada A 0,00

B 0,50

Se trata a continuacin de proponer C 2,00
expresiones generales de las complejidades
D 0,50

temporales. Para ello, por inspeccin 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 polinmico 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 anulacin 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 mquina: 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 inspeccin (aunque podra sera la de obtener por medios grficos las
intentarse una demostracin por induccin expresiones de las complejidades tanto
matemtica) de los valores de la tabla 1, se temporales como espaciales, para ambas
puede deducir que responde a la expresin: soluciones; se puede utilizar para esto una
planilla de clculo como herramienta, para
E1 (n) n 2 (3) representar grficamente los valores
En el caso de MT2, se sigue para la volcados de la tabla 1 y aproximar las
determinacin de la complejidad espacial curvas con polinomios de diversos grados,
el mismo procedimiento usado para el hasta obtener representaciones no
clculo de expresiones de la complejidad oscilantes solicitando las frmulas de las
temporal: por inspeccin de los valores de curvas de tendencia.
la tabla 1, se propone un polinomio que se Con este recurso grfico se obtienen las
asume de grado no superior a dos. curvas y expresiones de las figuras 5 y 6.
Ntese 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 estn prximos 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 podra ocurrir que en la zona conocida haya
C 12 varias funciones que representen
cuya solucin es: correctamente los puntos, pero que luego
divergen cuando n crece. En ese caso la
A 0,00 prediccin puede arrojar resultados errneos.

B 1,50 Por otra parte, resulta muy conveniente
C 1,50

Figura 5: Obtencin grfica de la complejidades temporales de MT1 a la izquierda y MT2 a la derecha.


Figura 6: Obtencin grfica de la complejidades espaciales de MT1 a la izquierda y MT2 a la derecha.

proponer un polinomio de grado mayor al el proceso de enseanza-aprendizaje.


que suponemos que es el verdadero
Discusin
grado de la expresin. 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 trminos de mayor grado al necesario discusin. A travs de ellas los alumnos,
resultarn 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 funcin de aprendizaje independizndose de los
aproximacin ser vlida 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 utilizacin indebida de la clculo, de consulta y de graficacin entre
frmula de complejidad obtenida, otras, que agilizan sus trabajos, por citar
brindando resultados errneos. algunas ventajas. Parece particularmente
vlido este enfoque en el caso que nos
Resultados ocupa, ya que son estudiantes de Ingeniera
Desde el punto de vista del aprendizaje se en Sistemas de Informacin lo que
percibe una buena motivacin por parte de presupone inters por el uso de software y
los estudiantes y una excelente captacin computadoras. Esto no debe resultar en
conceptual del tema; el hecho de utilizar la docentes que deleguen o resignen su tarea,
simulacin para verificar el correcto sino que deben estar alertas, acompaando
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 enseanza y el aprendizaje relacionados de otras asignaturas como por
significativo del tema; adems, el hecho de ejemplo, anlisis, variacin, aproximacin,
contar con simuladores que calculan la acotacin y convergencia de funciones,
complejidad espacial y temporal, facilita resolucin de sistemas de ecuaciones,
en anlisis. Las evaluaciones de los manejo de herramientas de software,
informes escritos y de las defensas orales simulacin, etctera, y por ltimo, para
que se solicitaron a los estudiantes, han contribuir al desarrollo de la capacidad de
resultado altamente satisfactorias. anlisis de los resultados obtenidos.
Con esta base se piensa que el enfoque
Conclusin
mecanicista seleccionado y el uso de
simuladores, tuvo resultados positivos en Para la enseanza del difcil concepto de
complejidad de los problemas, en SSL se
ha optado por el anlisis de la complejidad [4] Cormen, Thomas H.; Leiserson, Charles E.;
de las soluciones modeladas con mquinas Rivest, Ronald L. & Stein, Clifford, (2010),
Introduction tu Algorithms, 3ra edicin, MIT
de Turing a esos problemas (en esencia, Press and McGraw-Hill.
soluciones algortmicas).
Si bien se tratan introductoriamente los [5] GIR Juan, VZQUEZ Juan, MELONI
distintos tipos de mtricas y de enfoques Brenda, CONSTABLE Leticia (2012). Mquinas
que pueden darse de la complejidad de abstractas y gramticas formales. Edicin de los
problemas, se hace foco en la complejidad autores, impreso y distribuido por M&Copias
impresiones. Edicin previa. ISBN en trmite.
operativa que usualmente es utilizada en
ciencias de la computacin, definiendo y [6] SHANNON, R. (1988). Simulacin de
calculando tanto el tiempo como el espacio sistemas: Diseo, desarrollo e implantacin.
requeridos por la mquina para solucionar Editorial Trillas, Mxico.
el problema.
Para la fijacin de conceptos y la necesaria [7] NAYLOR, Thomas H. (1993). Tcnicas de
habilidad prctica para resolver problemas simulacin en computadoras. Primera edicin.
Mxico: Editorial Limusa.
y evaluar las soluciones propuestas, que es
competencia de los futuros Ingenieros en Datos de Contacto:
Sistemas de Informacin, se plantea un Universidad Tecnolgica Nacional
prctico integrador que, adems de hacer Facultad Regional Crdoba
efectiva la prctica de los temas tericos Dpto. Ing. en Sistemas de Informacin
Maestro Lpez esq. Cruz Roja Argentina
sobre autmatas y lenguajes impartidos en 5016 Ciudad Universitaria Crdoba
SSL, necesita para su desarrollo el uso de
conocimientos de varias asignaturas de la Leticia Constable. UTN-FRC.
carrera (especificacin de requerimientos, leticiaconstable@gmail.com
valoracin de los mismos para distintos
Brenda E. Meloni. UTN-FRC.
simuladores posibles, diseo de soluciones, bmeloni@frc.utn.edu.ar
evaluacin de la bondad de las mismas, bemeloni@gmail.com
manejo de funciones del anlisis
matemtico, resolucin de sistemas de Juan Carlos Vzquez
ecuaciones del lgebra, etc.). jcvazquez@sistemas.frc.utn.edu.ar
Gracias a esta prctica, se ha evidenciado Juan Francisco Gir
una mejora en la comprensin 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 beneplcito 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 Computatin. Essays
en memory of Alonzo Church. Published by
Kluwer Academic Publishers.

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


ordenador. Siglo Veintiuno de Espaa Editores.
S.A. Madrid, Espaa.

You might also like