stringtranslate.com

Computación lateral

La computación lateral es un enfoque de pensamiento lateral para resolver problemas informáticos. El pensamiento lateral se hizo popular gracias a Edward de Bono . [1] Esta técnica de pensamiento se aplica para generar ideas creativas y resolver problemas. De manera similar, al aplicar técnicas de computación lateral a un problema, puede resultar mucho más fácil llegar a una solución computacionalmente económica, fácil de implementar, eficiente, innovadora o no convencional.

El enfoque tradicional o convencional para resolver problemas informáticos consiste en construir modelos matemáticos o tener una estructura IF-THEN-ELSE . Por ejemplo, en muchos motores de ajedrez se utiliza una búsqueda de fuerza bruta [2] , pero este enfoque es computacionalmente costoso y, a veces, puede dar lugar a soluciones deficientes. Es para problemas como este que la computación lateral puede ser útil para formar una mejor solución.

Un problema simple de retroceso de un camión puede usarse para ilustrar el cálculo lateral [ aclaración necesaria ] . [ cita requerida ] Esta es una de las tareas difíciles para las técnicas de computación tradicionales, y se ha resuelto de manera eficiente mediante el uso de lógica difusa (que es una técnica de computación lateral). [ cita requerida ] La computación lateral a veces llega a una solución novedosa para un problema de computación particular utilizando el modelo de cómo los seres vivos, como los humanos, las hormigas y las abejas, resuelven un problema; cómo se forman los cristales puros por recocido, o la evolución de los seres vivos o la mecánica cuántica, etc. [ aclaración necesaria ]

Del pensamiento lateral a la computación lateral

El pensamiento lateral es una técnica de pensamiento creativo para resolver problemas. [1] El cerebro, como centro del pensamiento, tiene un sistema de información autoorganizado. Tiende a crear patrones y el proceso de pensamiento tradicional los utiliza para resolver problemas. La técnica del pensamiento lateral propone escapar de estos patrones para llegar a mejores soluciones a través de nuevas ideas. El uso provocativo del procesamiento de la información es el principio básico subyacente del pensamiento lateral.

El operador provocador (OP) es algo que caracteriza al pensamiento lateral. Su función es generar nuevas ideas mediante la provocación y proporcionar una vía de escape a las ideas antiguas. Crea una disposición provisional de la información.

La lógica del agua contrasta con la lógica tradicional o de las rocas. [3] La lógica del agua tiene límites que dependen de las circunstancias y condiciones, mientras que la lógica de las rocas tiene límites estrictos. La lógica del agua, en cierto modo, se parece a la lógica difusa .

Transición a la computación lateral

La computación lateral hace un uso provocativo del procesamiento de la información similar al pensamiento lateral. Esto se explica con el uso de la computación evolutiva, que es una técnica de computación lateral muy útil. La evolución se produce por cambio y selección. Mientras que la mutación aleatoria proporciona cambio, la selección se realiza mediante la supervivencia del más apto . La mutación aleatoria funciona como un procesamiento de información provocativo y proporciona una nueva vía para generar mejores soluciones para el problema de computación. El término "computación lateral" fue propuesto por primera vez por el profesor CR SUTHIKSHN Kumar y el Primer Congreso Mundial sobre Computación Lateral WCLC 2004 se organizó con participantes internacionales durante diciembre de 2004.

La computación lateral toma analogías de ejemplos del mundo real como:

Factores diferenciadores de la “computación lateral”:

Convención – lateral

Es muy difícil trazar un límite claro entre la computación convencional y la lateral. Con el tiempo, algunas técnicas de computación no convencionales se convierten en parte integral de la computación convencional. Por lo tanto, siempre habrá una superposición entre la computación convencional y la lateral. Será una tarea difícil clasificar una técnica de computación como convencional o lateral, como se muestra en la figura. Los límites son difusos y se puede llegar a ellos con conjuntos difusos.

Definición formal

