Vấn đề này là NP-hard . Để thể hiện điều này, trước tiên tôi sẽ cải tổ vấn đề (tối ưu hóa) này thành vấn đề quyết định. Sau đó, tôi cải tổ vấn đề đó thành một vấn đề tương đương, từ đó khá đơn giản để có được sự giảm bớt từ vấn đề -coloring, NP-hard cho bất kỳ k ≥ 3 nào .kk≥3
Một công thức ngắn của vấn đề là như sau:
Cho người và một biểu đồ G mã hóa các mối quan hệ 'tặng quà' của họ, hãy tìm số lượng chuyến đi tối thiểu cần thiết để có thể mua tất cả quà tặng mà không làm hỏng bất kỳ sự ngạc nhiên nào.nG
Tuy nhiên, đây là một vấn đề tối ưu hóa. NP lớp thường được định nghĩa cho các vấn đề giải trừ (trong đó câu trả lời cho mọi trường hợp là CÓ hoặc KHÔNG). Một biến thể quyết định của điều này là:
Với người và một đồ thị G mã hóa của họ 'tặng quà' quan hệ và một số nguyên t , đang thực hiện ở hầu hết các t chuyến đi đủ để mua tất cả những món quà mà không làm hỏng bất kỳ bất ngờ?nGtt
Tôi xác định vấn đề của việc tìm kiếm một đạo diễn thích hợp -multicoloringt của một số đồ thị như việc tìm kiếm một chức năng nhiều màu c : V → P ( C ) mà là thích hợp , nơi C là một số thiết lập của t 'màu sắc' ( tức là | C | = t ) và P ( C ) là tập hợp sức mạnh của C (tức là tập hợp tất cả các tập con của CG=(V,E) c:V→P(C)Ct|C|=tP(C)CC(u→v)∈Ec(u)⊈c(v)
Tôi cho rằng vấn đề chuyến đi mua sắm là tương đương với vấn đề quyết định sự tồn tại của một đạo diễn -multicoloringt của cùng một đồ thị .G
Bằng chứng : Nếu chúng ta có một đạo diễn thích hợp -multicoloring cho , nơi mà chúng tôi đổi tên các màu sắc như vậy sau đó xem xét trình tự của chuyến đi , nơi một đỉnh đi mua sắm trong chuyến đi khi và chỉ khi . Sau đó, với mọi cạnh , chúng ta có tồn tại một chuyến đi sao cho và , vì . Do đó, những chuyến đic G C = { 1 , ... , t } t T 1 , ... , T t v T i i ∈ c ( v ) ( u → v ) ∈ E T i u ∈ T i v ∉ T i c ( u ) ⊈ c ( v ) T itcGC={1,…,t}tT1,…,TtvTii∈c(v)(u→v)∈ETiu∈Tiv∉Tic(u)⊈c(v)Ti là đủ để mua tất cả quà tặng.
Nếu chúng ta có một chuỗi các chuyến đi , thì hãy xây dựng hàm đa màu trên tập màu sao cho . Sau đó, với mọi cạnh , tồn tại một chuyến đi sao cho và (vì có thể mua quà cho trong một chuyến đi), điều đó có nghĩa là và , vì vậy . c C = { 1 , ... , t } c ( u ) = { i ∈ N | u ∈ T i } ( u → v ) ∈ E T i u ∈ T i v ∉ T i u v i ∈ c ( u ) i ∉ c (T1,…,TtcC={1,…,t}c(u)={i∈N|u∈Ti}(u→v)∈ETiu∈Tiv∉Tiuvi∈c(u)c ( u ) ⊈ c ( v ) ◻i∉c(v)c(u)⊈c(v)□
Tìm kiếm một -multcoloring đúng hướng về cơ bản là một sự cải tổ kỳ lạ của một trường hợp cụ thể của -coloring. Do đó, tôi có thể hiển thị việc giảm thời gian đa thức từ vấn đề tô màu: Đưa ra biểu đồ vô hướng , trước tiên hãy chuyển đổi biểu đồ này thành đồ thị có hướng , sao cho và khi và chỉ khi hoặc ( nói cách khác, chúng ta thay đổi các cạnh vô hướng thành hai cạnh có hướng).ktk(t⌊t/2⌋)G = ( V , E ) V = V ' ( u → v ) ∈ E ( u , v ) ∈ E ' ( v , u ) ∈ E 'G′=(V′,E′)G=(V,E)V=V′(u→v)∈E(u,v)∈E′(v,u)∈E′
Hãy xem xét một tập hợp lớn nhất , sao cho không tồn tại , , sao cho . Tập hợp tất cả các tập hợp con của có kích thước , trong đó, là một bộ như vậy. Do đó, kích thước tối đa của một tập hợp con như vậy là .a , b ∈ K a ≠ b a ⊂ b C ⌊ t / 2 ⌋ t = | C | ( tK⊂P(C)a,b∈Ka≠ba⊂bC⌊t/2⌋t=|C|(t⌊t/2⌋)
Nếu tồn tại một màu thích hợp cho , thì tồn tại một màu thích hợp sử dụng không quá các phần tử không bằng nhau từ (*) , vì vậy đây là lệ - tô màu cho .G ( ttG P(C) ( t(t⌊t/2⌋)P(C) G'(t⌊t/2⌋)G′
Nếu một thích hợp tồn tại cho , thì tồn tại một tập hợp , , sao cho và không tồn tại bất kỳ , , sao cho . Vì vậy, có một -multoloring đúng hướng . G'K⊂P(C)| C| =t| K| ≥ ( t(t⌊t/2⌋)G′K⊂P(C)|C|=t a,b∈Ka≠ba⊂bGt|K|≥(t⌊t/2⌋)a,b∈Ka≠ba⊂bGt
Do đó, đây là việc giảm thời gian đa thức hợp lệ từ tô màu cho vấn đề mua sắm hiện tại với các chuyến đi , có nghĩa là vấn đề mua sắm hiện tại là NP-hard. Lưu ý rằng vấn đề mua sắm hiện nay là NP-đầy đủ, vì chúng ta có thể xác minh một cách dễ dàng nếu một danh sách nhất định ở hầu hết các các chuyến đi cho phép chúng tôi để mua tất cả những món quà mà không làm hỏng bất ngờ. tt(t⌊t/2⌋)tt
(*): Nếu một số đa màu sử dụng nhiều bộ màu hơn so với đa màu 'không phụ' tối đa , chúng ta có thể 'đổi tên' sao cho nó là siêu ký tự của . vẫn đúng, vì không có phần tử nào trong liền kề với một phần tử khác với là một vấn đề và không có phần màu nào được đặt liền kề nhau bản gốc . Vì vậy, không mất tính tổng quát, chúng ta có thể giả sử .C * C C * C C * C * C C * ⊂ CCC∗CC∗CC∗C∗CC∗⊂C
Sau đó, lưu ý rằng 'đổi tên' thành bất kỳ tập hợp con nào của không làm hỏng các cạnh giữa các nút của bộ màu , vì không chứa phần tử nào là tập con của phần tử khác. Điều duy nhất còn lại là đảm bảo rằng các cạnh giữa và không 'phá hỏng' màu.C * C ∖ C * C * C ∖ C * C *C∖C∗C∗C∖C∗C∗C∖C∗C∗
Hãy xem xét mối quan hệ sau đây trên các bộ màu trong : hai bộ màu và được kết nối khi và chỉ khi tồn tại một cặp đỉnh sao cho có màu sắc thiết lập và màu bộ và . Mối quan hệ này có thể được biểu thị bằng đồ thị vô hướng .C ∪ C ∗ A B a , b a A b B ( a , b ) ∈ E G = ( C ∪ C ∗ , R )RC∪C∗ABa,baAbB(a,b)∈EG=(C∪C∗,R)
Đầu tiên, chúng ta có thể 'giảm' bằng cách thay thế bất kỳ cặp nào không có cạnh trong bằng một bộ màu duy nhất. Màu sắc vẫn phù hợp, vì việc thay đổi hai màu hoàn toàn không liền kề thành cùng một màu sẽ không đưa ra bất kỳ cạnh không hợp lệ nào. Kết quả là, chúng tôi đã giảm thành một biểu đồ hoàn chỉnh.G GC∖C∗GG
Điều này có nghĩa là nếu có số lượng bộ màu ít hơn hoặc bằng nhau là, màu sắc yêu cầu tồn tại. Mặt khác, hoàn toàn không tồn tại nhiều màu thích hợp, vì là tập hợp 'không tập hợp con' lớn nhất, vì vậy chúng tôi không thể tô màu cho cụm này. Do đó, đa màu cần thiết tồn tại.| C ∗ | C *G|C∗|C∗
Như đồ thị đầy đủ về các nút là màu thể khi và chỉ khi chúng ta có ít nhất màu sắc, chúng tôi có mà mọi người có thể đi mua sắm quà cho nhau trong chuyến đi khi và chỉ khi . Điều này có nghĩa đặc biệt là, nếu , chỉ thực hiện chuyến là đủ. Nếu có ít quà để mua, sẽ không cần nhiều chuyến đi hơn, vì vậy đây là giới hạn chung trên mọi giải pháp.K n n n t ( tnKnnntn≤12.87016(t⌊t/2⌋)≥nn≤1287016
Dưới đây là 'câu trả lời' trước đây của tôi, đưa ra thuật toán heuristic không đảm bảo để có được mức tối ưu, nhưng có thể được tính trong thời gian đa thức.
Một cách khác để hình thành vấn đề này là tìm của đồ thị lưỡng cực trên các phân vùng cho một số đồ thị có hướng với nút , sao cho số lượng phân vùng (tức là các chuyến đi), ở đây , là tối thiểu.( S i , T i ) G n mC={(S1,T1),…,(Sm,Tm)}(Si,Ti)Gnm
Đầu tiên, một số quan sát, một phần đến từ các câu trả lời khác:
- Chiến lược tham lam, trong đó chúng tôi chọn một với biểu đồ lưỡng cực trong đó số cạnh chung với là tối đa, không dẫn đến một giải pháp tối ưu (Ví dụ phản đối mạnh là biểu đồ đầy đủ có nút, trong đó chiến lược này thất bại, bất kể biểu đồ lưỡng cực tối đa nào được chọn.).G 6(Si,Ti)G6
- Chiến lược tham lam không tối ưu cho các biểu đồ chu kỳ tùy ý, hãy xem xét biểu đồ sau:
Cả hai cho và biểu đồ lưỡng cực loại bỏ cạnh, nhưng chỉ là tối ưu.S i = { 1 , 3 , 6 } 4 { 3 , 5 , 6 }Si={3,5,6}Si={1,3,6}4{3,5,6}
- Bất kỳ thuật toán tham lam (tối ưu) nào cũng không thể thích kích thước của phân vùng được chọn hơn số lượng chu kỳ ( có kích thước bất kỳ ) 'bị loại bỏ bởi phân vùng. Để thấy điều này, hãy xem xét biểu đồ với nút, trong đó có một chu kỳ của nút và mỗi nút trong chu trình có thêm cạnh đi về phía nút bổ sung , không có cạnh đi ra (Xem hình bên dưới để biết một ví dụ trong đó ). Một lựa chọn tham lam thích tối đa hóa số lượng cạnh trong các chu kỳ có độ dài sẽ gửi tất cả các đỉnh trong chu kỳ trong chuyến đi đầu tiên. Điều này là tối ưu, vì điều này không loại bỏ bất kỳ cạnh nào của chu kỳ và chỉ cần bỏ quan 2 2 A , B n = 4 n A , B A , Bn+2n22A,Bn=4nA,Bvà loại bỏ tất cả các cạnh từ chu trình loại bỏ tất cả các cạnh đối với là tốt. Vì vậy, bất kỳ lựa chọn tham lam nào thích kích thước của phân vùng hơn là loại bỏ một chu kỳ là không tối ưu.A,B
Dựa trên những quan sát này, tôi đề xuất lựa chọn tham lam sau: Chọn sao cho số lượng chu kỳ mà chuyến đi này 'loại bỏ' khỏi là tối đa và trong trường hợp quan hệ, hãy chọn một phân vùng có chồng chéo tối đa với trong số chúng (tức là nhìn vào các cạnh không theo chu kỳ).G G(Si,Ti)GG
Vì thuật toán này không khác với chiến lược tham lam 'cơ bản' trên các đồ thị chu kỳ (loại bỏ một lượng cạnh tối đa trên mỗi chuyến đi), do đó thuật toán tham lam này không tối ưu. Tuy nhiên, trực giác loại bỏ các chu kỳ vẫn có ý nghĩa và là một cải tiến so với chiến lược tham lam cơ bản, vì vậy nó có thể là một heuristic đàng hoàng.