Rozkład funkcjonalny - Functional decomposition

W matematyce rozkład funkcjonalny jest procesem rozkładania związku funkcjonalnego na jego części składowe w taki sposób, że pierwotna funkcja może zostać zrekonstruowana (tj. Zrekonstruowana) z tych części poprzez kompozycję funkcji .

Ten proces rozkładu może zostać podjęty w celu uzyskania wglądu w tożsamość składników składowych, które mogą odzwierciedlać indywidualne procesy fizyczne będące przedmiotem zainteresowania. Również rozkład funkcjonalny może skutkować skompresowaną reprezentacją funkcji globalnej, zadaniem, które jest wykonalne tylko wtedy, gdy procesy składowe posiadają pewien poziom modułowości (tj. Niezależność lub brak interakcji).

Interakcje między komponentami są krytyczne dla funkcji kolekcji. Wszystkie interakcje mogą nie być obserwowalne , ale prawdopodobnie można je wydedukować poprzez powtarzalną percepcję , syntezę, walidację i weryfikację złożonych zachowań.

Podstawowa definicja matematyczna

Przykład słabo połączonej struktury zależności. Kierunek przepływu przyczynowego jest w górę.

W przypadku funkcji wielowymiarowej dekompozycja funkcjonalna ogólnie odnosi się do procesu identyfikowania zestawu funkcji, takich jak

gdzie jest jakaś inna funkcja. Dlatego powiedzielibyśmy, że funkcja jest rozłożona na funkcje . Ten proces jest z natury hierarchiczny w tym sensie, że możemy (i często robimy) starać się o dalszy rozkład funkcji na zbiór funkcji składowych, tak że

gdzie jest jakaś inna funkcja. Tego rodzaju rozkłady są interesujące i ważne z wielu różnych powodów. Ogólnie rzecz biorąc, rozkład funkcjonalny jest opłacalny, gdy istnieje pewna „rzadkość” w strukturze zależności; to znaczy, gdy okaże się, że funkcje składowe zależą w przybliżeniu od rozłącznych zbiorów zmiennych. Tak więc, na przykład, jeśli można uzyskać rozkład w hierarchiczną kompozycji funkcji tak, że , , jak pokazano na rysunku z prawej strony, to prawdopodobnie można uznać za bardzo cenne rozkładu.

Przykład: arytmetyka

Podstawowym przykładem dekompozycji funkcjonalnej jest wyrażenie czterech binarnych operacji arytmetycznych dodawania, odejmowania, mnożenia i dzielenia w kategoriach dwóch binarnych operacji dodawania i mnożenia oraz dwóch jednoargumentowych operacji inwersji addytywnej i inwersji multiplikatywnej Odejmowanie można następnie zrealizować jako skład dodawania i inwersji addytywnej oraz dzielenia może być realizowany jako kompozycja mnożenia i odwrotności multiplikatywnej, Upraszcza to analizę odejmowania i dzielenia, a także ułatwia aksjomatyzację tych operacji w pojęciu pola , ponieważ istnieją tylko dwie operacje binarne i dwie jednoargumentowe zamiast czterech operacji binarnych.

Rozszerzając te prymitywne operacje, istnieje bogata literatura na temat rozkładu wielomianów .

Przykład: rozkład funkcji ciągłych

Motywacja do rozkładu

Co do tego, dlaczego rozkład jest cenny, przyczyna jest dwojaka. Po pierwsze, rozkład funkcji na nieoddziałujące ze sobą składniki generalnie pozwala na bardziej ekonomiczne reprezentacje funkcji. Na przykład w zbiorze czwartorzędowych (tj. 4-elementowych) zmiennych reprezentujących pełną funkcję wymaga przechowywania wartości, wartości funkcji dla każdego elementu w iloczynu kartezjańskim , tj. Każdej z 1024 możliwych kombinacji dla . Jeśli jednak rozkład na podane powyżej jest możliwy, to wymaga zapamiętania 4 wartości, wymaga zapamiętania wartości i ponownie wymaga zapamiętania tylko 4 wartości. Tak więc z powodu dekompozycji potrzebujemy przechowywać tylko wartości, a nie 1024 wartości, co jest ogromną oszczędnością.

