Skip to content

Presubmission Inquiry for peer reviewing of our Python Package pygulp for weighted goal linear programming #281

@DrRoomani

Description

@DrRoomani

Submitting Author: AIDE LAB (@DrRoomani)
Package Name: pygulp - https://pypi.org/project/pygulp/
One-Line Description of Package: PyGuLP: A Python package for Weighted Goal Linear Programming
Repository Link: https://github.com/aidelab-iitbombay/GLP
EiC: TBD


Code of Conduct & Commitment to Maintain Package

  • I agree to abide by [pyOpenSci's Code of Conduct][PyOpenSciCodeOfConduct] during the review process and in maintaining my package after should it be accepted.
  • I have read and will commit to package maintenance after the review as per the [pyOpenSci Policies Guidelines][Commitment].

Description

Traditional linear programming frameworks are well suited to optimizing a single objective subject to feasibility constraints, but they usually fail in solving problems with conflicting objectives such as providing a protein rich diet at lower costs. Goal Linear Programming (GLP) extends linear programming by allowing targets to be modelled explicitly and by minimizing deviations from those targets. Among GLP variants, Weighted Goal Linear Programming (WGP) offers a transparent and interpretable formulation in which the relative importance of competing targets is encoded through priority weights.
PyGuLP is a lightweight Python package that implements WGP using standard linear programming constructs. Users define decision variables, feasibility constraints, and a set of goals expressed as linear functions with target values. For each goal, the package automatically introduces under- and over-deviation variables and constructs the corresponding goal-linking constraints. The resulting linear program minimizes a weighted sum of deviations and is solved using established linear solvers. PyGuLP makes goal-based optimization accessible to applied researchers while preserving full control over the underlying optimization model.

Community Partnerships

NA

Scope

- [x] Workflow automation

Domain Specific

  • Optimization

  • Our package qualifies as a workflow automation package as it is designed to take goals and feasibility constraints as input and automatically build the full WGP model (deviation variables, goal-linking equations, and the final weighted objective), solve it using standard solvers, and return goal achievement and deviations in a consistent output format that supports repeatable scenario runs and clean comparisons across alternatives. Well suited to fields where optimized allocation of resources is a regular actitvity due to constantly changing inputs, and not just a one time effort.

  • The package has broad applications in multi-objective optimization and can be used for resource allocation in the field of nutrition, hospital management, environmental sciences to name a few.

  • To the best of our knowledge, there is no python package that addresses Goal Linear Programming. Our package adds functionalities not currently provided under the popular optimization package PuLP.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    pre-submission

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions