pgr_maxCardinalityMatch problems
メンテナーはふだん 2 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 55/100
調査の方向性
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.
索引モデルが issue の本文から書いたものです。
説明
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
- 主要言語
- C++
- スター
- 1.4k
- フォーク
- 397
- 平均マージ
- 2日 2時間
- マージ済み PR(30日)
- 4
環境構築
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
pgRouting/pgrouting のほかの issue
-
Boost broken links対応中かも @Nandan-Raichura-Dev が 7 日前に担当しました。 オープンEnhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
pgRouting/pgrouting#3176 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信
-
Administrative Enhancement
難易度 1/5 1時間未満 初心者へのやさしさ 80/100
メンテナーはふだん 2 日以内に返信
-
points_input Developers doc対応中かも @withaman69 が 91 日前に担当しました。 オープンC/C++ Developers Doc. good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
pgRouting/pgrouting#973 · コメント 10 件 ·
メンテナーはふだん 2 日以内に返信
-
get_check_data developers doc対応中かも @withaman69 が 93 日前に担当しました。 オープンC/C++ Developers Doc. good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
pgRouting/pgrouting#972 · コメント 7 件 ·
メンテナーはふだん 2 日以内に返信
-
bug
難易度 4/5 3〜5日 初心者へのやさしさ 30/100
pgRouting/pgrouting#3180 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信
pgRouting/pgrouting の issue をすべて見る
似ている issue
-
難易度 1/5 1〜3時間 初心者へのやさしさ 68/100
eic/TimeframeBuilder#102 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
AcademySoftwareFoundation/OpenImageIO#5662 ·
メンテナーはふだん 2 日以内に返信
-
python
難易度 2/5 1〜3時間 初心者へのやさしさ 67/100
OpenChemistry/avogadrolibs#3295 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 65/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
Tracktion/tracktion_engine#482 ·
メンテナーはふだん 1 日以内に返信