Trực giác về lý do tại sao vấn đề đường dẫn dài nhất không có cấu trúc tối ưu?


9

Tôi đã tìm hiểu về các đường dẫn dài nhất và tình cờ thấy rằng các đường dẫn dài nhất trong đồ thị chung không thể giải quyết được bằng lập trình động bởi vì vấn đề thiếu cấu trúc tối ưu (mà tôi nghĩ rằng câu lệnh cần được sửa thành các đường đơn giản dài nhất trên đồ thị chung là không thể giải quyết được lập trình năng động).

Nếu chúng ta cho rằng chúng phải đơn giản (vì một số lý do thì điều này là bắt buộc mà tôi chưa đánh giá cao) và lâu nhất, thì thật dễ dàng để tạo một ví dụ phản biện. Xét đồ thị hình vuông có 4 nút A → B → C → D → A.

nhập mô tả hình ảnh ở đây

Một con đường dài nhất từ ​​A đến D rõ ràng là A → B → CD. Nhưng con đường dài nhất từ ​​B đến C không phải là một phần của con đường dài nhất từ ​​A đến D vì con đường dài nhất từ ​​B đến C là B → A → D → C rõ ràng không giống với con đường B → C (mà trong trường hợp này thực tế là một con đường ngắn nhất!).

Điều này dường như chỉ hoạt động vì chúng tôi yêu cầu các đường dẫn phải đơn giản. Có cần thiết phải giả định rằng các đường dẫn phải đơn giản để chúng tôi chứng minh rằng cấu trúc tối ưu không có mặt?

Tôi nghĩ rằng ví dụ phản biện nên là bằng chứng / bằng chứng tốt (mà tôi không phủ nhận), tôi chỉ không tìm thấy ví dụ phản biện nào cả. Tôi thấy lý do tại sao nó chứng minh rằng nó không cho phép cấu trúc tối ưu nhưng nó không cung cấp cho tôi sự hiểu biết hoặc trực giác thực sự tại sao rõ ràng là không nên cấu trúc tối ưu đường dẫn dài nhất. Ví dụ như, tại sao một đối số cắt và dán hoạt động? Nếu đường dẫn phụ không dài nhất, thì hãy đi theo con đường dài hơn! Nghe có vẻ rất hấp dẫn, ý tôi là, nếu chúng ta đặt một thứ gì đó lâu hơn thì tất nhiên nó sẽ dài hơn ... mặc dù vậy, điều này là vì một số lý do sai . Liệu ví dụ trên thực tế có chứng minh rằng DP không bao giờ có thểgiải quyết các con đường dài nhất (đơn giản?) hiệu quả? Tôi không yêu cầu bằng chứng chung rằng nó không có trong P (vì đó có thể là yêu cầu giải pháp P vs NP). Tôi chỉ sau một bằng chứng rằng DP không thể giải quyết được (hoặc ít nhất là bằng chứng rất mạnh mẽ rằng DP không bao giờ có thể giải quyết vấn đề đường dẫn dài nhất này hoặc vấn đề không có cấu trúc tối ưu).

Tôi chắc chắn đã thấy trong wikipedia rằng vấn đề nên là NP-Hard, điều đó có nghĩa là có lẽ không có thuật toán nhanh. Không chắc chắn nếu đó là loại bằng chứng / trực giác duy nhất tồn tại để cung cấp cấu trúc tối ưu đó rõ ràng là thiếu (hoặc nếu nó không thiếu, thì nó không thể được sử dụng để làm cho vấn đề nhanh hơn). Đó có phải là cách duy nhất để cho thấy rằng nó không thể được giải quyết bằng một chương trình năng động nhanh?

Là lý do chúng tôi yêu cầu đơn giảnchỉ bởi vì nếu chúng ta không đặt ra yêu cầu đó thì vấn đề trở nên tầm thường / không thú vị? Nói cách khác, nếu có bất kỳ chu kỳ nào thì người ta đã giải quyết vấn đề đường dẫn dài nhất cho tất cả các nút có thể truy cập từ chu trình đó (bằng cách tìm bất kỳ đường dẫn nào đến chu trình đó). Đối với các nút không có bất kỳ chu kỳ nào có thể truy cập, chúng ta có một biểu đồ chu kỳ, có thể giải được bằng DP (nếu các trọng số là dương?). Ngoài ra, nếu có chu kỳ, chúng tôi đã tự động làm cho mọi thứ có cấu trúc tối ưu (tôi nghĩ) bởi vì bất kỳ con đường dài nhất nào cũng được tạo thành từ con đường dài nhất bao gồm hai trường hợp, 1 đường dẫn qua chu kỳ hoặc 2 đường dẫn qua DAG, Cả hai đều chứa cấu trúc tối ưu. Vậy vấn đề đã trở nên tầm thường nếu không có yêu cầu của những con đường đơn giản? Hoặc tôi đang thiếu một cái gì đó hoặc có giải thích tốt hơn về lý do tại sao các đường dẫn đơn giản được yêu cầu? Khôngnói chung con đường dài nhất có thể giải quyết bằng cách DP?

