Đây có phải là vấn đề du lịch tối ưu theo thời hạn NP-hard trên cây?


13

Một người bạn của tôi hỏi tôi vấn đề lập lịch trình sau đây trên cây. Tôi thấy nó rất sạch sẽ và thú vị. Có bất kỳ tài liệu tham khảo cho nó?

Vấn đề: Có một cây , mỗi cạnh có chi phí di chuyển đối xứng là 1 . Đối với mỗi đỉnh , có một nhiệm vụ cần được thực hiện trước thời hạn . Nhiệm vụ cũng được ký hiệu là . Mỗi tác vụ có giá trị đồng nhất 1. Thời gian xử lý là 0 cho mỗi tác vụ , nghĩa là truy cập một tác vụ trước thời hạn hoàn thành bằng với việc hoàn thành nó. Không mất tính tổng quát, hãy để biểu thị gốc và giả sử không có nhiệm vụ nào ở . Có một chiếc xe tại tại thời điểm 0. Bên cạnh đó, chúng tôi giả sử rằng cho mọi đỉnh ,T(V,E)d i v ivTôidTôivTôiv 0 v 0 d id e p i d e p iv0v0v0dTôidepTôidepTôilà viết tắt của độ sâu của . Điều này là hiển nhiên, đỉnh có thời hạn nhỏ hơn độ sâu của nó nên được coi là ngoại lệ. Vấn đề yêu cầu tìm một lịch trình hoàn thành càng nhiều nhiệm vụ càng tốt.vTôi

Phát triển:

  1. Nếu cây bị giới hạn trong một đường dẫn, thì nó nằm trong thông qua lập trình động.P
  2. Nếu cây được khái quát thành biểu đồ, thì nó nằm trong .NP
  3. Tôi có một thuật toán tham lam rất đơn giản được cho là apporoximation 3 yếu tố. Tôi đã không chứng minh nó hoàn toàn. Rightnow, tôi quan tâm nhiều hơn đến kết quả NP-hard. :-)

Cảm ơn lời khuyên của bạn.


Trên một biểu đồ hoàn chỉnh, nhiệm vụ sẽ dễ dàng phải không? Chỉ cần sử dụng một thuật toán tham lam đơn giản ...
Joe

@Joe: Vâng. Bởi vì mỗi cạnh cần 1 đơn vị đi lại, do đó không có sự ưu tiên giữa các "ngã tư". Bạn vẫn quan tâm đến vấn đề này, nếu có. có lẽ chúng ta có thể nói chuyện qua email. :-)
Bành Trương

Điều gì xảy ra nếu tất cả các thời hạn là như nhau và / hoặc chúng tôi chỉ hỏi nếu tất cả các nhiệm vụ có thể được hoàn thành?
domotorp

@domotorp: Nếu nó yêu cầu hoàn thành tất cả các nhiệm vụ với một thời hạn, câu trả lời là CÓ khi và chỉ khi thời hạn thống nhất. Chỉ cần tìm kiếm sâu đầu tiên. Đối với vấn đề tối ưu trong trường hợp, Tôi không biết liệu nó có dễ dàng không. Có nhiều biến thể về vấn đề này, chẳng hạn như xem xét điều gì sẽ xảy ra nếu thời hạn lấy giá trị từ một tập hợp hữu hạn có số lượng thẻ là một hằng số? Rất cảm ơn bạn vì sự góp ý. d < | V |d|V|d<|V|
Bành Trương

Tôi sẽ nói NP-hard xem sở thú lên lịch , trừ khi tôi hiểu nhầm vấn đề của bạn.
Gopi

Câu trả lời:


1

Không chắc đây là câu trả lời của bạn (xem bên dưới) nhưng hơi dài cho các bình luận.

Tôi mặc dù vấn đề của bạn là một cái gì đó như: , trong đó:(P|tree;pTôi= =1|ΣTTôi)

  • P là viết tắt của các bộ xử lý đồng nhất giống hệt nhau,
  • "cây" là viết tắt của ưu tiên hạn chế hình thức của cây,
  • pTôi= =1 là viết tắt của trọng số của các tác vụ bằng 1 và
  • ΣTTôi là viết tắt của tối thiểu hóa tổng số chậm trễ (nghĩa là số lượng nhiệm vụ hoàn thành sau thời hạn của chúng).