Przyczynowe wpływy na ruch drogowy West Side Highway. Pogoda i ruch drogowy GW Bridge ekranują inne czynniki

Intuicyjnie, to zmniejszenie rozmiaru reprezentacji jest osiągane po prostu dlatego, że każda zmienna zależy tylko od podzbioru innych zmiennych. Zatem zmienna zależy tylko bezpośrednio od zmiennej , a nie od całego zestawu zmiennych. Powiedzielibyśmy, że zmienna odcina zmienną od reszty świata. Otaczają nas praktyczne przykłady tego zjawiska, omówione w „Rozważaniach filozoficznych” poniżej, ale rozważmy tylko konkretny przypadek „ruchu na północ na autostradzie West Side ”. Załóżmy, że ta zmienna ( ) przyjmuje trzy możliwe wartości {"poruszanie się wolno", "poruszanie się śmiertelnie wolno", "w ogóle się nie porusza"}. Powiedzmy, że zmienna zależy od dwóch innych zmiennych, „pogoda” z wartościami {„słońce”, „deszcz”, „śnieg”} i „ Ruch na mostku GW ” o wartościach {„10 mil na godzinę”, „5 mil na godzinę”, „1 mil na godzinę” }. Chodzi o to, że chociaż z pewnością istnieje wiele zmiennych wtórnych, które wpływają na zmienną pogodową (np. System niskiego ciśnienia nad Kanadą, trzepotanie motyli w Japonii itp.) I zmienną ruchu na moście (np. Wypadek na I-95 , prezydencki motorcade itp.), wszystkie te inne drugorzędne zmienne nie są bezpośrednio związane z ruchem na West Side Highway. Wszystko, czego potrzeba (hipotetycznie) w celu przewidywania ruchu West Side Highway jest pogoda, a ruch GW Bridge, ponieważ te dwie zmienne screen off ruchu West Side Highway od wszystkich innych potencjalnych wpływów. Oznacza to, że wszystkie inne wpływy działają przez nie.

Poza względami czysto matematycznymi, być może największą wartością rozkładu funkcjonalnego jest wgląd w strukturę świata. Kiedy można osiągnąć rozkład funkcjonalny, dostarcza on informacji ontologicznych o tym, jakie struktury faktycznie istnieją na świecie oraz jak można je przewidzieć i manipulować nimi. Na przykład, na powyższej ilustracji, jeśli dowiemy się, że zależy bezpośrednio tylko od , oznacza to, że dla celów przewidywania wystarczy tylko wiedzieć . Co więcej, interwencje mające na celu wywieranie wpływu mogą być podejmowane bezpośrednio i nic więcej nie można osiągnąć poprzez interwencję na zmiennych , ponieważ w każdym przypadku działają one tylko na zasadzie wpływu .

Rozważania filozoficzne

Filozoficzne poprzednicy i konsekwencje rozkładu funkcjonalnego są dość szerokie, ponieważ rozkład funkcjonalny w takiej czy innej postaci leży u podstaw całej współczesnej nauki. Tutaj omówimy tylko kilka z tych rozważań filozoficznych.

Tradycja redukcjonistyczna

Jedną z głównych różnic, jakie często dokonuje się między filozofią Wschodu a filozofią Zachodu, jest to, że filozofowie Wschodu mieli tendencję do opowiadania się za ideami sprzyjającymi holizmowi, podczas gdy myśliciele zachodni mieli tendencję do opowiadania się za ideami sprzyjającymi redukcjonizmowi . To rozróżnienie między Wschodem a Zachodem jest podobne do innych rozróżnień filozoficznych (takich jak realizm kontra antyrealizm ). Kilka przykładów wschodniego ducha holistycznego:

  • „Otwórz usta, zintensyfikuj swoje działania, zacznij rozróżniać rzeczy, a będziesz trudzić się wiecznie bez nadziei”. - The Tao Te Ching of Lao Tzu (Brian Browne Walker, tłumacz)
  • „Ciężko jest [ludziom] zrozumieć znaczenie faktu, że wszystko, łącznie z nami, zależy od wszystkiego innego i nie ma trwałego istnienia”. - Majjhima Nikaya (Anne Bankroft, tłumacz)
  • „Nazwa jest narzucana temu, co jest uważane za rzecz lub stan, a to oddziela je od innych rzeczy i innych stanów. Ale kiedy podążasz za tym, co kryje się za nazwą, znajdujesz coraz większą subtelność, która nie ma podziałów. . ” - Visuddhi Magga (Anne Bankroft, tłumacz)

