Có phải việc tìm một đường dẫn có nhiều đỉnh màu đỏ hơn đỉnh màu xanh NP-hard?


7

Cho một đồ thị được kết nối, có hướng , các đỉnh và một màu, st và có màu đen và tất cả các đỉnh khác có màu đỏ hoặc màu xanh , có thể tìm thấy một đường dẫn đơn giản từ đến với nhiều màu đỏ hơn đỉnh màu xanh trong thời gian đa thức?G=(V,E)s,tVstst

Tôi nghĩ điều đó là có thể nhưng TA của chúng tôi đã nói rằng đây là NP-hard.

Ý tưởng cho một giải pháp:

Từ tạo như sau: GG=(V,E)

  • Chia tất cả thành hai đỉnh và . được tạo thành từ các cặp đỉnh chia và và . vV{s,t}vinvoutVst

  • Với tất cả giới thiệu một cạnh . (Đối với cạnh hoặc trong đó tạo cạnh hoặc resp.). Ngoài ra, giới thiệu một cạnh cho bất kỳ đỉnh chia nào. Vì vậy, chứa hai loại cạnh: những người mà tương ứng với cạnh từ và những người mà tương ứng với đỉnh từ .e=(u,v)E(uout,vin)(x,v)(u,x)x{s,t}(x,vin)(uout,x)(vin,vout)EEV

Bây giờ, chúng tôi giới thiệu trọng lượng như sau:

  • w((vin,vout))=1 nếu đỉnh tương ứng có màu đỏ . v
  • w((vin,vout))=+1 nếu đỉnh tương ứng có màu xanh . v
  • w(e)=0 cho tất cả các cạnh khác, tức là các cạnh tương ứng với các cạnh của chứ không phải các đỉnh.G

Bây giờ, tiến hành một thuật toán cho các đường dẫn ngắn nhất mà bạn chọn như Dijkstra, Bellman-Ford, ..., kiểm tra xem độ dài của đường dẫn đã cho có và bạn đã hoàn thành.<0

Tại sao cai nay không hoạt động? Có phải vì chúng ta có thể có chu kỳ tiêu cực? Chúng tôi có thể phát hiện những người có Bellman Ford nhưng sau đó chúng tôi phải tìm ra con đường mong muốn với phương tiện không hiệu quả khiến vấn đề quyết định này trở nên khó khăn? Có giảm bớt thanh lịch để hiển thị độ cứng NP?

Câu trả lời:


9

Giải pháp của bạn không hoạt động vì Dijkstra và Bellman-Ford không thể giải thích tính năng "đường dẫn đơn giản". Và họ thực sự sẽ rơi vào bất kỳ chu kỳ tiêu cực.

Tôi nghĩ cách tốt nhất để thể hiện tính đầy đủ của NP là sử dụng bài toán đường dẫn Hamilton. Hãy lấy một đồ thị của đỉnh đỏ.GN

Sau đó, bạn xây dựng một đồ thị , thêm đỉnh màu xanh , và vào . Bạn chuỗi đầu tiên với các cạnh tất cả các đỉnh màu từ nguồn đến màu xanh lam cuối cùng ( -> -> -> ...-> ). Sau đó, bạn đặt các cạnh từ đến mọi đỉnh đỏ và một cạnh từ mọi đỉnh đỏ đến .GstN1Gsb1b2bN1bN1t

Vì vậy, một đường dẫn duy nhất từ đến đi qua tất cả các nút màu xanh ( ) và sau đó phải chuyển đến tất cả các nút đỏ ( ) để trả lờistN1N

Có một đường dẫn đơn giản trong từ đến với nhiều màu đỏ hơn các đỉnh màu xanh không?Gst

do đó giống như câu trả lời cho:

Có một con đường Hamilton trongG

Vì vậy, vấn đề của bạn thực sự là NP-đầy đủ.


1
Gọn gàng, cảm ơn Vì vậy, nếu tôi muốn chính thức chứng minh đâu tôi phải bắt đầu với một thể hiện cho Đường dẫn Hamilton và ánh xạ nó tới một thể hiện của vấn đề này, tôi có thể thực hiện sau: Tô màu tất cả các đỉnh hiện có màu đỏ, thêm đỉnh màu xanh lam và kết nối chúng trong một chuỗi . Thêm một cạnh và với mỗi trong một cạnh trong , phần còn lại vẫn giữ nguyên. DHPProblemAboveG,s,tG,s,t|V{s,t}|1(b1)(bn)(s,b1)(s,v)G(bn,v)G
Valerie Poulain

1
Có, tôi không rành lắm về trình diễn NP-đầy đủ nhưng cách trình bày này rõ ràng tốt hơn. Tôi vẫn sẽ bắt đầu với một thể hiện của mà không & như ban đầu vấn đề Đường đi Hamilton không có đỉnh cụ thể. Gst
Optidad

2
Nâng cao cho sự đúng đắn (tôi nghĩ); nhưng đối số này sẽ dễ hiểu hơn nếu bạn BẮT ĐẦU với biểu đồ tùy ý và sau đó nhúng nó vào được xây dựng đặc biệt . Ngay bây giờ, phần giảm được ẩn hoàn toàn trong một câu "Cuối cùng, bạn đặt bất kỳ số cạnh nào giữa các đỉnh màu đỏ", mà tôi đã bỏ lỡ trong lần đọc đầu tiên. "Bất kỳ số cạnh nào" là mã cho "bạn chọn bất kỳ biểu đồ tùy ý có đường dẫn Hamilton mà bạn muốn khám phá và nhúng nó vào đó." Đó là những gì làm cho điều này giảm hợp lệ. GGG
Quuxplusone

1
@Quuxplusone bạn đúng tôi chỉnh sửa để làm cho nó rõ ràng hơn.
Optidad

@ValeriePoulain: Vince nói đúng rằng các đỉnh bắt đầu và kết thúc không được đưa ra cho vấn đề HP thông thường, nhưng nếu chúng được đưa ra, mức giảm của bạn cần một chút điều chỉnh: Bạn phải chèn một chuỗi đỉnh màu xanh lam trong một đường dọc theo mỗi cạnh giữa và bất kỳ đỉnh màu đỏ khác. Điều này là để ngăn chặn, ví dụ, một cạnh từ đến một đỉnh đỏ nào đó là một giải pháp hợp lệ cho thể hiện được xây dựng. |V{s,t}|1ss
j_random_hacker
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.