pgr_maxCardinalityMatch problems
Maintainer thường phản hồi trong vòng 3 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 55/100
Hướng nghiên cứu
The issue is about the pgr_maxCardinalityMatch function in pgRouting. The algorithm currently incorrectly accepts directed graphs, but should only work on undirected graphs. Check the function implementation in the C++ code, likely in files related to matching algorithms. The changes involve modifying the SQL signature and internal handling of cost/reverse_cost columns. Review the linked pull requests #2342 and #2343 for context on what has been done. Testing involves running the matching example and ensuring directed graphs are rejected.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Problems
Algorithm works for undirected graph only
From boost
Both edmonds_maximum_cardinality_matching and checked_edmonds_maximum_cardinality_matching find the maximum cardinality matching in any undirected graph.
I tried the example with directed graph.
$ g++ match_example.cpp
$ ./a.out
a.out: match_example.cpp:74: int main(): Assertion `success' failed.
Aborted (core dumped)
No one else problems detected yet, but it should not be allowed to run on a directed graph. Eventually a problem will happen and the current results with directed graph are invalid for the problem definition.
About results
seqis not needed as the results unique identifier can be edge- And because the graph is undirected,
sourceandtargetare also not needed.- Those are values that can be found by joining the result with the edges table on the database.
About the inner query
SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table
Following the general form on the inner query, it should be
SELECT id, source, target, cost, reverse_cost FROM edge_table
Changes
SQL
On V3
- Create function
pgr_maxCardinalityMatch(Edges SQL)-> returnsedge - Deprecate function
pgr_maxCardinalityMatch(Edges SQL, [directed])-> returns(seq, edge, source, target)
On V4 - Remove function
pgr_maxCardinalityMatch(Edges SQL, [directed])
code
On V3
- Ignore the flag
- Accept
costandreverse_costas columns on the inner query
On V4
- Do not accept
going&coming - Cleanup code
TODO
- #2342
- #2343
- Ngôn ngữ chính
- C++
- Star
- 1.4k
- Fork
- 397
- Merge trung bình
- 2 ngày 23 giờ
- Pull request đã merge (30 ngày)
- 7
Chuẩn bị môi trường
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 pgRouting/pgrouting
-
Add details to CONTRIBUTING.mdĐang mởAdministrative Enhancement
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 80/100
Maintainer thường phản hồi trong vòng 3 ngày
-
points_input Developers docCó thể đã có người làm @withaman69 đã nhận 94 ngày trước. Đang mởC/C++ Developers Doc. good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
pgRouting/pgrouting#973 · 10 bình luận ·
Maintainer thường phản hồi trong vòng 3 ngày
-
get_check_data developers docCó thể đã có người làm @withaman69 đã nhận 96 ngày trước. Đang mởC/C++ Developers Doc. good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
pgRouting/pgrouting#972 · 7 bình luận ·
Maintainer thường phản hồi trong vòng 3 ngày
-
bug Looks AI valid
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 30/100
pgRouting/pgrouting#3180 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 3 ngày
-
pgr_drivingDistance: get_depth() is O(reached × V) and dominates runtime on large graphsCó thể đã có người làm @jflangenbach-casageo đã nhận 10 ngày trước. Đang mởbug
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 62/100
Maintainer thường phản hồi trong vòng 3 ngày
Tất cả issue của pgRouting/pgrouting
Issue tương tự
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
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 78/100
Niko1221/Strata#5560 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 4 ngày
-
NVIDIA windows
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Maintainer thường phản hồi trong vòng 1 ngày
-
[辞書] C/C++のプリプロセッサ指令名を英字のままにするĐang mở要トリアージ 辞書
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 86/100
yksr-melt/Meltype#1625 · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[yugabyted] xcluster set_up and add_to_replication fail for database names containing - . or (Đang mởkind/bug priority/medium qa_automation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
yugabyte/yugabyte-db#37324 ·
Maintainer thường phản hồi trong vòng 1 ngày