Tradycja zachodnia, od swoich początków wśród filozofów greckich , preferowała stanowisko, w którym rysowanie prawidłowych rozróżnień, podziałów i kontrastów było uważane za szczyt wglądu. W arystotelesowskiej / Porphyrian światopoglądu, aby móc odróżnić (poprzez ścisłą dowodu), które cechy rzeczy stanowią jego istota vs. nieruchomość vs. wypadek vs. definicję , a dzięki tym formalnym opisem segregować tego podmiotu w jego właściwym miejscu w taksonomii przyrody - miało to osiągnąć sam szczyt mądrości.

Charakterystyka hierarchii i modułowości

W systemach naturalnych lub sztucznych, które wymagają elementów, które mają być w jakiś sposób zintegrowane, ale w których liczba elementów przekracza to, co można rozsądnie w pełni ze sobą połączyć (ze względu na kwadratowy wzrost liczby połączeń (= n na dwa lub = n * (n - 1) / 2)), często stwierdza się, że w rozwiązaniu należy zastosować pewien stopień hierarchii. Ogólne zalety rzadkich systemów hierarchicznych nad systemami gęsto powiązanymi - oraz ilościowe oszacowania tej przewagi - przedstawia Resnikoff (1989) . Mówiąc prozaicznie, hierarchia to „zbiór elementów, które zgodnie z prawem łączą się w złożone całości, których właściwości zależą od właściwości ich części składowych”, a nowość jest „zasadniczo kombinatoryczna, iteracyjna i przejrzysta” ( McGinn 1994 ).

Ważnym pojęciem, które zawsze pojawia się w związku z hierarchiami, jest modułowość, która jest efektywnie implikowana przez rzadkość połączeń w topologiach hierarchicznych. W systemach fizycznych moduł jest generalnie zbiorem oddziałujących ze sobą komponentów, które odnoszą się do świata zewnętrznego poprzez bardzo ograniczony interfejs, ukrywając w ten sposób większość aspektów swojej wewnętrznej struktury. W rezultacie modyfikacje, które są dokonywane we wnętrzu modułu (na przykład w celu poprawy wydajności), niekoniecznie powodują efekt tętnienia w pozostałej części systemu ( Fodor 1983 ). Ta cecha sprawia, że ​​efektywne wykorzystanie modułowości jest centralnym elementem całej dobrej inżynierii oprogramowania i sprzętu.

Nieuchronność hierarchii i modułowości

Istnieje wiele przekonujących argumentów dotyczących rozpowszechnienia i konieczności hierarchii / modułowości w przyrodzie ( Koestler 1973 ). Simon (1996) zwraca uwagę, że wśród rozwijających się systemów tylko te, które są w stanie uzyskać, a następnie ponownie wykorzystać stabilne podzespoły (moduły), będą w stanie przeszukiwać krajobraz sprawności w dość szybkim tempie; w związku z tym Simon twierdzi, że „wśród możliwych złożonych form hierarchie są tymi, które mają czas na ewolucję”. Ten sposób myślenia doprowadził do jeszcze silniejszego twierdzenia, że ​​chociaż „nie wiemy, jakie formy życia wyewoluowały na innych planetach we wszechświecie ... możemy bezpiecznie założyć, że„ gdziekolwiek istnieje życie, musi być zorganizowane hierarchicznie ” „” ( Koestler 1967 ). Byłby to szczęśliwy stan rzeczy, ponieważ uważa się, że istnienie prostych i dających się wyodrębnić podsystemów jest warunkiem wstępnym sukcesu nauki ( Fodor 1983 ). W każdym razie doświadczenie z pewnością wydaje się wskazywać, że znaczna część świata ma strukturę hierarchiczną.

Zaproponowano, że samo postrzeganie jest procesem hierarchicznej dekompozycji ( Leyton 1992 ), a zjawiska, które nie są z natury hierarchiczne, mogą nawet nie być „teoretycznie zrozumiałe” dla ludzkiego umysłu ( McGinn 1994 , Simon 1996 ). Słowami Simona

