Opened 2 years ago
Closed 2 years ago
#23843 closed defect (fixed)
for graphs g1.union(g2) would better be weighted if both g1 and g2 are
Reported by: | vdelecroix | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | sage-8.1 |
Component: | graph theory | Keywords: | |
Cc: | dcoudert | Merged in: | |
Authors: | Vincent Delecroix | Reviewers: | David Coudert |
Report Upstream: | N/A | Work issues: | |
Branch: | 3590fb4 (Commits) | Commit: | 3590fb484e8b04516f643bf0ace430eb26d1b2e3 |
Dependencies: | Stopgaps: |
Description
The following is wrong
sage: g1 = Graph(weighted=True) sage: g2 = Graph(weighted=True) sage: g = g1.union(g2) sage: g.weighted() False
For both loops and multiedges the union takes an "or" (ie g
allows loops if any of g1
or g2
allows loops). Though it is not clear that such rule should apply for weighted. Three possibilities
- make
g
weighted if any ofg1
org2
are - make
g
weighted if bothg1
andg2
are - When
g1.weighted()
andg2.weighted()
are different raise aValueError
and otherwise apply any of the two above rules.
Change History (5)
comment:1 Changed 2 years ago by
comment:2 Changed 2 years ago by
- Status changed from new to needs_review
Simpler version without errors: make it weighted if both are weighted.
comment:3 Changed 2 years ago by
- Branch set to u/vdelecroix/23843
- Commit set to 3590fb484e8b04516f643bf0ace430eb26d1b2e3
comment:4 Changed 2 years ago by
- Reviewers set to David Coudert
- Status changed from needs_review to positive_review
Let's go for it. Passes all tests and doc build.
comment:5 Changed 2 years ago by
- Branch changed from u/vdelecroix/23843 to 3590fb484e8b04516f643bf0ace430eb26d1b2e3
- Resolution set to fixed
- Status changed from positive_review to closed
Note: See
TracTickets for help on using
tickets.
I don't use weighted graph very often, so I don't know what is expected: number as label? dictionary with specific key? If we make the union weigthed if one of the graph is weighted, should we turn
None
to 0 ? what if one of the graph has"bob"
for label ? should we check that weights are consistent ?The easiest is certainly to raise an error.