Datalens.ai
← All algorithms

OPTIMISATION

linprog

Linear programming: minimize a linear objective function subject to linear.

Example of usage

Python API reference included; executable data demonstration pending review.

Usage / limitations

+Use when: Find solutions efficiently.

−Limitations: Check input requirements, mathematical assumptions and version-specific behaviour before using.

Mathematical formula

See method documentation: implementation and assumptions vary.
Sample dataShow
{
  "variable": "design_case",
  "domain": "Engineering parameter estimation and optimisation",
  "feature_names": [
    "measurement_time_s",
    "response_mm"
  ],
  "records": [
    {
      "measurement_time_s": 0,
      "response_mm": 1
    },
    {
      "measurement_time_s": 1,
      "response_mm": 3
    },
    {
      "measurement_time_s": 2,
      "response_mm": 5
    },
    {
      "measurement_time_s": 3,
      "response_mm": 7
    },
    {
      "measurement_time_s": 4,
      "response_mm": 9
    }
  ],
  "target_value": 4.0,
  "lower_bound": 0.0,
  "upper_bound": 4.0,
  "method": "linprog"
}

Code example (Python)

# DataLens.ai example — linprog
# Domain: engineering parameter estimation and optimisation.
# The sample data are included by “Copy input + code + test”.
import numpy as np
from scipy import optimize
# Read the named engineering measurements.
times = np.array([row["measurement_time_s"] for row in design_case["records"]], dtype=float)
responses = np.array([row["response_mm"] for row in design_case["records"]], dtype=float)
# Use a known target, making the numerical assertion independently meaningful.
target = design_case["target_value"]

# Minimise manufacturing cost subject to a minimum capacity of four units.
# Two identical units each contribute one unit of capacity at unit costs 1 and 2.
result = optimize.linprog(c=[1.0,2.0],A_ub=[[-1.0,-1.0]],b_ub=[-4.0],bounds=[(0,None),(0,None)],method='highs')
assert result.success and np.allclose(result.x,[4.0,0.0],atol=1e-6)
print("Expected output verified")