Descomposición funcional

ImprimirCitar

En matemáticas, la descomposición funcional es el proceso de resolver una relación funcional en sus partes constituyentes de tal manera que la función original se puede reconstruir (es decir, recomponer) a partir de esas partes mediante la composición de funciones.

Este proceso de descomposición se puede llevar a cabo para obtener información sobre la identidad de los componentes constituyentes que pueden reflejar procesos físicos individuales de interés. Además, la descomposición funcional puede resultar en una representación comprimida de la función global, una tarea que solo es factible cuando los procesos constituyentes poseen un cierto nivel de modularidad (es decir, independencia o no interacción).

Interacciones entre los Los componentes son críticos para la función de la colección. Todas las interacciones pueden no ser observable, pero posiblemente se deduce a través de percepción, síntesis, validación y verificación del comportamiento compuesto.

Definición matemática básica

Un ejemplo de una estructura de dependencia escasamente conectada. La dirección del flujo causal es ascendente.

Para una función multivariable , la descomposición funcional generalmente se refiere a un proceso de identificación de un conjunto de funciones tales que

Donde es otra función. Así, diríamos que la función se descompone en funciones . Este proceso es intrínsecamente jerárquico en el sentido de que podemos (y a menudo lo hacemos) tratar de descomponer aún más las funciones en una colección de funciones constitutivas tales que

Donde es otra función. Las descomposiciones de este tipo son interesantes e importantes por una amplia variedad de razones. En general, las descomposiciones funcionales valen la pena cuando hay cierta "sparseness" en la estructura de dependencia; es decir, cuando las funciones constitutivas se encuentran depender de conjuntos de variables aproximadamente descomunales. Así, por ejemplo, si podemos obtener una descomposición de en una composición jerárquica de funciones tales que , , , como se muestra en la figura a la derecha, esto probablemente se consideraría una descomposición muy valiosa.

Ejemplo: Aritmética

Un ejemplo básico de descomposición funcional está expresando las cuatro operaciones aritméticas binarias de adición, resta, multiplicación y división en términos de las dos operaciones binarias de adición y multiplicación y las dos operaciones de inversión aditiva inversión multiplicativa La resta puede ser realizada como la composición de la adición y la inversión aditiva, y división se puede realizar como la composición de la multiplicación e inverso multiplicador, Esto simplifica el análisis de la resta y la división, y también hace más fácil axiomatizar estas operaciones en la noción de un campo, ya que sólo hay dos operaciones binarias y dos no, en lugar de cuatro operaciones binarias.

Ampliando estas operaciones primitivas, existe una rica literatura sobre el tema de la descomposición de polinomios.

Ejemplo: Descomposición de funciones continuas

Motivación para la descomposición

En cuanto a ¿Por qué? la descomposición es valiosa, la razón es doble. En primer lugar, la descomposición de una función en componentes que no intervienen generalmente permite más representaciones económicas de la función. Por ejemplo, en un conjunto de variables cuaternarias (es decir, 4-ary) que representan la función completa requiere almacenamiento valores, el valor de la función para cada elemento del producto cartesiano , es decir, cada una de las 1024 posibles combinaciones para . Sin embargo, si la descomposición entra en dado arriba es posible, entonces requiere almacenar 4 valores, requiere almacenamiento valores, y de nuevo requiere almacenar sólo 4 valores. Así que en virtud de la descomposición, sólo necesitamos almacenar valores más que 1024 valores, un ahorro dramático.

Influencias causales en el tráfico de la autopista West Side. El tiempo y el tráfico del puente GW pantalla apagada otras influencias

Intuitivamente, esta reducción del tamaño de la representación se logra simplemente porque cada variable depende sólo de un subconjunto de las otras variables. Así, variable sólo depende directamente de la variable , en lugar de depender de entero de variables. Diríamos esa variable pantallas apagadas variable del resto del mundo. Ejemplos prácticos de este fenómeno nos rodean, como se discutió en las " Consideraciones Filosóficas" a continuación, pero consideremos el caso particular de "trafico sin límites en la autopista West Side". Supongamos esta variable () toma en tres posibles valores de { "moviendo lento", "moviendo mortalmente lento", "no moverse en absoluto"}. Ahora digamos variable depende de otras dos variables, "tanto" con valores de {"sun", "rain", "snow"}, y "GW Bridge traffic" con valores {"10mph", "5mph", "1mph"}. El punto aquí es que, aunque hay muchas variables secundarias que afectan a la variable meteorológica (por ejemplo, sistema de baja presión sobre Canadá, acoplamiento de mariposas en Japón, etc.) y la variable de tráfico del puente (por ejemplo, un accidente en el I-95, la autopista presidencial, etc.) todas estas otras variables secundarias no son directamente relevantes para el tráfico de la carretera West Side. Todo lo que necesitamos (hipotéticamente) para predecir el tráfico de la autopista West Side es el tiempo y el tráfico del puente GW, porque estas dos variables pantalla apagada West Side Highway traffic from all other potential influences. Es decir, todas las otras influencias actúan a través de ellos.

