Come / perché i sistemi lineari sono così cruciali per l'informatica?


9

Ho iniziato a impegnarmi di recente con l'ottimizzazione matematica e lo adoro. Sembra che molti problemi di ottimizzazione possano essere facilmente espressi e risolti come programmi lineari (ad es. Flussi di rete, copertura di bordi / vertici, commesso viaggiatore ecc.) So che alcuni di essi sono NP-difficili, ma il punto è che possono essere 'incorniciato come un programma lineare' se non risolto in modo ottimale.

Questo mi ha fatto pensare: ci sono sempre stati insegnati sistemi di equazioni lineari, algebra lineare per tutta la scuola / college. E vedere la potenza degli LP per esprimere vari algoritmi è piuttosto affascinante.

Domanda: Anche se abbiamo sistemi non lineari prevalenti tutt'intorno a noi come / perché i sistemi lineari sono così cruciali per l'informatica? Capisco che aiutano a semplificare la comprensione e sono trattabili dal punto di vista computazionale la maggior parte delle volte, ma è così? Quanto è buona questa "approssimazione"? Stiamo semplificando eccessivamente e i risultati sono ancora significativi nella pratica? O è solo "natura", cioè i problemi più affascinanti sono davvero semplicemente lineari?

Sarebbe sicuro che l'algebra lineare / equazioni / programmazione siano le pietre angolari di CS? In caso contrario, quale sarebbe una buona contraddizione? Quante volte ci occupiamo di cose non lineari (non intendo necessariamente teoricamente, ma anche dal punto di vista della "solvibilità", vale a dire semplicemente dire che NP non lo taglia; dovrebbe esserci una buona approssimazione al problema e dovrebbe atterrare essere lineare?)


4
Non ho votato a fondo, ma non vedo perché la trattabilità non sia una risposta soddisfacente per te. Ci sono alcuni sensi precisi interessanti in cui i problemi non convessi sono intrattabili, ad es. arxiv.org/abs/1210.0420 .
Colin McQuillan,

2
I downvoter possono avere molte ragioni per cui scelgono di non commentare.
Tyson Williams,

1
un modo per osservarlo è che qualsiasi problema NP può essere ridotto alla programmazione a numeri interi in tempo polinomiale, e quindi il problema di programmazione a numeri interi può essere rilassato. ma usiamo tecniche spettrali e rilassamenti dell'SDP, che sono problemi di ottimizzazione quadratica che sono risolvibili in modo efficiente.
Sasho Nikolov,

1
Cosa significano "sistemi lineari" in questa domanda?
Tsuyoshi Ito,

1
i sistemi lineari si trovano in tutto il periodo scientifico .... è una semplificazione che ottiene un chilometraggio sorprendentemente alto .... sembra un piccolo corollario all'irragionevole efficacia della matematica nelle scienze naturali .. apparentemente CS si adatta a questa categoria di "scienze naturali ".... è strettamente legato alla fisica, probabilmente sempre più
spesso

Risposte:


12

La premessa della domanda è un po 'imperfetta: ci sono molti che sostengono che la quadratica è il vero "confine" per la tracciabilità e la modellizzazione, poiché i problemi dei minimi quadrati sono quasi "facili" come i problemi lineari. Ci sono altri che sostengono che la convessità (o anche la sottomodularità in alcuni casi) è il confine per la trattabilità.

Forse ciò che è più rilevante è "perché i sistemi lineari ammettono soluzioni trattabili?" che non è esattamente quello che hai chiesto, ma è correlato. Una prospettiva su questo è la componibilità. Poiché la proprietà che definisce un sistema lineare è che , questo conferisce una sorta di "assenza di memoria" al sistema. Per trovare una soluzione a un problema, posso concentrarmi su singoli pezzi e combinarli senza penalità. In effetti, la premessa della maggior parte degli algoritmi per il flusso è proprio questo.f(X+y)=f(X)+f(y)

Questa mancanza di memoria impartisce efficienza: posso spezzare le cose o lavorare in modo iterativo e non perdo in virtù di ciò. Posso ancora prendere decisioni sbagliate (vedi algoritmi avidi) ma l'atto di dividere le cose in sé non mi fa male.

Questo è uno dei motivi per cui la linearità ha un tale potere. Ce ne sono probabilmente molti altri.


Mi piace questa risposta ma a quelli che sostengono che la programmazione lineare non è il limite, rispondo con: "è P-completo!" ;).
Artem Kaznatcheev

Sì, ma gli SDP (ad esempio) non lo sono?
Suresh Venkat,

Non dobbiamo avere un solo limite, e alcuni limiti di P (diciamo programmazione quadratica con matrice semi-definita positiva per i termini al quadrato) sembrano più generali. Non volevo essere in disaccordo, stavo solo sottolineando che il confine è più una questione di gusti quando si selezionano i problemi P-complete.
Artem Kaznatcheev

5

" Anche se abbiamo sistemi non lineari prevalenti tutt'intorno a noi come / perché i sistemi lineari sono così cruciali per l'informatica?"

Ecco una risposta parziale nella mia mente: penso che sia perché la natura è ricca di oggetti / fenomeni - rappresentabili da funzioni che seppur non lineari sui loro operandi, sono in realtà membri di spazi lineari. L'onda funziona in uno spazio di Hilbert, i componenti in uno spettro di Fourier, anelli polinomiali, processi stocastici - tutti si comportano in quel modo. Anche le definizioni molto generali di spazi curvi sono costruite dalla composizione di piccoli grafici di spazi piatti (varietà, superfici di Riemann, ..). Inoltre, la natura è piena di simmetrie e lo studio delle simmetrie entra inevitabilmente nello studio di operatori lineari (la teoria della rappresentazione, nella mia mente, si insinua in molte aree dell'informatica sempre così onnipresentemente).

Questi sono in aggiunta ai casi in cui gli operatori stessi sono di natura lineare.

Una gran parte dei problemi per i quali abbiamo bisogno di programmi per computer, sorgono direttamente come, o sono astratti, da fenomeni naturali. Forse studiare / risolvere sistemi lineari non dovrebbe essere una grande sorpresa, dopo tutto?


Ah sì, le meravigliose gioie del sollevamento delle mappe.
Suresh Venkat,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.