La computación lateral es un conjunto difuso de todas las técnicas de computación que utilizan un enfoque de computación no convencional. Por lo tanto, la computación lateral incluye aquellas técnicas que utilizan computación semiconvencional o híbrida. El grado de pertenencia de las técnicas de computación lateral es mayor que 0 en el conjunto difuso de técnicas de computación no convencional.

A continuación se destacan algunos diferenciadores importantes para la computación lateral.

Computación convencional
Computación lateral

Computación lateral y computación paralela

La computación paralela se centra en mejorar el rendimiento de las computadoras/algoritmos mediante el uso de varios elementos de computación (como elementos de procesamiento). [4] La velocidad de computación se mejora mediante el uso de varios elementos de computación. La computación paralela es una extensión de la computación secuencial convencional. Sin embargo, en la computación lateral, el problema se resuelve utilizando un procesamiento de información no convencional, ya sea mediante computación secuencial o paralela.

Una revisión de las técnicas de computación lateral

Existen varias técnicas de computación que se ajustan al paradigma de computación lateral. A continuación se presenta una breve descripción de algunas de las técnicas de computación lateral:

Inteligencia de enjambre

La inteligencia de enjambre (IS) es la propiedad de un sistema mediante la cual los comportamientos colectivos de agentes (no sofisticados), que interactúan localmente con su entorno, hacen que surjan patrones globales funcionales coherentes. [ aclaración necesaria ] [5] La IS proporciona una base con la que es posible explorar la resolución colectiva (o distribuida) de problemas sin un control centralizado o la provisión de un modelo global.

Una técnica interesante de inteligencia de enjambre es el algoritmo Ant Colony : [6]

Sistemas basados ​​en agentes

Los agentes son sistemas informáticos encapsulados que se encuentran en un entorno determinado y son capaces de actuar de forma flexible y autónoma en dicho entorno para cumplir sus objetivos de diseño. [ Aclaración necesaria ] [7] Se considera que los agentes son autónomos (independientes, no controlables), reactivos (que responden a los acontecimientos), proactivos (que inician acciones por voluntad propia) y sociales (comunicativo). Los agentes varían en sus capacidades: pueden ser estáticos o móviles, o pueden ser inteligentes o no. Cada agente puede tener su propia tarea y/o función. Los agentes y los sistemas multiagente se utilizan como metáfora para modelar procesos distribuidos complejos. Dichos agentes invariablemente necesitan interactuar entre sí para gestionar sus interdependencias . Estas interacciones implican que los agentes cooperen, negocien y coordinen entre sí.

Los sistemas basados ​​en agentes son programas informáticos que intentan simular diversos fenómenos complejos a través de "agentes" virtuales que representan los componentes de un sistema empresarial. Los comportamientos de estos agentes están programados con reglas que describen de forma realista cómo se lleva a cabo el negocio. A medida que agentes individuales muy variados interactúan en el modelo, la simulación muestra cómo sus comportamientos colectivos gobiernan el rendimiento de todo el sistema (por ejemplo, el surgimiento de un producto exitoso o un cronograma óptimo). Estas simulaciones son herramientas estratégicas poderosas para el análisis de escenarios hipotéticos: a medida que los gerentes cambian las características o "reglas" de los agentes, el impacto del cambio se puede ver fácilmente en el resultado del modelo.

Computación en red

Por analogía , una red computacional es una infraestructura de hardware y software que proporciona acceso confiable, consistente, generalizado y económico a capacidades computacionales de alta gama. [8] Las aplicaciones de la computación en red son:

Computación autónoma

El sistema nervioso autónomo regula nuestro ritmo cardíaco y nuestra temperatura corporal, liberando así a nuestro cerebro consciente de la carga de ocuparse de estas y muchas otras funciones de bajo nivel, pero vitales. La esencia de la informática autónoma es la autogestión, cuyo objetivo es liberar a los administradores de sistemas de los detalles de la operación y el mantenimiento del sistema. [9]

Cuatro aspectos de la computación autónoma son:

Este es un gran desafío promovido por IBM . [10]

Computación óptica

