sábado, 17 de noviembre de 2018

PROBLEMAS SU COMPLEJIDAD Y LA OPCION NATURAL DE SOLUCION


A lo largo de la historia la humanidad a buscado la respuesta a múltiples preguntas sobre su propio origen, desglosando las leyes que rigen la naturaleza, de la misma forma busca soluciones a problemas que se presentan en este camino, muchas veces para resolver incógnitas y otras tantas para suplir necesidades a su cotidianidad; de estos problemas que se han presentado a través del tiempo y a los cuales en su mayoría se les ha dado alguna solución, estos problemas se han tornado cada vez mas complejos, con soluciones mas costosas y en ocasiones sin una solución realmente efectiva; en la búsqueda de la solución a estos problemas ha surgido el enfoque de inspirarse en la naturaleza y sus procesos para intentar encontrar una respuesta efectiva, es claro exponer que en la actualidad la mayoría de los problemas son tratados con herramientas computacionales, lo que ayuda a modelar el mundo real con abstracciones en la maquina y realizar simulaciones analizando y evaluando las soluciones y sus variantes.

Empecemos por clasificar los tipos de problemas que desde el punto de vista computacional pueden presentarse y clasificarse dependiendo de su complejidad, pero ¿Qué es la complejidad? la complejidad es el nivel de multiplicidad de elementos que interactúan entre si dentro de un sistema que presenta variables con incertidumbre, mas coloquialmente un sistema complejo puede verse como una seria de varios componentes que se relacionan entre sí y en los cuales se presenta entropía, computacionalmente un sistema puede tener dos tipos de complejidad que se miden en su desempeño a la hora de solucionar un problema y los recurso que utiliza para solucionarlo; la primera se denomina complejidad temporal y es la función T(n) que mide el número de instrucciones realizadas por el algoritmo para procesar los n elementos de entrada (variables). Cada instrucción tiene asociado un costo temporal en unidades de tiempo, normalmente medidas en microsegundos, la segunda, la complejidad espacial de los algoritmos hace referencia a la cantidad de memoria de procesamiento requerida en tiempo de ejecución, la complejidad espacial, en general, tiene mucho menos interés. El tiempo es un recurso mucho más valioso que el espacio. En todos los casos independientemente del problema se busca solucionarlo reduciendo los niveles de complejidad par que esta sea una solución computacionalmente eficiente.

Cuando los problemas a abordados adquieren un nivel mas alto de complejidad sus soluciones igualmente, con lo que también se clasifican en clases que la determinan si la computación puede darles soluciones o no en tiempos deterministas o inconclusos, estas clases son:

  • Problemas P: son problemas a los cuales se les puede dar una solución computacional y en tal solución se puede medir el tiempo de forma Polinómica con la función T(n).
  • Problemas NP: son los problemas a los cuales su posible solución no puede medirse en tiempo de manera determinista o sea No Polinomial.
  • Problemas NP Completos: con un subconjunto del conjunto NP y son problemas mas complicados que los NP.


En la búsqueda de soluciones a los problemas mas complejos se encuentra una alternativa y es analizar e implementar los métodos que utiliza la naturaleza para encontrar soluciones viables a problemas particulares, uno de estos enfoques son las redes neuronales artificiales (RNA), que son la emulación computacional del funcionamiento del sistema nervioso biológico. Una (RNA) puede definirse como un sistema de procesamiento de información compuesto por un determinado número de elementos de procesamiento (neuronas), conectados entre sí a través de canales de comunicación denominados sinapsis. Estas conexiones establecen una estructura jerárquica y permiten la interacción, representando las abstracciones del mundo real. A diferencia de la computación tradicional, basada en algoritmos predecibles, la computación neuronal permite desarrollar sistemas que resuelvan problemas complejos cuya formalización matemática es sumamente difícil, esto se logra porque los sistemas que trabajan con RNA tienen características de funcionamiento que permiten un tipo de aprendizaje de máquina, estas características son las siguientes:
  • Aprendizaje adaptativo: esta es quizás la característica más importante de las RNA, ya que pueden comportarse en función de un entrenamiento con una serie de ejemplos ilustrativos. De esta forma, no es necesario elaborar un modelo a priori, ni establecer funciones probabilísticas. Una RNA es adaptativa porque puede modificarse constantemente con el fin de adaptarse a nuevas condiciones de trabajo.
  • Autoorganización: mientras que el aprendizaje es un proceso donde se modifica la información interna de la RNA, la autoorganización consiste en la modificación de toda la red completa con el fin de llevar a cabo un objetivo específico. Autoorganización significa generalización, de esta forma una red puede responder a datos o situaciones que no ha experimentado antes, pero que puede inferir en base a su entrenamiento. Esta característica es muy útil sobre todo cuando la información de entrada es poco clara o se encuentra incompleta.
  • Tolerancia a fallos: en la computación tradicional la pérdida de un fragmento pequeño de información puede acarrear comúnmente la inutilización del sistema. Las RNA poseen una alta capacidad de tolerancia a fallos. La tolerancia a fallos se entiende aquí en dos sentidos: primero, las redes pueden reconocer patrones de información con ruido, distorsión o incompletos (tolerancia de fallos respecto de los datos); y segundo, pueden seguir trabajando (con cierta degradación) aunque se destruya parte de la red (tolerancia a fallos respecto de la estructura). La explicación de este fenómeno se encuentra en que, mientras la computación tradicional almacena la información en espacios únicos, localizados y direccionables, las redes neuronales lo hacen de forma distribuida y con un alto grado de redundancia.
  • Operación en tiempo real: de todos los métodos existentes, la RNA son las más indicadas para el reconocimiento de patrones en tiempo real, debido a que trabajan en paralelo actualizando todas sus instancias simultáneamente.

 Resultado de imagen para neural network 
Estructura de una RNA


Todas estas características de las RNA la convierten en una alternativa computacional eficiente para problemas complejos que se presentan en la actualidad sobre todo en el campo de la tecnología y en una era basada en las comunicaciones y procesamiento de la información las mejoras que puede ofrecer esta herramienta son variadas; como ejemplo de esto coloco el siguiente resumen de una investigación que busca mejorar la transmisión de información a través de una red de telecomunicaciones utilizando RNA.

  • Modified Huffman based compression methodology for Deep Neural Network Implementation on Resource Constrained Mobile Platforms; “Metodología de compresión basada en una Modificación de Huffman con implementación de redes neuronales de aprendizaje profundo en plataformas móviles con restricciones de recursos”: En este trabajo se implementa un RNA particular de aprendizaje profundo (DNN) que producen alta precisión en los resultados de aplicaciones algorítmicas, sin embargo, incurren en altos costos de complejidad computacional y requisitos de memoria, la propuesta que ofrece es una estructura de la RNA trabajando en forma paralela con el algoritmo de Huffman haciendo mejoras para la ejecución en un móvil con recursos limitados llegando a una compresión de datos mejorada, no obstante se trabaja el algoritmo de Huffman independiente de la RNA

REFERENCIAS 


L. S. Cohen and T. Wendling, “Técnicas de diseño,” Técnicas de diseño, pp. 15–18, 1998.

J. M. Hurtado, “Simulación y Análisis de Algoritmos de Compresión Empleados en un Sistema de Comunicaciones Digitales .,” vol. 2, pp. 1–10, 2015.

F. de Moya Anegón, V. Herrero Solana, and V. Guerrero Bote, “La aplicación de Redes Neuronales Artificiales (RNA): a la recuperación de la información,” Bibliodoc Anu. Bibl. Doc. i Inf., pp. 147–164, 2007.
C. V. Regueiro, S. Barro, E. Sánchez, and M. Fernández-Delgado, “Modelos básicos de redes neuronales artificiales,” Computación neuronal. pp. 181–218, 1995.


C. Pal, S. Pankaj, W. Akram, A. Acharyya, and D. Biswas, “Modified Huffman based compression methodology for Deep Neural Network Implementation on Resource Constrained Mobile Platforms,” 2018 IEEE Int. Symp. Circuits Syst., pp. 1–5, 2018.
 


 

No hay comentarios:

Publicar un comentario

Conceptos Básicos de la Trigonometría

Concept Map General Topics of Trigonometry Mapa Conceptual Temas Generales de la Trigonometria Link Concept Maps (Mapas Conceptuales) ...