Fakt, że wiele złożonych systemów ma prawie rozkładalną, hierarchiczną strukturę, jest głównym czynnikiem ułatwiającym zrozumienie, opisanie, a nawet „zobaczenie” takich systemów i ich części. A może propozycję należy postawić na odwrót. Jeśli na świecie istnieją ważne systemy, które są złożone, ale nie są hierarchiczne, mogą w znacznym stopniu wymknąć się naszej obserwacji i zrozumieniu. Analiza ich zachowania wymagałaby tak szczegółowej wiedzy i obliczeń dotyczących interakcji ich elementarnych części, że wykraczałoby to poza nasze możliwości pamięci lub obliczeń.

Aplikacje

Praktyczne zastosowania dekompozycji funkcjonalnej można znaleźć w sieciach bayesowskich , modelowaniu równań strukturalnych , systemach liniowych i systemach baz danych .

Reprezentacja wiedzy

Procesy związane z dekompozycją funkcjonalną są powszechne we wszystkich dziedzinach reprezentacji wiedzy i uczenia maszynowego . Hierarchiczne techniki indukcji modeli, takie jak minimalizacja obwodów logicznych , drzewa decyzyjne , wnioskowanie gramatyczne , hierarchiczne grupowanie i dekompozycja na cztery drzewa to przykłady dekompozycji funkcji. Przegląd innych zastosowań i rozkładu funkcji można znaleźć w Zupan i in. (1997) , który również przedstawia metody oparte na teorii informacji i teorii grafów .

Można uważać, że wiele metod wnioskowania statystycznego realizuje proces dekompozycji funkcji w obecności szumu; to znaczy tam, gdzie zależności funkcjonalne mają utrzymywać się tylko w przybliżeniu . Wśród takich modeli są modele mieszane oraz popularne ostatnio metody określane jako „dekompozycje przyczynowe” lub sieci bayesowskie .

Teoria baz danych

Zobacz normalizację bazy danych .

Nauczanie maszynowe

W praktycznych zastosowaniach naukowych prawie nigdy nie jest możliwe osiągnięcie doskonałego rozkładu funkcjonalnego ze względu na niesamowitą złożoność badanych systemów. Ta złożoność przejawia się w obecności „szumu”, który jest tylko określeniem wszystkich niepożądanych i niemożliwych do wykrycia wpływów na nasze obserwacje.

Jednakże, podczas gdy doskonały rozkład funkcjonalny jest zwykle niemożliwy, duch żyje w wielu metodach statystycznych, które są przystosowane do radzenia sobie z hałaśliwymi systemami. Gdy system naturalny lub sztuczny jest z natury hierarchiczny, wspólny rozkład zmiennych systemowych powinien stanowić dowód istnienia tej hierarchicznej struktury. Zadaniem obserwatora, który stara się zrozumieć system, jest następnie wywnioskować strukturę hierarchiczną na podstawie obserwacji tych zmiennych. To jest idea hierarchicznego rozkładu wspólnej dystrybucji, próba odzyskania czegoś z wewnętrznej struktury hierarchicznej, która wygenerowała tę wspólną dystrybucję.

Na przykład metody sieci bayesowskich próbują rozłożyć wspólny rozkład wzdłuż jego przyczynowych linii uskoków, w ten sposób „przecinając naturę w szwach”. Zasadniczą motywacją stojącą za tymi metodami jest ponownie fakt, że w większości systemów (naturalnych lub sztucznych) stosunkowo niewiele elementów / zdarzeń oddziałuje ze sobą bezpośrednio na równych zasadach ( Simon 1963 ). Raczej obserwuje się kieszenie gęstych połączeń (bezpośrednich interakcji) między małymi podzbiorami komponentów, ale tylko luźne połączenia między tymi gęsto połączonymi podzbiorami. Istnieje zatem pojęcie „bliskości przyczynowej” w układach fizycznych, w których zmienne w naturalny sposób wytrącają się w małe skupiska. Zidentyfikowanie tych klastrów i wykorzystanie ich do reprezentacji połączenia zapewnia podstawę dla dużej wydajności przechowywania (w stosunku do pełnego rozkładu połączeń), a także dla algorytmów silnego wnioskowania.

