Skip to content

This repository delves into a research field we refer to as "deeplifting". Deeplifting merges the domains of deep learning and optimization, proposing a novel approach to solve optimization problems. By using neural networks to reparameterize input spaces, we can significantly improve solutions, making them both more potent and robust.

Notifications You must be signed in to change notification settings

sun-umn/Deeplifting

Repository files navigation

Deeplifting 🧠

This repository delves into a research field we refer to as "deeplifting". Deeplifting merges the domains of deep learning and optimization, proposing a novel approach to solve optimization problems. By using neural networks to reparameterize input spaces, we can significantly improve solutions, making them both more potent and robust.

Setup ⚙️

Note 📝: Repostory was configured using Python 🐍 version 3.9.11

IPOPT ("Interior Point OPTimizer, pronounced I-P-Opt") is a software package for large-scale nonlinear optimization.

Before you proceed with the installation of dependencies from requirements.txt, you need to set up IPOPT on your system.

Here's a step-by-step guide on how to set it up on Mac and Linux.

Mac:

  • First, install Homebrew if you haven't installed it yet. Open Terminal and paste the following command:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  • Install IPOPT via Homebrew:
brew install ipopt
  • (August 31st, 2023), we added the SCIP algorithm. For mac users to install SCIP
brew install scip

Note 📝: It's crucial to mention that to successfully install IPOPT on a Mac, I needed to update my operating system to the latest version. As of the time this was written, that version is Ventura 13.4.

Linux:

  • First, update your package list:
sudo apt-get update
  • Install the necessary tools and libraries:
sudo apt-get install gcc g++ gfortran git patch wget pkg-config liblapack-dev libmetis-dev libmumps-seq-dev libblas-dev coinor-libipopt-dev

For both Mac and Linux, once you have IPOPT installed, you can proceed with the installation of the Python dependencies from your requirements.txt file:

pip install -r requirements.txt

Note: These instructions assume that you have Python and pip already installed on your system. If that's not the case, you'll need to install those first. Also, if you're using a Python virtual environment, ensure that you've activated the environment before running these commands.

Always refer to the official IPOPT documentation or source for the most up-to-date and detailed setup instructions.

Pre-Commit Hooks 🤖

Precommit Documentation

To conclude, we've integrated pre-commit hooks to maintain a consistent standard and style across all contributed code.

Here's how you can install and set up the pre-commit hooks:

  1. First, you need to install pre-commit. You can do this with pip:
pip install pre-commit
  1. Then, navigate to your project directory, where the .pre-commit-config.yaml file is located:
cd deeplifting
  1. In the project directory, run the following command to install the pre-commit hooks:
pre-commit install

With these steps completed, the pre-commit hooks are now set up. They will automatically run checks on your code each time you try to commit changes in this repository. If the checks pass, the commit will be allowed; if they fail, the commit will be blocked, and you'll need to fix the issues before trying again.

Project Documents 📃

Make sure to review the essential documents related to this project, provided in the list below. If you need access, please get in touch with one of the document administrators.

About

This repository delves into a research field we refer to as "deeplifting". Deeplifting merges the domains of deep learning and optimization, proposing a novel approach to solve optimization problems. By using neural networks to reparameterize input spaces, we can significantly improve solutions, making them both more potent and robust.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •