Scielo RSS <![CDATA[Computación y Sistemas]]> http://www.scielo.org.mx/rss.php?pid=1405-554620130001&lang=en vol. 17 num. 1 lang. en <![CDATA[SciELO Logo]]> http://www.scielo.org.mx/img/en/fbpelogp.gif http://www.scielo.org.mx <![CDATA[<b>Editorial</b>]]> http://www.scielo.org.mx/scielo.php?script=sci_arttext&pid=S1405-55462013000100001&lng=en&nrm=iso&tlng=en <![CDATA[<b>Indexing and Comparison of Multi-Dimensional Entities in a Recommender System based on Ontological Approach</b>]]> http://www.scielo.org.mx/scielo.php?script=sci_arttext&pid=S1405-55462013000100002&lng=en&nrm=iso&tlng=en The paper describes an application of indexing-the technology currently widely used for processing and comparing textual information-to multi-dimensional entities of knowledge domains. We propose a model for building a frame-based ontology, which contains a domain conceptual model as well as a controlled vocabulary of "base terms" used for indexing. Further, the ontology constitutes the structure for the knowledge base of the recommender system developed by us, whose task is to support human-computer interaction in web applications. The system automatically represents the interaction task being solved as a structured set of base terms, and compares it with the pre-indexed design guidelines representing practical knowledge of the domain. The interaction task context is defined by input data: 1) semi-structured attributes of target users and 2) natural-language requirements for a particular web application. The former are processed mostly via production model rules stored in the knowledge base, while the requirement text is mined for base terms from the controlled vocabulary. As a result of the comparison, the system provides a set of guidelines relevant for a particular interaction task context, seeking to save work effort of interface designers. Also, the proposed approach for indexing multi-dimensional entities can be applied in various recommender and knowledge-based systems.<hr/>Este artículo describe una aplicación de indexación -la tecnología que se usa ampliamente hoy en día para procesar y comparar la información textual- a entidades multidimensionales de dominios de conocimiento. Se propone un modelo para el desarrollo de una ontología basada en marcos (frames). La ontología contiene un modelo conceptual del dominio y un vocabulario controlado de "términos básicos" usados para la indexación. También, la ontología sirve como la estructura para la base de conocimiento del sistema de recomendación desarrollado en este trabajo. El objetivo del sistema de recomendación es apoyar a la interacción "hombre-computadora" en aplicaciones web. El sistema representa automáticamente una tarea dada de interacción como un conjunto estructurado de términos básicos, y lo compara con las instrucciones del diseño indexadas previamente, las cuales representan el conocimiento práctico del dominio. El contexto de la tarea de interacción se define por los datos de entrada: 1) los atributos semi-estructurados de usuarios objetivo, y 2) requerimientos en lenguaje natural para una aplicación web seleccionada. Los atributos se procesan prácticamente mediante las reglas de producción del modelo, y el texto de requerimientos se usa para recuperar los términos básicos del vocabulario controlado. Como el resultado de la comparación el sistema genera un conjunto de instrucciones relevantes para un contexto de una tarea dada de interacción. El objetivo es ahorrar el esfuerzo de trabajo de diseñadores de interfaces. El modelo propuesto para indexar entidades multidimensionales se puede aplicar también en varios sistemas de recomendación y sistemas basados en conocimiento. <![CDATA[<b>Backpropagation through Time Algorithm for Training Recurrent Neural Networks using Variable Length Instances</b>]]> http://www.scielo.org.mx/scielo.php?script=sci_arttext&pid=S1405-55462013000100003&lng=en&nrm=iso&tlng=en Artificial Neural Networks (ANNs) are grouped within connectionist techniques of Artificial Intelligence. In particular, Recurrent Neural Networks are a type of ANN which is widely used in signal reproduction tasks and sequence analysis, where causal relationships in time and space take place. On the other hand, in many problems of science and engineering, signals or sequences under analysis do not always have the same length, making it difficult to select a computational technique for information processing. This article presents a flexible implementation of Recurrent Neural Networks which allows designing the desired topology based on specific application problems. Furthermore, the proposed model is capable of learning to use knowledge bases with instances of variable length in an efficient manner. The performance of the suggested implementation is evaluated through a study case of bioinformatics sequence classification. We also mention its application in obtaining artificial earthquakes from seismic scenarios similar to Cuba.<hr/>Las Redes Neuronales Artificiales (RNAs) se agrupan dentro de las técnicas conexionistas de la Inteligencia Artificial. En particular las Redes Neuronales Recurrentes son un tipo de RNA de amplio uso en tareas de reproducción de señales y análisis de secuencias, donde se reflejan relaciones causales en el tiempo y el espacio respectivamente. Por otra parte, en muchos problemas de la ingeniería y la ciencia, las señales o secuencias analizadas no siempre tienen la misma longitud, dificultando la selección de la técnica computacional a utilizar para su procesamiento. En este artículo se presenta una implementación flexible de Redes Neuronales Recurrentes que permite definir la topología deseada en función del problema específico de aplicación. Además este modelo es capaz de aprender utilizando bases de conocimiento con instancias de longitud variable de una forma eficiente. El rendimiento de la implementación propuesta es evaluado a través de un caso de estudio de clasificación de secuencias bioinformáticas y además se describe su aplicación en la obtención de terremotos sintéticos a partir de información de escenarios sísmicos similares a los de Cuba. <![CDATA[<b>An Application of Fuzzy Logic for Hardware/Software Partitioning in Embedded Systems</b>]]> http://www.scielo.org.mx/scielo.php?script=sci_arttext&pid=S1405-55462013000100004&lng=en&nrm=iso&tlng=en Hardware/Software partitioning (HSP) is a key task for embedded system co-design. The main goal of this task is to decide which components of an application are to be executed in a general purpose processor (software) and which ones, on a specific hardware, taking into account a set of restrictions expressed by metrics. In last years, several approaches have been proposed for solving the HSP problem, directed by metaheuristic algorithms. However, due to diversity of models and metrics used, the choice of the best suited algorithm is an open problem yet. This article presents the results of applying a fuzzy approach to the HSP problem. This approach is more flexible than many others due to the fact that it is possible to accept quite good solutions or to reject other ones which do not seem good. In this work we compare six metaheuristic algorithms: Random Search, Tabu Search, Simulated Annealing, Hill Climbing, Genetic Algorithm and Evolutionary Strategy. The presented model is aimed to simultaneously minimize the hardware area and the execution time. The obtained results show that Restart Hill Climbing is the best performing algorithm in most cases.<hr/>El Particionado Hardware/Software (PHS) es una etapa fundamental en el co-diseño de sistemas embebidos. El objetivo principal de esta etapa es decidir que componentes de la aplicación serían ejecutados en un procesador de propósito general (software) y cuales en un hardware específico, teniendo en cuenta las restricciones. En los últimos anos, se han propuesto diferentes estrategias para resolver el problema PHS, las cuales utilizan en su mayoría algoritmos metaheurísticos. Sin embargo, debido a la diversidad de modelos y métricas utilizadas, decidir que algoritmo es mejor que otro es un problema abierto. Este artículo presenta los resultados de aplicar lógica difusa en el problema PHS. Esta estrategia es más flexible que muchas de las otras propuestas, ya que es posible aceptar soluciones bastante buenas o rechazar otras que no parezcan buenas. Además en este trabajo se comparan seis algoritmos metaheurísticos: Búsqueda aleatoria, Búsqueda tabú, Recocido simulado, Escalador de colinas, Algoritmo genético y Estrategia evolutiva. El modelo que se presenta está dirigido a minimizar de forma simultánea el área de hardware y el tiempo de ejecución del sistema. Los resultados muestran que el escalador de colinas es el algoritmo que obtiene mejores resultados en la mayoría de los casos. <![CDATA[<b>Feature Selection using Associative Memory Paradigm and Parallel Computing</b>]]> http://www.scielo.org.mx/scielo.php?script=sci_arttext&pid=S1405-55462013000100005&lng=en&nrm=iso&tlng=en Performance of most pattern classifiers is improved when redundant or irrelevant features are removed. Nevertheless, this is mainly achieved by highly demanding computational methods or successive classifiers' construction. This paper shows how the associative memory paradigm and parallel computing can be used to perform Feature Selection tasks. This approach uses associative memories in order to get a mask value which represents a subset of features which clearly identifies irrelevant or redundant information for classification purposes. The performance of the proposed associative memory algorithm is validated by comparing classification accuracy of the suggested model against the performance achieved by other well-known algorithms. Experimental results show that associative memories can be implemented in parallel computing infrastructure, reducing the computational costs needed to find an optimal subset of features which maximizes classification performance.<hr/>El rendimiento en la mayoría de los clasificadores de patrones se mejora cuando las características redundantes o irrelevantes son eliminadas. Sin embargo, esto se logra a través de la construcción de clasificadores sucesivos o mediante algoritmos iterativos que implican altos costos computacionales. Este trabajo muestra la aplicación del paradigma de memoria asociativa y la computación paralela para realizar tareas de selección de características. Este enfoque utiliza las memorias asociativas para obtener el valor de una máscara que identifica claramente la información irrelevante o redundante para fines de clasificación. El desempeño del algoritmo propuesto es validado a través de la comparación de la precisión predictiva alcanzada por este modelo contra el desempeño alcanzado por otros algoritmos reconocidos en la literatura actual. Los resultados experimentales muestran que las memorias asociativas pueden ser implementadas en infraestructura de computo paralelo, reduciendo los costos computacionales necesarios para encontrar el subconjunto óptimo de características de maximiza el desempeño de clasificación. <![CDATA[<b>Multiobjective Adaptive Metaheuristics</b>]]> http://www.scielo.org.mx/scielo.php?script=sci_arttext&pid=S1405-55462013000100006&lng=en&nrm=iso&tlng=en La optimización de problemas en los que hay maximizar o minimizar a la vez varias funciones, que usualmente están en conflicto entre sí, usando metaheurísticas, es un campo de investigación cada vez más popular, que ha dado lugar a una disciplina conocida como optimización multiobjetivo. Las metaheurísticas son técnicas no exactas que intentan proporcionar soluciones satisfactorias a problemas complejos de optimización en los que las técnicas exactas no son viables, y se caracterizan por usar una serie de operadores que se aplican de forma estocástica de acuerdo a cierta parametrización. Los valores de estos parámetros suelen ser establecidos al inicio de la ejecución de las técnicas y permanecen invariados hasta que estas terminan, y recientemente estan surgiendo trabajos que sugieren que dichos parámetros se modifiquen de forma adaptativa, según la marcha del algoritmo. En este trabajo se propone estudiar el efecto de usar dos operadores de forma adaptativa en dos metaheurísticas multiobjetivo representativas. Los resultados obtenidos indican que es posible mejorar el rendimiento de los algoritmos usando adaptatividad.<hr/>Solution of Abstract Optimization problems with two or more conflicting functions or objectives by using metaheuristics has attracted attention of researches and become a rapidly developing area known as Multiobjective Optimization. Metaheuristics are non-exact techniques aimed to produce satisfactory solutions to complex optimization problems where exact techniques are not applicable; they are characterized by using some operators that are applied in a stochastic way according to a given parameterization. The settings of these parameters are usually established at the beginning of the execution of algorithms, and they remain unchanged until the search finishes. Recently, a number of papers studying adaptive modifications of these parameters on the fly have emerged. In this work, we report a study of the effect of using two operators in an adaptive way in two multiobjective metaheuristics representative of the state-of-the-art. The obtained results demonstrate that it is possible to improve the search performance of two chosen algorithms by using the adaptive scheme. <![CDATA[<b>A Novel Approach for Pseudo-Random Seed Generation</b>]]> http://www.scielo.org.mx/scielo.php?script=sci_arttext&pid=S1405-55462013000100007&lng=en&nrm=iso&tlng=en Random sequences play an important role in all aspects of Cryptography. All cryptographic systems and protocols are based on secrets and can only be as strong as the random sequence generators they use to generate those secrets. The best cryptographic scheme becomes insecure once its secrets can be predicted or determined. In modern cryptography random sequences are used (1) to generate session keys and initialization vectors for symmetric block ciphers, (2) to generate random values for various digital signature schemes such as DSA and (3) to produce seeds which are used in math routines to get values such as large prime numbers for RSA and also in security protocols. This paper presents the design of RAMG, a pseudorandom seed generator, using a secure symmetric block cipher algorithm. We describe the design principles used for the development of the generator as well as its principal components. We also discuss the idea of using it as a pseudo-random bit generator (DRBG).<hr/>Las sucesiones aleatorias juegan un papel importante en todos los aspectos de la criptografía. Todos los sistemas y protocolos criptográficos se basan en el secreto y solo pueden ser tan fuertes como lo sean los generadores aleatorios de sucesiones empleados para generar esos secretos. El mejor esquema criptográfico deviene inseguro una vez se puedan determinar o predecir sus secretos. En la criptografía moderna se emplean las sucesiones aleatorias para: generar llaves de sesión e inicializar vectores para esquemas simétricos de cifrado en bloques; generar valores aleatorios para diversos esquemas de firma digital tales como DSA y ECDSA; generar semillas que se empleen en rutinas matemáticas para obtener valores tales como números primos grandes para esquemas como RSA y ElGamal, entre otras aplicaciones. En este trabajo se describe el diseño de RAMG, un generador seudo-aleatorio de semillas (GSSA) empleando un algoritmo simétrico seguro de cifrado en bloques. Se describen los principios de diseño utilizados para su desarrollo así como sus componentes principales y se analiza la idea de emplearlo como un generador de sucesiones de bits seudo-aleatorios (GBSA). <![CDATA[<b>Unit Tests of Software in a University Environment</b>]]> http://www.scielo.org.mx/scielo.php?script=sci_arttext&pid=S1405-55462013000100008&lng=en&nrm=iso&tlng=en Quality is a necessary feature to be achieved by a system or application after its development is completed. Tests contribute to software quality, but testing is a process that requires much time. This process starts at the beginning of the construction of a system and ends before the implementation. This paper presents an analysis of a set of tools for automatic test execution, with emphasis on unit testing, and describes a proposal of using such tools in a university environment of project development. This proposal responds to the need of combining commercial tools with other path generation tools and test cases.<hr/>La calidad es una característica necesaria que debe ser alcanzada por el sistema o aplicación una vez finalizado su desarrollo. Las pruebas contribuyen a la calidad del software, aunque es un proceso que requiere de un alto porcentaje de tiempo. Estas deben comenzar desde que el desarrollador inicia la construcción del sistema y deben finalizar antes del despliegue del mismo. Este trabajo se centra en las pruebas que se hacen a los pequeños componentes que conforman el sistema. En él se presenta un análisis de un grupo de herramientas de ejecución automática de pruebas, haciendo énfasis en las pruebas unitarias, y esboza una propuesta de utilización de estas en un entorno de desarrollo de proyectos en el marco universitario. En esta propuesta se sustenta la necesidad de combinar estas herramientas comerciales con otras de generación de caminos y casos de prueba. <![CDATA[<b>Business Process Modeling</b>: <b>Evolution of the Concept in a University Context</b>]]> http://www.scielo.org.mx/scielo.php?script=sci_arttext&pid=S1405-55462013000100009&lng=en&nrm=iso&tlng=en Business Process Management (BPM) covers concepts, methods, techniques and software tools that support the business process lifecycle. Implementation of BPM solutions represents a complex task, which has led different authors and tool vendors to define their own cycle to address these initiatives, where the modeling phase is an invariant element. It includes a process analysis with the purpose of identifying problems and opportunities for business improvement, and then creating an electronic design, which can be implemented and continuously enhanced. The objective of this research is to analyze the understanding evolution of the Business Process Modeling concept at the Integrated Technology Research Complex from 2009 to 2012. The results obtained provide evidence of the factors that have influenced in the assimilation and incorporation of BPM paradigm at the institution.<hr/>La Gestión de Procesos de Negocios (BPM, siglas en inglés) abarca conceptos, métodos, técnicas y herramientas de software que brindan soporte al ciclo de vida de los procesos de negocio. La implantación de soluciones BPM representa una tarea compleja, que ha provocado que diferentes autores y fabricantes de tecnologías definan su propio ciclo para afrontar iniciativas de este tipo, donde el modelado representa un elemento invariante. Dicha fase comprende el análisis de procesos con el propósito de detectar problemas y oportunidades, para luego realizar un diseño electrónico que pueda ser ejecutado y mejorado continuamente. El objetivo de la presente investigación consiste en analizar cómo ha evolucionado la comprensión del concepto de Modelado de Procesos de Negocio en el Complejo de Investigaciones Tecnológicas Integradas en el período 2009-2012. Los resultados ofrecen evidencias de los factores que han influido en la asimilación e incorporación del paradigma BPM en la institución. <![CDATA[<b>Decision Tree based Classifiers for Large Datasets</b>]]> http://www.scielo.org.mx/scielo.php?script=sci_arttext&pid=S1405-55462013000100010&lng=en&nrm=iso&tlng=en In this paper, several algorithms have been developed for building decision trees from large datasets. These algorithms overcome some restrictions of the most recent algorithms in the state of the art. Three of these algorithms have been designed to process datasets described exclusively by numeric attributes, and the fourth one, for processing mixed datasets. The proposed algorithms process all the training instances without storing the whole dataset in the main memory. Besides, the developed algorithms are faster than the most recent algorithms for building decision trees from large datasets, and reach competitive accuracy rates.<hr/>En este artículo se desarrollaron varios algoritmos de generación de árboles de decisión a partir de grandes conjuntos de datos, los cuales resuelven algunas de las limitaciones de los algoritmos más recientes del estado del arte. Tres de estos algoritmos permiten procesar conjuntos de datos descritos exclusivamente por atributos numéricos; y otro puede procesar conjuntos de datos mezclados. Los algoritmos propuestos procesan todos los objetos del conjunto de entrenamiento sin necesidad de almacenarlo completo en memoria. Además, los algoritmos desarrollados son más rápidos que los algoritmos más recientes para la generación de árboles de decisión para grandes conjuntos de datos, obteniendo resultados de clasificación competitivos.