La computación óptica consiste en utilizar fotones en lugar de electrones convencionales para realizar los cálculos. [11] Existen bastantes ejemplos de computadoras ópticas y su uso exitoso. [ Aclaración necesaria ] Las puertas lógicas convencionales utilizan semiconductores , que utilizan electrones para transportar las señales. En el caso de las computadoras ópticas, los fotones en un haz de luz se utilizan para realizar los cálculos.

Existen numerosas ventajas en el uso de dispositivos ópticos para la computación, como la inmunidad a las interferencias electromagnéticas , un gran ancho de banda, etc.

Computación del ADN

La computación de ADN utiliza cadenas de ADN para codificar la instancia del problema y manipularlas utilizando técnicas comúnmente disponibles en cualquier laboratorio de biología molecular para simular operaciones que seleccionan la solución del problema si existe.

Como la molécula de ADN también es un código, pero está formada por una secuencia de cuatro bases que se aparean de manera predecible, muchos científicos han pensado en la posibilidad de crear un ordenador molecular. [ aclaración necesaria ] Estos ordenadores se basan en las reacciones mucho más rápidas de los nucleótidos de ADN que se unen con sus complementos, un método de fuerza bruta que tiene un enorme potencial para crear una nueva generación de ordenadores que serían 100 mil millones de veces más rápidos que el PC más rápido de la actualidad. La computación del ADN ha sido anunciada como el "primer ejemplo de verdadera nanotecnología ", [ cita requerida ] e incluso el "inicio de una nueva era", [ cita requerida ] que forja un vínculo sin precedentes entre la informática y las ciencias de la vida.

Ejemplos de aplicaciones de computación de ADN son la solución del problema de la trayectoria hamiltoniana , que es un problema NP [ aclaración necesaria ] completo. La cantidad de operaciones de laboratorio requeridas usando ADN crece linealmente con la cantidad de vértices del gráfico. [ aclaración necesaria ] [12] Se ha informado que los algoritmos moleculares resuelven el problema criptográfico en un número polinomial de pasos. Como se sabe, la factorización de números grandes es un problema relevante en muchas aplicaciones criptográficas.

Computación cuántica

En una computadora cuántica , la unidad fundamental de información (llamada bit cuántico o qubit ), no es binaria sino más bien de naturaleza cuaternaria . [13] [14] Esta propiedad del qubit surge como consecuencia directa de su adherencia a las leyes de la mecánica cuántica, que difieren radicalmente de las leyes de la física clásica. Un qubit puede existir no solo en un estado correspondiente al estado lógico 0 o 1 como en un bit clásico, sino también en estados correspondientes a una mezcla o superposición cuántica de estos estados clásicos. En otras palabras, un qubit puede existir como un cero, un uno o simultáneamente como 0 y 1, con un coeficiente numérico que representa la probabilidad de cada estado. Una computadora cuántica manipula qubits ejecutando una serie de puertas cuánticas , cada una de las cuales es una transformación unitaria que actúa sobre un solo qubit o par de qubits. Al aplicar estas puertas en sucesión, una computadora cuántica puede realizar una transformación unitaria complicada a un conjunto de qubits en algún estado inicial.

Computación reconfigurable

Las matrices de puertas programables en campo (FPGA) están haciendo posible la construcción de computadoras verdaderamente reconfigurables . [15] La arquitectura de la computadora se transforma mediante la reconfiguración sobre la marcha de los circuitos FPGA. La combinación óptima entre arquitectura y algoritmo mejora el rendimiento de la computadora reconfigurable. La característica clave es el rendimiento del hardware y la flexibilidad del software.

Se ha demostrado que las computadoras reconfigurables funcionan varios órdenes de magnitud mejor que las computadoras convencionales para diversas aplicaciones, como la comparación de huellas dactilares, la comparación de secuencias de ADN, etc. [16] .

Recocido simulado

