Changeset 956:141f9c0db4a3 in lemon for lemon/matching.h
- Timestamp:
- 03/06/10 15:35:12 (15 years ago)
- Branch:
- default
- Children:
- 957:f802439d2b58, 959:38213abd2911, 1041:f112c18bc304
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
lemon/matching.h
r955 r956 3 3 * This file is a part of LEMON, a generic C++ optimization library. 4 4 * 5 * Copyright (C) 2003-20 095 * Copyright (C) 2003-2010 6 6 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport 7 7 * (Egervary Research Group on Combinatorial Optimization, EGRES). … … 1624 1624 (*_delta4_index)[i] = _delta4->PRE_HEAP; 1625 1625 } 1626 1626 1627 1627 _unmatched = _node_num; 1628 1628 … … 1679 1679 _blossom_node_list.clear(); 1680 1680 _blossom_potential.clear(); 1681 1681 1682 1682 if (_fractional == 0) { 1683 1683 _fractional = new FractionalMatching(_graph, _weight, false); … … 1751 1751 subblossoms[--num] = _blossom_set->find(v); 1752 1752 _delta1->push(v, _fractional->nodeValue(v)); 1753 v = _graph.target(_fractional->matching(v)); 1753 v = _graph.target(_fractional->matching(v)); 1754 1754 } 1755 1756 int surface = 1755 1756 int surface = 1757 1757 _blossom_set->join(subblossoms.begin(), subblossoms.end()); 1758 1758 (*_blossom_data)[surface].status = EVEN; … … 1761 1761 (*_blossom_data)[surface].pot = 0; 1762 1762 (*_blossom_data)[surface].offset = 0; 1763 1763 1764 1764 _tree_set->insert(surface); 1765 1765 ++_unmatched; … … 1811 1811 } 1812 1812 } 1813 1813 1814 1814 if (!(*_node_data)[ni].heap.empty()) { 1815 1815 _blossom_set->decrease(n, (*_node_data)[ni].heap.prio()); … … 2270 2270 int _unmatched; 2271 2271 2272 typedef MaxWeightedPerfectFractionalMatching<Graph, WeightMap> 2272 typedef MaxWeightedPerfectFractionalMatching<Graph, WeightMap> 2273 2273 FractionalMatching; 2274 2274 FractionalMatching *_fractional; … … 3096 3096 _blossom_node_list.clear(); 3097 3097 _blossom_potential.clear(); 3098 3098 3099 3099 if (_fractional == 0) { 3100 3100 _fractional = new FractionalMatching(_graph, _weight, false); … … 3162 3162 while (n != v) { 3163 3163 subblossoms[--num] = _blossom_set->find(v); 3164 v = _graph.target(_fractional->matching(v)); 3164 v = _graph.target(_fractional->matching(v)); 3165 3165 } 3166 3167 int surface = 3166 3167 int surface = 3168 3168 _blossom_set->join(subblossoms.begin(), subblossoms.end()); 3169 3169 (*_blossom_data)[surface].status = EVEN; … … 3172 3172 (*_blossom_data)[surface].pot = 0; 3173 3173 (*_blossom_data)[surface].offset = 0; 3174 3174 3175 3175 _tree_set->insert(surface); 3176 3176 ++_unmatched; … … 3222 3222 } 3223 3223 } 3224 3224 3225 3225 if (!(*_node_data)[ni].heap.empty()) { 3226 3226 _blossom_set->decrease(n, (*_node_data)[ni].heap.prio());
Note: See TracChangeset
for help on using the changeset viewer.