Độ phức tạp của việc kiểm tra xem phương trình tuyến tính có giải pháp dương hay không


7

Xét một hệ phương trình tuyến tính , trong đó là ma trận với các mục nhập hợp lý. Giả sử thứ hạng của là . Số phức là gì để kiểm tra xem nó có giải pháp sao cho tất cả các mục của đều lớn hơn 0 (cụ thể là là một vectơ dương) không? Tất nhiên, người ta có thể sử dụng loại bỏ Gauss, nhưng điều này dường như không phải là tối ưu.Ax=0An×nA<nxxx


2
Đồng thời vượt biên trên CSTheory . Xin đừng làm điều này, nó làm cho câu hỏi của bạn có vẻ quan trọng hơn những câu hỏi khác.
Juho

Là "tất nhiên" rõ ràng? Tôi không biết các hình thức tiêu chuẩn LP khác nhau trên đỉnh đầu, nhưng đây là một thiết lập nhìn chung chung.
Louis

2
Bài viết "Về các giải pháp tích cực của một hệ phương trình tuyến tính" của Lloyd Dines dường như đề cập đến vấn đề này. Nếu bạn không có quyền truy cập thông qua JSTOR, tôi sẽ đọc và tóm tắt bài viết trong câu trả lời.
Patrick87

4
@ user29271 Vui lòng cho chúng tôi biết liệu bài viết này có trả lời câu hỏi của bạn không. Nếu vậy, bạn có thể đăng câu trả lời với một mô tả ngắn gọn về kỹ thuật ... Tôi chắc chắn bạn sẽ nhận được nhiều danh tiếng vì đã cung cấp một kết quả hữu ích như vậy cho cộng đồng.
Patrick87

2
Khá đơn giản để thực hiện một chương trình tuyến tính tùy ý cho một câu hỏi khả thi (có một điểm trong phần bên trong của một đa giác được đưa ra bởi các bất đẳng thức tuyến tính) và thao tác nó sao cho nó ở dạng mong muốn của bạn. Vì tính khả thi cho lập trình tuyến tính cũng khó như lập trình tuyến tính tùy ý, nên vấn đề của bạn cũng khó như chương trình tuyến tính tùy ý. Và nó thực sự có thể được giải quyết bằng lập trình tuyến tính. Tôi không có thời gian ngay bây giờ, nhưng nếu không có ai giải thích điều này và bạn vẫn chưa tìm thấy câu trả lời thỏa đáng vào giữa tuần tới, tôi có thể cố gắng giải thích chi tiết.
Peter Shor

Câu trả lời:


14

Đầu tiên, điều này có thể được giải quyết bằng lập trình tuyến tính. Đặt , , , là các biến của bạn. Chương trình tuyến tính giải quyết câu hỏi của bạn làx1x2xn

maxt
chịu sự điều chỉnh của , với , .
txii=1...n
Ax=0

Nếu tối đa là 0, thì không có giải pháp tích cực. Nếu mức tối đa là (nghĩa là chương trình tuyến tính không bị ràng buộc ) thì có một giải pháp tích cực.


Thứ hai, sử dụng các phép biến đổi tiêu chuẩn trên các chương trình tuyến tính, vấn đề khả thi cho một chương trình tuyến tính tùy ý với sự bất bình đẳng nghiêm ngặt có thể được giảm xuống thành vấn đề của bạn. Chúng tôi bắt đầu với vấn đề khả thi

Có tồn tại sao cho ?x
Ax<b

Bây giờ chúng ta có thể thêm một biến mới vào phía bên phải của tất cả các phương trình này và bất đẳng thức để làm cho mọi thứ đồng nhất. Vì vậy, đối với phương trình thứ , bây giờ chúng ta cóxn+1xn+1>0k

ak,1x1++ak,nxnbkxn+1<0 .

Điều này đưa ra một vấn đề tương đương trên ma trận mới :A

Có tồn tại sao cho không?x
Ax<0

Tiếp theo, chúng ta có thể biến bất đẳng thức thành phương trình bằng cách thêm một số biến và yêu cầu . Các phương trình thứ trên lần lượt vấn đề mới vàoyiyi>0k

ak,1x1++ak,nxn+ak,n+1xn+1+yk=0 .

Cuối cùng, chúng tôi muốn cho phép tất cả các biến là tích cực. Làm thế nào chúng ta làm điều này? Đối với mỗi biến bằng một dấu tùy ý, chúng ta thay bằng và yêu cầu , .xixiziwizi>0wi>0

Vấn đề khả thi về cơ bản khó như một vấn đề lập trình tuyến tính tùy ý, do đó, nói chung sẽ không có cách nào dễ dàng hơn để giải quyết vấn đề của bạn hơn là sử dụng lập trình tuyến tính.

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.