Làm thế nào / Tại sao các hệ thống tuyến tính rất quan trọng đối với khoa học máy tính?


9

Gần đây tôi đã bắt đầu tham gia vào Tối ưu hóa toán học và rất thích nó. Có vẻ như rất nhiều vấn đề tối ưu hóa có thể dễ dàng được thể hiện và giải quyết như các chương trình tuyến tính (ví dụ: luồng mạng, bìa / đỉnh, nhân viên bán hàng du lịch, v.v.) Tôi biết rằng một số trong số chúng là NP-hard, nhưng vấn đề là chúng có thể 'đóng khung như một chương trình tuyến tính' nếu không được giải quyết tối ưu.

Điều đó khiến tôi suy nghĩ: Chúng tôi luôn được dạy các hệ phương trình tuyến tính, đại số tuyến tính trong toàn trường / đại học. Và nhìn thấy sức mạnh của LP để thể hiện các thuật toán khác nhau, điều đó thật hấp dẫn.

Câu hỏi: Mặc dù chúng ta có các hệ thống phi tuyến tính phổ biến xung quanh chúng ta như thế nào / tại sao các hệ thống tuyến tính lại rất quan trọng đối với khoa học máy tính? Tôi hiểu rằng họ giúp đơn giản hóa sự hiểu biết và có thể tính toán được hầu hết thời gian nhưng có phải vậy không? Làm thế nào tốt là 'xấp xỉ' này? Có phải chúng ta đơn giản hóa quá mức và kết quả vẫn còn có ý nghĩa trong thực tế? Hay đó chỉ là "bản chất", tức là những vấn đề hấp dẫn nhất thực sự chỉ đơn giản là tuyến tính?

Liệu có an toàn để đảm bảo rằng 'đại số tuyến tính / phương trình / lập trình' là những viên đá góc của CS không? Nếu không thì điều gì sẽ là một mâu thuẫn tốt? Tần suất chúng ta xử lý các công cụ phi tuyến tính (tôi không nhất thiết phải theo lý thuyết mà còn theo quan điểm 'khả năng giải quyết', tức là chỉ nói rằng NP không cắt giảm; cần phải có một sự gần đúng tốt cho vấn đề và nó sẽ hạ cánh lên là tuyến tính?)


4
Tôi đã không downvote, nhưng tôi không hiểu tại sao tính dễ điều khiển không phải là một câu trả lời thỏa mãn cho bạn. Có một số giác quan chính xác thú vị trong đó các vấn đề không lồi là khó chữa, ví dụ. arxiv.org/abs/1210.0420 .
Colin McQuillan

2
Downvoters có thể có nhiều lý do tại sao họ chọn không bình luận.
Tyson Williams

1
Một cách để xem xét đó là bất kỳ vấn đề NP nào cũng có thể được giảm xuống thành lập trình số nguyên trong thời gian đa thức, và sau đó vấn đề lập trình số nguyên có thể được nới lỏng. nhưng chúng tôi sử dụng các kỹ thuật quang phổ và thư giãn SDP, đó là các vấn đề tối ưu hóa bậc hai có thể giải quyết hiệu quả.
Sasho Nikolov

1
Các hệ thống tuyến tính của NSTN trong câu hỏi này có ý nghĩa gì?
Tsuyoshi Ito

1
Các hệ thống tuyến tính được tìm thấy trong tất cả các thời kỳ khoa học .... nó đơn giản hóa được số dặm cao đáng ngạc nhiên .... có vẻ như một hệ quả nhỏ đối với hiệu quả vô lý của toán học trong khoa học tự nhiên .. rõ ràng CS phù hợp với thể loại "khoa học tự nhiên" này ".... nó liên minh chặt chẽ với vật lý, được cho là ngày càng tăng nên mọi lúc [ví dụ như thu nhỏ bóng bán dẫn, tản nhiệt, QM mức thấp, nghiên cứu về tiêu thụ năng lượng, entropy, v.v. ....
vzn

Câu trả lời:


12

Tiền đề của câu hỏi là một thiếu sót nhỏ: có nhiều người sẽ cho rằng tứ giác là "ranh giới" thực sự cho khả năng kéo và mô hình hóa, vì các bài toán bình phương gần như "dễ" như các bài toán tuyến tính. Có những người khác cho rằng độ lồi (hoặc thậm chí dưới mức trong một số trường hợp nhất định) là ranh giới cho khả năng di chuyển.

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

Sự không nhớ này truyền đạt hiệu quả: Tôi có thể chia mọi thứ thành từng mảnh, hoặc làm việc lặp đi lặp lại, và tôi không mất đi nhờ vào việc làm như vậy. Tôi vẫn có thể đưa ra quyết định tồi (thuật toán tham lam cf) nhưng hành động chia tách mọi thứ tự nó không làm tổn thương tôi.

Đây là một lý do tại sao tuyến tính có sức mạnh như vậy. Có lẽ có nhiều người khác.


Tôi thích câu trả lời này nhưng với những người lập luận rằng lập trình tuyến tính không phải là ranh giới, tôi trả lời: "nó hoàn thành P!" ;).
Artem Kaznatcheev

Có nhưng đó có phải là trường hợp (ví dụ) SDP không?
Suresh Venkat

Chúng ta không cần phải có một ranh giới duy nhất và một số ranh giới của P (giả sử lập trình bậc hai với ma trận bán xác định dương cho các số hạng bình phương) có vẻ tổng quát hơn. Tôi không có ý không đồng ý, chỉ chỉ ra rằng ranh giới là vấn đề của hương vị khi chọn giữa các vấn đề hoàn chỉnh.
Artem Kaznatcheev

5

" Mặc dù chúng ta có các hệ thống phi tuyến tính phổ biến xung quanh chúng ta như thế nào / tại sao các hệ thống tuyến tính lại rất quan trọng đối với khoa học máy tính?"

Đây là một câu trả lời một phần trong tâm trí của tôi: Tôi nghĩ rằng đó là bởi vì thiên nhiên có rất nhiều đối tượng / hiện tượng - có thể biểu thị bằng các hàm mặc dù là phi tuyến trên toán hạng của chúng, thực sự là thành viên của không gian tuyến tính. Các hàm sóng trong một không gian Hilbert, các thành phần trong phổ nhiễu, vòng đa thức, các quá trình ngẫu nhiên - tất cả chúng đều hoạt động theo kiểu đó. Ngay cả những định nghĩa rất chung về không gian cong cũng được xây dựng bằng cách soạn các biểu đồ nhỏ của không gian phẳng (đa tạp, bề mặt Riemann, ..). Hơn nữa, thiên nhiên có đầy đủ các đối xứng và nghiên cứu các đối xứng luôn luôn được nghiên cứu về các toán tử tuyến tính (lý thuyết biểu diễn, trong tâm trí của tôi, đang len lỏi vào nhiều lĩnh vực của khoa học máy tính từ trước đến nay).

Đây là ngoài các trường hợp trong đó bản thân các toán tử là tuyến tính.

Một phần lớn các vấn đề mà chúng ta cần các chương trình máy tính, phát sinh trực tiếp hoặc được trừu tượng hóa từ các hiện tượng xảy ra tự nhiên. Có lẽ nghiên cứu / giải quyết các hệ thống tuyến tính không phải là một bất ngờ lớn, sau tất cả?


À đúng rồi, niềm vui tuyệt vời của việc nâng bản đồ.
Suresh Venkat
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.