Tạo các vấn đề tối ưu hóa tổ hợp thú vị


9

Tôi đang dạy một khóa học về siêu mô hình và cần tạo ra các trường hợp thú vị về các vấn đề tổ hợp cổ điển cho dự án thuật ngữ. Hãy tập trung vào TSP. Chúng tôi đang giải quyết các đồ thị có kích thước và lớn hơn. Tất nhiên tôi đã cố gắng tạo một biểu đồ với ma trận chi phí với các giá trị được lấy từ một U ngẫu nhiên ( 0 , 1 ) và phát hiện ra rằng (như mong đợi) biểu đồ cho chi phí đường dẫn (được vẽ bằng cách lấy mẫu nhiều đường dẫn ngẫu nhiên) rất thu hẹp phân phối chuẩn ( μ100 nhưng là khoảng200Bạn(0,1)μ 1004σ4). Điều này có nghĩa, theo tôi, vấn đề rất dễ dàng, vì hầu hết các đường dẫn ngẫu nhiên sẽ ở dưới mức trung bình và đường dẫn chi phí tối thiểu rất gần với một đường dẫn ngẫu nhiên.

Vì vậy, tôi đã thử cách tiếp cận sau: Sau khi tạo -matrix, hãy đi bộ ngẫu nhiên dài xung quanh biểu đồ và ngẫu nhiên (Bernoulli với ) gấp đôi hoặc giảm một nửa giá trị của cạnh. Điều này có xu hướng hạ thấp tất cả các giá trị, cuối cùng xuống 0, nhưng nếu tôi chỉ thực hiện đúng số bước, tôi có thể nhận được phân phối với khoảng vàp = 0,5 μ 2Bạn(0,1)p= =0,5μ2 khoảng 1 .σ1

Câu hỏi của tôi là, đầu tiên, đây có phải là một định nghĩa tốt cho một vấn đề thú vị không? Lý tưởng nhất là tôi muốn một cá thể có tính đa phương thức cao (đối với các hàm lân cận phổ biến nhất) và có rất ít đường dẫn gần giá trị tối thiểu, do đó hầu hết các giải pháp ngẫu nhiên sẽ ở rất xa mức tối ưu. Câu hỏi thứ hai là, được đưa ra mô tả này, làm thế nào tôi có thể tạo các thể hiện với các đặc điểm như vậy?


3
Tìm các thư viện về điểm chuẩn TSP, như đã nghiên cứu trong OR (ví dụ: tìm kiếm các tác phẩm trên TSP của Applegate và cộng sự, ví dụ ở đây )?
Neal Young

2
TSPLIB với nhiều trường hợp.
adrianN

Cảm ơn, tôi đã kiểm tra liên kết và hữu ích, nhưng câu hỏi của tôi là về việc tạo ra các trường hợp không phải vì tôi muốn giải quyết một trường hợp cụ thể, mà là vì tôi tìm hiểu sâu về những gì tạo ra các vấn đề kết hợp tốt, một cái nhìn sâu sắc có thể được mở rộng sau này các vấn đề khác ngoài TSP.
Alejandro Piad


1
@Alejandro, Vấn đề ẩn giấu có thể là một ví dụ về những gì bạn đang tìm kiếm. Ngoài ra, bạn có thể tìm kiếm nghiên cứu về những trường hợp ngẫu nhiên của Sự hài lòng được coi là khó.
Neal Young

Câu trả lời:


6

Một cách tiếp cận chung để tạo ra các trường hợp khó hơn như sau:

  • Bắt đầu với một ví dụ vấn đề ngẫu nhiên.
  • Nhúng "cửa hậu ẩn": chọn ngẫu nhiên một giải pháp tốt (một giải pháp có khả năng tốt hơn nhiều so với bất kỳ giải pháp nào đã tồn tại) và sửa đổi trường hợp vấn đề để nhúng giải pháp này vào ví dụ vấn đề.

