- Author: Quan Hoang Ngoc
- Assignment: Assignment 3
- Term: HK2, 2024
This project focuses on experimenting with and evaluating the performance of OR-Tools in solving Knapsack problems. The primary objective is to gain hands-on experience with OR-Tools by learning how to install it, set up experiments, and automate the process for efficient performance analysis.
Optimization problems, such as the Knapsack problem, are crucial in various real-world applications. OR-Tools, a powerful optimization engine by Google, offers robust solutions to these problems. This project aims to:
- Understand and apply OR-Tools for optimization challenges.
- Automate the process of running experiments and generating reports.
- Utilize multiple computers to enhance experiment execution efficiency.
This project is ideal for students, researchers, and developers who are interested in learning about optimization tools and their practical applications. By following the demo and exploring the provided resources, users can gain insights into solving complex optimization problems using OR-Tools.
- Demo Video: Watch Here
- OneDrive Folder: OR-Tools Multi-computers Automatic Report
-
Survey and Planning:
- Reviewed guidelines, examples, API documentation for OR-Tools, and necessary functions.
- Designed an automated experiment pipeline.
-
Experiment Execution:
- Cloned a test-case set, read files, and extracted data for the experiments.
- Ran experiments across multiple computers to optimize execution time.
-
Automation and Reporting:
- Employed programming languages to automate the generation of reports.
- Backed up and logged experiment results during execution, and synthesized them afterward.
- OR-Tools: Chosen for its powerful optimization capabilities and extensive support for solving combinatorial problems like the Knapsack problem.
- Python: Used for scripting and automating the experiments due to its ease of use and integration with OR-Tools.
- OneDrive: Utilized for backing up project files and sharing results with the community.
These tools were selected for their reliability, community support, and ability to handle complex tasks efficiently.
Through this project, we learned:
- How to effectively use OR-Tools to solve optimization problems.
- The importance of automation in conducting large-scale experiments.
- The value of leveraging multiple computing resources to improve efficiency.
- The process of generating detailed reports automatically to streamline the analysis phase.
- Effective Automation: Successfully automated the process of running experiments and generating reports.
- Efficient Execution: Optimized experiment execution by distributing tasks across multiple computers.
- Comprehensive Reporting: Produced detailed, automated reports that synthesize the results of the experiments.
-
Clone the Repository:
git clone https://github.com/your-username/ALL_PROJECT.git cd ALL_PROJECT
-
Explore the Project:
- Access all source code, resources, and experiment results within the
ALL_PROJECT
directory.
- Access all source code, resources, and experiment results within the
-
Run the Experiments:
- Follow the provided scripts to replicate the experiments or use the reports to review the results.
If you find this project useful, please star it to show your support. I'm committed to sharing my knowledge and projects with others, and your support encourages me to continue investing time, enthusiasm, and meticulous effort into these endeavors.
Stay tuned for occasional updates, including new reports or folders added to the project. These updates will enhance the project's value and provide additional insights.
This project is licensed under the MIT License. For more details, see the LICENSE file.