Fuera de consideraciones puramente matemáticas, quizás el mayor valor de la descomposición funcional es la percepción que proporciona en la estructura del mundo. Cuando se puede lograr una descomposición funcional, esto proporciona información ontológica sobre qué estructuras existen realmente en el mundo, y cómo se pueden predecir y manipular. Por ejemplo, en la ilustración anterior, si se aprende que depende directamente de , esto significa que para fines de predicción de , basta saber sólo . Moreover, interventions to influence se puede tomar directamente , y nada adicional se puede ganar interviniendo en variables , ya que estos sólo actúan a través de en cualquier caso.

Consideraciones filosóficas

Los antecedentes filosóficos y las ramificaciones de la descomposición funcional son bastante amplios, ya que la descomposición funcional de una forma u otra subyace a toda la ciencia moderna. Aquí revisamos sólo algunas de estas consideraciones filosóficas.

Tradición reduccionista

Una de las principales distinciones que a menudo se establecen entre la filosofía oriental y la filosofía occidental es que los filósofos orientales tendían a adoptar ideas que favorecían el holismo, mientras que los pensadores occidentales tendían a adoptar ideas que favorecían el reduccionismo. Esta distinción entre Oriente y Occidente es similar a otras distinciones filosóficas (como el realismo frente al antirrealismo). Algunos ejemplos del espíritu holístico oriental:

  • "Abre tu boca, aumenta tus actividades, empieza a hacer distinciones entre cosas, y trabajarás para siempre sin esperanza." — El Tao Te Ching de Lao Tzu (Brian Browne Walker, traductor)
  • "Es un trabajo difícil para [la gente] ver el significado del hecho de que todo, incluyendo nosotros mismos, depende de todo lo demás y no tiene autoexistencia permanente". — Majjhima Nikaya (Anne Bankroft, traductor)
  • "Se impone un nombre a lo que se cree que es una cosa o un estado y esto lo divide de otras cosas y otros estados. Pero cuando persigues lo que está detrás del nombre, encuentras una sutileza mayor y mayor que no tiene divisiones..." — Visuddhi Magga (Anne Bankroft, traductor)

La tradición occidental, desde sus orígenes entre los filósofos griegos, prefirió una posición en la que trazar distinciones, divisiones y contrastes correctos se consideraba la cúspide de la perspicacia. En la cosmovisión aristotélica/porfiriana, ser capaz de distinguir (a través de pruebas estrictas) qué cualidades de una cosa representan su esencia frente a propiedad frente a accidente frente a definición y, en virtud de esta descripción formal, segregar esa entidad en su lugar adecuado. en la taxonomía de la naturaleza, esto era para alcanzar la altura misma de la sabiduría.

Características de jerarquía y modularidad

En sistemas naturales o artificiales que requieren que los componentes se integren de alguna manera, pero donde la cantidad de componentes excede lo que razonablemente podría estar totalmente interconectado (debido al crecimiento cuadrático en la cantidad de conexiones (= n sobre dos o = n * (n - 1) / 2)), a menudo se encuentra que se debe emplear cierto grado de jerarquización en la solución. Resnikoff (1989) presenta las ventajas generales de los sistemas jerárquicos dispersos sobre los sistemas densamente conectados y las estimaciones cuantitativas de estas ventajas. En términos prosaicos, una jerarquía es "una colección de elementos que se combinan legalmente en totalidades complejas cuyas propiedades dependen de las de sus partes constituyentes" y donde la novedad es "fundamentalmente combinatoria, iterativa y transparente" (McGinn 1994).

Una noción importante que siempre surge en relación con las jerarquías es la modularidad, que está implícita en la escasez de conexiones en las topologías jerárquicas. En los sistemas físicos, un módulo es generalmente un conjunto de componentes que interactúan y que se relacionan con el mundo externo a través de una interfaz muy limitada, ocultando así la mayoría de los aspectos de su estructura interna. Como resultado, las modificaciones que se realizan en el interior de un módulo (para mejorar la eficiencia, por ejemplo) no crean necesariamente un efecto dominó en el resto del sistema (Fodor 1983). Esta característica hace que el uso efectivo de la modularidad sea una pieza central de toda buena ingeniería de software y hardware.