El algoritmo de recocido simulado se diseña observando cómo se forman los cristales puros a partir de un estado gaseoso calentado mientras el sistema se enfría lentamente. [17] El problema de computación se rediseña como un ejercicio de recocido simulado y se llega a las soluciones. El principio de funcionamiento del recocido simulado se toma prestado de la metalurgia: se calienta un trozo de metal (se agitan térmicamente los átomos) y luego se deja que el metal se enfríe lentamente. El enfriamiento lento y regular del metal permite que los átomos se deslicen progresivamente hasta sus posiciones más estables ("de energía mínima"). (Un enfriamiento rápido los habría "congelado" en cualquier posición en la que estuvieran en ese momento). La estructura resultante del metal es más fuerte y más estable. Al simular el proceso de recocido dentro de un programa de computadora, es posible encontrar respuestas a problemas difíciles y muy complejos. En lugar de minimizar la energía de un bloque de metal o maximizar su resistencia, el programa minimiza o maximiza algún objetivo relevante para el problema en cuestión.

Computación blanda

Uno de los componentes principales de la "computación lateral" es la computación blanda , que aborda problemas con el modelo de procesamiento de información humana. [18] La técnica de computación blanda comprende la lógica difusa, la neurocomputación, la computación evolutiva, el aprendizaje automático y la computación probabilística-caótica.

Computación neurológica

En lugar de resolver un problema mediante la creación de un modelo de ecuación no lineal, se utiliza la analogía de la red neuronal biológica para resolver el problema. [19] La red neuronal se entrena como un cerebro humano para resolver un problema determinado. Este enfoque ha tenido mucho éxito en la solución de algunos de los problemas de reconocimiento de patrones .

Computación evolutiva

El algoritmo genético (AG) se asemeja a la evolución natural para proporcionar una optimización universal. [20] Los algoritmos genéticos comienzan con una población de cromosomas que representan las distintas soluciones. Las soluciones se evalúan utilizando una función de aptitud y un proceso de selección determina qué soluciones se utilizarán para el proceso de competencia. Estos algoritmos son muy exitosos en la solución de problemas de búsqueda y optimización. Las nuevas soluciones se crean utilizando principios evolutivos como la mutación y el cruce.

Lógica difusa

La lógica difusa se basa en los conceptos de conjuntos difusos propuestos por Lotfi Zadeh . [21] El concepto de grado de pertenencia es fundamental para los conjuntos difusos. Los conjuntos difusos se diferencian de los conjuntos nítidos porque permiten que un elemento pertenezca a un conjunto hasta cierto grado (grado de pertenencia). Este enfoque encuentra buenas aplicaciones para problemas de control. [22] La lógica difusa ha encontrado enormes aplicaciones y ya ha encontrado una gran presencia en el mercado de productos electrónicos de consumo, como lavadoras, microondas, teléfonos móviles, televisores, videograbadoras, etc.

Computación probabilística/caótica

