pub version GitHub Saweria Badge

✨ 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:

  1. Using all algorithms together
    Initialize the FlutterDecisionMaking class 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.

  1. 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

Ko-Fi Saweria Badge


πŸ™‹β€β™‚οΈ 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