Ví dụ, đối với TSP, bạn có thể làm một cái gì đó như sau. Tạo một trường hợp vấn đề ngẫu nhiên bằng cách chọn một ma trận chi phí ngẫu nhiên . Sau đó, điều chỉnh trường hợp vấn đề để ẩn một giải pháp tốt hơn nhiều trong đó: chọn ngẫu nhiên một chuyến tham quan chính xác từng đỉnh một lần và giảm trọng số cạnh trên chuyến tham quan đó (ví dụ: tạo ngẫu nhiên từ U ( 0 , c ) trong đó c < 1Bạn(0,1)Bạn(0,c)c<1; giảm trọng lượng hiện có; hoặc sửa đổi các cạnh hiện có với một số xác suất cố định). Quy trình điều chỉnh này đảm bảo rằng giải pháp tối ưu sẽ, với xác suất cao, là chuyến tham quan đặc biệt mà bạn đã chọn. Nếu bạn may mắn và bạn chọn cách nhúng hợp lý, bạn cũng sẽ không dễ dàng nhận ra nơi bạn giấu giải pháp đặc biệt.

Cách tiếp cận này bắt nguồn từ những ý tưởng chung trong mật mã học, nơi chúng tôi muốn tạo ra các vấn đề một chiều của bẫy: nơi mà vấn đề khó giải quyết nếu không có kiến ​​thức về cửa bẫy bí mật, nhưng với kiến ​​thức về cửa bẫy bí mật, vấn đề trở nên rất dễ dàng. Đã có nhiều nỗ lực để nhúng các bẫy bí mật vào một loạt các vấn đề khó khăn (trong khi vẫn bảo tồn độ cứng của vấn đề ngay cả sau khi cửa bẫy được thêm vào), với mức độ thành công khác nhau. Nhưng phương pháp chung này có vẻ như có thể khả thi, cho mục đích của bạn.

Các trường hợp vấn đề kết quả có thể khó khăn , nhưng chúng sẽ thú vị , từ bất kỳ quan điểm thực tế nào? Tôi không biết. Đánh bại tôi Chúng trông khá giả tạo với tôi, nhưng tôi biết gì?

Nếu mục tiêu chính của bạn là chọn các trường hợp có vấn đề thực tế có liên quan và đại diện cho các ứng dụng TSP trong thế giới thực, đề xuất của tôi sẽ là một cách tiếp cận hoàn toàn khác. Thay vào đó, hãy bắt đầu bằng cách khảo sát các ứng dụng TSP trong thế giới thực, sau đó tìm kiếm các trường hợp đại diện cho những vấn đề đó và chuyển đổi chúng thành trường hợp vấn đề TSP tương ứng của chúng - vì vậy bạn đang làm việc với các trường hợp vấn đề xuất phát từ một vấn đề trong thế giới thực.


Tôi rất thích cách tiếp cận này, thực sự rất gần với những gì tôi đã cố gắng đưa ra, và dường như khá thích nghi với các vấn đề khác nhau. Động lực ban đầu của tôi là tạo ra các vấn đề kiểm tra cho sinh viên, vì vậy mặc dù tôi gặp phải các vấn đề thực sự, nhưng tôi phục vụ tốt cho tình huống khá giả tạo này (cố gắng chấm điểm các thuật toán của sinh viên). Trong mọi trường hợp, tôi sẽ tìm cách điều chỉnh nó cho phù hợp với nhu cầu nghiên cứu của mình, nhưng điều đó sẽ cần xem xét kỹ hơn, như bạn nói, để xác định xem các trường hợp được tạo ra như vậy có đủ đại diện hay không. Cảm ơn rất nhiều, bạn đã nhận được +1 và chấp nhận của tôi.
Alejandro Piad

3

