1
0
Fork 0
Commit Graph

150 Commits

Author SHA1 Message Date
Joris van Rantwijk 02917b2caf Minor code and comment cleanups 2024-11-23 22:59:40 +01:00
Joris van Rantwijk f0773eb84b Clean up code formatting 2024-11-22 23:29:10 +01:00
Joris van Rantwijk 1e6f2a11c4 Simplify expand_t_blossom() 2024-11-22 20:12:25 +01:00
Joris van Rantwijk b5ccbdeda4 Remove expand_unlabeled_blossom() 2024-11-21 21:46:39 +01:00
Joris van Rantwijk 3815335a9f Keep alternating trees between stages in C++ 2024-11-20 21:10:14 +01:00
Joris van Rantwijk 082397ef80 Minor cleanup 2024-11-19 21:25:05 +01:00
Joris van Rantwijk ab691813b3 The C++ code should now run in O(n*m*log(n)) 2024-11-17 21:19:15 +01:00
Joris van Rantwijk 105679c986 Use iterator to delete expanded blossom 2024-11-17 20:46:58 +01:00
Joris van Rantwijk 7683f891d5 Use priority queues for delta2 2024-11-17 19:18:57 +01:00
Joris van Rantwijk 22251e64e8 Maintain concatenable queue for each blossom 2024-11-17 12:02:40 +01:00
Joris van Rantwijk 5b5c107a5c Initialize ConcatenableQueue name in constructor 2024-11-16 23:41:29 +01:00
Joris van Rantwijk e8020f3e58 Use priority queue for delta4 2024-11-16 20:23:51 +01:00
Joris van Rantwijk 2271df1897 Lazy updates of blossom duals 2024-11-16 14:23:13 +01:00
Joris van Rantwijk 228da75495 Lazy updates of vertex duals 2024-11-16 10:32:35 +01:00
Joris van Rantwijk 5500750c13 Reorganize code that handles labeling 2024-11-14 23:31:11 +01:00
Joris van Rantwijk 39eaea451e Minor code rearrangement 2024-11-10 00:10:26 +01:00
Joris van Rantwijk 7ea1562cc7 Use tight edges only during delta steps 2024-11-09 21:39:52 +01:00
Joris van Rantwijk 55a98238aa Implement heap-based tracking for delta3 2024-11-09 00:11:07 +01:00
Joris van Rantwijk b17ca1a364 Require signed type for edge weight 2024-11-08 20:30:53 +01:00
Joris van Rantwijk 67ca294840 Rework data structures 2024-11-08 18:38:20 +01:00
Joris van Rantwijk efb238ff8e C++ datastructures for O(n*m*log(n)) 2024-11-02 09:43:33 +01:00
Joris van Rantwijk e103a493fc Update Algorithm.md 2024-07-28 11:38:05 +02:00
Joris van Rantwijk 4670cf1dca Add testcases to force big values for dual/slack 2024-07-28 11:38:05 +02:00
Joris van Rantwijk c731c32473 Separate function top_level_blossom() 2024-07-21 15:32:41 +02:00
Joris van Rantwijk e8490010d6 Implement ConcatenableQueue as 2-3 tree 2024-07-21 15:32:41 +02:00
Joris van Rantwijk dc8cdae225 Minor simplification in UnionFindQueue 2024-07-21 15:32:41 +02:00
Joris van Rantwijk e2f5b63a01 Fix README 2024-07-11 21:28:41 +02:00
Joris van Rantwijk 6bf04df77b Update README 2024-07-11 21:27:01 +02:00
Joris van Rantwijk 99f8a2d822 Add benchmark script 2024-07-10 21:01:21 +02:00
Joris van Rantwijk ed70402310 Separate C++ test script 2024-07-10 20:52:59 +02:00
Joris van Rantwijk 54f59db753 Add tox.ini for Python testing 2024-07-10 20:19:12 +02:00
Joris van Rantwijk c58374e6fb Remove debug checks of alternating tree 2024-07-09 21:18:53 +02:00
Joris van Rantwijk 658a393bb8 Test script for Python code 2024-07-09 21:10:38 +02:00
Joris van Rantwijk c19fa9a76c Add pyproject.toml 2024-07-09 21:10:38 +02:00
Joris van Rantwijk d3475834ab Add from __future__ import annotations
This makes the code work on Python versions 3.7 and 3.8.
2024-07-09 21:10:38 +02:00
Joris van Rantwijk 147640329f Restructure Python code as package 2024-07-09 21:10:38 +02:00
Joris van Rantwijk f2e8ca1357 Remove redundant type annotations "int|float" 2024-07-09 21:10:38 +02:00
Joris van Rantwijk b2d4de41f9 Add __slots__ in datastruct.py
It does not make a clear difference for performance.
But it should at least reduce memory usage a bit.
2024-07-09 21:10:38 +02:00
Joris van Rantwijk d2debb6d6f Minor changes to docstrings 2024-07-09 21:10:38 +02:00
Joris van Rantwijk bbe19a6798 Run all unittests in run_checks.sh 2024-07-09 21:10:38 +02:00
Joris van Rantwijk 50ef772271 Improve test coverage 2024-07-09 21:10:38 +02:00
Joris van Rantwijk 6a75ffaf63 Avoid leaking reference cycles 2024-07-09 21:10:38 +02:00
Joris van Rantwijk 4c6115fb2f Improve comments and docstrings 2024-07-09 21:10:38 +02:00
Joris van Rantwijk 0e76e6472b Minor cleanup in scanning and delta steps 2024-07-09 21:10:38 +02:00
Joris van Rantwijk f35a640e43 Clean up management of the alternating tree 2024-07-09 21:10:38 +02:00
Joris van Rantwijk b960a85b6c Clean up magagement of blossom labels 2024-07-09 21:10:38 +02:00
Joris van Rantwijk f8c6b99842 Clean up least-slack edge tracking 2024-07-09 21:10:38 +02:00
Joris van Rantwijk 1a98624f2b Solve slow maintanance of blossom list 2024-07-09 21:10:38 +02:00
Joris van Rantwijk 61524990d7 Keep alternating trees between stages
Delete only the trees that are involved in an augmenting path.
Keep the other trees and reuse them in the next stage.

This gives a big speedup on many cases such as random graphs.
The code is a mess, needs to be cleaned up.
2024-07-09 21:10:38 +02:00
Joris van Rantwijk 73641d7b70 Add method PriorityQueue.increase_prio 2024-07-09 21:10:38 +02:00