Architektura oprogramowania

Dekompozycja funkcjonalna to metoda projektowania mająca na celu stworzenie niewdrożeniowego, architektonicznego opisu programu komputerowego. Zamiast zakładać obiekty i dodawać do nich metody ( OOP ), gdy każdy obiekt ma zamiar uchwycić jakąś usługę programu, architekt oprogramowania najpierw ustanawia serię funkcji i typów, które rozwiązują główny problem przetwarzania programu komputerowego, rozkładają każdy na ujawniają wspólne funkcje i typy i ostatecznie wyprowadzają moduły z tej aktywności.

Na przykład projekt edytora Emacsa można początkowo przemyśleć w kategoriach funkcji:


I ewentualnego rozkładu funkcja z f :

Prowadzi to do wiarygodnego modułu, usługi lub obiektu interpretera (zawierającego funkcję fromExpr ). Rozkład funkcji prawdopodobnie daje wgląd w możliwość ponownego wykorzystania, na przykład jeśli w trakcie analizy dwie funkcje dają ten sam typ, jest prawdopodobne, że w obu występuje wspólna funkcja / problem przekrojowy . Dla kontrastu, w OOP powszechną praktyką jest przypuszczanie modułów przed rozważeniem takiej dekompozycji. Prawdopodobnie prowadzi to do kosztownej późniejszej refaktoryzacji . FD do pewnego stopnia ogranicza to ryzyko. Co więcej, zapewne tym, co odróżnia FD od innych metod projektowania - jest to, że zapewnia zwięzły, wysokopoziomowy nośnik dyskursu architektonicznego, który jest kompleksowy, ujawniając wady wymagań wstępnych i korzystnie odsłaniając z wyprzedzeniem więcej decyzji projektowych. I wreszcie, FD jest znane z tego, że priorytetowo traktuje rozwój. Prawdopodobnie, jeśli FD jest poprawne, części programu, które można ponownie wykorzystać i które są określone kosztami, są identyfikowane znacznie wcześniej w cyklu rozwoju.

Przetwarzanie sygnałów

Dekompozycja funkcjonalna jest wykorzystywana w analizie wielu systemów przetwarzania sygnałów , takich jak systemy LTI . Sygnał wejściowy do systemu LTI można wyrazić jako funkcji . Następnie można je rozłożyć na liniową kombinację innych funkcji, zwanych sygnałami składowymi:

Tutaj są sygnały składowe. Zauważ, że są to stałe. Ten rozkład jest pomocny w analizie, ponieważ teraz wynik systemu można wyrazić w postaci składników wkładu. Jeśli pozwolimy przedstawić efekt działania systemu, to sygnał wyjściowy jest , który można wyrazić jako:

Innymi słowy, system można postrzegać jako działający oddzielnie na każdym ze składników sygnału wejściowego. Powszechnie używanymi przykładami tego typu rozkładu są szeregi Fouriera i transformata Fouriera .

Inżynieria systemowa

Dekompozycja funkcjonalna w inżynierii systemów odnosi się do procesu definiowania systemu w kategoriach funkcjonalnych, a następnie definiowania funkcji niższego poziomu i sekwencjonowania relacji z tych funkcji systemów wyższego poziomu. Podstawową ideą jest próba podzielenia systemu w taki sposób, aby każdy blok schematu blokowego można było opisać bez „i” lub „lub” w opisie.

To ćwiczenie zmusza każdą część systemu do pełnienia czystej funkcji . Gdy system jest zaprojektowany jako czyste funkcje, można je ponownie wykorzystać lub wymienić. Typowym efektem ubocznym jest to, że interfejsy między blokami stają się proste i ogólne. Ponieważ interfejsy zwykle stają się proste, łatwiej jest zastąpić czystą funkcję pokrewną, podobną funkcją.

Na przykład, powiedzmy, że trzeba zrobić system stereo . Można to funkcjonalnie rozłożyć na głośniki , wzmacniacz , magnetofon i przedni panel. Później, gdy inny model potrzebuje płyty audio CD , prawdopodobnie będzie pasował do tych samych interfejsów.

Zobacz też

Uwagi

Bibliografia