Jak / dlaczego systemy liniowe są tak ważne dla informatyki?


9

Zainteresowałem się optymalizacją matematyczną całkiem niedawno i bardzo mi się podoba. Wydaje się, że wiele problemów związanych z optymalizacją można łatwo wyrazić i rozwiązać jako programy liniowe (np. Przepływy sieciowe, pokrycie krawędzi / wierzchołków, podróżujący sprzedawca itp.) Wiem, że niektóre z nich są trudne do NP, ale chodzi o to, że można je „sformułowane jako program liniowy”, jeśli nie zostaną optymalnie rozwiązane.

To sprawiło, że pomyślałem: zawsze uczono nas układów równań liniowych, algebry liniowej przez całą szkołę. I widząc moc LP do wyrażania różnych algorytmów, jest to trochę fascynujące.

Pytanie: Mimo że wszędzie wokół nas panują systemy nieliniowe, w jaki sposób / dlaczego systemy liniowe są tak ważne dla informatyki? Rozumiem, że pomagają uprościć zrozumienie i są w większości przypadków wykonalne obliczeniowo, ale czy to prawda? Jak dobre jest to „przybliżenie”? Czy nadmiernie upraszczamy i czy wyniki są nadal znaczące w praktyce? A może to tylko „natura”, tzn. Problemy, które są najbardziej fascynujące, są po prostu liniowe?

Czy bezpiecznie byłoby zabezpieczyć, że „algebra liniowa / równania / programowanie” są kamieniami węgielnymi CS? Jeśli nie, to jaka byłaby dobra sprzeczność? Jak często mamy do czynienia z rzeczami nieliniowymi (niekoniecznie mam na myśli teoretycznie, ale także z punktu widzenia „możliwości rozwiązania”, to znaczy, że samo stwierdzenie, że NP nie je rozwiąże, powinno być dobre przybliżenie problemu i czy wyląduje czy jesteś liniowy?)


4
Nie głosowałem za tym, ale nie rozumiem, dlaczego podatność na wycinanie nie jest dla ciebie satysfakcjonującą odpowiedzią. Istnieje kilka interesujących precyzyjnych zmysłów, w których problemy niewypukłe są trudne do rozwiązania, np. arxiv.org/abs/1210.0420 .
Colin McQuillan

2
Downvoters może mieć wiele powodów, dla których decydują się nie komentować.
Tyson Williams

1
jednym ze sposobów na to jest to, że każdy problem NP można sprowadzić do programowania liczb całkowitych w czasie wielomianowym, a następnie problem programowania liczb całkowitych można złagodzić. ale stosujemy techniki spektralne i relaksacje SDP, które są kwadratowymi problemami optymalizacji, które można skutecznie rozwiązać.
Sasho Nikolov

1
Co oznaczają „systemy liniowe” w tym pytaniu?
Tsuyoshi Ito,

1
systemy liniowe znajdują się w całym okresie nauki ... jest to uproszczenie, które uzyskuje zaskakująco wysoki przebieg ... wydaje się to niewielkim następstwem nieuzasadnionej skuteczności matematyki w naukach przyrodniczych .. najwyraźniej CS pasuje do tej kategorii "nauk przyrodniczych „… jest ściśle związany z fizyką, prawdopodobnie coraz bardziej przez cały czas [np. kurczące się tranzystory, rozpraszanie ciepła, QM na niskim poziomie, badanie zużycia energii, entropia itp.]…
vzn

Odpowiedzi:


12

Przesłanka tego pytania jest nieco błędna: wielu twierdziło, że kwadraty to prawdziwa „granica” dla podatności i modelowania, ponieważ problemy z najmniejszymi kwadratami są prawie tak „łatwe” jak problemy liniowe. Są inni, którzy twierdzą, że wypukłość (aw niektórych przypadkach nawet submodialność) stanowi granicę podatności na wycięcie.

Być może bardziej istotne jest „dlaczego systemy liniowe dopuszczają możliwe do rozwiązania rozwiązania?” co nie jest dokładnie tym, o co prosiłeś, ale jest powiązane. Jedną perspektywą na to jest kompozycyjność. Ponieważ jest to właściwość definiująca układ liniowyf(x+y)=f(x)+f(y), to nadaje systemowi rodzaj „bez pamięci”. Aby znaleźć rozwiązanie problemu, mogę skupić się na poszczególnych elementach i łączyć je bez kary. Rzeczywiście, założenie większości algorytmów przepływu jest właśnie takie.

Ta bez pamięci nadaje wydajności: mogę rozbijać rzeczy na kawałki lub pracować iteracyjnie i nie tracę dzięki temu. Nadal mogę podejmować złe decyzje (patrz chciwe algorytmy), ale sam proces dzielenia rzeczy mnie nie boli.

To jeden z powodów, dla których liniowość ma taką moc. Prawdopodobnie jest wiele innych.


Podoba mi się ta odpowiedź, ale tym, którzy twierdzą, że programowanie liniowe nie jest granicą, odpowiadam: „to P-zupełne!” ;).
Artem Kaznatcheev

Tak, ale czy tak się dzieje, że (na przykład) SDP nie są?
Suresh Venkat

Nie musimy mieć jednej granicy, a niektóre granice P (powiedzmy programowanie kwadratowe z dodatnią półokreśloną macierzą dla kwadratów) wydają się bardziej ogólne. Nie chciałem się nie zgadzać, po prostu wskazałem, że granica jest bardziej kwestią gustu przy wyborze między problemami P-zupełnymi.
Artem Kaznatcheev

5

Mimo że wszędzie wokół nas panują systemy nieliniowe, dlaczego / dlaczego systemy liniowe są tak ważne dla informatyki?”

Oto częściowa odpowiedź w mojej opinii: myślę, że dzieje się tak, ponieważ przyroda obfituje w obiekty / zjawiska - reprezentowane przez funkcje, które choć nieliniowe na operandach, są w rzeczywistości członami przestrzeni liniowych. Fala funkcjonuje w przestrzeni Hilberta, komponenty w widmie czterokierunkowym, pierścienie wielomianowe, procesy stochastyczne - wszystkie zachowują się w ten sposób. Nawet bardzo ogólne definicje zakrzywionych przestrzeni są zbudowane z komponowania małych wykresów płaskich przestrzeni (rozmaitości, powierzchnie Riemanna, ..). Co więcej, natura jest pełna symetrii, a studiowanie symetrii niezmiennie prowadzi do badania operatorów liniowych (teoria reprezentacji, moim zdaniem, wkrada się w wiele dziedzin informatyki tak wszechobecnie).

Są to dodatkowe przypadki, w których sami operatorzy mają charakter liniowy.

Duża część problemów, dla których potrzebujemy programów komputerowych, powstaje albo bezpośrednio, albo w sposób abstrakcyjny, od naturalnie występujących zjawisk. Być może w końcu studiowanie / rozwiązywanie układów liniowych nie powinno być wielką niespodzianką?


Ach tak, cudowne radości z podnoszenia map.
Suresh Venkat
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.