Tôi cũng không chắc chắn 100% những yêu cầu nào là cần thiết để đảm bảo DP không thể được sử dụng. Có cần thiết phải có trọng số cạnh âm, tích cực, không trọng số, định hướng, không bị ảnh hưởng ... các yêu cầu là gì?


2
"không thể giải quyết được bằng lập trình động vì vấn đề thiếu cấu trúc tối ưu (mà tôi nghĩ rằng câu lệnh cần được sửa thành các đường dẫn đơn giản dài nhất trên đồ thị chung không thể giải quyết được bằng lập trình động)." - không phải là "cấu trúc tối ưu" hay "lập trình động "Là những thuật ngữ có ý nghĩa theo nghĩa chính thức; đơn giản là không có những định nghĩa chính thức được thống nhất trên toàn cầu đối với họ. Xem thêm ở đâyở đây . Điều đó có nghĩa là bằng chứng bạn yêu cầu không tồn tại.
Raphael

Câu trả lời:


11

Ôi(n!)Ôi~(2n)

G= =(V,E)S,tVMộtV{S,t}GStMột

(S,t,Một)

(S,t,Một)= =1+tối đaxMột{S}:(S,x)E(x,t,Một{S})(St),(t,t,Một)= =0.
StMột(S,t,Một)= =-

Bạn có thể giải quyết sự tái phát này bằng lập trình động trong thời gian .Ôi~(2n)

Mặc dù có cấu trúc tối ưu ở đây, có quá nhiều tham số để theo dõi và đây là điều khiến vấn đề trở nên khó xử.


dấu ngã trên đỉnh chữ O có nghĩa là gì? Tôi đoán nó có nghĩa là bạn ẩn các thuật ngữ đa thức trong ký hiệu O lớn.
Charlie Parker

@CharlieParker Đúng vậy.
Yuval Filmus

Làm thế nào để bạn thực thi các đường dẫn đơn giản trong công thức này?
Joost

@Joost Việc tái phát đã thực thi điều này.
Yuval Filmus

xSMột

3

Trước hết, con đường đơn giản dài nhất là NP-hard và không có nghi ngờ gì về điều đó (vì đường dẫn Hamilton giảm theo nó).

Thứ hai, nếu bạn xem xét các đường dẫn không đơn giản, thì vấn đề không có nhiều ý nghĩa, vì đường dẫn không đơn giản đi qua một cạnh / đỉnh nhiều lần, do đó nó có một vòng lặp. Kết quả là có một vòng lặp trong đường dẫn, đường dẫn không đơn giản dài nhất là vô hạn .


1

Tôi đã suy nghĩ về điều tương tự trong 1 giờ qua và đưa ra kết luận sau:

i) Đường dẫn dài nhất trong đồ thị không có chu kỳ có cấu trúc tối ưu và đường dẫn ngắn nhất cũng vậy.

ii) Đường đi dài nhất không có chu kỳ dương có cấu trúc tối ưu và đường dẫn ngắn nhất không có chu kỳ âm.

iii) Đường dẫn dài nhất có chu kỳ dương và đường đi ngắn nhất có chu kỳ âm không tồn tại vì chúng ta có thể lặp đi lặp lại xung quanh chu kỳ. Vì vậy, chúng tôi nhìn vào những con đường đơn giản.

iv) Đường đơn giản dài nhất có chu kỳ dương và đường đơn giản ngắn nhất có chu kỳ âm là NP Hard.

DP giải (i) trong O (V + E). Bellman-Ford giải quyết (ii) trong O (VE) và Djisktra giúp trong một số trường hợp phụ của (ii).

Văn học khó hiểu về chủ đề này khi con đường dài nhất chỉ là con đường ngắn nhất với trọng số bị phủ định và ngược lại. Tôi thấy không có lý do để đưa ra các tuyên bố chăn như đường dẫn dài nhất không có cấu trúc phụ tối ưu nhưng đường dẫn ngắn nhất có vv

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.