Skip to main content

Supply Chain Optimization Package

Reason this release was yanked:

Incorrect Version Deployed

Project description

SC Optimize

Supply Chain Optimization package in python using PuLP.

Setup

Make sure you have Python 3.6.x (or higher) installed on your system. You can download it here.

Installation

pip install scoptimize

Getting Started

Technical Documentation

The Technical Docs can be found here.

Basic Usage

from scoptimize.network import Model, Node, Flow

model = Model(name='MyModel')
model.add_object(Node(name="Factory_1", origin=True, cashflow_per_unit=-1, max_units=15))
model.add_object(Node(name="Customer_1", destination=True, min_units=10))
model.add_object(Flow(name="Factory_1__Customer_1", cashflow_per_unit=-1, max_units=15, start='Factory_1', end='Customer_1'))
model.solve()

print(model.objective) #=> 20.0

Advanced Usage

Input:

from scoptimize.network import Model, Node, Flow
from pprint import pp

model = Model(name='MyAdvancedModel')

model.add_object(Node(name="F1", origin=True, cashflow_for_use=-8, cashflow_per_unit=-1, max_units=5))
model.add_object(Node(name="F2", origin=True, cashflow_per_unit=-2, max_units=10))
model.add_object(Node(name="W1", cashflow_per_unit=-1, max_units=10))
model.add_object(Node(name="D1", destination=True, cashflow_per_unit=0, min_units=8, max_units=10))

model.add_object(Flow(name="F1_W1", cashflow_per_unit=-1, max_units=15, start='F1', end='W1'))
model.add_object(Flow(name="F2_W1", cashflow_per_unit=-1, max_units=15, start='F2', end='W1'))
model.add_object(Flow(name="W1_D1", cashflow_per_unit=-1, max_units=15, start='W1', end='D1'))

model.solve()
pp(model.get_object_stats())

Output:

{'F1': {'name': 'F1',
        'class': 'Node',
        'origin': True,
        'destination': False,
        'inflows': 0.0,
        'outflows': 0.0,
        'reflows_in': 0.0,
        'reflows_out': 0.0,
        'use': 0.0,
        'variable_cashflow': -0.0,
        'fixed_cashflow': -0.0},
 'F2': {'name': 'F2',
        'class': 'Node',
        'origin': True,
        'destination': False,
        'inflows': 0.0,
        'outflows': 8.0,
        'reflows_in': 0.0,
        'reflows_out': 0.0,
        'use': 1.0,
        'variable_cashflow': -16.0,
        'fixed_cashflow': 0.0},
 'W1': {'name': 'W1',
        'class': 'Node',
        'origin': False,
        'destination': False,
        'inflows': 8.0,
        'outflows': 8.0,
        'reflows_in': 0.0,
        'reflows_out': 0.0,
        'use': 1.0,
        'variable_cashflow': -8.0,
        'fixed_cashflow': 0.0},
 'D1': {'name': 'D1',
        'class': 'Node',
        'origin': False,
        'destination': True,
        'inflows': 8.0,
        'outflows': 0,
        'reflows_in': 0.0,
        'reflows_out': 0.0,
        'use': 1.0,
        'variable_cashflow': 0.0,
        'fixed_cashflow': 0.0},
 'F1_W1': {'name': 'F1_W1',
           'class': 'Flow',
           'reflow': False,
           'start': 'F1',
           'end': 'W1',
           'flow': 0.0,
           'use': 1.0,
           'variable_cashflow': -0.0,
           'fixed_cashflow': 0.0},
 'F2_W1': {'name': 'F2_W1',
           'class': 'Flow',
           'reflow': False,
           'start': 'F2',
           'end': 'W1',
           'flow': 8.0,
           'use': 1.0,
           'variable_cashflow': -8.0,
           'fixed_cashflow': 0.0},
 'W1_D1': {'name': 'W1_D1',
           'class': 'Flow',
           'reflow': False,
           'start': 'W1',
           'end': 'D1',
           'flow': 8.0,
           'use': 1.0,
           'variable_cashflow': -8.0,
           'fixed_cashflow': 0.0}}

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

scoptimize-0.6.tar.gz (7.6 kB view hashes)

Uploaded Source

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