β¨ About
Flutter package for practical multi-criteria decision-making, providing algorithms such as AHP, SAW, and TOPSIS (coming soon) to help developers perform weighting, evaluation, and ranking of alternatives easily and accurately within their Flutter applications.
Development Status:
This package is currently under active development. We are committed to continuously enhancing the features and algorithms to support a broader range of decision-making methods. In upcoming versions, we plan to add several popular algorithms such as SAW, TOPSIS, and other methods to provide a richer selection of decision-making techniques.
| Status | Algorithm | Available in version |
|---|---|---|
| β | AHP (Analytic Hierarchy Process) | 1.0.0 |
| β | SAW (Simple Additive Weighting) | 1.1.0 |
| π | TOPSIS (Technique for Order Preference by Similarity to Ideal Solution) | 1.2.0 (planned) |
Thank you for your valuable feedback and continued support.
π Usage Guide
You can use this package in two ways depending on your needs:
- Using all algorithms together
Initialize theFlutterDecisionMakingclass to access all available algorithms (currently AHP and SAW).
More algorithms such as SAW and TOPSIS are planned for upcoming versions.
late FlutterDecisionMaking _decisionMaking;
AhpResult? _ahpResult;
List<SawResult>? _sawResult;
@override
void initState() {
super.initState();
_decisionMaking = FlutterDecisionMaking();
}
// Usage example:
// for AHP
_ahpResult = await _decisionMaking.ahp.getAhpResult(...);
// for SAW
_sawResult = await _decisionMaking.saw.calculateSawResult(...);
This is the easiest way if you want to use multiple algorithms in your project.
- Using a specific algorithm only
If you only need a single algorithm (e.g., AHP), you can import and initialize it directly:
late AHP _ahp;
AhpResult? _ahpResult;
@override
void initState() {
super.initState();
_ahp = AHP();
}
// Usage example:
_ahpResult = await _ahp.getAhpResult(...);
π Algorithm Docs
For details on how to use the algorithm, you can visit the following documentation.
| Link | Description |
|---|---|
| AHP Doc | If you need a method that is able to determine weights accurately through pairwise comparisons, validate the consistency of assessments, and work well on subjective or multilevel criteria. |
| SAW Doc | If you need a simple, fast, easy to calculate, and easy to implement method for ranking alternatives based on criteria weights and values. |
π Performance Profiling
Major method logs:
- Start and end timestamps.
- Execution duration (in milliseconds).
Useful for debugging and optimization during development.
π Support Me
πββοΈ Contributing
We welcome all contributions and suggestions!
π Open an issue or submit a pull request at GitHub Repo
Libraries
- core/decision_making_enums
- core/decision_making_helper
- core/decision_making_performance_profiling
- core/isolate/decision_isolate_main
- core/isolate/decision_isolate_message
- core/isolate/decision_isolate_worker
- feature/ahp/data/datasource/ahp_calculate_eigen_vector_alternative_isolated
- feature/ahp/data/datasource/ahp_calculate_eigen_vector_criteria_isolated
- feature/ahp/data/datasource/ahp_check_consistency_ratio_isolated
- feature/ahp/data/datasource/ahp_final_score_isolated
- feature/ahp/data/datasource/ahp_input_pairwise_matrix_alternative_with_compute
- feature/ahp/data/datasource/ahp_local_datasource
- feature/ahp/data/datasource/ahp_result_pairwise_matrix_alternative_isolated
- feature/ahp/data/datasource/ahp_result_pairwise_matrix_criteria_isolated
- feature/ahp/data/dto/ahp_consistency_ratio_dto
- feature/ahp/data/dto/ahp_hierarchy_dto
- feature/ahp/data/dto/ahp_item_dto
- feature/ahp/data/dto/ahp_result_detail_dto
- feature/ahp/data/dto/ahp_result_dto
- feature/ahp/data/dto/pairwise_comparison_alternative_input_dto
- feature/ahp/data/dto/pairwise_comparison_input_dto
- feature/ahp/data/mapper/ahp_consistency_ratio_mapper
- feature/ahp/data/mapper/ahp_hierarchy_mapper
- feature/ahp/data/mapper/ahp_item_mapper
- feature/ahp/data/mapper/ahp_result_detail_mapper
- feature/ahp/data/mapper/ahp_result_mapper
- feature/ahp/data/mapper/pairwise_comparison_alternative_input_mapper
- feature/ahp/data/mapper/pairwise_comparison_input_mapper
- feature/ahp/data/repository_impl/ahp_repository_impl
- feature/ahp/domain/entities/ahp_comparison_scale
- feature/ahp/domain/entities/ahp_consistency_ratio
- feature/ahp/domain/entities/ahp_hierarchy
- feature/ahp/domain/entities/ahp_identification
- feature/ahp/domain/entities/ahp_item
- feature/ahp/domain/entities/ahp_result
- feature/ahp/domain/entities/ahp_result_detail
- feature/ahp/domain/entities/pairwise_alternative_input
- feature/ahp/domain/entities/pairwise_comparison_input
- feature/ahp/domain/repository/ahp_repository
- feature/ahp/domain/usecase/ahp_calculate_final_score_usecase
- feature/ahp/domain/usecase/ahp_generate_hierarchy_usecase
- feature/ahp/domain/usecase/ahp_generate_pairwise_alternative_input_usecase
- feature/ahp/domain/usecase/ahp_generate_pairwise_criteria_input_usecase
- feature/ahp/domain/usecase/ahp_identification_usecase
- feature/ahp/presentation/ahp
- feature/ahp/presentation/ahp_utils
- feature/saw/data/datasource/generate_saw_matrix_isolate
- feature/saw/data/datasource/normalize_saw_matrix_isolate
- feature/saw/data/datasource/saw_local_datasource
- feature/saw/data/dto/saw_alternative_dto
- feature/saw/data/dto/saw_criteria_dto
- feature/saw/data/dto/saw_matrix_dto
- feature/saw/data/dto/saw_rating_dto
- feature/saw/data/dto/saw_result_dto
- feature/saw/data/mapper/saw_alternative_mapper
- feature/saw/data/mapper/saw_criteria_mapper
- feature/saw/data/mapper/saw_matrix_mapper
- feature/saw/data/mapper/saw_rating_mapper
- feature/saw/data/mapper/saw_result_mapper
- feature/saw/data/repository_impl/saw_repository_impl
- feature/saw/domain/entities/saw_alternative
- feature/saw/domain/entities/saw_criteria
- feature/saw/domain/entities/saw_matrix
- feature/saw/domain/entities/saw_rating
- feature/saw/domain/entities/saw_result
- feature/saw/domain/repository/saw_repository
- feature/saw/domain/usecase/saw_calculate_result_usecase
- feature/saw/domain/usecase/saw_calculate_result_with_existing_matrix_usecase
- feature/saw/domain/usecase/saw_generate_pairwise_matrix_usecase
- feature/saw/presentation/saw
- feature/saw/presentation/saw_utils
- flutter_decision_making