Skip to content

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.

Notifications You must be signed in to change notification settings

QuanHoangNgoc/OR-Tools-Knapsack-Solver-CS106-AI-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

13 Commits
Β 
Β 

Repository files navigation

πŸ“š Introduction

  • Author: Quan Hoang Ngoc
  • Assignment: Assignment 3
  • Term: HK2, 2024

🌟 What is it?

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.


πŸ“ Why do we do it?

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.

🎯 Who is it for?

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 & Results


βš™οΈ How did we do it?

Detailed Approach:

  1. Survey and Planning:

    • Reviewed guidelines, examples, API documentation for OR-Tools, and necessary functions.
    • Designed an automated experiment pipeline.
  2. Experiment Execution:

    • Cloned a test-case set, read files, and extracted data for the experiments.
    • Ran experiments across multiple computers to optimize execution time.
  3. Automation and Reporting:

    • Employed programming languages to automate the generation of reports.
    • Backed up and logged experiment results during execution, and synthesized them afterward.

πŸ› οΈ Frameworks and Tools Used

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


πŸ’‘ What did you learn?

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.

πŸ† Achievements

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

πŸ“‚ How to Install and Run the Project

Installation Guide:

  1. Clone the Repository:

    git clone https://github.com/your-username/ALL_PROJECT.git
    cd ALL_PROJECT
  2. Explore the Project:

    • Access all source code, resources, and experiment results within the ALL_PROJECT directory.
  3. Run the Experiments:

    • Follow the provided scripts to replicate the experiments or use the reports to review the results.

πŸ’– Donate

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.


πŸ”„ Little Updates

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.


image

πŸ“œ License

This project is licensed under the MIT License. For more details, see the LICENSE file.


About

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.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published