|
1 | 1 | cff-version: 1.2.0 |
2 | 2 | message: >- |
3 | 3 | If you use this software, please cite it using the metadata below. |
4 | | -title: min-ratio-cycle |
| 4 | +
|
| 5 | +title: "min-ratio-cycle: Fast minimum cost-to-time ratio cycle detection" |
5 | 6 | abstract: >- |
6 | | - Minimum cost-to-time ratio cycle solver with NumPy acceleration and exact |
7 | | - Stern–Brocot search for integer inputs. |
| 7 | + A high-performance Python library for finding minimum cost-to-time ratio |
| 8 | + cycles in directed graphs. Features NumPy-accelerated algorithms with |
| 9 | + exact Stern-Brocot search for integer inputs, comprehensive validation, |
| 10 | + performance analytics, and visualization tools. Implements Lawler's |
| 11 | + parametric search with vectorized Bellman-Ford negative cycle detection. |
| 12 | +
|
8 | 13 | version: 0.1.0 |
| 14 | +date-released: "2025-01-17" |
9 | 15 | license: MIT |
10 | 16 | type: software |
| 17 | +repository-code: "https://github.com/DiogoRibeiro7/min-ratio-cycle" |
| 18 | +url: "https://min-ratio-cycle.readthedocs.io/" |
| 19 | + |
11 | 20 | authors: |
12 | 21 | - family-names: Ribeiro |
13 | 22 | given-names: Diogo |
14 | | - affiliation: ESMAD – Instituto Politécnico do Porto |
| 23 | + name-particle: de Bastos |
| 24 | + affiliation: "ESMAD – Instituto Politécnico do Porto" |
15 | 25 | |
16 | 26 | orcid: "https://orcid.org/0009-0001-2022-7072" |
| 27 | + |
17 | 28 | keywords: |
18 | 29 | - graph algorithms |
19 | 30 | - minimum ratio cycle |
20 | 31 | - parametric search |
21 | | - - Bellman–Ford |
22 | | - - Stern–Brocot |
| 32 | + - Bellman-Ford |
| 33 | + - Stern-Brocot |
| 34 | + - operations research |
| 35 | + - optimization |
23 | 36 | - Python |
24 | 37 | - NumPy |
| 38 | + - directed graphs |
| 39 | + - cycle detection |
| 40 | + - computational geometry |
25 | 41 |
|
26 | 42 | preferred-citation: |
27 | 43 | type: software |
28 | | - title: min-ratio-cycle |
29 | | - version: 0.1.0 |
| 44 | + title: "min-ratio-cycle: Fast minimum cost-to-time ratio cycle detection" |
30 | 45 | authors: |
31 | 46 | - family-names: Ribeiro |
32 | 47 | given-names: Diogo |
33 | | - affiliation: ESMAD – Instituto Politécnico do Porto |
| 48 | + name-particle: de Bastos |
| 49 | + affiliation: "ESMAD – Instituto Politécnico do Porto" |
34 | 50 | |
35 | 51 | orcid: "https://orcid.org/0009-0001-2022-7072" |
| 52 | + version: 0.1.0 |
| 53 | + date-released: "2025-01-17" |
36 | 54 | license: MIT |
| 55 | + repository-code: "https://github.com/DiogoRibeiro7/min-ratio-cycle" |
| 56 | + url: "https://min-ratio-cycle.readthedocs.io/" |
37 | 57 |
|
38 | 58 | references: |
39 | 59 | - type: article |
40 | 60 | title: "Improved Algorithms for Computing the Cycle of Minimum Cost-to-Time Ratio in Directed Graphs" |
41 | 61 | authors: |
42 | 62 | - family-names: Bringmann |
43 | 63 | given-names: Karl |
| 64 | + affiliation: "Max Planck Institute for Informatics" |
44 | 65 | - family-names: Hansen |
45 | 66 | given-names: Thomas Dueholm |
| 67 | + affiliation: "Aarhus University" |
46 | 68 | - family-names: Krinninger |
47 | 69 | given-names: Sebastian |
| 70 | + affiliation: "University of Vienna" |
48 | 71 | year: 2017 |
49 | | - journal: arXiv |
| 72 | + journal: "Proceedings of the 44th International Colloquium on Automata, Languages, and Programming (ICALP 2017)" |
| 73 | + volume: 80 |
| 74 | + pages: "124:1-124:14" |
| 75 | + publisher: "Schloss Dagstuhl - Leibniz-Zentrum für Informatik" |
| 76 | + doi: "10.4230/LIPIcs.ICALP.2017.124" |
50 | 77 | identifiers: |
| 78 | + - type: doi |
| 79 | + value: "10.4230/LIPIcs.ICALP.2017.124" |
51 | 80 | - type: arXiv |
52 | 81 | value: "1704.08122" |
53 | | - notes: "Accepted to ICALP 2017" |
| 82 | + notes: "Theoretical foundation for the algorithms implemented in this software" |
| 83 | + |
| 84 | + - type: article |
| 85 | + title: "Minimum-mean-weight cycles and minimum ratio spanning trees" |
| 86 | + authors: |
| 87 | + - family-names: Lawler |
| 88 | + given-names: Eugene L. |
| 89 | + affiliation: "University of California, Berkeley" |
| 90 | + year: 1976 |
| 91 | + journal: "Combinatorial algorithms" |
| 92 | + pages: "201-209" |
| 93 | + publisher: "Academic Press" |
| 94 | + notes: "Original parametric search approach for ratio optimization problems" |
| 95 | + |
| 96 | + - type: book |
| 97 | + title: "Introduction to Algorithms" |
| 98 | + authors: |
| 99 | + - family-names: Cormen |
| 100 | + given-names: Thomas H. |
| 101 | + - family-names: Leiserson |
| 102 | + given-names: Charles E. |
| 103 | + - family-names: Rivest |
| 104 | + given-names: Ronald L. |
| 105 | + - family-names: Stein |
| 106 | + given-names: Clifford |
| 107 | + year: 2009 |
| 108 | + publisher: "MIT Press" |
| 109 | + edition: "Third" |
| 110 | + isbn: "978-0-262-03384-8" |
| 111 | + notes: "Reference for Bellman-Ford algorithm and graph theory foundations" |
| 112 | + |
| 113 | +# Software dependencies (for reproducibility) |
| 114 | +software-requirements: |
| 115 | + - name: Python |
| 116 | + version: ">=3.10" |
| 117 | + url: "https://python.org" |
| 118 | + - name: NumPy |
| 119 | + version: ">=1.25" |
| 120 | + url: "https://numpy.org" |
| 121 | + - name: matplotlib |
| 122 | + version: ">=3.7" |
| 123 | + url: "https://matplotlib.org" |
| 124 | + - name: networkx |
| 125 | + version: ">=3.2" |
| 126 | + url: "https://networkx.org" |
| 127 | + - name: psutil |
| 128 | + version: ">=7.0" |
| 129 | + url: "https://psutil.readthedocs.io" |
| 130 | + |
| 131 | +# Contact information |
| 132 | +contact: |
| 133 | + - family-names: Ribeiro |
| 134 | + given-names: Diogo |
| 135 | + |
| 136 | + affiliation: "ESMAD – Instituto Politécnico do Porto" |
| 137 | + orcid: "https://orcid.org/0009-0001-2022-7072" |
| 138 | + |
| 139 | +# Grant information (if applicable) |
| 140 | +# funding: |
| 141 | +# - agency: "Fundação para a Ciência e a Tecnologia" |
| 142 | +# award-number: "EXAMPLE-2024" |
| 143 | +# award-title: "Advanced Graph Algorithms for Operations Research" |
| 144 | + |
| 145 | +# Usage examples for different contexts |
| 146 | +citation-examples: |
| 147 | + academic-paper: >- |
| 148 | + Ribeiro, D. (2025). min-ratio-cycle: Fast minimum cost-to-time ratio |
| 149 | + cycle detection (Version 0.1.0) [Computer software]. |
| 150 | + https://github.com/DiogoRibeiro7/min-ratio-cycle |
| 151 | + |
| 152 | + bibtex: | |
| 153 | + @software{min_ratio_cycle, |
| 154 | + title = {min-ratio-cycle: Fast minimum cost-to-time ratio cycle detection}, |
| 155 | + author = {Diogo de Bastos Ribeiro}, |
| 156 | + year = {2025}, |
| 157 | + version = {0.1.0}, |
| 158 | + url = {https://github.com/DiogoRibeiro7/min-ratio-cycle}, |
| 159 | + note = {Python package for efficient minimum ratio cycle detection} |
| 160 | + } |
| 161 | + |
| 162 | + apa: >- |
| 163 | + Ribeiro, D. de B. (2025). min-ratio-cycle: Fast minimum cost-to-time |
| 164 | + ratio cycle detection (Version 0.1.0) [Computer software]. GitHub. |
| 165 | + https://github.com/DiogoRibeiro7/min-ratio-cycle |
| 166 | +
|
| 167 | +# Additional metadata |
| 168 | +commit: "initial-release" |
| 169 | +date-created: "2025-01-10" |
| 170 | +programming-languages: |
| 171 | + - Python |
| 172 | +operating-systems: |
| 173 | + - Linux |
| 174 | + - Windows |
| 175 | + - macOS |
| 176 | +platforms: |
| 177 | + - x86_64 |
| 178 | + - ARM64 |
| 179 | + - Apple Silicon |
| 180 | + |
| 181 | +# Documentation and support |
| 182 | +documentation: "https://min-ratio-cycle.readthedocs.io/" |
| 183 | +issue-tracker: "https://github.com/DiogoRibeiro7/min-ratio-cycle/issues" |
| 184 | +repository-artifact: "https://pypi.org/project/min-ratio-cycle/" |
| 185 | + |
| 186 | +# Quality assurance information |
| 187 | +quality-assurance: |
| 188 | + - type: "test-coverage" |
| 189 | + value: ">95%" |
| 190 | + description: "Comprehensive test suite with property-based testing" |
| 191 | + - type: "continuous-integration" |
| 192 | + value: "GitHub Actions" |
| 193 | + description: "Automated testing on multiple Python versions and platforms" |
| 194 | + - type: "static-analysis" |
| 195 | + value: "mypy, bandit, flake8" |
| 196 | + description: "Type checking, security analysis, and code quality tools" |
| 197 | + - type: "benchmarking" |
| 198 | + value: "automated" |
| 199 | + description: "Performance regression testing with baseline comparisons" |
0 commit comments