This is the code for the Multi-Build Search app, developed over the course of the video series at opt-models.org.
The app searches for multiple LEGO® sets buildable from one person's part inventory at the same time ... see the Problem Description for more!
At the heart of the app is a Mixed-Integer Linear Program (MILP) implemented in AMPL - an algebraic modeling language - which sends problems it generates for solving to the excellent open source HiGHS linear integer solver. The app is later wrapped in Python, given a Streamlit UI and containerized.
The Multi-Build Search App augments Rebrickable.com's existing Build Search feature at https://rebrickable.com/build/, and its development is enabled by Rebrickable's generous sharing of their LEGO part and set data at https://rebrickable.com/downloads/. (Thank you Rebrickable Team, you rock!!! ❤️ )
Note: Rebrickable® and LEGO® are trademarks their respective owners.
Visit the Whimsical whiteboard here for the planning and explanatory notes seen in the video series.
Discuss the app's development on the opt-models Discord server here ...