기능분해
Functional decomposition![]() |
수학에서 기능분해란 기능분해(functional discolation)란 기능분해(function composition)에 의해 원래의 기능을 그 부분으로부터 재구성(즉, recomposed)할 수 있는 방식으로 기능관계를 그 구성부분으로 해결하는 과정이다.
이러한 분해 과정은 관심 있는 개별 물리적 프로세스를 반영할 수 있는 구성 요소의 정체성에 대한 통찰력을 얻기 위해 수행될 수 있다. 또한 기능적 분해는 구성 프로세스가 일정 수준의 모듈화(즉, 독립성 또는 비 상호 작용)를 보유할 때만 실현 가능한 과제인 전역 함수의 압축적 표현을 초래할 수 있다.
성분들 사이의 상호작용은[clarify] 수집의 기능에 매우 중요하다. 모든 상호작용을 관측할[clarify] 수는 없지만, 복합 행동의 반복적[clarify] 인식, 합성, 검증 및 검증을 통해 추론할 수 있다.
기초수학정의
For a multivariate function , functional decomposition generally refers to a process of identifying a set of functions such that
여기서 은 (는) 다른 기능이다.[clarification needed] 따라서, f {\이(가 기능 { 1,, … m {\\{로 분해된다고 말할 수 있다 이 프로세스는 본질적으로 기능 을(를) 추가로 분해할 수 있으며(흔히) 그런 식으로 구성 함수{ 1,h ,… p {\\{1}, 의 집합으로 분해할 수 있다는 점에서 계층적이다.
여기서 은 (는) 다른 기능이다. 이런 종류의 분해는 매우 다양한 이유로 흥미롭고 중요하다. 일반적으로 기능적 분해는 의존성 구조에 특정한 "공간성"이 있을 때, 즉 구성적 함수가 대략적으로 분리된 변수 집합에 의존하는 것으로 판명될 때 가치가 있다. Thus, for example, if we can obtain a decomposition of into a hierarchical composition of functions such that , , , as shown in the figure at right, this would probably be considered a highly valuable decomposition.
예: 산술
기능분해의 기본적인 예로는 , 뺄셈, 곱셈, 나눗셈의 네 이항 연산을 덧셈 +b {\ a와 a a의 두 가지 이항 연산과 덧셈 의 단항 연산을 표현한다. 및 곱셈 1 / . a.}뺄셈은 덧셈과 덧셈 변위의 구성으로 실현될 수 있으며 - =+(- b 의 구성으로 분할을 할 수 있다. 이렇게 하면 감산 및 분할에 대한 분석이 간단해지고, 또한 4개의 이항 연산이 아닌 2개의 이항 연산과 2개의 일항 연산이 있기 때문에 필드의 개념에서 이러한 연산을 공리화하기가 더 쉬워진다.
이러한 원시적 연산을 연장하면 다항식 분해에 관한 풍부한 문헌이 있다.
예: 연속함수의 분해
![]() |
분해 동기
부패가 가치 있는 이유에 대해서는 그 이유가 두 가지다. 첫째로, 함수를 비상호작용 구성요소로 분해하면 일반적으로 함수의 보다 경제적인 표현을 허용한다. For example, on a set of quaternary (i.e., 4-ary) variables, representing the full function requires storing values, the value of the function for each element in the Cartesian product , i.e., each of the 1024 possible combinations for . However, if the decomposition into given above is possible, then requires storing 4 values, requires storing values, and 다시 4개의 값만 저장하면 된다. 그래서 분해의 덕택에 우리는 1024 값보다 + + = 값만 저장하면 극적인 절약이 된다.
직관적으로 표현 크기의 이러한 축소는 각 변수가 다른 변수의 부분 집합에만 의존하기 때문에 달성된다. 따라서 변수 1}는 변수 x }}개에만 직접 의존한다 우리는 변수 }}개의 스크린을 통해 변수 }을 다른 세계에서 차단한다고 말할 것이다. 아래의 "철학적 고려사항"에서 논의된 바와 같이, 이러한 현상의 실제적인 예들이 우리를 둘러싸고 있지만, "서측 고속도로의 북행 교통"의 특정한 경우를 생각해 보자. 이 변수( 가 {"느리게 이동", "흉측하게 느리게 이동", "전혀 이동하지 않음"의 세 가지 가능한 값을 차지한다고 가정해 봅시다. 이제 변수 이(가) 다른 두 변수인 "날씨", "비", "눈" 및 "GW Bridge traffic"의 값이 {"10mph", "5mph", "1mph"인 "GW Bridge traffic"에 따라 다르다고 가정합시다. 여기서 요점은 기상 변수(예: 캐나다 상공의 저기압계, 일본의 나비 펄럭 등)와 브릿지 교통 변수(예: I-95, 대통령 전용 자동차 행렬의 사고 등)에 영향을 미치는 이차 변수가 분명히 많지만, 이 다른 이차 변수들은 모두 서시와 직접 관련이 없다는 것이다.고속도로 교통을 막다. West Side Highway의 교통량을 예측하기 위해 우리가 필요한 것은 날씨와 GW Bridge 교통이다. 왜냐하면 이 두 변수가 West Side Highway의 교통을 다른 모든 잠재적 영향으로부터 차단하기 때문이다. 즉, 다른 모든 영향력은 그들을 통해 작용한다.
순수하게 수학적인 고려를 배제하고, 아마도 기능적 부패의 가장 큰 가치는 그것이 세계의 구조에 제공하는 통찰력일 것이다. 기능적 분해가 이루어질 수 있을 때, 이것은 세상에 실제로 존재하는 구조물이 무엇인지, 그리고 그것들이 어떻게 예측되고 조작될 수 있는지에 대한 존재론적 정보를 제공한다. 예를 들어 위의 그림에서 이(가) 에만 의존한다는 사실이 확인되면 는 1 의 예측을 x {\ 게다가 인터뷰 대상도 충분하다는 것을 의미한다.ons to influence can be taken directly on , and nothing additional can be gained by intervening on variables , since these only act through in any c무균의
철학적 고찰
![]() |
기능적 부패의 철학적 선행과 영향은 상당히 광범위하며, 이는 기능적 부패가 현대 과학의 모든 기초가 되기 때문이다. 여기서 우리는 이러한 철학적 고려사항들 중 몇 가지를 검토한다.
환원주의 전통
동양철학과 서양철학 사이에 종종 그려지는 주요한 차이점 중 하나는 동양철학자들이 홀리리즘을 선호하는 사상을 옹호하는 경향이 있는 반면 서양 사상가들은 환원주의를 선호하는 사상을 옹호하는 경향이 있다는 것이다. 이러한 동서양의 구분은 다른 철학적 구분(현실주의 대 반현실주의 등)과 유사하다. 동양의 총체적 정신의 몇 가지 예는 다음과 같다.
- "입 벌리고, 활동량을 늘리고, 사물을 구별하기 시작하면 희망 없이 영원히 고생하게 될 거야." — 노자의 타오 테 칭(브라이언 브라운 워커, 번역가)
- "자신을 포함한 모든 것이 다른 모든 것에 의존하고 영구적인 자기존재가 없다는 것의 의미를 보는 것은 [사람]에게 힘든 일이다." — 니카야 마지마지마(안네 뱅크로프트, 번역가)
- "물건이나 주(州)로 생각되는 것에는 이름이 붙고, 이것은 그것을 다른 것들과 다른 주(州)로 나눈다. 그러나 그 이름 뒤에 숨어 있는 것을 추구할 때, 그대는 분열이 없는 더 크고 더 큰 미묘함을 발견하게 된다." — Visuddhi Magga (Anne Bankroft, 번역가)
서구 전통은 그리스 철학자들 사이의 기원으로부터 정확한 구별, 분열, 대조를 그리는 것이 통찰력의 정점으로 여겨지는 위치를 선호했다. 아리스토텔레스/포르피리아적 세계관에서는 어떤 사물의 어떤 자질이 본질 대 재산 대 사고 대 정의를 나타내는지를 구별할 수 있고, 그리고 그 실체를 자연의 분류학에서 적절한 위치로 분리하는 이 형식적인 설명 덕분에, 이것은 바로 지혜의 극치를 달성하는 것이었다.
계층 및 모듈화의 특성
구성요소를 어떤 방식으로 통합해야 하지만 구성요소 수가 합리적으로 상호 연결될 수 있는 것을 초과하는 자연 시스템 또는 인공 시스템에서는 (연결 수의 사각형 현명한 증가 (= n over 2 또는 = n * (n - 1) / 2))에 따라, 종종 솔루에서 어느 정도의 계층성이 사용되어야 한다는 것을 발견한다.tion. 조밀하게 연결된 시스템보다 희박한 계층적 시스템의 일반적인 이점 및 이러한 이점에 대한 정량적 추정치는 Resnikoff(1989)에 의해 제시된다. prosaic 용어로, 계층 구조는 "구성 요소들의 특성에 따라 합법적으로 복합적으로 결합된 요소들의 집합"이며, 여기서 새로움은 "근본적으로 결합, 반복, 투명"이다(McGinn 1994).
계층 구조와 관련하여 항상 발생하는 중요한 개념은 모듈화인데, 이는 계층 위상에서의 연결의 넓이에 의해 효과적으로 암시된다. 물리적 시스템에서 모듈은 일반적으로 매우 제한된 인터페이스를 통해 외부 세계와 관련되는 상호 작용하는 요소들의 집합이므로 내부 구조의 대부분의 측면을 은폐한다. 결과적으로, 모듈의 내부(예를 들어 효율성 향상을 위해)에 대해 이루어지는 수정은 시스템의 나머지를 통해 반드시 파급 효과를 발생시키지 않는다(Fordor 1983). 이 기능은 모듈화의 효과적인 사용을 모든 우수한 소프트웨어와 하드웨어 엔지니어링의 중심축으로 만든다.
계층 구조와 모듈화의 필연성
자연에서 위계/변형성의 만연과 필요성에 관한 많은 설득력 있는 주장이 있다(Koestler 1973). 사이먼(1996)은 진화하는 시스템 중 안정적 서브 어셈블리(모듈)를 입수해 재사용할 수 있는 시스템만이 상당히 빠른 속도로 피트니스 환경을 탐색할 수 있을 가능성이 높다고 지적하며, 따라서 사이먼은 "가능할 수 있는 복잡한 형태 중 계층 구조는 진화할 시간이 있는 것"이라고 제출한다. 이러한 사고방식은 비록 "우주의 다른 행성에서 어떤 형태의 생명체가 진화했는지 알 수 없지만, 우리는 '생물이 있는 곳이라면, 그것은 반드시 위계적으로 조직되어야 한다'고 안전하게 가정할 수 있다." (Koestler 1967)는 더욱 강력한 주장을 하게 되었다. 단순하고 고립 가능한 서브시스템의 존재가 성공적인 과학을 위한 전제조건으로 생각되기 때문에 이것은 다행스러운 일이 될 것이다(Fordor 1983). 어쨌든 경험은 확실히 세계의 많은 부분이 위계적 구조를 가지고 있다는 것을 말해주는 것 같다.
인식 그 자체가 계층적 부패의 과정(Leyton 1992), 본질적으로 계층적이지 않은 현상은 인간의 마음에 "이론적으로 이해할 수 있는" 현상도 아닐 수 있다는 것이 제안되었다(McGinn 1994, Simon 1996). 사이먼의 말에 의하면
그때 많은 복잡한 시스템들이 거의 분해될 수 있고 계층 구조로 되어 있다는 사실은 우리가 그러한 시스템과 그들의 부분을 이해하고, 묘사하고, 심지어 "보기"를 할 수 있게 해주는 주요한 촉진 요인이다. 아니면 아마도 그 제안은 반대 방향으로 돌려져야 할 것이다. 이 세상에 위계질서가 되지 않고 복잡하게 얽혀 있는 중요한 시스템이 있다면, 그것들은 우리의 관찰과 이해를 상당 부분 벗어날지도 모른다. 이들의 행동 분석에는 기본적인 부분의 상호작용에 대한 상세한 지식과 계산이 수반될 것이며 이는 우리의 기억력이나 계산 능력을 넘어설 것이다.
적용들
실질적인 기능분해 적용은 베이시안 네트워크, 구조적 방정식 모델링, 선형 시스템 및 데이터베이스 시스템에서 발견된다.
지식 표현
기능적 분해와 관련된 과정은 지식 표현과 기계 학습의 모든 분야에 걸쳐 널리 퍼져 있다. 로직 회로 최소화, 의사결정 트리, 문법적 추론, 계층적 클러스터링, 쿼드트리 분해와 같은 계층적 모델 유도 기법이 모두 함수 분해의 예다. 다른 용도와 함수 분해에 대한 검토는 주판 외 연구진(1997)에서 찾아볼 수 있는데, 정보 이론과 그래프 이론에 근거한 방법도 제시한다.
많은 통계적 추론 방법은 소음 발생 시 함수 분해 프로세스를 구현하는 것으로 생각할 수 있다. 즉, 함수 의존성이 대략적으로만 유지될 것으로 예상되는 경우. 그러한 모델들 중에는 혼합물 모델들과 최근에 인기 있는 방법들이 있다. "폐경 분해" 또는 베이시안 네트워크라고 언급된다.
데이터베이스 이론
데이터베이스 정규화를 참조하십시오.
머신러닝
실제적인 과학적 적용에서, 연구 중인 시스템의 믿을 수 없을 정도로 복잡하기 때문에 완벽한 기능적 분해를 달성하는 것은 거의 불가능하다. 이러한 복잡성은 "소음"이 존재하는 데서 나타나는데, 이것은 우리의 관찰에 대한 모든 원치 않는 그리고 추적할 수 없는 영향에 대한 지정일 뿐이다.
그러나 완벽한 기능적 분해는 대개 불가능하지만, 정신은 시끄러운 시스템을 다루기 위해 갖추어진 수많은 통계적 방법 속에서 살아간다. 자연적 또는 인공적 시스템이 본질적으로 계층적이라면, 시스템 변수에 대한 공동 분포는 이러한 계층적 구조의 증거를 제공해야 한다. 그 시스템을 이해하고자 하는 관찰자의 임무는 이 변수의 관찰로부터 위계 구조를 추론하는 것이다. 이것은 공동분포를 계층적으로 분해하는 개념이며, 공동분포를 발생시킨 본질적인 계층 구조의 일부를 복구하려는 시도다.
예를 들어, 베이시안 네트워크 방법은 인과적 단층선을 따라 공동분포를 분해하여 "자연의 솔기를 절단"하려고 시도한다. 이러한 방법의 근본적인 동기는 다시 대부분의 시스템(자연적 또는 인공적) 내에서 비교적 적은 수의 구성요소/이벤트가 동등한 입장에서 직접적으로 상호 작용한다는 것이다(Simon 1963). 오히려 구성 요소의 작은 하위 집합 사이에서 밀도가 높은 연결부(직접 상호작용)의 포켓을 관찰하지만, 이들 밀도가 높은 하위 집합들 사이의 연결부위는 느슨하다. 따라서 물리적 시스템에서는 변수가 자연스럽게 작은 클러스터로 침전되는 "경계 근접성" 개념이 존재한다. 이러한 클러스터를 식별하고 조인트를 나타내기 위해 사용하는 것은 저장소의 뛰어난 효율성(전체 조인트 분포에 상대적)은 물론 강력한 추론 알고리즘을 위한 기초를 제공한다.
소프트웨어 아키텍처
![]() |
Functional Discovery는 컴퓨터 프로그램에 대한 비이행적, 구조적 설명을 생성하려는 설계 방법이다. OOP(Objects)를 추측하고 그들에 방법을 추가하는 것이 아니라, 각 오브젝트가 프로그램의 일부 서비스를 캡처하고자 하는 것으로 소프트웨어 설계자는 먼저 컴퓨터 프로그램의 주 처리 문제를 달성하는 일련의 기능과 유형을 설정하고, 각 기능을 분해하여 공통의 기능과 유형을 공개하고, 최종적으로 파생된다.es 이 활동의 모듈.
예를 들어, 편집자 Emacs의 설계는 처음에는 기능 측면에서 생각할 수 있다.
f의 가능한 함수 분해:
이는 통역자의 그럴듯한 모듈, 서비스 또는 개체(Expr의 함수 포함)로 이어진다. 함수 분해는 두 함수가 동일한 유형을 생성하는 경우, 공통 함수/교차 컷팅 문제가 둘 다에 존재할 가능성이 있는 경우와 같이, 재사용성에 대한 통찰력을 거의 틀림없이 산출한다. 대조적으로 OOP에서는 그러한 분해를 고려하기 전에 모듈을 추측하는 것이 일반적인 관행이다. 이것은 분명히 나중에 비용이 많이 드는 리팩토링을 초래한다. FD는 그 위험을 어느 정도 완화시킨다. 또한 FD와 다른 설계 방법을 구분하는 것은 엔드투엔드(end-to-end)인 간결한 상위 수준의 건축 담론 매체를 제공하여 업스트림 요건의 결함을 드러내고 더 많은 설계 결정을 사전에 유익하게 노출한다는 점이다. 그리고 마지막으로 FD는 개발을 우선시하는 것으로 알려져 있다. FD가 정확하다면, 프로그램의 가장 재사용 가능하고 비용이 많이 드는 부분은 개발 주기에서 훨씬 더 일찍 식별된다.
신호처리
기능 분해는 LTI 시스템과 같은 많은 신호 처리 시스템의 분석에 사용된다. LTI 시스템에 대한 입력 신호는 f ( )f 함수로 표현할 수 있다 다음 f( t) 을(를) 다른 함수의 선형 조합으로 분해할 수 있으며, 이를 구성요소 신호라고 한다.
여기서 { 1 () , 2 () , 3 ( ),…, ( )}{\\{이 구성 요소 신호다. 할 점은 1, , n \{이(가) 상수라는 것이다. 이 분해는 분석에 도움이 된다. 왜냐하면 이제 시스템의 출력은 입력의 성분으로 표현될 수 있기 때문이다. 이(가) 의 효과를 나타내도록 하면 출력 신호는 { (t ) T 입니다 이 신호는 다음과 같이 표현할 수 있다.
즉, 시스템은 입력 신호의 각 구성 요소에 개별적으로 작용하는 것으로 볼 수 있다. 이러한 유형의 분해에서 일반적으로 사용되는 예는 푸리에 시리즈와 푸리에 변환이다.
시스템 엔지니어링
시스템 엔지니어링의 기능적 분해는 시스템을 기능적 용어로 정의한 다음, 이 상위 수준 시스템 기능으로부터 하위 수준 함수와 시퀀싱 관계를 정의하는 과정을 말한다.[1] 기본 아이디어는 블록 다이어그램의 각 블록이 설명에 "및" 또는 "또는" 없이 설명될 수 있도록 시스템을 분할하는 것이다.
이 운동은 시스템의 각 부분을 순수한 기능을 갖도록 강요한다. 시스템이 순수한 기능으로 설계되었을 때, 그것들은 재사용되거나 교체될 수 있다. 일반적인 부작용은 블록 간의 인터페이스가 단순하고 일반적이 되는 것이다. 인터페이스는 대개 단순해지기 때문에, 관련되고 유사한 기능으로 순수함수를 대체하는 것이 더 쉽다.
예를 들어 스테레오 시스템을 만들 필요가 있다고 하자. 스피커, 앰프, 테이프 데크, 전면 패널로 분해할 수 있다. 나중에, 다른 모델이 오디오 CD를 필요로 할 때, 그것은 아마도 같은 인터페이스를 맞출 수 있을 것이다.
참고 항목
메모들
- ^ 시스템 엔지니어링 기본 원리, 방위 대학 출판부, VA 포트 벨부아르, 2001년 1월, p45
참조
- Fodor, Jerry (1983), The Modularity of Mind, Cambridge, Massachusetts: MIT Press
- Koestler, Arthur (1967), The Ghost in the Machine, New York: Macmillan
- Koestler, Athur (1973), "The tree and the candle", in Gray, William; Rizzo, Nicholas D. (eds.), Unity Through Diversity: A Festschrift for Ludwig von Bertalanffy, New York: Gordon and Breach, pp. 287–314
- Leyton, Michael (1992), Symmetry, Causality, Mind, Cambridge, Massachusetts: MIT Press
- McGinn, Colin (1994), "The Problem of Philosophy", Philosophical Studies, 76 (2–3): 133–156, doi:10.1007/BF00989821
- Resnikoff, Howard L. (1989), The Illusion of Reality, New York: Springer
- Simon, Herbert A. (1963), "Causal Ordering and Identifiability", in Ando, Albert; Fisher, Franklin M.; Simon, Herbert A. (eds.), Essays on the Structure of Social Science Models, Cambridge, Massachusetts: MIT Press, pp. 5–31.
- Simon, Herbert A. (1973), "The organization of complex systems", in Pattee, Howard H. (ed.), Hierarchy Theory: The Challenge of Complex Systems, New York: George Braziller, pp. 3–27.
- Simon, Herbert A. (1996), "The architecture of complexity: Hierarchic systems", The sciences of the artificial, Cambridge, Massachusetts: MIT Press, pp. 183–216.
- Tonge, Fred M. (1969), "Hierarchical aspects of computer languages", in Whyte, Lancelot Law; Wilson, Albert G.; Wilson, Donna (eds.), Hierarchical Structures, New York: American Elsevier, pp. 233–251.
- Zupan, Blaž; Bohanec, Marko; Bratko, Ivan; Demšar, Janez (1997), "Machine learning by function decomposition", Proc. 14th International Conference on Machine Learning, Morgan Kaufmann, pp. 421–429