Motores de computación probabilística, por ejemplo, el uso de modelos gráficos probabilísticos como la red bayesiana . Estas técnicas computacionales se conocen como aleatorización y producen algoritmos probabilísticos. Cuando se interpretan como un fenómeno físico a través de la termodinámica estadística clásica, estas técnicas conducen a ahorros de energía que son proporcionales a la probabilidad p con la que se garantiza que cada paso computacional primitivo sea correcto (o equivalentemente a la probabilidad de error, (1–p). [23] La computación caótica se basa en la teoría del caos. [24]

Fractales

Los fractales son objetos que muestran autosimilitud a diferentes escalas. [25] La generación de fractales implica pequeños algoritmos iterativos. Los fractales tienen dimensiones mayores que sus dimensiones topológicas. La longitud del fractal es infinita y su tamaño no se puede medir. Se describe mediante un algoritmo iterativo a diferencia de una forma euclidiana que se da mediante una fórmula simple. Hay varios tipos de fractales y los conjuntos de Mandelbrot son muy populares.

Los fractales han encontrado aplicaciones en el procesamiento de imágenes, la compresión de imágenes, la generación de música, los juegos de computadora, etc. El conjunto de Mandelbrot es un fractal que lleva el nombre de su creador. A diferencia de los otros fractales, aunque el conjunto de Mandelbrot es autosimilar a escalas ampliadas, los detalles de pequeña escala no son idénticos al conjunto. Es decir, el conjunto de Mandelbrot es infinitamente complejo. Pero el proceso de generación se basa en una ecuación extremadamente simple. El conjunto de Mandelbrot M es una colección de números complejos. Los números Z que pertenecen a M se calculan probando iterativamente la ecuación de Mandelbrot. C es una constante. Si la ecuación converge para el Z elegido , entonces Z pertenece a M. Ecuación de Mandelbrot:

Algoritmo aleatorio

Un algoritmo aleatorio toma decisiones arbitrarias durante su ejecución, lo que permite ahorrar tiempo de ejecución al comienzo de un programa. La desventaja de este método es la posibilidad de que se produzca una solución incorrecta. Un algoritmo aleatorio bien diseñado tendrá una probabilidad muy alta de devolver una respuesta correcta. [26] Las dos categorías de algoritmos aleatorios son:

Consideremos un algoritmo para encontrar el k -ésimo elemento de una matriz. Un enfoque determinista sería elegir un elemento pivote cerca de la mediana de la lista y dividir la lista en torno a ese elemento. El enfoque aleatorio para este problema sería elegir un pivote al azar, ahorrando así tiempo al principio del proceso. Al igual que los algoritmos de aproximación, se pueden utilizar para resolver más rápidamente problemas NP-completos difíciles. Sin embargo, una ventaja sobre los algoritmos de aproximación es que un algoritmo aleatorio eventualmente producirá una respuesta exacta si se ejecuta suficientes veces.

Aprendizaje automático

Los seres humanos y los animales aprenden nuevas habilidades, lenguajes y conceptos. De manera similar, los algoritmos de aprendizaje automático brindan la capacidad de generalizar a partir de los datos de entrenamiento. [27] Existen dos clases de aprendizaje automático (ML):

Una de las técnicas de aprendizaje automático más conocidas es el algoritmo de retropropagación [19] . Este imita el modo en que los humanos aprenden a partir de ejemplos. Los patrones de entrenamiento se presentan repetidamente a la red. El error se retropropaga y los pesos de la red se ajustan mediante el descenso de gradiente. La red converge a través de varios cientos de cálculos iterativos.

Máquinas de vectores de soporte[28]

Esta es otra clase de técnicas de aprendizaje automático de gran éxito aplicadas con éxito a tareas como la clasificación de texto, el reconocimiento de hablantes , el reconocimiento de imágenes, etc.

Ejemplos de aplicaciones

Existen varias aplicaciones exitosas de las técnicas de computación lateral. A continuación, se presenta un pequeño conjunto de aplicaciones que ilustran la computación lateral:

Resumen

En el presente artículo se presenta una revisión de las técnicas de computación lateral. La computación lateral se basa en el enfoque del pensamiento lateral y aplica técnicas no convencionales para resolver problemas informáticos. Si bien la mayoría de los problemas se resuelven con técnicas convencionales, hay problemas que requieren computación lateral. La computación lateral ofrece ventajas en cuanto a eficiencia computacional, bajo costo de implementación y mejores soluciones en comparación con la computación convencional para varios problemas. La computación lateral aborda con éxito una clase de problemas al explotar la tolerancia a la imprecisión, la incertidumbre y la verdad parcial para lograr manejabilidad, robustez y un bajo costo de solución. Las técnicas de computación lateral que utilizan modelos de procesamiento de información similares a los humanos se han clasificado como "computación blanda" en la literatura.

La computación lateral es valiosa para resolver numerosos problemas computacionales cuyos modelos matemáticos no están disponibles. [ cita requerida ] Proporcionan una forma de desarrollar soluciones innovadoras que resultan en sistemas inteligentes con un coeficiente intelectual de máquina muy alto (VHMIQ). Este artículo ha rastreado la transición del pensamiento lateral a la computación lateral. Luego se han descrito varias técnicas de computación lateral seguidas de sus aplicaciones. La computación lateral sirve para construir inteligencia artificial de nueva generación basada en procesamiento no convencional.

Véase también

Referencias

  1. ^ ab de Bono, E. (1990). Pensamiento lateral para la gestión: un manual . Penguin Books. ISBN 978-0-07-094233-2.
  2. ^ Hsu, FH (2002). Detrás de Deep Blue: la construcción de la computadora que derrotó al campeón mundial de ajedrez . Princeton University Press. ISBN 978-0-691-09065-8.
  3. ^ de Bono, E. (1991). Lógica del agua. Libros de pingüinos. ISBN 978-0-670-84231-5.
  4. ^ Hwang, K. (1993). Arquitectura informática avanzada: paralelismo, escalabilidad, programabilidad . McGraw-Hill Book Co., Nueva York. ISBN 978-0-07-031622-5.
  5. ^ Bonabeau, E.; Dorigo, M.; THERAULUZ, G. (1999). Inteligencia de enjambre: de sistemas naturales a artificiales. Oxford University Press. ISBN 978-0-19-513158-1.
  6. ^ Dorigo, M.; DI CARO, G.; Gamberella, LM (1999). Algoritmos de hormigas para optimización discreta, vida artificial . MIT Press.
  7. ^ Bradshaw, JM (1997). Agentes de software. AAAI Press/The MIT Press. ISBN 978-0-262-52234-2.
  8. ^ Foster, Ian (1999). "Computational Grids, Capítulo 2". The Grid: Blueprint for a New Computing Infrastructure, Informe técnico .
  9. ^ Murch, R. (2004). Computación autónoma . Pearson Publishers. ISBN 978-0-13-144025-8.
  10. ^ "Autonómico". IBM. 2004.
  11. ^ Karim, MA; Awwal, AAS (1992). Computación óptica: una introducción . Wiley Publishers. ISBN 978-0-471-52886-9.
  12. ^ Pisanti, N. (1997). Un estudio sobre computación del ADN (informe técnico). Universidad de Pisa, Italia. TR-97-07.
  13. ^ Braunstein, S. (1999). Computación cuántica . Wiley Publishers. ISBN 978-3-527-40284-7.
  14. ^ Fortnow, L. (julio de 2003). "Introducción a la computación cuántica desde la perspectiva de la ciencia informática y actividades de revisión". NEC Research and Development . 44 (3): 268–272.
  15. ^ Suthikshn, Kumaryear=1996. Neurocomputadoras reconfigurables: creación rápida de prototipos y síntesis de diseño de redes neuronales artificiales para matrices de puertas programables en campo (informe técnico). Universidad de Melbourne, Australia. Tesis doctoral.{{cite tech report}}: CS1 maint: nombres numéricos: lista de autores ( enlace )
  16. ^ Compton y Hauck, 2002
  17. ^ Artes y Krost, 1997
  18. ^ Actas del IEEE, 2001
  19. ^ ab Masters, T. (1995). Algoritmo neuronal, novedoso e híbrido para la predicción de series temporales . John Wiley and Sons Publishers.
  20. ^ ab Goldberg, DE (2000). Algoritmos genéticos en búsqueda, optimización y aprendizaje automático . Addison Wesley Publishers. ISBN 978-0-201-15767-3.
  21. ^ Ross, 1997
  22. ^ abc Kosko, B. (1997). Redes neuronales y sistemas difusos: un enfoque de sistemas dinámicos para la inteligencia de las máquinas . Prentice Hall Publishers. ISBN 978-0-13-611435-2.
  23. ^ Palem, 2003
  24. ^ Gleick, 1998
  25. ^ Mandelbrot, 1977
  26. ^ Motwani y Raghavan, 1995
  27. ^ Mitchell, 1997
  28. ^ Joachims, 2002
  29. ^ SUTHIKSHN, KUMAR (junio de 2003). "Sintonizador de volumen inteligente para teléfonos celulares". Comunicaciones inalámbricas IEEE . 11 (4): 44–49. doi :10.1109/MWC.2004.1308949. S2CID  5711655.
  30. ^ Garey y Johnson, 1979
  31. ^ Aarts y Krost, 1997
  32. ^ Koza y otros, 2003

Fuentes

Conferencias