Inevitabilidad de la jerarquía y la modularidad

Hay muchos argumentos convincentes con respecto a la prevalencia y la necesidad de la jerarquía/modularidad en la naturaleza (Koestler 1973). Simon (1996) señala que entre los sistemas en evolución, solo aquellos que pueden lograr obtener y luego reutilizar subensamblajes (módulos) estables probablemente podrán buscar en el panorama de la aptitud a un ritmo razonablemente rápido; por lo tanto, Simon sostiene que "entre las posibles formas complejas, las jerarquías son las que tienen tiempo para evolucionar". Esta línea de pensamiento ha llevado a la afirmación aún más fuerte de que aunque "no sabemos qué formas de vida han evolucionado en otros planetas del universo... podemos suponer con seguridad que "dondequiera que haya vida, debe estar organizado jerárquicamente'" (Koestler 1967). Este sería un estado de cosas afortunado ya que se cree que la existencia de subsistemas simples y aislables es una condición previa para el éxito de la ciencia (Fodor 1983). En cualquier caso, la experiencia ciertamente parece indicar que gran parte del mundo posee una estructura jerárquica.

Se ha propuesto que la percepción en sí misma es un proceso de descomposición jerárquica (Leyton 1992), y que los fenómenos que no son esencialmente de naturaleza jerárquica pueden ni siquiera ser "teóricamente inteligibles" a la mente humana (McGinn 1994,Simon 1996). En palabras de Simón,

El hecho de que muchos sistemas complejos tengan una estructura casi descompuesta y jerárquica es un factor de facilitación importante que nos permite comprender, describir e incluso "ver" tales sistemas y sus partes. O tal vez la propuesta debe ser puesta al revés. Si hay sistemas importantes en el mundo que son complejos sin ser jerárquicos, pueden escapar en gran medida de nuestra observación y comprensión. El análisis de su comportamiento implicaría tales conocimientos detallados y cálculos de las interacciones de sus partes elementales que estarían más allá de nuestras capacidades de memoria o cálculo.

Aplicaciones

Las aplicaciones prácticas de la descomposición funcional se encuentran en las redes bayesianas, el modelado de ecuaciones estructurales, los sistemas lineales y los sistemas de bases de datos.

Representación del conocimiento

Los procesos relacionados con la descomposición funcional prevalecen en los campos de la representación del conocimiento y el aprendizaje automático. Las técnicas de inducción de modelos jerárquicos, como la minimización de circuitos lógicos, los árboles de decisión, la inferencia gramatical, la agrupación jerárquica y la descomposición de quadtree, son ejemplos de descomposición de funciones. Se puede encontrar una revisión de otras aplicaciones y descomposición de funciones en Zupan et al. (1997), que también presenta métodos basados en la teoría de la información y la teoría de grafos.

Se puede considerar que muchos métodos de inferencia estadística implementan un proceso de descomposición de funciones en presencia de ruido; es decir, donde solo se espera que las dependencias funcionales se mantengan aproximadamente. Entre estos modelos se encuentran los modelos mixtos y los métodos recientemente populares denominados "descomposiciones causales" o redes bayesianas.

Teoría de bases de datos

Ver normalización de base de datos.

Aprendizaje automático

En aplicaciones científicas prácticas, casi nunca es posible lograr una descomposición funcional perfecta debido a la increíble complejidad de los sistemas que se estudian. Esta complejidad se manifiesta en la presencia de "ruido," que es solo una designación para todas las influencias no deseadas e imposibles de rastrear en nuestras observaciones.

Sin embargo, aunque la descomposición funcional perfecta suele ser imposible, el espíritu sigue vivo en una gran cantidad de métodos estadísticos que están equipados para tratar con sistemas ruidosos. Cuando un sistema natural o artificial es intrínsecamente jerárquico, la distribución conjunta de las variables del sistema debe proporcionar evidencia de esta estructura jerárquica. La tarea de un observador que busca comprender el sistema es entonces inferir la estructura jerárquica a partir de las observaciones de estas variables. Esta es la noción detrás de la descomposición jerárquica de una distribución conjunta, el intento de recuperar algo de la estructura jerárquica intrínseca que generó esa distribución conjunta.

