EDIT: câu trả lời là SAI. Tôi đã đưa ra giả định ngầm (ngớ ngẩn) rằng khi một luồng đường dẫn bắt đầu tại thời điểm s và kết thúc tại thời điểm t và đi qua cạnh e, nó sẽ chặn cạnh e trong khoảng thời gian này. Tuy nhiên, điều này là không đúng sự thật. Xem *.
Lưu ý: Có lẽ cách tiếp cận này là không cần thiết phức tạp hoặc không chính xác. Mặc dù tôi đã cố gắng xác minh và viết nó một cách cẩn thận - tôi đã không dành thời gian lớn cho nó.
Giả sử 'dự trữ' không được phép, ví dụ, luồng phải được chuyển ngay lập tức. Gọi là số cạnh và N chiều dài đầu vào. Tôi đã không chỉ định thời gian liên tục hoặc rời rạc, vì tôi đã không xem xét nó. Nó nên hoạt động cho những suy nghĩ rời rạc, liên tục tôi chắc chắn lưu ý.mN
Sau đó, chúng ta có thể mô tả giải pháp dưới dạng một tập hợp các "đường dẫn" từ nguồn đến chìm. Luồng đường dẫn là một bộ tứ bao gồm các phần sau: Một đường dẫn P đơn giản từ nguồn đến chìm; Thời gian bắt đầu của dòng chảy s ; Lượng dòng chảy qua đường dẫn a ; Tỷ lệ thông lượng r(P,s,a,r)Psar .
Đặt một giải pháp được đưa ra bởi một tập hợp của các luồng đường dẫn. Chúng tôi có thể xác minh xem giải pháp được cung cấp bởi các luồng đường dẫn này có chính xác trong đa thức thời gian trong | F | và N :F|F|N
- Đối với mọi cạnh và một thời điểm t , hãy cộng tốc độ thông lượng của tất cả các luồng đường đi qua e tại thời điểm t . Mỗi luồng đường dẫn có thời gian bắt đầu và kết thúc, do đó chúng ta chỉ cần xem xét các thời điểm khi luồng đường dẫn bắt đầu hoặc kết thúc (giữa các thời điểm này không có gì thay đổi liên quan đến luồng đường đi qua cạnh e .etete
- Đối với mỗi luồng đường dẫn, chúng tôi có thể xác minh xem tất cả luồng chảy có đến bồn rửa trước thời gian .T
- Đối với mọi cạnh, chúng ta có thể xác minh xem một luồng đường đi qua sau khi nó đã bị phá hủy hay chưa.
- Giới hạn dưới của luồng chúng ta có thể kiểm tra một cách đơn giản, bằng cách thêm số lượng luồng của đường dẫn dòng chảy.B
Bây giờ, chúng ta 'chỉ' cần phải chứng minh rằng số lượng các đường dẫn chảy là đa thức trong .N
Đối với một giải pháp nhất định, chúng ta có thể xác định thời gian một dòng chảy đi qua một cạnh và khi cạnh đó bị phá hủy. Chuyển vấn đề này thành một vấn đề với một giải pháp tương đương: có các giới hạn cứng ở mỗi cạnh khi nó có thể được sử dụng và khi không - thời gian bắt đầu và kết thúc. Đặt biểu thị tập hợp tất cả các thời gian này.{t1,...,tk}
Xem xét một số giải pháp không gọn và (ban đầu) một tập hợp các luồng đường dẫn trống. Ý tưởng là chúng ta lặp đi lặp lại tìm một luồng đường dẫn trong giải pháp không gọn, loại bỏ nó và lưu trữ nó trong tập hợp các luồng đường dẫn của chúng ta.
Tìm dòng chảy bắt đầu và kết thúc giữa và t j , i < jtitji<j nhưng không kết thúc giữa bất kỳ và t q như vậy [ t p , t q ] ⊆ [ t i , t j ] . Gọi F i , j là tập hợp các luồng đường dẫn giữa t j và t j với các thuộc tính như mô tả ở trên.tptq[tp,tq]⊆[ti,tj]Fi,jtjtj
Giả sử rằng chúng tôi đã loại bỏ tất cả các luồng đường dẫn cho tất cả các khoảng nhỏ hơn . Tham lam tìm dòng chảy bắt đầu và kết thúc trong [ t i , t j ] . Khi chúng tôi tìm thấy một, loại bỏ luồng này khỏi giải pháp và điều chỉnh tốc độ thông lượng của các đỉnh tương ứng và lượng dòng gửi từ nguồn cũng bị chìm. Đối với luồng đường dẫn này, chúng tôi tối đa hóa thông lượng. Điều này có nghĩa là đối với ít nhất một cạnh, chúng tôi đã đạt được tốc độ thông lượng tối đa hoặc sau khi loại bỏ luồng đường dẫn này, không còn dòng chảy nào trên cạnh này nữa. Lưu ý rằng điều này giữ trong khoảng thời gian [ t i + 1 , t[i,j][ti,tj]. Trong cả hai trường hợp, không có dòng chảy nào đi qua cạnh này và chúng ta có thể kết luận rằng | F s , t | ≤m.[ti+1,tj−1]|Fs,t|≤m
(*) Tại sao yêu cầu trước đó là đúng? Chà, mọi luồng đường dẫn khác trong bắt đầu trước t i + 1 và kết thúc sau t j - 1 . Do đó, phải trùng lặp về thời gian mà họ sử dụng một cạnh nhất định. Vì thông lượng được tối đa hóa cho luồng đường dẫn, nên phải có một cạnh nơi nó chặt chẽ.Fti,tjti+1tj−1
Từ này sau đó cho một số c không đổi và tuyên bố rằng nó nằm trong NP.∑i,j∈[k]|Fi,j|≤cm3c