Skip to content

FelooPy: Integrated optimization environment for automated operations research (AutoOR) in Python.

License

Notifications You must be signed in to change notification settings

fahdamjad/feloopy

 
 

Repository files navigation

Introduction

FelooPy version code number of users release date monthly Downloads license type
Image description FelooPy (pronounced /fɛlupaɪ/) is a free and open-source Python library for automated operations research that serves as both a hyper-optimization interface and an integrated optimization environment. The name comes from the idea of suggesting practical and applicable solutions for systems, industries, and supply chains, and it also references the importance of loops in programming and algorithm development, and draws similarities to the name "Floppy" to highlight memory efficiency. FelooPy helps operations research scientists achieve their goals using various target, representor, and learner models. In simple words, FelooPy is a unified framework for optimization algorithms, decision-making methods, and modeling and analytical tools.
News 🎉 Version 0.2.6 is out: Robustness and stability! 🎉

Installation

FelooPy can be installed on Linux-based distributions, Windows, or macOS. It has a few dependencies that should work on all these platforms.

Method Description Requirements
Quick

pip install --upgrade feloopy

Python >= 3.10
PyPI

pip install feloopy==0.2.6

Python >= 3.10
Command

!pip install feloopy==0.2.6

Python >= 3.10
Script
import pip

def install(package):
  if hasattr(pip, 'main'):
    pip.main(['install','-U', package])
  else:
    pip._internal.main(['install','-U', package])

install('feloopy==0.2.6')
Python >= 3.10
Local
  1. Download the feloopy-0.2.6.zip file.
  2. Extract it into a specific directory.
  3. Open a terminal in that directory.
  4. Type: pip install .
Python >= 3.10
Colab
  1. Run this cell and reload (CTRL + R) (using "py310" or "py311"):
!wget https://github.com/korakot/kora/releases/download/v0.10/py310.sh
!bash ./py310.sh -b -f -p /usr/local
!python -m ipykernel install --name "py310" --user
  1. Run this cell and reload (CTRL + R):
!pip install feloopy==0.2.6
Python >= 3.10
Git

pip install -U git+https://github.com/ktafakkori/feloopy

Python >= 3.10

FelooPy requires Python 3.10 or later to be installed on your system. If you don't have Python installed, or if you have an older version, you can download it from the official website (https://www.python.org/downloads/) and follow the installation instructions. Alternatively, if you are using Anaconda, you can create a new environment with Python 3.10 or later and install FelooPy in that environment:

conda create --name feloopy python=3.10
conda activate feloopy
pip install feloopy

FelooPy (v0.2.6) has a few optional dependencies that can be installed using the following commands:

  • All solvers: pip install feloopy[all_solvers]
  • Gurobi: pip install feloopy[gurobi]
  • Cplex: pip install feloopy[cplex]
  • Xpress: pip install feloopy[xpress]
  • Linux: pip install feloopy[linux] (better support for multi-objective optimization)

For multi-objective optimization, you should use the linux command for installation. However, please note that the optional dependencies for Linux kernel might not work on some operating systems. As a workaround, you can use a Conda-based Python 3.10 interpreter to ensure that optional dependencies for multi-objective optimization are installed correctly.

Features

FelooPy offers the following key features:

  • Simplest optimization programming language: Designed to be easy to use, even for those with little or no programming experience.
  • Modeling, solving and analyzing optimization problems: Provides a complete suite of tools for modeling, solving and analyzing a wide range of optimization problems.
  • Exact optimization algorithms: Supports 107 exact optimization algorithms that guarantee the optimal solution to your problem.
  • Heuristic optimization algorithms: Supports 197 heuristic optimization algorithms that can find best possible solutions to complex problems.
  • Convex optimization algorithms: Supports 20 convex optimization algorithms that ease tensor- and matrix-form modeling, primarily for convex problems.
  • Constraint optimization algorithms: Supports 2 constraint optimization algorithms that can handle a wide range of complex constraints for operational and time-dependent decisions.
  • Multi-objective optimization algorithms: Supports 17 multi-objective optimization algorithms, in which objectives might be conflicting or with different numerical units.
  • Multi-critera decision-making methods: Supports 41 MCDM algorithms to solve decision problems with expert-based inputs without mathematical modeling.
  • Solver configurations: Lets you configure the solver to meet specific requirements.
  • Auto-encoders for general purpose programming: Provides auto-encoders to simplify general-purpose programming tasks.
  • Auto-linearizers for linear programming conversions: Provides auto-linearizers that can handle mixed-integer non-linear programming problems.
  • Auto-logic for modeling special constraints: Provides auto-logic to help you model and solve problems with special constraints.
  • Auto-sensitivity for analyzing the impact of key parameters: Provides auto-sensitivity tools to help you analyze the impact of key parameters on your optimization problem.

Documentation

Please refer to https://feloopy.readthedocs.io/en/latest/.

Contributions

We welcome your contributions to this project, such as reporting bugs, submitting pull requests, testing changes, providing examples, and so on.

Support FelooPy

We are committed to continuing the development of FelooPy and would greatly appreciate your support. You can help us by:

Citation

If you use the facilities of this GitHub repository or the Python library in your work, we recommend citing it to help others reproduce the results of your research. You may also provide the specific version of the Python library used in your research or project for accuracy and reproducibility. Thank you for your consideration.

  • APA 7:
Tafakkori, K. (2022). FelooPy: An integrated optimization environment for AutoOR in Python [Python Library]. https://github.com/ktafakkori/feloopy (Original work published September 2022)
  • LaTeX:
@software{ktafakkori2022Sep,
  author       = {Keivan Tafakkori},
  title        = {{FelooPy: An integrated optimization environment for AutoOR in Python}},
  year         = {2022},
  month        = sep,
  publisher    = {GitHub},
  url          = {https://github.com/ktafakkori/feloopy/}
}

License

FelooPy is completely free and open-source and licensed under the MIT license.

About

FelooPy: Integrated optimization environment for automated operations research (AutoOR) in Python.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%