Bagaimana / Mengapa sistem linier sangat penting bagi ilmu komputer?

9

Saya mulai terlibat dengan Optimalisasi Matematika baru-baru ini dan saya menyukainya. Tampaknya banyak masalah pengoptimalan dapat dengan mudah diekspresikan dan dipecahkan sebagai program linier (misalnya aliran jaringan, tepi / simpul penutup, penjual keliling dll.) Saya tahu bahwa beberapa di antaranya NP-hard, tetapi intinya adalah bahwa mereka dapat 'dibingkai sebagai program linier' jika tidak diselesaikan secara optimal.

Itu membuat saya berpikir: Kami selalu diajarkan sistem persamaan linear, aljabar linear di seluruh sekolah / perguruan tinggi. Dan melihat kekuatan piranti lunak untuk mengekspresikan berbagai algoritma itu agak menarik.

Pertanyaan: Meskipun kita memiliki sistem non-linear yang lazim di sekitar kita bagaimana / mengapa sistem linear sangat penting untuk ilmu komputer? Saya mengerti bahwa mereka membantu menyederhanakan pemahaman dan sebagian besar waktu dapat ditata secara komputasional tetapi apakah itu? Seberapa baik 'perkiraan' ini? Apakah kita terlalu menyederhanakan dan apakah hasilnya masih berarti dalam praktik? Atau apakah itu hanya 'sifat' yaitu masalah yang paling menarik memang linier?

Apakah aman untuk aman bahwa 'aljabar linier / persamaan / pemrograman' adalah batu penjuru dari CS? Jika tidak, apa yang akan menjadi kontradiksi yang bagus? Seberapa sering kita berurusan dengan hal-hal non-linier (saya tidak harus berarti secara teoritis tetapi juga dari sudut pandang 'kemampuan memecahkan' yaitu hanya mengatakan itu NP tidak memotongnya, harus ada perkiraan yang baik untuk masalah dan apakah itu akan mendarat menjadi linier?)

PhD
sumber
4
Saya tidak downvote, tapi saya tidak melihat mengapa traktabilitas bukan jawaban yang memuaskan untuk Anda. Ada beberapa indera tepat yang menarik di mana masalah non-cembung sulit diatasi misalnya. arxiv.org/abs/1210.0420 .
Colin McQuillan
2
Downvoters mungkin memiliki banyak alasan mengapa mereka memilih untuk tidak berkomentar.
Tyson Williams
1
salah satu cara untuk melihatnya adalah bahwa masalah NP dapat direduksi menjadi pemrograman integer dalam waktu polinomial, dan kemudian masalah pemrograman integer dapat dilonggarkan. tapi kami menggunakan teknik spektral dan relaksasi SDP, yang merupakan masalah optimisasi kuadrat yang dapat dipecahkan secara efisien.
Sasho Nikolov
1
Apa arti "sistem linear" dalam pertanyaan ini?
Tsuyoshi Ito
1
sistem linear ditemukan di seluruh periode sains .... ini adalah penyederhanaan yang mendapat jarak tempuh sangat tinggi .... tampaknya akibat wajar kecil keefektifan matematika yang tidak masuk akal dalam ilmu alam .. rupanya CS cocok dengan kategori "ilmu alam" ini ".... itu bersekutu erat dengan fisika, bisa dibilang semakin meningkat sepanjang waktu [mis. transistor yang menyusut, pembuangan panas, QM tingkat rendah, studi tentang konsumsi energi, entropi, dll] ....
vzn

Jawaban:

12

Premis dari pertanyaan ini sedikit cacat: ada banyak yang akan berpendapat bahwa kuadrat adalah "batas" nyata untuk trabilitas dan pemodelan, karena masalah kuadrat-kuadrat hampir semudah masalah linier. Ada orang lain yang berpendapat bahwa konveksitas (atau bahkan submodularitas dalam kasus-kasus tertentu) adalah batas kemampuan penelusuran.

f(x+y)=f(x)+f(y)

Memori ini memberikan efisiensi: Saya dapat memecah-mecah barang, atau bekerja secara iteratif, dan saya tidak kehilangan karena melakukannya. Saya masih bisa membuat keputusan yang buruk (cf algoritma serakah) tetapi tindakan memecah hal-hal itu sendiri tidak menyakiti saya.

Ini adalah salah satu alasan mengapa linearitas memiliki kekuatan seperti itu. Mungkin ada banyak lainnya.

Suresh Venkat
sumber
Saya suka jawaban ini tetapi bagi mereka yang berpendapat bahwa pemrograman linier bukan batas, saya menjawab dengan: "ini P-selesai!" ;).
Artem Kaznatcheev
Ya tetapi apakah demikian halnya (misalnya) SDP bukan?
Suresh Venkat
Kita tidak harus memiliki batas tunggal, dan beberapa batas P (katakanlah pemrograman kuadratik dengan matriks semi-pasti positif untuk istilah kuadrat) memang tampak lebih umum. Saya tidak bermaksud untuk tidak setuju, hanya menunjukkan bahwa batas lebih merupakan masalah selera ketika memilih antara masalah P-lengkap.
Artem Kaznatcheev
5

" Meskipun kita memiliki sistem non-linear yang lazim di sekitar kita bagaimana / mengapa sistem linear sangat penting untuk ilmu komputer?"

Berikut adalah jawaban parsial dalam pikiran saya: Saya pikir itu karena alam dipenuhi dengan objek / fenomena - yang diwakili oleh fungsi-fungsi yang walaupun tidak linier pada operan mereka, sebenarnya adalah anggota ruang linear. Gelombang berfungsi dalam ruang Hilbert, komponen dalam spektrum empat tingkat, cincin polinomial, proses stokastik - mereka semua berperilaku dengan cara itu. Bahkan definisi yang sangat umum dari ruang lengkung dibangun dari menyusun grafik kecil dari ruang datar (manifold, permukaan Riemann, ..). Selain itu, alam penuh dengan simetri dan mempelajari simetri selalu masuk ke dalam studi operator linear (teori representasi, dalam pikiran saya, merayap ke banyak bidang ilmu komputer di mana-mana).

Ini adalah tambahan untuk kasus di mana operator itu sendiri bersifat linier.

Sebagian besar masalah yang kita butuhkan program komputer, muncul baik secara langsung, atau disarikan dari, fenomena yang terjadi secara alami. Mungkin mempelajari / menyelesaikan sistem linier seharusnya bukan kejutan besar?

Arnab
sumber
Ah ya, kegembiraan yang luar biasa dari mengangkat peta.
Suresh Venkat