flutter_decision_making 2.0.0
flutter_decision_making: ^2.0.0 copied to clipboard
Flutter package for multi-criteria decision-making using AHP, SAW, and TOPSIS algorithms.
2.0.0 #
Breaking changes #
- Isolate execution is now opt-in. The automatic isolate threshold (>80 alternatives / >25 criteria) was removed. All calculation methods accept
useIsolate(defaultfalse). In profile-mode benchmarks on Apple Silicon, the main-thread path was roughly 8–50x faster than the isolate path for SAW and TOPSIS up to 2000x50 (see README). - Isolate internals are no longer exported from
package:flutter_decision_making/flutter_decision_making.dart(DecisionIsolateMain, isolate message and worker files). Migration: passuseIsolate: trueto the public API; if you need the manager itself, importpackage:flutter_decision_making/core/isolate/decision_isolate_main.dart.
Added #
- New pure Dart package
decision_making_core(packages/decision_making_core) with synchronous SAW, TOPSIS and AHP calculators. The Flutter package delegates its calculations to it. - Entity types from the core are exported selectively from the main barrel.
TOPSIS,TopsisRawMatrixand related types are now exported from the main barrel.- Detailed self-explaining SAW results (
SawDetailedResult): AddedSawCalculator.calculateDetailedandSAW.getSawDetailedResultreturning all intermediate calculation steps: input matrix, cell-normalized matrix (r_ij), normalized weights (w_j), weighted cell matrix (v_ij), and final scores/ranks with JSON serialization support (toJson()). - Detailed self-explaining TOPSIS results (
TopsisDetailedResult): AddedTopsisCalculator.calculateDetailedandTOPSIS.getTopsisDetailedResultreturning all intermediate calculation steps: input matrix, Euclidean-normalized matrix (r_ij), normalized weights (w_j), weighted cell matrix (v_ij), positive/negative ideal solutions (A+, A-), separation distances (D+, D-), and final relative closeness scores/ranks with JSON serialization support (toJson()). - Detailed self-explaining AHP results (
AhpDetailedResult,AhpMatrixEvaluation): AddedAhpCalculator.calculateDetailedandAHP.getAhpDetailedResultreturning all intermediate comparison matrices, normalized matrices, weights (w_j), consistency metrics (lambda_max, CI, RI, CR), per-criteria local priority scores, weighted scores, and final synthesized scores with JSON serialization support (toJson()). - Weight sensitivity analysis & rank reversal detection (SAW & TOPSIS): Added
SawCalculator.analyzeSensitivity,TopsisCalculator.analyzeSensitivity,SAW.analyzeSensitivity, andTOPSIS.analyzeSensitivityreturningSensitivityAnalysisResultwith systematic +/- delta perturbations, pairwise ranking change detection, alternative removal rank reversal tests, and JSON serialization support (toJson()). - Exported sensitivity entities:
AlternativePair,RankReversalCase,SensitivityAnalysisResult,SensitivityDirection, andWeightSensitivityCase.
Fixed #
- TOPSIS ranking was wrong in 1.2.0 for datasets above 80 alternatives or 25 criteria, because the isolate worker called the SAW normalization instead of the Euclidean one.
- Removed a dead TOPSIS isolate command (
normalizeMatrix).
1.2.0 #
Updated #
- make shared function to generate matrix for SAW and TOPSIS
- added algorithm TOPSIS (Technique for Order Preference by Similarity to Ideal Solution)
1.1.1 #
Updated #
- adding Simple Additive Weighting (SAW) algorithm
- main isolate manager, make to multi-command isolate
- minimum flutter version
- minor update AHP
1.0.6 #
Updated #
- update README.md
- Refactored AHP feature for improved maintainability and performance
- On mobile and desktop platforms, replaced compute with Isolate.spawn for heavy processing tasks:
generateResultPairwiseMatrixCriteriagenerateResultPairwiseMatrixAlternativecalculateEigenVectorCriteriacalculateEigenVectorAlternativecheckConsistencyRatioahpFinalScore
1.0.5 #
1.0.4 #
- updated README with development note about upcoming support for SAW, TOPSIS, and other algorithms.
- Improved package description in pubspec.yaml to reflect ongoing development and future feature additions.
1.0.3 #
- update preference value: only return integer
- update README.md
- feature to reset all internal data and results to initial state
1.0.2 #
update docs
1.0.1 #
chore:
- Provide documentation
- Pass static analysis
- update README.md
1.0.0 #
- Flutter Decision Making with AHP algorithm initial release.