Como ejemplo, los métodos de redes bayesianas intentan descomponer una distribución conjunta a lo largo de sus líneas de falla causales, y así "cortar la naturaleza por sus costuras". La motivación esencial detrás de estos métodos es nuevamente que dentro de la mayoría de los sistemas (naturales o artificiales), relativamente pocos componentes/eventos interactúan entre sí directamente en pie de igualdad (Simon 1963). Más bien, uno observa bolsas de conexiones densas (interacciones directas) entre pequeños subconjuntos de componentes, pero solo conexiones sueltas entre estos subconjuntos densamente conectados. Por lo tanto, existe una noción de "proximidad causal" en sistemas físicos bajo los cuales las variables se precipitan naturalmente en pequeños grupos. Identificar estos grupos y usarlos para representar la articulación proporciona la base para una gran eficiencia de almacenamiento (en relación con la distribución conjunta completa), así como para potentes algoritmos de inferencia.

Arquitectura de software

La descomposición funcional es un método de diseño que pretende producir una descripción arquitectónica de un programa informático que no es de implementación. En lugar de conjeturar Objetos y agregarles métodos (OOP), con cada Objeto con la intención de capturar algún servicio del programa, el arquitecto de software primero establece una serie de funciones y tipos que resuelven el principal problema de procesamiento del programa de computadora, descompone cada uno para revelar funciones y tipos comunes, y finalmente deriva Módulos de esta actividad.

Por ejemplo, el diseño del editor Emacs se puede pensar inicialmente en términos de funciones:


Y una posible descomposición de funciones de f:

Esto lo lleva a uno al módulo, servicio u objeto plausible de un intérprete (que contiene la función fromExpr). Podría decirse que la descomposición de funciones arroja información sobre la reutilización, por ejemplo, si durante el curso del análisis, dos funciones producen el mismo tipo, es probable que una función común o una preocupación transversal resida en ambas. Por el contrario, en OOP, es una práctica común conjeturar Módulos antes de considerar tal descomposición. Podría decirse que esto da como resultado una refactorización costosa más adelante. FD mitiga ese riesgo hasta cierto punto. Además, podría decirse que lo que separa a FD de otros métodos de diseño es que proporciona un medio conciso de discurso arquitectónico de alto nivel que es de principio a fin, revelando fallas en los requisitos anteriores y exponiendo beneficiosamente más decisiones de diseño por adelantado. Y, por último, se sabe que FD prioriza el desarrollo. Podría decirse que, si el DF es correcto, las partes del programa más reutilizables y determinadas por el costo se identifican mucho antes en el ciclo de desarrollo.

Procesamiento de señales

La descomposición funcional se utiliza en el análisis de muchos sistemas de procesamiento de señales, como los sistemas LTI. La señal de entrada a un sistema LTI se puede expresar como una función, . Entonces... se puede descomponer en una combinación lineal de otras funciones, llamadas señales de componentes:

Aquí, son las señales del componente. Note que son constantes. Esta descomposición ayuda en el análisis, porque ahora la salida del sistema se puede expresar en términos de los componentes de la entrada. Si lo dejamos representar el efecto del sistema, entonces la señal de salida es , que se puede expresar como:

En otras palabras, se puede considerar que el sistema actúa por separado en cada uno de los componentes de la señal de entrada. Ejemplos comúnmente usados de este tipo de descomposición son la serie de Fourier y la transformada de Fourier.

Ingeniería de sistemas

La descomposición funcional en ingeniería de sistemas se refiere al proceso de definir un sistema en términos funcionales, luego definir funciones de nivel inferior y relaciones de secuencia a partir de estas funciones de sistemas de nivel superior. La idea básica es tratar de dividir un sistema de tal manera que cada bloque de un diagrama de bloques se pueda describir sin una "y" o "o" en la descripción.

Este ejercicio obliga a cada parte del sistema a tener una función pura. Cuando un sistema está diseñado como funciones puras, pueden reutilizarse o reemplazarse. Un efecto secundario habitual es que las interfaces entre bloques se vuelven simples y genéricas. Dado que las interfaces generalmente se vuelven simples, es más fácil reemplazar una función pura con una función similar relacionada.

Por ejemplo, digamos que uno necesita hacer un sistema estéreo. Uno podría descomponer funcionalmente esto en parlantes, amplificador, una casetera y un panel frontal. Más tarde, cuando un modelo diferente necesite un CD de audio, probablemente pueda adaptarse a las mismas interfaces.

Contenido relacionado

Pi

Relación de aspecto

Teoría de la perturbación

Más resultados...
Tamaño del texto:
Copiar