Nếu đây là trường hợp, thì vấn đề của bạn là NP-hard: bạn có thể xem nó như một sự khái quát hóa Tối thiểu hóa sự chậm trễ trên một máy duy nhất với các ràng buộc ưu tiên . Thật vậy, bài báo này nói rằng đối với nhiều chuỗi tuyến tính, nó là NP-hard trên một bộ xử lý. Việc chuyển đổi dễ dàng là lấy các cây có dạng một gốc và các chuỗi tuyến tính bắt đầu từ gốc.

Tuy nhiên tôi rất ngạc nhiên vì dường như bạn nói rằng đối với trường hợp của một chuỗi tuyến tính duy nhất , bạn sẽ sử dụng Lập trình động. Tôi không thấy lý do tại sao bạn cần DP, vì dường như với tôi rằng khi lập lịch cho một chuỗi tuyến tính duy nhất, bạn không có nhiều sự lựa chọn vì những hạn chế ưu tiên: chỉ có một lựa chọn duy nhất. Vì vậy, có lẽ tôi đã hiểu nhầm vấn đề của bạn.


Vấn đề của tôi có vẻ khác với bạn. Của tôi là, "một cây gốc, thời gian đơn vị chi phí đi lại, mỗi đỉnh với một nhiệm vụ với thời hạn của nó, nhiệm vụ không cần thời gian để bắt đầu. Bắt đầu từ gốc, có bao nhiêu nhiệm vụ có thể được hoàn thành?". Vì vậy, không có quyền ưu tiên, không có thời gian cần thiết để xử lý một nhiệm vụ. Cảm ơn rât nhiều.
Bành Trương

@PengZhang, Nếu là cây có rễ thì có được ưu tiên không? Đối với các chi phí trên các cạnh (ưu tiên?) Hoặc trên các nhiệm vụ, đối với tôi dường như là điều tương tự. Tôi thực sự không thấy sự khác biệt giữa cả hai. Cuối cùng, có bao nhiêu nhiệm vụ có thể kết thúc, nếu bạn giảm thiểu số lượng nhiệm vụ hoàn thành sau thời hạn, điều đó tương đương với tối đa hóa số lượng nhiệm vụ có thể hoàn thành. Có lẽ bạn có thể vẽ một bức tranh về những gì bạn đang mong đợi?
Gopi

Tôi không thấy mối quan hệ rõ ràng giữa hai vấn đề. Trong vấn đề ban đầu, chi phí truy cập một nút tiếp theo phụ thuộc vào nút nào được truy cập trong bước trước. Trong lập lịch hạn chế ưu tiên, chi phí của một công việc tiếp theo để xử lý không phụ thuộc vào công việc nào được xử lý ở bước trước, miễn là thỏa thuận ưu tiên được thỏa mãn.
Yoshio Okamoto