một cách tiếp cận thường mang lại cho bạn quyền kiểm soát cao đối với bản chất của các giải pháp là chuyển đổi từ một vấn đề hoàn chỉnh NP sang một vấn đề khác. bây giờ bạn định nghĩa "thú vị" trong câu hỏi của bạn theo cách thống kê, nhưng một cách tiếp cận gọn gàng khác là sử dụng các vấn đề cổ điển từ lĩnh vực này. yêu thích của tôi là bao thanh toán / SAT. thật là tầm thường khi tìm thấy các số "trơn tru" với nhiều yếu tố hoặc số nguyên tố chỉ có hai "yếu tố" (một và số nguyên tố). tạo ví dụ SAT để giải quyết bao thanh toán và các giải pháp là các yếu tố (thực sự là hoán vị của các yếu tố, nhưng cũng không khó để tính trước thời hạn).

theo cách tiếp cận này, có một định nghĩa tự nhiên về các trường hợp "thú vị" mà không thể giải quyết trong thời gian P. và cách tiếp cận này được đảm bảo để tạo ra các trường hợp cứng để bao thanh toán các số không trơn tru nếu không nó sẽ giải quyết một câu hỏi mở quan trọng nhất trong lý thuyết phức tạp, tức là độ cứng của bao thanh toán .

sau đó, có thể chuyển đổi sang vấn đề của bạn, trong trường hợp này là TSP. để điền vào câu trả lời này, thật tuyệt khi có chuyển đổi SAT sang TSP trực tiếp, nghĩ rằng họ ở ngoài đó, nhưng không quen thuộc với họ. tuy nhiên, đây là một số giới thiệu về bao thanh toán-SAT trong câu hỏi này: giảm bài toán nhân tử số nguyên thành bài toán NP hoàn chỉnh

nếu bạn không thích bao thanh toán, bạn vẫn có thể tạo các trường hợp trong SAT trước vì nhiều lý do. bạn có thể bắt đầu với các trường hợp SAT ngẫu nhiên được điều chỉnh đến trung tâm trong điểm chuyển tiếp dễ-khó-dễ, vân vân. hoặc bạn có thể làm việc từ các trường hợp cứng DIMACS , được tạo bởi cộng đồng. hoặc tạo các "chương trình" logic khác trong SAT.


1
Tôi thích cách tiếp cận chuyển đổi, mặc dù bạn không cung cấp thêm các liên kết cụ thể liên quan đến TSP, nhưng dù sao cũng nhờ ý tưởng, tôi sẽ khám phá sâu hơn. Bạn đã có +1 của tôi.
Alejandro Piad

1
@alejandro thx ok đây là một liên kết về điều đó. xem ví dụ: bắt đầu từ slide 28 tại đây [lớp đại học!], CMSC 451: SAT, Coloring, Hamiltonian Chu kỳ, TSP Slides Bởi: Carl Kingsford . chuyển đổi SAT → chu trình Hamilton (TSP). có thể có các cách tiếp cận chuyển đổi hiệu quả hơn (ít chi phí hơn) hoặc với các khía cạnh phù hợp khác trong tài liệu nếu đó là điều mong muốn. hy vọng được nghe thêm về công việc của bạn, có thể trả lời ở đây hoặc trên blog của tôi nếu bạn thích
vzn

1
Tôi đã kiểm tra pdf, trình độ rất cao nhưng đủ dễ hiểu. Mặc dù hiện tại tôi đã nhận được những gì tôi cần với câu trả lời @DW, cách tiếp cận của bạn có vẻ rất thú vị đối với tôi. Tôi sẽ phải tự mình thử nó. Tôi đã thấy giảm trước đây (trên một khóa học đại học phức tạp) nhưng đã không nghĩ đến việc thực hiện nó thực sự cụ thể để tạo ra các trường hợp khó khăn. Tôi có mối quan tâm lâu dài về tối ưu hóa và siêu dữ liệu, và một trong những lĩnh vực quan tâm của tôi là về việc tạo ra các vấn đề điểm chuẩn thú vị. BTW, chỉ cần kiểm tra blog của bạn, chắc chắn sẽ quay trở lại !!!
Alejandro Piad
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.