Skip to main content

FelooPy: An integrated optimization environment for automated operations research in Python.

Project description

Introduction 📦

FelooPy Version Release Date Downloads GitHub stars License
FelooPy Logo FelooPy (pronounced /fɛlupaɪ/) is a comprehensive Python library that automates operations research. It serves as a hyper-optimization interface and an integrated optimization environment. FelooPy offers practical solutions for various systems, industries, and supply chains, focusing on finding feasible solutions, logical decisions, and optimal outcomes using Python. The name is a nod to "loops" in programming and algorithm development and "floppy" disk in computing and memory efficiency. FelooPy helps operations research scientists achieve their goals by providing various models and algorithms. In summary, FelooPy is a comprehensive framework for single- and multi-criteria decision-making methods, mathematical modeling, optimization algorithms, and analytics.
News 🎉 Version 0.2.7 is out: Comprehensivity! 🎉

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 108 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-attribute decision-making methods: Supports 63 MADM 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.

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.7
Python >= 3.10
Command
!pip install feloopy==0.2.7
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.7')
Python >= 3.10
Local
  1. Download the feloopy-0.2.7.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.7
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 a Python interpreter with the necessary version, you can download it from the official website and follow the installation instructions. Alternatively, if you are using an Anaconda distribution, you can create a new environment with Python 3.10 or later and install FelooPy in that environment, as follows:

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

FelooPy (v0.2.7) has a few optional dependencies that can be installed using the following commands (recommended to install if possible):

Dependency Installation Command License Help Download Page
All solvers pip install feloopy[all_solvers] - -
Gurobi pip install feloopy[gurobi] License Download
Cplex pip install feloopy[cplex] License Download
Xpress pip install feloopy[xpress] License Download
Copt pip install feloopy[copt] License Download
Cylp pip install feloopy[cylp] License Download
Linux pip install feloopy[linux] - -

For multi-objective optimization, you should use the linux command for installation. However, please note that the optional dependencies for the Linux kernel might not work on some operating systems. As a workaround, before using the linux command, you can use an Anaconda-based interpreter to install sub-dependencies for multi-objective optimization. For instance, one of such dependencies is the pygmo package, which is easier to be installed by the conda package manager as follows (see the official website for more details):

conda config --add channels conda-forge
conda config --set channel_priority strict
conda install pygmo

Documentation 📚

Please refer to the documentation website.

Contributions 🙌

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

Support FelooPy 🌟

Warning: Maintenance Notice ⚠️

We are committed to continuing the development of FelooPy, but ongoing maintenance and improvements depend on the support of our community. Your assistance is invaluable in keeping FelooPy active and thriving.

Here's how you can contribute:

  • Star the project on GitHub: Your stars motivate us to keep improving FelooPy. You can give a star to the project here.

  • Fork the project on GitHub: You can actively contribute to its development by forking it. You can fork the project here.

  • Donate: Your donations help us sustain and maintain the project while adding new features. If you'd like to support us financially, please visit our support page.

Your support is vital to FelooPy's future, and we sincerely appreciate your contribution! Thank you for being part of our community.

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]. Retrieved from 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.

Learn more 🌐

Group/Channel Name Join Link
LinkedIn Group (Language: EN) Join Group
Instagram Page (Language: EN/FA) Join Page
Telegram Group (Language: FA) Join Group
Telegram Channel (Language: FA) Join Channel

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

feloopy-0.2.7.tar.gz (83.3 kB view hashes)

Uploaded Source

Built Distribution

feloopy-0.2.7-py3-none-any.whl (143.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page