@Gopi: chi phí của các cạnh không thể được "chuyển" lên các nút, theo như tôi nghĩ. Nếu cây bị giới hạn trong một đường dẫn (có thể là chuỗi bạn đã giới thiệu), trong vấn đề của tôi, chúng ta có thể lập trình động như sau. Đặt các đỉnh được đánh số là từ trái sang phải. Đặt biểu thị các nhiệm vụ tối đa từ khoảng thời gian vị trí tại thời điểm và kịch bản đứng ở . Gọi biểu thị điều tương tự như ngoại trừ phương tiện đứng ở . Sau đó, chúng ta có có thể được bắt nguồn từ . Vìf ( t , l , r ) [ l , r ] t l g ( t , l , r ) f ( t , l , r ) r f ( t , l , r ) { f ( , l + 1 , r ) , g (1,2,,nf(t,tôi,r)[tôi,r]ttôig(t,tôi,r)f(t,tôi,r)rf(t,tôi,r){f(,l+1,r),g(,l,r1)t,l,rlà đa thức, vì vậy dp là đa thức.
Bành Trương

@PengZhang, ok, tôi nghĩ rằng tôi hiểu rõ hơn về ý của bạn. Tôi vẫn tin rằng người ta có thể dễ dàng điều chỉnh bài báo mà tôi đã đưa ra, bằng cách xem xét các cây đặc biệt trong đó các nhánh là các đường dẫn (do đó các đường dẫn gốc).
Gopi

1

Để điều này trở thành sự thật, chúng ta phải đưa ra một số giả định. Xem bình luận bên dưới

Đối với trường hợp cây, tôi tin rằng có một thuật toán lập trình động đệ quy thời gian đa thức được tham số hóa bởi thời gian tối đa. Các vấn đề phụ là: nếu chúng ta nhập một cây con theo thời gian và thoát khỏi cây con theo thời gian , số lượng tác vụ tối đa chúng ta có thể hoàn thành trong cây con là bao nhiêu? Các trường hợp cơ bản ở lá là dễ dàng và chúng tôi ghi nhớ từ dưới lên.tatb

Nếu chúng ta thực sự tham số hóa theo thời gian tối đa, thì thuật toán sẽ không thực sự là đa thức về kích thước của cây. Tuy nhiên, độ dài của đường dẫn dài nhất truy cập vào mọi nút trong cây chỉ là đa thức trongvà chúng tôi không bao giờ cần phải kiểm tra thời hạn muộn hơn thế.|V|


2
Bạn có thể chỉ cho tôi sự tái phát? Tôi đã thử giống như của bạn trước đây, hãy để biểu thị dự án con của việc truy cập cây con bắt nguồn từ đỉnh a . Nhưng có hai rắc rối. 1. Làm thế nào bạn có thể xây dựng giải pháp của bạn từ các bài toán con? Theo tôi nghĩ, việc liệt kê thứ tự của các con trai là không thể tránh khỏi. 2. Bạn có thể nhập và để lại một nút nhiều lần. Vì vậy, trong khoảng thời gian [ t , t ] , có thể bạn đã truy cập các đỉnh khác không nằm trong cây con bắt nguồn từ a . Cảm ơn rât nhiều. :-)f[a,t,t]a[t,t]một
Bành Trương

điểm (1) không phải là vấn đề nhiều như điểm (2). Để ý tưởng của tôi hoạt động như lần đầu tiên tôi hình dung ra, nó yêu cầu bạn không thoát ra và nhập lại một cây con nhiều lần. Không rõ ràng rằng giải pháp tốt nhất không nhảy xung quanh cây: lấy một chiếc lá, và một cái gì đó ở gần gốc, và đi đến một chiếc lá, sau đó đến một chiếc lá khác cách xa 2 cây kia, v.v. Bạn có thể có thể để khai thác thực tế là bạn sẽ nhận được tất cả các nút trên bất kỳ con đường nào bạn đi bộ. Đặc biệt, nếu bất kỳ đứa trẻ nào đã được truy cập, thì cha mẹ đã được truy cập.
Joe

: Trong thougt của tôi, điểm (1) thực sự là một vấn đề . Đối với điểm (2), tôi đã gọi ràng buộc "không nhập lại" là ràng buộc "Tìm kiếm đầu tiên sâu". Các ràng buộc DFS thường được thông qua trong văn học. Và dưới sự ràng buộc đó, vấn đề của tôi thực sự là đa thức, miễn là mức độ tối đa của cây là một hằng số . Vì vậy, tôi tự hỏi câu hỏi của tôi là NP-hard. Cảm ơn rât nhiều.
Bành Trương

3
Về ràng buộc DFS, có thể dễ dàng xây dựng một ví dụ trong đó chuỗi tối ưu vi phạm ràng buộc này. Hãy xem xét một cây nhị phân hoàn chỉnh, cân bằng với 7 nút. Để 2 lá trong cây con bên trái có thời hạn 2 và 12, 2 lá ở cây con bên phải có thời hạn 8 và 6 và các nút bên trong có thời hạn 100. Bạn có thể truy cập tất cả các nút bằng cách truy cập các lá theo thứ tự 2,6,8 , 12; bất kỳ lệnh nào khác vi phạm ít nhất một thời hạn.
mhum

0

Vấn đề nhận được xấp xỉ liên tục cho trường hợp này hoặc chứng minh NP-Hard vẫn còn mở và bất kỳ kết quả nào cũng sẽ tạo ra một ấn phẩm tốt. Một số trường hợp đặc biệt đã được giải quyết. Tôi, cùng với những người khác, có một số kết quả một phần giải quyết các trường hợp đặc biệt như nhện, cây có chiều cao không đổi. Nhưng, vấn đề chung cho cây là chưa được giải quyết.

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.