Any interest in Nearest Neighbor greedy tour algorithm and/or cleaned up metric_tsp_approx?
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
Hướng nghiên cứu
Bắt đầu bằng việc xem xét triển khai metric_tsp_approx hiện có cùng mã ví dụ và mã kiểm thử của nó, sau đó so sánh chúng với entry point nearest_neighbor_tour_from_vertex được đề xuất. Trước khi viết mã, hãy xác nhận dự án muốn chấp nhận thuật toán hoặc việc dọn dẹp nào. Công việc chỉ được xem là hoàn tất khi có phạm vi đã thống nhất cùng với các ví dụ và bài kiểm thử tích hợp cho thay đổi được chọn.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Hi,
I have written a Nearest Neighbor greedy tour heuristic w/ example and test code. I think this heuristic is a good pairing to the metric_tsp as it has less constraints on the graph/edge weight types (no triangle inequality required), does not require a global MST, uses less memory while running due to local greedy characteristic, and runs much faster albeit with the caveat that it does not have a defined upper bound on tour efficiency. However, typical results are very strong and it is a good starting point to the more advanced k-opt TSP algorithms (e.g. LKH) that require a starting tour.
template < typename VertexListGraph, typename WeightMap,
typename VertexIndexMap, typename TSPVertexVisitor >
void nearest_neighbor_tour_from_vertex(const VertexListGraph& g,
typename graph_traits< VertexListGraph >::vertex_descriptor start,
WeightMap weightmap,
VertexIndexMap indexmap,
TSPVertexVisitor vis)
I also have cleaned up my original tsp_metric_approx code significantly, addressing all of Andrew Sutton's (who helped tremendously) original comments. I've also improved the test and example code for it.
I am also considering implementing Christofides 3/2 solution O(v^3) due to MWPM because it has the interesting characteristic of not requiring a complete graph as well as a lower upper bound solution, but I wanted to write a fast starter for LK first.
Let me know if there is any interest in either of these (cleaned up metric, new nearest neighbor). I haven't contributed to Boost BGL in nearly 20 years and I know much has changed, but I had interest over the holidays :-)
- Ngôn ngữ chính
- C++
- Star
- 399
- Fork
- 247
- Merge trung bình
- 1 ngày 9 giờ
- Pull request đã merge (30 ngày)
- 40
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của boostorg/graph
-
Good first issues: start contributing to Boost.Graph hereCó thể làm lại được @andreacassioli đã nhận 9 ngày trước và không có pull request nào đang mở. Đang mởbeginner friendly
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
boostorg/graph#593 · 47 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
algorithm beginner friendly priority: high
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
boostorg/graph#231 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Trivial Minimum Cycle Ratio FailingCó thể đã có người làm @Becheler đã nhận 12 ngày trước. Đang mởalgorithm
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 68/100
boostorg/graph#599 · 3 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 30/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Implementing personalized PageRank for graph node scoring.Có thể đã có người làm @Becheler đã nhận 147 ngày trước. Đang mởalgorithm
boostorg/graph#493 · 22 bình luận · 1 reaction · 2 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của boostorg/graph
Issue tương tự
-
objdetect(mcc): CCheckerDetector leaves its chart type uninitialized 🤖🤖🤖Có thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
Maintainer thường phản hồi trong vòng 1 ngày
-
(S1 - Need confirmation)
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
CleverRaven/Cataclysm-DDA#89182 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
ai_p2
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
ClickHouse/ClickHouse#126833 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
clang:static analyzer
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
llvm/llvm-project#233598 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100